@atlasauth/expo 0.5.0 → 0.6.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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @atlasauth/expo changelog
2
2
 
3
+ ## 0.6.0 — 2026-11-13
4
+
5
+ - `useAccountSecurity` and `createAccountSecurityActions`; `linkWithIdToken`; captcha solved automatically on Hermes/JSC.
6
+ - `@atlasauth/js` is now a peer dependency, so the app and every Atlas SDK share one copy.
7
+
8
+ ## 0.5.1 — 2026-11-12
9
+
10
+ - Picks up `@atlasauth/design` 0.4.0 (zod 4, fixes a zod 3 memory-exhaustion advisory). No API change.
11
+
3
12
  ## 0.5.0 — 2026-11-12
4
13
 
5
14
  - `useAppApproval`, `exchangeLegacyToken` (upgrade bridge), `signInWithApple` / `signInWithGoogle` / `signInWithIdToken`.
package/README.md CHANGED
@@ -16,15 +16,26 @@ backed by [`expo-secure-store`](https://docs.expo.dev/versions/latest/sdk/secure
16
16
  ## Install
17
17
 
18
18
  ```sh
19
- npx expo install @atlasauth/expo expo-secure-store
19
+ npx expo install @atlasauth/expo @atlasauth/js expo-secure-store
20
20
  # plus, as you use them:
21
21
  # expo-web-browser expo-auth-session (OAuth)
22
22
  ```
23
23
 
24
- `react` and `react-native` come from your Expo app. `expo-secure-store`,
24
+ `@atlasauth/js` is a **peer**, so your app, `@atlasauth/expo` and the other Atlas packages share one copy. `react` and `react-native` come from your Expo app. `expo-secure-store`,
25
25
  `expo-web-browser` and `expo-auth-session` are all **optional peers** — install
26
26
  only what you use.
27
27
 
28
+ ## Captcha without a browser
29
+
30
+ When the instance turns on Atlas's own captcha for sign-in, sign-up or password reset, `createSignInFlow`, `createSignUpFlow` and the password reset solve it themselves: importing `@atlasauth/expo` installs a solver that runs on Hermes and JavaScriptCore (plain JavaScript, no Web Workers, no `crypto.subtle`). It works in short slices so the interface stays responsive, and a captcha you did not ask for never reaches your screens.
31
+
32
+ ```ts
33
+ import { createSignInFlow } from '@atlasauth/js';
34
+ const flow = createSignInFlow({ client }); // a captcha-gated attempt completes with no captcha code
35
+ ```
36
+
37
+ To solve one yourself, or to cancel it, call `getCaptchaToken(flow.step.captcha, { signal })` and pass the result to `submitCaptcha(token)`. Pass your own solver for another provider with `createSignInFlow({ client, captchaSolver })`, or install one for every flow with `setHeadlessCaptchaSolver` from `@atlasauth/js`. When the server asks for the picture check, the solver takes the no-picture alternative (more work instead); other providers (Turnstile, hCaptcha) still need your own solver, since they draw in a browser.
38
+
28
39
  ## Token cache
29
40
 
30
41
  ```ts
@@ -0,0 +1,22 @@
1
+ import { changePassword, listTrustedDevices, revokeTrustedDevice, setPassword, type FapiClient } from '@atlasauth/js';
2
+ export { changePassword, setPassword, listTrustedDevices, revokeTrustedDevice };
3
+ /** The calls bound to a client; separated from React so it is testable with a fake one. */
4
+ export declare function createAccountSecurityActions(client: FapiClient): {
5
+ changePassword: (input: {
6
+ currentPassword: string;
7
+ newPassword: string;
8
+ }) => Promise<import("@atlasauth/js").PasswordChangeResult>;
9
+ setPassword: (password: string) => Promise<import("@atlasauth/js").SetPasswordResult>;
10
+ listTrustedDevices: () => Promise<import("@atlasauth/js").TrustedDevicesResult>;
11
+ revokeTrustedDevice: (id: string) => Promise<import("@atlasauth/js").RevokeTrustedDeviceResult>;
12
+ };
13
+ /** `const { changePassword } = useAccountSecurity();` bound to the provider's bearer-authenticated client. */
14
+ export declare function useAccountSecurity(): {
15
+ changePassword: (input: {
16
+ currentPassword: string;
17
+ newPassword: string;
18
+ }) => Promise<import("@atlasauth/js").PasswordChangeResult>;
19
+ setPassword: (password: string) => Promise<import("@atlasauth/js").SetPasswordResult>;
20
+ listTrustedDevices: () => Promise<import("@atlasauth/js").TrustedDevicesResult>;
21
+ revokeTrustedDevice: (id: string) => Promise<import("@atlasauth/js").RevokeTrustedDeviceResult>;
22
+ } | null;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.revokeTrustedDevice = exports.listTrustedDevices = exports.setPassword = exports.changePassword = void 0;
4
+ exports.createAccountSecurityActions = createAccountSecurityActions;
5
+ exports.useAccountSecurity = useAccountSecurity;
6
+ /**
7
+ * Change or set the signed-in user's password, and manage trusted devices, from
8
+ * a native app. The provider's client authenticates with the stored session
9
+ * token as a bearer, so these work without a cookie.
10
+ */
11
+ const react_1 = require("react");
12
+ const js_1 = require("@atlasauth/js");
13
+ Object.defineProperty(exports, "changePassword", { enumerable: true, get: function () { return js_1.changePassword; } });
14
+ Object.defineProperty(exports, "listTrustedDevices", { enumerable: true, get: function () { return js_1.listTrustedDevices; } });
15
+ Object.defineProperty(exports, "revokeTrustedDevice", { enumerable: true, get: function () { return js_1.revokeTrustedDevice; } });
16
+ Object.defineProperty(exports, "setPassword", { enumerable: true, get: function () { return js_1.setPassword; } });
17
+ const policies_1 = require("./policies");
18
+ /** The calls bound to a client; separated from React so it is testable with a fake one. */
19
+ function createAccountSecurityActions(client) {
20
+ return {
21
+ changePassword: (input) => (0, js_1.changePassword)(client, input),
22
+ setPassword: (password) => (0, js_1.setPassword)(client, password),
23
+ listTrustedDevices: () => (0, js_1.listTrustedDevices)(client),
24
+ revokeTrustedDevice: (id) => (0, js_1.revokeTrustedDevice)(client, id),
25
+ };
26
+ }
27
+ /** `const { changePassword } = useAccountSecurity();` bound to the provider's bearer-authenticated client. */
28
+ function useAccountSecurity() {
29
+ const client = (0, policies_1.useExpoFapiClient)();
30
+ return (0, react_1.useMemo)(() => (client ? createAccountSecurityActions(client) : null), [client]);
31
+ }
32
+ //# sourceMappingURL=account-security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-security.js","sourceRoot":"","sources":["../src/account-security.ts"],"names":[],"mappings":";;;AAYA,oEAOC;AAGD,gDAGC;AAzBD;;;;GAIG;AACH,iCAAgC;AAChC,sCAAsH;AAG7G,+FAHA,mBAAc,OAGA;AAAe,mGAHb,uBAAkB,OAGa;AAAE,oGAHb,wBAAmB,OAGa;AAApD,4FAHyC,gBAAW,OAGzC;AAFpC,yCAA+C;AAI/C,2FAA2F;AAC3F,SAAgB,4BAA4B,CAAC,MAAkB;IAC7D,OAAO;QACL,cAAc,EAAE,CAAC,KAAuD,EAAE,EAAE,CAAC,IAAA,mBAAc,EAAC,MAAM,EAAE,KAAK,CAAC;QAC1G,WAAW,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAA,gBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC;QAChE,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAA,uBAAkB,EAAC,MAAM,CAAC;QACpD,mBAAmB,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAA,wBAAmB,EAAC,MAAM,EAAE,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,SAAgB,kBAAkB;IAChC,MAAM,MAAM,GAAG,IAAA,4BAAiB,GAAE,CAAC;IACnC,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACzF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,3 +7,5 @@ export * from './policies';
7
7
  export * from './social';
8
8
  export * from './bridge';
9
9
  export * from './app-approval';
10
+ export * from './account-security';
11
+ export { getCaptchaToken, solveAtlasChallengeNative, atlasHeadlessCaptchaSolver, installAtlasCaptchaSolver, type SolveCaptchaOptions, type GetCaptchaTokenOptions, } from '@atlasauth/react-native';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.AtlasLoaded = exports.AtlasLoading = exports.Protect = exports.SignedOut = exports.SignedIn = exports.useOrganization = exports.useSessionList = exports.useSession = exports.useUser = exports.useAuth = void 0;
17
+ exports.installAtlasCaptchaSolver = exports.atlasHeadlessCaptchaSolver = exports.solveAtlasChallengeNative = exports.getCaptchaToken = exports.AtlasLoaded = exports.AtlasLoading = exports.Protect = exports.SignedOut = exports.SignedIn = exports.useOrganization = exports.useSessionList = exports.useSession = exports.useUser = exports.useAuth = void 0;
18
18
  // Expo provider (wraps @atlasauth/react, swaps the cookie transport for an
19
19
  // expo-secure-store-backed token cache) + the token cache itself.
20
20
  __exportStar(require("./token-cache"), exports);
@@ -50,4 +50,13 @@ __exportStar(require("./policies"), exports);
50
50
  __exportStar(require("./social"), exports);
51
51
  __exportStar(require("./bridge"), exports);
52
52
  __exportStar(require("./app-approval"), exports);
53
+ __exportStar(require("./account-security"), exports);
54
+ // Captcha with no browser: the proof-of-work solver for Hermes/JSC. Importing this
55
+ // package installs it as the headless solver, so the sign-in / sign-up / reset
56
+ // flows from `@atlasauth/js` answer a captcha on their own.
57
+ var react_native_1 = require("@atlasauth/react-native");
58
+ Object.defineProperty(exports, "getCaptchaToken", { enumerable: true, get: function () { return react_native_1.getCaptchaToken; } });
59
+ Object.defineProperty(exports, "solveAtlasChallengeNative", { enumerable: true, get: function () { return react_native_1.solveAtlasChallengeNative; } });
60
+ Object.defineProperty(exports, "atlasHeadlessCaptchaSolver", { enumerable: true, get: function () { return react_native_1.atlasHeadlessCaptchaSolver; } });
61
+ Object.defineProperty(exports, "installAtlasCaptchaSolver", { enumerable: true, get: function () { return react_native_1.installAtlasCaptchaSolver; } });
53
62
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2EAA2E;AAC3E,kEAAkE;AAClE,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAEhC,8EAA8E;AAC9E,mDAAiC;AAEjC;;;;;;;;;;GAUG;AACH,0CAW0B;AAVxB,gGAAA,OAAO,OAAA;AACP,gGAAA,OAAO,OAAA;AACP,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,wGAAA,eAAe,OAAA;AACf,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,gGAAA,OAAO,OAAA;AACP,qGAAA,YAAY,OAAA;AACZ,oGAAA,WAAW,OAAA;AAGb,oGAAoG;AACpG,6CAA2B;AAE3B,mGAAmG;AACnG,2CAAyB;AACzB,2CAAyB;AACzB,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2EAA2E;AAC3E,kEAAkE;AAClE,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAEhC,8EAA8E;AAC9E,mDAAiC;AAEjC;;;;;;;;;;GAUG;AACH,0CAW0B;AAVxB,gGAAA,OAAO,OAAA;AACP,gGAAA,OAAO,OAAA;AACP,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,wGAAA,eAAe,OAAA;AACf,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,gGAAA,OAAO,OAAA;AACP,qGAAA,YAAY,OAAA;AACZ,oGAAA,WAAW,OAAA;AAGb,oGAAoG;AACpG,6CAA2B;AAE3B,mGAAmG;AACnG,2CAAyB;AACzB,2CAAyB;AACzB,iDAA+B;AAC/B,qDAAmC;AAEnC,mFAAmF;AACnF,+EAA+E;AAC/E,4DAA4D;AAC5D,wDAOiC;AAN/B,+GAAA,eAAe,OAAA;AACf,yHAAA,yBAAyB,OAAA;AACzB,0HAAA,0BAA0B,OAAA;AAC1B,yHAAA,yBAAyB,OAAA"}
package/dist/social.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * /v1/client/sign_ins/id_token`) and traded for a session. The provider's token
5
5
  * cache stores the returned session JWT.
