@dbx-tools/shared-auth 0.9.40 → 0.9.46

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/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-auth";
6
- export const PACKAGE_VERSION = "0.9.40";
6
+ export const PACKAGE_VERSION = "0.9.46";
7
7
  export * as auth from "./src/auth.ts";
8
8
  export * as browser from "./src/browser.ts";
9
9
  export * as client from "./src/client.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-auth";
2
- export declare const PACKAGE_VERSION = "0.9.40";
2
+ export declare const PACKAGE_VERSION = "0.9.46";
3
3
  export * as auth from "./src/auth.ts";
4
4
  export * as browser from "./src/browser.ts";
5
5
  export * as client from "./src/client.ts";
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Regenerated from the exporting modules in ./src.
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-auth";
5
- export const PACKAGE_VERSION = "0.9.40";
5
+ export const PACKAGE_VERSION = "0.9.46";
6
6
  export * as auth from "./src/auth.js";
7
7
  export * as browser from "./src/browser.js";
8
8
  export * as client from "./src/client.js";
@@ -14,4 +14,4 @@ export { databricksAuthClientInfoSchema } from "./src/client.js";
14
14
  export { AuthType, TargetKind } from "./src/config.js";
15
15
  export { authTypeSchema, targetKindSchema } from "./src/config-schema.js";
16
16
  export { databricksProfileSummarySchema, databricksProfileListSchema, databricksProfileSelectionSchema } from "./src/profile.js";
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BNLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9zaGFyZWQtYXV0aFwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjQwXCI7XG5leHBvcnQgKiBhcyBhdXRoIGZyb20gXCIuL3NyYy9hdXRoLnRzXCI7XG5leHBvcnQgKiBhcyBicm93c2VyIGZyb20gXCIuL3NyYy9icm93c2VyLnRzXCI7XG5leHBvcnQgKiBhcyBjbGllbnQgZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZ1NjaGVtYSBmcm9tIFwiLi9zcmMvY29uZmlnLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgcHJvZmlsZSBmcm9tIFwiLi9zcmMvcHJvZmlsZS50c1wiO1xuZXhwb3J0IHsgQVVUSF9CQVNFX1BBVEgsIFNFU1NJT05fQ09PS0lFX05BTUUsIGF1dGhSZXF1ZXN0U2NoZW1hLCBhdXRoUmVxdWVzdFJlc3VsdFNjaGVtYSwgYXV0aFZlcmlmeVNjaGVtYSwgYXV0aFZlcmlmeVJlc3VsdFNjaGVtYSwgYXV0aExvZ291dFJlc3VsdFNjaGVtYSwgYXV0aFN0YXR1c1NjaGVtYSB9IGZyb20gXCIuL3NyYy9hdXRoLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF1dGhSZXF1ZXN0LCBBdXRoUmVxdWVzdFJlc3VsdCwgQXV0aFZlcmlmeSwgQXV0aFZlcmlmeVJlc3VsdCwgQXV0aExvZ291dFJlc3VsdCwgQXV0aFN0YXR1cyB9IGZyb20gXCIuL3NyYy9hdXRoLnRzXCI7XG5leHBvcnQgdHlwZSB7IFBhc3NrZXlPcGVyYXRpb24gfSBmcm9tIFwiLi9zcmMvYnJvd3Nlci50c1wiO1xuZXhwb3J0IHsgZGF0YWJyaWNrc0F1dGhDbGllbnRJbmZvU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzQXV0aENsaWVudEluZm8gfSBmcm9tIFwiLi9zcmMvY2xpZW50LnRzXCI7XG5leHBvcnQgeyBBdXRoVHlwZSwgVGFyZ2V0S2luZCB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IGF1dGhUeXBlU2NoZW1hLCB0YXJnZXRLaW5kU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy1zY2hlbWEudHNcIjtcbmV4cG9ydCB7IGRhdGFicmlja3NQcm9maWxlU3VtbWFyeVNjaGVtYSwgZGF0YWJyaWNrc1Byb2ZpbGVMaXN0U2NoZW1hLCBkYXRhYnJpY2tzUHJvZmlsZVNlbGVjdGlvblNjaGVtYSB9IGZyb20gXCIuL3NyYy9wcm9maWxlLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NQcm9maWxlU3VtbWFyeSwgRGF0YWJyaWNrc1Byb2ZpbGVMaXN0LCBEYXRhYnJpY2tzUHJvZmlsZVNlbGVjdGlvbiB9IGZyb20gXCIuL3NyYy9wcm9maWxlLnRzXCI7XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BNLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9zaGFyZWQtYXV0aFwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjQ2XCI7XG5leHBvcnQgKiBhcyBhdXRoIGZyb20gXCIuL3NyYy9hdXRoLnRzXCI7XG5leHBvcnQgKiBhcyBicm93c2VyIGZyb20gXCIuL3NyYy9icm93c2VyLnRzXCI7XG5leHBvcnQgKiBhcyBjbGllbnQgZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZ1NjaGVtYSBmcm9tIFwiLi9zcmMvY29uZmlnLXNjaGVtYS50c1wiO1xuZXhwb3J0ICogYXMgcHJvZmlsZSBmcm9tIFwiLi9zcmMvcHJvZmlsZS50c1wiO1xuZXhwb3J0IHsgQVVUSF9CQVNFX1BBVEgsIFNFU1NJT05fQ09PS0lFX05BTUUsIGF1dGhSZXF1ZXN0U2NoZW1hLCBhdXRoUmVxdWVzdFJlc3VsdFNjaGVtYSwgYXV0aFZlcmlmeVNjaGVtYSwgYXV0aFZlcmlmeVJlc3VsdFNjaGVtYSwgYXV0aExvZ291dFJlc3VsdFNjaGVtYSwgYXV0aFN0YXR1c1NjaGVtYSB9IGZyb20gXCIuL3NyYy9hdXRoLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF1dGhSZXF1ZXN0LCBBdXRoUmVxdWVzdFJlc3VsdCwgQXV0aFZlcmlmeSwgQXV0aFZlcmlmeVJlc3VsdCwgQXV0aExvZ291dFJlc3VsdCwgQXV0aFN0YXR1cyB9IGZyb20gXCIuL3NyYy9hdXRoLnRzXCI7XG5leHBvcnQgdHlwZSB7IFBhc3NrZXlPcGVyYXRpb24gfSBmcm9tIFwiLi9zcmMvYnJvd3Nlci50c1wiO1xuZXhwb3J0IHsgZGF0YWJyaWNrc0F1dGhDbGllbnRJbmZvU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzQXV0aENsaWVudEluZm8gfSBmcm9tIFwiLi9zcmMvY2xpZW50LnRzXCI7XG5leHBvcnQgeyBBdXRoVHlwZSwgVGFyZ2V0S2luZCB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IGF1dGhUeXBlU2NoZW1hLCB0YXJnZXRLaW5kU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NvbmZpZy1zY2hlbWEudHNcIjtcbmV4cG9ydCB7IGRhdGFicmlja3NQcm9maWxlU3VtbWFyeVNjaGVtYSwgZGF0YWJyaWNrc1Byb2ZpbGVMaXN0U2NoZW1hLCBkYXRhYnJpY2tzUHJvZmlsZVNlbGVjdGlvblNjaGVtYSB9IGZyb20gXCIuL3NyYy9wcm9maWxlLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NQcm9maWxlU3VtbWFyeSwgRGF0YWJyaWNrc1Byb2ZpbGVMaXN0LCBEYXRhYnJpY2tzUHJvZmlsZVNlbGVjdGlvbiB9IGZyb20gXCIuL3NyYy9wcm9maWxlLnRzXCI7XG4iXX0=
package/lib/src/auth.d.ts CHANGED
@@ -19,46 +19,34 @@ export { AUTH_BASE_PATH };
19
19
  export declare function isAuthPath(path: string): boolean;
20
20
  /** Shared Better Auth session-cookie name used by browser and server packages. */
21
21
  export declare const SESSION_COOKIE_NAME = "dbx-tools-auth";
22
- /** Request schema for sending an email one-time password. */
23
22
  export declare const authRequestSchema: z.ZodObject<{
24
23
  email: z.ZodString;
25
24
  }, z.core.$strip>;
26
- /** Validated request for an email one-time password. */
27
25
  export type AuthRequest = z.infer<typeof authRequestSchema>;
28
- /** Response schema for an accepted one-time-password request. */
29
26
  export declare const authRequestResultSchema: z.ZodObject<{
30
27
  ok: z.ZodLiteral<true>;
31
28
  retryAfter: z.ZodOptional<z.ZodNumber>;
32
29
  }, z.core.$strip>;
