@ascendkit/nextjs 0.1.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.
Files changed (95) hide show
  1. package/LICENSE +21 -0
  2. package/dist/client/hooks.d.ts +109 -0
  3. package/dist/client/hooks.d.ts.map +1 -0
  4. package/dist/client/hooks.js +372 -0
  5. package/dist/client/index.d.ts +4 -0
  6. package/dist/client/index.d.ts.map +1 -0
  7. package/dist/client/index.js +3 -0
  8. package/dist/client/provider.d.ts +66 -0
  9. package/dist/client/provider.d.ts.map +1 -0
  10. package/dist/client/provider.js +284 -0
  11. package/dist/client/use-analytics.d.ts +27 -0
  12. package/dist/client/use-analytics.d.ts.map +1 -0
  13. package/dist/client/use-analytics.js +133 -0
  14. package/dist/components/auth-card.d.ts +20 -0
  15. package/dist/components/auth-card.d.ts.map +1 -0
  16. package/dist/components/auth-card.js +128 -0
  17. package/dist/components/auth-modal.d.ts +9 -0
  18. package/dist/components/auth-modal.d.ts.map +1 -0
  19. package/dist/components/auth-modal.js +110 -0
  20. package/dist/components/branding-badge.d.ts +2 -0
  21. package/dist/components/branding-badge.d.ts.map +1 -0
  22. package/dist/components/branding-badge.js +9 -0
  23. package/dist/components/email-verification.d.ts +2 -0
  24. package/dist/components/email-verification.d.ts.map +1 -0
  25. package/dist/components/email-verification.js +48 -0
  26. package/dist/components/forgot-password.d.ts +6 -0
  27. package/dist/components/forgot-password.d.ts.map +1 -0
  28. package/dist/components/forgot-password.js +37 -0
  29. package/dist/components/index.d.ts +13 -0
  30. package/dist/components/index.d.ts.map +1 -0
  31. package/dist/components/index.js +12 -0
  32. package/dist/components/login.d.ts +9 -0
  33. package/dist/components/login.d.ts.map +1 -0
  34. package/dist/components/login.js +48 -0
  35. package/dist/components/reset-password.d.ts +6 -0
  36. package/dist/components/reset-password.d.ts.map +1 -0
  37. package/dist/components/reset-password.js +47 -0
  38. package/dist/components/sign-in-button.d.ts +19 -0
  39. package/dist/components/sign-in-button.d.ts.map +1 -0
  40. package/dist/components/sign-in-button.js +27 -0
  41. package/dist/components/sign-up-button.d.ts +19 -0
  42. package/dist/components/sign-up-button.d.ts.map +1 -0
  43. package/dist/components/sign-up-button.js +27 -0
  44. package/dist/components/signup.d.ts +9 -0
  45. package/dist/components/signup.d.ts.map +1 -0
  46. package/dist/components/signup.js +60 -0
  47. package/dist/components/social-button.d.ts +8 -0
  48. package/dist/components/social-button.d.ts.map +1 -0
  49. package/dist/components/social-button.js +10 -0
  50. package/dist/components/user-button.d.ts +11 -0
  51. package/dist/components/user-button.d.ts.map +1 -0
  52. package/dist/components/user-button.js +14 -0
  53. package/dist/index.d.ts +6 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +8 -0
  56. package/dist/server/access-token.d.ts +39 -0
  57. package/dist/server/access-token.d.ts.map +1 -0
  58. package/dist/server/access-token.js +74 -0
  59. package/dist/server/adapter.d.ts +6 -0
  60. package/dist/server/adapter.d.ts.map +1 -0
  61. package/dist/server/adapter.js +57 -0
  62. package/dist/server/analytics.d.ts +61 -0
  63. package/dist/server/analytics.d.ts.map +1 -0
  64. package/dist/server/analytics.js +117 -0
  65. package/dist/server/ascendkit-auth.d.ts +122 -0
  66. package/dist/server/ascendkit-auth.d.ts.map +1 -0
  67. package/dist/server/ascendkit-auth.js +146 -0
  68. package/dist/server/auth-runtime.d.ts +12 -0
  69. package/dist/server/auth-runtime.d.ts.map +1 -0
  70. package/dist/server/auth-runtime.js +123 -0
  71. package/dist/server/config-fetcher.d.ts +22 -0
  72. package/dist/server/config-fetcher.d.ts.map +1 -0
  73. package/dist/server/config-fetcher.js +26 -0
  74. package/dist/server/email-sender.d.ts +29 -0
  75. package/dist/server/email-sender.d.ts.map +1 -0
  76. package/dist/server/email-sender.js +58 -0
  77. package/dist/server/index.d.ts +10 -0
  78. package/dist/server/index.d.ts.map +1 -0
  79. package/dist/server/index.js +7 -0
  80. package/dist/server/oauth-proxy-plugin.d.ts +10 -0
  81. package/dist/server/oauth-proxy-plugin.d.ts.map +1 -0
  82. package/dist/server/oauth-proxy-plugin.js +156 -0
  83. package/dist/server/social-providers.d.ts +12 -0
  84. package/dist/server/social-providers.d.ts.map +1 -0
  85. package/dist/server/social-providers.js +15 -0
  86. package/dist/server/webhooks.d.ts +43 -0
  87. package/dist/server/webhooks.d.ts.map +1 -0
  88. package/dist/server/webhooks.js +83 -0
  89. package/dist/shared/http-client.d.ts +17 -0
  90. package/dist/shared/http-client.d.ts.map +1 -0
  91. package/dist/shared/http-client.js +52 -0
  92. package/dist/shared/types.d.ts +49 -0
  93. package/dist/shared/types.d.ts.map +1 -0
  94. package/dist/shared/types.js +1 -0
  95. package/package.json +49 -0
