@codefox-inc/oauth-provider 0.3.2 → 0.4.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/README.md +40 -14
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +9 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/clientManagement.d.ts +1 -0
- package/dist/component/clientManagement.d.ts.map +1 -1
- package/dist/component/clientManagement.js +24 -0
- package/dist/component/clientManagement.js.map +1 -1
- package/dist/component/handlers.d.ts +16 -0
- package/dist/component/handlers.d.ts.map +1 -1
- package/dist/component/handlers.js +278 -29
- package/dist/component/handlers.js.map +1 -1
- package/dist/component/mutations.d.ts +9 -0
- package/dist/component/mutations.d.ts.map +1 -1
- package/dist/component/mutations.js +112 -40
- package/dist/component/mutations.js.map +1 -1
- package/dist/component/queries.d.ts +8 -0
- package/dist/component/queries.d.ts.map +1 -1
- package/dist/component/schema.d.ts +18 -4
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +7 -0
- package/dist/component/schema.js.map +1 -1
- package/dist/lib/oauth.d.ts.map +1 -1
- package/dist/lib/oauth.js +5 -2
- package/dist/lib/oauth.js.map +1 -1
- package/package.json +39 -39
- package/src/client/__tests__/oauth-provider.test.ts +39 -0
- package/src/client/index.ts +4 -0
- package/src/component/__tests__/handlers-protocol.test.ts +914 -0
- package/src/component/__tests__/mutations-protocol.test.ts +448 -0
- package/src/component/__tests__/oauth.test.ts +32 -28
- package/src/component/__tests__/rfc-compliance.test.ts +79 -11
- package/src/component/_generated/component.ts +17 -1
- package/src/component/clientManagement.ts +31 -0
- package/src/component/handlers.ts +358 -32
- package/src/component/mutations.ts +133 -40
- package/src/component/schema.ts +11 -0
- package/src/lib/__tests__/oauth-jwt.test.ts +68 -0
- package/src/lib/oauth.ts +8 -4
package/dist/lib/oauth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,SAAS,EAIZ,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/oauth.js
CHANGED
|
@@ -95,7 +95,7 @@ export function getSigningKeyId(config) {
|
|
|
95
95
|
export async function sign(payload, subject, audience, expiresIn, privateKeyPEM, issuer, keyId = DEFAULT_KEY_ID) {
|
|
96
96
|
const privateKey = await getPrivateKey(privateKeyPEM);
|
|
97
97
|
const jwt = new SignJWT(payload)
|
|
98
|
-
.setProtectedHeader({ alg: "RS256", kid: keyId })
|
|
98
|
+
.setProtectedHeader({ alg: "RS256", typ: "at+jwt", kid: keyId })
|
|
99
99
|
.setIssuedAt()
|
|
100
100
|
.setSubject(subject)
|
|
101
101
|
.setAudience(audience)
|
|
@@ -115,9 +115,12 @@ export async function verifyAccessToken(token, config, issuerUrl, expectedAudien
|
|
|
115
115
|
issuer: issuerUrl,
|
|
116
116
|
audience,
|
|
117
117
|
};
|
|
118
|
-
const { payload } = typeof publicKey === "function"
|
|
118
|
+
const { payload, protectedHeader } = typeof publicKey === "function"
|
|
119
119
|
? await jwtVerify(token, publicKey, options)
|
|
120
120
|
: await jwtVerify(token, publicKey, options);
|
|
121
|
+
if (protectedHeader.typ !== "at+jwt" && protectedHeader.typ !== "application/at+jwt") {
|
|
122
|
+
throw new Error("Invalid access token typ");
|
|
123
|
+
}
|
|
121
124
|
return payload;
|
|
122
125
|
}
|
|
123
126
|
/**
|
package/dist/lib/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/codefox-inc/convex-oauth-provider/issues"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.4.1",
|
|
10
|
+
"packageManager": "bun@1.3.13",
|
|
10
11
|
"license": "Apache-2.0",
|
|
11
12
|
"publishConfig": {
|
|
12
13
|
"access": "public"
|
|
@@ -26,12 +27,12 @@
|
|
|
26
27
|
"dev": "run-p -r 'dev:*'",
|
|
27
28
|
"dev:backend": "convex dev --typecheck-components",
|
|
28
29
|
"dev:frontend": "cd example && vite --clearScreen false",
|
|
29
|
-
"dev:build": "chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c '
|
|
30
|
+
"dev:build": "chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'bun run build:codegen' --initial",
|
|
30
31
|
"dev:worker": "cd example && wrangler dev --port 8787 2>&1 | cat",
|
|
31
|
-
"predev": "path-exists .env.local dist || (
|
|
32
|
+
"predev": "path-exists .env.local dist || (bun run build && convex dev --once)",
|
|
32
33
|
"build": "tsc --project ./tsconfig.build.json",
|
|
33
|
-
"build:codegen": "
|
|
34
|
-
"build:clean": "rm -rf dist *.tsbuildinfo &&
|
|
34
|
+
"build:codegen": "bunx convex codegen --component-dir ./src/component && bun run build",
|
|
35
|
+
"build:clean": "rm -rf dist *.tsbuildinfo && bun run build:codegen",
|
|
35
36
|
"typecheck": "tsc --noEmit && tsc -p example && tsc -p example/convex",
|
|
36
37
|
"lint": "eslint .",
|
|
37
38
|
"all": "run-p -r 'dev:*' 'test:watch'",
|
|
@@ -40,8 +41,8 @@
|
|
|
40
41
|
"test:debug": "vitest --inspect-brk --no-file-parallelism",
|
|
41
42
|
"test:coverage": "vitest run --coverage --coverage.reporter=text",
|
|
42
43
|
"changeset": "changeset",
|
|
43
|
-
"version": "changeset version &&
|
|
44
|
-
"release": "
|
|
44
|
+
"version": "changeset version && bun install",
|
|
45
|
+
"release": "bun run build && changeset publish"
|
|
45
46
|
},
|
|
46
47
|
"files": [
|
|
47
48
|
"dist",
|
|
@@ -75,46 +76,45 @@
|
|
|
75
76
|
"react": "^18.2.0 || ^19.0.0"
|
|
76
77
|
},
|
|
77
78
|
"dependencies": {
|
|
78
|
-
"bcryptjs": "^
|
|
79
|
-
"jose": "^
|
|
79
|
+
"bcryptjs": "^3.0.3",
|
|
80
|
+
"jose": "^6.2.3"
|
|
80
81
|
},
|
|
81
82
|
"devDependencies": {
|
|
82
|
-
"@changesets/cli": "^2.
|
|
83
|
-
"@cloudflare/workers-types": "^4.
|
|
84
|
-
"@convex-dev/auth": "^0.0.
|
|
85
|
-
"@convex-dev/eslint-plugin": "^
|
|
83
|
+
"@changesets/cli": "^2.31.0",
|
|
84
|
+
"@cloudflare/workers-types": "^4.20260505.1",
|
|
85
|
+
"@convex-dev/auth": "^0.0.92",
|
|
86
|
+
"@convex-dev/eslint-plugin": "^2.0.0",
|
|
86
87
|
"@edge-runtime/vm": "^5.0.0",
|
|
87
|
-
"@eslint/eslintrc": "^3.3.
|
|
88
|
-
"@eslint/js": "9.39.
|
|
89
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
90
|
-
"@types/
|
|
91
|
-
"@types/
|
|
92
|
-
"@types/react": "^19.2.9",
|
|
88
|
+
"@eslint/eslintrc": "^3.3.5",
|
|
89
|
+
"@eslint/js": "9.39.4",
|
|
90
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
91
|
+
"@types/node": "^25.6.0",
|
|
92
|
+
"@types/react": "^19.2.14",
|
|
93
93
|
"@types/react-dom": "^19.2.3",
|
|
94
|
-
"@vitejs/plugin-react": "^
|
|
95
|
-
"@vitest/coverage-v8": "^4.
|
|
94
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
95
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
96
96
|
"chokidar-cli": "3.0.0",
|
|
97
|
-
"convex": "1.
|
|
98
|
-
"convex-test": "0.0.
|
|
99
|
-
"cpy-cli": "^
|
|
100
|
-
"eslint": "9.39.
|
|
97
|
+
"convex": "1.37.0",
|
|
98
|
+
"convex-test": "0.0.51",
|
|
99
|
+
"cpy-cli": "^7.0.0",
|
|
100
|
+
"eslint": "9.39.4",
|
|
101
101
|
"eslint-plugin-react": "^7.37.5",
|
|
102
|
-
"eslint-plugin-react-hooks": "^7.
|
|
103
|
-
"eslint-plugin-react-refresh": "^0.
|
|
104
|
-
"globals": "^17.
|
|
105
|
-
"hono": "^4.12.
|
|
102
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
103
|
+
"eslint-plugin-react-refresh": "^0.5.2",
|
|
104
|
+
"globals": "^17.6.0",
|
|
105
|
+
"hono": "^4.12.16",
|
|
106
106
|
"npm-run-all2": "8.0.4",
|
|
107
107
|
"path-exists-cli": "2.0.0",
|
|
108
|
-
"pkg-pr-new": "^0.0.
|
|
109
|
-
"prettier": "3.8.
|
|
110
|
-
"react": "^19.2.
|
|
111
|
-
"react-dom": "^19.2.
|
|
112
|
-
"react-router-dom": "^7.
|
|
113
|
-
"typescript": "
|
|
114
|
-
"typescript-eslint": "8.
|
|
115
|
-
"vite": "
|
|
116
|
-
"vitest": "4.
|
|
117
|
-
"wrangler": "^4.
|
|
108
|
+
"pkg-pr-new": "^0.0.70",
|
|
109
|
+
"prettier": "3.8.3",
|
|
110
|
+
"react": "^19.2.5",
|
|
111
|
+
"react-dom": "^19.2.5",
|
|
112
|
+
"react-router-dom": "^7.14.2",
|
|
113
|
+
"typescript": "6.0.3",
|
|
114
|
+
"typescript-eslint": "8.59.2",
|
|
115
|
+
"vite": "8.0.10",
|
|
116
|
+
"vitest": "4.1.5",
|
|
117
|
+
"wrangler": "^4.87.0"
|
|
118
118
|
},
|
|
119
119
|
"types": "./dist/client/index.d.ts",
|
|
120
120
|
"module": "./dist/client/index.js"
|
|
@@ -124,6 +124,45 @@ describe("OAuthProvider", () => {
|
|
|
124
124
|
codeChallengeMethod: "S256",
|
|
125
125
|
});
|
|
126
126
|
});
|
|
127
|
+
|
|
128
|
+
test("passes resource to authorization records and authorization codes", async () => {
|
|
129
|
+
const provider = new OAuthProvider(component as any, config);
|
|
130
|
+
const runMutation = vi.fn(async (mutationRef: string, _args: unknown) => {
|
|
131
|
+
if (mutationRef === component.mutations.issueAuthorizationCode) {
|
|
132
|
+
return "code";
|
|
133
|
+
}
|
|
134
|
+
if (mutationRef === component.mutations.upsertAuthorization) {
|
|
135
|
+
return "auth";
|
|
136
|
+
}
|
|
137
|
+
return undefined;
|
|
138
|
+
});
|
|
139
|
+
const ctx = { runMutation };
|
|
140
|
+
|
|
141
|
+
await provider.issueAuthorizationCode(ctx as any, {
|
|
142
|
+
userId: "user-1",
|
|
143
|
+
clientId: "client-1",
|
|
144
|
+
scopes: ["openid"],
|
|
145
|
+
redirectUri: "https://cb",
|
|
146
|
+
codeChallenge: "challenge",
|
|
147
|
+
resource: "https://api.example.com/mcp",
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
expect(runMutation).toHaveBeenCalledWith(component.mutations.upsertAuthorization, {
|
|
151
|
+
userId: "user-1",
|
|
152
|
+
clientId: "client-1",
|
|
153
|
+
scopes: ["openid"],
|
|
154
|
+
resource: "https://api.example.com/mcp",
|
|
155
|
+
});
|
|
156
|
+
expect(runMutation).toHaveBeenCalledWith(component.mutations.issueAuthorizationCode, {
|
|
157
|
+
userId: "user-1",
|
|
158
|
+
clientId: "client-1",
|
|
159
|
+
scopes: ["openid"],
|
|
160
|
+
redirectUri: "https://cb",
|
|
161
|
+
codeChallenge: "challenge",
|
|
162
|
+
codeChallengeMethod: "S256",
|
|
163
|
+
resource: "https://api.example.com/mcp",
|
|
164
|
+
});
|
|
165
|
+
});
|
|
127
166
|
});
|
|
128
167
|
|
|
129
168
|
describe("API methods", () => {
|
package/src/client/index.ts
CHANGED
|
@@ -185,6 +185,7 @@ export class OAuthProvider {
|
|
|
185
185
|
codeChallenge?: string;
|
|
186
186
|
codeChallengeMethod?: string;
|
|
187
187
|
nonce?: string;
|
|
188
|
+
resource?: string;
|
|
188
189
|
}): Promise<string> {
|
|
189
190
|
if (!args.codeChallenge) {
|
|
190
191
|
throw new Error("codeChallenge required");
|
|
@@ -199,6 +200,7 @@ export class OAuthProvider {
|
|
|
199
200
|
userId: args.userId,
|
|
200
201
|
clientId: args.clientId,
|
|
201
202
|
scopes: args.scopes,
|
|
203
|
+
...(args.resource ? { resource: args.resource } : {}),
|
|
202
204
|
});
|
|
203
205
|
|
|
204
206
|
// 2. Issue the authorization code
|
|
@@ -228,6 +230,7 @@ export class OAuthProvider {
|
|
|
228
230
|
logoUrl?: string;
|
|
229
231
|
tosUrl?: string;
|
|
230
232
|
policyUrl?: string;
|
|
233
|
+
tokenEndpointAuthMethod?: "client_secret_basic" | "client_secret_post" | "none";
|
|
231
234
|
}) {
|
|
232
235
|
return this.api.clientManagement.registerClient(ctx, args);
|
|
233
236
|
}
|
|
@@ -267,6 +270,7 @@ export class OAuthProvider {
|
|
|
267
270
|
userId: string;
|
|
268
271
|
clientId: string;
|
|
269
272
|
scopes: string[];
|
|
273
|
+
resource?: string;
|
|
270
274
|
}) {
|
|
271
275
|
return ctx.runMutation(this.component.mutations.upsertAuthorization, args);
|
|
272
276
|
}
|