@dbx-tools/shared-auth 0.6.91
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 +20 -0
- package/index.ts +8 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +7 -0
- package/lib/src/auth.d.ts +37 -0
- package/lib/src/auth.js +33 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/package.json +64 -0
- package/src/auth.ts +44 -0
package/README.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# `@dbx-tools/shared-auth`
|
|
2
|
+
|
|
3
|
+
Browser-safe schemas and types for the dbx-tools passwordless authentication
|
|
4
|
+
gate.
|
|
5
|
+
|
|
6
|
+
Key features:
|
|
7
|
+
|
|
8
|
+
- compatibility schemas for email OTP request and verification routes;
|
|
9
|
+
- gate status with optional passkey capability;
|
|
10
|
+
- one shared session-cookie name for Node transports and browser clients.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { authStatusSchema } from "@dbx-tools/shared-auth";
|
|
14
|
+
|
|
15
|
+
const status = authStatusSchema.parse(await response.json());
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Modules
|
|
19
|
+
|
|
20
|
+
- `auth` - passwordless gate wire schemas and types.
|
package/index.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// GENERATED by projen watch - DO NOT EDIT.
|
|
2
|
+
// Regenerated from the exporting modules in ./src.
|
|
3
|
+
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
|
+
|
|
5
|
+
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-auth";
|
|
6
|
+
export * as auth from "./src/auth.ts";
|
|
7
|
+
export { SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authStatusSchema } from "./src/auth.ts";
|
|
8
|
+
export type { AuthRequest, AuthRequestResult, AuthVerify, AuthVerifyResult, AuthStatus } from "./src/auth.ts";
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-auth";
|
|
2
|
+
export * as auth from "./src/auth.ts";
|
|
3
|
+
export { SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authStatusSchema } from "./src/auth.ts";
|
|
4
|
+
export type { AuthRequest, AuthRequestResult, AuthVerify, AuthVerifyResult, AuthStatus } from "./src/auth.ts";
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// GENERATED by projen watch - DO NOT EDIT.
|
|
2
|
+
// Regenerated from the exporting modules in ./src.
|
|
3
|
+
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
|
+
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-auth";
|
|
5
|
+
export * as auth from "./src/auth.js";
|
|
6
|
+
export { SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authStatusSchema } from "./src/auth.js";
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1hdXRoXCI7XG5leHBvcnQgKiBhcyBhdXRoIGZyb20gXCIuL3NyYy9hdXRoLnRzXCI7XG5leHBvcnQgeyBTRVNTSU9OX0NPT0tJRV9OQU1FLCBhdXRoUmVxdWVzdFNjaGVtYSwgYXV0aFJlcXVlc3RSZXN1bHRTY2hlbWEsIGF1dGhWZXJpZnlTY2hlbWEsIGF1dGhWZXJpZnlSZXN1bHRTY2hlbWEsIGF1dGhTdGF0dXNTY2hlbWEgfSBmcm9tIFwiLi9zcmMvYXV0aC50c1wiO1xuZXhwb3J0IHR5cGUgeyBBdXRoUmVxdWVzdCwgQXV0aFJlcXVlc3RSZXN1bHQsIEF1dGhWZXJpZnksIEF1dGhWZXJpZnlSZXN1bHQsIEF1dGhTdGF0dXMgfSBmcm9tIFwiLi9zcmMvYXV0aC50c1wiO1xuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe passwordless authentication wire contracts.
|
|
3
|
+
*
|
|
4
|
+
* Better Auth owns its native endpoint payloads. These schemas cover the
|
|
5
|
+
* dbx-tools compatibility and gate-status surface shared by tunnel transports
|
|
6
|
+
* and React hosts.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
export declare const SESSION_COOKIE_NAME = "dbx-tools-auth";
|
|
12
|
+
export declare const authRequestSchema: z.ZodObject<{
|
|
13
|
+
email: z.ZodString;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type AuthRequest = z.infer<typeof authRequestSchema>;
|
|
16
|
+
export declare const authRequestResultSchema: z.ZodObject<{
|
|
17
|
+
ok: z.ZodLiteral<true>;
|
|
18
|
+
retryAfter: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export type AuthRequestResult = z.infer<typeof authRequestResultSchema>;
|
|
21
|
+
export declare const authVerifySchema: z.ZodObject<{
|
|
22
|
+
email: z.ZodString;
|
|
23
|
+
code: z.ZodString;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export type AuthVerify = z.infer<typeof authVerifySchema>;
|
|
26
|
+
export declare const authVerifyResultSchema: z.ZodObject<{
|
|
27
|
+
ok: z.ZodBoolean;
|
|
28
|
+
retryAfter: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type AuthVerifyResult = z.infer<typeof authVerifyResultSchema>;
|
|
31
|
+
export declare const authStatusSchema: z.ZodObject<{
|
|
32
|
+
authenticated: z.ZodBoolean;
|
|
33
|
+
email: z.ZodOptional<z.ZodString>;
|
|
34
|
+
enabled: z.ZodBoolean;
|
|
35
|
+
passkeysEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
export type AuthStatus = z.infer<typeof authStatusSchema>;
|
package/lib/src/auth.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe passwordless authentication wire contracts.
|
|
3
|
+
*
|
|
4
|
+
* Better Auth owns its native endpoint payloads. These schemas cover the
|
|
5
|
+
* dbx-tools compatibility and gate-status surface shared by tunnel transports
|
|
6
|
+
* and React hosts.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
export const SESSION_COOKIE_NAME = "dbx-tools-auth";
|
|
12
|
+
export const authRequestSchema = z.object({
|
|
13
|
+
email: z.string().describe("Address to email a one-time code to, if it is authorized."),
|
|
14
|
+
});
|
|
15
|
+
export const authRequestResultSchema = z.object({
|
|
16
|
+
ok: z.literal(true),
|
|
17
|
+
retryAfter: z.number().optional(),
|
|
18
|
+
});
|
|
19
|
+
export const authVerifySchema = z.object({
|
|
20
|
+
email: z.string(),
|
|
21
|
+
code: z.string(),
|
|
22
|
+
});
|
|
23
|
+
export const authVerifyResultSchema = z.object({
|
|
24
|
+
ok: z.boolean(),
|
|
25
|
+
retryAfter: z.number().optional(),
|
|
26
|
+
});
|
|
27
|
+
export const authStatusSchema = z.object({
|
|
28
|
+
authenticated: z.boolean(),
|
|
29
|
+
email: z.string().optional(),
|
|
30
|
+
enabled: z.boolean(),
|
|
31
|
+
passkeysEnabled: z.boolean().optional(),
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLDJEQUEyRCxDQUFDO0NBQ3hGLENBQUMsQ0FBQztBQUdILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDOUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ25CLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUdILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDakIsQ0FBQyxDQUFDO0FBR0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNmLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUdILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsYUFBYSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDMUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDcEIsZUFBZSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDeEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyLXNhZmUgcGFzc3dvcmRsZXNzIGF1dGhlbnRpY2F0aW9uIHdpcmUgY29udHJhY3RzLlxuICpcbiAqIEJldHRlciBBdXRoIG93bnMgaXRzIG5hdGl2ZSBlbmRwb2ludCBwYXlsb2Fkcy4gVGhlc2Ugc2NoZW1hcyBjb3ZlciB0aGVcbiAqIGRieC10b29scyBjb21wYXRpYmlsaXR5IGFuZCBnYXRlLXN0YXR1cyBzdXJmYWNlIHNoYXJlZCBieSB0dW5uZWwgdHJhbnNwb3J0c1xuICogYW5kIFJlYWN0IGhvc3RzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5leHBvcnQgY29uc3QgU0VTU0lPTl9DT09LSUVfTkFNRSA9IFwiZGJ4LXRvb2xzLWF1dGhcIjtcblxuZXhwb3J0IGNvbnN0IGF1dGhSZXF1ZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICBlbWFpbDogei5zdHJpbmcoKS5kZXNjcmliZShcIkFkZHJlc3MgdG8gZW1haWwgYSBvbmUtdGltZSBjb2RlIHRvLCBpZiBpdCBpcyBhdXRob3JpemVkLlwiKSxcbn0pO1xuZXhwb3J0IHR5cGUgQXV0aFJlcXVlc3QgPSB6LmluZmVyPHR5cGVvZiBhdXRoUmVxdWVzdFNjaGVtYT47XG5cbmV4cG9ydCBjb25zdCBhdXRoUmVxdWVzdFJlc3VsdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgb2s6IHoubGl0ZXJhbCh0cnVlKSxcbiAgcmV0cnlBZnRlcjogei5udW1iZXIoKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBBdXRoUmVxdWVzdFJlc3VsdCA9IHouaW5mZXI8dHlwZW9mIGF1dGhSZXF1ZXN0UmVzdWx0U2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IGF1dGhWZXJpZnlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGVtYWlsOiB6LnN0cmluZygpLFxuICBjb2RlOiB6LnN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBBdXRoVmVyaWZ5ID0gei5pbmZlcjx0eXBlb2YgYXV0aFZlcmlmeVNjaGVtYT47XG5cbmV4cG9ydCBjb25zdCBhdXRoVmVyaWZ5UmVzdWx0U2NoZW1hID0gei5vYmplY3Qoe1xuICBvazogei5ib29sZWFuKCksXG4gIHJldHJ5QWZ0ZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgQXV0aFZlcmlmeVJlc3VsdCA9IHouaW5mZXI8dHlwZW9mIGF1dGhWZXJpZnlSZXN1bHRTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgYXV0aFN0YXR1c1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgYXV0aGVudGljYXRlZDogei5ib29sZWFuKCksXG4gIGVtYWlsOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGVuYWJsZWQ6IHouYm9vbGVhbigpLFxuICBwYXNza2V5c0VuYWJsZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEF1dGhTdGF0dXMgPSB6LmluZmVyPHR5cGVvZiBhdXRoU3RhdHVzU2NoZW1hPjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/auth.ts","../index.ts"],"version":"5.9.3"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dbx-tools/shared-auth",
|
|
3
|
+
"repository": {
|
|
4
|
+
"type": "git",
|
|
5
|
+
"url": "git+https://github.com/reggie-db/dbx-tools.git",
|
|
6
|
+
"directory": "packages/js/shared/auth"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "projen build",
|
|
10
|
+
"compile": "projen compile",
|
|
11
|
+
"default": "projen default",
|
|
12
|
+
"package": "projen package",
|
|
13
|
+
"post-compile": "projen post-compile",
|
|
14
|
+
"pre-compile": "projen pre-compile",
|
|
15
|
+
"prepack": "projen prepack",
|
|
16
|
+
"test": "projen test",
|
|
17
|
+
"watch": "projen watch",
|
|
18
|
+
"projen": "projen"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@types/bun": "^1.3.14",
|
|
22
|
+
"@types/node": "^24.6.0",
|
|
23
|
+
"typescript": "^5.9.3"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@dbx-tools/shared-core": "0.6.91",
|
|
27
|
+
"zod": "4.3.6"
|
|
28
|
+
},
|
|
29
|
+
"main": "./lib/index.js",
|
|
30
|
+
"license": "UNLICENSED",
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public",
|
|
33
|
+
"main": "./lib/index.js",
|
|
34
|
+
"types": "./lib/index.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"types": "./lib/index.d.ts",
|
|
38
|
+
"default": "./lib/index.js"
|
|
39
|
+
},
|
|
40
|
+
"./package.json": "./package.json"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"version": "0.6.91",
|
|
44
|
+
"types": "./lib/index.d.ts",
|
|
45
|
+
"type": "module",
|
|
46
|
+
"exports": {
|
|
47
|
+
".": {
|
|
48
|
+
"types": "./lib/index.d.ts",
|
|
49
|
+
"default": "./lib/index.js"
|
|
50
|
+
},
|
|
51
|
+
"./package.json": "./package.json"
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"index.ts",
|
|
55
|
+
"src",
|
|
56
|
+
"lib"
|
|
57
|
+
],
|
|
58
|
+
"dbxToolsConfig": {
|
|
59
|
+
"tags": [
|
|
60
|
+
"shared"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"bunx projen\"."
|
|
64
|
+
}
|
package/src/auth.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe passwordless authentication wire contracts.
|
|
3
|
+
*
|
|
4
|
+
* Better Auth owns its native endpoint payloads. These schemas cover the
|
|
5
|
+
* dbx-tools compatibility and gate-status surface shared by tunnel transports
|
|
6
|
+
* and React hosts.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
|
|
13
|
+
export const SESSION_COOKIE_NAME = "dbx-tools-auth";
|
|
14
|
+
|
|
15
|
+
export const authRequestSchema = z.object({
|
|
16
|
+
email: z.string().describe("Address to email a one-time code to, if it is authorized."),
|
|
17
|
+
});
|
|
18
|
+
export type AuthRequest = z.infer<typeof authRequestSchema>;
|
|
19
|
+
|
|
20
|
+
export const authRequestResultSchema = z.object({
|
|
21
|
+
ok: z.literal(true),
|
|
22
|
+
retryAfter: z.number().optional(),
|
|
23
|
+
});
|
|
24
|
+
export type AuthRequestResult = z.infer<typeof authRequestResultSchema>;
|
|
25
|
+
|
|
26
|
+
export const authVerifySchema = z.object({
|
|
27
|
+
email: z.string(),
|
|
28
|
+
code: z.string(),
|
|
29
|
+
});
|
|
30
|
+
export type AuthVerify = z.infer<typeof authVerifySchema>;
|
|
31
|
+
|
|
32
|
+
export const authVerifyResultSchema = z.object({
|
|
33
|
+
ok: z.boolean(),
|
|
34
|
+
retryAfter: z.number().optional(),
|
|
35
|
+
});
|
|
36
|
+
export type AuthVerifyResult = z.infer<typeof authVerifyResultSchema>;
|
|
37
|
+
|
|
38
|
+
export const authStatusSchema = z.object({
|
|
39
|
+
authenticated: z.boolean(),
|
|
40
|
+
email: z.string().optional(),
|
|
41
|
+
enabled: z.boolean(),
|
|
42
|
+
passkeysEnabled: z.boolean().optional(),
|
|
43
|
+
});
|
|
44
|
+
export type AuthStatus = z.infer<typeof authStatusSchema>;
|