33
- /** Accepted one-time-password request result and optional retry delay. */
34
30
  export type AuthRequestResult = z.infer<typeof authRequestResultSchema>;
35
- /** Request schema for verifying an email one-time password. */
36
31
  export declare const authVerifySchema: z.ZodObject<{
37
32
  email: z.ZodString;
38
33
  code: z.ZodString;
39
34
  }, z.core.$strip>;
40
- /** Email address and code submitted to establish a session. */
41
35
  export type AuthVerify = z.infer<typeof authVerifySchema>;
42
- /** Response schema for one-time-password verification. */
43
36
  export declare const authVerifyResultSchema: z.ZodObject<{
44
37
  ok: z.ZodBoolean;
45
38
  retryAfter: z.ZodOptional<z.ZodNumber>;
46
39
  }, z.core.$strip>;
47
- /** Verification outcome and optional retry delay. */
48
40
  export type AuthVerifyResult = z.infer<typeof authVerifyResultSchema>;
49
- /** Response schema returned after clearing an authentication session. */
50
41
  export declare const authLogoutResultSchema: z.ZodObject<{
51
42
  ok: z.ZodBoolean;
52
43
  redirectTo: z.ZodString;
53
44
  }, z.core.$strip>;
54
- /** Logout outcome plus the validated same-origin destination. */
55
45
  export type AuthLogoutResult = z.infer<typeof authLogoutResultSchema>;
56
- /** Response schema describing gate availability and the current browser session. */
57
46
  export declare const authStatusSchema: z.ZodObject<{
58
47
  authenticated: z.ZodBoolean;
59
48
  email: z.ZodOptional<z.ZodString>;
60
49
  enabled: z.ZodBoolean;
61
50
  passkeysEnabled: z.ZodOptional<z.ZodBoolean>;
62
51
  }, z.core.$strip>;
63
- /** Gate availability, session identity, and optional passkey capability. */
64
52
  export type AuthStatus = z.infer<typeof authStatusSchema>;
package/lib/src/auth.js CHANGED
@@ -22,35 +22,41 @@ export function isAuthPath(path) {
22
22
  }
23
23
  /** Shared Better Auth session-cookie name used by browser and server packages. */
24
24
  export const SESSION_COOKIE_NAME = "dbx-tools-auth";
