@account-kit/react-native-signer 4.36.0 → 4.37.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/README.md +13 -3
- package/lib/commonjs/client.js +85 -29
- package/lib/commonjs/client.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/signer.js +2 -0
- package/lib/commonjs/signer.js.map +1 -1
- package/lib/module/client.js +84 -29
- package/lib/module/client.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/signer.js +1 -0
- package/lib/module/signer.js.map +1 -1
- package/lib/typescript/commonjs/src/client.d.ts +15 -7
- package/lib/typescript/commonjs/src/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +3 -3
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/signer.d.ts +6 -1
- package/lib/typescript/commonjs/src/signer.d.ts.map +1 -1
- package/lib/typescript/module/src/client.d.ts +15 -7
- package/lib/typescript/module/src/client.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +3 -3
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/signer.d.ts +6 -1
- package/lib/typescript/module/src/signer.d.ts.map +1 -1
- package/package.json +11 -5
- package/src/client.ts +122 -37
- package/src/index.tsx +4 -0
- package/src/signer.ts +2 -1
- package/src/index.ts +0 -3
package/README.md
CHANGED
|
@@ -14,11 +14,21 @@ npm install @account-kit/react-native-signer
|
|
|
14
14
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
|
-
This package requires
|
|
17
|
+
This package requires several packages containing native modules to be installed in your project. Check out their docs at the following links for installation instructions.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
- [react-native-mmkv](https://github.com/mrousavy/react-native-mmkv)
|
|
20
|
+
- [react-native-get-random-values](https://github.com/LinusU/react-native-get-random-values)
|
|
21
|
+
- [react-native-passkey](https://github.com/f-23/react-native-passkey)
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
#### Passkeys
|
|
24
|
+
|
|
25
|
+
If using passkeys, there are iOS- and Android-specific steps to link your app to an associated domain to which the passkeys will be connected. This means hosting specific JSON files from a domain you control. For details on this, see the [instructions in the react-native-passkey README](https://github.com/f-23/react-native-passkey?tab=readme-ov-file#configuration).
|
|
26
|
+
|
|
27
|
+
#### Deep Linking
|
|
28
|
+
|
|
29
|
+
We recommend using emails containing OTP codes (the default setting) to avoid the need for this step.
|
|
30
|
+
|
|
31
|
+
If using emails with magic links, your app will need to be configured to handle deep linking. Check out the React Native [docs](https://reactnative.dev/docs/linking#enabling-deep-links) for more information.
|
|
22
32
|
You will also need a way to trigger the deep link via a http or https url. This can be done in a viarety of ways ranging from universal links to setting up a custom redirect server.
|
|
23
33
|
|
|
24
34
|
See the [example app](./example) for usage information.
|
package/lib/commonjs/client.js
CHANGED
|
@@ -4,8 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.RNSignerClientParamsSchema = exports.RNSignerClient = void 0;
|
|
7
|
+
require("react-native-get-random-values");
|
|
7
8
|
require("./utils/buffer-polyfill.js");
|
|
8
9
|
require("./utils/mmkv-localstorage-polyfill.js");
|
|
10
|
+
var _reactNativePasskeyStamper = require("@turnkey/react-native-passkey-stamper");
|
|
11
|
+
var _uuid = require("uuid");
|
|
9
12
|
var _signer = require("@account-kit/signer");
|
|
10
13
|
var _reactNativeInappbrowserReborn = require("react-native-inappbrowser-reborn");
|
|
11
14
|
var _zod = require("zod");
|
|
@@ -16,10 +19,13 @@ var _parseMfaError = require("./utils/parseMfaError.js");
|
|
|
16
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
20
|
/* eslint-disable import/extensions */
|
|
18
21
|
|
|
22
|
+
/* eslint-disable import/extensions */
|
|
23
|
+
|
|
19
24
|
const RNSignerClientParamsSchema = exports.RNSignerClientParamsSchema = _zod.z.object({
|
|
20
25
|
connection: _zod.z.custom(),
|
|
21
26
|
rootOrgId: _zod.z.string().optional(),
|
|
22
|
-
oauthCallbackUrl: _zod.z.string().optional().default("https://signer.alchemy.com/callback")
|
|
27
|
+
oauthCallbackUrl: _zod.z.string().optional().default("https://signer.alchemy.com/callback"),
|
|
28
|
+
rpId: _zod.z.string().optional()
|
|
23
29
|
});
|
|
24
30
|
// TODO: need to emit events
|
|
25
31
|
class RNSignerClient extends _signer.BaseSignerClient {
|
|
@@ -29,7 +35,8 @@ class RNSignerClient extends _signer.BaseSignerClient {
|
|
|
29
35
|
const {
|
|
30
36
|
connection,
|
|
31
37
|
rootOrgId,
|
|
32
|
-
oauthCallbackUrl
|
|
38
|
+
oauthCallbackUrl,
|
|
39
|
+
rpId
|
|
33
40
|
} = RNSignerClientParamsSchema.parse(params);
|
|
34
41
|
super({
|
|
35
42
|
stamper: _NativeTEKStamper.default,
|
|
@@ -37,6 +44,7 @@ class RNSignerClient extends _signer.BaseSignerClient {
|
|
|
37
44
|
connection
|
|
38
45
|
});
|
|
39
46
|
this.oauthCallbackUrl = oauthCallbackUrl;
|
|
47
|
+
this.rpId = rpId;
|
|
40
48
|
}
|
|
41
49
|
async submitOtpCode(args) {
|
|
42
50
|
this.eventEmitter.emit("authenticating", {
|
|
@@ -66,27 +74,6 @@ class RNSignerClient extends _signer.BaseSignerClient {
|
|
|
66
74
|
// Otherwise, it's truly an error:
|
|
67
75
|
throw new Error("Failed to submit OTP code. Server did not return required fields.");
|
|
68
76
|
}
|
|
69
|
-
async createAccount(params) {
|
|
70
|
-
if (params.type !== "email") {
|
|
71
|
-
throw new Error("Only email account creation is supported");
|
|
72
|
-
}
|
|
73
|
-
this.eventEmitter.emit("authenticating", {
|
|
74
|
-
type: "email"
|
|
75
|
-
});
|
|
76
|
-
const {
|
|
77
|
-
email,
|
|
78
|
-
expirationSeconds
|
|
79
|
-
} = params;
|
|
80
|
-
const publicKey = await this.stamper.init();
|
|
81
|
-
const response = await this.request("/v1/signup", {
|
|
82
|
-
email,
|
|
83
|
-
emailMode: params.emailMode,
|
|
84
|
-
targetPublicKey: publicKey,
|
|
85
|
-
expirationSeconds,
|
|
86
|
-
redirectParams: params.redirectParams?.toString()
|
|
87
|
-
});
|
|
88
|
-
return response;
|
|
89
|
-
}
|
|
90
77
|
async initEmailAuth(params) {
|
|
91
78
|
this.eventEmitter.emit("authenticating", {
|
|
92
79
|
type: "email"
|
|
@@ -187,15 +174,38 @@ class RNSignerClient extends _signer.BaseSignerClient {
|
|
|
187
174
|
exportWallet(_params) {
|
|
188
175
|
throw new Error("Method not implemented.");
|
|
189
176
|
}
|
|
190
|
-
lookupUserWithPasskey(_user) {
|
|
191
|
-
throw new Error("Method not implemented.");
|
|
192
|
-
}
|
|
193
177
|
targetPublicKey() {
|
|
194
178
|
return this.stamper.init();
|
|
195
179
|
}
|
|
196
|
-
getWebAuthnAttestation(
|
|
197
|
-
|
|
198
|
-
}
|
|
180
|
+
getWebAuthnAttestation = async (options, userDetails = {
|
|
181
|
+
username: this.user?.email ?? "anonymous"
|
|
182
|
+
}) => {
|
|
183
|
+
const {
|
|
184
|
+
username
|
|
185
|
+
} = userDetails;
|
|
186
|
+
const authenticatorUserId = getAuthenticatorUserId(options);
|
|
187
|
+
const rpId = this.requireRpId(options);
|
|
188
|
+
const authenticatorParams = await (0, _reactNativePasskeyStamper.createPasskey)({
|
|
189
|
+
rp: {
|
|
190
|
+
id: rpId,
|
|
191
|
+
name: rpId,
|
|
192
|
+
...options?.publicKey?.rp
|
|
193
|
+
},
|
|
194
|
+
user: {
|
|
195
|
+
name: username,
|
|
196
|
+
displayName: username,
|
|
197
|
+
...options?.publicKey?.user,
|
|
198
|
+
id: (0, _uuid.stringify)(bufferSourceToUint8Array(authenticatorUserId))
|
|
199
|
+
},
|
|
200
|
+
authenticatorName: "End-User Passkey"
|
|
201
|
+
});
|
|
202
|
+
return {
|
|
203
|
+
attestation: authenticatorParams.attestation,
|
|
204
|
+
challenge: authenticatorParams.challenge,
|
|
205
|
+
authenticatorUserId,
|
|
206
|
+
rpId
|
|
207
|
+
};
|
|
208
|
+
};
|
|
199
209
|
getOauthConfig = async () => {
|
|
200
210
|
const publicKey = await this.stamper.init();
|
|
201
211
|
const nonce = this.getOauthNonce(publicKey);
|
|
@@ -203,6 +213,52 @@ class RNSignerClient extends _signer.BaseSignerClient {
|
|
|
203
213
|
nonce
|
|
204
214
|
});
|
|
205
215
|
};
|
|
216
|
+
async initSessionStamper() {
|
|
217
|
+
return this.stamper.init();
|
|
218
|
+
}
|
|
219
|
+
async initWebauthnStamper(user = this.user, options) {
|
|
220
|
+
const rpId = this.requireRpId(options);
|
|
221
|
+
this.setStamper(new _reactNativePasskeyStamper.PasskeyStamper({
|
|
222
|
+
rpId,
|
|
223
|
+
allowCredentials: user?.credentialId ? [{
|
|
224
|
+
id: user.credentialId,
|
|
225
|
+
type: "public-key",
|
|
226
|
+
transports: ["internal", "hybrid"]
|
|
227
|
+
}] : undefined
|
|
228
|
+
}));
|
|
229
|
+
}
|
|
230
|
+
requireRpId(options) {
|
|
231
|
+
const rpId = options?.publicKey?.rp?.id ?? this.rpId;
|
|
232
|
+
if (!rpId) {
|
|
233
|
+
throw new Error("rpId must be set in configuration to use passkeys in React Native");
|
|
234
|
+
}
|
|
235
|
+
return rpId;
|
|
236
|
+
}
|
|
206
237
|
}
|
|
207
238
|
exports.RNSignerClient = RNSignerClient;
|
|
239
|
+
function getAuthenticatorUserId(options) {
|
|
240
|
+
// Android requires this to be a UUIDv4.
|
|
241
|
+
const id = options?.publicKey?.user?.id;
|
|
242
|
+
if (id) {
|
|
243
|
+
const stringId = (0, _uuid.stringify)(id);
|
|
244
|
+
if (!(0, _uuid.validate)(stringId) || (0, _uuid.version)(stringId) !== 4) {
|
|
245
|
+
throw new Error("Challenge must be a valid UUIDv4 to support Android");
|
|
246
|
+
}
|
|
247
|
+
return id;
|
|
248
|
+
}
|
|
249
|
+
return (0, _uuid.parse)((0, _uuid.v4)());
|
|
250
|
+
}
|
|
251
|
+
function bufferSourceToUint8Array(bufferSource) {
|
|
252
|
+
if (bufferSource instanceof Uint8Array) {
|
|
253
|
+
return bufferSource;
|
|
254
|
+
}
|
|
255
|
+
if (bufferSource instanceof ArrayBuffer) {
|
|
256
|
+
return new Uint8Array(bufferSource);
|
|
257
|
+
}
|
|
258
|
+
if (ArrayBuffer.isView(bufferSource)) {
|
|
259
|
+
// Any other TypedArray (e.g., Int16Array, Float32Array, etc.)
|
|
260
|
+
return new Uint8Array(bufferSource.buffer, bufferSource.byteOffset, bufferSource.byteLength);
|
|
261
|
+
}
|
|
262
|
+
throw new TypeError("Input must be a BufferSource (ArrayBuffer or TypedArray)");
|
|
263
|
+
}
|
|
208
264
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_signer","_reactNativeInappbrowserReborn","_zod","_errors","_NativeTEKStamper","_interopRequireDefault","_parseUrlParams","_parseMfaError","e","__esModule","default","RNSignerClientParamsSchema","exports","z","object","connection","custom","rootOrgId","string","optional","oauthCallbackUrl","RNSignerClient","BaseSignerClient","stamper","NativeTEKStamper","validAuthenticatingTypes","constructor","params","parse","submitOtpCode","args","eventEmitter","emit","type","publicKey","init","response","request","targetPublicKey","credentialBundle","mfaRequired","bundle","status","encryptedPayload","multiFactors","Error","
|
|
1
|
+
{"version":3,"names":["require","_reactNativePasskeyStamper","_uuid","_signer","_reactNativeInappbrowserReborn","_zod","_errors","_NativeTEKStamper","_interopRequireDefault","_parseUrlParams","_parseMfaError","e","__esModule","default","RNSignerClientParamsSchema","exports","z","object","connection","custom","rootOrgId","string","optional","oauthCallbackUrl","rpId","RNSignerClient","BaseSignerClient","stamper","NativeTEKStamper","validAuthenticatingTypes","constructor","params","parse","submitOtpCode","args","eventEmitter","emit","type","publicKey","init","response","request","targetPublicKey","credentialBundle","mfaRequired","bundle","status","encryptedPayload","multiFactors","Error","initEmailAuth","email","emailMode","error","parseMfaError","MfaRequiredError","completeAuthWithBundle","includes","authenticatingType","result","injectCredentialBundle","user","whoami","orgId","idToken","connectedEventName","oauthWithRedirect","InAppBrowser","isAvailable","InAppBrowserUnavailableError","oauthParams","turnkeyPublicKey","oauthConfig","getOauthConfig","providerUrl","getOauthProviderUrl","usesRelativeUrl","redirectUrl","res","openAuth","url","OauthFailedError","authResult","parseSearchParams","isSignup","oauthWithPopup","_args","disconnect","undefined","clear","exportWallet","_params","getWebAuthnAttestation","options","userDetails","username","authenticatorUserId","getAuthenticatorUserId","requireRpId","authenticatorParams","createPasskey","rp","id","name","displayName","uuidStringify","bufferSourceToUint8Array","authenticatorName","attestation","challenge","nonce","getOauthNonce","initSessionStamper","initWebauthnStamper","setStamper","PasskeyStamper","allowCredentials","credentialId","transports","stringId","uuidValidate","uuidVersion","uuidParse","uuidv4","bufferSource","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","TypeError"],"sourceRoot":"../../src","sources":["client.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_signer","require","_client"],"sourceRoot":"../../src","sources":["index.
|
|
1
|
+
{"version":3,"names":["_signer","require","_client"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA","ignoreList":[]}
|
package/lib/commonjs/signer.js
CHANGED
|
@@ -8,6 +8,8 @@ exports.RNAlchemySignerSingleton = void 0;
|
|
|
8
8
|
var _signer = require("@account-kit/signer");
|
|
9
9
|
var _zod = require("zod");
|
|
10
10
|
var _client = require("./client.js");
|
|
11
|
+
/* eslint-disable import/extensions */
|
|
12
|
+
|
|
11
13
|
const RNAlchemySignerParamsSchema = _zod.z.object({
|
|
12
14
|
client: _zod.z.custom().or(_client.RNSignerClientParamsSchema)
|
|
13
15
|
}).extend({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_signer","require","_zod","_client","RNAlchemySignerParamsSchema","z","object","client","custom","or","RNSignerClientParamsSchema","extend","sessionConfig","SessionManagerParamsSchema","omit","storage","optional","RNAlchemySignerSingleton","BaseAlchemySigner","constructor","params","instance","params_","parse","RNSignerClient","signerType","getInstance","exports","RNAlchemySigner"],"sourceRoot":"../../src","sources":["signer.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"names":["_signer","require","_zod","_client","RNAlchemySignerParamsSchema","z","object","client","custom","or","RNSignerClientParamsSchema","extend","sessionConfig","SessionManagerParamsSchema","omit","storage","optional","RNAlchemySignerSingleton","BaseAlchemySigner","constructor","params","instance","params_","parse","RNSignerClient","signerType","getInstance","exports","RNAlchemySigner"],"sourceRoot":"../../src","sources":["signer.ts"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAIA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AANA;;AAQA,MAAMG,2BAA2B,GAAGC,MAAC,CAClCC,MAAM,CAAC;EACNC,MAAM,EAAEF,MAAC,CAACG,MAAM,CAAiB,CAAC,CAACC,EAAE,CAACC,kCAA0B;AAClE,CAAC,CAAC,CACDC,MAAM,CAAC;EACNC,aAAa,EAAEC,kCAA0B,CAACC,IAAI,CAAC;IAC7CP,MAAM,EAAE,IAAI;IACZQ,OAAO,EAAE;EACX,CAAC,CAAC,CAACC,QAAQ,CAAC;AACd,CAAC,CAAC;AAIG,MAAMC,wBAAwB,SAASC,yBAAiB,CAAiB;EAGtEC,WAAWA,CAACC,MAA6B,EAAE;IACjD,IAAI,CAAC,CAACH,wBAAwB,CAACI,QAAQ,EAAE;MACvC,OAAOJ,wBAAwB,CAACI,QAAQ;IAC1C;IAEA,MAAM;MAAET,aAAa;MAAE,GAAGU;IAAQ,CAAC,GACjClB,2BAA2B,CAACmB,KAAK,CAACH,MAAM,CAAC;IAE3C,IAAIb,MAAsB;IAE1B,IAAI,YAAY,IAAIe,OAAO,CAACf,MAAM,EAAE;MAClCA,MAAM,GAAG,IAAIiB,sBAAc,CAACF,OAAO,CAACf,MAAM,CAAC;IAC7C,CAAC,MAAM;MACLA,MAAM,GAAGe,OAAO,CAACf,MAAM;IACzB;IAEA,KAAK,CAAC;MACJA,MAAM;MACNK;IACF,CAAC,CAAC;IAEF,IAAI,CAACa,UAAU,GAAG,mBAAmB;EACvC;EAEA,OAAcC,WAAWA,CAACN,MAA6B,EAAE;IACvD,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE;MAClB,IAAI,CAACA,QAAQ,GAAG,IAAIJ,wBAAwB,CAACG,MAAM,CAAC;IACtD;IACA,OAAO,IAAI,CAACC,QAAQ;EACtB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtBAM,OAAA,CAAAV,wBAAA,GAAAA,wBAAA;AAuBO,SAASW,eAAeA,CAACR,MAA6B,EAAE;EAC7D,MAAMC,QAAQ,GAAGJ,wBAAwB,CAACS,WAAW,CAACN,MAAM,CAAC;EAE7D,OAAOC,QAAQ;AACjB","ignoreList":[]}
|
package/lib/module/client.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
/* eslint-disable import/extensions */
|
|
4
|
+
import "react-native-get-random-values";
|
|
3
5
|
import "./utils/buffer-polyfill.js";
|
|
4
6
|
import "./utils/mmkv-localstorage-polyfill.js";
|
|
5
7
|
|
|
6
8
|
/* eslint-disable import/extensions */
|
|
7
9
|
|
|
10
|
+
import { createPasskey, PasskeyStamper } from "@turnkey/react-native-passkey-stamper";
|
|
11
|
+
import { stringify as uuidStringify, parse as uuidParse, v4 as uuidv4, validate as uuidValidate, version as uuidVersion } from "uuid";
|
|
8
12
|
import { BaseSignerClient, OauthFailedError, MfaRequiredError } from "@account-kit/signer";
|
|
9
13
|
import { InAppBrowser } from "react-native-inappbrowser-reborn";
|
|
10
14
|
import { z } from "zod";
|
|
@@ -15,7 +19,8 @@ import { parseMfaError } from "./utils/parseMfaError.js";
|
|
|
15
19
|
export const RNSignerClientParamsSchema = z.object({
|
|
16
20
|
connection: z.custom(),
|
|
17
21
|
rootOrgId: z.string().optional(),
|
|
18
|
-
oauthCallbackUrl: z.string().optional().default("https://signer.alchemy.com/callback")
|
|
22
|
+
oauthCallbackUrl: z.string().optional().default("https://signer.alchemy.com/callback"),
|
|
23
|
+
rpId: z.string().optional()
|
|
19
24
|
});
|
|
20
25
|
// TODO: need to emit events
|
|
21
26
|
export class RNSignerClient extends BaseSignerClient {
|
|
@@ -25,7 +30,8 @@ export class RNSignerClient extends BaseSignerClient {
|
|
|
25
30
|
const {
|
|
26
31
|
connection,
|
|
27
32
|
rootOrgId,
|
|
28
|
-
oauthCallbackUrl
|
|
33
|
+
oauthCallbackUrl,
|
|
34
|
+
rpId
|
|
29
35
|
} = RNSignerClientParamsSchema.parse(params);
|
|
30
36
|
super({
|
|
31
37
|
stamper: NativeTEKStamper,
|
|
@@ -33,6 +39,7 @@ export class RNSignerClient extends BaseSignerClient {
|
|
|
33
39
|
connection
|
|
34
40
|
});
|
|
35
41
|
this.oauthCallbackUrl = oauthCallbackUrl;
|
|
42
|
+
this.rpId = rpId;
|
|
36
43
|
}
|
|
37
44
|
async submitOtpCode(args) {
|
|
38
45
|
this.eventEmitter.emit("authenticating", {
|
|
@@ -62,27 +69,6 @@ export class RNSignerClient extends BaseSignerClient {
|
|
|
62
69
|
// Otherwise, it's truly an error:
|
|
63
70
|
throw new Error("Failed to submit OTP code. Server did not return required fields.");
|
|
64
71
|
}
|
|
65
|
-
async createAccount(params) {
|
|
66
|
-
if (params.type !== "email") {
|
|
67
|
-
throw new Error("Only email account creation is supported");
|
|
68
|
-
}
|
|
69
|
-
this.eventEmitter.emit("authenticating", {
|
|
70
|
-
type: "email"
|
|
71
|
-
});
|
|
72
|
-
const {
|
|
73
|
-
email,
|
|
74
|
-
expirationSeconds
|
|
75
|
-
} = params;
|
|
76
|
-
const publicKey = await this.stamper.init();
|
|
77
|
-
const response = await this.request("/v1/signup", {
|
|
78
|
-
email,
|
|
79
|
-
emailMode: params.emailMode,
|
|
80
|
-
targetPublicKey: publicKey,
|
|
81
|
-
expirationSeconds,
|
|
82
|
-
redirectParams: params.redirectParams?.toString()
|
|
83
|
-
});
|
|
84
|
-
return response;
|
|
85
|
-
}
|
|
86
72
|
async initEmailAuth(params) {
|
|
87
73
|
this.eventEmitter.emit("authenticating", {
|
|
88
74
|
type: "email"
|
|
@@ -183,15 +169,38 @@ export class RNSignerClient extends BaseSignerClient {
|
|
|
183
169
|
exportWallet(_params) {
|
|
184
170
|
throw new Error("Method not implemented.");
|
|
185
171
|
}
|
|
186
|
-
lookupUserWithPasskey(_user) {
|
|
187
|
-
throw new Error("Method not implemented.");
|
|
188
|
-
}
|
|
189
172
|
targetPublicKey() {
|
|
190
173
|
return this.stamper.init();
|
|
191
174
|
}
|
|
192
|
-
getWebAuthnAttestation(
|
|
193
|
-
|
|
194
|
-
}
|
|
175
|
+
getWebAuthnAttestation = async (options, userDetails = {
|
|
176
|
+
username: this.user?.email ?? "anonymous"
|
|
177
|
+
}) => {
|
|
178
|
+
const {
|
|
179
|
+
username
|
|
180
|
+
} = userDetails;
|
|
181
|
+
const authenticatorUserId = getAuthenticatorUserId(options);
|
|
182
|
+
const rpId = this.requireRpId(options);
|
|
183
|
+
const authenticatorParams = await createPasskey({
|
|
184
|
+
rp: {
|
|
185
|
+
id: rpId,
|
|
186
|
+
name: rpId,
|
|
187
|
+
...options?.publicKey?.rp
|
|
188
|
+
},
|
|
189
|
+
user: {
|
|
190
|
+
name: username,
|
|
191
|
+
displayName: username,
|
|
192
|
+
...options?.publicKey?.user,
|
|
193
|
+
id: uuidStringify(bufferSourceToUint8Array(authenticatorUserId))
|
|
194
|
+
},
|
|
195
|
+
authenticatorName: "End-User Passkey"
|
|
196
|
+
});
|
|
197
|
+
return {
|
|
198
|
+
attestation: authenticatorParams.attestation,
|
|
199
|
+
challenge: authenticatorParams.challenge,
|
|
200
|
+
authenticatorUserId,
|
|
201
|
+
rpId
|
|
202
|
+
};
|
|
203
|
+
};
|
|
195
204
|
getOauthConfig = async () => {
|
|
196
205
|
const publicKey = await this.stamper.init();
|
|
197
206
|
const nonce = this.getOauthNonce(publicKey);
|
|
@@ -199,5 +208,51 @@ export class RNSignerClient extends BaseSignerClient {
|
|
|
199
208
|
nonce
|
|
200
209
|
});
|
|
201
210
|
};
|
|
211
|
+
async initSessionStamper() {
|
|
212
|
+
return this.stamper.init();
|
|
213
|
+
}
|
|
214
|
+
async initWebauthnStamper(user = this.user, options) {
|
|
215
|
+
const rpId = this.requireRpId(options);
|
|
216
|
+
this.setStamper(new PasskeyStamper({
|
|
217
|
+
rpId,
|
|
218
|
+
allowCredentials: user?.credentialId ? [{
|
|
219
|
+
id: user.credentialId,
|
|
220
|
+
type: "public-key",
|
|
221
|
+
transports: ["internal", "hybrid"]
|
|
222
|
+
}] : undefined
|
|
223
|
+
}));
|
|
224
|
+
}
|
|
225
|
+
requireRpId(options) {
|
|
226
|
+
const rpId = options?.publicKey?.rp?.id ?? this.rpId;
|
|
227
|
+
if (!rpId) {
|
|
228
|
+
throw new Error("rpId must be set in configuration to use passkeys in React Native");
|
|
229
|
+
}
|
|
230
|
+
return rpId;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
function getAuthenticatorUserId(options) {
|
|
234
|
+
// Android requires this to be a UUIDv4.
|
|
235
|
+
const id = options?.publicKey?.user?.id;
|
|
236
|
+
if (id) {
|
|
237
|
+
const stringId = uuidStringify(id);
|
|
238
|
+
if (!uuidValidate(stringId) || uuidVersion(stringId) !== 4) {
|
|
239
|
+
throw new Error("Challenge must be a valid UUIDv4 to support Android");
|
|
240
|
+
}
|
|
241
|
+
return id;
|
|
242
|
+
}
|
|
243
|
+
return uuidParse(uuidv4());
|
|
244
|
+
}
|
|
245
|
+
function bufferSourceToUint8Array(bufferSource) {
|
|
246
|
+
if (bufferSource instanceof Uint8Array) {
|
|
247
|
+
return bufferSource;
|
|
248
|
+
}
|
|
249
|
+
if (bufferSource instanceof ArrayBuffer) {
|
|
250
|
+
return new Uint8Array(bufferSource);
|
|
251
|
+
}
|
|
252
|
+
if (ArrayBuffer.isView(bufferSource)) {
|
|
253
|
+
// Any other TypedArray (e.g., Int16Array, Float32Array, etc.)
|
|
254
|
+
return new Uint8Array(bufferSource.buffer, bufferSource.byteOffset, bufferSource.byteLength);
|
|
255
|
+
}
|
|
256
|
+
throw new TypeError("Input must be a BufferSource (ArrayBuffer or TypedArray)");
|
|
202
257
|
}
|
|
203
258
|
//# sourceMappingURL=client.js.map
|
package/lib/module/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseSignerClient","OauthFailedError","MfaRequiredError","InAppBrowser","z","InAppBrowserUnavailableError","NativeTEKStamper","parseSearchParams","parseMfaError","RNSignerClientParamsSchema","object","connection","custom","rootOrgId","string","optional","oauthCallbackUrl","default","RNSignerClient","stamper","validAuthenticatingTypes","constructor","params","
|
|
1
|
+
{"version":3,"names":["createPasskey","PasskeyStamper","stringify","uuidStringify","parse","uuidParse","v4","uuidv4","validate","uuidValidate","version","uuidVersion","BaseSignerClient","OauthFailedError","MfaRequiredError","InAppBrowser","z","InAppBrowserUnavailableError","NativeTEKStamper","parseSearchParams","parseMfaError","RNSignerClientParamsSchema","object","connection","custom","rootOrgId","string","optional","oauthCallbackUrl","default","rpId","RNSignerClient","stamper","validAuthenticatingTypes","constructor","params","submitOtpCode","args","eventEmitter","emit","type","publicKey","init","response","request","targetPublicKey","credentialBundle","mfaRequired","bundle","status","encryptedPayload","multiFactors","Error","initEmailAuth","email","emailMode","error","completeAuthWithBundle","includes","authenticatingType","result","injectCredentialBundle","user","whoami","orgId","idToken","connectedEventName","oauthWithRedirect","isAvailable","oauthParams","turnkeyPublicKey","oauthConfig","getOauthConfig","providerUrl","getOauthProviderUrl","usesRelativeUrl","redirectUrl","res","openAuth","url","authResult","isSignup","oauthWithPopup","_args","disconnect","undefined","clear","exportWallet","_params","getWebAuthnAttestation","options","userDetails","username","authenticatorUserId","getAuthenticatorUserId","requireRpId","authenticatorParams","rp","id","name","displayName","bufferSourceToUint8Array","authenticatorName","attestation","challenge","nonce","getOauthNonce","initSessionStamper","initWebauthnStamper","setStamper","allowCredentials","credentialId","transports","stringId","bufferSource","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","TypeError"],"sourceRoot":"../../src","sources":["client.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RNAlchemySigner","RNSignerClient"],"sourceRoot":"../../src","sources":["index.
|
|
1
|
+
{"version":3,"names":["RNAlchemySigner","RNSignerClient"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;;AAEA,SAASA,eAAe,QAAQ,aAAU;AAC1C,SAASC,cAAc,QAAQ,aAAU","ignoreList":[]}
|
package/lib/module/signer.js
CHANGED
package/lib/module/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseAlchemySigner","SessionManagerParamsSchema","z","RNSignerClient","RNSignerClientParamsSchema","RNAlchemySignerParamsSchema","object","client","custom","or","extend","sessionConfig","omit","storage","optional","RNAlchemySignerSingleton","constructor","params","instance","params_","parse","signerType","getInstance","RNAlchemySigner"],"sourceRoot":"../../src","sources":["signer.ts"],"mappings":";;AAAA,SACEA,iBAAiB,EACjBC,0BAA0B,QACrB,qBAAqB;AAC5B,SAASC,CAAC,QAAQ,KAAK;AACvB,SAASC,cAAc,EAAEC,0BAA0B,QAAQ,
|
|
1
|
+
{"version":3,"names":["BaseAlchemySigner","SessionManagerParamsSchema","z","RNSignerClient","RNSignerClientParamsSchema","RNAlchemySignerParamsSchema","object","client","custom","or","extend","sessionConfig","omit","storage","optional","RNAlchemySignerSingleton","constructor","params","instance","params_","parse","signerType","getInstance","RNAlchemySigner"],"sourceRoot":"../../src","sources":["signer.ts"],"mappings":";;AAAA;AACA,SACEA,iBAAiB,EACjBC,0BAA0B,QACrB,qBAAqB;AAC5B,SAASC,CAAC,QAAQ,KAAK;AACvB,SAASC,cAAc,EAAEC,0BAA0B,QAAQ,aAAU;AAErE,MAAMC,2BAA2B,GAAGH,CAAC,CAClCI,MAAM,CAAC;EACNC,MAAM,EAAEL,CAAC,CAACM,MAAM,CAAiB,CAAC,CAACC,EAAE,CAACL,0BAA0B;AAClE,CAAC,CAAC,CACDM,MAAM,CAAC;EACNC,aAAa,EAAEV,0BAA0B,CAACW,IAAI,CAAC;IAC7CL,MAAM,EAAE,IAAI;IACZM,OAAO,EAAE;EACX,CAAC,CAAC,CAACC,QAAQ,CAAC;AACd,CAAC,CAAC;AAIJ,OAAO,MAAMC,wBAAwB,SAASf,iBAAiB,CAAiB;EAGtEgB,WAAWA,CAACC,MAA6B,EAAE;IACjD,IAAI,CAAC,CAACF,wBAAwB,CAACG,QAAQ,EAAE;MACvC,OAAOH,wBAAwB,CAACG,QAAQ;IAC1C;IAEA,MAAM;MAAEP,aAAa;MAAE,GAAGQ;IAAQ,CAAC,GACjCd,2BAA2B,CAACe,KAAK,CAACH,MAAM,CAAC;IAE3C,IAAIV,MAAsB;IAE1B,IAAI,YAAY,IAAIY,OAAO,CAACZ,MAAM,EAAE;MAClCA,MAAM,GAAG,IAAIJ,cAAc,CAACgB,OAAO,CAACZ,MAAM,CAAC;IAC7C,CAAC,MAAM;MACLA,MAAM,GAAGY,OAAO,CAACZ,MAAM;IACzB;IAEA,KAAK,CAAC;MACJA,MAAM;MACNI;IACF,CAAC,CAAC;IAEF,IAAI,CAACU,UAAU,GAAG,mBAAmB;EACvC;EAEA,OAAcC,WAAWA,CAACL,MAA6B,EAAE;IACvD,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE;MAClB,IAAI,CAACA,QAAQ,GAAG,IAAIH,wBAAwB,CAACE,MAAM,CAAC;IACtD;IACA,OAAO,IAAI,CAACC,QAAQ;EACtB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,eAAeA,CAACN,MAA6B,EAAE;EAC7D,MAAMC,QAAQ,GAAGH,wBAAwB,CAACO,WAAW,CAACL,MAAM,CAAC;EAE7D,OAAOC,QAAQ;AACjB","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import "./utils/
|
|
3
|
-
import
|
|
1
|
+
import "react-native-get-random-values";
|
|
2
|
+
import "./utils/buffer-polyfill";
|
|
3
|
+
import "./utils/mmkv-localstorage-polyfill";
|
|
4
|
+
import { BaseSignerClient, type AlchemySignerClientEvents, type AuthenticatingEventMetadata, type EmailAuthParams, type GetWebAuthnAttestationResult, type MfaFactor, type OauthConfig, type OauthParams, type OtpParams, type User, type SubmitOtpCodeResponse, type CredentialCreationOptionOverrides } from "@account-kit/signer";
|
|
4
5
|
import { z } from "zod";
|
|
5
6
|
export declare const RNSignerClientParamsSchema: z.ZodObject<{
|
|
6
7
|
connection: z.ZodType<({
|
|
@@ -42,6 +43,7 @@ export declare const RNSignerClientParamsSchema: z.ZodObject<{
|
|
|
42
43
|
}>;
|
|
43
44
|
rootOrgId: z.ZodOptional<z.ZodString>;
|
|
44
45
|
oauthCallbackUrl: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
46
|
+
rpId: z.ZodOptional<z.ZodString>;
|
|
45
47
|
}, "strip", z.ZodTypeAny, {
|
|
46
48
|
connection: ({
|
|
47
49
|
apiKey: string;
|
|
@@ -64,6 +66,7 @@ export declare const RNSignerClientParamsSchema: z.ZodObject<{
|
|
|
64
66
|
};
|
|
65
67
|
oauthCallbackUrl: string;
|
|
66
68
|
rootOrgId?: string | undefined;
|
|
69
|
+
rpId?: string | undefined;
|
|
67
70
|
}, {
|
|
68
71
|
connection: ({
|
|
69
72
|
apiKey: string;
|
|
@@ -86,15 +89,16 @@ export declare const RNSignerClientParamsSchema: z.ZodObject<{
|
|
|
86
89
|
};
|
|
87
90
|
rootOrgId?: string | undefined;
|
|
88
91
|
oauthCallbackUrl?: string | undefined;
|
|
92
|
+
rpId?: string | undefined;
|
|
89
93
|
}>;
|
|
90
94
|
export type RNSignerClientParams = z.input<typeof RNSignerClientParamsSchema>;
|
|
91
95
|
export declare class RNSignerClient extends BaseSignerClient<undefined> {
|
|
92
96
|
private stamper;
|
|
93
97
|
oauthCallbackUrl: string;
|
|
98
|
+
rpId: string | undefined;
|
|
94
99
|
private validAuthenticatingTypes;
|
|
95
100
|
constructor(params: RNSignerClientParams);
|
|
96
101
|
submitOtpCode(args: Omit<OtpParams, "targetPublicKey">): Promise<SubmitOtpCodeResponse>;
|
|
97
|
-
createAccount(params: CreateAccountParams): Promise<SignupResponse>;
|
|
98
102
|
initEmailAuth(params: Omit<EmailAuthParams, "targetPublicKey">): Promise<{
|
|
99
103
|
orgId: string;
|
|
100
104
|
otpId?: string;
|
|
@@ -115,11 +119,15 @@ export declare class RNSignerClient extends BaseSignerClient<undefined> {
|
|
|
115
119
|
}>): Promise<User>;
|
|
116
120
|
disconnect(): Promise<void>;
|
|
117
121
|
exportWallet(_params: unknown): Promise<boolean>;
|
|
118
|
-
lookupUserWithPasskey(_user?: User): Promise<User>;
|
|
119
122
|
targetPublicKey(): Promise<string>;
|
|
120
|
-
protected getWebAuthnAttestation
|
|
123
|
+
protected getWebAuthnAttestation: (options?: CredentialCreationOptionOverrides, userDetails?: {
|
|
121
124
|
username: string;
|
|
122
|
-
})
|
|
125
|
+
}) => Promise<GetWebAuthnAttestationResult & {
|
|
126
|
+
rpId: string;
|
|
127
|
+
}>;
|
|
123
128
|
protected getOauthConfig: () => Promise<OauthConfig>;
|
|
129
|
+
protected initSessionStamper(): Promise<string>;
|
|
130
|
+
protected initWebauthnStamper(user?: User | undefined, options?: CredentialCreationOptionOverrides): Promise<void>;
|
|
131
|
+
private requireRpId;
|
|
124
132
|
}
|
|
125
133
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,gCAAgC,CAAC;AACxC,OAAO,yBAAyB,CAAC;AACjC,OAAO,oCAAoC,CAAC;AAgB5C,OAAO,EACL,gBAAgB,EAGhB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,4BAA4B,EACjC,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,qBAAqB,EAC1B,KAAK,iCAAiC,EACvC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAG9E,qBAAa,cAAe,SAAQ,gBAAgB,CAAC,SAAS,CAAC;IAC7D,OAAO,CAAC,OAAO,CAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,wBAAwB,CAI9B;gBAEU,MAAM,EAAE,oBAAoB;IAczB,aAAa,CAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,GACvC,OAAO,CAAC,qBAAqB,CAAC;IAmClB,aAAa,CAC1B,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,GAC/C,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IAuB1D,sBAAsB,CAAC,MAAM,EAAE;QAC5C,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;QACpD,kBAAkB,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBR,iBAAiB,GACxB,MAAM,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,KAC/C,OAAO,CAAC,IAAI,CAAC,CAuDd;IAEO,cAAc,CACrB,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;IAID,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3C,UAAmB,sBAAsB,GACvC,UAAU,iCAAiC,EAC3C,cAAa;QAAE,QAAQ,EAAE,MAAM,CAAA;KAE9B,KACA,OAAO,CAAC,4BAA4B,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAwBzD;IAEF,UAAmB,cAAc,QAAa,OAAO,CAAC,WAAW,CAAC,CAKhE;cAEuB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;cAIrC,mBAAmB,CAC1C,IAAI,GAAE,IAAI,GAAG,SAAqB,EAClC,OAAO,CAAC,EAAE,iCAAiC,GAC1C,OAAO,CAAC,IAAI,CAAC;IAkBhB,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type * from "./signer
|
|
2
|
-
export { RNAlchemySigner } from "./signer
|
|
3
|
-
export { RNSignerClient } from "./client
|
|
1
|
+
export type * from "./signer";
|
|
2
|
+
export { RNAlchemySigner } from "./signer";
|
|
3
|
+
export { RNSignerClient } from "./client";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,mBAAmB,UAAU,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseAlchemySigner } from "@account-kit/signer";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { RNSignerClient } from "./client
|
|
3
|
+
import { RNSignerClient } from "./client";
|
|
4
4
|
declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
5
5
|
client: z.ZodUnion<[z.ZodType<RNSignerClient, z.ZodTypeDef, RNSignerClient>, z.ZodObject<{
|
|
6
6
|
connection: z.ZodType<({
|
|
@@ -42,6 +42,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
42
42
|
}>;
|
|
43
43
|
rootOrgId: z.ZodOptional<z.ZodString>;
|
|
44
44
|
oauthCallbackUrl: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
45
|
+
rpId: z.ZodOptional<z.ZodString>;
|
|
45
46
|
}, "strip", z.ZodTypeAny, {
|
|
46
47
|
connection: ({
|
|
47
48
|
apiKey: string;
|
|
@@ -64,6 +65,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
64
65
|
};
|
|
65
66
|
oauthCallbackUrl: string;
|
|
66
67
|
rootOrgId?: string | undefined;
|
|
68
|
+
rpId?: string | undefined;
|
|
67
69
|
}, {
|
|
68
70
|
connection: ({
|
|
69
71
|
apiKey: string;
|
|
@@ -86,6 +88,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
86
88
|
};
|
|
87
89
|
rootOrgId?: string | undefined;
|
|
88
90
|
oauthCallbackUrl?: string | undefined;
|
|
91
|
+
rpId?: string | undefined;
|
|
89
92
|
}>]>;
|
|
90
93
|
} & {
|
|
91
94
|
sessionConfig: z.ZodOptional<z.ZodObject<Omit<{
|
|
@@ -123,6 +126,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
123
126
|
};
|
|
124
127
|
oauthCallbackUrl: string;
|
|
125
128
|
rootOrgId?: string | undefined;
|
|
129
|
+
rpId?: string | undefined;
|
|
126
130
|
} | RNSignerClient;
|
|
127
131
|
sessionConfig?: {
|
|
128
132
|
sessionKey: string;
|
|
@@ -151,6 +155,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
151
155
|
};
|
|
152
156
|
rootOrgId?: string | undefined;
|
|
153
157
|
oauthCallbackUrl?: string | undefined;
|
|
158
|
+
rpId?: string | undefined;
|
|
154
159
|
} | RNSignerClient;
|
|
155
160
|
sessionConfig?: {
|
|
156
161
|
sessionKey?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../src/signer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../src/signer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA8B,MAAM,UAAU,CAAC;AAEtE,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEL,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,qBAAa,wBAAyB,SAAQ,iBAAiB,CAAC,cAAc,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAElD,OAAO;WAwBO,WAAW,CAAC,MAAM,EAAE,qBAAqB;CAMxD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,4BAI5D;AAED,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import "./utils/
|
|
3
|
-
import
|
|
1
|
+
import "react-native-get-random-values";
|
|
2
|
+
import "./utils/buffer-polyfill";
|
|
3
|
+
import "./utils/mmkv-localstorage-polyfill";
|
|
4
|
+
import { BaseSignerClient, type AlchemySignerClientEvents, type AuthenticatingEventMetadata, type EmailAuthParams, type GetWebAuthnAttestationResult, type MfaFactor, type OauthConfig, type OauthParams, type OtpParams, type User, type SubmitOtpCodeResponse, type CredentialCreationOptionOverrides } from "@account-kit/signer";
|
|
4
5
|
import { z } from "zod";
|
|
5
6
|
export declare const RNSignerClientParamsSchema: z.ZodObject<{
|
|
6
7
|
connection: z.ZodType<({
|
|
@@ -42,6 +43,7 @@ export declare const RNSignerClientParamsSchema: z.ZodObject<{
|
|
|
42
43
|
}>;
|
|
43
44
|
rootOrgId: z.ZodOptional<z.ZodString>;
|
|
44
45
|
oauthCallbackUrl: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
46
|
+
rpId: z.ZodOptional<z.ZodString>;
|
|
45
47
|
}, "strip", z.ZodTypeAny, {
|
|
46
48
|
connection: ({
|
|
47
49
|
apiKey: string;
|
|
@@ -64,6 +66,7 @@ export declare const RNSignerClientParamsSchema: z.ZodObject<{
|
|
|
64
66
|
};
|
|
65
67
|
oauthCallbackUrl: string;
|
|
66
68
|
rootOrgId?: string | undefined;
|
|
69
|
+
rpId?: string | undefined;
|
|
67
70
|
}, {
|
|
68
71
|
connection: ({
|
|
69
72
|
apiKey: string;
|
|
@@ -86,15 +89,16 @@ export declare const RNSignerClientParamsSchema: z.ZodObject<{
|
|
|
86
89
|
};
|
|
87
90
|
rootOrgId?: string | undefined;
|
|
88
91
|
oauthCallbackUrl?: string | undefined;
|
|
92
|
+
rpId?: string | undefined;
|
|
89
93
|
}>;
|
|
90
94
|
export type RNSignerClientParams = z.input<typeof RNSignerClientParamsSchema>;
|
|
91
95
|
export declare class RNSignerClient extends BaseSignerClient<undefined> {
|
|
92
96
|
private stamper;
|
|
93
97
|
oauthCallbackUrl: string;
|
|
98
|
+
rpId: string | undefined;
|
|
94
99
|
private validAuthenticatingTypes;
|
|
95
100
|
constructor(params: RNSignerClientParams);
|
|
96
101
|
submitOtpCode(args: Omit<OtpParams, "targetPublicKey">): Promise<SubmitOtpCodeResponse>;
|
|
97
|
-
createAccount(params: CreateAccountParams): Promise<SignupResponse>;
|
|
98
102
|
initEmailAuth(params: Omit<EmailAuthParams, "targetPublicKey">): Promise<{
|
|
99
103
|
orgId: string;
|
|
100
104
|
otpId?: string;
|
|
@@ -115,11 +119,15 @@ export declare class RNSignerClient extends BaseSignerClient<undefined> {
|
|
|
115
119
|
}>): Promise<User>;
|
|
116
120
|
disconnect(): Promise<void>;
|
|
117
121
|
exportWallet(_params: unknown): Promise<boolean>;
|
|
118
|
-
lookupUserWithPasskey(_user?: User): Promise<User>;
|
|
119
122
|
targetPublicKey(): Promise<string>;
|
|
120
|
-
protected getWebAuthnAttestation
|
|
123
|
+
protected getWebAuthnAttestation: (options?: CredentialCreationOptionOverrides, userDetails?: {
|
|
121
124
|
username: string;
|
|
122
|
-
})
|
|
125
|
+
}) => Promise<GetWebAuthnAttestationResult & {
|
|
126
|
+
rpId: string;
|
|
127
|
+
}>;
|
|
123
128
|
protected getOauthConfig: () => Promise<OauthConfig>;
|
|
129
|
+
protected initSessionStamper(): Promise<string>;
|
|
130
|
+
protected initWebauthnStamper(user?: User | undefined, options?: CredentialCreationOptionOverrides): Promise<void>;
|
|
131
|
+
private requireRpId;
|
|
124
132
|
}
|
|
125
133
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,gCAAgC,CAAC;AACxC,OAAO,yBAAyB,CAAC;AACjC,OAAO,oCAAoC,CAAC;AAgB5C,OAAO,EACL,gBAAgB,EAGhB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,4BAA4B,EACjC,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,qBAAqB,EAC1B,KAAK,iCAAiC,EACvC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAG9E,qBAAa,cAAe,SAAQ,gBAAgB,CAAC,SAAS,CAAC;IAC7D,OAAO,CAAC,OAAO,CAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,wBAAwB,CAI9B;gBAEU,MAAM,EAAE,oBAAoB;IAczB,aAAa,CAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,GACvC,OAAO,CAAC,qBAAqB,CAAC;IAmClB,aAAa,CAC1B,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,GAC/C,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IAuB1D,sBAAsB,CAAC,MAAM,EAAE;QAC5C,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;QACpD,kBAAkB,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBR,iBAAiB,GACxB,MAAM,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,KAC/C,OAAO,CAAC,IAAI,CAAC,CAuDd;IAEO,cAAc,CACrB,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;IAID,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3C,UAAmB,sBAAsB,GACvC,UAAU,iCAAiC,EAC3C,cAAa;QAAE,QAAQ,EAAE,MAAM,CAAA;KAE9B,KACA,OAAO,CAAC,4BAA4B,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAwBzD;IAEF,UAAmB,cAAc,QAAa,OAAO,CAAC,WAAW,CAAC,CAKhE;cAEuB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;cAIrC,mBAAmB,CAC1C,IAAI,GAAE,IAAI,GAAG,SAAqB,EAClC,OAAO,CAAC,EAAE,iCAAiC,GAC1C,OAAO,CAAC,IAAI,CAAC;IAkBhB,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type * from "./signer
|
|
2
|
-
export { RNAlchemySigner } from "./signer
|
|
3
|
-
export { RNSignerClient } from "./client
|
|
1
|
+
export type * from "./signer";
|
|
2
|
+
export { RNAlchemySigner } from "./signer";
|
|
3
|
+
export { RNSignerClient } from "./client";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,mBAAmB,UAAU,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseAlchemySigner } from "@account-kit/signer";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { RNSignerClient } from "./client
|
|
3
|
+
import { RNSignerClient } from "./client";
|
|
4
4
|
declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
5
5
|
client: z.ZodUnion<[z.ZodType<RNSignerClient, z.ZodTypeDef, RNSignerClient>, z.ZodObject<{
|
|
6
6
|
connection: z.ZodType<({
|
|
@@ -42,6 +42,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
42
42
|
}>;
|
|
43
43
|
rootOrgId: z.ZodOptional<z.ZodString>;
|
|
44
44
|
oauthCallbackUrl: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
45
|
+
rpId: z.ZodOptional<z.ZodString>;
|
|
45
46
|
}, "strip", z.ZodTypeAny, {
|
|
46
47
|
connection: ({
|
|
47
48
|
apiKey: string;
|
|
@@ -64,6 +65,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
64
65
|
};
|
|
65
66
|
oauthCallbackUrl: string;
|
|
66
67
|
rootOrgId?: string | undefined;
|
|
68
|
+
rpId?: string | undefined;
|
|
67
69
|
}, {
|
|
68
70
|
connection: ({
|
|
69
71
|
apiKey: string;
|
|
@@ -86,6 +88,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
86
88
|
};
|
|
87
89
|
rootOrgId?: string | undefined;
|
|
88
90
|
oauthCallbackUrl?: string | undefined;
|
|
91
|
+
rpId?: string | undefined;
|
|
89
92
|
}>]>;
|
|
90
93
|
} & {
|
|
91
94
|
sessionConfig: z.ZodOptional<z.ZodObject<Omit<{
|
|
@@ -123,6 +126,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
123
126
|
};
|
|
124
127
|
oauthCallbackUrl: string;
|
|
125
128
|
rootOrgId?: string | undefined;
|
|
129
|
+
rpId?: string | undefined;
|
|
126
130
|
} | RNSignerClient;
|
|
127
131
|
sessionConfig?: {
|
|
128
132
|
sessionKey: string;
|
|
@@ -151,6 +155,7 @@ declare const RNAlchemySignerParamsSchema: z.ZodObject<{
|
|
|
151
155
|
};
|
|
152
156
|
rootOrgId?: string | undefined;
|
|
153
157
|
oauthCallbackUrl?: string | undefined;
|
|
158
|
+
rpId?: string | undefined;
|
|
154
159
|
} | RNSignerClient;
|
|
155
160
|
sessionConfig?: {
|
|
156
161
|
sessionKey?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../src/signer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../src/signer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA8B,MAAM,UAAU,CAAC;AAEtE,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEL,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,qBAAa,wBAAyB,SAAQ,iBAAiB,CAAC,cAAc,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAElD,OAAO;WAwBO,WAAW,CAAC,MAAM,EAAE,qBAAqB;CAMxD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,4BAI5D;AAED,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@account-kit/react-native-signer",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.37.0",
|
|
4
4
|
"author": "Alchemy",
|
|
5
5
|
"description": "React Native compatible Account Kit signer",
|
|
6
6
|
"source": "./src/index.tsx",
|
|
@@ -73,8 +73,10 @@
|
|
|
73
73
|
"react": "18.3.1",
|
|
74
74
|
"react-native": "0.76.5",
|
|
75
75
|
"react-native-builder-bob": "^0.30.3",
|
|
76
|
+
"react-native-get-random-values": "^1.11.0",
|
|
76
77
|
"react-native-inappbrowser-reborn": "^3.7.0",
|
|
77
78
|
"react-native-mmkv": "^3.1.0",
|
|
79
|
+
"react-native-passkey": "^3.1.0",
|
|
78
80
|
"typescript-template": "*"
|
|
79
81
|
},
|
|
80
82
|
"resolutions": {
|
|
@@ -83,8 +85,10 @@
|
|
|
83
85
|
"peerDependencies": {
|
|
84
86
|
"react": ">=18.0.0",
|
|
85
87
|
"react-native": ">=0.76.0",
|
|
88
|
+
"react-native-get-random-values": "^1.11.0",
|
|
86
89
|
"react-native-inappbrowser-reborn": "^3.7.0",
|
|
87
|
-
"react-native-mmkv": "^3.1.0"
|
|
90
|
+
"react-native-mmkv": "^3.1.0",
|
|
91
|
+
"react-native-passkey": "^3.1.0"
|
|
88
92
|
},
|
|
89
93
|
"jest": {
|
|
90
94
|
"preset": "react-native",
|
|
@@ -138,9 +142,11 @@
|
|
|
138
142
|
"version": "0.42.2"
|
|
139
143
|
},
|
|
140
144
|
"dependencies": {
|
|
141
|
-
"@aa-sdk/core": "^4.
|
|
142
|
-
"@account-kit/signer": "^4.
|
|
145
|
+
"@aa-sdk/core": "^4.37.0",
|
|
146
|
+
"@account-kit/signer": "^4.37.0",
|
|
147
|
+
"@turnkey/react-native-passkey-stamper": "^1.0.14",
|
|
148
|
+
"uuid": "^11.1.0",
|
|
143
149
|
"viem": "2.29.2"
|
|
144
150
|
},
|
|
145
|
-
"gitHead": "
|
|
151
|
+
"gitHead": "52e038a5eb1b760a58b0622922486cb4a1297c33"
|
|
146
152
|
}
|
package/src/client.ts
CHANGED
|
@@ -1,29 +1,42 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "
|
|
1
|
+
/* eslint-disable import/extensions */
|
|
2
|
+
import "react-native-get-random-values";
|
|
3
|
+
import "./utils/buffer-polyfill";
|
|
4
|
+
import "./utils/mmkv-localstorage-polyfill";
|
|
3
5
|
|
|
4
6
|
/* eslint-disable import/extensions */
|
|
5
7
|
import { type ConnectionConfig } from "@aa-sdk/core";
|
|
8
|
+
import {
|
|
9
|
+
createPasskey,
|
|
10
|
+
PasskeyStamper,
|
|
11
|
+
type AuthenticatorTransport,
|
|
12
|
+
} from "@turnkey/react-native-passkey-stamper";
|
|
13
|
+
import {
|
|
14
|
+
stringify as uuidStringify,
|
|
15
|
+
parse as uuidParse,
|
|
16
|
+
v4 as uuidv4,
|
|
17
|
+
validate as uuidValidate,
|
|
18
|
+
version as uuidVersion,
|
|
19
|
+
} from "uuid";
|
|
6
20
|
import {
|
|
7
21
|
BaseSignerClient,
|
|
8
22
|
OauthFailedError,
|
|
9
23
|
MfaRequiredError,
|
|
10
24
|
type AlchemySignerClientEvents,
|
|
11
25
|
type AuthenticatingEventMetadata,
|
|
12
|
-
type CreateAccountParams,
|
|
13
26
|
type EmailAuthParams,
|
|
14
27
|
type GetWebAuthnAttestationResult,
|
|
15
28
|
type MfaFactor,
|
|
16
29
|
type OauthConfig,
|
|
17
30
|
type OauthParams,
|
|
18
31
|
type OtpParams,
|
|
19
|
-
type SignupResponse,
|
|
20
32
|
type User,
|
|
21
33
|
type SubmitOtpCodeResponse,
|
|
34
|
+
type CredentialCreationOptionOverrides,
|
|
22
35
|
} from "@account-kit/signer";
|
|
23
36
|
import { InAppBrowser } from "react-native-inappbrowser-reborn";
|
|
24
37
|
import { z } from "zod";
|
|
25
38
|
import { InAppBrowserUnavailableError } from "./errors";
|
|
26
|
-
import NativeTEKStamper from "./NativeTEKStamper
|
|
39
|
+
import NativeTEKStamper from "./NativeTEKStamper";
|
|
27
40
|
import { parseSearchParams } from "./utils/parseUrlParams";
|
|
28
41
|
import { parseMfaError } from "./utils/parseMfaError";
|
|
29
42
|
|
|
@@ -34,6 +47,7 @@ export const RNSignerClientParamsSchema = z.object({
|
|
|
34
47
|
.string()
|
|
35
48
|
.optional()
|
|
36
49
|
.default("https://signer.alchemy.com/callback"),
|
|
50
|
+
rpId: z.string().optional(),
|
|
37
51
|
});
|
|
38
52
|
|
|
39
53
|
export type RNSignerClientParams = z.input<typeof RNSignerClientParamsSchema>;
|
|
@@ -42,6 +56,7 @@ export type RNSignerClientParams = z.input<typeof RNSignerClientParamsSchema>;
|
|
|
42
56
|
export class RNSignerClient extends BaseSignerClient<undefined> {
|
|
43
57
|
private stamper = NativeTEKStamper;
|
|
44
58
|
oauthCallbackUrl: string;
|
|
59
|
+
rpId: string | undefined;
|
|
45
60
|
private validAuthenticatingTypes: AuthenticatingEventMetadata["type"][] = [
|
|
46
61
|
"email",
|
|
47
62
|
"otp",
|
|
@@ -49,7 +64,7 @@ export class RNSignerClient extends BaseSignerClient<undefined> {
|
|
|
49
64
|
];
|
|
50
65
|
|
|
51
66
|
constructor(params: RNSignerClientParams) {
|
|
52
|
-
const { connection, rootOrgId, oauthCallbackUrl } =
|
|
67
|
+
const { connection, rootOrgId, oauthCallbackUrl, rpId } =
|
|
53
68
|
RNSignerClientParamsSchema.parse(params);
|
|
54
69
|
|
|
55
70
|
super({
|
|
@@ -59,6 +74,7 @@ export class RNSignerClient extends BaseSignerClient<undefined> {
|
|
|
59
74
|
});
|
|
60
75
|
|
|
61
76
|
this.oauthCallbackUrl = oauthCallbackUrl;
|
|
77
|
+
this.rpId = rpId;
|
|
62
78
|
}
|
|
63
79
|
|
|
64
80
|
override async submitOtpCode(
|
|
@@ -98,28 +114,6 @@ export class RNSignerClient extends BaseSignerClient<undefined> {
|
|
|
98
114
|
);
|
|
99
115
|
}
|
|
100
116
|
|
|
101
|
-
override async createAccount(
|
|
102
|
-
params: CreateAccountParams,
|
|
103
|
-
): Promise<SignupResponse> {
|
|
104
|
-
if (params.type !== "email") {
|
|
105
|
-
throw new Error("Only email account creation is supported");
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
this.eventEmitter.emit("authenticating", { type: "email" });
|
|
109
|
-
const { email, expirationSeconds } = params;
|
|
110
|
-
const publicKey = await this.stamper.init();
|
|
111
|
-
|
|
112
|
-
const response = await this.request("/v1/signup", {
|
|
113
|
-
email,
|
|
114
|
-
emailMode: params.emailMode,
|
|
115
|
-
targetPublicKey: publicKey,
|
|
116
|
-
expirationSeconds,
|
|
117
|
-
redirectParams: params.redirectParams?.toString(),
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
return response;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
117
|
override async initEmailAuth(
|
|
124
118
|
params: Omit<EmailAuthParams, "targetPublicKey">,
|
|
125
119
|
): Promise<{ orgId: string; otpId?: string; multiFactors?: MfaFactor[] }> {
|
|
@@ -246,20 +240,41 @@ export class RNSignerClient extends BaseSignerClient<undefined> {
|
|
|
246
240
|
override exportWallet(_params: unknown): Promise<boolean> {
|
|
247
241
|
throw new Error("Method not implemented.");
|
|
248
242
|
}
|
|
249
|
-
override lookupUserWithPasskey(_user?: User): Promise<User> {
|
|
250
|
-
throw new Error("Method not implemented.");
|
|
251
|
-
}
|
|
252
243
|
|
|
253
244
|
override targetPublicKey(): Promise<string> {
|
|
254
245
|
return this.stamper.init();
|
|
255
246
|
}
|
|
256
247
|
|
|
257
|
-
protected override getWebAuthnAttestation(
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
248
|
+
protected override getWebAuthnAttestation = async (
|
|
249
|
+
options?: CredentialCreationOptionOverrides,
|
|
250
|
+
userDetails: { username: string } = {
|
|
251
|
+
username: this.user?.email ?? "anonymous",
|
|
252
|
+
},
|
|
253
|
+
): Promise<GetWebAuthnAttestationResult & { rpId: string }> => {
|
|
254
|
+
const { username } = userDetails;
|
|
255
|
+
const authenticatorUserId = getAuthenticatorUserId(options);
|
|
256
|
+
const rpId = this.requireRpId(options);
|
|
257
|
+
const authenticatorParams = await createPasskey({
|
|
258
|
+
rp: {
|
|
259
|
+
id: rpId,
|
|
260
|
+
name: rpId,
|
|
261
|
+
...options?.publicKey?.rp,
|
|
262
|
+
},
|
|
263
|
+
user: {
|
|
264
|
+
name: username,
|
|
265
|
+
displayName: username,
|
|
266
|
+
...options?.publicKey?.user,
|
|
267
|
+
id: uuidStringify(bufferSourceToUint8Array(authenticatorUserId)),
|
|
268
|
+
},
|
|
269
|
+
authenticatorName: "End-User Passkey",
|
|
270
|
+
});
|
|
271
|
+
return {
|
|
272
|
+
attestation: authenticatorParams.attestation,
|
|
273
|
+
challenge: authenticatorParams.challenge,
|
|
274
|
+
authenticatorUserId,
|
|
275
|
+
rpId,
|
|
276
|
+
};
|
|
277
|
+
};
|
|
263
278
|
|
|
264
279
|
protected override getOauthConfig = async (): Promise<OauthConfig> => {
|
|
265
280
|
const publicKey = await this.stamper.init();
|
|
@@ -267,4 +282,74 @@ export class RNSignerClient extends BaseSignerClient<undefined> {
|
|
|
267
282
|
const nonce = this.getOauthNonce(publicKey);
|
|
268
283
|
return this.request("/v1/prepare-oauth", { nonce });
|
|
269
284
|
};
|
|
285
|
+
|
|
286
|
+
protected override async initSessionStamper(): Promise<string> {
|
|
287
|
+
return this.stamper.init();
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
protected override async initWebauthnStamper(
|
|
291
|
+
user: User | undefined = this.user,
|
|
292
|
+
options?: CredentialCreationOptionOverrides,
|
|
293
|
+
): Promise<void> {
|
|
294
|
+
const rpId = this.requireRpId(options);
|
|
295
|
+
this.setStamper(
|
|
296
|
+
new PasskeyStamper({
|
|
297
|
+
rpId,
|
|
298
|
+
allowCredentials: user?.credentialId
|
|
299
|
+
? [
|
|
300
|
+
{
|
|
301
|
+
id: user.credentialId,
|
|
302
|
+
type: "public-key",
|
|
303
|
+
transports: ["internal", "hybrid"] as AuthenticatorTransport[],
|
|
304
|
+
},
|
|
305
|
+
]
|
|
306
|
+
: undefined,
|
|
307
|
+
}),
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
private requireRpId(options?: CredentialCreationOptionOverrides): string {
|
|
312
|
+
const rpId = options?.publicKey?.rp?.id ?? this.rpId;
|
|
313
|
+
if (!rpId) {
|
|
314
|
+
throw new Error(
|
|
315
|
+
"rpId must be set in configuration to use passkeys in React Native",
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
return rpId;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
function getAuthenticatorUserId(
|
|
323
|
+
options?: CredentialCreationOptionOverrides,
|
|
324
|
+
): BufferSource {
|
|
325
|
+
// Android requires this to be a UUIDv4.
|
|
326
|
+
const id = options?.publicKey?.user?.id;
|
|
327
|
+
if (id) {
|
|
328
|
+
const stringId = uuidStringify(id as Uint8Array);
|
|
329
|
+
if (!uuidValidate(stringId) || uuidVersion(stringId) !== 4) {
|
|
330
|
+
throw new Error("Challenge must be a valid UUIDv4 to support Android");
|
|
331
|
+
}
|
|
332
|
+
return id;
|
|
333
|
+
}
|
|
334
|
+
return uuidParse(uuidv4());
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
function bufferSourceToUint8Array(bufferSource: BufferSource): Uint8Array {
|
|
338
|
+
if (bufferSource instanceof Uint8Array) {
|
|
339
|
+
return bufferSource;
|
|
340
|
+
}
|
|
341
|
+
if (bufferSource instanceof ArrayBuffer) {
|
|
342
|
+
return new Uint8Array(bufferSource);
|
|
343
|
+
}
|
|
344
|
+
if (ArrayBuffer.isView(bufferSource)) {
|
|
345
|
+
// Any other TypedArray (e.g., Int16Array, Float32Array, etc.)
|
|
346
|
+
return new Uint8Array(
|
|
347
|
+
bufferSource.buffer,
|
|
348
|
+
bufferSource.byteOffset,
|
|
349
|
+
bufferSource.byteLength,
|
|
350
|
+
);
|
|
351
|
+
}
|
|
352
|
+
throw new TypeError(
|
|
353
|
+
"Input must be a BufferSource (ArrayBuffer or TypedArray)",
|
|
354
|
+
);
|
|
270
355
|
}
|
package/src/index.tsx
ADDED
package/src/signer.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
/* eslint-disable import/extensions */
|
|
1
2
|
import {
|
|
2
3
|
BaseAlchemySigner,
|
|
3
4
|
SessionManagerParamsSchema,
|
|
4
5
|
} from "@account-kit/signer";
|
|
5
6
|
import { z } from "zod";
|
|
6
|
-
import { RNSignerClient, RNSignerClientParamsSchema } from "./client
|
|
7
|
+
import { RNSignerClient, RNSignerClientParamsSchema } from "./client";
|
|
7
8
|
|
|
8
9
|
const RNAlchemySignerParamsSchema = z
|
|
9
10
|
.object({
|
package/src/index.ts
DELETED