clefbase 2.0.0 → 2.0.2

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.
@@ -47,60 +47,29 @@ class SessionStore {
47
47
  catch { /* ignore */ }
48
48
  }
49
49
  }
50
- // ─── GIS script loader ────────────────────────────────────────────────────────
51
- const GIS_SCRIPT_URL = "https://accounts.google.com/gsi/client";
52
- let _gisLoading = null;
53
- function loadGisScript() {
54
- if (typeof window === "undefined") {
55
- return Promise.reject(new types_1.ClefbaseError("signInWithGoogle() requires a browser environment. " +
56
- "Use signInWithGoogleToken(idToken) for server/Node.js contexts.", "UNSUPPORTED_ENVIRONMENT"));
57
- }
58
- if (window.google?.accounts?.id)
59
- return Promise.resolve();
60
- if (_gisLoading)
61
- return _gisLoading;
62
- _gisLoading = new Promise((resolve, reject) => {
63
- if (window.google?.accounts?.id) {
64
- resolve();
65
- return;
66
- }
67
- const existing = document.querySelector(`script[src="${GIS_SCRIPT_URL}"]`);
68
- const onLoad = () => resolve();
69
- const onError = () => {
70
- _gisLoading = null;
71
- reject(new types_1.ClefbaseError("Failed to load the Google Identity Services script. Check your internet connection and Content Security Policy.", "GOOGLE_SCRIPT_LOAD_ERROR"));
72
- };
73
- if (existing) {
74
- existing.addEventListener("load", onLoad, { once: true });
75
- existing.addEventListener("error", onError, { once: true });
76
- return;
77
- }
78
- const script = document.createElement("script");
79
- script.src = GIS_SCRIPT_URL;
80
- script.async = true;
81
- script.defer = true;
82
- script.addEventListener("load", onLoad, { once: true });
83
- script.addEventListener("error", onError, { once: true });
84
- document.head.appendChild(script);
85
- });
86
- return _gisLoading;
87
- }
88
50
  /**
89
51
  * Authentication service. Obtain via `getAuth(app)`.
90
52
  *
91
53
  * @example
92
54
  * const auth = getAuth(app);
55
+ *
56
+ * // Email / password
93
57
  * const { user } = await auth.signIn("alice@example.com", "pass");
94
- * const unsub = auth.onAuthStateChanged(u => console.log(u));
95
- * unsub();
58
+ *
59
+ * // Google — redirect to gateway, come back signed in
60
+ * await auth.signInWithGateway("google");
61
+ *
62
+ * // On every page load, handle the gateway callback:
63
+ * const result = await auth.handleGatewayCallback();
64
+ * if (result) console.log("Signed in via gateway:", result.user.email);
96
65
  */