25
- /** Request schema for sending an email one-time password. */
26
- export const authRequestSchema = z.object({
25
+ export const authRequestSchema = z
26
+ .object({
27
27
  email: z.string().describe("Address to email a one-time code to, if it is authorized."),
28
- });
29
- /** Response schema for an accepted one-time-password request. */
30
- export const authRequestResultSchema = z.object({
31
- ok: z.literal(true),
32
- retryAfter: z.number().optional(),
33
- });
34
- /** Request schema for verifying an email one-time password. */
35
- export const authVerifySchema = z.object({
36
- email: z.string(),
37
- code: z.string(),
38
- });
39
- /** Response schema for one-time-password verification. */
40
- export const authVerifyResultSchema = z.object({
41
- ok: z.boolean(),
42
- retryAfter: z.number().optional(),
43
- });
44
- /** Response schema returned after clearing an authentication session. */
45
- export const authLogoutResultSchema = z.object({
46
- ok: z.boolean(),
47
- redirectTo: z.string(),
48
- });
49
- /** Response schema describing gate availability and the current browser session. */
50
- export const authStatusSchema = z.object({
51
- authenticated: z.boolean(),
52
- email: z.string().optional(),
53
- enabled: z.boolean(),
54
- passkeysEnabled: z.boolean().optional(),
55
- });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQztBQUUxQjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDL0MsT0FBTyxRQUFRLEtBQUssY0FBYyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7QUFFcEQsNkRBQTZEO0FBQzdELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsMkRBQTJELENBQUM7Q0FDeEYsQ0FBQyxDQUFDO0FBSUgsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDOUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ25CLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUlILCtEQUErRDtBQUMvRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2pCLENBQUMsQ0FBQztBQUlILDBEQUEwRDtBQUMxRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQ2YsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDbEMsQ0FBQyxDQUFDO0FBSUgseUVBQXlFO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDZixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN2QixDQUFDLENBQUM7QUFJSCxvRkFBb0Y7QUFDcEYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUMxQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNwQixlQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJyb3dzZXItc2FmZSBwYXNzd29yZGxlc3MgYXV0aGVudGljYXRpb24gd2lyZSBjb250cmFjdHMuXG4gKlxuICogQmV0dGVyIEF1dGggb3ducyBpdHMgbmF0aXZlIGVuZHBvaW50IHBheWxvYWRzLiBUaGVzZSBzY2hlbWFzIGNvdmVyIHRoZVxuICogZGJ4LXRvb2xzIGNvbXBhdGliaWxpdHkgYW5kIGdhdGUtc3RhdHVzIHN1cmZhY2Ugc2hhcmVkIGJ5IHR1bm5lbCB0cmFuc3BvcnRzXG4gKiBhbmQgUmVhY3QgaG9zdHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmltcG9ydCB7IEFVVEhfQkFTRV9QQVRIIH0gZnJvbSBcIi4vX3JvdXRlLnRzXCI7XG5cbmV4cG9ydCB7IEFVVEhfQkFTRV9QQVRIIH07XG5cbi8qKlxuICogVHJ1ZSBvbmx5IGZvciB0aGUgYXV0aCBtb3VudCBpdHNlbGYgb3Igb25lIG9mIGl0cyBkZXNjZW5kYW50cy5cbiAqXG4gKiBTZWdtZW50LWF3YXJlIG1hdGNoaW5nIHByZXZlbnRzIGxvb2thbGlrZSBhcHBsaWNhdGlvbiByb3V0ZXMgc3VjaCBhc1xuICogYC9hcGkvZW1haWwvYXV0aHpgIGZyb20gYmVpbmcgdHJlYXRlZCBhcyBwdWJsaWMgYXV0aGVudGljYXRpb24gZW5kcG9pbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBdXRoUGF0aChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgcGF0aG5hbWUgPSBwYXRoLnNwbGl0KFwiP1wiLCAxKVswXSA/PyBwYXRoO1xuICByZXR1cm4gcGF0aG5hbWUgPT09IEFVVEhfQkFTRV9QQVRIIHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgoYCR7QVVUSF9CQVNFX1BBVEh9L2ApO1xufVxuXG4vKiogU2hhcmVkIEJldHRlciBBdXRoIHNlc3Npb24tY29va2llIG5hbWUgdXNlZCBieSBicm93c2VyIGFuZCBzZXJ2ZXIgcGFja2FnZXMuICovXG5leHBvcnQgY29uc3QgU0VTU0lPTl9DT09LSUVfTkFNRSA9IFwiZGJ4LXRvb2xzLWF1dGhcIjtcblxuLyoqIFJlcXVlc3Qgc2NoZW1hIGZvciBzZW5kaW5nIGFuIGVtYWlsIG9uZS10aW1lIHBhc3N3b3JkLiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhSZXF1ZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICBlbWFpbDogei5zdHJpbmcoKS5kZXNjcmliZShcIkFkZHJlc3MgdG8gZW1haWwgYSBvbmUtdGltZSBjb2RlIHRvLCBpZiBpdCBpcyBhdXRob3JpemVkLlwiKSxcbn0pO1xuLyoqIFZhbGlkYXRlZCByZXF1ZXN0IGZvciBhbiBlbWFpbCBvbmUtdGltZSBwYXNzd29yZC4gKi9cbmV4cG9ydCB0eXBlIEF1dGhSZXF1ZXN0ID0gei5pbmZlcjx0eXBlb2YgYXV0aFJlcXVlc3RTY2hlbWE+O1xuXG4vKiogUmVzcG9uc2Ugc2NoZW1hIGZvciBhbiBhY2NlcHRlZCBvbmUtdGltZS1wYXNzd29yZCByZXF1ZXN0LiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhSZXF1ZXN0UmVzdWx0U2NoZW1hID0gei5vYmplY3Qoe1xuICBvazogei5saXRlcmFsKHRydWUpLFxuICByZXRyeUFmdGVyOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBBY2NlcHRlZCBvbmUtdGltZS1wYXNzd29yZCByZXF1ZXN0IHJlc3VsdCBhbmQgb3B0aW9uYWwgcmV0cnkgZGVsYXkuICovXG5leHBvcnQgdHlwZSBBdXRoUmVxdWVzdFJlc3VsdCA9IHouaW5mZXI8dHlwZW9mIGF1dGhSZXF1ZXN0UmVzdWx0U2NoZW1hPjtcblxuLyoqIFJlcXVlc3Qgc2NoZW1hIGZvciB2ZXJpZnlpbmcgYW4gZW1haWwgb25lLXRpbWUgcGFzc3dvcmQuICovXG5leHBvcnQgY29uc3QgYXV0aFZlcmlmeVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgZW1haWw6IHouc3RyaW5nKCksXG4gIGNvZGU6IHouc3RyaW5nKCksXG59KTtcbi8qKiBFbWFpbCBhZGRyZXNzIGFuZCBjb2RlIHN1Ym1pdHRlZCB0byBlc3RhYmxpc2ggYSBzZXNzaW9uLiAqL1xuZXhwb3J0IHR5cGUgQXV0aFZlcmlmeSA9IHouaW5mZXI8dHlwZW9mIGF1dGhWZXJpZnlTY2hlbWE+O1xuXG4vKiogUmVzcG9uc2Ugc2NoZW1hIGZvciBvbmUtdGltZS1wYXNzd29yZCB2ZXJpZmljYXRpb24uICovXG5leHBvcnQgY29uc3QgYXV0aFZlcmlmeVJlc3VsdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgb2s6IHouYm9vbGVhbigpLFxuICByZXRyeUFmdGVyOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBWZXJpZmljYXRpb24gb3V0Y29tZSBhbmQgb3B0aW9uYWwgcmV0cnkgZGVsYXkuICovXG5leHBvcnQgdHlwZSBBdXRoVmVyaWZ5UmVzdWx0ID0gei5pbmZlcjx0eXBlb2YgYXV0aFZlcmlmeVJlc3VsdFNjaGVtYT47XG5cbi8qKiBSZXNwb25zZSBzY2hlbWEgcmV0dXJuZWQgYWZ0ZXIgY2xlYXJpbmcgYW4gYXV0aGVudGljYXRpb24gc2Vzc2lvbi4gKi9cbmV4cG9ydCBjb25zdCBhdXRoTG9nb3V0UmVzdWx0U2NoZW1hID0gei5vYmplY3Qoe1xuICBvazogei5ib29sZWFuKCksXG4gIHJlZGlyZWN0VG86IHouc3RyaW5nKCksXG59KTtcbi8qKiBMb2dvdXQgb3V0Y29tZSBwbHVzIHRoZSB2YWxpZGF0ZWQgc2FtZS1vcmlnaW4gZGVzdGluYXRpb24uICovXG5leHBvcnQgdHlwZSBBdXRoTG9nb3V0UmVzdWx0ID0gei5pbmZlcjx0eXBlb2YgYXV0aExvZ291dFJlc3VsdFNjaGVtYT47XG5cbi8qKiBSZXNwb25zZSBzY2hlbWEgZGVzY3JpYmluZyBnYXRlIGF2YWlsYWJpbGl0eSBhbmQgdGhlIGN1cnJlbnQgYnJvd3NlciBzZXNzaW9uLiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhTdGF0dXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGF1dGhlbnRpY2F0ZWQ6IHouYm9vbGVhbigpLFxuICBlbWFpbDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBlbmFibGVkOiB6LmJvb2xlYW4oKSxcbiAgcGFzc2tleXNFbmFibGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG4vKiogR2F0ZSBhdmFpbGFiaWxpdHksIHNlc3Npb24gaWRlbnRpdHksIGFuZCBvcHRpb25hbCBwYXNza2V5IGNhcGFiaWxpdHkuICovXG5leHBvcnQgdHlwZSBBdXRoU3RhdHVzID0gei5pbmZlcjx0eXBlb2YgYXV0aFN0YXR1c1NjaGVtYT47XG4iXX0=
28
+ })
29
+ .describe("Validated request for an email one-time password.");
30
+ export const authRequestResultSchema = z
31
+ .object({
32
+ ok: z.literal(true).describe("Always true for an accepted one-time-password request."),
33
+ retryAfter: z.number().optional().describe("Seconds to wait before requesting another code."),
34
+ })
35
+ .describe("Accepted one-time-password request result and optional retry delay.");
36
+ export const authVerifySchema = z
37
+ .object({
38
+ email: z.string().describe("Address that received the one-time code."),
39
+ code: z.string().describe("One-time password submitted to establish a session."),
40
+ })
41
+ .describe("Email address and code submitted to establish a session.");
42
+ export const authVerifyResultSchema = z
43
+ .object({
44
+ ok: z.boolean().describe("True when the code was accepted and a session was created."),
45
+ retryAfter: z.number().optional().describe("Seconds to wait before trying another code."),
46
+ })
47
+ .describe("Verification outcome and optional retry delay.");
48
+ export const authLogoutResultSchema = z
49
+ .object({
50
+ ok: z.boolean().describe("True when the session cookie was cleared."),
51
+ redirectTo: z.string().describe("Validated same-origin destination after logout."),
52
+ })
53
+ .describe("Logout outcome plus the validated same-origin destination.");
54
+ export const authStatusSchema = z
55
+ .object({
56
+ authenticated: z.boolean().describe("True when the browser holds a valid session."),
57
+ email: z.string().optional().describe("Signed-in address when a session exists."),
58
+ enabled: z.boolean().describe("True when the passwordless gate is configured."),
59
+ passkeysEnabled: z.boolean().optional().describe("True when WebAuthn passkeys are available."),
60
+ })
61
+ .describe("Gate availability, session identity, and optional passkey capability.");
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQztBQUUxQjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDL0MsT0FBTyxRQUFRLEtBQUssY0FBYyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQztLQUMvQixNQUFNLENBQUM7SUFDTixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQywyREFBMkQsQ0FBQztDQUN4RixDQUFDO0tBQ0QsUUFBUSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFJakUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQztLQUNyQyxNQUFNLENBQUM7SUFDTixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsd0RBQXdELENBQUM7SUFDdEYsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsaURBQWlELENBQUM7Q0FDOUYsQ0FBQztLQUNELFFBQVEsQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0FBSW5GLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUM7S0FDOUIsTUFBTSxDQUFDO0lBQ04sS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsMENBQTBDLENBQUM7SUFDdEUsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMscURBQXFELENBQUM7Q0FDakYsQ0FBQztLQUNELFFBQVEsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0FBSXhFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUM7S0FDcEMsTUFBTSxDQUFDO0lBQ04sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsNERBQTRELENBQUM7SUFDdEYsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsNkNBQTZDLENBQUM7Q0FDMUYsQ0FBQztLQUNELFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0FBSTlELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUM7S0FDcEMsTUFBTSxDQUFDO0lBQ04sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsMkNBQTJDLENBQUM7SUFDckUsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsaURBQWlELENBQUM7Q0FDbkYsQ0FBQztLQUNELFFBQVEsQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0FBSTFFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUM7S0FDOUIsTUFBTSxDQUFDO0lBQ04sYUFBYSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsOENBQThDLENBQUM7SUFDbkYsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsMENBQTBDLENBQUM7SUFDakYsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsZ0RBQWdELENBQUM7SUFDL0UsZUFBZSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQUM7Q0FDL0YsQ0FBQztLQUNELFFBQVEsQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyLXNhZmUgcGFzc3dvcmRsZXNzIGF1dGhlbnRpY2F0aW9uIHdpcmUgY29udHJhY3RzLlxuICpcbiAqIEJldHRlciBBdXRoIG93bnMgaXRzIG5hdGl2ZSBlbmRwb2ludCBwYXlsb2Fkcy4gVGhlc2Ugc2NoZW1hcyBjb3ZlciB0aGVcbiAqIGRieC10b29scyBjb21wYXRpYmlsaXR5IGFuZCBnYXRlLXN0YXR1cyBzdXJmYWNlIHNoYXJlZCBieSB0dW5uZWwgdHJhbnNwb3J0c1xuICogYW5kIFJlYWN0IGhvc3RzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBBVVRIX0JBU0VfUEFUSCB9IGZyb20gXCIuL19yb3V0ZS50c1wiO1xuXG5leHBvcnQgeyBBVVRIX0JBU0VfUEFUSCB9O1xuXG4vKipcbiAqIFRydWUgb25seSBmb3IgdGhlIGF1dGggbW91bnQgaXRzZWxmIG9yIG9uZSBvZiBpdHMgZGVzY2VuZGFudHMuXG4gKlxuICogU2VnbWVudC1hd2FyZSBtYXRjaGluZyBwcmV2ZW50cyBsb29rYWxpa2UgYXBwbGljYXRpb24gcm91dGVzIHN1Y2ggYXNcbiAqIGAvYXBpL2VtYWlsL2F1dGh6YCBmcm9tIGJlaW5nIHRyZWF0ZWQgYXMgcHVibGljIGF1dGhlbnRpY2F0aW9uIGVuZHBvaW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aFBhdGgocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhdGhuYW1lID0gcGF0aC5zcGxpdChcIj9cIiwgMSlbMF0gPz8gcGF0aDtcbiAgcmV0dXJuIHBhdGhuYW1lID09PSBBVVRIX0JBU0VfUEFUSCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKGAke0FVVEhfQkFTRV9QQVRIfS9gKTtcbn1cblxuLyoqIFNoYXJlZCBCZXR0ZXIgQXV0aCBzZXNzaW9uLWNvb2tpZSBuYW1lIHVzZWQgYnkgYnJvd3NlciBhbmQgc2VydmVyIHBhY2thZ2VzLiAqL1xuZXhwb3J0IGNvbnN0IFNFU1NJT05fQ09PS0lFX05BTUUgPSBcImRieC10b29scy1hdXRoXCI7XG5cbmV4cG9ydCBjb25zdCBhdXRoUmVxdWVzdFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZW1haWw6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJBZGRyZXNzIHRvIGVtYWlsIGEgb25lLXRpbWUgY29kZSB0bywgaWYgaXQgaXMgYXV0aG9yaXplZC5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIlZhbGlkYXRlZCByZXF1ZXN0IGZvciBhbiBlbWFpbCBvbmUtdGltZSBwYXNzd29yZC5cIik7XG5cbmV4cG9ydCB0eXBlIEF1dGhSZXF1ZXN0ID0gei5pbmZlcjx0eXBlb2YgYXV0aFJlcXVlc3RTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgYXV0aFJlcXVlc3RSZXN1bHRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG9rOiB6LmxpdGVyYWwodHJ1ZSkuZGVzY3JpYmUoXCJBbHdheXMgdHJ1ZSBmb3IgYW4gYWNjZXB0ZWQgb25lLXRpbWUtcGFzc3dvcmQgcmVxdWVzdC5cIiksXG4gICAgcmV0cnlBZnRlcjogei5udW1iZXIoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiU2Vjb25kcyB0byB3YWl0IGJlZm9yZSByZXF1ZXN0aW5nIGFub3RoZXIgY29kZS5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIkFjY2VwdGVkIG9uZS10aW1lLXBhc3N3b3JkIHJlcXVlc3QgcmVzdWx0IGFuZCBvcHRpb25hbCByZXRyeSBkZWxheS5cIik7XG5cbmV4cG9ydCB0eXBlIEF1dGhSZXF1ZXN0UmVzdWx0ID0gei5pbmZlcjx0eXBlb2YgYXV0aFJlcXVlc3RSZXN1bHRTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgYXV0aFZlcmlmeVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZW1haWw6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJBZGRyZXNzIHRoYXQgcmVjZWl2ZWQgdGhlIG9uZS10aW1lIGNvZGUuXCIpLFxuICAgIGNvZGU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJPbmUtdGltZSBwYXNzd29yZCBzdWJtaXR0ZWQgdG8gZXN0YWJsaXNoIGEgc2Vzc2lvbi5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIkVtYWlsIGFkZHJlc3MgYW5kIGNvZGUgc3VibWl0dGVkIHRvIGVzdGFibGlzaCBhIHNlc3Npb24uXCIpO1xuXG5leHBvcnQgdHlwZSBBdXRoVmVyaWZ5ID0gei5pbmZlcjx0eXBlb2YgYXV0aFZlcmlmeVNjaGVtYT47XG5cbmV4cG9ydCBjb25zdCBhdXRoVmVyaWZ5UmVzdWx0U2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBvazogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJUcnVlIHdoZW4gdGhlIGNvZGUgd2FzIGFjY2VwdGVkIGFuZCBhIHNlc3Npb24gd2FzIGNyZWF0ZWQuXCIpLFxuICAgIHJldHJ5QWZ0ZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlNlY29uZHMgdG8gd2FpdCBiZWZvcmUgdHJ5aW5nIGFub3RoZXIgY29kZS5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIlZlcmlmaWNhdGlvbiBvdXRjb21lIGFuZCBvcHRpb25hbCByZXRyeSBkZWxheS5cIik7XG5cbmV4cG9ydCB0eXBlIEF1dGhWZXJpZnlSZXN1bHQgPSB6LmluZmVyPHR5cGVvZiBhdXRoVmVyaWZ5UmVzdWx0U2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IGF1dGhMb2dvdXRSZXN1bHRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG9rOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIlRydWUgd2hlbiB0aGUgc2Vzc2lvbiBjb29raWUgd2FzIGNsZWFyZWQuXCIpLFxuICAgIHJlZGlyZWN0VG86IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJWYWxpZGF0ZWQgc2FtZS1vcmlnaW4gZGVzdGluYXRpb24gYWZ0ZXIgbG9nb3V0LlwiKSxcbiAgfSlcbiAgLmRlc2NyaWJlKFwiTG9nb3V0IG91dGNvbWUgcGx1cyB0aGUgdmFsaWRhdGVkIHNhbWUtb3JpZ2luIGRlc3RpbmF0aW9uLlwiKTtcblxuZXhwb3J0IHR5cGUgQXV0aExvZ291dFJlc3VsdCA9IHouaW5mZXI8dHlwZW9mIGF1dGhMb2dvdXRSZXN1bHRTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgYXV0aFN0YXR1c1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgYXV0aGVudGljYXRlZDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJUcnVlIHdoZW4gdGhlIGJyb3dzZXIgaG9sZHMgYSB2YWxpZCBzZXNzaW9uLlwiKSxcbiAgICBlbWFpbDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiU2lnbmVkLWluIGFkZHJlc3Mgd2hlbiBhIHNlc3Npb24gZXhpc3RzLlwiKSxcbiAgICBlbmFibGVkOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIlRydWUgd2hlbiB0aGUgcGFzc3dvcmRsZXNzIGdhdGUgaXMgY29uZmlndXJlZC5cIiksXG4gICAgcGFzc2tleXNFbmFibGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiVHJ1ZSB3aGVuIFdlYkF1dGhuIHBhc3NrZXlzIGFyZSBhdmFpbGFibGUuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJHYXRlIGF2YWlsYWJpbGl0eSwgc2Vzc2lvbiBpZGVudGl0eSwgYW5kIG9wdGlvbmFsIHBhc3NrZXkgY2FwYWJpbGl0eS5cIik7XG5cbmV4cG9ydCB0eXBlIEF1dGhTdGF0dXMgPSB6LmluZmVyPHR5cGVvZiBhdXRoU3RhdHVzU2NoZW1hPjtcbiJdfQ==
package/lib/src/client.js CHANGED
@@ -3,16 +3,17 @@
3
3
  *
