@effect-auth/core 0.1.0-alpha.6 → 0.1.0-alpha.7

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.
@@ -0,0 +1,11 @@
1
+ import { verifyAuthenticationResponse as simpleWebAuthnVerifyAuthenticationResponse, verifyRegistrationResponse as simpleWebAuthnVerifyRegistrationResponse } from "@simplewebauthn/server";
2
+ import { Layer } from "effect";
3
+ import { PasskeyVerifier } from "./Passkey.js";
4
+ import type { PasskeyVerifierService } from "./Passkey.js";
5
+ export interface SimpleWebAuthnPasskeyVerifierOptions {
6
+ readonly verifyRegistrationResponse?: typeof simpleWebAuthnVerifyRegistrationResponse;
7
+ readonly verifyAuthenticationResponse?: typeof simpleWebAuthnVerifyAuthenticationResponse;
8
+ }
9
+ export declare const makeSimpleWebAuthnPasskeyVerifier: (options?: SimpleWebAuthnPasskeyVerifierOptions) => PasskeyVerifierService;
10
+ export declare const SimpleWebAuthnPasskeyVerifierLive: Layer.Layer<PasskeyVerifier, never, never>;
11
+ //# sourceMappingURL=PasskeySimpleWebAuthn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasskeySimpleWebAuthn.d.ts","sourceRoot":"","sources":["../src/PasskeySimpleWebAuthn.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,IAAI,0CAA0C,EAC1E,0BAA0B,IAAI,wCAAwC,EACvE,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAAoB,KAAK,EAAU,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAEL,eAAe,EAEhB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAIV,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,wCAAwC,CAAC;IACtF,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,0CAA0C,CAAC;CAC3F;AAkMD,eAAO,MAAM,iCAAiC,GAC5C,UAAS,oCAAyC,KACjD,sBAgHF,CAAC;AAEF,eAAO,MAAM,iCAAiC,4CAG7C,CAAC"}
@@ -0,0 +1,181 @@
1
+ import { verifyAuthenticationResponse as simpleWebAuthnVerifyAuthenticationResponse, verifyRegistrationResponse as simpleWebAuthnVerifyRegistrationResponse, } from "@simplewebauthn/server";
2
+ import { Effect, Encoding, Layer, Result } from "effect";
3
+ import { PasskeyCredentialId, PasskeyVerifier, PasskeyVerifierError, } from "./Passkey.js";
4
+ const textDecoder = new TextDecoder();
5
+ const verifierError = (operation, message, cause) => new PasskeyVerifierError({
6
+ operation,
7
+ message,
8
+ ...(cause === undefined ? {} : { cause }),
9
+ });
10
+ const responseString = (credential, key, operation) => {
11
+ const value = credential.response[key];
12
+ return typeof value === "string"
13
+ ? Effect.succeed(value)
14
+ : Effect.fail(verifierError(operation, `Missing ${key}`));
15
+ };
16
+ const optionalResponseString = (credential, key, operation) => {
17
+ const value = credential.response[key];
18
+ return value === undefined
19
+ ? Effect.succeed(undefined)
20
+ : typeof value === "string"
21
+ ? Effect.succeed(value)
22
+ : Effect.fail(verifierError(operation, `Invalid ${key}`));
23
+ };
24
+ const decodeBase64UrlBytes = (value, operation) => Result.match(Encoding.decodeBase64Url(value), {
25
+ onSuccess: Effect.succeed,
26
+ onFailure: (cause) => Effect.fail(verifierError(operation, "Invalid base64url value", cause)),
27
+ });
28
+ const clientDataChallenge = (clientDataJSON, operation) => decodeBase64UrlBytes(clientDataJSON, operation).pipe(Effect.flatMap((bytes) => Effect.try({
29
+ try: () => JSON.parse(textDecoder.decode(bytes)),
30
+ catch: (cause) => verifierError(operation, "Invalid clientDataJSON", cause),
31
+ })), Effect.flatMap((clientData) => typeof clientData.challenge === "string"
32
+ ? Effect.succeed(clientData.challenge)
33
+ : Effect.fail(verifierError(operation, "Missing clientData challenge"))));
34
+ const expectedOrigin = (origin) => typeof origin === "string" ? origin : [...origin];
35
+ const passkeyAuthenticatorAttachment = (credential, operation) => {
36
+ const attachment = credential.authenticatorAttachment;
37
+ return attachment === undefined
38
+ ? Effect.succeed(undefined)
39
+ : attachment === "cross-platform" || attachment === "platform"
40
+ ? Effect.succeed(attachment)
41
+ : Effect.fail(verifierError(operation, "Invalid authenticatorAttachment"));
42
+ };
43
+ const stringArrayResponse = (credential, key, operation) => {
44
+ const value = credential.response[key];
45
+ return value === undefined
46
+ ? Effect.succeed(undefined)
47
+ : Array.isArray(value) && value.every((item) => typeof item === "string")
48
+ ? Effect.succeed(value)
49
+ : Effect.fail(verifierError(operation, `Invalid ${key}`));
50
+ };
51
+ const registrationResponseForSimpleWebAuthn = (credential) => Effect.gen(function* () {
52
+ const operation = "verify-registration";
53
+ const clientDataJSON = yield* responseString(credential, "clientDataJSON", operation);
54
+ const attestationObject = yield* responseString(credential, "attestationObject", operation);
55
+ const attachment = yield* passkeyAuthenticatorAttachment(credential, operation);
56
+ const transports = yield* stringArrayResponse(credential, "transports", operation);
57
+ return {
58
+ id: credential.id,
59
+ rawId: credential.rawId ?? credential.id,
60
+ type: credential.type,
61
+ response: {
62
+ clientDataJSON,
63
+ attestationObject,
64
+ ...(transports === undefined
65
+ ? {}
66
+ : {
67
+ transports: transports,
68
+ }),
69
+ },
70
+ ...(attachment === undefined ? {} : { authenticatorAttachment: attachment }),
71
+ clientExtensionResults: credential.clientExtensionResults ?? {},
72
+ };
73
+ });
74
+ const authenticationResponseForSimpleWebAuthn = (credential) => Effect.gen(function* () {
75
+ const operation = "verify-authentication";
76
+ const clientDataJSON = yield* responseString(credential, "clientDataJSON", operation);
77
+ const authenticatorData = yield* responseString(credential, "authenticatorData", operation);
78
+ const signature = yield* responseString(credential, "signature", operation);
79
+ const userHandle = yield* optionalResponseString(credential, "userHandle", operation);
80
+ const attachment = yield* passkeyAuthenticatorAttachment(credential, operation);
81
+ return {
82
+ id: credential.id,
83
+ rawId: credential.rawId ?? credential.id,
84
+ type: credential.type,
85
+ response: {
86
+ clientDataJSON,
87
+ authenticatorData,
88
+ signature,
89
+ ...(userHandle === undefined ? {} : { userHandle }),
90
+ },
91
+ ...(attachment === undefined ? {} : { authenticatorAttachment: attachment }),
92
+ clientExtensionResults: credential.clientExtensionResults ?? {},
93
+ };
94
+ });
95
+ const credentialForSimpleWebAuthn = (credential) => decodeBase64UrlBytes(credential.publicKey, "verify-authentication").pipe(Effect.map((publicKey) => ({
96
+ id: credential.credentialId,
97
+ publicKey: new Uint8Array(publicKey),
98
+ counter: credential.signCount,
99
+ ...(credential.transports === undefined
100
+ ? {}
101
+ : {
102
+ transports: credential.transports,
103
+ }),
104
+ })));
105
+ export const makeSimpleWebAuthnPasskeyVerifier = (options = {}) => {
106
+ const verifyRegistrationResponse = options.verifyRegistrationResponse ?? simpleWebAuthnVerifyRegistrationResponse;
107
+ const verifyAuthenticationResponse = options.verifyAuthenticationResponse ?? simpleWebAuthnVerifyAuthenticationResponse;
108
+ return PasskeyVerifier.make({
109
+ readAuthenticationCredentialId: ({ response }) => Effect.succeed(PasskeyCredentialId(response.id)),
110
+ verifyRegistration: (input) => Effect.gen(function* () {
111
+ const response = yield* registrationResponseForSimpleWebAuthn(input.response);
112
+ const challenge = yield* clientDataChallenge(response.response.clientDataJSON, "verify-registration");
113
+ const result = yield* Effect.tryPromise({
114
+ try: () => verifyRegistrationResponse({
115
+ response,
116
+ expectedChallenge: challenge,
117
+ expectedOrigin: expectedOrigin(input.expectedOrigin),
118
+ expectedRPID: input.relyingPartyId,
119
+ ...(input.requireUserVerification === undefined
120
+ ? {}
121
+ : { requireUserVerification: input.requireUserVerification }),
122
+ }),
123
+ catch: (cause) => verifierError("verify-registration", "Failed to verify registration response", cause),
124
+ });
125
+ const info = result.registrationInfo;
126
+ if (!result.verified || info === undefined) {
127
+ return yield* verifierError("verify-registration", "Passkey registration was not verified");
128
+ }
129
+ return {
130
+ challenge,
131
+ credentialId: PasskeyCredentialId(info.credential.id),
132
+ publicKey: Encoding.encodeBase64Url(info.credential.publicKey),
133
+ signCount: info.credential.counter,
134
+ ...(info.credential.transports === undefined
135
+ ? {}
136
+ : { transports: info.credential.transports }),
137
+ backedUp: info.credentialBackedUp,
138
+ metadata: {
139
+ credentialDeviceType: info.credentialDeviceType,
140
+ origin: info.origin,
141
+ ...(info.rpID === undefined ? {} : { rpId: info.rpID }),
142
+ },
143
+ };
144
+ }),
145
+ verifyAuthentication: (input) => Effect.gen(function* () {
146
+ const response = yield* authenticationResponseForSimpleWebAuthn(input.response);
147
+ const challenge = yield* clientDataChallenge(response.response.clientDataJSON, "verify-authentication");
148
+ const credential = yield* credentialForSimpleWebAuthn(input.credential);
149
+ const result = yield* Effect.tryPromise({
150
+ try: () => verifyAuthenticationResponse({
151
+ response,
152
+ expectedChallenge: challenge,
153
+ expectedOrigin: expectedOrigin(input.expectedOrigin),
154
+ expectedRPID: input.relyingPartyId,
155
+ credential,
156
+ ...(input.requireUserVerification === undefined
157
+ ? {}
158
+ : { requireUserVerification: input.requireUserVerification }),
159
+ }),
160
+ catch: (cause) => verifierError("verify-authentication", "Failed to verify authentication response", cause),
161
+ });
162
+ const info = result.authenticationInfo;
163
+ if (!result.verified) {
164
+ return yield* verifierError("verify-authentication", "Passkey authentication was not verified");
165
+ }
166
+ return {
167
+ challenge,
168
+ credentialId: PasskeyCredentialId(info.credentialID),
169
+ newSignCount: info.newCounter,
170
+ userVerified: info.userVerified,
171
+ metadata: {
172
+ credentialDeviceType: info.credentialDeviceType,
173
+ origin: info.origin,
174
+ rpId: info.rpID,
175
+ },
176
+ };
177
+ }),
178
+ });
179
+ };
180
+ export const SimpleWebAuthnPasskeyVerifierLive = Layer.succeed(PasskeyVerifier, makeSimpleWebAuthnPasskeyVerifier());
181
+ //# sourceMappingURL=PasskeySimpleWebAuthn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasskeySimpleWebAuthn.js","sourceRoot":"","sources":["../src/PasskeySimpleWebAuthn.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-auth/core",
3
- "version": "0.1.0-alpha.6",
3
+ "version": "0.1.0-alpha.7",
4
4
  "description": "Composable Effect-first authentication primitives.",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -157,6 +157,10 @@
157
157
  "types": "./dist/Passkey.d.ts",
158
158
  "default": "./dist/Passkey.js"
159
159
  },
160
+ "./PasskeySimpleWebAuthn": {
161
+ "types": "./dist/PasskeySimpleWebAuthn.d.ts",
162
+ "default": "./dist/PasskeySimpleWebAuthn.js"
163
+ },
160
164
  "./Sessions": {
161
165
  "types": "./dist/Sessions.d.ts",
162
166
  "default": "./dist/Sessions.js"
@@ -201,12 +205,16 @@
201
205
  "type-test": "tsc -p tsconfig.type-tests.json --pretty false"
202
206
  },
203
207
  "peerDependencies": {
208
+ "@simplewebauthn/server": "^13.3.1",
204
209
  "alchemy": ">=2.0.0-beta.44 <3",
205
210
  "effect": "^4.0.0-beta.67",
206
211
  "effect-qb": "4.0.0-beta.66",
207
212
  "kysely": "^0.29.2"
208
213
  },
209
214
  "peerDependenciesMeta": {
215
+ "@simplewebauthn/server": {
216
+ "optional": true
217
+ },
210
218
  "alchemy": {
211
219
  "optional": true
212
220
  },