@dream-api/sdk 0.1.26 → 0.1.28
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/dist/index.js +40 -17
- package/dist/index.mjs +40 -17
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -38,17 +38,10 @@ var DreamAPIException = class extends Error {
|
|
|
38
38
|
|
|
39
39
|
// src/client.ts
|
|
40
40
|
var DEFAULT_BASE_URL = "https://api-multi.k-c-sheffield012376.workers.dev";
|
|
41
|
-
var
|
|
41
|
+
var SIGNUP_URL_TEST = "https://sign-up.k-c-sheffield012376.workers.dev";
|
|
42
42
|
var SIGNUP_URL_LIVE = "https://signup.users.panacea-tech.net";
|
|
43
|
-
var
|
|
43
|
+
var CLERK_URL_TEST = "https://composed-blowfish-76.clerk.accounts.dev";
|
|
44
44
|
var CLERK_URL_LIVE = "https://users.panacea-tech.net";
|
|
45
|
-
function isLocalhost() {
|
|
46
|
-
if (typeof window === "undefined") return false;
|
|
47
|
-
const hostname = window.location.hostname;
|
|
48
|
-
return hostname === "localhost" || hostname === "127.0.0.1";
|
|
49
|
-
}
|
|
50
|
-
var DEFAULT_SIGNUP_URL = isLocalhost() ? SIGNUP_URL_DEV : SIGNUP_URL_LIVE;
|
|
51
|
-
var DEFAULT_CLERK_URL = isLocalhost() ? CLERK_URL_DEV : CLERK_URL_LIVE;
|
|
52
45
|
var DreamClient = class {
|
|
53
46
|
constructor(config) {
|
|
54
47
|
this.userToken = null;
|
|
@@ -59,8 +52,9 @@ var DreamClient = class {
|
|
|
59
52
|
this.secretKey = config.secretKey;
|
|
60
53
|
this.publishableKey = config.publishableKey;
|
|
61
54
|
this.baseUrl = config.baseUrl || DEFAULT_BASE_URL;
|
|
62
|
-
|
|
63
|
-
this.
|
|
55
|
+
const isTestKey = this.publishableKey?.startsWith("pk_test_");
|
|
56
|
+
this.signupUrl = config.signupUrl || (isTestKey ? SIGNUP_URL_TEST : SIGNUP_URL_LIVE);
|
|
57
|
+
this.clerkUrl = config.clerkBaseUrl || (isTestKey ? CLERK_URL_TEST : CLERK_URL_LIVE);
|
|
64
58
|
this.frontendOnly = !config.secretKey && !!config.publishableKey;
|
|
65
59
|
if (this.frontendOnly) {
|
|
66
60
|
console.log("[DreamAPI] Running in frontend-only mode (PK auth)");
|
|
@@ -190,7 +184,7 @@ var DreamClient = class {
|
|
|
190
184
|
};
|
|
191
185
|
|
|
192
186
|
// src/clerk.ts
|
|
193
|
-
function
|
|
187
|
+
function isLocalhost() {
|
|
194
188
|
if (typeof window === "undefined") return false;
|
|
195
189
|
const hostname = window.location.hostname;
|
|
196
190
|
return hostname === "localhost" || hostname === "127.0.0.1";
|
|
@@ -198,7 +192,7 @@ function isLocalhost2() {
|
|
|
198
192
|
var CLERK_DEV_KEY = "pk_test_Y29tcG9zZWQtYmxvd2Zpc2gtNzYuY2xlcmsuYWNjb3VudHMuZGV2JA";
|
|
199
193
|
var CLERK_LIVE_KEY = "pk_live_Y2xlcmsudXNlcnMucGFuYWNlYS10ZWNoLm5ldCQ";
|
|
200
194
|
function getClerkKey() {
|
|
201
|
-
return
|
|
195
|
+
return isLocalhost() ? CLERK_DEV_KEY : CLERK_LIVE_KEY;
|
|
202
196
|
}
|
|
203
197
|
var CLERK_CDN_URL = "https://cdn.jsdelivr.net/npm/@clerk/clerk-js@5.118.0/dist/clerk.browser.js";
|
|
204
198
|
var JWT_TEMPLATE = "end-user-api";
|
|
@@ -216,6 +210,18 @@ var ClerkManager = class {
|
|
|
216
210
|
*/
|
|
217
211
|
async load() {
|
|
218
212
|
if (this.loaded || typeof window === "undefined") return;
|
|
213
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
214
|
+
const jwt = urlParams.get("__clerk_jwt");
|
|
215
|
+
if (jwt) {
|
|
216
|
+
console.log("[DreamAPI] JWT received from sign-up worker");
|
|
217
|
+
this.token = jwt;
|
|
218
|
+
this.onTokenChange?.(jwt);
|
|
219
|
+
urlParams.delete("__clerk_jwt");
|
|
220
|
+
const newUrl = urlParams.toString() ? `${window.location.pathname}?${urlParams}` : window.location.pathname;
|
|
221
|
+
window.history.replaceState({}, "", newUrl);
|
|
222
|
+
this.loaded = true;
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
219
225
|
const existingClerk = getClerk();
|
|
220
226
|
if (existingClerk) {
|
|
221
227
|
this.loaded = true;
|
|
@@ -240,8 +246,8 @@ var ClerkManager = class {
|
|
|
240
246
|
}
|
|
241
247
|
if (clerk) {
|
|
242
248
|
await clerk.load();
|
|
243
|
-
const
|
|
244
|
-
const ticket =
|
|
249
|
+
const urlParams2 = new URLSearchParams(window.location.search);
|
|
250
|
+
const ticket = urlParams2.get("__clerk_ticket");
|
|
245
251
|
console.log("[DreamAPI] URL:", window.location.href);
|
|
246
252
|
console.log("[DreamAPI] Ticket present:", ticket ? "YES" : "NO");
|
|
247
253
|
const sdkDebug = {
|
|
@@ -275,8 +281,8 @@ var ClerkManager = class {
|
|
|
275
281
|
if (clerk.user && clerk.session) break;
|
|
276
282
|
}
|
|
277
283
|
console.log("[DreamAPI] User hydrated:", !!clerk.user);
|
|
278
|
-
|
|
279
|
-
const newUrl =
|
|
284
|
+
urlParams2.delete("__clerk_ticket");
|
|
285
|
+
const newUrl = urlParams2.toString() ? `${window.location.pathname}?${urlParams2}` : window.location.pathname;
|
|
280
286
|
window.history.replaceState({}, "", newUrl);
|
|
281
287
|
}
|
|
282
288
|
} catch (err) {
|
|
@@ -309,6 +315,7 @@ var ClerkManager = class {
|
|
|
309
315
|
* Check if user is signed in
|
|
310
316
|
*/
|
|
311
317
|
isSignedIn() {
|
|
318
|
+
if (this.token) return true;
|
|
312
319
|
const clerk = getClerk();
|
|
313
320
|
return !!clerk?.user && !!clerk?.session;
|
|
314
321
|
}
|
|
@@ -316,6 +323,22 @@ var ClerkManager = class {
|
|
|
316
323
|
* Get current user info
|
|
317
324
|
*/
|
|
318
325
|
getUser() {
|
|
326
|
+
if (this.token) {
|
|
327
|
+
try {
|
|
328
|
+
const parts = this.token.split(".");
|
|
329
|
+
if (parts.length === 3) {
|
|
330
|
+
const payload = JSON.parse(atob(parts[1].replace(/-/g, "+").replace(/_/g, "/")));
|
|
331
|
+
return {
|
|
332
|
+
id: payload.sub || "",
|
|
333
|
+
email: payload.email || "",
|
|
334
|
+
plan: payload.plan || payload.publicMetadata?.plan || "free",
|
|
335
|
+
publishableKey: payload.publishableKey || payload.publicMetadata?.publishableKey || ""
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
} catch (e) {
|
|
339
|
+
console.error("[DreamAPI] Failed to decode JWT:", e);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
319
342
|
const clerk = getClerk();
|
|
320
343
|
if (!clerk?.user) return null;
|
|
321
344
|
const user = clerk.user;
|
package/dist/index.mjs
CHANGED
|
@@ -10,17 +10,10 @@ var DreamAPIException = class extends Error {
|
|
|
10
10
|
|
|
11
11
|
// src/client.ts
|
|
12
12
|
var DEFAULT_BASE_URL = "https://api-multi.k-c-sheffield012376.workers.dev";
|
|
13
|
-
var
|
|
13
|
+
var SIGNUP_URL_TEST = "https://sign-up.k-c-sheffield012376.workers.dev";
|
|
14
14
|
var SIGNUP_URL_LIVE = "https://signup.users.panacea-tech.net";
|
|
15
|
-
var
|
|
15
|
+
var CLERK_URL_TEST = "https://composed-blowfish-76.clerk.accounts.dev";
|
|
16
16
|
var CLERK_URL_LIVE = "https://users.panacea-tech.net";
|
|
17
|
-
function isLocalhost() {
|
|
18
|
-
if (typeof window === "undefined") return false;
|
|
19
|
-
const hostname = window.location.hostname;
|
|
20
|
-
return hostname === "localhost" || hostname === "127.0.0.1";
|
|
21
|
-
}
|
|
22
|
-
var DEFAULT_SIGNUP_URL = isLocalhost() ? SIGNUP_URL_DEV : SIGNUP_URL_LIVE;
|
|
23
|
-
var DEFAULT_CLERK_URL = isLocalhost() ? CLERK_URL_DEV : CLERK_URL_LIVE;
|
|
24
17
|
var DreamClient = class {
|
|
25
18
|
constructor(config) {
|
|
26
19
|
this.userToken = null;
|
|
@@ -31,8 +24,9 @@ var DreamClient = class {
|
|
|
31
24
|
this.secretKey = config.secretKey;
|
|
32
25
|
this.publishableKey = config.publishableKey;
|
|
33
26
|
this.baseUrl = config.baseUrl || DEFAULT_BASE_URL;
|
|
34
|
-
|
|
35
|
-
this.
|
|
27
|
+
const isTestKey = this.publishableKey?.startsWith("pk_test_");
|
|
28
|
+
this.signupUrl = config.signupUrl || (isTestKey ? SIGNUP_URL_TEST : SIGNUP_URL_LIVE);
|
|
29
|
+
this.clerkUrl = config.clerkBaseUrl || (isTestKey ? CLERK_URL_TEST : CLERK_URL_LIVE);
|
|
36
30
|
this.frontendOnly = !config.secretKey && !!config.publishableKey;
|
|
37
31
|
if (this.frontendOnly) {
|
|
38
32
|
console.log("[DreamAPI] Running in frontend-only mode (PK auth)");
|
|
@@ -162,7 +156,7 @@ var DreamClient = class {
|
|
|
162
156
|
};
|
|
163
157
|
|
|
164
158
|
// src/clerk.ts
|
|
165
|
-
function
|
|
159
|
+
function isLocalhost() {
|
|
166
160
|
if (typeof window === "undefined") return false;
|
|
167
161
|
const hostname = window.location.hostname;
|
|
168
162
|
return hostname === "localhost" || hostname === "127.0.0.1";
|
|
@@ -170,7 +164,7 @@ function isLocalhost2() {
|
|
|
170
164
|
var CLERK_DEV_KEY = "pk_test_Y29tcG9zZWQtYmxvd2Zpc2gtNzYuY2xlcmsuYWNjb3VudHMuZGV2JA";
|
|
171
165
|
var CLERK_LIVE_KEY = "pk_live_Y2xlcmsudXNlcnMucGFuYWNlYS10ZWNoLm5ldCQ";
|
|
172
166
|
function getClerkKey() {
|
|
173
|
-
return
|
|
167
|
+
return isLocalhost() ? CLERK_DEV_KEY : CLERK_LIVE_KEY;
|
|
174
168
|
}
|
|
175
169
|
var CLERK_CDN_URL = "https://cdn.jsdelivr.net/npm/@clerk/clerk-js@5.118.0/dist/clerk.browser.js";
|
|
176
170
|
var JWT_TEMPLATE = "end-user-api";
|
|
@@ -188,6 +182,18 @@ var ClerkManager = class {
|
|
|
188
182
|
*/
|
|
189
183
|
async load() {
|
|
190
184
|
if (this.loaded || typeof window === "undefined") return;
|
|
185
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
186
|
+
const jwt = urlParams.get("__clerk_jwt");
|
|
187
|
+
if (jwt) {
|
|
188
|
+
console.log("[DreamAPI] JWT received from sign-up worker");
|
|
189
|
+
this.token = jwt;
|
|
190
|
+
this.onTokenChange?.(jwt);
|
|
191
|
+
urlParams.delete("__clerk_jwt");
|
|
192
|
+
const newUrl = urlParams.toString() ? `${window.location.pathname}?${urlParams}` : window.location.pathname;
|
|
193
|
+
window.history.replaceState({}, "", newUrl);
|
|
194
|
+
this.loaded = true;
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
191
197
|
const existingClerk = getClerk();
|
|
192
198
|
if (existingClerk) {
|
|
193
199
|
this.loaded = true;
|
|
@@ -212,8 +218,8 @@ var ClerkManager = class {
|
|
|
212
218
|
}
|
|
213
219
|
if (clerk) {
|
|
214
220
|
await clerk.load();
|
|
215
|
-
const
|
|
216
|
-
const ticket =
|
|
221
|
+
const urlParams2 = new URLSearchParams(window.location.search);
|
|
222
|
+
const ticket = urlParams2.get("__clerk_ticket");
|
|
217
223
|
console.log("[DreamAPI] URL:", window.location.href);
|
|
218
224
|
console.log("[DreamAPI] Ticket present:", ticket ? "YES" : "NO");
|
|
219
225
|
const sdkDebug = {
|
|
@@ -247,8 +253,8 @@ var ClerkManager = class {
|
|
|
247
253
|
if (clerk.user && clerk.session) break;
|
|
248
254
|
}
|
|
249
255
|
console.log("[DreamAPI] User hydrated:", !!clerk.user);
|
|
250
|
-
|
|
251
|
-
const newUrl =
|
|
256
|
+
urlParams2.delete("__clerk_ticket");
|
|
257
|
+
const newUrl = urlParams2.toString() ? `${window.location.pathname}?${urlParams2}` : window.location.pathname;
|
|
252
258
|
window.history.replaceState({}, "", newUrl);
|
|
253
259
|
}
|
|
254
260
|
} catch (err) {
|
|
@@ -281,6 +287,7 @@ var ClerkManager = class {
|
|
|
281
287
|
* Check if user is signed in
|
|
282
288
|
*/
|
|
283
289
|
isSignedIn() {
|
|
290
|
+
if (this.token) return true;
|
|
284
291
|
const clerk = getClerk();
|
|
285
292
|
return !!clerk?.user && !!clerk?.session;
|
|
286
293
|
}
|
|
@@ -288,6 +295,22 @@ var ClerkManager = class {
|
|
|
288
295
|
* Get current user info
|
|
289
296
|
*/
|
|
290
297
|
getUser() {
|
|
298
|
+
if (this.token) {
|
|
299
|
+
try {
|
|
300
|
+
const parts = this.token.split(".");
|
|
301
|
+
if (parts.length === 3) {
|
|
302
|
+
const payload = JSON.parse(atob(parts[1].replace(/-/g, "+").replace(/_/g, "/")));
|
|
303
|
+
return {
|
|
304
|
+
id: payload.sub || "",
|
|
305
|
+
email: payload.email || "",
|
|
306
|
+
plan: payload.plan || payload.publicMetadata?.plan || "free",
|
|
307
|
+
publishableKey: payload.publishableKey || payload.publicMetadata?.publishableKey || ""
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
} catch (e) {
|
|
311
|
+
console.error("[DreamAPI] Failed to decode JWT:", e);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
291
314
|
const clerk = getClerk();
|
|
292
315
|
if (!clerk?.user) return null;
|
|
293
316
|
const user = clerk.user;
|