4
4
  * @module
5
5
  */
6
+ import { options } from "@dbx-tools/shared-core";
6
7
  import { z } from "zod";
7
8
  import { authTypeSchema, targetKindSchema } from "./config-schema.js";
8
9
  /** Resolved secret-free Databricks authentication client fields. */
9
10
  export const databricksAuthClientInfoSchema = z.object({
10
11
  profile: z.string().min(1).optional(),
11
- host: z.string().url(),
12
+ host: options.normalizedUrlSchema,
12
13
  accountId: z.string().min(1).optional(),
13
14
  workspaceId: z.string().min(1).optional(),
14
15
  target: targetKindSchema,
15
16
  authType: authTypeSchema,
16
17
  principal: z.string().min(1),
17
18
  });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEUsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFO0lBQ3RCLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN2QyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDekMsTUFBTSxFQUFFLGdCQUFnQjtJQUN4QixRQUFRLEVBQUUsY0FBYztJQUN4QixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Q0FDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyLXNhZmUgRGF0YWJyaWNrcyBhdXRoZW50aWNhdGlvbiBzdGF0dXMgY29udHJhY3RzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBhdXRoVHlwZVNjaGVtYSwgdGFyZ2V0S2luZFNjaGVtYSB9IGZyb20gXCIuL2NvbmZpZy1zY2hlbWEudHNcIjtcblxuLyoqIFJlc29sdmVkIHNlY3JldC1mcmVlIERhdGFicmlja3MgYXV0aGVudGljYXRpb24gY2xpZW50IGZpZWxkcy4gKi9cbmV4cG9ydCBjb25zdCBkYXRhYnJpY2tzQXV0aENsaWVudEluZm9TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHByb2ZpbGU6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGhvc3Q6IHouc3RyaW5nKCkudXJsKCksXG4gIGFjY291bnRJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgd29ya3NwYWNlSWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHRhcmdldDogdGFyZ2V0S2luZFNjaGVtYSxcbiAgYXV0aFR5cGU6IGF1dGhUeXBlU2NoZW1hLFxuICBwcmluY2lwYWw6IHouc3RyaW5nKCkubWluKDEpLFxufSk7XG4vKiogUmVzb2x2ZWQgc2VjcmV0LWZyZWUgRGF0YWJyaWNrcyBhdXRoZW50aWNhdGlvbiBjbGllbnQgZmllbGRzLiAqL1xuZXhwb3J0IHR5cGUgRGF0YWJyaWNrc0F1dGhDbGllbnRJbmZvID0gei5pbmZlcjx0eXBlb2YgZGF0YWJyaWNrc0F1dGhDbGllbnRJbmZvU2NoZW1hPjtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRFLG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxJQUFJLEVBQUUsT0FBTyxDQUFDLG1CQUFtQjtJQUNqQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3pDLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEIsUUFBUSxFQUFFLGNBQWM7SUFDeEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0NBQzdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3Nlci1zYWZlIERhdGFicmlja3MgYXV0aGVudGljYXRpb24gc3RhdHVzIGNvbnRyYWN0cy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBhdXRoVHlwZVNjaGVtYSwgdGFyZ2V0S2luZFNjaGVtYSB9IGZyb20gXCIuL2NvbmZpZy1zY2hlbWEudHNcIjtcblxuLyoqIFJlc29sdmVkIHNlY3JldC1mcmVlIERhdGFicmlja3MgYXV0aGVudGljYXRpb24gY2xpZW50IGZpZWxkcy4gKi9cbmV4cG9ydCBjb25zdCBkYXRhYnJpY2tzQXV0aENsaWVudEluZm9TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHByb2ZpbGU6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGhvc3Q6IG9wdGlvbnMubm9ybWFsaXplZFVybFNjaGVtYSxcbiAgYWNjb3VudElkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICB3b3Jrc3BhY2VJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgdGFyZ2V0OiB0YXJnZXRLaW5kU2NoZW1hLFxuICBhdXRoVHlwZTogYXV0aFR5cGVTY2hlbWEsXG4gIHByaW5jaXBhbDogei5zdHJpbmcoKS5taW4oMSksXG59KTtcbi8qKiBSZXNvbHZlZCBzZWNyZXQtZnJlZSBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIGNsaWVudCBmaWVsZHMuICovXG5leHBvcnQgdHlwZSBEYXRhYnJpY2tzQXV0aENsaWVudEluZm8gPSB6LmluZmVyPHR5cGVvZiBkYXRhYnJpY2tzQXV0aENsaWVudEluZm9TY2hlbWE+O1xuIl19
