@sentroy-co/client-sdk 2.14.0 → 2.16.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 +29 -0
- package/dist/auth/client.d.ts.map +1 -1
- package/dist/auth/client.js +8 -1
- package/dist/auth/client.js.map +1 -1
- package/dist/auth/react/index.js +1 -1
- package/dist/auth/react/index.js.map +1 -1
- package/dist/auth/react-native/index.d.ts +93 -0
- package/dist/auth/react-native/index.d.ts.map +1 -0
- package/dist/auth/react-native/index.js +106 -0
- package/dist/auth/react-native/index.js.map +1 -0
- package/package.json +6 -1
- package/skill/SKILL.md +57 -4
- package/src/auth/client.ts +8 -1
- package/src/auth/react/index.tsx +1 -1
- package/src/auth/react-native/index.ts +157 -0
package/README.md
CHANGED
|
@@ -200,6 +200,35 @@ npx sentroy ai install
|
|
|
200
200
|
|
|
201
201
|
The vault token's (project, environment) scope is implicit. Mail/storage commands need `SENTROY_API_KEY` (`stk_<48-hex>`) plus a company slug (env var or `--company-slug`). Every list/get supports `--output=json` for scripting. Full command list and recipes: [docs.sentroy.com/cli](https://docs.sentroy.com/cli).
|
|
202
202
|
|
|
203
|
+
### React Native / Expo
|
|
204
|
+
|
|
205
|
+
The SDK runs in React Native / Expo with one extra subpath for platform-specific helpers: [`@sentroy-co/client-sdk/auth/react-native`](https://docs.sentroy.com/auth-projects#react-native).
|
|
206
|
+
|
|
207
|
+
```ts
|
|
208
|
+
import AsyncStorage from "@react-native-async-storage/async-storage"
|
|
209
|
+
import * as WebBrowser from "expo-web-browser"
|
|
210
|
+
import { SentroyAuth } from "@sentroy-co/client-sdk/auth"
|
|
211
|
+
import {
|
|
212
|
+
createAsyncStorageAdapter,
|
|
213
|
+
openSocialAuthSession,
|
|
214
|
+
} from "@sentroy-co/client-sdk/auth/react-native"
|
|
215
|
+
|
|
216
|
+
export const auth = new SentroyAuth({
|
|
217
|
+
projectSlug: "acme",
|
|
218
|
+
apiKey: process.env.EXPO_PUBLIC_SENTROY_AUTH_KEY!,
|
|
219
|
+
storage: createAsyncStorageAdapter(AsyncStorage, { projectSlug: "acme" }),
|
|
220
|
+
})
|
|
221
|
+
|
|
222
|
+
// Social login via the system browser, with a deep-link callback.
|
|
223
|
+
const tokens = await openSocialAuthSession(WebBrowser, {
|
|
224
|
+
authorizeUrl: auth.socialAuthorizeUrl("google", { redirectUri: "myapp://auth/callback" }),
|
|
225
|
+
redirectUri: "myapp://auth/callback",
|
|
226
|
+
})
|
|
227
|
+
if (tokens) await auth.setSession(tokens)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Notes: passkeys are web-only, `SentroyAuthAdmin` is server-only (do not import in Expo bundles), and `media.upload` from `expo-document-picker` accepts `{uri, name, type}` as `body`. Full guide: [docs.sentroy.com/auth-projects#react-native](https://docs.sentroy.com/auth-projects#react-native).
|
|
231
|
+
|
|
203
232
|
### AI Skill
|
|
204
233
|
|
|
205
234
|
Sentroy ships a canonical [`SKILL.md`](https://docs.sentroy.com/skill.md) (Anthropic Skills format) so AI coding agents (Claude Code, Cursor, Windsurf, OpenAI Codex via AGENTS.md) understand the auth model, endpoints, and gotchas without trial-and-error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAElB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAA;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAA;AAE5E,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI,CAAA;IACnF,KAAK,CAAC,KAAK,EAAE;QACX,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,eAAe,CAAA;KACtB,GAAG,IAAI,CAAA;IACR,KAAK,IAAI,IAAI,CAAA;CACd;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/client.js
CHANGED
|
@@ -81,6 +81,13 @@ async function loadSimpleWebAuthnBrowser() {
|
|
|
81
81
|
throw new Error("Passkey support requires `@simplewebauthn/browser` — install it as a peer dependency.");
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Browser localStorage-backed adapter. In React Native, `window.localStorage`
|
|
86
|
+
* is undefined, so this falls back to an in-memory adapter (session lost on
|
|
87
|
+
* app restart). For RN persistence, pass a custom adapter via
|
|
88
|
+
* `storage: createAsyncStorageAdapter(...)` or `createSecureStoreAdapter(...)`
|
|
89
|
+
* imported from `@sentroy-co/client-sdk/auth/react-native`.
|
|
90
|
+
*/
|
|
84
91
|
function localStorageAdapter(projectSlug) {
|
|
85
92
|
if (typeof window === "undefined" || !window.localStorage) {
|
|
86
93
|
return memoryStorageAdapter();
|
|
@@ -311,7 +318,7 @@ class SentroyAuth {
|
|
|
311
318
|
* çağırın. Başarılıysa user döner, fail'da null.
|
|
312
319
|
*/
|
|
313
320
|
async consumeRedirectFragment() {
|
|
314
|
-
if (typeof window === "undefined")
|
|
321
|
+
if (typeof window === "undefined" || !window.location)
|
|
315
322
|
return null;
|
|
316
323
|
const hash = window.location.hash.replace(/^#/, "");
|
|
317
324
|
if (!hash)
|
package/dist/auth/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/react/index.js
CHANGED
|
@@ -31,7 +31,7 @@ function SentroyAuthProvider({ children, autoConsumeFragment = true, ...opts })
|
|
|
31
31
|
(0, react_1.useEffect)(() => {
|
|
32
32
|
if (!autoConsumeFragment)
|
|
33
33
|
return;
|
|
34
|
-
if (typeof window === "undefined")
|
|
34
|
+
if (typeof window === "undefined" || !window.location)
|
|
35
35
|
return;
|
|
36
36
|
if (!window.location.hash.includes("access_token="))
|
|
37
37
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/react/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;AA6DZ,kDA6DC;AAED,0BAQC;AAMD,0BAEC;AAMD,kCA0CC;AAMD,kCAiCC;AAMD,wBA4DC;AAMD,kCAmDC;;AA5VD,iCAQc;AACd,sCAAgE;AAgDhE,MAAM,WAAW,GAAG,IAAA,qBAAa,EAA0B,IAAI,CAAC,CAAA;AAEhE,SAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,mBAAmB,GAAG,IAAI,EAC1B,GAAG,IAAI,EAOR;IACC,oEAAoE;IACpE,sEAAsE;IACtE,MAAM,IAAI,GAAG,IAAA,eAAO,EAClB,GAAG,EAAE,CAAC,IAAI,oBAAW,CAAC,IAAI,CAAC;IAC3B,uDAAuD;IACvD,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAClD,CAAA;IACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAyB,IAAI,CAAC,IAAI,CAAC,CAAA;IACnE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAE5C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,OAAO,CAAC,CAAC,CAAC,CAAA;YACV,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,OAAO,WAAW,CAAA;IACpB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,kEAAkE;IAClE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,mBAAmB;YAAE,OAAM;QAChC,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAM;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/react/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { AuthStorageAdapter } from "../client";
|
|
2
|
+
/** AsyncStorage instance interface — matches @react-native-async-storage/async-storage */
|
|
3
|
+
interface AsyncStorageLike {
|
|
4
|
+
getItem(key: string): Promise<string | null>;
|
|
5
|
+
setItem(key: string, value: string): Promise<void>;
|
|
6
|
+
removeItem(key: string): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
/** SecureStore instance interface — matches expo-secure-store. */
|
|
9
|
+
interface SecureStoreLike {
|
|
10
|
+
getItemAsync(key: string): Promise<string | null>;
|
|
11
|
+
setItemAsync(key: string, value: string): Promise<void>;
|
|
12
|
+
deleteItemAsync(key: string): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export interface CreateAsyncAdapterOptions {
|
|
15
|
+
/** Project slug — used to namespace the storage key. */
|
|
16
|
+
projectSlug: string;
|
|
17
|
+
/** Optional custom key prefix. Default "sentroy.auth". */
|
|
18
|
+
keyPrefix?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Wrap React Native AsyncStorage in the synchronous AuthStorageAdapter
|
|
22
|
+
* contract via a hydrate-on-construct + cache-in-memory + write-through
|
|
23
|
+
* pattern. Reads always hit the cache (sync); writes both update the cache
|
|
24
|
+
* and fire-and-forget to AsyncStorage.
|
|
25
|
+
*
|
|
26
|
+
* Usage:
|
|
27
|
+
* import AsyncStorage from "@react-native-async-storage/async-storage"
|
|
28
|
+
* import { createAsyncStorageAdapter } from "@sentroy-co/client-sdk/auth/react-native"
|
|
29
|
+
*
|
|
30
|
+
* const adapter = createAsyncStorageAdapter(AsyncStorage, { projectSlug: "acme" })
|
|
31
|
+
* const auth = new SentroyAuth({ projectSlug: "acme", apiKey: "...", storage: adapter })
|
|
32
|
+
* // Hydration completes asynchronously; auth.user is null until then.
|
|
33
|
+
* // SentroyAuthProvider's `loading` flag covers this — render a splash.
|
|
34
|
+
*
|
|
35
|
+
* await adapter.ready // optional: await before reading auth.user directly
|
|
36
|
+
*/
|
|
37
|
+
export declare function createAsyncStorageAdapter(storage: AsyncStorageLike, opts: CreateAsyncAdapterOptions): AuthStorageAdapter & {
|
|
38
|
+
ready: Promise<void>;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Wrap expo-secure-store in the synchronous AuthStorageAdapter contract.
|
|
42
|
+
* Use this for the refreshToken — it's a long-lived credential and lives
|
|
43
|
+
* better in the OS keychain/keystore than in AsyncStorage.
|
|
44
|
+
*
|
|
45
|
+
* Note: expo-secure-store has a 2KB per-key size limit on iOS. If the user
|
|
46
|
+
* blob exceeds it, split: keep refreshToken in SecureStore via this adapter,
|
|
47
|
+
* keep accessToken+user in AsyncStorage via `createAsyncStorageAdapter`,
|
|
48
|
+
* or strip user.metadata before storing.
|
|
49
|
+
*
|
|
50
|
+
* Usage:
|
|
51
|
+
* import * as SecureStore from "expo-secure-store"
|
|
52
|
+
* import { createSecureStoreAdapter } from "@sentroy-co/client-sdk/auth/react-native"
|
|
53
|
+
*
|
|
54
|
+
* const adapter = createSecureStoreAdapter(SecureStore, { projectSlug: "acme" })
|
|
55
|
+
* const auth = new SentroyAuth({ projectSlug: "acme", apiKey: "...", storage: adapter })
|
|
56
|
+
*/
|
|
57
|
+
export declare function createSecureStoreAdapter(store: SecureStoreLike, opts: CreateAsyncAdapterOptions): AuthStorageAdapter & {
|
|
58
|
+
ready: Promise<void>;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Helper for the expo-web-browser social-login pattern. The auth provider
|
|
62
|
+
* launches the system browser, redirects to your registered `redirectUri`,
|
|
63
|
+
* and returns the tokens via URL hash fragment.
|
|
64
|
+
*
|
|
65
|
+
* Usage:
|
|
66
|
+
* import * as WebBrowser from "expo-web-browser"
|
|
67
|
+
* import { openSocialAuthSession } from "@sentroy-co/client-sdk/auth/react-native"
|
|
68
|
+
*
|
|
69
|
+
* const result = await openSocialAuthSession(WebBrowser, {
|
|
70
|
+
* authorizeUrl: auth.socialAuthorizeUrl("google", { redirectUri: "myapp://auth/callback" }),
|
|
71
|
+
* redirectUri: "myapp://auth/callback",
|
|
72
|
+
* })
|
|
73
|
+
* if (result?.tokens) {
|
|
74
|
+
* await auth.setSession(result.tokens)
|
|
75
|
+
* }
|
|
76
|
+
*
|
|
77
|
+
* Returns null if the user cancelled, or { tokens, user } if successful.
|
|
78
|
+
*/
|
|
79
|
+
export interface WebBrowserLike {
|
|
80
|
+
openAuthSessionAsync(url: string, redirectUri: string): Promise<{
|
|
81
|
+
type: string;
|
|
82
|
+
url?: string;
|
|
83
|
+
}>;
|
|
84
|
+
}
|
|
85
|
+
export declare function openSocialAuthSession(webBrowser: WebBrowserLike, opts: {
|
|
86
|
+
authorizeUrl: string;
|
|
87
|
+
redirectUri: string;
|
|
88
|
+
}): Promise<{
|
|
89
|
+
accessToken: string;
|
|
90
|
+
refreshToken: string;
|
|
91
|
+
} | null>;
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/react-native/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEnD,0FAA0F;AAC1F,UAAU,gBAAgB;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC;AAED,kEAAkE;AAClE,UAAU,eAAe;IACvB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACjD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5C;AAQD,MAAM,WAAW,yBAAyB;IACxC,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAA;IACnB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,yBAAyB,GAC9B,kBAAkB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAuB/C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,yBAAyB,GAC9B,kBAAkB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAuB/C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,cAAc;IAC7B,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChG;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAW/D"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAsyncStorageAdapter = createAsyncStorageAdapter;
|
|
4
|
+
exports.createSecureStoreAdapter = createSecureStoreAdapter;
|
|
5
|
+
exports.openSocialAuthSession = openSocialAuthSession;
|
|
6
|
+
/**
|
|
7
|
+
* Wrap React Native AsyncStorage in the synchronous AuthStorageAdapter
|
|
8
|
+
* contract via a hydrate-on-construct + cache-in-memory + write-through
|
|
9
|
+
* pattern. Reads always hit the cache (sync); writes both update the cache
|
|
10
|
+
* and fire-and-forget to AsyncStorage.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* import AsyncStorage from "@react-native-async-storage/async-storage"
|
|
14
|
+
* import { createAsyncStorageAdapter } from "@sentroy-co/client-sdk/auth/react-native"
|
|
15
|
+
*
|
|
16
|
+
* const adapter = createAsyncStorageAdapter(AsyncStorage, { projectSlug: "acme" })
|
|
17
|
+
* const auth = new SentroyAuth({ projectSlug: "acme", apiKey: "...", storage: adapter })
|
|
18
|
+
* // Hydration completes asynchronously; auth.user is null until then.
|
|
19
|
+
* // SentroyAuthProvider's `loading` flag covers this — render a splash.
|
|
20
|
+
*
|
|
21
|
+
* await adapter.ready // optional: await before reading auth.user directly
|
|
22
|
+
*/
|
|
23
|
+
function createAsyncStorageAdapter(storage, opts) {
|
|
24
|
+
const key = `${opts.keyPrefix ?? "sentroy.auth"}.${opts.projectSlug}`;
|
|
25
|
+
let cache = null;
|
|
26
|
+
const ready = (async () => {
|
|
27
|
+
try {
|
|
28
|
+
const raw = await storage.getItem(key);
|
|
29
|
+
if (raw)
|
|
30
|
+
cache = JSON.parse(raw);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
cache = null;
|
|
34
|
+
}
|
|
35
|
+
})();
|
|
36
|
+
return {
|
|
37
|
+
read() { return cache; },
|
|
38
|
+
write(value) {
|
|
39
|
+
cache = value;
|
|
40
|
+
void storage.setItem(key, JSON.stringify(value)).catch(() => { });
|
|
41
|
+
},
|
|
42
|
+
clear() {
|
|
43
|
+
cache = null;
|
|
44
|
+
void storage.removeItem(key).catch(() => { });
|
|
45
|
+
},
|
|
46
|
+
ready,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Wrap expo-secure-store in the synchronous AuthStorageAdapter contract.
|
|
51
|
+
* Use this for the refreshToken — it's a long-lived credential and lives
|
|
52
|
+
* better in the OS keychain/keystore than in AsyncStorage.
|
|
53
|
+
*
|
|
54
|
+
* Note: expo-secure-store has a 2KB per-key size limit on iOS. If the user
|
|
55
|
+
* blob exceeds it, split: keep refreshToken in SecureStore via this adapter,
|
|
56
|
+
* keep accessToken+user in AsyncStorage via `createAsyncStorageAdapter`,
|
|
57
|
+
* or strip user.metadata before storing.
|
|
58
|
+
*
|
|
59
|
+
* Usage:
|
|
60
|
+
* import * as SecureStore from "expo-secure-store"
|
|
61
|
+
* import { createSecureStoreAdapter } from "@sentroy-co/client-sdk/auth/react-native"
|
|
62
|
+
*
|
|
63
|
+
* const adapter = createSecureStoreAdapter(SecureStore, { projectSlug: "acme" })
|
|
64
|
+
* const auth = new SentroyAuth({ projectSlug: "acme", apiKey: "...", storage: adapter })
|
|
65
|
+
*/
|
|
66
|
+
function createSecureStoreAdapter(store, opts) {
|
|
67
|
+
const key = `${opts.keyPrefix ?? "sentroy.auth"}.${opts.projectSlug}`;
|
|
68
|
+
let cache = null;
|
|
69
|
+
const ready = (async () => {
|
|
70
|
+
try {
|
|
71
|
+
const raw = await store.getItemAsync(key);
|
|
72
|
+
if (raw)
|
|
73
|
+
cache = JSON.parse(raw);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
cache = null;
|
|
77
|
+
}
|
|
78
|
+
})();
|
|
79
|
+
return {
|
|
80
|
+
read() { return cache; },
|
|
81
|
+
write(value) {
|
|
82
|
+
cache = value;
|
|
83
|
+
void store.setItemAsync(key, JSON.stringify(value)).catch(() => { });
|
|
84
|
+
},
|
|
85
|
+
clear() {
|
|
86
|
+
cache = null;
|
|
87
|
+
void store.deleteItemAsync(key).catch(() => { });
|
|
88
|
+
},
|
|
89
|
+
ready,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
async function openSocialAuthSession(webBrowser, opts) {
|
|
93
|
+
const result = await webBrowser.openAuthSessionAsync(opts.authorizeUrl, opts.redirectUri);
|
|
94
|
+
if (result.type !== "success" || !result.url)
|
|
95
|
+
return null;
|
|
96
|
+
// Parse the hash fragment (#access_token=...&refresh_token=...&...)
|
|
97
|
+
const u = new URL(result.url);
|
|
98
|
+
const fragment = u.hash.replace(/^#/, "");
|
|
99
|
+
const params = new URLSearchParams(fragment);
|
|
100
|
+
const accessToken = params.get("access_token");
|
|
101
|
+
const refreshToken = params.get("refresh_token");
|
|
102
|
+
if (!accessToken || !refreshToken)
|
|
103
|
+
return null;
|
|
104
|
+
return { accessToken, refreshToken };
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/react-native/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentroy-co/client-sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.16.0",
|
|
4
4
|
"description": "TypeScript SDK + CLI for the Sentroy platform — mail, storage, env vault + React components.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -53,6 +53,11 @@
|
|
|
53
53
|
"types": "./dist/auth/react/index.d.ts",
|
|
54
54
|
"import": "./dist/auth/react/index.js",
|
|
55
55
|
"require": "./dist/auth/react/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./auth/react-native": {
|
|
58
|
+
"types": "./dist/auth/react-native/index.d.ts",
|
|
59
|
+
"import": "./dist/auth/react-native/index.js",
|
|
60
|
+
"require": "./dist/auth/react-native/index.js"
|
|
56
61
|
}
|
|
57
62
|
},
|
|
58
63
|
"files": [
|
package/skill/SKILL.md
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sentroy
|
|
3
|
-
version: 2.
|
|
4
|
-
description: Use when working with the Sentroy platform
|
|
3
|
+
version: 2.16.0
|
|
4
|
+
description: 'Use when working with the Sentroy platform — an open, self-hostable all-in-one backend (Firebase alternative). Covers transactional email (Resend / Postmark / Mailgun alternative), S3-compatible object storage + CDN (Cloudflare R2 / Backblaze alternative), auth-as-a-service (Auth0 / Clerk / Firebase Auth alternative — per-app end-user pools with JWT/JWKS/MFA), env vault (Doppler / Infisical alternative), and the sentroy CLI. Trigger on Firebase alternative, Resend alternative, transactional email API, self-hosted Auth0, Auth0 alternative, Clerk alternative, S3 alternative, Doppler alternative, all-in-one backend, BaaS.'
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## TL;DR
|
|
8
8
|
|
|
9
|
-
**Sentroy** is a unified
|
|
9
|
+
**Sentroy** is a unified, self-hostable backend platform — a **Firebase alternative** that bundles transactional **mail** (Resend / Postmark / Mailgun alternative), S3-backed **storage + CDN** (Cloudflare R2 / Backblaze B2 alternative), an **env vault** (Doppler / Infisical alternative for config + secrets sync), and **auth-as-a-service** (Auth0 / Clerk / Firebase Auth alternative — per-app end-user pools with JWT/JWKS, MFA, social login). Official SDKs in TypeScript, Python, PHP, Go all wrap the same REST surface; a `sentroy` CLI ships with the TS package. **Use this skill when** a user asks for Firebase alternative, transactional email API, self-hosted Auth0, Resend alternative, all-in-one backend, object storage API, or secrets manager.
|
|
10
|
+
|
|
11
|
+
## Positioning / Alternatives
|
|
12
|
+
|
|
13
|
+
| Sentroy product | Replaces | Why pick Sentroy |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| Mail | Resend, Postmark, Mailgun, SendGrid, Amazon SES, Mailtrap | Bundled with storage + auth + vault; self-hostable; multilingual templates; same DKIM/SPF/DMARC primitives |
|
|
16
|
+
| Storage | AWS S3, Cloudflare R2, Backblaze B2, Wasabi, Supabase Storage, UploadThing, Cloudinary | S3-compatible API; built-in CDN with image transforms; one access token for upload + serve |
|
|
17
|
+
| Auth (Auth Projects) | Firebase Auth, Auth0, Clerk, Supabase Auth, WorkOS, Stytch, Kinde | No per-MAU pricing wall; self-hostable; JWT via JWKS RS256; full MFA + passkey + social; React + RN SDKs |
|
|
18
|
+
| Env Vault | Doppler, Infisical, AWS Secrets Manager, HashiCorp Vault, 1Password Secrets Automation | Bundled with the rest of the platform; CLI push/pull/diff; runtime swappable without rebuild |
|
|
19
|
+
|
|
20
|
+
**When NOT to use Sentroy:**
|
|
21
|
+
|
|
22
|
+
- Tiny side-project email send only → Resend free tier may be simpler
|
|
23
|
+
- Managed service with 99.99% SLA + 24/7 enterprise support → AWS / Auth0 enterprise tiers fit better today
|
|
24
|
+
- Fine-grained RBAC with custom roles per project → Auth0 / WorkOS more mature (Sentroy roadmap)
|
|
25
|
+
- Geo-replicated object storage with multi-region writes → Cloudflare R2 has more PoPs
|
|
26
|
+
|
|
27
|
+
**Why one platform?** Stitching separate vendors costs you in three places: four bills + four auth models + four SDKs + four dashboards to babysit; cross-product features (e.g. "store the user's upload then email them a receipt") become custom glue instead of a single call; and data-residency / GDPR consistency is easier to argue when one provider handles every byte end-to-end.
|
|
10
28
|
|
|
11
29
|
## Base URLs
|
|
12
30
|
|
|
@@ -65,6 +83,41 @@ const domains = await sentroy.domains.list();
|
|
|
65
83
|
console.log(domains);
|
|
66
84
|
```
|
|
67
85
|
|
|
86
|
+
### React Native / Expo
|
|
87
|
+
|
|
88
|
+
The auth SDK works in Expo/React Native with two small additions:
|
|
89
|
+
|
|
90
|
+
1. Plug in async storage (sessions persist across cold-starts):
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
import AsyncStorage from "@react-native-async-storage/async-storage"
|
|
94
|
+
import { SentroyAuth } from "@sentroy-co/client-sdk/auth"
|
|
95
|
+
import { createAsyncStorageAdapter } from "@sentroy-co/client-sdk/auth/react-native"
|
|
96
|
+
|
|
97
|
+
export const auth = new SentroyAuth({
|
|
98
|
+
projectSlug: "acme",
|
|
99
|
+
apiKey: process.env.EXPO_PUBLIC_SENTROY_AUTH_KEY!,
|
|
100
|
+
storage: createAsyncStorageAdapter(AsyncStorage, { projectSlug: "acme" }),
|
|
101
|
+
})
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
2. Social login via expo-web-browser:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
import * as WebBrowser from "expo-web-browser"
|
|
108
|
+
import { openSocialAuthSession } from "@sentroy-co/client-sdk/auth/react-native"
|
|
109
|
+
|
|
110
|
+
const tokens = await openSocialAuthSession(WebBrowser, {
|
|
111
|
+
authorizeUrl: auth.socialAuthorizeUrl("google", {
|
|
112
|
+
redirectUri: "myapp://auth/callback",
|
|
113
|
+
}),
|
|
114
|
+
redirectUri: "myapp://auth/callback",
|
|
115
|
+
})
|
|
116
|
+
if (tokens) await auth.setSession(tokens)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Gotchas:** `SentroyAuthAdmin` is server-only (do not import in Expo bundles). Passkeys are web-only. `media.upload` from Expo `DocumentPicker` needs `{uri, name, type}` as `body`. Old RN (<0.71) needs an `atob` polyfill.
|
|
120
|
+
|
|
68
121
|
### Python
|
|
69
122
|
|
|
70
123
|
> **Note:** Python/PHP/Go SDK packages are in development; today they map 1:1 to raw HTTP calls — see the cURL recipes.
|
|
@@ -539,4 +592,4 @@ sentroy ai install [--claude] [--cursor] [--windsurf] [--agents] [--all] [--upgr
|
|
|
539
592
|
- `https://docs.sentroy.com/auth-projects` — Auth-as-a-Service docs
|
|
540
593
|
- `https://raw.githubusercontent.com/Sentroy-Co/client-sdk/main/typescript/AGENTS.md` — the full 900-line TS reference (deep dive)
|
|
541
594
|
|
|
542
|
-
<!-- skill-version: 2.
|
|
595
|
+
<!-- skill-version: 2.16.0 -->
|
package/src/auth/client.ts
CHANGED
|
@@ -100,6 +100,13 @@ async function loadSimpleWebAuthnBrowser(): Promise<{
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
/**
|
|
104
|
+
* Browser localStorage-backed adapter. In React Native, `window.localStorage`
|
|
105
|
+
* is undefined, so this falls back to an in-memory adapter (session lost on
|
|
106
|
+
* app restart). For RN persistence, pass a custom adapter via
|
|
107
|
+
* `storage: createAsyncStorageAdapter(...)` or `createSecureStoreAdapter(...)`
|
|
108
|
+
* imported from `@sentroy-co/client-sdk/auth/react-native`.
|
|
109
|
+
*/
|
|
103
110
|
function localStorageAdapter(projectSlug: string): AuthStorageAdapter {
|
|
104
111
|
if (typeof window === "undefined" || !window.localStorage) {
|
|
105
112
|
return memoryStorageAdapter()
|
|
@@ -403,7 +410,7 @@ export class SentroyAuth {
|
|
|
403
410
|
* çağırın. Başarılıysa user döner, fail'da null.
|
|
404
411
|
*/
|
|
405
412
|
async consumeRedirectFragment(): Promise<SentroyAuthUser | null> {
|
|
406
|
-
if (typeof window === "undefined") return null
|
|
413
|
+
if (typeof window === "undefined" || !window.location) return null
|
|
407
414
|
const hash = window.location.hash.replace(/^#/, "")
|
|
408
415
|
if (!hash) return null
|
|
409
416
|
const params = new URLSearchParams(hash)
|
package/src/auth/react/index.tsx
CHANGED
|
@@ -91,7 +91,7 @@ export function SentroyAuthProvider({
|
|
|
91
91
|
// Social login redirect handler — fragment varsa otomatik consume
|
|
92
92
|
useEffect(() => {
|
|
93
93
|
if (!autoConsumeFragment) return
|
|
94
|
-
if (typeof window === "undefined") return
|
|
94
|
+
if (typeof window === "undefined" || !window.location) return
|
|
95
95
|
if (!window.location.hash.includes("access_token=")) return
|
|
96
96
|
auth.consumeRedirectFragment().catch(() => {
|
|
97
97
|
// Fragment varsa ama consume fail ise sessizce yut — caller
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { AuthStorageAdapter } from "../client"
|
|
2
|
+
|
|
3
|
+
/** AsyncStorage instance interface — matches @react-native-async-storage/async-storage */
|
|
4
|
+
interface AsyncStorageLike {
|
|
5
|
+
getItem(key: string): Promise<string | null>
|
|
6
|
+
setItem(key: string, value: string): Promise<void>
|
|
7
|
+
removeItem(key: string): Promise<void>
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** SecureStore instance interface — matches expo-secure-store. */
|
|
11
|
+
interface SecureStoreLike {
|
|
12
|
+
getItemAsync(key: string): Promise<string | null>
|
|
13
|
+
setItemAsync(key: string, value: string): Promise<void>
|
|
14
|
+
deleteItemAsync(key: string): Promise<void>
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface AdapterValue {
|
|
18
|
+
accessToken: string
|
|
19
|
+
refreshToken: string
|
|
20
|
+
user: unknown // SentroyAuthUser shape, but kept loose to avoid circular import burden
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface CreateAsyncAdapterOptions {
|
|
24
|
+
/** Project slug — used to namespace the storage key. */
|
|
25
|
+
projectSlug: string
|
|
26
|
+
/** Optional custom key prefix. Default "sentroy.auth". */
|
|
27
|
+
keyPrefix?: string
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Wrap React Native AsyncStorage in the synchronous AuthStorageAdapter
|
|
32
|
+
* contract via a hydrate-on-construct + cache-in-memory + write-through
|
|
33
|
+
* pattern. Reads always hit the cache (sync); writes both update the cache
|
|
34
|
+
* and fire-and-forget to AsyncStorage.
|
|
35
|
+
*
|
|
36
|
+
* Usage:
|
|
37
|
+
* import AsyncStorage from "@react-native-async-storage/async-storage"
|
|
38
|
+
* import { createAsyncStorageAdapter } from "@sentroy-co/client-sdk/auth/react-native"
|
|
39
|
+
*
|
|
40
|
+
* const adapter = createAsyncStorageAdapter(AsyncStorage, { projectSlug: "acme" })
|
|
41
|
+
* const auth = new SentroyAuth({ projectSlug: "acme", apiKey: "...", storage: adapter })
|
|
42
|
+
* // Hydration completes asynchronously; auth.user is null until then.
|
|
43
|
+
* // SentroyAuthProvider's `loading` flag covers this — render a splash.
|
|
44
|
+
*
|
|
45
|
+
* await adapter.ready // optional: await before reading auth.user directly
|
|
46
|
+
*/
|
|
47
|
+
export function createAsyncStorageAdapter(
|
|
48
|
+
storage: AsyncStorageLike,
|
|
49
|
+
opts: CreateAsyncAdapterOptions,
|
|
50
|
+
): AuthStorageAdapter & { ready: Promise<void> } {
|
|
51
|
+
const key = `${opts.keyPrefix ?? "sentroy.auth"}.${opts.projectSlug}`
|
|
52
|
+
let cache: AdapterValue | null = null
|
|
53
|
+
const ready = (async () => {
|
|
54
|
+
try {
|
|
55
|
+
const raw = await storage.getItem(key)
|
|
56
|
+
if (raw) cache = JSON.parse(raw) as AdapterValue
|
|
57
|
+
} catch {
|
|
58
|
+
cache = null
|
|
59
|
+
}
|
|
60
|
+
})()
|
|
61
|
+
return {
|
|
62
|
+
read() { return cache as ReturnType<AuthStorageAdapter["read"]> },
|
|
63
|
+
write(value) {
|
|
64
|
+
cache = value as AdapterValue
|
|
65
|
+
void storage.setItem(key, JSON.stringify(value)).catch(() => {})
|
|
66
|
+
},
|
|
67
|
+
clear() {
|
|
68
|
+
cache = null
|
|
69
|
+
void storage.removeItem(key).catch(() => {})
|
|
70
|
+
},
|
|
71
|
+
ready,
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Wrap expo-secure-store in the synchronous AuthStorageAdapter contract.
|
|
77
|
+
* Use this for the refreshToken — it's a long-lived credential and lives
|
|
78
|
+
* better in the OS keychain/keystore than in AsyncStorage.
|
|
79
|
+
*
|
|
80
|
+
* Note: expo-secure-store has a 2KB per-key size limit on iOS. If the user
|
|
81
|
+
* blob exceeds it, split: keep refreshToken in SecureStore via this adapter,
|
|
82
|
+
* keep accessToken+user in AsyncStorage via `createAsyncStorageAdapter`,
|
|
83
|
+
* or strip user.metadata before storing.
|
|
84
|
+
*
|
|
85
|
+
* Usage:
|
|
86
|
+
* import * as SecureStore from "expo-secure-store"
|
|
87
|
+
* import { createSecureStoreAdapter } from "@sentroy-co/client-sdk/auth/react-native"
|
|
88
|
+
*
|
|
89
|
+
* const adapter = createSecureStoreAdapter(SecureStore, { projectSlug: "acme" })
|
|
90
|
+
* const auth = new SentroyAuth({ projectSlug: "acme", apiKey: "...", storage: adapter })
|
|
91
|
+
*/
|
|
92
|
+
export function createSecureStoreAdapter(
|
|
93
|
+
store: SecureStoreLike,
|
|
94
|
+
opts: CreateAsyncAdapterOptions,
|
|
95
|
+
): AuthStorageAdapter & { ready: Promise<void> } {
|
|
96
|
+
const key = `${opts.keyPrefix ?? "sentroy.auth"}.${opts.projectSlug}`
|
|
97
|
+
let cache: AdapterValue | null = null
|
|
98
|
+
const ready = (async () => {
|
|
99
|
+
try {
|
|
100
|
+
const raw = await store.getItemAsync(key)
|
|
101
|
+
if (raw) cache = JSON.parse(raw) as AdapterValue
|
|
102
|
+
} catch {
|
|
103
|
+
cache = null
|
|
104
|
+
}
|
|
105
|
+
})()
|
|
106
|
+
return {
|
|
107
|
+
read() { return cache as ReturnType<AuthStorageAdapter["read"]> },
|
|
108
|
+
write(value) {
|
|
109
|
+
cache = value as AdapterValue
|
|
110
|
+
void store.setItemAsync(key, JSON.stringify(value)).catch(() => {})
|
|
111
|
+
},
|
|
112
|
+
clear() {
|
|
113
|
+
cache = null
|
|
114
|
+
void store.deleteItemAsync(key).catch(() => {})
|
|
115
|
+
},
|
|
116
|
+
ready,
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Helper for the expo-web-browser social-login pattern. The auth provider
|
|
122
|
+
* launches the system browser, redirects to your registered `redirectUri`,
|
|
123
|
+
* and returns the tokens via URL hash fragment.
|
|
124
|
+
*
|
|
125
|
+
* Usage:
|
|
126
|
+
* import * as WebBrowser from "expo-web-browser"
|
|
127
|
+
* import { openSocialAuthSession } from "@sentroy-co/client-sdk/auth/react-native"
|
|
128
|
+
*
|
|
129
|
+
* const result = await openSocialAuthSession(WebBrowser, {
|
|
130
|
+
* authorizeUrl: auth.socialAuthorizeUrl("google", { redirectUri: "myapp://auth/callback" }),
|
|
131
|
+
* redirectUri: "myapp://auth/callback",
|
|
132
|
+
* })
|
|
133
|
+
* if (result?.tokens) {
|
|
134
|
+
* await auth.setSession(result.tokens)
|
|
135
|
+
* }
|
|
136
|
+
*
|
|
137
|
+
* Returns null if the user cancelled, or { tokens, user } if successful.
|
|
138
|
+
*/
|
|
139
|
+
export interface WebBrowserLike {
|
|
140
|
+
openAuthSessionAsync(url: string, redirectUri: string): Promise<{ type: string; url?: string }>
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export async function openSocialAuthSession(
|
|
144
|
+
webBrowser: WebBrowserLike,
|
|
145
|
+
opts: { authorizeUrl: string; redirectUri: string },
|
|
146
|
+
): Promise<{ accessToken: string; refreshToken: string } | null> {
|
|
147
|
+
const result = await webBrowser.openAuthSessionAsync(opts.authorizeUrl, opts.redirectUri)
|
|
148
|
+
if (result.type !== "success" || !result.url) return null
|
|
149
|
+
// Parse the hash fragment (#access_token=...&refresh_token=...&...)
|
|
150
|
+
const u = new URL(result.url)
|
|
151
|
+
const fragment = u.hash.replace(/^#/, "")
|
|
152
|
+
const params = new URLSearchParams(fragment)
|
|
153
|
+
const accessToken = params.get("access_token")
|
|
154
|
+
const refreshToken = params.get("refresh_token")
|
|
155
|
+
if (!accessToken || !refreshToken) return null
|
|
156
|
+
return { accessToken, refreshToken }
|
|
157
|
+
}
|