@@ -0,0 +1,52 @@
1
+ export function createHttpClient({ publicKey, apiUrl, secretKey }) {
2
+ const baseHeaders = {
3
+ "X-AscendKit-Public-Key": publicKey,
4
+ };
5
+ if (secretKey) {
6
+ baseHeaders["X-AscendKit-Secret-Key"] = secretKey;
7
+ }
8
+ async function handleResponse(res) {
9
+ const json = await res.json();
10
+ if (!res.ok) {
11
+ throw new Error(json.error || json.detail || `Request failed: ${res.status}`);
12
+ }
13
+ return json.data;
14
+ }
15
+ async function post(path, body) {
16
+ const res = await fetch(`${apiUrl}${path}`, {
17
+ method: "POST",
18
+ headers: { ...baseHeaders, "Content-Type": "application/json" },
19
+ body: JSON.stringify(body),
20
+ });
21
+ return handleResponse(res);
22
+ }
23
+ async function get(path) {
24
+ const res = await fetch(`${apiUrl}${path}`, {
25
+ headers: baseHeaders,
26
+ });
27
+ return handleResponse(res);
28
+ }
29
+ async function getConditional(path, etag) {
30
+ const headers = { ...baseHeaders };
31
+ if (etag) {
32
+ headers["If-None-Match"] = etag;
33
+ }
34
+ const res = await fetch(`${apiUrl}${path}`, {
35
+ headers,
36
+ cache: "no-store",
37
+ });
38
+ if (res.status === 304) {
39
+ return {
40
+ notModified: true,
41
+ etag: res.headers.get("etag") ?? etag,
42
+ };
43
+ }
44
+ const data = await handleResponse(res);
45
+ return {
46
+ notModified: false,
47
+ data,
48
+ etag: res.headers.get("etag") ?? undefined,
49
+ };
50
+ }
51
+ return { post, get, getConditional };
52
+ }
@@ -0,0 +1,49 @@
1
+ export interface AscendKitAuthOptions {
2
+ publicKey?: string;
3
+ secretKey?: string;
4
+ apiUrl?: string;
5
+ /** Optional redirect path for waitlisted users in proxy social flows. */
6
+ waitlistRedirectPath?: string;
7
+ /** Optional redirect path for rejected users in proxy social flows. */
8
+ rejectedRedirectPath?: string;
9
+ }
10
+ export interface AuthConfig {
11
+ providers: string[];
12
+ features: {
13
+ emailVerification: boolean;
14
+ passwordReset: boolean;
15
+ waitlist: boolean;
16
+ requireUsername: boolean;
17
+ };
18
+ sessionDuration: string;
19
+ oauth: Record<string, {
20
+ clientId: string;
21
+ clientSecret?: string;
22
+ flowType: "proxy" | "direct";
23
+ }>;
24
+ branding: BrandingConfig;
25
+ }
26
+ export interface BrandingConfig {
27
+ showBadge: boolean;
28
+ }
29
+ export interface AscendKitUser {
30
+ id: string;
31
+ email: string | null;
32
+ name: string | null;
33
+ image: string | null;
34
+ emailVerified: boolean;
35
+ /** Present only when waitlist is enabled for the environment. */
36
+ waitlistStatus?: "pending" | "approved" | "rejected";
37
+ createdAt: string | null;
38
+ updatedAt: string | null;
39
+ }
40
+ export interface AscendKitSession {
41
+ id: string | null;
42
+ ip: string | null;
43
+ userAgent: string | null;
44
+ provider: string | null;
45
+ createdAt: string | null;
46
+ expiresAt: string | null;
47
+ isCurrent: boolean;
48
+ }
49
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE;QACR,iBAAiB,EAAE,OAAO,CAAC;QAC3B,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;QAClB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;KAC9B,CAAC,CAAC;IACH,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,iEAAiE;IACjE,cAAc,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IACrD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@ascendkit/nextjs",
3
+ "version": "0.1.0",
4
+ "description": "AscendKit SDK for Next.js and React",
5
+ "author": "ascendkit.dev",
6
+ "license": "MIT",
7
+ "homepage": "https://ascendkit.dev",
8
+ "type": "module",
9
+ "files": ["dist"],
10
+ "main": "./dist/index.js",
11
+ "types": "./dist/index.d.ts",
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "keywords": ["ascendkit", "nextjs", "react", "b2b", "saas", "sdk"],
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./server": {
22
+ "types": "./dist/server/index.d.ts",
23
+ "default": "./dist/server/index.js"
24
+ },
25
+ "./client": {
26
+ "types": "./dist/client/index.d.ts",
27
+ "default": "./dist/client/index.js"
28
+ }
29
+ },
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "dev": "tsc --watch",
33
+ "typecheck": "tsc --noEmit"
34
+ },
35
+ "dependencies": {
36
+ "@daveyplate/better-auth-ui": "^3.3.15",
37
+ "better-auth": "^1.0.0",
38
+ "better-call": "^1.1.8"
39
+ },
40
+ "peerDependencies": {
41
+ "next": ">=14",
42
+ "react": ">=18",
43
+ "react-dom": ">=18"
44
+ },
45
+ "devDependencies": {
46
+ "@types/react": "^19",
47
+ "typescript": "^5"
48
+ }
49
+ }