@atlasauth/react 0.20.0 → 0.21.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 +6 -0
- package/dist/AtlasProvider.js +17 -1
- package/dist/AtlasProvider.js.map +1 -1
- package/dist/account-factors.d.ts +14 -0
- package/dist/account-factors.js +195 -0
- package/dist/account-factors.js.map +1 -0
- package/dist/account.d.ts +12 -1
- package/dist/account.js +92 -3
- package/dist/account.js.map +1 -1
- package/dist/app-launcher.d.ts +11 -0
- package/dist/app-launcher.js +28 -0
- package/dist/app-launcher.js.map +1 -0
- package/dist/billing.d.ts +25 -4
- package/dist/billing.js +40 -22
- package/dist/billing.js.map +1 -1
- package/dist/compat-amplify.d.ts +116 -0
- package/dist/compat-amplify.js +212 -0
- package/dist/compat-amplify.js.map +1 -0
- package/dist/compat-baas.d.ts +155 -0
- package/dist/compat-baas.js +401 -0
- package/dist/compat-baas.js.map +1 -0
- package/dist/compat-firebase.d.ts +67 -0
- package/dist/compat-firebase.js +166 -0
- package/dist/compat-firebase.js.map +1 -0
- package/dist/compat-msal.d.ts +84 -0
- package/dist/compat-msal.js +158 -0
- package/dist/compat-msal.js.map +1 -0
- package/dist/compat.d.ts +7 -1
- package/dist/compat.js +9 -1
- package/dist/compat.js.map +1 -1
- package/dist/components.d.ts +12 -1
- package/dist/components.js +26 -2
- package/dist/components.js.map +1 -1
- package/dist/connected-accounts.d.ts +36 -0
- package/dist/connected-accounts.js +107 -0
- package/dist/connected-accounts.js.map +1 -0
- package/dist/delegated-ui.d.ts +49 -0
- package/dist/delegated-ui.js +42 -0
- package/dist/delegated-ui.js.map +1 -0
- package/dist/flow.d.ts +37 -1
- package/dist/flow.js +111 -2
- package/dist/flow.js.map +1 -1
- package/dist/i18n.js +14 -0
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/marketing.d.ts +31 -0
- package/dist/marketing.js +64 -0
- package/dist/marketing.js.map +1 -0
- package/dist/mfa-steps.d.ts +9 -0
- package/dist/mfa-steps.js +51 -0
- package/dist/mfa-steps.js.map +1 -1
- package/dist/organization-admin.d.ts +38 -0
- package/dist/organization-admin.js +192 -0
- package/dist/organization-admin.js.map +1 -0
- package/dist/organization.d.ts +8 -1
- package/dist/organization.js +15 -2
- package/dist/organization.js.map +1 -1
- package/dist/profile-completion.d.ts +11 -0
- package/dist/profile-completion.js +49 -0
- package/dist/profile-completion.js.map +1 -0
- package/dist/profile-traits.d.ts +37 -0
- package/dist/profile-traits.js +143 -0
- package/dist/profile-traits.js.map +1 -0
- package/dist/sign-up.js +48 -7
- package/dist/sign-up.js.map +1 -1
- package/dist/styles.js +6 -4
- package/dist/styles.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.nhostAuthCompat = exports.pocketbaseAuthStoreCompat = exports.AppwriteAccountCompat = exports.AppwriteCompatException = void 0;
|
|
5
|
+
exports.appwriteUserFrom = appwriteUserFrom;
|
|
6
|
+
exports.pocketbaseRecordFrom = pocketbaseRecordFrom;
|
|
7
|
+
exports.nhostUserFrom = nhostUserFrom;
|
|
8
|
+
exports.useNhostAuthenticationStatusCompat = useNhostAuthenticationStatusCompat;
|
|
9
|
+
exports.useNhostAuthenticatedCompat = useNhostAuthenticatedCompat;
|
|
10
|
+
exports.useNhostUserDataCompat = useNhostUserDataCompat;
|
|
11
|
+
exports.useNhostUserIdCompat = useNhostUserIdCompat;
|
|
12
|
+
exports.useNhostUserEmailCompat = useNhostUserEmailCompat;
|
|
13
|
+
exports.useNhostUserDisplayNameCompat = useNhostUserDisplayNameCompat;
|
|
14
|
+
exports.useNhostUserAvatarUrlCompat = useNhostUserAvatarUrlCompat;
|
|
15
|
+
exports.useNhostSignOutCompat = useNhostSignOutCompat;
|
|
16
|
+
/**
|
|
17
|
+
* Appwrite, PocketBase and Nhost compatibility helpers, for
|
|
18
|
+
* `atlas migrate code --from appwrite|pocketbase|nhost`. These backends keep
|
|
19
|
+
* serving your data; only their AUTH surface moves to Atlas:
|
|
20
|
+
*
|
|
21
|
+
* - Appwrite: `new Account(client)` → `AppwriteAccountCompat` (`get`,
|
|
22
|
+
* `getPrefs`, `deleteSession`, `deleteSessions`, `createJWT`,
|
|
23
|
+
* `createOAuth2Session`); credential methods throw with a pointer to the
|
|
24
|
+
* Atlas sign-in page, and the codemod marks each call site.
|
|
25
|
+
* - PocketBase: `pb.authStore` → `pocketbaseAuthStoreCompat` (`isValid`,
|
|
26
|
+
* `token`, `record`/`model`, `clear`, `onChange`).
|
|
27
|
+
* - Nhost: `@nhost/react` hooks → `useNhost…Compat`, and `nhost.auth.*`
|
|
28
|
+
* session readers → `nhostAuthCompat`.
|
|
29
|
+
*
|
|
30
|
+
* Ids are ATLAS user ids; the old vendor id is the user's external id.
|
|
31
|
+
*/
|
|
32
|
+
const AtlasProvider_1 = require("./AtlasProvider");
|
|
33
|
+
const components_shared_1 = require("./components-shared");
|
|
34
|
+
const compat_1 = require("./compat");
|
|
35
|
+
const active_atlas_1 = require("./active-atlas");
|
|
36
|
+
function signedInUser(atlas) {
|
|
37
|
+
return atlas?.status === 'signed_in' ? atlas.user : null;
|
|
38
|
+
}
|
|
39
|
+
function primaryPhone(user) {
|
|
40
|
+
return (user.phone_numbers ?? []).find((p) => p.primary) ?? user.phone_numbers?.[0] ?? null;
|
|
41
|
+
}
|
|
42
|
+
function backHere() {
|
|
43
|
+
return typeof window !== 'undefined' ? window.location.href : undefined;
|
|
44
|
+
}
|
|
45
|
+
function moved(method, instead) {
|
|
46
|
+
throw new Error(`${method}: this runs on Atlas now — ${instead}.`);
|
|
47
|
+
}
|
|
48
|
+
function appwriteUserFrom(user) {
|
|
49
|
+
const email = (0, compat_1.primaryEmail)(user);
|
|
50
|
+
const phone = primaryPhone(user);
|
|
51
|
+
const labels = user.public_metadata?.appwrite_labels;
|
|
52
|
+
return {
|
|
53
|
+
$id: user.id,
|
|
54
|
+
name: (0, compat_1.displayName)(user) ?? '',
|
|
55
|
+
email: email?.address ?? '',
|
|
56
|
+
emailVerification: email?.verified ?? false,
|
|
57
|
+
phone: phone?.phone_number ?? '',
|
|
58
|
+
phoneVerification: phone?.verified ?? false,
|
|
59
|
+
status: true,
|
|
60
|
+
labels: Array.isArray(labels) ? labels.filter((l) => typeof l === 'string') : [],
|
|
61
|
+
prefs: { ...(user.unsafe_metadata ?? {}) },
|
|
62
|
+
mfa: user.mfa_enabled,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/** Thrown like Appwrite's `AppwriteException` (code 401, `general_unauthorized_scope`) when signed out. */
|
|
66
|
+
class AppwriteCompatException extends Error {
|
|
67
|
+
code = 401;
|
|
68
|
+
type = 'general_unauthorized_scope';
|
|
69
|
+
constructor() {
|
|
70
|
+
super('User (role: guests) missing scope (account)');
|
|
71
|
+
this.name = 'AppwriteException';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.AppwriteCompatException = AppwriteCompatException;
|
|
75
|
+
const SIGN_IN_PAGE = 'credentials are collected on the Atlas sign-in page (<SignIn /> or /sign-in)';
|
|
76
|
+
const PROFILE = 'use <UserProfile /> or the Atlas user API';
|
|
77
|
+
/** `new Account(client)` from the Appwrite web SDK. The client is accepted and ignored. */
|
|
78
|
+
class AppwriteAccountCompat {
|
|
79
|
+
constructor(_client) { }
|
|
80
|
+
async get() {
|
|
81
|
+
const user = signedInUser((0, active_atlas_1.requireActive)('account.get'));
|
|
82
|
+
if (!user)
|
|
83
|
+
throw new AppwriteCompatException();
|
|
84
|
+
return appwriteUserFrom(user);
|
|
85
|
+
}
|
|
86
|
+
async getPrefs() {
|
|
87
|
+
return (await this.get()).prefs;
|
|
88
|
+
}
|
|
89
|
+
/** `deleteSession('current')` signs out; other session ids are managed in <UserProfile />. */
|
|
90
|
+
async deleteSession(sessionId = 'current') {
|
|
91
|
+
if (sessionId !== 'current')
|
|
92
|
+
moved('account.deleteSession(id)', 'revoke other sessions from <UserProfile /> or the sessions API');
|
|
93
|
+
await (0, active_atlas_1.requireActive)('account.deleteSession').signOut();
|
|
94
|
+
return {};
|
|
95
|
+
}
|
|
96
|
+
async deleteSessions() {
|
|
97
|
+
await (0, active_atlas_1.requireActive)('account.deleteSessions').signOut();
|
|
98
|
+
return {};
|
|
99
|
+
}
|
|
100
|
+
/** `createJWT()`: `{ jwt }` is the Atlas session JWT (verify it with @atlasauth/backend). */
|
|
101
|
+
async createJWT() {
|
|
102
|
+
const jwt = await (0, active_atlas_1.requireActive)('account.createJWT').getToken();
|
|
103
|
+
if (!jwt)
|
|
104
|
+
throw new AppwriteCompatException();
|
|
105
|
+
return { jwt };
|
|
106
|
+
}
|
|
107
|
+
/** `createOAuth2Session(provider, success)`: opens the Atlas sign-in page, returning to `success`. */
|
|
108
|
+
createOAuth2Session(_provider, success, _failure, _scopes) {
|
|
109
|
+
(0, components_shared_1.navigateTo)((0, components_shared_1.withRedirect)('/sign-in', success ?? backHere()));
|
|
110
|
+
}
|
|
111
|
+
createOAuth2Token(provider, success, failure, scopes) {
|
|
112
|
+
this.createOAuth2Session(provider, success, failure, scopes);
|
|
113
|
+
}
|
|
114
|
+
async create(..._args) {
|
|
115
|
+
return moved('account.create', 'sign-up runs on the Atlas sign-up page (<SignUp /> or /sign-up)');
|
|
116
|
+
}
|
|
117
|
+
async createEmailPasswordSession(..._args) {
|
|
118
|
+
return moved('account.createEmailPasswordSession', SIGN_IN_PAGE);
|
|
119
|
+
}
|
|
120
|
+
async createEmailSession(..._args) {
|
|
121
|
+
return moved('account.createEmailSession', SIGN_IN_PAGE);
|
|
122
|
+
}
|
|
123
|
+
async createMagicURLToken(..._args) {
|
|
124
|
+
return moved('account.createMagicURLToken', 'enable magic links in the Atlas dashboard; the sign-in page sends them');
|
|
125
|
+
}
|
|
126
|
+
async createEmailToken(..._args) {
|
|
127
|
+
return moved('account.createEmailToken', 'enable email codes in the Atlas dashboard; the sign-in page sends them');
|
|
128
|
+
}
|
|
129
|
+
async createPhoneToken(..._args) {
|
|
130
|
+
return moved('account.createPhoneToken', 'enable SMS codes in the Atlas dashboard; the sign-in page sends them');
|
|
131
|
+
}
|
|
132
|
+
async createSession(..._args) {
|
|
133
|
+
return moved('account.createSession', SIGN_IN_PAGE);
|
|
134
|
+
}
|
|
135
|
+
async createAnonymousSession(..._args) {
|
|
136
|
+
return moved('account.createAnonymousSession', 'enable anonymous users in the Atlas dashboard');
|
|
137
|
+
}
|
|
138
|
+
async updatePassword(..._args) {
|
|
139
|
+
return moved('account.updatePassword', PROFILE);
|
|
140
|
+
}
|
|
141
|
+
async updateEmail(..._args) {
|
|
142
|
+
return moved('account.updateEmail', PROFILE);
|
|
143
|
+
}
|
|
144
|
+
async updateName(..._args) {
|
|
145
|
+
return moved('account.updateName', PROFILE);
|
|
146
|
+
}
|
|
147
|
+
async updatePrefs(..._args) {
|
|
148
|
+
return moved('account.updatePrefs', 'store preferences in the user\'s unsafe_metadata (user.update from @atlasauth/js)');
|
|
149
|
+
}
|
|
150
|
+
async createRecovery(..._args) {
|
|
151
|
+
return moved('account.createRecovery', 'password reset is built into the Atlas sign-in page');
|
|
152
|
+
}
|
|
153
|
+
async updateRecovery(..._args) {
|
|
154
|
+
return moved('account.updateRecovery', 'password reset is built into the Atlas sign-in page');
|
|
155
|
+
}
|
|
156
|
+
async createVerification(..._args) {
|
|
157
|
+
return moved('account.createVerification', 'Atlas verifies email addresses during sign-up and in <UserProfile />');
|
|
158
|
+
}
|
|
159
|
+
async updateVerification(..._args) {
|
|
160
|
+
return moved('account.updateVerification', 'Atlas verifies email addresses during sign-up and in <UserProfile />');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.AppwriteAccountCompat = AppwriteAccountCompat;
|
|
164
|
+
function pocketbaseRecordFrom(user) {
|
|
165
|
+
const email = (0, compat_1.primaryEmail)(user);
|
|
166
|
+
const fields = user.public_metadata?.pocketbase_fields;
|
|
167
|
+
return {
|
|
168
|
+
...(fields && typeof fields === 'object' && !Array.isArray(fields) ? fields : {}),
|
|
169
|
+
id: user.id,
|
|
170
|
+
collectionName: 'users',
|
|
171
|
+
email: email?.address ?? '',
|
|
172
|
+
verified: email?.verified ?? false,
|
|
173
|
+
username: user.username ?? '',
|
|
174
|
+
name: (0, compat_1.displayName)(user) ?? '',
|
|
175
|
+
avatar: user.image_url ?? '',
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
let cachedToken = '';
|
|
179
|
+
let tokenWatch = null;
|
|
180
|
+
/** Keep `authStore.token` (synchronous in PocketBase) filled from the async Atlas token. */
|
|
181
|
+
function watchToken() {
|
|
182
|
+
if (tokenWatch)
|
|
183
|
+
return;
|
|
184
|
+
const refresh = (atlas) => {
|
|
185
|
+
if (!atlas || atlas.status !== 'signed_in') {
|
|
186
|
+
cachedToken = '';
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
void atlas.getToken().then((t) => {
|
|
190
|
+
cachedToken = t ?? '';
|
|
191
|
+
}, () => {
|
|
192
|
+
cachedToken = '';
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
tokenWatch = (0, active_atlas_1.onActiveAtlasChange)(refresh);
|
|
196
|
+
refresh((0, active_atlas_1.getActiveAtlas)());
|
|
197
|
+
}
|
|
198
|
+
/** `pb.authStore`, answered by the Atlas session. */
|
|
199
|
+
exports.pocketbaseAuthStoreCompat = {
|
|
200
|
+
get isValid() {
|
|
201
|
+
return (0, active_atlas_1.getActiveAtlas)()?.status === 'signed_in';
|
|
202
|
+
},
|
|
203
|
+
/** The last Atlas session JWT seen (empty until the first one is minted); prefer `await getToken()`. */
|
|
204
|
+
get token() {
|
|
205
|
+
watchToken();
|
|
206
|
+
return cachedToken;
|
|
207
|
+
},
|
|
208
|
+
get record() {
|
|
209
|
+
const user = signedInUser((0, active_atlas_1.getActiveAtlas)());
|
|
210
|
+
return user ? pocketbaseRecordFrom(user) : null;
|
|
211
|
+
},
|
|
212
|
+
/** Pre-0.23 name for `record`. */
|
|
213
|
+
get model() {
|
|
214
|
+
return this.record;
|
|
215
|
+
},
|
|
216
|
+
get isSuperuser() {
|
|
217
|
+
return false;
|
|
218
|
+
},
|
|
219
|
+
get isAdmin() {
|
|
220
|
+
return false;
|
|
221
|
+
},
|
|
222
|
+
/** The current Atlas session JWT. */
|
|
223
|
+
async getToken() {
|
|
224
|
+
return (await (0, active_atlas_1.getActiveAtlas)()?.getToken()) ?? '';
|
|
225
|
+
},
|
|
226
|
+
clear() {
|
|
227
|
+
void (0, active_atlas_1.getActiveAtlas)()?.signOut();
|
|
228
|
+
},
|
|
229
|
+
/** `onChange((token, record) => …, fireImmediately)`: returns the unsubscribe. */
|
|
230
|
+
onChange(callback, fireImmediately = false) {
|
|
231
|
+
let lastId;
|
|
232
|
+
const listener = (atlas) => {
|
|
233
|
+
if (!atlas || atlas.status === 'loading')
|
|
234
|
+
return;
|
|
235
|
+
const user = signedInUser(atlas);
|
|
236
|
+
const id = user?.id ?? null;
|
|
237
|
+
if (lastId === undefined && !fireImmediately) {
|
|
238
|
+
lastId = id;
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
if (id === lastId)
|
|
242
|
+
return;
|
|
243
|
+
lastId = id;
|
|
244
|
+
if (!user) {
|
|
245
|
+
callback('', null);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
void atlas.getToken().then((t) => callback(t ?? '', pocketbaseRecordFrom(user)));
|
|
249
|
+
};
|
|
250
|
+
const unsubscribe = (0, active_atlas_1.onActiveAtlasChange)(listener);
|
|
251
|
+
listener((0, active_atlas_1.getActiveAtlas)());
|
|
252
|
+
return unsubscribe;
|
|
253
|
+
},
|
|
254
|
+
/** Atlas keeps its own session cookie: there is nothing to load. */
|
|
255
|
+
loadFromCookie(_cookie, _key) { },
|
|
256
|
+
/** Atlas keeps its own session cookie: there is nothing to export. */
|
|
257
|
+
exportToCookie(_options, _key) {
|
|
258
|
+
return '';
|
|
259
|
+
},
|
|
260
|
+
save(_token, _record) {
|
|
261
|
+
moved('pb.authStore.save', 'Atlas manages the session; sign users in through <SignIn />');
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
function nhostUserFrom(user) {
|
|
265
|
+
const email = (0, compat_1.primaryEmail)(user);
|
|
266
|
+
const phone = primaryPhone(user);
|
|
267
|
+
const meta = user.public_metadata ?? {};
|
|
268
|
+
const roles = Array.isArray(meta.nhost_roles) ? meta.nhost_roles.filter((r) => typeof r === 'string') : ['user'];
|
|
269
|
+
return {
|
|
270
|
+
id: user.id,
|
|
271
|
+
...(email ? { email: email.address } : {}),
|
|
272
|
+
emailVerified: email?.verified ?? false,
|
|
273
|
+
displayName: (0, compat_1.displayName)(user) ?? '',
|
|
274
|
+
avatarUrl: user.image_url ?? '',
|
|
275
|
+
...(phone ? { phoneNumber: phone.phone_number } : {}),
|
|
276
|
+
phoneNumberVerified: phone?.verified ?? false,
|
|
277
|
+
defaultRole: typeof meta.nhost_default_role === 'string' ? meta.nhost_default_role : 'user',
|
|
278
|
+
roles,
|
|
279
|
+
locale: typeof meta.locale === 'string' ? meta.locale : 'en',
|
|
280
|
+
isAnonymous: false,
|
|
281
|
+
metadata: { ...(user.unsafe_metadata ?? {}) },
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
/** `nhost.auth.*` session readers. */
|
|
285
|
+
exports.nhostAuthCompat = {
|
|
286
|
+
getUser() {
|
|
287
|
+
const user = signedInUser((0, active_atlas_1.getActiveAtlas)());
|
|
288
|
+
return user ? nhostUserFrom(user) : null;
|
|
289
|
+
},
|
|
290
|
+
isAuthenticated() {
|
|
291
|
+
return (0, active_atlas_1.getActiveAtlas)()?.status === 'signed_in';
|
|
292
|
+
},
|
|
293
|
+
/** Resolves once the session is known (not while the provider is still loading). */
|
|
294
|
+
isAuthenticatedAsync() {
|
|
295
|
+
return new Promise((resolve) => {
|
|
296
|
+
let unsubscribe = null;
|
|
297
|
+
let done = false;
|
|
298
|
+
const settle = (atlas) => {
|
|
299
|
+
if (done || !atlas || atlas.status === 'loading')
|
|
300
|
+
return;
|
|
301
|
+
done = true;
|
|
302
|
+
unsubscribe?.();
|
|
303
|
+
resolve(atlas.status === 'signed_in');
|
|
304
|
+
};
|
|
305
|
+
unsubscribe = (0, active_atlas_1.onActiveAtlasChange)(settle);
|
|
306
|
+
settle((0, active_atlas_1.getActiveAtlas)());
|
|
307
|
+
});
|
|
308
|
+
},
|
|
309
|
+
async getAccessToken() {
|
|
310
|
+
return (await (0, active_atlas_1.getActiveAtlas)()?.getToken()) ?? undefined;
|
|
311
|
+
},
|
|
312
|
+
async getSession() {
|
|
313
|
+
const atlas = (0, active_atlas_1.getActiveAtlas)();
|
|
314
|
+
const user = signedInUser(atlas);
|
|
315
|
+
const token = user ? await atlas.getToken() : null;
|
|
316
|
+
return user && token ? { accessToken: token, user: nhostUserFrom(user) } : null;
|
|
317
|
+
},
|
|
318
|
+
async signOut(_params) {
|
|
319
|
+
await (0, active_atlas_1.requireActive)('nhost.auth.signOut').signOut();
|
|
320
|
+
return { error: null };
|
|
321
|
+
},
|
|
322
|
+
/** `onAuthStateChanged((event, session) => …)`: SIGNED_IN / SIGNED_OUT. Returns the unsubscribe. */
|
|
323
|
+
onAuthStateChanged(callback) {
|
|
324
|
+
let lastId;
|
|
325
|
+
const listener = (atlas) => {
|
|
326
|
+
if (!atlas || atlas.status === 'loading')
|
|
327
|
+
return;
|
|
328
|
+
const user = signedInUser(atlas);
|
|
329
|
+
const id = user?.id ?? null;
|
|
330
|
+
if (id === lastId)
|
|
331
|
+
return;
|
|
332
|
+
const first = lastId === undefined;
|
|
333
|
+
lastId = id;
|
|
334
|
+
if (user)
|
|
335
|
+
callback('SIGNED_IN', { user: nhostUserFrom(user) });
|
|
336
|
+
else if (!first)
|
|
337
|
+
callback('SIGNED_OUT', null);
|
|
338
|
+
};
|
|
339
|
+
const unsubscribe = (0, active_atlas_1.onActiveAtlasChange)(listener);
|
|
340
|
+
listener((0, active_atlas_1.getActiveAtlas)());
|
|
341
|
+
return unsubscribe;
|
|
342
|
+
},
|
|
343
|
+
/** `onTokenChanged(cb)`: fires when the session token is refreshed. */
|
|
344
|
+
onTokenChanged(callback) {
|
|
345
|
+
let lastExp;
|
|
346
|
+
return (0, active_atlas_1.onActiveAtlasChange)((atlas) => {
|
|
347
|
+
if (!atlas || atlas.status === 'loading')
|
|
348
|
+
return;
|
|
349
|
+
const exp = atlas.claims?.exp ?? null;
|
|
350
|
+
if (exp === lastExp)
|
|
351
|
+
return;
|
|
352
|
+
lastExp = exp;
|
|
353
|
+
if (atlas.status !== 'signed_in')
|
|
354
|
+
callback(null);
|
|
355
|
+
else
|
|
356
|
+
void atlas.getToken().then((t) => callback(t ? { accessToken: t } : null));
|
|
357
|
+
});
|
|
358
|
+
},
|
|
359
|
+
};
|
|
360
|
+
/** `useAuthenticationStatus()`: `{ isAuthenticated, isLoading }`. */
|
|
361
|
+
function useNhostAuthenticationStatusCompat() {
|
|
362
|
+
const atlas = (0, AtlasProvider_1.useAtlas)();
|
|
363
|
+
return { isAuthenticated: atlas.status === 'signed_in', isLoading: atlas.status === 'loading', error: null, isError: false };
|
|
364
|
+
}
|
|
365
|
+
/** `useAuthenticated()`. */
|
|
366
|
+
function useNhostAuthenticatedCompat() {
|
|
367
|
+
return (0, AtlasProvider_1.useAtlas)().status === 'signed_in';
|
|
368
|
+
}
|
|
369
|
+
/** `useUserData()`: the user, or null. */
|
|
370
|
+
function useNhostUserDataCompat() {
|
|
371
|
+
const atlas = (0, AtlasProvider_1.useAtlas)();
|
|
372
|
+
return atlas.status === 'signed_in' && atlas.user ? nhostUserFrom(atlas.user) : null;
|
|
373
|
+
}
|
|
374
|
+
/** `useUserId()`. */
|
|
375
|
+
function useNhostUserIdCompat() {
|
|
376
|
+
return useNhostUserDataCompat()?.id;
|
|
377
|
+
}
|
|
378
|
+
/** `useUserEmail()`. */
|
|
379
|
+
function useNhostUserEmailCompat() {
|
|
380
|
+
return useNhostUserDataCompat()?.email;
|
|
381
|
+
}
|
|
382
|
+
/** `useUserDisplayName()`. */
|
|
383
|
+
function useNhostUserDisplayNameCompat() {
|
|
384
|
+
return useNhostUserDataCompat()?.displayName || undefined;
|
|
385
|
+
}
|
|
386
|
+
/** `useUserAvatarUrl()`. */
|
|
387
|
+
function useNhostUserAvatarUrlCompat() {
|
|
388
|
+
return useNhostUserDataCompat()?.avatarUrl || undefined;
|
|
389
|
+
}
|
|
390
|
+
/** `useSignOut()`: `{ signOut, isSuccess }`. */
|
|
391
|
+
function useNhostSignOutCompat() {
|
|
392
|
+
const atlas = (0, AtlasProvider_1.useAtlas)();
|
|
393
|
+
return {
|
|
394
|
+
signOut: async () => {
|
|
395
|
+
await (0, active_atlas_1.requireActive)('useSignOut').signOut();
|
|
396
|
+
return { isSuccess: true, isError: false, error: null };
|
|
397
|
+
},
|
|
398
|
+
isSuccess: atlas.status === 'signed_out',
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
//# sourceMappingURL=compat-baas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat-baas.js","sourceRoot":"","sources":["../src/compat-baas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { AtlasUser } from './types';
|
|
2
|
+
import { type ActiveAtlas } from './active-atlas';
|
|
3
|
+
/** The fields of a Firebase `User` apps read, plus the token methods. */
|
|
4
|
+
export interface FirebaseCompatUser {
|
|
5
|
+
uid: string;
|
|
6
|
+
/** The Firebase uid this user had before the move, when the import kept it. */
|
|
7
|
+
firebaseUid: string | null;
|
|
8
|
+
email: string | null;
|
|
9
|
+
emailVerified: boolean;
|
|
10
|
+
displayName: string | null;
|
|
11
|
+
photoURL: string | null;
|
|
12
|
+
phoneNumber: string | null;
|
|
13
|
+
isAnonymous: false;
|
|
14
|
+
providerId: 'atlas';
|
|
15
|
+
tenantId: null;
|
|
16
|
+
metadata: {
|
|
17
|
+
creationTime?: string;
|
|
18
|
+
lastSignInTime?: string;
|
|
19
|
+
};
|
|
20
|
+
providerData: Array<{
|
|
21
|
+
providerId: string;
|
|
22
|
+
uid: string;
|
|
23
|
+
email: string | null;
|
|
24
|
+
}>;
|
|
25
|
+
/** The Atlas session JWT (the ID-token analogue). */
|
|
26
|
+
getIdToken(forceRefresh?: boolean): Promise<string>;
|
|
27
|
+
getIdTokenResult(forceRefresh?: boolean): Promise<FirebaseCompatIdTokenResult>;
|
|
28
|
+
reload(): Promise<void>;
|
|
29
|
+
toJSON(): Record<string, unknown>;
|
|
30
|
+
}
|
|
31
|
+
export interface FirebaseCompatIdTokenResult {
|
|
32
|
+
token: string;
|
|
33
|
+
claims: Record<string, unknown>;
|
|
34
|
+
expirationTime: string;
|
|
35
|
+
issuedAtTime: string;
|
|
36
|
+
authTime: string;
|
|
37
|
+
signInProvider: 'atlas';
|
|
38
|
+
signInSecondFactor: string | null;
|
|
39
|
+
}
|
|
40
|
+
/** Project an Atlas user onto Firebase's `User` shape (null when signed out). */
|
|
41
|
+
export declare function firebaseUserFrom(user: AtlasUser | null, atlas?: ActiveAtlas | null): FirebaseCompatUser | null;
|
|
42
|
+
type Observer = ((user: FirebaseCompatUser | null) => void) | {
|
|
43
|
+
next?: (user: FirebaseCompatUser | null) => void;
|
|
44
|
+
};
|
|
45
|
+
/** `onAuthStateChanged(auth, next)`: fires on sign-in and sign-out. Returns the unsubscribe. */
|
|
46
|
+
export declare function onFirebaseAuthStateChangedCompat(_auth: unknown, next: Observer, _error?: unknown): () => void;
|
|
47
|
+
/** `onIdTokenChanged(auth, next)`: also fires when the session token is refreshed. */
|
|
48
|
+
export declare function onFirebaseIdTokenChangedCompat(_auth: unknown, next: Observer, _error?: unknown): () => void;
|
|
49
|
+
/** `signOut(auth)`. */
|
|
50
|
+
export declare function firebaseSignOutCompat(_auth?: unknown): Promise<void>;
|
|
51
|
+
/** `getIdToken(user, forceRefresh)`: the Atlas session JWT. */
|
|
52
|
+
export declare function getFirebaseIdTokenCompat(_user?: unknown, _forceRefresh?: boolean): Promise<string>;
|
|
53
|
+
/** `auth.currentUser`, read imperatively. */
|
|
54
|
+
export declare function getFirebaseCurrentUserCompat(): FirebaseCompatUser | null;
|
|
55
|
+
/**
|
|
56
|
+
* `signInWithRedirect(auth, provider)`: sends the browser to your Atlas
|
|
57
|
+
* sign-in page (social buttons there replace the provider object), returning
|
|
58
|
+
* to the current page afterwards.
|
|
59
|
+
*/
|
|
60
|
+
export declare function firebaseSignInWithRedirectCompat(_auth?: unknown, _provider?: unknown, options?: {
|
|
61
|
+
signInUrl?: string;
|
|
62
|
+
}): Promise<void>;
|
|
63
|
+
/** `useAuthState(auth)` from react-firebase-hooks: `[user, loading, error]`. */
|
|
64
|
+
export declare function useFirebaseAuthStateCompat(_auth?: unknown): [FirebaseCompatUser | null | undefined, boolean, undefined];
|
|
65
|
+
/** `useIdToken(auth)` from react-firebase-hooks: `[user, loading, error]`, re-rendering on token refresh. */
|
|
66
|
+
export declare function useFirebaseIdTokenCompat(_auth?: unknown): [FirebaseCompatUser | null | undefined, boolean, undefined];
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.firebaseUserFrom = firebaseUserFrom;
|
|
5
|
+
exports.onFirebaseAuthStateChangedCompat = onFirebaseAuthStateChangedCompat;
|
|
6
|
+
exports.onFirebaseIdTokenChangedCompat = onFirebaseIdTokenChangedCompat;
|
|
7
|
+
exports.firebaseSignOutCompat = firebaseSignOutCompat;
|
|
8
|
+
exports.getFirebaseIdTokenCompat = getFirebaseIdTokenCompat;
|
|
9
|
+
exports.getFirebaseCurrentUserCompat = getFirebaseCurrentUserCompat;
|
|
10
|
+
exports.firebaseSignInWithRedirectCompat = firebaseSignInWithRedirectCompat;
|
|
11
|
+
exports.useFirebaseAuthStateCompat = useFirebaseAuthStateCompat;
|
|
12
|
+
exports.useFirebaseIdTokenCompat = useFirebaseIdTokenCompat;
|
|
13
|
+
/**
|
|
14
|
+
* Firebase Auth (`firebase/auth`, `react-firebase-hooks/auth`) compatibility
|
|
15
|
+
* helpers. `atlas migrate code --from firebase` rewrites the session-reading
|
|
16
|
+
* half of the Firebase client SDK onto these, keeping its call shapes: the
|
|
17
|
+
* `auth` argument is accepted and ignored (the session is the `<AtlasProvider>`
|
|
18
|
+
* on the page), observers get a `User`-shaped object, and `getIdToken(user)`
|
|
19
|
+
* resolves the Atlas session JWT.
|
|
20
|
+
*
|
|
21
|
+
* `uid` is the ATLAS user id. A database keyed on Firebase uids should look
|
|
22
|
+
* users up by their external id (Atlas keeps the Firebase uid there) or be
|
|
23
|
+
* re-keyed; `firebaseUid` carries the old id when the import recorded it.
|
|
24
|
+
*/
|
|
25
|
+
const react_1 = require("react");
|
|
26
|
+
const AtlasProvider_1 = require("./AtlasProvider");
|
|
27
|
+
const components_shared_1 = require("./components-shared");
|
|
28
|
+
const compat_1 = require("./compat");
|
|
29
|
+
const active_atlas_1 = require("./active-atlas");
|
|
30
|
+
function legacyUid(user) {
|
|
31
|
+
const meta = user.public_metadata ?? {};
|
|
32
|
+
for (const key of ['firebase_uid', 'external_id', 'legacy_id']) {
|
|
33
|
+
const v = meta[key];
|
|
34
|
+
if (typeof v === 'string' && v)
|
|
35
|
+
return v;
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
async function tokenOf(atlas) {
|
|
40
|
+
const token = await atlas.getToken();
|
|
41
|
+
if (!token)
|
|
42
|
+
throw new Error('getIdToken: the user is signed out.');
|
|
43
|
+
return token;
|
|
44
|
+
}
|
|
45
|
+
function isoFromSeconds(v) {
|
|
46
|
+
return new Date(typeof v === 'number' ? v * 1000 : Date.now()).toUTCString();
|
|
47
|
+
}
|
|
48
|
+
/** Project an Atlas user onto Firebase's `User` shape (null when signed out). */
|
|
49
|
+
function firebaseUserFrom(user, atlas = (0, active_atlas_1.getActiveAtlas)()) {
|
|
50
|
+
if (!user)
|
|
51
|
+
return null;
|
|
52
|
+
const email = (0, compat_1.primaryEmail)(user);
|
|
53
|
+
const phone = (user.phone_numbers ?? []).find((p) => p.primary) ?? user.phone_numbers?.[0];
|
|
54
|
+
const claims = atlas?.claims ?? null;
|
|
55
|
+
const live = () => atlas ?? (0, active_atlas_1.requireActive)('FirebaseCompatUser');
|
|
56
|
+
const projected = {
|
|
57
|
+
uid: user.id,
|
|
58
|
+
firebaseUid: legacyUid(user),
|
|
59
|
+
email: email?.address ?? null,
|
|
60
|
+
emailVerified: email?.verified ?? false,
|
|
61
|
+
displayName: (0, compat_1.displayName)(user),
|
|
62
|
+
photoURL: user.image_url,
|
|
63
|
+
phoneNumber: phone?.phone_number ?? null,
|
|
64
|
+
isAnonymous: false,
|
|
65
|
+
providerId: 'atlas',
|
|
66
|
+
tenantId: null,
|
|
67
|
+
metadata: {},
|
|
68
|
+
providerData: email ? [{ providerId: 'password', uid: email.address, email: email.address }] : [],
|
|
69
|
+
getIdToken: () => tokenOf(live()),
|
|
70
|
+
async getIdTokenResult() {
|
|
71
|
+
const a = live();
|
|
72
|
+
const token = await tokenOf(a);
|
|
73
|
+
const c = (a.claims ?? claims ?? {});
|
|
74
|
+
return {
|
|
75
|
+
token,
|
|
76
|
+
claims: c,
|
|
77
|
+
expirationTime: isoFromSeconds(c.exp),
|
|
78
|
+
issuedAtTime: isoFromSeconds(c.iat),
|
|
79
|
+
authTime: isoFromSeconds(c.auth_time ?? c.iat),
|
|
80
|
+
signInProvider: 'atlas',
|
|
81
|
+
signInSecondFactor: null,
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
async reload() {
|
|
85
|
+
await live().reload();
|
|
86
|
+
},
|
|
87
|
+
toJSON() {
|
|
88
|
+
const { getIdToken: _a, getIdTokenResult: _b, reload: _c, toJSON: _d, ...plain } = projected;
|
|
89
|
+
return plain;
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
return projected;
|
|
93
|
+
}
|
|
94
|
+
function notify(observer, user) {
|
|
95
|
+
if (typeof observer === 'function')
|
|
96
|
+
observer(user);
|
|
97
|
+
else
|
|
98
|
+
observer.next?.(user);
|
|
99
|
+
}
|
|
100
|
+
function observe(observer, everyTokenChange) {
|
|
101
|
+
let lastStatus = null;
|
|
102
|
+
let lastId = null;
|
|
103
|
+
let lastExp = null;
|
|
104
|
+
const listener = (atlas) => {
|
|
105
|
+
if (!atlas || atlas.status === 'loading')
|
|
106
|
+
return;
|
|
107
|
+
const id = atlas.status === 'signed_in' ? (atlas.user?.id ?? null) : null;
|
|
108
|
+
const exp = atlas.claims?.exp ?? null;
|
|
109
|
+
const changed = lastStatus === null || id !== lastId || (everyTokenChange && exp !== lastExp);
|
|
110
|
+
lastStatus = atlas.status;
|
|
111
|
+
lastId = id;
|
|
112
|
+
lastExp = exp;
|
|
113
|
+
if (changed)
|
|
114
|
+
notify(observer, atlas.status === 'signed_in' ? firebaseUserFrom(atlas.user, atlas) : null);
|
|
115
|
+
};
|
|
116
|
+
const unsubscribe = (0, active_atlas_1.onActiveAtlasChange)(listener);
|
|
117
|
+
const current = (0, active_atlas_1.getActiveAtlas)();
|
|
118
|
+
if (current)
|
|
119
|
+
listener(current);
|
|
120
|
+
return unsubscribe;
|
|
121
|
+
}
|
|
122
|
+
/** `onAuthStateChanged(auth, next)`: fires on sign-in and sign-out. Returns the unsubscribe. */
|
|
123
|
+
function onFirebaseAuthStateChangedCompat(_auth, next, _error) {
|
|
124
|
+
return observe(next, false);
|
|
125
|
+
}
|
|
126
|
+
/** `onIdTokenChanged(auth, next)`: also fires when the session token is refreshed. */
|
|
127
|
+
function onFirebaseIdTokenChangedCompat(_auth, next, _error) {
|
|
128
|
+
return observe(next, true);
|
|
129
|
+
}
|
|
130
|
+
/** `signOut(auth)`. */
|
|
131
|
+
async function firebaseSignOutCompat(_auth) {
|
|
132
|
+
await (0, active_atlas_1.requireActive)('firebaseSignOutCompat').signOut();
|
|
133
|
+
}
|
|
134
|
+
/** `getIdToken(user, forceRefresh)`: the Atlas session JWT. */
|
|
135
|
+
async function getFirebaseIdTokenCompat(_user, _forceRefresh) {
|
|
136
|
+
return tokenOf((0, active_atlas_1.requireActive)('getFirebaseIdTokenCompat'));
|
|
137
|
+
}
|
|
138
|
+
/** `auth.currentUser`, read imperatively. */
|
|
139
|
+
function getFirebaseCurrentUserCompat() {
|
|
140
|
+
const atlas = (0, active_atlas_1.getActiveAtlas)();
|
|
141
|
+
return atlas?.status === 'signed_in' ? firebaseUserFrom(atlas.user, atlas) : null;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* `signInWithRedirect(auth, provider)`: sends the browser to your Atlas
|
|
145
|
+
* sign-in page (social buttons there replace the provider object), returning
|
|
146
|
+
* to the current page afterwards.
|
|
147
|
+
*/
|
|
148
|
+
async function firebaseSignInWithRedirectCompat(_auth, _provider, options = {}) {
|
|
149
|
+
const back = typeof window !== 'undefined' ? window.location.href : undefined;
|
|
150
|
+
(0, components_shared_1.navigateTo)((0, components_shared_1.withRedirect)(options.signInUrl ?? '/sign-in', back));
|
|
151
|
+
}
|
|
152
|
+
/** `useAuthState(auth)` from react-firebase-hooks: `[user, loading, error]`. */
|
|
153
|
+
function useFirebaseAuthStateCompat(_auth) {
|
|
154
|
+
const atlas = (0, AtlasProvider_1.useAtlas)();
|
|
155
|
+
if (atlas.status === 'loading')
|
|
156
|
+
return [undefined, true, undefined];
|
|
157
|
+
return [atlas.status === 'signed_in' ? firebaseUserFrom(atlas.user, (0, active_atlas_1.getActiveAtlas)()) : null, false, undefined];
|
|
158
|
+
}
|
|
159
|
+
/** `useIdToken(auth)` from react-firebase-hooks: `[user, loading, error]`, re-rendering on token refresh. */
|
|
160
|
+
function useFirebaseIdTokenCompat(_auth) {
|
|
161
|
+
const state = useFirebaseAuthStateCompat();
|
|
162
|
+
const [, setTick] = (0, react_1.useState)(0);
|
|
163
|
+
(0, react_1.useEffect)(() => observe(() => setTick((t) => t + 1), true), []);
|
|
164
|
+
return state;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=compat-firebase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat-firebase.js","sourceRoot":"","sources":["../src/compat-firebase.ts"],"names":[],"mappings":"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"}
|