@@ -4,7 +4,6 @@
4
4
  * @module
5
5
  */
6
6
  import { z } from "zod";
7
- /** Runtime schema for Databricks authentication type values. */
8
7
  export declare const authTypeSchema: z.ZodEnum<{
9
8
  "databricks-cli": "databricks-cli";
10
9
  "oauth-m2m": "oauth-m2m";
@@ -12,7 +11,6 @@ export declare const authTypeSchema: z.ZodEnum<{
12
11
  app_obo: "app_obo";
13
12
  app_sp: "app_sp";
14
13
  }>;
15
- /** Runtime schema for Databricks authentication target values. */
16
14
  export declare const targetKindSchema: z.ZodEnum<{
17
15
  account: "account";
18
16
  workspace: "workspace";
@@ -3,20 +3,20 @@
3
3
  *
4
4
  * @module
5
5
  */
6
+ import { options } from "@dbx-tools/shared-core";
6
7
  import { z } from "zod";
7
8
  import { AuthType, TargetKind } from "./config.js";
8
- /** Runtime schema for Databricks authentication type values. */
9
- export const authTypeSchema = z.enum([
9
+ export const authTypeSchema = z
10
+ .enum([
10
11
  AuthType.DatabricksCli,
11
12
  AuthType.OAuthM2M,
12
13
  AuthType.PersonalAccessToken,
13
14
  AuthType.AppOnBehalfOf,
14
15
  AuthType.AppServicePrincipal,
15
- ]);
16
- /** Runtime schema for Databricks authentication target values. */
17
- export const targetKindSchema = z.enum([
18
- TargetKind.Workspace,
19
- TargetKind.Account,
20
- TargetKind.Unified,
21
- ]);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWctc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELGdFQUFnRTtBQUNoRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNuQyxRQUFRLENBQUMsYUFBYTtJQUN0QixRQUFRLENBQUMsUUFBUTtJQUNqQixRQUFRLENBQUMsbUJBQW1CO0lBQzVCLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyxtQkFBbUI7Q0FDN0IsQ0FBQyxDQUFDO0FBRUgsa0VBQWtFO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckMsVUFBVSxDQUFDLFNBQVM7SUFDcEIsVUFBVSxDQUFDLE9BQU87SUFDbEIsVUFBVSxDQUFDLE9BQU87Q0FDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyLXNhZmUgc2NoZW1hcyBmb3IgRGF0YWJyaWNrcyBhdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9uIHZhbHVlcy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgQXV0aFR5cGUsIFRhcmdldEtpbmQgfSBmcm9tIFwiLi9jb25maWcudHNcIjtcblxuLyoqIFJ1bnRpbWUgc2NoZW1hIGZvciBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIHR5cGUgdmFsdWVzLiAqL1xuZXhwb3J0IGNvbnN0IGF1dGhUeXBlU2NoZW1hID0gei5lbnVtKFtcbiAgQXV0aFR5cGUuRGF0YWJyaWNrc0NsaSxcbiAgQXV0aFR5cGUuT0F1dGhNMk0sXG4gIEF1dGhUeXBlLlBlcnNvbmFsQWNjZXNzVG9rZW4sXG4gIEF1dGhUeXBlLkFwcE9uQmVoYWxmT2YsXG4gIEF1dGhUeXBlLkFwcFNlcnZpY2VQcmluY2lwYWwsXG5dKTtcblxuLyoqIFJ1bnRpbWUgc2NoZW1hIGZvciBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIHRhcmdldCB2YWx1ZXMuICovXG5leHBvcnQgY29uc3QgdGFyZ2V0S2luZFNjaGVtYSA9IHouZW51bShbXG4gIFRhcmdldEtpbmQuV29ya3NwYWNlLFxuICBUYXJnZXRLaW5kLkFjY291bnQsXG4gIFRhcmdldEtpbmQuVW5pZmllZCxcbl0pO1xuIl19
16
+ ])
17
+ .meta({ env: options.databricksEnvironmentNames.authType, flag: false })
18
+ .describe("Databricks authentication type values.");
19
+ export const targetKindSchema = z
20
+ .enum([TargetKind.Workspace, TargetKind.Account, TargetKind.Unified])
21
+ .describe("Databricks authentication target values.");
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWctc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQztLQUM1QixJQUFJLENBQUM7SUFDSixRQUFRLENBQUMsYUFBYTtJQUN0QixRQUFRLENBQUMsUUFBUTtJQUNqQixRQUFRLENBQUMsbUJBQW1CO0lBQzVCLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyxtQkFBbUI7Q0FDN0IsQ0FBQztLQUNELElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsMEJBQTBCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUN2RSxRQUFRLENBQUMsd0NBQXdDLENBQUMsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDO0tBQzlCLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDcEUsUUFBUSxDQUFDLDBDQUEwQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJyb3dzZXItc2FmZSBzY2hlbWFzIGZvciBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIGNvbmZpZ3VyYXRpb24gdmFsdWVzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmltcG9ydCB7IEF1dGhUeXBlLCBUYXJnZXRLaW5kIH0gZnJvbSBcIi4vY29uZmlnLnRzXCI7XG5cbmV4cG9ydCBjb25zdCBhdXRoVHlwZVNjaGVtYSA9IHpcbiAgLmVudW0oW1xuICAgIEF1dGhUeXBlLkRhdGFicmlja3NDbGksXG4gICAgQXV0aFR5cGUuT0F1dGhNMk0sXG4gICAgQXV0aFR5cGUuUGVyc29uYWxBY2Nlc3NUb2tlbixcbiAgICBBdXRoVHlwZS5BcHBPbkJlaGFsZk9mLFxuICAgIEF1dGhUeXBlLkFwcFNlcnZpY2VQcmluY2lwYWwsXG4gIF0pXG4gIC5tZXRhKHsgZW52OiBvcHRpb25zLmRhdGFicmlja3NFbnZpcm9ubWVudE5hbWVzLmF1dGhUeXBlLCBmbGFnOiBmYWxzZSB9KVxuICAuZGVzY3JpYmUoXCJEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIHR5cGUgdmFsdWVzLlwiKTtcblxuZXhwb3J0IGNvbnN0IHRhcmdldEtpbmRTY2hlbWEgPSB6XG4gIC5lbnVtKFtUYXJnZXRLaW5kLldvcmtzcGFjZSwgVGFyZ2V0S2luZC5BY2NvdW50LCBUYXJnZXRLaW5kLlVuaWZpZWRdKVxuICAuZGVzY3JpYmUoXCJEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIHRhcmdldCB2YWx1ZXMuXCIpO1xuIl19
@@ -4,7 +4,6 @@
4
4
  * @module
5
5
  */
6
6
  import { z } from "zod";
7
- /** Secret-free Databricks profile metadata for profile selectors. */
8
7
  export declare const databricksProfileSummarySchema: z.ZodObject<{
9
8
  name: z.ZodString;
10
9
  host: z.ZodOptional<z.ZodString>;
@@ -24,9 +23,7 @@ export declare const databricksProfileSummarySchema: z.ZodObject<{
24
23
  }>;
25
24
  principal: z.ZodString;
26
25
  }, z.core.$strip>;
27
- /** Secret-free Databricks profile metadata. */
28
26
  export type DatabricksProfileSummary = z.infer<typeof databricksProfileSummarySchema>;
29
- /** Browser-safe list of configured Databricks profiles. */
30
27
  export declare const databricksProfileListSchema: z.ZodArray<z.ZodObject<{
31
28
  name: z.ZodString;
32
29
  host: z.ZodOptional<z.ZodString>;
@@ -46,14 +43,11 @@ export declare const databricksProfileListSchema: z.ZodArray<z.ZodObject<{
46
43
  }>;
47
44
  principal: z.ZodString;
48
45
  }, z.core.$strip>>;
49
- /** List of secret-free Databricks profiles. */
50
46
  export type DatabricksProfileList = z.infer<typeof databricksProfileListSchema>;
51
- /** Profile-selector value for ambient or named-profile authentication. */
52
47
  export declare const databricksProfileSelectionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
53
48
  kind: z.ZodLiteral<"ambient">;
54
49
  }, z.core.$strip>, z.ZodObject<{
55
50
  kind: z.ZodLiteral<"profile">;
56
51
  profile: z.ZodString;
57
52
  }, z.core.$strip>], "kind">;
