switched to paddle inline checkout, removed paypal and most of stripe. added product sync between app and paddle.

This commit is contained in:
Codex Agent
2025-10-27 17:26:39 +01:00
parent ecf5a23b28
commit 5432456ffd
117 changed files with 4114 additions and 3639 deletions

View File

@@ -4,6 +4,7 @@ if (import.meta.env.DEV || import.meta.env.VITE_ENABLE_TENANT_SWITCHER === 'true
refreshToken: string;
expiresAt: number;
scope?: string;
clientId?: string;
};
const CLIENTS: Record<string, string> = {
@@ -29,11 +30,9 @@ if (import.meta.env.DEV || import.meta.env.VITE_ENABLE_TENANT_SWITCHER === 'true
localStorage.setItem('tenant_oauth_tokens.v1', JSON.stringify(tokens));
window.location.assign('/event-admin/dashboard');
} catch (error) {
if (error instanceof Error) {
console.error('[DevAuth] Failed to login', error.message);
} else {
console.error('[DevAuth] Failed to login', error);
}
const message = error instanceof Error ? error.message : String(error);
console.error('[DevAuth] Failed to login', message);
throw error instanceof Error ? error : new Error(message);
}
}
@@ -84,6 +83,7 @@ if (import.meta.env.DEV || import.meta.env.VITE_ENABLE_TENANT_SWITCHER === 'true
refreshToken: body.refresh_token,
expiresAt: Date.now() + Math.max(expiresIn - 30, 0) * 1000,
scope: body.scope,
clientId,
};
}
@@ -126,9 +126,11 @@ function requestAuthorization(url: string): Promise<URL> {
}
const responseUrl = xhr.responseURL || xhr.getResponseHeader('Location');
if (xhr.status >= 200 && xhr.status < 400 && responseUrl) {
resolve(new URL(responseUrl, window.location.origin));
return;
if ((xhr.status >= 200 && xhr.status < 400) || xhr.status === 0) {
if (responseUrl) {
resolve(new URL(responseUrl, window.location.origin));
return;
}
}
reject(new Error(`Authorize failed with ${xhr.status}`));