better-auth-studio 1.0.79-beta.61 → 1.0.79-beta.63
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/adapters/astro.d.ts +22 -0
- package/dist/adapters/astro.d.ts.map +1 -0
- package/dist/adapters/astro.js +95 -0
- package/dist/adapters/astro.js.map +1 -0
- package/dist/adapters/remix.d.ts +26 -0
- package/dist/adapters/remix.d.ts.map +1 -0
- package/dist/adapters/remix.js +98 -0
- package/dist/adapters/remix.js.map +1 -0
- package/dist/cli.js +0 -0
- package/package.json +30 -33
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { StudioConfig } from '../types/handler.js';
|
|
2
|
+
/**
|
|
3
|
+
* Astro adapter for Better Auth Studio
|
|
4
|
+
*
|
|
5
|
+
* Usage in a catch-all API route:
|
|
6
|
+
* ```ts
|
|
7
|
+
* // pages/api/studio/[...all].ts
|
|
8
|
+
* import { betterAuthStudio } from 'better-auth-studio/astro';
|
|
9
|
+
* import studioConfig from '../../../../studio.config';
|
|
10
|
+
* import type { APIRoute } from 'astro';
|
|
11
|
+
*
|
|
12
|
+
* const handler = betterAuthStudio(studioConfig);
|
|
13
|
+
*
|
|
14
|
+
* export const ALL: APIRoute = async (ctx) => {
|
|
15
|
+
* return handler(ctx);
|
|
16
|
+
* };
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function betterAuthStudio(config: StudioConfig): (ctx: {
|
|
20
|
+
request: Request;
|
|
21
|
+
}) => Promise<Response>;
|
|
22
|
+
//# sourceMappingURL=astro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../../src/adapters/astro.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAuC,MAAM,qBAAqB,CAAC;AAE7F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,IACrC,KAAK;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAG,OAAO,CAAC,QAAQ,CAAC,CAa5D"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { handleStudioRequest } from '../core/handler.js';
|
|
2
|
+
/**
|
|
3
|
+
* Astro adapter for Better Auth Studio
|
|
4
|
+
*
|
|
5
|
+
* Usage in a catch-all API route:
|
|
6
|
+
* ```ts
|
|
7
|
+
* // pages/api/studio/[...all].ts
|
|
8
|
+
* import { betterAuthStudio } from 'better-auth-studio/astro';
|
|
9
|
+
* import studioConfig from '../../../../studio.config';
|
|
10
|
+
* import type { APIRoute } from 'astro';
|
|
11
|
+
*
|
|
12
|
+
* const handler = betterAuthStudio(studioConfig);
|
|
13
|
+
*
|
|
14
|
+
* export const ALL: APIRoute = async (ctx) => {
|
|
15
|
+
* return handler(ctx);
|
|
16
|
+
* };
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export function betterAuthStudio(config) {
|
|
20
|
+
return async (ctx) => {
|
|
21
|
+
try {
|
|
22
|
+
const universalReq = await convertAstroToUniversal(ctx, config);
|
|
23
|
+
const universalRes = await handleStudioRequest(universalReq, config);
|
|
24
|
+
return universalToResponse(universalRes);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error('Studio handler error:', error);
|
|
28
|
+
return new Response(JSON.stringify({ error: 'Internal server error' }), {
|
|
29
|
+
status: 500,
|
|
30
|
+
headers: { 'Content-Type': 'application/json' },
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async function convertAstroToUniversal(ctx, config) {
|
|
36
|
+
const request = ctx.request;
|
|
37
|
+
let body;
|
|
38
|
+
const method = request.method;
|
|
39
|
+
if (method !== 'GET' && method !== 'HEAD') {
|
|
40
|
+
const contentType = request.headers.get('content-type') || '';
|
|
41
|
+
if (contentType.includes('application/json')) {
|
|
42
|
+
try {
|
|
43
|
+
body = await request.json();
|
|
44
|
+
}
|
|
45
|
+
catch { }
|
|
46
|
+
}
|
|
47
|
+
else if (contentType.includes('application/x-www-form-urlencoded') ||
|
|
48
|
+
contentType.includes('multipart/form-data')) {
|
|
49
|
+
try {
|
|
50
|
+
const formData = await request.formData();
|
|
51
|
+
body = Object.fromEntries(formData.entries());
|
|
52
|
+
}
|
|
53
|
+
catch { }
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
try {
|
|
57
|
+
const text = await request.text();
|
|
58
|
+
if (text && text.trim()) {
|
|
59
|
+
try {
|
|
60
|
+
body = JSON.parse(text);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
body = text;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch { }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const headers = {};
|
|
71
|
+
request.headers.forEach((value, key) => {
|
|
72
|
+
headers[key] = value;
|
|
73
|
+
});
|
|
74
|
+
const basePath = config.basePath || '/api/studio';
|
|
75
|
+
const normalizedBasePath = basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;
|
|
76
|
+
const url = new URL(request.url);
|
|
77
|
+
let path = url.pathname;
|
|
78
|
+
if (path.startsWith(normalizedBasePath)) {
|
|
79
|
+
path = path.slice(normalizedBasePath.length) || '/';
|
|
80
|
+
}
|
|
81
|
+
const pathWithQuery = path + url.search;
|
|
82
|
+
return {
|
|
83
|
+
url: pathWithQuery,
|
|
84
|
+
method: method,
|
|
85
|
+
headers,
|
|
86
|
+
body,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function universalToResponse(res) {
|
|
90
|
+
return new Response(res.body, {
|
|
91
|
+
status: res.status,
|
|
92
|
+
headers: res.headers,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=astro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"astro.js","sourceRoot":"","sources":["../../src/adapters/astro.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { StudioConfig } from '../types/handler.js';
|
|
2
|
+
/**
|
|
3
|
+
* Remix adapter for Better Auth Studio
|
|
4
|
+
*
|
|
5
|
+
* Usage in a resource route:
|
|
6
|
+
* ```ts
|
|
7
|
+
* // app/routes/api.studio.$.ts
|
|
8
|
+
* import { betterAuthStudio } from 'better-auth-studio/remix';
|
|
9
|
+
* import studioConfig from '~/studio.config';
|
|
10
|
+
* import type { LoaderFunctionArgs, ActionFunctionArgs } from '@remix-run/node';
|
|
11
|
+
*
|
|
12
|
+
* const handler = betterAuthStudio(studioConfig);
|
|
13
|
+
*
|
|
14
|
+
* export async function loader({ request }: LoaderFunctionArgs) {
|
|
15
|
+
* return handler({ request });
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* export async function action({ request }: ActionFunctionArgs) {
|
|
19
|
+
* return handler({ request });
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function betterAuthStudio(config: StudioConfig): ({ request }: {
|
|
24
|
+
request: Request;
|
|
25
|
+
}) => Promise<Response>;
|
|
26
|
+
//# sourceMappingURL=remix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remix.d.ts","sourceRoot":"","sources":["../../src/adapters/remix.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAuC,MAAM,qBAAqB,CAAC;AAE7F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,IACrC,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAG,OAAO,CAAC,QAAQ,CAAC,CAapE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { handleStudioRequest } from '../core/handler.js';
|
|
2
|
+
/**
|
|
3
|
+
* Remix adapter for Better Auth Studio
|
|
4
|
+
*
|
|
5
|
+
* Usage in a resource route:
|
|
6
|
+
* ```ts
|
|
7
|
+
* // app/routes/api.studio.$.ts
|
|
8
|
+
* import { betterAuthStudio } from 'better-auth-studio/remix';
|
|
9
|
+
* import studioConfig from '~/studio.config';
|
|
10
|
+
* import type { LoaderFunctionArgs, ActionFunctionArgs } from '@remix-run/node';
|
|
11
|
+
*
|
|
12
|
+
* const handler = betterAuthStudio(studioConfig);
|
|
13
|
+
*
|
|
14
|
+
* export async function loader({ request }: LoaderFunctionArgs) {
|
|
15
|
+
* return handler({ request });
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* export async function action({ request }: ActionFunctionArgs) {
|
|
19
|
+
* return handler({ request });
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function betterAuthStudio(config) {
|
|
24
|
+
return async ({ request }) => {
|
|
25
|
+
try {
|
|
26
|
+
const universalReq = await convertRemixToUniversal({ request }, config);
|
|
27
|
+
const universalRes = await handleStudioRequest(universalReq, config);
|
|
28
|
+
return universalToResponse(universalRes);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error('Studio handler error:', error);
|
|
32
|
+
return new Response(JSON.stringify({ error: 'Internal server error' }), {
|
|
33
|
+
status: 500,
|
|
34
|
+
headers: { 'Content-Type': 'application/json' },
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async function convertRemixToUniversal({ request }, config) {
|
|
40
|
+
let body;
|
|
41
|
+
const method = request.method;
|
|
42
|
+
if (method !== 'GET' && method !== 'HEAD') {
|
|
43
|
+
const contentType = request.headers.get('content-type') || '';
|
|
44
|
+
if (contentType.includes('application/json')) {
|
|
45
|
+
try {
|
|
46
|
+
body = await request.json();
|
|
47
|
+
}
|
|
48
|
+
catch { }
|
|
49
|
+
}
|
|
50
|
+
else if (contentType.includes('application/x-www-form-urlencoded') ||
|
|
51
|
+
contentType.includes('multipart/form-data')) {
|
|
52
|
+
try {
|
|
53
|
+
const formData = await request.formData();
|
|
54
|
+
body = Object.fromEntries(formData.entries());
|
|
55
|
+
}
|
|
56
|
+
catch { }
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
try {
|
|
60
|
+
const text = await request.text();
|
|
61
|
+
if (text && text.trim()) {
|
|
62
|
+
try {
|
|
63
|
+
body = JSON.parse(text);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
body = text;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch { }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const headers = {};
|
|
74
|
+
request.headers.forEach((value, key) => {
|
|
75
|
+
headers[key] = value;
|
|
76
|
+
});
|
|
77
|
+
const basePath = config.basePath || '/api/studio';
|
|
78
|
+
const normalizedBasePath = basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;
|
|
79
|
+
const url = new URL(request.url);
|
|
80
|
+
let path = url.pathname;
|
|
81
|
+
if (path.startsWith(normalizedBasePath)) {
|
|
82
|
+
path = path.slice(normalizedBasePath.length) || '/';
|
|
83
|
+
}
|
|
84
|
+
const pathWithQuery = path + url.search;
|
|
85
|
+
return {
|
|
86
|
+
url: pathWithQuery,
|
|
87
|
+
method: method,
|
|
88
|
+
headers,
|
|
89
|
+
body,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function universalToResponse(res) {
|
|
93
|
+
return new Response(res.body, {
|
|
94
|
+
status: res.status,
|
|
95
|
+
headers: res.headers,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=remix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remix.js","sourceRoot":"","sources":["../../src/adapters/remix.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "better-auth-studio",
|
|
3
|
-
"version": "1.0.79-beta.
|
|
3
|
+
"version": "1.0.79-beta.63",
|
|
4
4
|
"description": "Studio for Better Auth",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -16,34 +16,10 @@
|
|
|
16
16
|
"./svelte-kit": "./dist/adapters/svelte-kit.js",
|
|
17
17
|
"./solid-start": "./dist/adapters/solid-start.js",
|
|
18
18
|
"./tanstack-start": "./dist/adapters/tanstack-start.js",
|
|
19
|
+
"./astro": "./dist/adapters/astro.js",
|
|
20
|
+
"./remix": "./dist/adapters/remix.js",
|
|
19
21
|
"./config": "./dist/types/handler.js"
|
|
20
22
|
},
|
|
21
|
-
"scripts": {
|
|
22
|
-
"build": "tsc && pnpm run frontend:build && pnpm run copy:public && pnpm run verify:public",
|
|
23
|
-
"copy:public": "rm -rf dist/public && cp -r public dist/",
|
|
24
|
-
"verify:public": "test -f dist/public/index.html && echo '✓ Public directory copied successfully' || (echo '✗ ERROR: Public directory not copied!' && exit 1)",
|
|
25
|
-
"postinstall": "node scripts/postinstall.js",
|
|
26
|
-
"dev": "tsx src/cli.ts",
|
|
27
|
-
"start": "node dist/cli.js",
|
|
28
|
-
"studio": "tsx src/cli.ts",
|
|
29
|
-
"clean": "rm -rf dist",
|
|
30
|
-
"frontend:dev": "cd frontend && pnpm run dev",
|
|
31
|
-
"frontend:build": "cd frontend && pnpm run build",
|
|
32
|
-
"frontend:preview": "cd frontend && pnpm run preview",
|
|
33
|
-
"lint": "biome check . --max-diagnostics=1000",
|
|
34
|
-
"lint:fix": "biome check --write .",
|
|
35
|
-
"format": "biome format --write .",
|
|
36
|
-
"type-check": "tsc --noEmit",
|
|
37
|
-
"test": "vitest",
|
|
38
|
-
"test:watch": "vitest --watch",
|
|
39
|
-
"test:coverage": "vitest --coverage",
|
|
40
|
-
"test:ci": "pnpm test --run",
|
|
41
|
-
"release": "pnpm build && bumpp && pnpm publish --access public --no-git-checks",
|
|
42
|
-
"release:beta": "pnpm build && bumpp --preid beta && pnpm publish --access public --tag beta --no-git-checks",
|
|
43
|
-
"release:no-build": "bumpp && pnpm publish --access public --no-git-checks --tag next",
|
|
44
|
-
"release:canary": "pnpm build && bumpp --preid canary --no-commit --no-tag --no-push && pnpm publish --access public --tag canary --no-git-checks",
|
|
45
|
-
"bump": "bumpp"
|
|
46
|
-
},
|
|
47
23
|
"keywords": [
|
|
48
24
|
"better-auth",
|
|
49
25
|
"studio",
|
|
@@ -92,16 +68,37 @@
|
|
|
92
68
|
"engines": {
|
|
93
69
|
"node": ">=18.0.0"
|
|
94
70
|
},
|
|
95
|
-
"pnpm": {
|
|
96
|
-
"overrides": {
|
|
97
|
-
"qs": ">=6.14.1"
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
71
|
"files": [
|
|
101
72
|
"dist/",
|
|
102
73
|
"public/",
|
|
103
74
|
"data/default-geo.json",
|
|
104
75
|
"scripts/",
|
|
105
76
|
"README.md"
|
|
106
|
-
]
|
|
77
|
+
],
|
|
78
|
+
"scripts": {
|
|
79
|
+
"build": "tsc && pnpm run frontend:build && pnpm run copy:public && pnpm run verify:public",
|
|
80
|
+
"copy:public": "rm -rf dist/public && cp -r public dist/",
|
|
81
|
+
"verify:public": "test -f dist/public/index.html && echo '✓ Public directory copied successfully' || (echo '✗ ERROR: Public directory not copied!' && exit 1)",
|
|
82
|
+
"postinstall": "node scripts/postinstall.js",
|
|
83
|
+
"dev": "tsx src/cli.ts",
|
|
84
|
+
"start": "node dist/cli.js",
|
|
85
|
+
"studio": "tsx src/cli.ts",
|
|
86
|
+
"clean": "rm -rf dist",
|
|
87
|
+
"frontend:dev": "cd frontend && pnpm run dev",
|
|
88
|
+
"frontend:build": "cd frontend && pnpm run build",
|
|
89
|
+
"frontend:preview": "cd frontend && pnpm run preview",
|
|
90
|
+
"lint": "biome check . --max-diagnostics=1000",
|
|
91
|
+
"lint:fix": "biome check --write .",
|
|
92
|
+
"format": "biome format --write .",
|
|
93
|
+
"type-check": "tsc --noEmit",
|
|
94
|
+
"test": "vitest",
|
|
95
|
+
"test:watch": "vitest --watch",
|
|
96
|
+
"test:coverage": "vitest --coverage",
|
|
97
|
+
"test:ci": "pnpm test --run",
|
|
98
|
+
"release": "pnpm build && bumpp && pnpm publish --access public --no-git-checks",
|
|
99
|
+
"release:beta": "pnpm build && bumpp --preid beta && pnpm publish --access public --tag beta --no-git-checks",
|
|
100
|
+
"release:no-build": "bumpp && pnpm publish --access public --no-git-checks --tag next",
|
|
101
|
+
"release:canary": "pnpm build && bumpp --preid canary --no-commit --no-tag --no-push && pnpm publish --access public --tag canary --no-git-checks",
|
|
102
|
+
"bump": "bumpp"
|
|
103
|
+
}
|
|
107
104
|
}
|