58
- /** Ambient or named-profile selector value. */
59
53
  export type DatabricksProfileSelection = z.infer<typeof databricksProfileSelectionSchema>;
@@ -3,26 +3,38 @@
3
3
  *
4
4
  * @module
5
5
  */
6
+ import { options } from "@dbx-tools/shared-core";
6
7
  import { z } from "zod";
7
8
  import { authTypeSchema, targetKindSchema } from "./config-schema.js";
8
- /** Secret-free Databricks profile metadata for profile selectors. */
9
- export const databricksProfileSummarySchema = z.object({
10
- name: z.string().min(1),
11
- host: z.string().url().optional(),
12
- accountId: z.string().min(1).optional(),
13
- workspaceId: z.string().min(1).optional(),
14
- target: targetKindSchema,
15
- authType: authTypeSchema,
16
- principal: z.string().min(1),
17
- });
18
- /** Browser-safe list of configured Databricks profiles. */
19
- export const databricksProfileListSchema = z.array(databricksProfileSummarySchema);
20
- /** Profile-selector value for ambient or named-profile authentication. */
21
- export const databricksProfileSelectionSchema = z.discriminatedUnion("kind", [
9
+ export const databricksProfileSummarySchema = z
10
+ .object({
11
+ name: z.string().min(1).describe("Profile name from the Databricks CLI configuration."),
12
+ host: options.normalizedUrlSchema.optional().describe("Workspace or account host URL."),
13
+ accountId: z
14
+ .string()
15
+ .min(1)
16
+ .optional()
17
+ .describe("Account id when the profile targets an account."),
18
+ workspaceId: z
19
+ .string()
20
+ .min(1)
21
+ .optional()
22
+ .describe("Workspace id when the profile targets a workspace."),
23
+ target: targetKindSchema.describe("Whether this profile authenticates a workspace, account, or unified host."),
24
+ authType: authTypeSchema.describe("Credential kind used by this profile."),
25
+ principal: z.string().min(1).describe("Secret-free principal label suitable for selectors."),
26
+ })
27
+ .describe("Secret-free Databricks profile metadata.");
28
+ export const databricksProfileListSchema = z
29
+ .array(databricksProfileSummarySchema)
30
+ .describe("List of secret-free Databricks profiles.");
31
+ export const databricksProfileSelectionSchema = z
32
+ .discriminatedUnion("kind", [
22
33
  z.object({ kind: z.literal("ambient") }),
23
34
  z.object({
24
35
  kind: z.literal("profile"),
25
- profile: z.string().trim().min(1),
36
+ profile: z.string().trim().min(1).describe("Named Databricks CLI profile to use."),
26
37
  }),
27
- ]);
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RSxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN6QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLFFBQVEsRUFBRSxjQUFjO0lBQ3hCLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztDQUM3QixDQUFDLENBQUM7QUFJSCwyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBSW5GLDBFQUEwRTtBQUMxRSxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQzNFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDMUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ2xDLENBQUM7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJyb3dzZXItc2FmZSBEYXRhYnJpY2tzIHByb2ZpbGUtc2VsZWN0b3IgY29udHJhY3RzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBhdXRoVHlwZVNjaGVtYSwgdGFyZ2V0S2luZFNjaGVtYSB9IGZyb20gXCIuL2NvbmZpZy1zY2hlbWEudHNcIjtcblxuLyoqIFNlY3JldC1mcmVlIERhdGFicmlja3MgcHJvZmlsZSBtZXRhZGF0YSBmb3IgcHJvZmlsZSBzZWxlY3RvcnMuICovXG5leHBvcnQgY29uc3QgZGF0YWJyaWNrc1Byb2ZpbGVTdW1tYXJ5U2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgaG9zdDogei5zdHJpbmcoKS51cmwoKS5vcHRpb25hbCgpLFxuICBhY2NvdW50SWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHdvcmtzcGFjZUlkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICB0YXJnZXQ6IHRhcmdldEtpbmRTY2hlbWEsXG4gIGF1dGhUeXBlOiBhdXRoVHlwZVNjaGVtYSxcbiAgcHJpbmNpcGFsOiB6LnN0cmluZygpLm1pbigxKSxcbn0pO1xuLyoqIFNlY3JldC1mcmVlIERhdGFicmlja3MgcHJvZmlsZSBtZXRhZGF0YS4gKi9cbmV4cG9ydCB0eXBlIERhdGFicmlja3NQcm9maWxlU3VtbWFyeSA9IHouaW5mZXI8dHlwZW9mIGRhdGFicmlja3NQcm9maWxlU3VtbWFyeVNjaGVtYT47XG5cbi8qKiBCcm93c2VyLXNhZmUgbGlzdCBvZiBjb25maWd1cmVkIERhdGFicmlja3MgcHJvZmlsZXMuICovXG5leHBvcnQgY29uc3QgZGF0YWJyaWNrc1Byb2ZpbGVMaXN0U2NoZW1hID0gei5hcnJheShkYXRhYnJpY2tzUHJvZmlsZVN1bW1hcnlTY2hlbWEpO1xuLyoqIExpc3Qgb2Ygc2VjcmV0LWZyZWUgRGF0YWJyaWNrcyBwcm9maWxlcy4gKi9cbmV4cG9ydCB0eXBlIERhdGFicmlja3NQcm9maWxlTGlzdCA9IHouaW5mZXI8dHlwZW9mIGRhdGFicmlja3NQcm9maWxlTGlzdFNjaGVtYT47XG5cbi8qKiBQcm9maWxlLXNlbGVjdG9yIHZhbHVlIGZvciBhbWJpZW50IG9yIG5hbWVkLXByb2ZpbGUgYXV0aGVudGljYXRpb24uICovXG5leHBvcnQgY29uc3QgZGF0YWJyaWNrc1Byb2ZpbGVTZWxlY3Rpb25TY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbihcImtpbmRcIiwgW1xuICB6Lm9iamVjdCh7IGtpbmQ6IHoubGl0ZXJhbChcImFtYmllbnRcIikgfSksXG4gIHoub2JqZWN0KHtcbiAgICBraW5kOiB6LmxpdGVyYWwoXCJwcm9maWxlXCIpLFxuICAgIHByb2ZpbGU6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKSxcbiAgfSksXG5dKTtcbi8qKiBBbWJpZW50IG9yIG5hbWVkLXByb2ZpbGUgc2VsZWN0b3IgdmFsdWUuICovXG5leHBvcnQgdHlwZSBEYXRhYnJpY2tzUHJvZmlsZVNlbGVjdGlvbiA9IHouaW5mZXI8dHlwZW9mIGRhdGFicmlja3NQcm9maWxlU2VsZWN0aW9uU2NoZW1hPjtcbiJdfQ==
38
+ ])
39
+ .describe("Ambient or named-profile selector value.");
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQztLQUM1QyxNQUFNLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMscURBQXFELENBQUM7SUFDdkYsSUFBSSxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsZ0NBQWdDLENBQUM7SUFDdkYsU0FBUyxFQUFFLENBQUM7U0FDVCxNQUFNLEVBQUU7U0FDUixHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ04sUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUFDLGlEQUFpRCxDQUFDO0lBQzlELFdBQVcsRUFBRSxDQUFDO1NBQ1gsTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQyxvREFBb0QsQ0FBQztJQUNqRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUMvQiwyRUFBMkUsQ0FDNUU7SUFDRCxRQUFRLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQyx1Q0FBdUMsQ0FBQztJQUMxRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMscURBQXFELENBQUM7Q0FDN0YsQ0FBQztLQUNELFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBSXhELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUM7S0FDekMsS0FBSyxDQUFDLDhCQUE4QixDQUFDO0tBQ3JDLFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBSXhELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUM7S0FDOUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDMUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0tBQ25GLENBQUM7Q0FDSCxDQUFDO0tBQ0QsUUFBUSxDQUFDLDBDQUEwQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJyb3dzZXItc2FmZSBEYXRhYnJpY2tzIHByb2ZpbGUtc2VsZWN0b3IgY29udHJhY3RzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmltcG9ydCB7IGF1dGhUeXBlU2NoZW1hLCB0YXJnZXRLaW5kU2NoZW1hIH0gZnJvbSBcIi4vY29uZmlnLXNjaGVtYS50c1wiO1xuXG5leHBvcnQgY29uc3QgZGF0YWJyaWNrc1Byb2ZpbGVTdW1tYXJ5U2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBuYW1lOiB6LnN0cmluZygpLm1pbigxKS5kZXNjcmliZShcIlByb2ZpbGUgbmFtZSBmcm9tIHRoZSBEYXRhYnJpY2tzIENMSSBjb25maWd1cmF0aW9uLlwiKSxcbiAgICBob3N0OiBvcHRpb25zLm5vcm1hbGl6ZWRVcmxTY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZShcIldvcmtzcGFjZSBvciBhY2NvdW50IGhvc3QgVVJMLlwiKSxcbiAgICBhY2NvdW50SWQ6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLm1pbigxKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIkFjY291bnQgaWQgd2hlbiB0aGUgcHJvZmlsZSB0YXJnZXRzIGFuIGFjY291bnQuXCIpLFxuICAgIHdvcmtzcGFjZUlkOiB6XG4gICAgICAuc3RyaW5nKClcbiAgICAgIC5taW4oMSlcbiAgICAgIC5vcHRpb25hbCgpXG4gICAgICAuZGVzY3JpYmUoXCJXb3Jrc3BhY2UgaWQgd2hlbiB0aGUgcHJvZmlsZSB0YXJnZXRzIGEgd29ya3NwYWNlLlwiKSxcbiAgICB0YXJnZXQ6IHRhcmdldEtpbmRTY2hlbWEuZGVzY3JpYmUoXG4gICAgICBcIldoZXRoZXIgdGhpcyBwcm9maWxlIGF1dGhlbnRpY2F0ZXMgYSB3b3Jrc3BhY2UsIGFjY291bnQsIG9yIHVuaWZpZWQgaG9zdC5cIixcbiAgICApLFxuICAgIGF1dGhUeXBlOiBhdXRoVHlwZVNjaGVtYS5kZXNjcmliZShcIkNyZWRlbnRpYWwga2luZCB1c2VkIGJ5IHRoaXMgcHJvZmlsZS5cIiksXG4gICAgcHJpbmNpcGFsOiB6LnN0cmluZygpLm1pbigxKS5kZXNjcmliZShcIlNlY3JldC1mcmVlIHByaW5jaXBhbCBsYWJlbCBzdWl0YWJsZSBmb3Igc2VsZWN0b3JzLlwiKSxcbiAgfSlcbiAgLmRlc2NyaWJlKFwiU2VjcmV0LWZyZWUgRGF0YWJyaWNrcyBwcm9maWxlIG1ldGFkYXRhLlwiKTtcblxuZXhwb3J0IHR5cGUgRGF0YWJyaWNrc1Byb2ZpbGVTdW1tYXJ5ID0gei5pbmZlcjx0eXBlb2YgZGF0YWJyaWNrc1Byb2ZpbGVTdW1tYXJ5U2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IGRhdGFicmlja3NQcm9maWxlTGlzdFNjaGVtYSA9IHpcbiAgLmFycmF5KGRhdGFicmlja3NQcm9maWxlU3VtbWFyeVNjaGVtYSlcbiAgLmRlc2NyaWJlKFwiTGlzdCBvZiBzZWNyZXQtZnJlZSBEYXRhYnJpY2tzIHByb2ZpbGVzLlwiKTtcblxuZXhwb3J0IHR5cGUgRGF0YWJyaWNrc1Byb2ZpbGVMaXN0ID0gei5pbmZlcjx0eXBlb2YgZGF0YWJyaWNrc1Byb2ZpbGVMaXN0U2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IGRhdGFicmlja3NQcm9maWxlU2VsZWN0aW9uU2NoZW1hID0gelxuICAuZGlzY3JpbWluYXRlZFVuaW9uKFwia2luZFwiLCBbXG4gICAgei5vYmplY3QoeyBraW5kOiB6LmxpdGVyYWwoXCJhbWJpZW50XCIpIH0pLFxuICAgIHoub2JqZWN0KHtcbiAgICAgIGtpbmQ6IHoubGl0ZXJhbChcInByb2ZpbGVcIiksXG4gICAgICBwcm9maWxlOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkuZGVzY3JpYmUoXCJOYW1lZCBEYXRhYnJpY2tzIENMSSBwcm9maWxlIHRvIHVzZS5cIiksXG4gICAgfSksXG4gIF0pXG4gIC5kZXNjcmliZShcIkFtYmllbnQgb3IgbmFtZWQtcHJvZmlsZSBzZWxlY3RvciB2YWx1ZS5cIik7XG5cbmV4cG9ydCB0eXBlIERhdGFicmlja3NQcm9maWxlU2VsZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgZGF0YWJyaWNrc1Byb2ZpbGVTZWxlY3Rpb25TY2hlbWE+O1xuIl19
package/package.json CHANGED
@@ -23,6 +23,7 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@better-auth/passkey": "1.7.6",
26
+ "@dbx-tools/shared-core": "^0.9.46",
26
27
  "@simplewebauthn/browser": "13.3.0",
