better-auth-studio 1.1.2-beta.2 → 1.1.2-beta.21
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/README.md +48 -78
- package/data/default-geo.json +1 -1
- package/dist/adapters/astro.d.ts +1 -1
- package/dist/adapters/astro.js +13 -13
- package/dist/adapters/elysia.d.ts +2 -2
- package/dist/adapters/elysia.js +13 -13
- package/dist/adapters/express.d.ts +2 -2
- package/dist/adapters/express.js +4 -4
- package/dist/adapters/hono.d.ts +2 -2
- package/dist/adapters/hono.js +12 -12
- package/dist/adapters/nextjs.d.ts +1 -1
- package/dist/adapters/nextjs.js +10 -10
- package/dist/adapters/nuxt.d.ts +1 -1
- package/dist/adapters/nuxt.js +22 -22
- package/dist/adapters/remix.d.ts +1 -1
- package/dist/adapters/remix.js +13 -13
- package/dist/adapters/solid-start.d.ts +1 -1
- package/dist/adapters/solid-start.js +13 -13
- package/dist/adapters/svelte-kit.d.ts +2 -2
- package/dist/adapters/svelte-kit.js +13 -13
- package/dist/adapters/tanstack-start.d.ts +1 -1
- package/dist/adapters/tanstack-start.js +13 -13
- package/dist/add-svelte-kit-env-modules.js +11 -11
- package/dist/auth-adapter.d.ts +1 -1
- package/dist/auth-adapter.js +96 -96
- package/dist/cli/commands/init.js +57 -57
- package/dist/cli.js +75 -75
- package/dist/config.d.ts +5 -5
- package/dist/config.js +37 -37
- package/dist/core/handler.d.ts +1 -1
- package/dist/core/handler.js +116 -115
- package/dist/core/handler.js.map +1 -1
- package/dist/data.d.ts +2 -2
- package/dist/data.js +60 -60
- package/dist/geo-service.js +78 -78
- package/dist/get-tsconfig-info.js +4 -4
- package/dist/index.d.ts +8 -8
- package/dist/index.js +6 -6
- package/dist/providers/events/helpers.d.ts +2 -2
- package/dist/providers/events/helpers.d.ts.map +1 -1
- package/dist/providers/events/helpers.js +178 -154
- package/dist/providers/events/helpers.js.map +1 -1
- package/dist/public/assets/{main-BDJUrMKx.js → main-BeCk6LUx.js} +133 -133
- package/dist/public/assets/main-w2bJSKlF.css +1 -0
- package/dist/public/index.html +2 -2
- package/dist/routes/api-router.d.ts +3 -1
- package/dist/routes/api-router.d.ts.map +1 -1
- package/dist/routes/api-router.js +3 -3
- package/dist/routes/api-router.js.map +1 -1
- package/dist/routes.d.ts +6 -4
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +1333 -1277
- package/dist/routes.js.map +1 -1
- package/dist/studio.d.ts +3 -3
- package/dist/studio.d.ts.map +1 -1
- package/dist/studio.js +64 -65
- package/dist/studio.js.map +1 -1
- package/dist/types/events.d.ts +8 -7
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/events.js +165 -165
- package/dist/types/events.js.map +1 -1
- package/dist/types/handler.d.ts +14 -4
- package/dist/types/handler.d.ts.map +1 -1
- package/dist/types/handler.js.map +1 -1
- package/dist/utils/auth-callbacks-injector.d.ts +2 -2
- package/dist/utils/auth-callbacks-injector.js +27 -27
- package/dist/utils/auth-callbacks-wrapper.d.ts +3 -3
- package/dist/utils/auth-callbacks-wrapper.js +117 -107
- package/dist/utils/database-detection.d.ts +1 -1
- package/dist/utils/database-detection.js +44 -44
- package/dist/utils/database-hook-injector.d.ts +3 -3
- package/dist/utils/database-hook-injector.js +135 -131
- package/dist/utils/email-otp-hooks-injector.d.ts +28 -12
- package/dist/utils/email-otp-hooks-injector.js +104 -97
- package/dist/utils/event-ingestion.d.ts +5 -5
- package/dist/utils/event-ingestion.d.ts.map +1 -1
- package/dist/utils/event-ingestion.js +32 -12
- package/dist/utils/event-ingestion.js.map +1 -1
- package/dist/utils/hook-injector.d.ts +2 -2
- package/dist/utils/hook-injector.js +199 -199
- package/dist/utils/hook-injector.js.map +1 -1
- package/dist/utils/html-injector.d.ts +11 -2
- package/dist/utils/html-injector.d.ts.map +1 -1
- package/dist/utils/html-injector.js +40 -39
- package/dist/utils/html-injector.js.map +1 -1
- package/dist/utils/org-hooks-injector.d.ts +3 -3
- package/dist/utils/org-hooks-injector.js +63 -63
- package/dist/utils/org-hooks-wrapper.d.ts +41 -35
- package/dist/utils/org-hooks-wrapper.js +778 -658
- package/dist/utils/organization-hooks-wrapper.d.ts +23 -17
- package/dist/utils/organization-hooks-wrapper.js +325 -277
- package/dist/utils/package-json.js +11 -11
- package/dist/utils/paths.js +1 -1
- package/dist/utils/server-init.d.ts +1 -1
- package/dist/utils/server-init.js +25 -25
- package/dist/utils/session.d.ts +0 -1
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +19 -12
- package/dist/utils/session.js.map +1 -1
- package/dist/utils.js +24 -24
- package/package.json +56 -47
- package/public/assets/{main-BDJUrMKx.js → main-BeCk6LUx.js} +133 -133
- package/public/assets/main-w2bJSKlF.css +1 -0
- package/public/index.html +2 -2
- package/scripts/download-geolite2.js +8 -8
- package/scripts/generate-default-db.js +324 -324
- package/scripts/postinstall.js +25 -25
- package/dist/public/assets/main-CBA9bZ-w.css +0 -1
- package/public/assets/main-CBA9bZ-w.css +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from
|
|
2
|
-
import { createRequire } from
|
|
3
|
-
import { dirname, join, resolve } from
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
4
|
/**
|
|
5
5
|
* Find the project root by looking for package.json files up the directory tree
|
|
6
6
|
* @param startDir - Directory to start searching from
|
|
@@ -8,9 +8,9 @@ import { dirname, join, resolve } from 'node:path';
|
|
|
8
8
|
*/
|
|
9
9
|
function findProjectRoot(startDir) {
|
|
10
10
|
let currentDir = resolve(startDir);
|
|
11
|
-
const root = resolve(
|
|
11
|
+
const root = resolve("/");
|
|
12
12
|
while (currentDir !== root) {
|
|
13
|
-
const packageJsonPath = join(currentDir,
|
|
13
|
+
const packageJsonPath = join(currentDir, "package.json");
|
|
14
14
|
if (existsSync(packageJsonPath)) {
|
|
15
15
|
return currentDir;
|
|
16
16
|
}
|
|
@@ -28,17 +28,17 @@ export async function getPackageVersion(packageName, cwd) {
|
|
|
28
28
|
const searchDir = cwd || process.cwd();
|
|
29
29
|
try {
|
|
30
30
|
const projectRoot = findProjectRoot(searchDir);
|
|
31
|
-
const packageJsonPath = join(searchDir,
|
|
31
|
+
const packageJsonPath = join(searchDir, "package.json");
|
|
32
32
|
if (existsSync(packageJsonPath)) {
|
|
33
|
-
const packageJson = JSON.parse(readFileSync(packageJsonPath,
|
|
33
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
34
34
|
if (packageJson.dependencies?.[packageName]) {
|
|
35
|
-
return packageJson.dependencies[packageName].replace(/[\^~]/,
|
|
35
|
+
return packageJson.dependencies[packageName].replace(/[\^~]/, "");
|
|
36
36
|
}
|
|
37
37
|
if (packageJson.devDependencies?.[packageName]) {
|
|
38
|
-
return packageJson.devDependencies[packageName].replace(/[\^~]/,
|
|
38
|
+
return packageJson.devDependencies[packageName].replace(/[\^~]/, "");
|
|
39
39
|
}
|
|
40
40
|
if (packageJson.peerDependencies?.[packageName]) {
|
|
41
|
-
return packageJson.peerDependencies[packageName].replace(/[\^~]/,
|
|
41
|
+
return packageJson.peerDependencies[packageName].replace(/[\^~]/, "");
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
try {
|
|
@@ -47,7 +47,7 @@ export async function getPackageVersion(packageName, cwd) {
|
|
|
47
47
|
paths: [projectRoot],
|
|
48
48
|
});
|
|
49
49
|
if (existsSync(packagePath)) {
|
|
50
|
-
const packageJson = JSON.parse(readFileSync(packagePath,
|
|
50
|
+
const packageJson = JSON.parse(readFileSync(packagePath, "utf-8"));
|
|
51
51
|
return packageJson.version;
|
|
52
52
|
}
|
|
53
53
|
}
|
package/dist/utils/paths.js
CHANGED
|
@@ -8,33 +8,33 @@ let initializationAttempted = false;
|
|
|
8
8
|
* This should be called at server startup, before any auth requests
|
|
9
9
|
*/
|
|
10
10
|
export function initializeOnServerStart(baseUrl, basePath) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
console.log("PINGGEDD");
|
|
12
|
+
if (initializationAttempted) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
initializationAttempted = true;
|
|
16
|
+
// Use setImmediate to ensure this runs after the event loop starts
|
|
17
|
+
// but before any requests are processed
|
|
18
|
+
setImmediate(async () => {
|
|
19
|
+
try {
|
|
20
|
+
const url =
|
|
21
|
+
baseUrl || process.env.BETTER_AUTH_URL || process.env.AUTH_URL || "http://localhost:3000";
|
|
22
|
+
const path = basePath || process.env.BETTER_AUTH_STUDIO_PATH || "/api/studio";
|
|
23
|
+
const fullUrl = `${url}${path}`;
|
|
24
|
+
await fetch(fullUrl, {
|
|
25
|
+
method: "GET",
|
|
26
|
+
headers: { "user-agent": "better-auth-studio-server-init" },
|
|
27
|
+
}).catch(() => {
|
|
28
|
+
// Silently fail - initialization will happen on first real request
|
|
29
|
+
});
|
|
30
|
+
} catch (error) {
|
|
31
|
+
// Silently fail - initialization will happen on first real request
|
|
14
32
|
}
|
|
15
|
-
|
|
16
|
-
// Use setImmediate to ensure this runs after the event loop starts
|
|
17
|
-
// but before any requests are processed
|
|
18
|
-
setImmediate(async () => {
|
|
19
|
-
try {
|
|
20
|
-
const url = baseUrl || process.env.BETTER_AUTH_URL || process.env.AUTH_URL || 'http://localhost:3000';
|
|
21
|
-
const path = basePath || process.env.BETTER_AUTH_STUDIO_PATH || '/api/studio';
|
|
22
|
-
const fullUrl = `${url}${path}`;
|
|
23
|
-
await fetch(fullUrl, {
|
|
24
|
-
method: 'GET',
|
|
25
|
-
headers: { 'user-agent': 'better-auth-studio-server-init' },
|
|
26
|
-
}).catch(() => {
|
|
27
|
-
// Silently fail - initialization will happen on first real request
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
// Silently fail - initialization will happen on first real request
|
|
32
|
-
}
|
|
33
|
-
});
|
|
33
|
+
});
|
|
34
34
|
}
|
|
35
35
|
// @ts-ignore
|
|
36
36
|
// Auto-initialize when module is imported (if in server environment)
|
|
37
|
-
if (typeof window ===
|
|
38
|
-
|
|
37
|
+
if (typeof window === "undefined" && typeof process !== "undefined") {
|
|
38
|
+
initializeOnServerStart();
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=server-init.js.map
|
|
40
|
+
//# sourceMappingURL=server-init.js.map
|
package/dist/utils/session.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAUD,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAW7E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAiBlF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAGrE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACjF,UAAU,GAAE,MAAgC,GAC3C,aAAa,CAoBf;AAED,eAAO,MAAM,kBAAkB,+BAA+B,CAAC"}
|
package/dist/utils/session.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { createCipheriv, createDecipheriv, createHmac, randomBytes } from
|
|
2
|
-
const ALGORITHM =
|
|
1
|
+
import { createCipheriv, createDecipheriv, createHmac, randomBytes } from "crypto";
|
|
2
|
+
const ALGORITHM = "aes-256-gcm";
|
|
3
3
|
const IV_LENGTH = 16;
|
|
4
4
|
const AUTH_TAG_LENGTH = 16;
|
|
5
5
|
function deriveKey(secret) {
|
|
6
|
-
return createHmac(
|
|
6
|
+
return createHmac("sha256", secret).update("studio-session-key").digest();
|
|
7
7
|
}
|
|
8
8
|
export function encryptSession(session, secret) {
|
|
9
9
|
const key = deriveKey(secret);
|
|
10
10
|
const iv = randomBytes(IV_LENGTH);
|
|
11
11
|
const cipher = createCipheriv(ALGORITHM, key, iv);
|
|
12
12
|
const data = JSON.stringify(session);
|
|
13
|
-
const encrypted = Buffer.concat([cipher.update(data,
|
|
13
|
+
const encrypted = Buffer.concat([cipher.update(data, "utf8"), cipher.final()]);
|
|
14
14
|
const authTag = cipher.getAuthTag();
|
|
15
15
|
const combined = Buffer.concat([iv, authTag, encrypted]);
|
|
16
|
-
return combined.toString(
|
|
16
|
+
return combined.toString("base64url");
|
|
17
17
|
}
|
|
18
18
|
export function decryptSession(token, secret) {
|
|
19
19
|
try {
|
|
20
20
|
const key = deriveKey(secret);
|
|
21
|
-
const combined = Buffer.from(token,
|
|
21
|
+
const combined = Buffer.from(token, "base64url");
|
|
22
22
|
const iv = combined.subarray(0, IV_LENGTH);
|
|
23
23
|
const authTag = combined.subarray(IV_LENGTH, IV_LENGTH + AUTH_TAG_LENGTH);
|
|
24
24
|
const encrypted = combined.subarray(IV_LENGTH + AUTH_TAG_LENGTH);
|
|
25
25
|
const decipher = createDecipheriv(ALGORITHM, key, iv);
|
|
26
26
|
decipher.setAuthTag(authTag);
|
|
27
27
|
const decrypted = Buffer.concat([decipher.update(encrypted), decipher.final()]);
|
|
28
|
-
return JSON.parse(decrypted.toString(
|
|
28
|
+
return JSON.parse(decrypted.toString("utf8"));
|
|
29
29
|
}
|
|
30
30
|
catch {
|
|
31
31
|
return null;
|
|
@@ -37,15 +37,22 @@ export function isSessionValid(session) {
|
|
|
37
37
|
return session.expiresAt > Date.now();
|
|
38
38
|
}
|
|
39
39
|
export function createStudioSession(user, durationMs = 7 * 24 * 60 * 60 * 1000) {
|
|
40
|
+
// Truncate fields to prevent cookie size issues (max 4096 chars for cookie)
|
|
41
|
+
// Remove image field as it can be large and is optional
|
|
42
|
+
// Truncate name and email to reasonable lengths
|
|
43
|
+
const maxNameLength = 100;
|
|
44
|
+
const maxEmailLength = 255;
|
|
40
45
|
return {
|
|
41
46
|
userId: user.id,
|
|
42
|
-
email: user.email,
|
|
43
|
-
name: user.name ||
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
email: user.email.length > maxEmailLength ? user.email.substring(0, maxEmailLength) : user.email,
|
|
48
|
+
name: (user.name || "").length > maxNameLength
|
|
49
|
+
? (user.name || "").substring(0, maxNameLength)
|
|
50
|
+
: user.name || "",
|
|
51
|
+
role: user.role || "user",
|
|
52
|
+
// Don't store image in session to reduce cookie size - it can be fetched from user data if needed
|
|
46
53
|
issuedAt: Date.now(),
|
|
47
54
|
expiresAt: Date.now() + durationMs,
|
|
48
55
|
};
|
|
49
56
|
}
|
|
50
|
-
export const STUDIO_COOKIE_NAME =
|
|
57
|
+
export const STUDIO_COOKIE_NAME = "better_auth_studio_session";
|
|
51
58
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAYnF,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAsB,EAAE,MAAc;IACnE,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAElD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,MAAc;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEjD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,eAAe,CAAC,CAAC;QAEjE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACtD,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA6B;IAC1D,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAiF,EACjF,aAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAE5C,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
export const possibleConfigFiles = [
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
2
|
+
"auth.ts",
|
|
3
|
+
"auth.js",
|
|
4
|
+
"app/auth.ts",
|
|
5
|
+
"app/auth.js",
|
|
6
|
+
"apps/auth.ts",
|
|
7
|
+
"apps/auth.js",
|
|
8
|
+
"server/auth.ts",
|
|
9
|
+
"server/auth.js",
|
|
10
|
+
"src/auth.ts",
|
|
11
|
+
"src/auth.js",
|
|
12
|
+
"lib/auth.ts",
|
|
13
|
+
"utils/auth.ts",
|
|
14
|
+
"utils/auth.js",
|
|
15
|
+
"utils/auth.server.ts",
|
|
16
|
+
"utils/auth.server.js",
|
|
17
|
+
"utils/lib/auth.ts",
|
|
18
|
+
"utils/lib/auth.js",
|
|
19
|
+
"utils/lib/auth.server.ts",
|
|
20
|
+
"utils/lib/auth.server.js",
|
|
21
|
+
"lib/auth.js",
|
|
22
|
+
"better-auth.config.ts",
|
|
23
|
+
"better-auth.config.js",
|
|
24
|
+
"auth.config.ts",
|
|
25
|
+
"auth.config.js",
|
|
26
26
|
];
|
|
27
27
|
//# sourceMappingURL=utils.js.map
|
package/package.json
CHANGED
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "better-auth-studio",
|
|
3
|
-
"version": "1.1.2-beta.
|
|
3
|
+
"version": "1.1.2-beta.21",
|
|
4
4
|
"description": "Studio for Better Auth",
|
|
5
|
-
"
|
|
6
|
-
|
|
5
|
+
"keywords": [
|
|
6
|
+
"admin",
|
|
7
|
+
"authentication",
|
|
8
|
+
"better-auth",
|
|
9
|
+
"dashboard",
|
|
10
|
+
"gui",
|
|
11
|
+
"studio"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"author": "kinfish",
|
|
7
15
|
"bin": {
|
|
8
16
|
"better-auth-studio": "./dist/cli.js"
|
|
9
17
|
},
|
|
18
|
+
"files": [
|
|
19
|
+
"README.md",
|
|
20
|
+
"data/default-geo.json",
|
|
21
|
+
"dist/",
|
|
22
|
+
"public/",
|
|
23
|
+
"scripts/"
|
|
24
|
+
],
|
|
25
|
+
"type": "module",
|
|
26
|
+
"main": "dist/index.js",
|
|
10
27
|
"exports": {
|
|
11
28
|
".": "./dist/index.js",
|
|
12
29
|
"./express": "./dist/adapters/express.js",
|
|
@@ -21,16 +38,32 @@
|
|
|
21
38
|
"./nuxt": "./dist/adapters/nuxt.js",
|
|
22
39
|
"./config": "./dist/types/handler.js"
|
|
23
40
|
},
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build": "tsc && pnpm run frontend:build && pnpm run copy:public && pnpm run verify:public",
|
|
43
|
+
"copy:public": "rm -rf dist/public && cp -r public dist/",
|
|
44
|
+
"verify:public": "test -f dist/public/index.html && echo '✓ Public directory copied successfully' || (echo '✗ ERROR: Public directory not copied!' && exit 1)",
|
|
45
|
+
"postinstall": "node scripts/postinstall.js",
|
|
46
|
+
"dev": "tsx src/cli.ts",
|
|
47
|
+
"start": "node dist/cli.js",
|
|
48
|
+
"studio": "tsx src/cli.ts",
|
|
49
|
+
"clean": "rm -rf dist",
|
|
50
|
+
"frontend:dev": "cd frontend && pnpm run dev",
|
|
51
|
+
"frontend:build": "cd frontend && pnpm run build",
|
|
52
|
+
"frontend:preview": "cd frontend && pnpm run preview",
|
|
53
|
+
"lint": "oxlint . && oxfmt --check .",
|
|
54
|
+
"format": "oxlint --fix . && oxfmt .",
|
|
55
|
+
"lint:fix": "oxlint --fix . && oxfmt .",
|
|
56
|
+
"type-check": "tsc --noEmit",
|
|
57
|
+
"test": "vitest",
|
|
58
|
+
"test:watch": "vitest --watch",
|
|
59
|
+
"test:coverage": "vitest --coverage",
|
|
60
|
+
"test:ci": "pnpm test --run",
|
|
61
|
+
"release": "pnpm build && bumpp && pnpm publish --access public --no-git-checks",
|
|
62
|
+
"release:beta": "pnpm build && bumpp --preid beta && pnpm publish --access public --tag beta --no-git-checks",
|
|
63
|
+
"release:no-build": "bumpp && pnpm publish --access public --no-git-checks --tag next",
|
|
64
|
+
"release:canary": "pnpm build && bumpp --preid canary --no-commit --no-tag --no-push && pnpm publish --access public --tag canary --no-git-checks",
|
|
65
|
+
"bump": "bumpp"
|
|
66
|
+
},
|
|
34
67
|
"dependencies": {
|
|
35
68
|
"@babel/preset-react": "^7.27.1",
|
|
36
69
|
"@babel/preset-typescript": "^7.27.1",
|
|
@@ -52,15 +85,16 @@
|
|
|
52
85
|
"jiti": "^2.5.1",
|
|
53
86
|
"maxmind": "^5.0.0",
|
|
54
87
|
"open": "^10.0.2",
|
|
88
|
+
"oxlint": "^1.41.0",
|
|
55
89
|
"ws": "^8.14.2"
|
|
56
90
|
},
|
|
57
91
|
"devDependencies": {
|
|
58
|
-
"@biomejs/biome": "^2.2.4",
|
|
59
92
|
"@types/cors": "^2.8.17",
|
|
60
93
|
"@types/express": "^4.17.21",
|
|
61
94
|
"@types/node": "^20.10.0",
|
|
62
95
|
"@types/supertest": "^6.0.2",
|
|
63
96
|
"@types/ws": "^8.5.10",
|
|
97
|
+
"oxfmt": "^0.26.0",
|
|
64
98
|
"supertest": "^7.1.4",
|
|
65
99
|
"tsx": "^4.6.0",
|
|
66
100
|
"typescript": "^5.3.2",
|
|
@@ -69,37 +103,12 @@
|
|
|
69
103
|
"engines": {
|
|
70
104
|
"node": ">=18.0.0"
|
|
71
105
|
},
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"scripts": {
|
|
80
|
-
"build": "tsc && pnpm run frontend:build && pnpm run copy:public && pnpm run verify:public",
|
|
81
|
-
"copy:public": "rm -rf dist/public && cp -r public dist/",
|
|
82
|
-
"verify:public": "test -f dist/public/index.html && echo '✓ Public directory copied successfully' || (echo '✗ ERROR: Public directory not copied!' && exit 1)",
|
|
83
|
-
"postinstall": "node scripts/postinstall.js",
|
|
84
|
-
"dev": "tsx src/cli.ts",
|
|
85
|
-
"start": "node dist/cli.js",
|
|
86
|
-
"studio": "tsx src/cli.ts",
|
|
87
|
-
"clean": "rm -rf dist",
|
|
88
|
-
"frontend:dev": "cd frontend && pnpm run dev",
|
|
89
|
-
"frontend:build": "cd frontend && pnpm run build",
|
|
90
|
-
"frontend:preview": "cd frontend && pnpm run preview",
|
|
91
|
-
"lint": "biome check . --max-diagnostics=1000",
|
|
92
|
-
"lint:fix": "biome check --write .",
|
|
93
|
-
"format": "biome format --write .",
|
|
94
|
-
"type-check": "tsc --noEmit",
|
|
95
|
-
"test": "vitest",
|
|
96
|
-
"test:watch": "vitest --watch",
|
|
97
|
-
"test:coverage": "vitest --coverage",
|
|
98
|
-
"test:ci": "pnpm test --run",
|
|
99
|
-
"release": "pnpm build && bumpp && pnpm publish --access public --no-git-checks",
|
|
100
|
-
"release:beta": "pnpm build && bumpp --preid beta && pnpm publish --access public --tag beta --no-git-checks",
|
|
101
|
-
"release:no-build": "bumpp && pnpm publish --access public --no-git-checks --tag next",
|
|
102
|
-
"release:canary": "pnpm build && bumpp --preid canary --no-commit --no-tag --no-push && pnpm publish --access public --tag canary --no-git-checks",
|
|
103
|
-
"bump": "bumpp"
|
|
106
|
+
"pnpm": {
|
|
107
|
+
"overrides": {
|
|
108
|
+
"qs": ">=6.14.1",
|
|
109
|
+
"@remix-run/router": ">=1.23.2",
|
|
110
|
+
"devalue": ">=5.6.2",
|
|
111
|
+
"@sveltejs/kit": ">=2.49.5"
|
|
112
|
+
}
|
|
104
113
|
}
|
|
105
|
-
}
|
|
114
|
+
}
|