97
66
  class Auth {
98
- constructor(http) {
67
+ constructor(http, gatewayUrl, projectId) {
99
68
  this.http = http;
100
69
  this.store = new SessionStore();
101
70
  this.listeners = [];
102
- /** Cached Google Client ID. `null` = confirmed not configured. `undefined` = not yet fetched. */
103
- this._googleClientId = undefined;
71
+ this.gatewayUrl = gatewayUrl.replace(/\/+$/, "");
72
+ this.projectId = projectId;
104
73
  this.store.load();
105
74
  }
106
75
  // ── Internals ─────────────────────────────────────────────────────────────
@@ -121,23 +90,6 @@ class Auth {
121
90
  this.notify(result.user);
122
91
  return result;
123
92
  }
124
- async resolveGoogleClientId() {
125
- if (this._googleClientId !== undefined) {
126
- if (!this._googleClientId) {
127
- throw new types_1.ClefbaseError("Google Sign-In is not enabled for this project. " +
128
- "Add a Google Client ID in your Clefbase auth settings.", "GOOGLE_NOT_CONFIGURED");
129
- }
130
- return this._googleClientId;
131
- }
132
- const cfg = await this.http.get("/google/config");
133
- if (!cfg.enabled || !cfg.clientId) {
134
- this._googleClientId = null;
135
- throw new types_1.ClefbaseError("Google Sign-In is not enabled for this project. " +
136
- "Add a Google Client ID in your Clefbase auth settings.", "GOOGLE_NOT_CONFIGURED");
137
- }
138
- this._googleClientId = cfg.clientId;
139
- return this._googleClientId;
140
- }
141
93
  /** @internal — used by Storage to attach the bearer token to upload requests */
142
94
  getAuthHeaders() {
143
95
  const s = this.store.load();
@@ -148,8 +100,9 @@ class Auth {
148
100
  get currentUser() { return this.store.load()?.user ?? null; }
149
101
  /** The raw bearer token for the active session, or null. */
150
102
  get currentToken() { return this.store.load()?.token ?? null; }
103
+ // ── Email / password ──────────────────────────────────────────────────────
151
104
  /**
152
- * Create a new account.
105
+ * Create a new account with email + password.
153
106
  *
154
107
  * @example
155
108
  * const { user } = await auth.signUp("alice@example.com", "pass123", {
@@ -158,9 +111,7 @@ class Auth {
158
111
  * });
159
112
  */
160
113
  async signUp(email, password, profile) {
161
- const result = await this.http.post("/signup", {
162
- email, password, ...profile,
163
- });
114
+ const result = await this.http.post("/signup", { email, password, ...profile });
164
115
  return this.handleResult(result);
165
116
  }
166
117
  /**
@@ -173,133 +124,110 @@ class Auth {
173
124
  const result = await this.http.post("/signin", { email, password });
174
125
  return this.handleResult(result);
175
126
  }
127
+ // ── Gateway OAuth (redirect flow) ─────────────────────────────────────────
176
128
  /**
177
- * Sign in with Google using the Google Identity Services popup or One Tap.
178
- *
179
- * Browser-only. The GIS script (`accounts.google.com/gsi/client`) is loaded
180
- * automatically — no manual `<script>` tag needed.
181
- *
182
- * Without `buttonOptions`, the Google One Tap prompt is shown.
183
- * Pass `{ container }` to render a fully styled Google button instead —
184
- * which is more reliable since One Tap can be suppressed by the browser.
129
+ * Redirect the user to the Cleforyx auth gateway to sign in with an
130
+ * OAuth provider (currently `"google"`).
185
131
  *
186
- * Automatically handles new sign-ups: if the Google account has never been
187
- * seen before, a new user record is created server-side.
132
+ * The gateway handles the OAuth flow and redirects back to your app with
133
+ * `?cfx_token=<token>&cfx_project=<projectId>` in the URL.
134
+ * Call `auth.handleGatewayCallback()` on page load to complete sign-in.
188
135
  *
189
- * @throws `ClefbaseError` with code `GOOGLE_NOT_CONFIGURED` if no Client ID
190
- * has been set in the project's auth settings.
191
- * @throws `ClefbaseError` with code `GOOGLE_PROMPT_SUPPRESSED` if One Tap
192
- * could not be displayed (switch to button mode in that case).
193
- * @throws `ClefbaseError` with code `GOOGLE_SIGN_IN_CANCELLED` if the user
194
- * dismissed the popup.
136
+ * **This method never returns** it calls `window.location.href`.
195
137
  *
196
138
  * @example
197
- * // One Tap prompt
198
- * const { user } = await auth.signInWithGoogle();
139
+ * // On button click:
140
+ * await auth.signInWithGateway("google");
199
141
  *
200
- * // Branded Google button
201
- * const { user } = await auth.signInWithGoogle({
202
- * container: document.getElementById("google-btn")!,
203
- * theme: "filled_blue",
204
- * size: "large",
205
- * text: "continue_with",
142
+ * // With a custom return URL:
143
+ * await auth.signInWithGateway("google", {
144
+ * redirectUrl: "https://myapp.cleforyx.com/dashboard",
206
145
  * });
207
- *
208
- * // React example
209
- * const btnRef = useRef<HTMLDivElement>(null);
210
- * await auth.signInWithGoogle({ container: btnRef.current! });
211
146
  */
212
- async signInWithGoogle(buttonOptions) {
213
- const clientId = await this.resolveGoogleClientId();
214
- await loadGisScript();
215
- const gis = window.google.accounts.id;
216
- return new Promise((resolve, reject) => {
217
- gis.initialize({
218
- client_id: clientId,
219
- auto_select: false,
220
- cancel_on_tap_outside: true,
221
- callback: async ({ credential }) => {
222
- try {
223
- resolve(await this.signInWithGoogleToken(credential));
224
- }
225
- catch (err) {
226
- reject(err);
227
- }
228
- },
229
- });
230
- if (buttonOptions?.container) {
231
- const { container, theme, size, text, shape, width, locale } = buttonOptions;
232
- gis.renderButton(container, {
233
- type: "standard",
234
- theme: theme ?? "outline",
235
- size: size ?? "large",
236
- text: text ?? "signin_with",
237
- shape: shape ?? "rectangular",
238
- logo_alignment: "left",
239
- width,
240
- locale,
241
- });
242
- }
243
- else {
244
- gis.prompt((n) => {
245
- if (n.isNotDisplayed()) {
246
- reject(new types_1.ClefbaseError(`Google One Tap could not be displayed (${n.getNotDisplayedReason()}). ` +
247
- "Pass a { container } element to render a sign-in button instead.", "GOOGLE_PROMPT_SUPPRESSED"));
248
- }
249
- else if (n.isSkippedMoment() || n.isDismissedMoment()) {
250
- reject(new types_1.ClefbaseError("Google Sign-In was cancelled by the user.", "GOOGLE_SIGN_IN_CANCELLED"));
251
- }
252
- });
253
- }
147
+ async signInWithGateway(provider, options) {
148
+ if (typeof window === "undefined") {
149
+ throw new types_1.ClefbaseError("signInWithGateway() requires a browser environment.", "UNSUPPORTED_ENVIRONMENT");
150
+ }
151
+ const redirectUrl = options?.redirectUrl ?? window.location.origin;
152
+ const params = new URLSearchParams({
153
+ project: this.projectId,
154
+ redirect: redirectUrl,
254
155
  });
156
+ window.location.href = `${this.gatewayUrl}/${provider}?${params.toString()}`;
157
+ // This line is unreachable but TypeScript needs it for `never` return type
158
+ return new Promise(() => { });
255
159
  }
256
160
  /**
257
- * Sign in with Google using a raw ID token string.
258
- *
259
- * Use this when you already have a `credential` from Google's callback —
260
- * for example with a custom button implementation, React Native Google
261
- * Sign-In, or any other flow that gives you an ID token directly.
262
- *
263
- * Works in both browser and Node.js environments.
161
+ * Check if the current URL contains a gateway callback (`?cfx_token=`).
162
+ * Useful for rendering a "Finishing sign-in…" loading state before calling
163
+ * `handleGatewayCallback()`.
264
164
  *
265
165
  * @example
266
- * // Inside a GIS callback
267
- * google.accounts.id.initialize({
268
- * client_id: "...",
269
- * callback: async ({ credential }) => {
270
- * const { user } = await auth.signInWithGoogleToken(credential);
271
- * },
272
- * });
273
- *
274
- * // React Native
275
- * const { idToken } = await GoogleSignin.signIn();
276
- * const { user } = await auth.signInWithGoogleToken(idToken);
166
+ * if (auth.isGatewayCallbackPending()) {
167
+ * showLoadingSpinner();
168
+ * }
277
169
  */
278
- async signInWithGoogleToken(idToken) {
279
- if (!idToken || typeof idToken !== "string") {
280
- throw new types_1.ClefbaseError("idToken must be a non-empty string.", "INVALID_ARGUMENT");
281
- }
282
- const result = await this.http.post("/google", { idToken });
283
- return this.handleResult(result);
170
+ isGatewayCallbackPending() {
171
+ if (typeof window === "undefined")
172
+ return false;
173
+ return new URLSearchParams(window.location.search).has("cfx_token");
284
174
  }
285
175
  /**
286
- * Returns `true` if Google Sign-In is configured for this project.
287
- * Useful for conditionally rendering a "Sign in with Google" button.
176
+ * Call this on every page load (ideally before rendering your app).
177
+ * If the URL contains `?cfx_token=`, the token is validated against
178
+ * the server, the session is saved, and the signed-in `AuthResult` is
179
+ * returned. The query params are cleaned from the URL automatically.
180
+ *
181
+ * Returns `null` if there is no pending callback.
288
182
  *
289
183
  * @example
290
- * if (await auth.isGoogleSignInEnabled()) {
291
- * showGoogleButton();
292
- * }
184
+ * // In your app's root component or entry point:
185
+ * useEffect(() => {
186
+ * auth.handleGatewayCallback().then(result => {
187
+ * if (result) {
188
+ * console.log("Signed in:", result.user.email);
189
+ * navigate("/dashboard");
190
+ * }
191
+ * });
192
+ * }, []);
193
+ *
194
+ * // Or outside React:
195
+ * const result = await auth.handleGatewayCallback();
196
+ * if (result) showDashboard(result.user);
293
197
  */
294
- async isGoogleSignInEnabled() {
198
+ async handleGatewayCallback() {
199
+ if (typeof window === "undefined")
200
+ return null;
201
+ const params = new URLSearchParams(window.location.search);
202
+ const token = params.get("cfx_token");
203
+ if (!token)
204
+ return null;
205
+ // Clean the token + project params from the URL immediately so they
206
+ // aren't reprocessed on refresh or shared in links
207
+ params.delete("cfx_token");
208
+ params.delete("cfx_project");
209
+ const cleanSearch = params.toString();
210
+ const cleanUrl = window.location.pathname + (cleanSearch ? `?${cleanSearch}` : "");
211
+ window.history.replaceState({}, "", cleanUrl);
212
+ // Validate the token against the server and fetch the full user object
295
213
  try {
296
- const cfg = await this.http.get("/google/config");
297
- return cfg.enabled && Boolean(cfg.clientId);
214
+ const user = await this.http.get("/me", { Authorization: `Bearer ${token}` });
215
+ // We don't have an expiresAt from the URL — fetch it from /me is enough
216
+ // for the session; use a generous 30-day default matching server config
217
+ const expiresAt = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString();
218
+ const result = {
219
+ user,
220
+ token,
221
+ session: { token, expiresAt },
222
+ };
223
+ return this.handleResult(result);
298
224
  }
299
- catch {
300
- return false;
225
+ catch (err) {
226
+ // Token was invalid or expired — don't sign in
227
+ throw new types_1.ClefbaseError(`Gateway callback failed: ${err.message}`, "GATEWAY_CALLBACK_ERROR");
301
228
  }
302
229
  }
230
+ // ── Session management ────────────────────────────────────────────────────
303
231
  /** Sign out and clear the local session. */
304
232
  async signOut() {
305
233
  const token = this.currentToken;
@@ -311,13 +239,6 @@ class Auth {
311
239
  }
312
240
  this.store.clear();
313
241
  this.notify(null);
314
- // Tell GIS to disable auto-select so the user isn't silently re-signed in
315
- if (typeof window !== "undefined" && window.google?.accounts?.id) {
316
- try {
317
- window.google.accounts.id.disableAutoSelect();
318
- }
319
- catch { /* ignore */ }
320
- }
321
242
  }
322
243
  /** Re-fetch the current user's profile from the server and update the cache. */
323
244
  async refreshCurrentUser() {
@@ -383,7 +304,7 @@ class Auth {
383
304
  }
384
305
  /**
385
306
  * Subscribe to auth state changes.
386
- * Fires immediately with the current user, then on every change.
307
+ * Fires immediately with the current user, then on every sign-in or sign-out.
387
308
  * Returns an unsubscribe function.
388
309
  *
389
310
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
@@ -91,17 +91,17 @@ function base(cfg) {
91
91
  return cfg.serverUrl.replace(/\/+$/, "");
92
92
  }
93
93
  function adminHeaders(cfg) {
94
- return { "Content-Type": "application/json", "x-admin-secret": cfg.adminSecret };
94
+ return { "Content-Type": "application/json", "x-cfx-key": cfg.apiKey };
95
95
  }
96
96
  function cfxHeaders(cfg) {
97
97
  return { "Content-Type": "application/json", "x-cfx-key": cfg.apiKey };
98
98
  }
99
99
  // ─── Hosting API ──────────────────────────────────────────────────────────────
100
100
  async function listSites(cfg) {
101
- return apiFetch(`${base(cfg)}/api/hosting/databases/${cfg.projectId}/sites`, { headers: adminHeaders(cfg) });
101
+ return apiFetch(`${base(cfg)}/hosting/sites`, { headers: cfxHeaders(cfg) });
102
102
  }
103
103
  async function createSite(cfg, name, description) {
104
- return apiFetch(`${base(cfg)}/api/hosting/databases/${cfg.projectId}/sites`, { method: "POST", headers: adminHeaders(cfg), body: JSON.stringify({ name, description }) });
104
+ return apiFetch(`${base(cfg)}/hosting/sites`, { method: "POST", headers: cfxHeaders(cfg), body: JSON.stringify({ name, description }) });
105
105
  }
106
106
  async function deleteSite(cfg, siteId, opts = {}) {
107
107
  const params = new URLSearchParams();
@@ -110,24 +110,24 @@ async function deleteSite(cfg, siteId, opts = {}) {
110
110
  if (opts.deleteDns)
111
111
  params.set("deleteDns", "true");
112
112
  const qs = params.toString() ? `?${params}` : "";
113
- return apiFetch(`${base(cfg)}/api/hosting/databases/${cfg.projectId}/sites/${siteId}${qs}`, { method: "DELETE", headers: adminHeaders(cfg) });
113
+ return apiFetch(`${base(cfg)}/hosting/sites/${siteId}${qs}`, { method: "DELETE", headers: cfxHeaders(cfg) });
114
114
  }
115
115
  async function getDnsStatus(cfg, siteId) {
116
- return apiFetch(`${base(cfg)}/api/hosting/databases/${cfg.projectId}/sites/${siteId}/dns`, { headers: adminHeaders(cfg) });
116
+ return apiFetch(`${base(cfg)}/hosting/sites/${siteId}/dns`, { headers: cfxHeaders(cfg) });
117
117
  }
118
118
  async function reprovisionDns(cfg, siteId) {
119
- return apiFetch(`${base(cfg)}/api/hosting/databases/${cfg.projectId}/sites/${siteId}/dns/provision`, { method: "POST", headers: adminHeaders(cfg), body: JSON.stringify({}) });
119
+ return apiFetch(`${base(cfg)}/hosting/sites/${siteId}/dns/reprovision`, { method: "POST", headers: cfxHeaders(cfg), body: JSON.stringify({}) });
120
120
  }
121
121
  async function createDeploy(cfg, siteId, entrypoint = "index.html") {
122
- return apiFetch(`${base(cfg)}/api/hosting/databases/${cfg.projectId}/sites/${siteId}/deploys`, {
122
+ return apiFetch(`${base(cfg)}/hosting/sites/${siteId}/deploys`, {
123
123
  method: "POST",
124
- headers: adminHeaders(cfg),
124
+ headers: cfxHeaders(cfg),
125
125
  body: JSON.stringify({ entrypoint, deployedBy: "clefbase-cli" }),
126
126
  });
127
127
  }
128
128
  async function uploadFileBatch(cfg, deployId, files) {
129
129
  const fetchFn = await getFetch();
130
- const url = `${base(cfg)}/api/hosting/databases/${cfg.projectId}/deploys/${deployId}/files/batch`;
130
+ const url = `${base(cfg)}/hosting/deploys/${deployId}/files/batch`;
131
131
  let res;
132
132
  if (typeof FormData !== "undefined") {
133
133
  const form = new FormData();
@@ -140,7 +140,7 @@ async function uploadFileBatch(cfg, deployId, files) {
140
140
  }
141
141
  res = await fetchFn(url, {
142
142
  method: "POST",
143
- headers: { "x-admin-secret": cfg.adminSecret },
143
+ headers: { "x-cfx-key": cfg.apiKey },
144
144
  body: form,
145
145
  });
146
146
  }
@@ -157,7 +157,7 @@ async function uploadFileBatch(cfg, deployId, files) {
157
157
  }
158
158
  res = await fetchFn(url, {
159
159
  method: "POST",
160
- headers: { "x-admin-secret": cfg.adminSecret, ...form.getHeaders() },
160
+ headers: { "x-cfx-key": cfg.apiKey, ...form.getHeaders() },
161
161
  body: form,
162
162
  });
163
163
  }
@@ -174,15 +174,15 @@ async function uploadFileBatch(cfg, deployId, files) {
174
174
  return res.json();
175
175
  }
176
176
  async function finalizeDeploy(cfg, deployId, message) {
177
- return apiFetch(`${base(cfg)}/api/hosting/databases/${cfg.projectId}/deploys/${deployId}/finalize`, {
177
+ return apiFetch(`${base(cfg)}/hosting/deploys/${deployId}/finalize`, {
178
178
  method: "POST",
179
- headers: adminHeaders(cfg),
179
+ headers: cfxHeaders(cfg),
180
180
  body: JSON.stringify({ message: message ?? "Deployed via clefbase CLI" }),
181
181
  });
182
182
  }
183
183
  async function getActiveDeploy(cfg, siteId) {
184
184
  try {
185
- return await apiFetch(`${base(cfg)}/api/hosting/databases/${cfg.projectId}/sites/${siteId}/active`, { headers: adminHeaders(cfg) });
185
+ return await apiFetch(`${base(cfg)}/hosting/sites/${siteId}/active`, { headers: cfxHeaders(cfg) });
186
186
  }
187
187
  catch (err) {
188
188
  if (err.status === 404)