27
28
  "better-auth": "1.7.6",
28
29
  "zod": "4.3.6"
@@ -65,7 +66,7 @@
65
66
  "./package.json": "./package.json"
66
67
  }
67
68
  },
68
- "version": "0.9.40",
69
+ "version": "0.9.46",
69
70
  "types": "./lib/index.d.ts",
70
71
  "dbxToolsConfig": {
71
72
  "tags": [
package/src/auth.ts CHANGED
@@ -28,51 +28,57 @@ export function isAuthPath(path: string): boolean {
28
28
  /** Shared Better Auth session-cookie name used by browser and server packages. */
29
29
  export const SESSION_COOKIE_NAME = "dbx-tools-auth";
30
30
 
31
- /** Request schema for sending an email one-time password. */
32
- export const authRequestSchema = z.object({
33
- email: z.string().describe("Address to email a one-time code to, if it is authorized."),
34
- });
35
- /** Validated request for an email one-time password. */
31
+ export const authRequestSchema = z
32
+ .object({
33
+ email: z.string().describe("Address to email a one-time code to, if it is authorized."),
34
+ })
35
+ .describe("Validated request for an email one-time password.");
36
+
36
37
  export type AuthRequest = z.infer<typeof authRequestSchema>;
37
38
 
38
- /** Response schema for an accepted one-time-password request. */
39
- export const authRequestResultSchema = z.object({
40
- ok: z.literal(true),
41
- retryAfter: z.number().optional(),
42
- });
43
- /** Accepted one-time-password request result and optional retry delay. */
39
+ export const authRequestResultSchema = z
40
+ .object({
41
+ ok: z.literal(true).describe("Always true for an accepted one-time-password request."),
42
+ retryAfter: z.number().optional().describe("Seconds to wait before requesting another code."),
43
+ })
44
+ .describe("Accepted one-time-password request result and optional retry delay.");
45
+
44
46
  export type AuthRequestResult = z.infer<typeof authRequestResultSchema>;
45
47
 
46
- /** Request schema for verifying an email one-time password. */
47
- export const authVerifySchema = z.object({
48
- email: z.string(),
49
- code: z.string(),
50
- });
51
- /** Email address and code submitted to establish a session. */
48
+ export const authVerifySchema = z
49
+ .object({
50
+ email: z.string().describe("Address that received the one-time code."),
51
+ code: z.string().describe("One-time password submitted to establish a session."),
52
+ })
53
+ .describe("Email address and code submitted to establish a session.");
54
+
52
55
  export type AuthVerify = z.infer<typeof authVerifySchema>;
53
56
 
54
- /** Response schema for one-time-password verification. */
55
- export const authVerifyResultSchema = z.object({
56
- ok: z.boolean(),
57
- retryAfter: z.number().optional(),
58
- });
59
- /** Verification outcome and optional retry delay. */
57
+ export const authVerifyResultSchema = z
58
+ .object({
59
+ ok: z.boolean().describe("True when the code was accepted and a session was created."),
60
+ retryAfter: z.number().optional().describe("Seconds to wait before trying another code."),
61
+ })
62
+ .describe("Verification outcome and optional retry delay.");
63
+
60
64
  export type AuthVerifyResult = z.infer<typeof authVerifyResultSchema>;
61
65
 
62
- /** Response schema returned after clearing an authentication session. */
63
- export const authLogoutResultSchema = z.object({
64
- ok: z.boolean(),
65
- redirectTo: z.string(),
66
- });
67
- /** Logout outcome plus the validated same-origin destination. */
66
+ export const authLogoutResultSchema = z
67
+ .object({
68
+ ok: z.boolean().describe("True when the session cookie was cleared."),
69
+ redirectTo: z.string().describe("Validated same-origin destination after logout."),
70
+ })
71
+ .describe("Logout outcome plus the validated same-origin destination.");
72
+
68
73
  export type AuthLogoutResult = z.infer<typeof authLogoutResultSchema>;
69
74
 
70
- /** Response schema describing gate availability and the current browser session. */
71
- export const authStatusSchema = z.object({
72
- authenticated: z.boolean(),
73
- email: z.string().optional(),
74
- enabled: z.boolean(),
75
- passkeysEnabled: z.boolean().optional(),
76
- });
77
- /** Gate availability, session identity, and optional passkey capability. */
75
+ export const authStatusSchema = z
76
+ .object({
77
+ authenticated: z.boolean().describe("True when the browser holds a valid session."),
78
+ email: z.string().optional().describe("Signed-in address when a session exists."),
79
+ enabled: z.boolean().describe("True when the passwordless gate is configured."),
80
+ passkeysEnabled: z.boolean().optional().describe("True when WebAuthn passkeys are available."),
81
+ })
82
+ .describe("Gate availability, session identity, and optional passkey capability.");
83
+
78
84
  export type AuthStatus = z.infer<typeof authStatusSchema>;
package/src/client.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  * @module
5
5
  */
6
6
 
7
+ import { options } from "@dbx-tools/shared-core";
7
8
  import { z } from "zod";
8
9
 
9
10
  import { authTypeSchema, targetKindSchema } from "./config-schema.ts";
@@ -11,7 +12,7 @@ import { authTypeSchema, targetKindSchema } from "./config-schema.ts";
11
12
  /** Resolved secret-free Databricks authentication client fields. */
12
13
  export const databricksAuthClientInfoSchema = z.object({
13
14
  profile: z.string().min(1).optional(),
14
- host: z.string().url(),
15
+ host: options.normalizedUrlSchema,
15
16
  accountId: z.string().min(1).optional(),
16
17
  workspaceId: z.string().min(1).optional(),
17
18
  target: targetKindSchema,
@@ -4,22 +4,22 @@
4
4
  * @module
5
5
  */
6
6
 
7
+ import { options } from "@dbx-tools/shared-core";
7
8
  import { z } from "zod";
8
9
 
9
10
  import { AuthType, TargetKind } from "./config.ts";
10
11
 
11
- /** Runtime schema for Databricks authentication type values. */
12
- export const authTypeSchema = z.enum([
13
- AuthType.DatabricksCli,
14
- AuthType.OAuthM2M,
15
- AuthType.PersonalAccessToken,
16
- AuthType.AppOnBehalfOf,
17
- AuthType.AppServicePrincipal,
18
- ]);
12
+ export const authTypeSchema = z
13
+ .enum([
14
+ AuthType.DatabricksCli,
15
+ AuthType.OAuthM2M,
16
+ AuthType.PersonalAccessToken,
17
+ AuthType.AppOnBehalfOf,
18
+ AuthType.AppServicePrincipal,
19
+ ])
20
+ .meta({ env: options.databricksEnvironmentNames.authType, flag: false })
21
+ .describe("Databricks authentication type values.");
19
22
 
20
- /** Runtime schema for Databricks authentication target values. */
21
- export const targetKindSchema = z.enum([
22
- TargetKind.Workspace,
23
- TargetKind.Account,
24
- TargetKind.Unified,
25
- ]);
23
+ export const targetKindSchema = z
24
+ .enum([TargetKind.Workspace, TargetKind.Account, TargetKind.Unified])
25
+ .describe("Databricks authentication target values.");
package/src/profile.ts CHANGED
@@ -4,35 +4,49 @@
4
4
  * @module
5
5
  */
6
6
 
7
+ import { options } from "@dbx-tools/shared-core";
7
8
  import { z } from "zod";
8
9
 
9
10
  import { authTypeSchema, targetKindSchema } from "./config-schema.ts";
10
11
 
11
- /** Secret-free Databricks profile metadata for profile selectors. */
12
- export const databricksProfileSummarySchema = z.object({
13
- name: z.string().min(1),
14
- host: z.string().url().optional(),
15
- accountId: z.string().min(1).optional(),
16
- workspaceId: z.string().min(1).optional(),
17
- target: targetKindSchema,
18
- authType: authTypeSchema,
19
- principal: z.string().min(1),
20
- });
21
- /** Secret-free Databricks profile metadata. */
12
+ export const databricksProfileSummarySchema = z
13
+ .object({
14
+ name: z.string().min(1).describe("Profile name from the Databricks CLI configuration."),
15
+ host: options.normalizedUrlSchema.optional().describe("Workspace or account host URL."),
16
+ accountId: z
17
+ .string()
18
+ .min(1)
19
+ .optional()
20
+ .describe("Account id when the profile targets an account."),
21
+ workspaceId: z
22
+ .string()
23
+ .min(1)
24
+ .optional()
25
+ .describe("Workspace id when the profile targets a workspace."),
26
+ target: targetKindSchema.describe(
27
+ "Whether this profile authenticates a workspace, account, or unified host.",
28
+ ),
29
+ authType: authTypeSchema.describe("Credential kind used by this profile."),
30
+ principal: z.string().min(1).describe("Secret-free principal label suitable for selectors."),
31
+ })
32
+ .describe("Secret-free Databricks profile metadata.");
33
+
22
34
  export type DatabricksProfileSummary = z.infer<typeof databricksProfileSummarySchema>;
23
35
 
24
- /** Browser-safe list of configured Databricks profiles. */
25
- export const databricksProfileListSchema = z.array(databricksProfileSummarySchema);
26
- /** List of secret-free Databricks profiles. */
36
+ export const databricksProfileListSchema = z
37
+ .array(databricksProfileSummarySchema)
38
+ .describe("List of secret-free Databricks profiles.");
39
+
27
40
  export type DatabricksProfileList = z.infer<typeof databricksProfileListSchema>;
28
41
 
29
- /** Profile-selector value for ambient or named-profile authentication. */
30
- export const databricksProfileSelectionSchema = z.discriminatedUnion("kind", [
31
- z.object({ kind: z.literal("ambient") }),
32
- z.object({
33
- kind: z.literal("profile"),
34
- profile: z.string().trim().min(1),
35
- }),
36
- ]);
37
- /** Ambient or named-profile selector value. */
42
+ export const databricksProfileSelectionSchema = z
43
+ .discriminatedUnion("kind", [
44
+ z.object({ kind: z.literal("ambient") }),
45
+ z.object({
46
+ kind: z.literal("profile"),
47
+ profile: z.string().trim().min(1).describe("Named Databricks CLI profile to use."),
48
+ }),
49
+ ])
50
+ .describe("Ambient or named-profile selector value.");
51
+
38
52
  export type DatabricksProfileSelection = z.infer<typeof databricksProfileSelectionSchema>;