6
6
  */
7
- import { type FapiClient, type FieldError } from '@atlasauth/js';
7
+ import { type FapiClient, type FieldError, type LinkExternalAccountResult } from '@atlasauth/js';
8
8
  export interface NativeSocialResult {
9
9
  status: 'complete' | 'needs_more' | 'error' | 'cancelled';
10
10
  jwt?: string;
@@ -17,6 +17,15 @@ export declare function signInWithIdToken(client: FapiClient, input: {
17
17
  idToken: string;
18
18
  nonce?: string;
19
19
  }): Promise<NativeSocialResult>;
20
+ /**
21
+ * Link a provider ID token (Google or Apple system sheet) to the signed-in user instead of signing in. Mint the nonce
22
+ * with `mintNativeNonce` first. Needs a recent re-authentication (`STEP_UP_REQUIRED` otherwise).
23
+ */
24
+ export declare function linkWithIdToken(client: FapiClient, input: {
25
+ provider: string;
26
+ idToken: string;
27
+ nonce?: string;
28
+ }): Promise<LinkExternalAccountResult>;
20
29
  /** The slice of `expo-apple-authentication` used here. */
21
30
  export interface AppleAuthenticationLike {
22
31
  signInAsync(options: {
package/dist/social.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.signInWithIdToken = signInWithIdToken;
4
+ exports.linkWithIdToken = linkWithIdToken;
4
5
  exports.signInWithApple = signInWithApple;
5
6
  exports.signInWithGoogle = signInWithGoogle;
6
7
  /**
@@ -23,6 +24,13 @@ async function signInWithIdToken(client, input) {
23
24
  return { status: 'error', errors: ex.errors.length ? ex.errors : [{ code: 'EXCHANGE_FAILED', message: 'Could not complete sign-in.' }] };
24
25
  return { status: 'complete', jwt: ex.data.jwt, ...(attempt?.id ? { attemptId: attempt.id } : {}), errors: [] };
25
26
  }
27
+ /**
28
+ * Link a provider ID token (Google or Apple system sheet) to the signed-in user instead of signing in. Mint the nonce
29
+ * with `mintNativeNonce` first. Needs a recent re-authentication (`STEP_UP_REQUIRED` otherwise).
30
+ */
31
+ function linkWithIdToken(client, input) {
32
+ return (0, js_1.linkExternalAccountWithIdToken)(client, input);
33
+ }
26
34
  /** Sign in with the Apple system sheet. A dismissed sheet resolves as `cancelled`. */
27
35
  async function signInWithApple(client, apple) {
28
36
  const nonce = (await (0, js_1.mintNativeNonce)(client, 'apple')) ?? undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"social.js","sourceRoot":"","sources":["../src/social.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../src/social.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@atlasauth/expo",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "dependencies": {
7
- "@atlasauth/js": "0.38.0",
8
- "@atlasauth/react": "^0.34.0",
9
- "@atlasauth/react-native": "^0.7.0"
7
+ "@atlasauth/react-native": "^0.8.0",
8
+ "@atlasauth/react": "^0.35.0"
10
9
  },
11
10
  "peerDependencies": {
11
+ "@atlasauth/js": ">=0.40.0 <1.0.0",
12
12
  "react": ">=18",
13
13
  "react-native": ">=0.73",
14
14
  "expo-secure-store": ">=12",
@@ -36,7 +36,8 @@
36
36
  "@types/react": "^18.3.12",
37
37
  "react": "^18.3.1",
38
38
  "typescript": "^5.6.3",
39
- "vitest": "^2.1.4"
39
+ "vitest": "^3.2.7",
40
+ "@atlasauth/js": "0.40.0"
40
41
  },
41
42
  "publishConfig": {
42
43
  "access": "public"