@dbx-tools/shared-auth 0.9.153 → 0.9.157
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 +5 -4
- package/lib/index.d.ts +5 -4
- package/lib/index.js +6 -5
- package/lib/src/auth.d.ts +2 -2
- package/lib/src/auth.js +7 -7
- package/lib/src/browser.d.ts +0 -2
- package/lib/src/browser.js +2 -4
- package/lib/src/client.js +3 -3
- package/lib/src/config-schema.js +3 -3
- package/lib/src/profile.js +3 -3
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -59
- package/src/auth.ts +6 -7
- package/src/browser.ts +5 -5
- package/src/client.ts +2 -2
- package/src/config-schema.ts +2 -2
- package/src/profile.ts +2 -2
- package/lib/src/_route.d.ts +0 -2
- package/lib/src/_route.js +0 -3
- package/src/_route.ts +0 -2
package/index.ts
CHANGED
|
@@ -3,19 +3,20 @@
|
|
|
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.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.157";
|
|
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";
|
|
10
|
-
export * as config from "./src/config.ts";
|
|
11
10
|
export * as configSchema from "./src/config-schema.ts";
|
|
11
|
+
export * as config from "./src/config.ts";
|
|
12
12
|
export * as profile from "./src/profile.ts";
|
|
13
|
-
export { AUTH_BASE_PATH, SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authLogoutResultSchema, authStatusSchema } from "./src/auth.ts";
|
|
13
|
+
export { AUTH_BASE_PATH, isAuthPath, SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authLogoutResultSchema, authStatusSchema } from "./src/auth.ts";
|
|
14
14
|
export type { AuthRequest, AuthRequestResult, AuthVerify, AuthVerifyResult, AuthLogoutResult, AuthStatus } from "./src/auth.ts";
|
|
15
|
+
export { beginPasskeySignIn, passkeysAvailable, beginPasskeyEnrollment, cancelPasskeyOperation, getAuthStatus, logout, requestEmailOtp, verifyEmailOtp, signInPasskey, addPasskey, listPasskeys, renamePasskey, removePasskey } from "./src/browser.ts";
|
|
15
16
|
export type { PasskeyOperation } from "./src/browser.ts";
|
|
16
17
|
export { RUNTIME_AUTH_TYPE, databricksAuthClientInfoSchema } from "./src/client.ts";
|
|
17
18
|
export type { DatabricksAuthClientInfo } from "./src/client.ts";
|
|
18
|
-
export { AuthType, TargetKind } from "./src/config.ts";
|
|
19
19
|
export { authTypeSchema, targetKindSchema } from "./src/config-schema.ts";
|
|
20
|
+
export { AuthType, TargetKind } from "./src/config.ts";
|
|
20
21
|
export { databricksProfileSummarySchema, databricksProfileListSchema, databricksProfileSelectionSchema } from "./src/profile.ts";
|
|
21
22
|
export type { DatabricksProfileSummary, DatabricksProfileList, DatabricksProfileSelection } from "./src/profile.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-auth";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.157";
|
|
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";
|
|
6
|
-
export * as config from "./src/config.ts";
|
|
7
6
|
export * as configSchema from "./src/config-schema.ts";
|
|
7
|
+
export * as config from "./src/config.ts";
|
|
8
8
|
export * as profile from "./src/profile.ts";
|
|
9
|
-
export { AUTH_BASE_PATH, SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authLogoutResultSchema, authStatusSchema } from "./src/auth.ts";
|
|
9
|
+
export { AUTH_BASE_PATH, isAuthPath, SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authLogoutResultSchema, authStatusSchema } from "./src/auth.ts";
|
|
10
10
|
export type { AuthRequest, AuthRequestResult, AuthVerify, AuthVerifyResult, AuthLogoutResult, AuthStatus } from "./src/auth.ts";
|
|
11
|
+
export { beginPasskeySignIn, passkeysAvailable, beginPasskeyEnrollment, cancelPasskeyOperation, getAuthStatus, logout, requestEmailOtp, verifyEmailOtp, signInPasskey, addPasskey, listPasskeys, renamePasskey, removePasskey } from "./src/browser.ts";
|
|
11
12
|
export type { PasskeyOperation } from "./src/browser.ts";
|
|
12
13
|
export { RUNTIME_AUTH_TYPE, databricksAuthClientInfoSchema } from "./src/client.ts";
|
|
13
14
|
export type { DatabricksAuthClientInfo } from "./src/client.ts";
|
|
14
|
-
export { AuthType, TargetKind } from "./src/config.ts";
|
|
15
15
|
export { authTypeSchema, targetKindSchema } from "./src/config-schema.ts";
|
|
16
|
+
export { AuthType, TargetKind } from "./src/config.ts";
|
|
16
17
|
export { databricksProfileSummarySchema, databricksProfileListSchema, databricksProfileSelectionSchema } from "./src/profile.ts";
|
|
17
18
|
export type { DatabricksProfileSummary, DatabricksProfileList, DatabricksProfileSelection } from "./src/profile.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
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.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.157";
|
|
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";
|
|
9
|
-
export * as config from "./src/config.js";
|
|
10
9
|
export * as configSchema from "./src/config-schema.js";
|
|
10
|
+
export * as config from "./src/config.js";
|
|
11
11
|
export * as profile from "./src/profile.js";
|
|
12
|
-
export { AUTH_BASE_PATH, SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authLogoutResultSchema, authStatusSchema } from "./src/auth.js";
|
|
12
|
+
export { AUTH_BASE_PATH, isAuthPath, SESSION_COOKIE_NAME, authRequestSchema, authRequestResultSchema, authVerifySchema, authVerifyResultSchema, authLogoutResultSchema, authStatusSchema } from "./src/auth.js";
|
|
13
|
+
export { beginPasskeySignIn, passkeysAvailable, beginPasskeyEnrollment, cancelPasskeyOperation, getAuthStatus, logout, requestEmailOtp, verifyEmailOtp, signInPasskey, addPasskey, listPasskeys, renamePasskey, removePasskey } from "./src/browser.js";
|
|
13
14
|
export { RUNTIME_AUTH_TYPE, databricksAuthClientInfoSchema } from "./src/client.js";
|
|
14
|
-
export { AuthType, TargetKind } from "./src/config.js";
|
|
15
15
|
export { authTypeSchema, targetKindSchema } from "./src/config-schema.js";
|
|
16
|
+
export { AuthType, TargetKind } from "./src/config.js";
|
|
16
17
|
export { databricksProfileSummarySchema, databricksProfileListSchema, databricksProfileSelectionSchema } from "./src/profile.js";
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoTixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4UCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRixPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvc2hhcmVkLWF1dGhcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xNTdcIjtcbmV4cG9ydCAqIGFzIGF1dGggZnJvbSBcIi4vc3JjL2F1dGgudHNcIjtcbmV4cG9ydCAqIGFzIGJyb3dzZXIgZnJvbSBcIi4vc3JjL2Jyb3dzZXIudHNcIjtcbmV4cG9ydCAqIGFzIGNsaWVudCBmcm9tIFwiLi9zcmMvY2xpZW50LnRzXCI7XG5leHBvcnQgKiBhcyBjb25maWdTY2hlbWEgZnJvbSBcIi4vc3JjL2NvbmZpZy1zY2hlbWEudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBwcm9maWxlIGZyb20gXCIuL3NyYy9wcm9maWxlLnRzXCI7XG5leHBvcnQgeyBBVVRIX0JBU0VfUEFUSCwgaXNBdXRoUGF0aCwgU0VTU0lPTl9DT09LSUVfTkFNRSwgYXV0aFJlcXVlc3RTY2hlbWEsIGF1dGhSZXF1ZXN0UmVzdWx0U2NoZW1hLCBhdXRoVmVyaWZ5U2NoZW1hLCBhdXRoVmVyaWZ5UmVzdWx0U2NoZW1hLCBhdXRoTG9nb3V0UmVzdWx0U2NoZW1hLCBhdXRoU3RhdHVzU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2F1dGgudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aFJlcXVlc3QsIEF1dGhSZXF1ZXN0UmVzdWx0LCBBdXRoVmVyaWZ5LCBBdXRoVmVyaWZ5UmVzdWx0LCBBdXRoTG9nb3V0UmVzdWx0LCBBdXRoU3RhdHVzIH0gZnJvbSBcIi4vc3JjL2F1dGgudHNcIjtcbmV4cG9ydCB7IGJlZ2luUGFzc2tleVNpZ25JbiwgcGFzc2tleXNBdmFpbGFibGUsIGJlZ2luUGFzc2tleUVucm9sbG1lbnQsIGNhbmNlbFBhc3NrZXlPcGVyYXRpb24sIGdldEF1dGhTdGF0dXMsIGxvZ291dCwgcmVxdWVzdEVtYWlsT3RwLCB2ZXJpZnlFbWFpbE90cCwgc2lnbkluUGFzc2tleSwgYWRkUGFzc2tleSwgbGlzdFBhc3NrZXlzLCByZW5hbWVQYXNza2V5LCByZW1vdmVQYXNza2V5IH0gZnJvbSBcIi4vc3JjL2Jyb3dzZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGFzc2tleU9wZXJhdGlvbiB9IGZyb20gXCIuL3NyYy9icm93c2VyLnRzXCI7XG5leHBvcnQgeyBSVU5USU1FX0FVVEhfVFlQRSwgZGF0YWJyaWNrc0F1dGhDbGllbnRJbmZvU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzQXV0aENsaWVudEluZm8gfSBmcm9tIFwiLi9zcmMvY2xpZW50LnRzXCI7XG5leHBvcnQgeyBhdXRoVHlwZVNjaGVtYSwgdGFyZ2V0S2luZFNjaGVtYSB9IGZyb20gXCIuL3NyYy9jb25maWctc2NoZW1hLnRzXCI7XG5leHBvcnQgeyBBdXRoVHlwZSwgVGFyZ2V0S2luZCB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IGRhdGFicmlja3NQcm9maWxlU3VtbWFyeVNjaGVtYSwgZGF0YWJyaWNrc1Byb2ZpbGVMaXN0U2NoZW1hLCBkYXRhYnJpY2tzUHJvZmlsZVNlbGVjdGlvblNjaGVtYSB9IGZyb20gXCIuL3NyYy9wcm9maWxlLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NQcm9maWxlU3VtbWFyeSwgRGF0YWJyaWNrc1Byb2ZpbGVMaXN0LCBEYXRhYnJpY2tzUHJvZmlsZVNlbGVjdGlvbiB9IGZyb20gXCIuL3NyYy9wcm9maWxlLnRzXCI7XG4iXX0=
|
package/lib/src/auth.d.ts
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
|
|
12
|
-
export
|
|
11
|
+
/** Canonical mount for Better Auth and the dbx-tools compatibility routes. */
|
|
12
|
+
export declare const AUTH_BASE_PATH = "/api/email/auth";
|
|
13
13
|
/**
|
|
14
14
|
* True only for the auth mount itself or one of its descendants.
|
|
15
15
|
*
|
package/lib/src/auth.js
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { trimToNull, toLabel } from "@dbx-tools/shared-core";
|
|
11
11
|
import { z } from "zod";
|
|
12
|
-
|
|
13
|
-
export
|
|
12
|
+
/** Canonical mount for Better Auth and the dbx-tools compatibility routes. */
|
|
13
|
+
export const AUTH_BASE_PATH = "/api/email/auth";
|
|
14
14
|
/**
|
|
15
15
|
* True only for the auth mount itself or one of its descendants.
|
|
16
16
|
*
|
|
@@ -29,9 +29,9 @@ export const SESSION_COOKIE_NAME = "dbx-tools-auth";
|
|
|
29
29
|
* `DBX Tools Demo`.
|
|
30
30
|
*/
|
|
31
31
|
export function passkeyDisplayName(prefix, hostname) {
|
|
32
|
-
const normalizedPrefix =
|
|
33
|
-
const subdomain =
|
|
34
|
-
const suffix = subdomain ?
|
|
32
|
+
const normalizedPrefix = trimToNull(prefix);
|
|
33
|
+
const subdomain = trimToNull(hostname)?.split(".", 1)[0];
|
|
34
|
+
const suffix = subdomain ? toLabel(subdomain) : undefined;
|
|
35
35
|
if (!normalizedPrefix)
|
|
36
36
|
return suffix;
|
|
37
37
|
if (!suffix || normalizedPrefix.toLowerCase().endsWith(suffix.toLowerCase())) {
|
|
@@ -80,4 +80,4 @@ export const authStatusSchema = z
|
|
|
80
80
|
.describe("Configured prefix for humanized passkey display names."),
|
|
81
81
|
})
|
|
82
82
|
.describe("Gate availability, session identity, and optional passkey capability.");
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLDhFQUE4RTtBQUM5RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUM7QUFFaEQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVk7SUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQy9DLE9BQU8sUUFBUSxLQUFLLGNBQWMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsY0FBYyxHQUFHLENBQUMsQ0FBQztBQUNsRixDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDO0FBRXBEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE1BQTBCLEVBQzFCLFFBQWdCO0lBRWhCLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUQsSUFBSSxDQUFDLGdCQUFnQjtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3JDLElBQUksQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDN0UsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBQ0QsT0FBTyxHQUFHLGdCQUFnQixJQUFJLE1BQU0sRUFBRSxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDO0tBQy9CLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLDJEQUEyRCxDQUFDO0NBQ3hGLENBQUM7S0FDRCxRQUFRLENBQUMsbURBQW1ELENBQUMsQ0FBQztBQUlqRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDO0tBQ3JDLE1BQU0sQ0FBQztJQUNOLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyx3REFBd0QsQ0FBQztJQUN0RixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpREFBaUQsQ0FBQztDQUM5RixDQUFDO0tBQ0QsUUFBUSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7QUFJbkYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQztLQUM5QixNQUFNLENBQUM7SUFDTixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQztJQUN0RSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxxREFBcUQsQ0FBQztDQUNqRixDQUFDO0tBQ0QsUUFBUSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7QUFJeEUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQztLQUNwQyxNQUFNLENBQUM7SUFDTixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyw0REFBNEQsQ0FBQztJQUN0RixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyw2Q0FBNkMsQ0FBQztDQUMxRixDQUFDO0tBQ0QsUUFBUSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7QUFJOUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQztLQUNwQyxNQUFNLENBQUM7SUFDTixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQywyQ0FBMkMsQ0FBQztJQUNyRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxpREFBaUQsQ0FBQztDQUNuRixDQUFDO0tBQ0QsUUFBUSxDQUFDLDREQUE0RCxDQUFDLENBQUM7QUFJMUUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQztLQUM5QixNQUFNLENBQUM7SUFDTixhQUFhLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyw4Q0FBOEMsQ0FBQztJQUNuRixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQztJQUNqRixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQztJQUMvRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyw0Q0FBNEMsQ0FBQztJQUM5RixpQkFBaUIsRUFBRSxDQUFDO1NBQ2pCLE1BQU0sRUFBRTtTQUNSLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQyx3REFBd0QsQ0FBQztDQUN0RSxDQUFDO0tBQ0QsUUFBUSxDQUFDLHVFQUF1RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJyb3dzZXItc2FmZSBwYXNzd29yZGxlc3MgYXV0aGVudGljYXRpb24gd2lyZSBjb250cmFjdHMuXG4gKlxuICogQmV0dGVyIEF1dGggb3ducyBpdHMgbmF0aXZlIGVuZHBvaW50IHBheWxvYWRzLiBUaGVzZSBzY2hlbWFzIGNvdmVyIHRoZVxuICogZGJ4LXRvb2xzIGNvbXBhdGliaWxpdHkgYW5kIGdhdGUtc3RhdHVzIHN1cmZhY2Ugc2hhcmVkIGJ5IHR1bm5lbCB0cmFuc3BvcnRzXG4gKiBhbmQgUmVhY3QgaG9zdHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHRyaW1Ub051bGwsIHRvTGFiZWwgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuLyoqIENhbm9uaWNhbCBtb3VudCBmb3IgQmV0dGVyIEF1dGggYW5kIHRoZSBkYngtdG9vbHMgY29tcGF0aWJpbGl0eSByb3V0ZXMuICovXG5leHBvcnQgY29uc3QgQVVUSF9CQVNFX1BBVEggPSBcIi9hcGkvZW1haWwvYXV0aFwiO1xuXG4vKipcbiAqIFRydWUgb25seSBmb3IgdGhlIGF1dGggbW91bnQgaXRzZWxmIG9yIG9uZSBvZiBpdHMgZGVzY2VuZGFudHMuXG4gKlxuICogU2VnbWVudC1hd2FyZSBtYXRjaGluZyBwcmV2ZW50cyBsb29rYWxpa2UgYXBwbGljYXRpb24gcm91dGVzIHN1Y2ggYXNcbiAqIGAvYXBpL2VtYWlsL2F1dGh6YCBmcm9tIGJlaW5nIHRyZWF0ZWQgYXMgcHVibGljIGF1dGhlbnRpY2F0aW9uIGVuZHBvaW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQXV0aFBhdGgocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhdGhuYW1lID0gcGF0aC5zcGxpdChcIj9cIiwgMSlbMF0gPz8gcGF0aDtcbiAgcmV0dXJuIHBhdGhuYW1lID09PSBBVVRIX0JBU0VfUEFUSCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKGAke0FVVEhfQkFTRV9QQVRIfS9gKTtcbn1cblxuLyoqIFNoYXJlZCBCZXR0ZXIgQXV0aCBzZXNzaW9uLWNvb2tpZSBuYW1lIHVzZWQgYnkgYnJvd3NlciBhbmQgc2VydmVyIHBhY2thZ2VzLiAqL1xuZXhwb3J0IGNvbnN0IFNFU1NJT05fQ09PS0lFX05BTUUgPSBcImRieC10b29scy1hdXRoXCI7XG5cbi8qKlxuICogQnVpbGQgYSBwYXNza2V5IGRpc3BsYXkgbmFtZSBmcm9tIGFuIG9wdGlvbmFsIHByZWZpeCBhbmQgdGhlIGh1bWFuaXplZCBmaXJzdFxuICogaG9zdG5hbWUgbGFiZWwuIEZvciBleGFtcGxlLCBgREJYIFRvb2xzYCBhbmQgYGRlbW8uYXBwcy5leGFtcGxlLmNvbWAgcHJvZHVjZVxuICogYERCWCBUb29scyBEZW1vYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc3NrZXlEaXNwbGF5TmFtZShcbiAgcHJlZml4OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGhvc3RuYW1lOiBzdHJpbmcsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBub3JtYWxpemVkUHJlZml4ID0gdHJpbVRvTnVsbChwcmVmaXgpO1xuICBjb25zdCBzdWJkb21haW4gPSB0cmltVG9OdWxsKGhvc3RuYW1lKT8uc3BsaXQoXCIuXCIsIDEpWzBdO1xuICBjb25zdCBzdWZmaXggPSBzdWJkb21haW4gPyB0b0xhYmVsKHN1YmRvbWFpbikgOiB1bmRlZmluZWQ7XG4gIGlmICghbm9ybWFsaXplZFByZWZpeCkgcmV0dXJuIHN1ZmZpeDtcbiAgaWYgKCFzdWZmaXggfHwgbm9ybWFsaXplZFByZWZpeC50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKHN1ZmZpeC50b0xvd2VyQ2FzZSgpKSkge1xuICAgIHJldHVybiBub3JtYWxpemVkUHJlZml4O1xuICB9XG4gIHJldHVybiBgJHtub3JtYWxpemVkUHJlZml4fSAke3N1ZmZpeH1gO1xufVxuXG5leHBvcnQgY29uc3QgYXV0aFJlcXVlc3RTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGVtYWlsOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiQWRkcmVzcyB0byBlbWFpbCBhIG9uZS10aW1lIGNvZGUgdG8sIGlmIGl0IGlzIGF1dGhvcml6ZWQuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJWYWxpZGF0ZWQgcmVxdWVzdCBmb3IgYW4gZW1haWwgb25lLXRpbWUgcGFzc3dvcmQuXCIpO1xuXG5leHBvcnQgdHlwZSBBdXRoUmVxdWVzdCA9IHouaW5mZXI8dHlwZW9mIGF1dGhSZXF1ZXN0U2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IGF1dGhSZXF1ZXN0UmVzdWx0U2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBvazogei5saXRlcmFsKHRydWUpLmRlc2NyaWJlKFwiQWx3YXlzIHRydWUgZm9yIGFuIGFjY2VwdGVkIG9uZS10aW1lLXBhc3N3b3JkIHJlcXVlc3QuXCIpLFxuICAgIHJldHJ5QWZ0ZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlNlY29uZHMgdG8gd2FpdCBiZWZvcmUgcmVxdWVzdGluZyBhbm90aGVyIGNvZGUuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJBY2NlcHRlZCBvbmUtdGltZS1wYXNzd29yZCByZXF1ZXN0IHJlc3VsdCBhbmQgb3B0aW9uYWwgcmV0cnkgZGVsYXkuXCIpO1xuXG5leHBvcnQgdHlwZSBBdXRoUmVxdWVzdFJlc3VsdCA9IHouaW5mZXI8dHlwZW9mIGF1dGhSZXF1ZXN0UmVzdWx0U2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IGF1dGhWZXJpZnlTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGVtYWlsOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiQWRkcmVzcyB0aGF0IHJlY2VpdmVkIHRoZSBvbmUtdGltZSBjb2RlLlwiKSxcbiAgICBjb2RlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiT25lLXRpbWUgcGFzc3dvcmQgc3VibWl0dGVkIHRvIGVzdGFibGlzaCBhIHNlc3Npb24uXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJFbWFpbCBhZGRyZXNzIGFuZCBjb2RlIHN1Ym1pdHRlZCB0byBlc3RhYmxpc2ggYSBzZXNzaW9uLlwiKTtcblxuZXhwb3J0IHR5cGUgQXV0aFZlcmlmeSA9IHouaW5mZXI8dHlwZW9mIGF1dGhWZXJpZnlTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgYXV0aFZlcmlmeVJlc3VsdFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgb2s6IHouYm9vbGVhbigpLmRlc2NyaWJlKFwiVHJ1ZSB3aGVuIHRoZSBjb2RlIHdhcyBhY2NlcHRlZCBhbmQgYSBzZXNzaW9uIHdhcyBjcmVhdGVkLlwiKSxcbiAgICByZXRyeUFmdGVyOiB6Lm51bWJlcigpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJTZWNvbmRzIHRvIHdhaXQgYmVmb3JlIHRyeWluZyBhbm90aGVyIGNvZGUuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJWZXJpZmljYXRpb24gb3V0Y29tZSBhbmQgb3B0aW9uYWwgcmV0cnkgZGVsYXkuXCIpO1xuXG5leHBvcnQgdHlwZSBBdXRoVmVyaWZ5UmVzdWx0ID0gei5pbmZlcjx0eXBlb2YgYXV0aFZlcmlmeVJlc3VsdFNjaGVtYT47XG5cbmV4cG9ydCBjb25zdCBhdXRoTG9nb3V0UmVzdWx0U2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBvazogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJUcnVlIHdoZW4gdGhlIHNlc3Npb24gY29va2llIHdhcyBjbGVhcmVkLlwiKSxcbiAgICByZWRpcmVjdFRvOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVmFsaWRhdGVkIHNhbWUtb3JpZ2luIGRlc3RpbmF0aW9uIGFmdGVyIGxvZ291dC5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIkxvZ291dCBvdXRjb21lIHBsdXMgdGhlIHZhbGlkYXRlZCBzYW1lLW9yaWdpbiBkZXN0aW5hdGlvbi5cIik7XG5cbmV4cG9ydCB0eXBlIEF1dGhMb2dvdXRSZXN1bHQgPSB6LmluZmVyPHR5cGVvZiBhdXRoTG9nb3V0UmVzdWx0U2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IGF1dGhTdGF0dXNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGF1dGhlbnRpY2F0ZWQ6IHouYm9vbGVhbigpLmRlc2NyaWJlKFwiVHJ1ZSB3aGVuIHRoZSBicm93c2VyIGhvbGRzIGEgdmFsaWQgc2Vzc2lvbi5cIiksXG4gICAgZW1haWw6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlNpZ25lZC1pbiBhZGRyZXNzIHdoZW4gYSBzZXNzaW9uIGV4aXN0cy5cIiksXG4gICAgZW5hYmxlZDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJUcnVlIHdoZW4gdGhlIHBhc3N3b3JkbGVzcyBnYXRlIGlzIGNvbmZpZ3VyZWQuXCIpLFxuICAgIHBhc3NrZXlzRW5hYmxlZDogei5ib29sZWFuKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlRydWUgd2hlbiBXZWJBdXRobiBwYXNza2V5cyBhcmUgYXZhaWxhYmxlLlwiKSxcbiAgICBwYXNza2V5TmFtZVByZWZpeDogelxuICAgICAgLnN0cmluZygpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiQ29uZmlndXJlZCBwcmVmaXggZm9yIGh1bWFuaXplZCBwYXNza2V5IGRpc3BsYXkgbmFtZXMuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJHYXRlIGF2YWlsYWJpbGl0eSwgc2Vzc2lvbiBpZGVudGl0eSwgYW5kIG9wdGlvbmFsIHBhc3NrZXkgY2FwYWJpbGl0eS5cIik7XG5cbmV4cG9ydCB0eXBlIEF1dGhTdGF0dXMgPSB6LmluZmVyPHR5cGVvZiBhdXRoU3RhdHVzU2NoZW1hPjtcbiJdfQ==
|
package/lib/src/browser.d.ts
CHANGED
|
@@ -9,8 +9,6 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { type Passkey } from "@better-auth/passkey/client";
|
|
11
11
|
import { type AuthStatus } from "./auth.ts";
|
|
12
|
-
export { AUTH_BASE_PATH } from "./_route.ts";
|
|
13
|
-
export type { Passkey } from "@better-auth/passkey/client";
|
|
14
12
|
/** A cancellable passkey request and WebAuthn ceremony. */
|
|
15
13
|
export interface PasskeyOperation {
|
|
16
14
|
readonly result: Promise<boolean>;
|
package/lib/src/browser.js
CHANGED
|
@@ -11,9 +11,7 @@ import { passkeyClient } from "@better-auth/passkey/client";
|
|
|
11
11
|
import { WebAuthnAbortService } from "@simplewebauthn/browser";
|
|
12
12
|
import { createAuthClient } from "better-auth/client";
|
|
13
13
|
import { emailOTPClient } from "better-auth/client/plugins";
|
|
14
|
-
import { AUTH_BASE_PATH } from "./
|
|
15
|
-
import { passkeyDisplayName as formatPasskeyDisplayName } from "./auth.js";
|
|
16
|
-
export { AUTH_BASE_PATH } from "./_route.js";
|
|
14
|
+
import { AUTH_BASE_PATH, passkeyDisplayName as formatPasskeyDisplayName, } from "./auth.js";
|
|
17
15
|
function browserLocation() {
|
|
18
16
|
return globalThis.location;
|
|
19
17
|
}
|
|
@@ -169,4 +167,4 @@ export async function removePasskey(id) {
|
|
|
169
167
|
const result = await client.passkey.deletePasskey({ id });
|
|
170
168
|
return result.error === null;
|
|
171
169
|
}
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQW1CLGtCQUFrQixJQUFJLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFTN0MsU0FBUyxlQUFlO0lBQ3RCLE9BQVEsVUFBd0QsQ0FBQyxRQUFRLENBQUM7QUFDNUUsQ0FBQztBQUVELFNBQVMsT0FBTztJQUNkLE1BQU0sTUFBTSxHQUFHLGVBQWUsRUFBRSxFQUFFLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQztJQUMvRCxPQUFPLEdBQUcsTUFBTSxHQUFHLGNBQWMsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxNQUFvQjtJQUN6QyxPQUFPLGdCQUFnQixDQUFDO1FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUU7UUFDbEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0MsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUM7S0FDN0MsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sTUFBTSxHQUFHLGFBQWEsRUFBRSxD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QUM7SUFDdkQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSwrQkFBK0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRCxrQ0FBa0M7QUFDbEMsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQUMsRUFBVSxFQUFFLElBQVk7SUFDMUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDL0IsQ0FBQztBQUVELGtDQUFrQztBQUNsQyxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxFQUFVO0lBQzVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3Nlci1vbmx5IEJldHRlciBBdXRoIGNsaWVudCBzaGFyZWQgYnkgUmVhY3QgYW5kIHRoZSBob3N0ZWQgdHVubmVsIGxvZ2luLlxuICpcbiAqIFRoZSBvcGVyYXRpb24gaGVscGVycyBvd24gYm90aCBuZXR3b3JrIGNhbmNlbGxhdGlvbiBhbmQgdGhlIGFjdGl2ZSBXZWJBdXRoblxuICogY2VyZW1vbnkuIEVhY2ggb3BlcmF0aW9uIGNhcnJpZXMgYW4gaWRlbnRpdHkgdG9rZW4gc28gY2xlYW51cCBmcm9tIGFuIG9sZGVyXG4gKiBSZWFjdCBlZmZlY3QgY2Fubm90IGNhbmNlbCBhIG5ld2VyIG1hbnVhbCBhdHRlbXB0LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBwYXNza2V5Q2xpZW50LCB0eXBlIFBhc3NrZXkgfSBmcm9tIFwiQGJldHRlci1hdXRoL3Bhc3NrZXkvY2xpZW50XCI7XG5pbXBvcnQgeyBXZWJBdXRobkFib3J0U2VydmljZSB9IGZyb20gXCJAc2ltcGxld2ViYXV0aG4vYnJvd3NlclwiO1xuaW1wb3J0IHsgY3JlYXRlQXV0aENsaWVudCB9IGZyb20gXCJiZXR0ZXItYXV0aC9jbGllbnRcIjtcbmltcG9ydCB7IGVtYWlsT1RQQ2xpZW50IH0gZnJvbSBcImJldHRlci1hdXRoL2NsaWVudC9wbHVnaW5zXCI7XG5cbmltcG9ydCB7IEFVVEhfQkFTRV9QQVRIIH0gZnJvbSBcIi4vX3JvdXRlLnRzXCI7XG5pbXBvcnQgeyB0eXBlIEF1dGhTdGF0dXMsIHBhc3NrZXlEaXNwbGF5TmFtZSBhcyBmb3JtYXRQYXNza2V5RGlzcGxheU5hbWUgfSBmcm9tIFwiLi9hdXRoLnRzXCI7XG5cbmV4cG9ydCB7IEFVVEhfQkFTRV9QQVRIIH0gZnJvbSBcIi4vX3JvdXRlLnRzXCI7XG5leHBvcnQgdHlwZSB7IFBhc3NrZXkgfSBmcm9tIFwiQGJldHRlci1hdXRoL3Bhc3NrZXkvY2xpZW50XCI7XG5cbmludGVyZmFjZSBCcm93c2VyTG9jYXRpb24ge1xuICByZWFkb25seSBob3N0bmFtZTogc3RyaW5nO1xuICByZWFkb25seSBvcmlnaW46IHN0cmluZztcbiAgYXNzaWduKHVybDogc3RyaW5nKTogdm9pZDtcbn1cblxuZnVuY3Rpb24gYnJvd3NlckxvY2F0aW9uKCk6IEJyb3dzZXJMb2NhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiAoZ2xvYmFsVGhpcyBhcyB1bmtub3duIGFzIHsgbG9jYXRpb24/OiBCcm93c2VyTG9jYXRpb24gfSkubG9jYXRpb247XG59XG5cbmZ1bmN0aW9uIGJhc2VVUkwoKTogc3RyaW5nIHtcbiAgY29uc3Qgb3JpZ2luID0gYnJvd3NlckxvY2F0aW9uKCk/Lm9yaWdpbiA/PyBcImh0dHA6Ly9sb2NhbGhvc3RcIjtcbiAgcmV0dXJuIGAke29yaWdpbn0ke0FVVEhfQkFTRV9QQVRIfWA7XG59XG5cbmZ1bmN0aW9uIGJyb3dzZXJDbGllbnQoc2lnbmFsPzogQWJvcnRTaWduYWwpIHtcbiAgcmV0dXJuIGNyZWF0ZUF1dGhDbGllbnQoe1xuICAgIGJhc2VVUkw6IGJhc2VVUkwoKSxcbiAgICAuLi4oc2lnbmFsID8geyBmZXRjaE9wdGlvbnM6IHsgc2lnbmFsIH0gfSA6IHt9KSxcbiAgICBwbHVnaW5zOiBbZW1haWxPVFBDbGllbnQoKSwgcGFzc2tleUNsaWVudCgpXSxcbiAgfSk7XG59XG5cbmNvbnN0IGNsaWVudCA9IGJyb3dzZXJDbGllbnQoKTtcblxuZnVuY3Rpb24gcmVjb3JkKHZhbHVlOiB1bmtub3duKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsXG4gICAgPyAodmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGF1dGhTdGF0dXModmFsdWU6IHVua25vd24pOiBBdXRoU3RhdHVzIHtcbiAgY29uc3QgaXRlbSA9IHJlY29yZCh2YWx1ZSk7XG4gIGlmIChcbiAgICAhaXRlbSB8fFxuICAgIHR5cGVvZiBpdGVtLmF1dGhlbnRpY2F0ZWQgIT09IFwiYm9vbGVhblwiIHx8XG4gICAgdHlwZW9mIGl0ZW0uZW5hYmxlZCAhPT0gXCJib29sZWFuXCIgfHxcbiAgICAoaXRlbS5lbWFpbCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBpdGVtLmVtYWlsICE9PSBcInN0cmluZ1wiKSB8fFxuICAgIChpdGVtLnBhc3NrZXlzRW5hYmxlZCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBpdGVtLnBhc3NrZXlzRW5hYmxlZCAhPT0gXCJib29sZWFuXCIpIHx8XG4gICAgKGl0ZW0ucGFzc2tleU5hbWVQcmVmaXggIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgaXRlbS5wYXNza2V5TmFtZVByZWZpeCAhPT0gXCJzdHJpbmdcIilcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQXV0aCBzdGF0dXMgcmV0dXJuZWQgYW4gaW52YWxpZCByZXNwb25zZVwiKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGF1dGhlbnRpY2F0ZWQ6IGl0ZW0uYXV0aGVudGljYXRlZCxcbiAgICBlbmFibGVkOiBpdGVtLmVuYWJsZWQsXG4gICAgLi4uKHR5cGVvZiBpdGVtLmVtYWlsID09PSBcInN0cmluZ1wiID8geyBlbWFpbDogaXRlbS5lbWFpbCB9IDoge30pLFxuICAgIC4uLih0eXBlb2YgaXRlbS5wYXNza2V5c0VuYWJsZWQgPT09IFwiYm9vbGVhblwiID8geyBwYXNza2V5c0VuYWJsZWQ6IGl0ZW0ucGFzc2tleXNFbmFibGVkIH0gOiB7fSksXG4gICAgLi4uKHR5cGVvZiBpdGVtLnBhc3NrZXlOYW1lUHJlZml4ID09PSBcInN0cmluZ1wiXG4gICAgICA/IHsgcGFzc2tleU5hbWVQcmVmaXg6IGl0ZW0ucGFzc2tleU5hbWVQcmVmaXggfVxuICAgICAgOiB7fSksXG4gIH07XG59XG5cbi8qKiBBIGNhbmNlbGxhYmxlIHBhc3NrZXkgcmVxdWVzdCBhbmQgV2ViQXV0aG4gY2VyZW1vbnkuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NrZXlPcGVyYXRpb24ge1xuICByZWFkb25seSByZXN1bHQ6IFByb21pc2U8Ym9vbGVhbj47XG4gIGNhbmNlbCgpOiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgQWN0aXZlUGFzc2tleU9wZXJhdGlvbiB7XG4gIHJlYWRvbmx5IGlkOiBzeW1ib2w7XG4gIGNhbmNlbCgpOiB2b2lkO1xufVxuXG5sZXQgYWN0aXZlUGFzc2tleU9wZXJhdGlvbjogQWN0aXZlUGFzc2tleU9wZXJhdGlvbiB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gaXNBYm9ydChlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBET01FeGNlcHRpb24gJiYgZXJyb3IubmFtZSA9PT0gXCJBYm9ydEVycm9yXCI7XG59XG5cbmZ1bmN0aW9uIGJlZ2luUGFzc2tleU9wZXJhdGlvbihcbiAgaW52b2tlOiAob3BlcmF0aW9uQ2xpZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBicm93c2VyQ2xpZW50PikgPT4gUHJvbWlzZTx7IGVycm9yOiB1bmtub3duIH0+LFxuKTogUGFzc2tleU9wZXJhdGlvbiB7XG4gIGFjdGl2ZVBhc3NrZXlPcGVyYXRpb24/LmNhbmNlbCgpO1xuXG4gIGNvbnN0IGlkID0gU3ltYm9sKFwicGFzc2tleS1vcGVyYXRpb25cIik7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgY29uc3QgY2FuY2VsID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmIChhY3RpdmVQYXNza2V5T3BlcmF0aW9uPy5pZCAhPT0gaWQpIHJldHVybjtcbiAgICBhY3RpdmVQYXNza2V5T3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgY29udHJvbGxlci5hYm9ydCgpO1xuICAgIFdlYkF1dGhuQWJvcnRTZXJ2aWNlLmNhbmNlbENlcmVtb255KCk7XG4gIH07XG4gIGFjdGl2ZVBhc3NrZXlPcGVyYXRpb24gPSB7IGlkLCBjYW5jZWwgfTtcblxuICBjb25zdCByZXN1bHQgPSBpbnZva2UoYnJvd3NlckNsaWVudChjb250cm9sbGVyLnNpZ25hbCkpXG4gICAgLnRoZW4oKHJlc3BvbnNlKSA9PiAhY2FuY2VsbGVkICYmIHJlc3BvbnNlLmVycm9yID09PSBudWxsKVxuICAgIC5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgIGlmIChjYW5jZWxsZWQgfHwgaXNBYm9ydChlcnJvcikpIHJldHVybiBmYWxzZTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pXG4gICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgaWYgKGFjdGl2ZVBhc3NrZXlPcGVyYXRpb24/LmlkID09PSBpZCkgYWN0aXZlUGFzc2tleU9wZXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICByZXR1cm4geyByZXN1bHQsIGNhbmNlbCB9O1xufVxuXG4vKiogU3RhcnQgYSBwYXNza2V5IHNpZ24taW4gd2hvc2UgbGlmZXRpbWUgaXMgZXhwbGljaXRseSBvd25lZCBieSB0aGUgY2FsbGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJlZ2luUGFzc2tleVNpZ25JbihhdXRvRmlsbCA9IGZhbHNlKTogUGFzc2tleU9wZXJhdGlvbiB7XG4gIHJldHVybiBiZWdpblBhc3NrZXlPcGVyYXRpb24oKG9wZXJhdGlvbkNsaWVudCkgPT4gb3BlcmF0aW9uQ2xpZW50LnNpZ25Jbi5wYXNza2V5KHsgYXV0b0ZpbGwgfSkpO1xufVxuXG4vKiogQnVpbGQgYSBwYXNza2V5IGRpc3BsYXkgbmFtZSBmb3IgdGhlIGN1cnJlbnQgYnJvd3NlciBob3N0bmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXNza2V5RGlzcGxheU5hbWUocHJlZml4Pzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGZvcm1hdFBhc3NrZXlEaXNwbGF5TmFtZShwcmVmaXgsIGJyb3dzZXJMb2NhdGlvbigpPy5ob3N0bmFtZSA/PyBcIlwiKTtcbn1cblxuLyoqIFdoZXRoZXIgdGhpcyBicm93c2VyIGNhbiBydW4gYSBzZWN1cmUgV2ViQXV0aG4gcGFzc2tleSBjZXJlbW9ueS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXNza2V5c0F2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgY29uc3Qgc2NvcGUgPSBnbG9iYWxUaGlzIGFzIHVua25vd24gYXMge1xuICAgIGlzU2VjdXJlQ29udGV4dD86IGJvb2xlYW47XG4gICAgUHVibGljS2V5Q3JlZGVudGlhbD86IHVua25vd247XG4gICAgbmF2aWdhdG9yPzoge1xuICAgICAgY3JlZGVudGlhbHM/OiB7XG4gICAgICAgIGNyZWF0ZT86IHVua25vd247XG4gICAgICAgIGdldD86IHVua25vd247XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHJldHVybiBCb29sZWFuKFxuICAgIHNjb3BlLmlzU2VjdXJlQ29udGV4dCAhPT0gZmFsc2UgJiZcbiAgICBzY29wZS5QdWJsaWNLZXlDcmVkZW50aWFsICYmXG4gICAgc2NvcGUubmF2aWdhdG9yPy5jcmVkZW50aWFscyAmJlxuICAgIHR5cGVvZiBzY29wZS5uYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICB0eXBlb2Ygc2NvcGUubmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCA9PT0gXCJmdW5jdGlvblwiLFxuICApO1xufVxuXG4vKipcbiAqIFN0YXJ0IGEgcGFzc2tleSByZWdpc3RyYXRpb24gd2hvc2UgbGlmZXRpbWUgaXMgZXhwbGljaXRseSBvd25lZCBieSB0aGUgY2FsbGVyLlxuICogVGhlIGRpc3BsYXkgbmFtZSBkZWZhdWx0cyB0byB0aGUgaHVtYW5pemVkIGJyb3dzZXIgc3ViZG9tYWluLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmVnaW5QYXNza2V5RW5yb2xsbWVudChuYW1lPzogc3RyaW5nKTogUGFzc2tleU9wZXJhdGlvbiB7XG4gIGNvbnN0IHBhc3NrZXlOYW1lID0gbmFtZSA/PyBwYXNza2V5RGlzcGxheU5hbWUoKTtcbiAgcmV0dXJuIGJlZ2luUGFzc2tleU9wZXJhdGlvbigob3BlcmF0aW9uQ2xpZW50KSA9PlxuICAgIG9wZXJhdGlvbkNsaWVudC5wYXNza2V5LmFkZFBhc3NrZXkocGFzc2tleU5hbWUgPyB7IG5hbWU6IHBhc3NrZXlOYW1lIH0gOiB1bmRlZmluZWQpLFxuICApO1xufVxuXG4vKiogQ2FuY2VsIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBhc3NrZXkgcmVxdWVzdCBhbmQgYnJvd3NlciBjZXJlbW9ueSwgaWYgYW55LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbmNlbFBhc3NrZXlPcGVyYXRpb24oKTogdm9pZCB7XG4gIGFjdGl2ZVBhc3NrZXlPcGVyYXRpb24/LmNhbmNlbCgpO1xufVxuXG4vKiogUmVhZCB0aGUgY3VycmVudCBicm93c2VyIHNlc3Npb24gc3RhdHVzIGZyb20gdGhlIHNoYXJlZCBhdXRoIGVuZHBvaW50LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEF1dGhTdGF0dXMoKTogUHJvbWlzZTxBdXRoU3RhdHVzPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QVVUSF9CQVNFX1BBVEh9L3N0YXR1c2AsIHsgY3JlZGVudGlhbHM6IFwiaW5jbHVkZVwiIH0pO1xuICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoYEF1dGggc3RhdHVzIGZhaWxlZCB3aXRoICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICByZXR1cm4gYXV0aFN0YXR1cyhhd2FpdCByZXNwb25zZS5qc29uKCkpO1xufVxuXG4vKiogRW5kIHRoZSBjdXJyZW50IGJyb3dzZXIgc2Vzc2lvbiBhbmQgZm9sbG93IHRoZSBzZXJ2ZXIncyBzYW1lLW9yaWdpbiByZWRpcmVjdC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2dvdXQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QVVUSF9CQVNFX1BBVEh9L2xvZ291dGAsIHtcbiAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIGNyZWRlbnRpYWxzOiBcImluY2x1ZGVcIixcbiAgfSk7XG4gIGNvbnN0IHJlc3VsdCA9IHJlY29yZChhd2FpdCByZXNwb25zZS5qc29uKCkpO1xuICBpZiAoIXJlc3BvbnNlLm9rIHx8IHJlc3VsdD8ub2sgIT09IHRydWUgfHwgdHlwZW9mIHJlc3VsdC5yZWRpcmVjdFRvICE9PSBcInN0cmluZ1wiKSByZXR1cm4gZmFsc2U7XG4gIGJyb3dzZXJMb2NhdGlvbigpPy5hc3NpZ24ocmVzdWx0LnJlZGlyZWN0VG8pO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqIFJlcXVlc3QgYW4gZW1haWwgb25lLXRpbWUgcGFzc3dvcmQgZm9yIHRoZSBzdXBwbGllZCBhZGRyZXNzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcXVlc3RFbWFpbE90cChlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5lbWFpbE90cC5zZW5kVmVyaWZpY2F0aW9uT3RwKHsgZW1haWwsIHR5cGU6IFwic2lnbi1pblwiIH0pO1xuICByZXR1cm4gcmVzdWx0LmVycm9yID09PSBudWxsO1xufVxuXG4vKiogVmVyaWZ5IGFuIGVtYWlsIG9uZS10aW1lIHBhc3N3b3JkIGFuZCBlc3RhYmxpc2ggYSBicm93c2VyIHNlc3Npb24uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5RW1haWxPdHAoZW1haWw6IHN0cmluZywgb3RwOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2lnbkluLmVtYWlsT3RwKHsgZW1haWwsIG90cCwgbmFtZSB9KTtcbiAgcmV0dXJuIHJlc3VsdC5lcnJvciA9PT0gbnVsbDtcbn1cblxuLyoqIEF1dGhlbnRpY2F0ZSB3aXRoIGEgcGFzc2tleSwgb3B0aW9uYWxseSB1c2luZyBjb25kaXRpb25hbCBicm93c2VyIG1lZGlhdGlvbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduSW5QYXNza2V5KGF1dG9GaWxsID0gZmFsc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIGJlZ2luUGFzc2tleVNpZ25JbihhdXRvRmlsbCkucmVzdWx0O1xufVxuXG4vKiogRW5yb2xsIGEgcGFzc2tleSBmb3IgdGhlIGN1cnJlbnQgYXV0aGVudGljYXRlZCBhY2NvdW50LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZFBhc3NrZXkobmFtZT86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICByZXR1cm4gYmVnaW5QYXNza2V5RW5yb2xsbWVudChuYW1lKS5yZXN1bHQ7XG59XG5cbi8qKiBMaXN0IHBhc3NrZXlzIGVucm9sbGVkIGZvciB0aGUgY3VycmVudCBhdXRoZW50aWNhdGVkIGFjY291bnQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdFBhc3NrZXlzKCk6IFByb21pc2U8UGFzc2tleVtdPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5wYXNza2V5Lmxpc3RVc2VyUGFzc2tleXMoKTtcbiAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuZXJyb3IubWVzc2FnZSA/PyBgUGFzc2tleSBsaXN0aW5nIGZhaWxlZCB3aXRoICR7cmVzdWx0LmVycm9yLnN0YXR1c31gKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LmRhdGEgPz8gW107XG59XG5cbi8qKiBSZW5hbWUgYW4gZW5yb2xsZWQgcGFzc2tleS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5hbWVQYXNza2V5KGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQucGFzc2tleS51cGRhdGVQYXNza2V5KHsgaWQsIG5hbWUgfSk7XG4gIHJldHVybiByZXN1bHQuZXJyb3IgPT09IG51bGw7XG59XG5cbi8qKiBSZW1vdmUgYW4gZW5yb2xsZWQgcGFzc2tleS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW1vdmVQYXNza2V5KGlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnBhc3NrZXkuZGVsZXRlUGFzc2tleSh7IGlkIH0pO1xuICByZXR1cm4gcmVzdWx0LmVycm9yID09PSBudWxsO1xufVxuIl19
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUNMLGNBQWMsRUFFZCxrQkFBa0IsSUFBSSx3QkFBd0IsR0FDL0MsTUFBTSxXQUFXLENBQUM7QUFRbkIsU0FBUyxlQUFlO0lBQ3RCLE9BQVEsVUFBd0QsQ0FBQyxRQUFRLENBQUM7QUFDNUUsQ0FBQztBQUVELFNBQVMsT0FBTztJQUNkLE1BQU0sTUFBTSxHQUFHLGVBQWUsRUFBRSxFQUFFLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQztJQUMvRCxPQUFPLEdBQUcsTUFBTSxHQUFHLGNBQWMsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxNQUFvQjtJQUN6QyxPQUFPLGdCQUFnQixDQUFDO1FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUU7UUFDbEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0MsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUM7S0FDN0MsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sTUFBTSxHQUFHLGFBQWEsRUFBRSxDQUFDO0FBRS9CLFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxL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QUMsS0FBSyxDQUFDLE9BQU8sSUFBSSwrQkFBK0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRCxrQ0FBa0M7QUFDbEMsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQUMsRUFBVSxFQUFFLElBQVk7SUFDMUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDL0IsQ0FBQztBQUVELGtDQUFrQztBQUNsQyxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxFQUFVO0lBQzVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3Nlci1vbmx5IEJldHRlciBBdXRoIGNsaWVudCBzaGFyZWQgYnkgUmVhY3QgYW5kIHRoZSBob3N0ZWQgdHVubmVsIGxvZ2luLlxuICpcbiAqIFRoZSBvcGVyYXRpb24gaGVscGVycyBvd24gYm90aCBuZXR3b3JrIGNhbmNlbGxhdGlvbiBhbmQgdGhlIGFjdGl2ZSBXZWJBdXRoblxuICogY2VyZW1vbnkuIEVhY2ggb3BlcmF0aW9uIGNhcnJpZXMgYW4gaWRlbnRpdHkgdG9rZW4gc28gY2xlYW51cCBmcm9tIGFuIG9sZGVyXG4gKiBSZWFjdCBlZmZlY3QgY2Fubm90IGNhbmNlbCBhIG5ld2VyIG1hbnVhbCBhdHRlbXB0LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBwYXNza2V5Q2xpZW50LCB0eXBlIFBhc3NrZXkgfSBmcm9tIFwiQGJldHRlci1hdXRoL3Bhc3NrZXkvY2xpZW50XCI7XG5pbXBvcnQgeyBXZWJBdXRobkFib3J0U2VydmljZSB9IGZyb20gXCJAc2ltcGxld2ViYXV0aG4vYnJvd3NlclwiO1xuaW1wb3J0IHsgY3JlYXRlQXV0aENsaWVudCB9IGZyb20gXCJiZXR0ZXItYXV0aC9jbGllbnRcIjtcbmltcG9ydCB7IGVtYWlsT1RQQ2xpZW50IH0gZnJvbSBcImJldHRlci1hdXRoL2NsaWVudC9wbHVnaW5zXCI7XG5cbmltcG9ydCB7XG4gIEFVVEhfQkFTRV9QQVRILFxuICB0eXBlIEF1dGhTdGF0dXMsXG4gIHBhc3NrZXlEaXNwbGF5TmFtZSBhcyBmb3JtYXRQYXNza2V5RGlzcGxheU5hbWUsXG59IGZyb20gXCIuL2F1dGgudHNcIjtcblxuaW50ZXJmYWNlIEJyb3dzZXJMb2NhdGlvbiB7XG4gIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9yaWdpbjogc3RyaW5nO1xuICBhc3NpZ24odXJsOiBzdHJpbmcpOiB2b2lkO1xufVxuXG5mdW5jdGlvbiBicm93c2VyTG9jYXRpb24oKTogQnJvd3NlckxvY2F0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIChnbG9iYWxUaGlzIGFzIHVua25vd24gYXMgeyBsb2NhdGlvbj86IEJyb3dzZXJMb2NhdGlvbiB9KS5sb2NhdGlvbjtcbn1cblxuZnVuY3Rpb24gYmFzZVVSTCgpOiBzdHJpbmcge1xuICBjb25zdCBvcmlnaW4gPSBicm93c2VyTG9jYXRpb24oKT8ub3JpZ2luID8/IFwiaHR0cDovL2xvY2FsaG9zdFwiO1xuICByZXR1cm4gYCR7b3JpZ2lufSR7QVVUSF9CQVNFX1BBVEh9YDtcbn1cblxuZnVuY3Rpb24gYnJvd3NlckNsaWVudChzaWduYWw/OiBBYm9ydFNpZ25hbCkge1xuICByZXR1cm4gY3JlYXRlQXV0aENsaWVudCh7XG4gICAgYmFzZVVSTDogYmFzZVVSTCgpLFxuICAgIC4uLihzaWduYWwgPyB7IGZldGNoT3B0aW9uczogeyBzaWduYWwgfSB9IDoge30pLFxuICAgIHBsdWdpbnM6IFtlbWFpbE9UUENsaWVudCgpLCBwYXNza2V5Q2xpZW50KCldLFxuICB9KTtcbn1cblxuY29uc3QgY2xpZW50ID0gYnJvd3NlckNsaWVudCgpO1xuXG5mdW5jdGlvbiByZWNvcmQodmFsdWU6IHVua25vd24pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGxcbiAgICA/ICh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gYXV0aFN0YXR1cyh2YWx1ZTogdW5rbm93bik6IEF1dGhTdGF0dXMge1xuICBjb25zdCBpdGVtID0gcmVjb3JkKHZhbHVlKTtcbiAgaWYgKFxuICAgICFpdGVtIHx8XG4gICAgdHlwZW9mIGl0ZW0uYXV0aGVudGljYXRlZCAhPT0gXCJib29sZWFuXCIgfHxcbiAgICB0eXBlb2YgaXRlbS5lbmFibGVkICE9PSBcImJvb2xlYW5cIiB8fFxuICAgIChpdGVtLmVtYWlsICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGl0ZW0uZW1haWwgIT09IFwic3RyaW5nXCIpIHx8XG4gICAgKGl0ZW0ucGFzc2tleXNFbmFibGVkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGl0ZW0ucGFzc2tleXNFbmFibGVkICE9PSBcImJvb2xlYW5cIikgfHxcbiAgICAoaXRlbS5wYXNza2V5TmFtZVByZWZpeCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBpdGVtLnBhc3NrZXlOYW1lUHJlZml4ICE9PSBcInN0cmluZ1wiKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdXRoIHN0YXR1cyByZXR1cm5lZCBhbiBpbnZhbGlkIHJlc3BvbnNlXCIpO1xuICB9XG4gIHJldHVybiB7XG4gICAgYXV0aGVudGljYXRlZDogaXRlbS5hdXRoZW50aWNhdGVkLFxuICAgIGVuYWJsZWQ6IGl0ZW0uZW5hYmxlZCxcbiAgICAuLi4odHlwZW9mIGl0ZW0uZW1haWwgPT09IFwic3RyaW5nXCIgPyB7IGVtYWlsOiBpdGVtLmVtYWlsIH0gOiB7fSksXG4gICAgLi4uKHR5cGVvZiBpdGVtLnBhc3NrZXlzRW5hYmxlZCA9PT0gXCJib29sZWFuXCIgPyB7IHBhc3NrZXlzRW5hYmxlZDogaXRlbS5wYXNza2V5c0VuYWJsZWQgfSA6IHt9KSxcbiAgICAuLi4odHlwZW9mIGl0ZW0ucGFzc2tleU5hbWVQcmVmaXggPT09IFwic3RyaW5nXCJcbiAgICAgID8geyBwYXNza2V5TmFtZVByZWZpeDogaXRlbS5wYXNza2V5TmFtZVByZWZpeCB9XG4gICAgICA6IHt9KSxcbiAgfTtcbn1cblxuLyoqIEEgY2FuY2VsbGFibGUgcGFzc2tleSByZXF1ZXN0IGFuZCBXZWJBdXRobiBjZXJlbW9ueS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc2tleU9wZXJhdGlvbiB7XG4gIHJlYWRvbmx5IHJlc3VsdDogUHJvbWlzZTxib29sZWFuPjtcbiAgY2FuY2VsKCk6IHZvaWQ7XG59XG5cbmludGVyZmFjZSBBY3RpdmVQYXNza2V5T3BlcmF0aW9uIHtcbiAgcmVhZG9ubHkgaWQ6IHN5bWJvbDtcbiAgY2FuY2VsKCk6IHZvaWQ7XG59XG5cbmxldCBhY3RpdmVQYXNza2V5T3BlcmF0aW9uOiBBY3RpdmVQYXNza2V5T3BlcmF0aW9uIHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBpc0Fib3J0KGVycm9yOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlcnJvci5uYW1lID09PSBcIkFib3J0RXJyb3JcIjtcbn1cblxuZnVuY3Rpb24gYmVnaW5QYXNza2V5T3BlcmF0aW9uKFxuICBpbnZva2U6IChvcGVyYXRpb25DbGllbnQ6IFJldHVyblR5cGU8dHlwZW9mIGJyb3dzZXJDbGllbnQ+KSA9PiBQcm9taXNlPHsgZXJyb3I6IHVua25vd24gfT4sXG4pOiBQYXNza2V5T3BlcmF0aW9uIHtcbiAgYWN0aXZlUGFzc2tleU9wZXJhdGlvbj8uY2FuY2VsKCk7XG5cbiAgY29uc3QgaWQgPSBTeW1ib2woXCJwYXNza2V5LW9wZXJhdGlvblwiKTtcbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICBjb25zdCBjYW5jZWwgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKGFjdGl2ZVBhc3NrZXlPcGVyYXRpb24/LmlkICE9PSBpZCkgcmV0dXJuO1xuICAgIGFjdGl2ZVBhc3NrZXlPcGVyYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgV2ViQXV0aG5BYm9ydFNlcnZpY2UuY2FuY2VsQ2VyZW1vbnkoKTtcbiAgfTtcbiAgYWN0aXZlUGFzc2tleU9wZXJhdGlvbiA9IHsgaWQsIGNhbmNlbCB9O1xuXG4gIGNvbnN0IHJlc3VsdCA9IGludm9rZShicm93c2VyQ2xpZW50KGNvbnRyb2xsZXIuc2lnbmFsKSlcbiAgICAudGhlbigocmVzcG9uc2UpID0+ICFjYW5jZWxsZWQgJiYgcmVzcG9uc2UuZXJyb3IgPT09IG51bGwpXG4gICAgLmNhdGNoKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgaWYgKGNhbmNlbGxlZCB8fCBpc0Fib3J0KGVycm9yKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSlcbiAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICBpZiAoYWN0aXZlUGFzc2tleU9wZXJhdGlvbj8uaWQgPT09IGlkKSBhY3RpdmVQYXNza2V5T3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuXG4gIHJldHVybiB7IHJlc3VsdCwgY2FuY2VsIH07XG59XG5cbi8qKiBTdGFydCBhIHBhc3NrZXkgc2lnbi1pbiB3aG9zZSBsaWZldGltZSBpcyBleHBsaWNpdGx5IG93bmVkIGJ5IHRoZSBjYWxsZXIuICovXG5leHBvcnQgZnVuY3Rpb24gYmVnaW5QYXNza2V5U2lnbkluKGF1dG9GaWxsID0gZmFsc2UpOiBQYXNza2V5T3BlcmF0aW9uIHtcbiAgcmV0dXJuIGJlZ2luUGFzc2tleU9wZXJhdGlvbigob3BlcmF0aW9uQ2xpZW50KSA9PiBvcGVyYXRpb25DbGllbnQuc2lnbkluLnBhc3NrZXkoeyBhdXRvRmlsbCB9KSk7XG59XG5cbi8qKiBCdWlsZCBhIHBhc3NrZXkgZGlzcGxheSBuYW1lIGZvciB0aGUgY3VycmVudCBicm93c2VyIGhvc3RuYW1lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc3NrZXlEaXNwbGF5TmFtZShwcmVmaXg/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZm9ybWF0UGFzc2tleURpc3BsYXlOYW1lKHByZWZpeCwgYnJvd3NlckxvY2F0aW9uKCk/Lmhvc3RuYW1lID8/IFwiXCIpO1xufVxuXG4vKiogV2hldGhlciB0aGlzIGJyb3dzZXIgY2FuIHJ1biBhIHNlY3VyZSBXZWJBdXRobiBwYXNza2V5IGNlcmVtb255LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc3NrZXlzQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICBjb25zdCBzY29wZSA9IGdsb2JhbFRoaXMgYXMgdW5rbm93biBhcyB7XG4gICAgaXNTZWN1cmVDb250ZXh0PzogYm9vbGVhbjtcbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsPzogdW5rbm93bjtcbiAgICBuYXZpZ2F0b3I/OiB7XG4gICAgICBjcmVkZW50aWFscz86IHtcbiAgICAgICAgY3JlYXRlPzogdW5rbm93bjtcbiAgICAgICAgZ2V0PzogdW5rbm93bjtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgc2NvcGUuaXNTZWN1cmVDb250ZXh0ICE9PSBmYWxzZSAmJlxuICAgIHNjb3BlLlB1YmxpY0tleUNyZWRlbnRpYWwgJiZcbiAgICBzY29wZS5uYXZpZ2F0b3I/LmNyZWRlbnRpYWxzICYmXG4gICAgdHlwZW9mIHNjb3BlLm5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgIHR5cGVvZiBzY29wZS5uYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0ID09PSBcImZ1bmN0aW9uXCIsXG4gICk7XG59XG5cbi8qKlxuICogU3RhcnQgYSBwYXNza2V5IHJlZ2lzdHJhdGlvbiB3aG9zZSBsaWZldGltZSBpcyBleHBsaWNpdGx5IG93bmVkIGJ5IHRoZSBjYWxsZXIuXG4gKiBUaGUgZGlzcGxheSBuYW1lIGRlZmF1bHRzIHRvIHRoZSBodW1hbml6ZWQgYnJvd3NlciBzdWJkb21haW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZWdpblBhc3NrZXlFbnJvbGxtZW50KG5hbWU/OiBzdHJpbmcpOiBQYXNza2V5T3BlcmF0aW9uIHtcbiAgY29uc3QgcGFzc2tleU5hbWUgPSBuYW1lID8/IHBhc3NrZXlEaXNwbGF5TmFtZSgpO1xuICByZXR1cm4gYmVnaW5QYXNza2V5T3BlcmF0aW9uKChvcGVyYXRpb25DbGllbnQpID0+XG4gICAgb3BlcmF0aW9uQ2xpZW50LnBhc3NrZXkuYWRkUGFzc2tleShwYXNza2V5TmFtZSA/IHsgbmFtZTogcGFzc2tleU5hbWUgfSA6IHVuZGVmaW5lZCksXG4gICk7XG59XG5cbi8qKiBDYW5jZWwgdGhlIGN1cnJlbnRseSBhY3RpdmUgcGFzc2tleSByZXF1ZXN0IGFuZCBicm93c2VyIGNlcmVtb255LCBpZiBhbnkuICovXG5leHBvcnQgZnVuY3Rpb24gY2FuY2VsUGFzc2tleU9wZXJhdGlvbigpOiB2b2lkIHtcbiAgYWN0aXZlUGFzc2tleU9wZXJhdGlvbj8uY2FuY2VsKCk7XG59XG5cbi8qKiBSZWFkIHRoZSBjdXJyZW50IGJyb3dzZXIgc2Vzc2lvbiBzdGF0dXMgZnJvbSB0aGUgc2hhcmVkIGF1dGggZW5kcG9pbnQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXV0aFN0YXR1cygpOiBQcm9taXNlPEF1dGhTdGF0dXM+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtBVVRIX0JBU0VfUEFUSH0vc3RhdHVzYCwgeyBjcmVkZW50aWFsczogXCJpbmNsdWRlXCIgfSk7XG4gIGlmICghcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcihgQXV0aCBzdGF0dXMgZmFpbGVkIHdpdGggJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIHJldHVybiBhdXRoU3RhdHVzKGF3YWl0IHJlc3BvbnNlLmpzb24oKSk7XG59XG5cbi8qKiBFbmQgdGhlIGN1cnJlbnQgYnJvd3NlciBzZXNzaW9uIGFuZCBmb2xsb3cgdGhlIHNlcnZlcidzIHNhbWUtb3JpZ2luIHJlZGlyZWN0LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvZ291dCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtBVVRIX0JBU0VfUEFUSH0vbG9nb3V0YCwge1xuICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgY3JlZGVudGlhbHM6IFwiaW5jbHVkZVwiLFxuICB9KTtcbiAgY29uc3QgcmVzdWx0ID0gcmVjb3JkKGF3YWl0IHJlc3BvbnNlLmpzb24oKSk7XG4gIGlmICghcmVzcG9uc2Uub2sgfHwgcmVzdWx0Py5vayAhPT0gdHJ1ZSB8fCB0eXBlb2YgcmVzdWx0LnJlZGlyZWN0VG8gIT09IFwic3RyaW5nXCIpIHJldHVybiBmYWxzZTtcbiAgYnJvd3NlckxvY2F0aW9uKCk/LmFzc2lnbihyZXN1bHQucmVkaXJlY3RUbyk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKiogUmVxdWVzdCBhbiBlbWFpbCBvbmUtdGltZSBwYXNzd29yZCBmb3IgdGhlIHN1cHBsaWVkIGFkZHJlc3MuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVxdWVzdEVtYWlsT3RwKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LmVtYWlsT3RwLnNlbmRWZXJpZmljYXRpb25PdHAoeyBlbWFpbCwgdHlwZTogXCJzaWduLWluXCIgfSk7XG4gIHJldHVybiByZXN1bHQuZXJyb3IgPT09IG51bGw7XG59XG5cbi8qKiBWZXJpZnkgYW4gZW1haWwgb25lLXRpbWUgcGFzc3dvcmQgYW5kIGVzdGFibGlzaCBhIGJyb3dzZXIgc2Vzc2lvbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbE90cChlbWFpbDogc3RyaW5nLCBvdHA6IHN0cmluZywgbmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5zaWduSW4uZW1haWxPdHAoeyBlbWFpbCwgb3RwLCBuYW1lIH0pO1xuICByZXR1cm4gcmVzdWx0LmVycm9yID09PSBudWxsO1xufVxuXG4vKiogQXV0aGVudGljYXRlIHdpdGggYSBwYXNza2V5LCBvcHRpb25hbGx5IHVzaW5nIGNvbmRpdGlvbmFsIGJyb3dzZXIgbWVkaWF0aW9uLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25JblBhc3NrZXkoYXV0b0ZpbGwgPSBmYWxzZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICByZXR1cm4gYmVnaW5QYXNza2V5U2lnbkluKGF1dG9GaWxsKS5yZXN1bHQ7XG59XG5cbi8qKiBFbnJvbGwgYSBwYXNza2V5IGZvciB0aGUgY3VycmVudCBhdXRoZW50aWNhdGVkIGFjY291bnQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkUGFzc2tleShuYW1lPzogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHJldHVybiBiZWdpblBhc3NrZXlFbnJvbGxtZW50KG5hbWUpLnJlc3VsdDtcbn1cblxuLyoqIExpc3QgcGFzc2tleXMgZW5yb2xsZWQgZm9yIHRoZSBjdXJyZW50IGF1dGhlbnRpY2F0ZWQgYWNjb3VudC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaXN0UGFzc2tleXMoKTogUHJvbWlzZTxQYXNza2V5W10+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnBhc3NrZXkubGlzdFVzZXJQYXNza2V5cygpO1xuICBpZiAocmVzdWx0LmVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5lcnJvci5tZXNzYWdlID8/IGBQYXNza2V5IGxpc3RpbmcgZmFpbGVkIHdpdGggJHtyZXN1bHQuZXJyb3Iuc3RhdHVzfWApO1xuICB9XG4gIHJldHVybiByZXN1bHQuZGF0YSA/PyBbXTtcbn1cblxuLyoqIFJlbmFtZSBhbiBlbnJvbGxlZCBwYXNza2V5LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmFtZVBhc3NrZXkoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5wYXNza2V5LnVwZGF0ZVBhc3NrZXkoeyBpZCwgbmFtZSB9KTtcbiAgcmV0dXJuIHJlc3VsdC5lcnJvciA9PT0gbnVsbDtcbn1cblxuLyoqIFJlbW92ZSBhbiBlbnJvbGxlZCBwYXNza2V5LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbW92ZVBhc3NrZXkoaWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQucGFzc2tleS5kZWxldGVQYXNza2V5KHsgaWQgfSk7XG4gIHJldHVybiByZXN1bHQuZXJyb3IgPT09IG51bGw7XG59XG4iXX0=
|
package/lib/src/client.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { normalizedUrlSchema } from "@dbx-tools/shared-core";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { authTypeSchema, targetKindSchema } from "./config-schema.js";
|
|
9
9
|
/** Authentication source supplied by a Databricks Python runtime. */
|
|
@@ -11,11 +11,11 @@ export const RUNTIME_AUTH_TYPE = "runtime";
|
|
|
11
11
|
/** Resolved secret-free Databricks authentication client fields. */
|
|
12
12
|
export const databricksAuthClientInfoSchema = z.object({
|
|
13
13
|
profile: z.string().min(1).optional(),
|
|
14
|
-
host:
|
|
14
|
+
host: normalizedUrlSchema,
|
|
15
15
|
accountId: z.string().min(1).optional(),
|
|
16
16
|
workspaceId: z.string().min(1).optional(),
|
|
17
17
|
target: targetKindSchema,
|
|
18
18
|
authType: authTypeSchema.or(z.literal(RUNTIME_AUTH_TYPE)),
|
|
19
19
|
principal: z.string().min(1),
|
|
20
20
|
});
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEUscUVBQXFFO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFNBQWtCLENBQUM7QUFFcEQsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLElBQUksRUFBRSxtQkFBbUI7SUFDekIsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN6QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLFFBQVEsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN6RCxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Q0FDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyLXNhZmUgRGF0YWJyaWNrcyBhdXRoZW50aWNhdGlvbiBzdGF0dXMgY29udHJhY3RzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBub3JtYWxpemVkVXJsU2NoZW1hIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmltcG9ydCB7IGF1dGhUeXBlU2NoZW1hLCB0YXJnZXRLaW5kU2NoZW1hIH0gZnJvbSBcIi4vY29uZmlnLXNjaGVtYS50c1wiO1xuXG4vKiogQXV0aGVudGljYXRpb24gc291cmNlIHN1cHBsaWVkIGJ5IGEgRGF0YWJyaWNrcyBQeXRob24gcnVudGltZS4gKi9cbmV4cG9ydCBjb25zdCBSVU5USU1FX0FVVEhfVFlQRSA9IFwicnVudGltZVwiIGFzIGNvbnN0O1xuXG4vKiogUmVzb2x2ZWQgc2VjcmV0LWZyZWUgRGF0YWJyaWNrcyBhdXRoZW50aWNhdGlvbiBjbGllbnQgZmllbGRzLiAqL1xuZXhwb3J0IGNvbnN0IGRhdGFicmlja3NBdXRoQ2xpZW50SW5mb1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgcHJvZmlsZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgaG9zdDogbm9ybWFsaXplZFVybFNjaGVtYSxcbiAgYWNjb3VudElkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICB3b3Jrc3BhY2VJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgdGFyZ2V0OiB0YXJnZXRLaW5kU2NoZW1hLFxuICBhdXRoVHlwZTogYXV0aFR5cGVTY2hlbWEub3Ioei5saXRlcmFsKFJVTlRJTUVfQVVUSF9UWVBFKSksXG4gIHByaW5jaXBhbDogei5zdHJpbmcoKS5taW4oMSksXG59KTtcbi8qKiBSZXNvbHZlZCBzZWNyZXQtZnJlZSBEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIGNsaWVudCBmaWVsZHMuICovXG5leHBvcnQgdHlwZSBEYXRhYnJpY2tzQXV0aENsaWVudEluZm8gPSB6LmluZmVyPHR5cGVvZiBkYXRhYnJpY2tzQXV0aENsaWVudEluZm9TY2hlbWE+O1xuIl19
|
package/lib/src/config-schema.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { databricksEnvironmentNames } from "@dbx-tools/shared-core";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { AuthType, TargetKind } from "./config.js";
|
|
9
9
|
export const authTypeSchema = z
|
|
@@ -14,9 +14,9 @@ export const authTypeSchema = z
|
|
|
14
14
|
AuthType.AppOnBehalfOf,
|
|
15
15
|
AuthType.AppServicePrincipal,
|
|
16
16
|
])
|
|
17
|
-
.meta({ env:
|
|
17
|
+
.meta({ env: databricksEnvironmentNames.authType, flag: false })
|
|
18
18
|
.describe("Databricks authentication type values.");
|
|
19
19
|
export const targetKindSchema = z
|
|
20
20
|
.enum([TargetKind.Workspace, TargetKind.Account, TargetKind.Unified])
|
|
21
21
|
.describe("Databricks authentication target values.");
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWctc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDO0tBQzVCLElBQUksQ0FBQztJQUNKLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyxRQUFRO0lBQ2pCLFFBQVEsQ0FBQyxtQkFBbUI7SUFDNUIsUUFBUSxDQUFDLGFBQWE7SUFDdEIsUUFBUSxDQUFDLG1CQUFtQjtDQUM3QixDQUFDO0tBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDL0QsUUFBUSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQztLQUM5QixJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3BFLFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyLXNhZmUgc2NoZW1hcyBmb3IgRGF0YWJyaWNrcyBhdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9uIHZhbHVlcy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgZGF0YWJyaWNrc0Vudmlyb25tZW50TmFtZXMgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgQXV0aFR5cGUsIFRhcmdldEtpbmQgfSBmcm9tIFwiLi9jb25maWcudHNcIjtcblxuZXhwb3J0IGNvbnN0IGF1dGhUeXBlU2NoZW1hID0gelxuICAuZW51bShbXG4gICAgQXV0aFR5cGUuRGF0YWJyaWNrc0NsaSxcbiAgICBBdXRoVHlwZS5PQXV0aE0yTSxcbiAgICBBdXRoVHlwZS5QZXJzb25hbEFjY2Vzc1Rva2VuLFxuICAgIEF1dGhUeXBlLkFwcE9uQmVoYWxmT2YsXG4gICAgQXV0aFR5cGUuQXBwU2VydmljZVByaW5jaXBhbCxcbiAgXSlcbiAgLm1ldGEoeyBlbnY6IGRhdGFicmlja3NFbnZpcm9ubWVudE5hbWVzLmF1dGhUeXBlLCBmbGFnOiBmYWxzZSB9KVxuICAuZGVzY3JpYmUoXCJEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIHR5cGUgdmFsdWVzLlwiKTtcblxuZXhwb3J0IGNvbnN0IHRhcmdldEtpbmRTY2hlbWEgPSB6XG4gIC5lbnVtKFtUYXJnZXRLaW5kLldvcmtzcGFjZSwgVGFyZ2V0S2luZC5BY2NvdW50LCBUYXJnZXRLaW5kLlVuaWZpZWRdKVxuICAuZGVzY3JpYmUoXCJEYXRhYnJpY2tzIGF1dGhlbnRpY2F0aW9uIHRhcmdldCB2YWx1ZXMuXCIpO1xuIl19
|
package/lib/src/profile.js
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { normalizedUrlSchema } from "@dbx-tools/shared-core";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { authTypeSchema, targetKindSchema } from "./config-schema.js";
|
|
9
9
|
export const databricksProfileSummarySchema = z
|
|
10
10
|
.object({
|
|
11
11
|
name: z.string().min(1).describe("Profile name from the Databricks CLI configuration."),
|
|
12
|
-
host:
|
|
12
|
+
host: normalizedUrlSchema.optional().describe("Workspace or account host URL."),
|
|
13
13
|
accountId: z
|
|
14
14
|
.string()
|
|
15
15
|
.min(1)
|
|
@@ -37,4 +37,4 @@ export const databricksProfileSelectionSchema = z
|
|
|
37
37
|
}),
|
|
38
38
|
])
|
|
39
39
|
.describe("Ambient or named-profile selector value.");
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDO0tBQzVDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxxREFBcUQsQ0FBQztJQUN2RixJQUFJLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGdDQUFnQyxDQUFDO0lBQy9FLFNBQVMsRUFBRSxDQUFDO1NBQ1QsTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNOLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQyxpREFBaUQsQ0FBQztJQUM5RCxXQUFXLEVBQUUsQ0FBQztTQUNYLE1BQU0sRUFBRTtTQUNSLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDTixRQUFRLEVBQUU7U0FDVixRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDakUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsQ0FDL0IsMkVBQTJFLENBQzVFO0lBQ0QsUUFBUSxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsdUNBQXVDLENBQUM7SUFDMUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLHFEQUFxRCxDQUFDO0NBQzdGLENBQUM7S0FDRCxRQUFRLENBQUMsMENBQTBDLENBQUMsQ0FBQztBQUl4RCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDO0tBQ3pDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQztLQUNyQyxRQUFRLENBQUMsMENBQTBDLENBQUMsQ0FBQztBQUl4RCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDO0tBQzlDLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtJQUMxQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1AsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQzFCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxzQ0FBc0MsQ0FBQztLQUNuRixDQUFDO0NBQ0gsQ0FBQztLQUNELFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyLXNhZmUgRGF0YWJyaWNrcyBwcm9maWxlLXNlbGVjdG9yIGNvbnRyYWN0cy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgbm9ybWFsaXplZFVybFNjaGVtYSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBhdXRoVHlwZVNjaGVtYSwgdGFyZ2V0S2luZFNjaGVtYSB9IGZyb20gXCIuL2NvbmZpZy1zY2hlbWEudHNcIjtcblxuZXhwb3J0IGNvbnN0IGRhdGFicmlja3NQcm9maWxlU3VtbWFyeVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgbmFtZTogei5zdHJpbmcoKS5taW4oMSkuZGVzY3JpYmUoXCJQcm9maWxlIG5hbWUgZnJvbSB0aGUgRGF0YWJyaWNrcyBDTEkgY29uZmlndXJhdGlvbi5cIiksXG4gICAgaG9zdDogbm9ybWFsaXplZFVybFNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiV29ya3NwYWNlIG9yIGFjY291bnQgaG9zdCBVUkwuXCIpLFxuICAgIGFjY291bnRJZDogelxuICAgICAgLnN0cmluZygpXG4gICAgICAubWluKDEpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiQWNjb3VudCBpZCB3aGVuIHRoZSBwcm9maWxlIHRhcmdldHMgYW4gYWNjb3VudC5cIiksXG4gICAgd29ya3NwYWNlSWQ6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLm1pbigxKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcIldvcmtzcGFjZSBpZCB3aGVuIHRoZSBwcm9maWxlIHRhcmdldHMgYSB3b3Jrc3BhY2UuXCIpLFxuICAgIHRhcmdldDogdGFyZ2V0S2luZFNjaGVtYS5kZXNjcmliZShcbiAgICAgIFwiV2hldGhlciB0aGlzIHByb2ZpbGUgYXV0aGVudGljYXRlcyBhIHdvcmtzcGFjZSwgYWNjb3VudCwgb3IgdW5pZmllZCBob3N0LlwiLFxuICAgICksXG4gICAgYXV0aFR5cGU6IGF1dGhUeXBlU2NoZW1hLmRlc2NyaWJlKFwiQ3JlZGVudGlhbCBraW5kIHVzZWQgYnkgdGhpcyBwcm9maWxlLlwiKSxcbiAgICBwcmluY2lwYWw6IHouc3RyaW5nKCkubWluKDEpLmRlc2NyaWJlKFwiU2VjcmV0LWZyZWUgcHJpbmNpcGFsIGxhYmVsIHN1aXRhYmxlIGZvciBzZWxlY3RvcnMuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJTZWNyZXQtZnJlZSBEYXRhYnJpY2tzIHByb2ZpbGUgbWV0YWRhdGEuXCIpO1xuXG5leHBvcnQgdHlwZSBEYXRhYnJpY2tzUHJvZmlsZVN1bW1hcnkgPSB6LmluZmVyPHR5cGVvZiBkYXRhYnJpY2tzUHJvZmlsZVN1bW1hcnlTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgZGF0YWJyaWNrc1Byb2ZpbGVMaXN0U2NoZW1hID0gelxuICAuYXJyYXkoZGF0YWJyaWNrc1Byb2ZpbGVTdW1tYXJ5U2NoZW1hKVxuICAuZGVzY3JpYmUoXCJMaXN0IG9mIHNlY3JldC1mcmVlIERhdGFicmlja3MgcHJvZmlsZXMuXCIpO1xuXG5leHBvcnQgdHlwZSBEYXRhYnJpY2tzUHJvZmlsZUxpc3QgPSB6LmluZmVyPHR5cGVvZiBkYXRhYnJpY2tzUHJvZmlsZUxpc3RTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgZGF0YWJyaWNrc1Byb2ZpbGVTZWxlY3Rpb25TY2hlbWEgPSB6XG4gIC5kaXNjcmltaW5hdGVkVW5pb24oXCJraW5kXCIsIFtcbiAgICB6Lm9iamVjdCh7IGtpbmQ6IHoubGl0ZXJhbChcImFtYmllbnRcIikgfSksXG4gICAgei5vYmplY3Qoe1xuICAgICAga2luZDogei5saXRlcmFsKFwicHJvZmlsZVwiKSxcbiAgICAgIHByb2ZpbGU6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5kZXNjcmliZShcIk5hbWVkIERhdGFicmlja3MgQ0xJIHByb2ZpbGUgdG8gdXNlLlwiKSxcbiAgICB9KSxcbiAgXSlcbiAgLmRlc2NyaWJlKFwiQW1iaWVudCBvciBuYW1lZC1wcm9maWxlIHNlbGVjdG9yIHZhbHVlLlwiKTtcblxuZXhwb3J0IHR5cGUgRGF0YWJyaWNrc1Byb2ZpbGVTZWxlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBkYXRhYnJpY2tzUHJvZmlsZVNlbGVjdGlvblNjaGVtYT47XG4iXX0=
|
package/lib/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/
|
|
1
|
+
{"root":["../src/auth.ts","../src/browser.ts","../src/client.ts","../src/config-schema.ts","../src/config.ts","../src/profile.ts","../index.ts"],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@better-auth/passkey": "1.7.6",
|
|
26
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
26
|
+
"@dbx-tools/shared-core": "^0.9.157",
|
|
27
27
|
"@simplewebauthn/browser": "13.3.0",
|
|
28
28
|
"better-auth": "1.7.6",
|
|
29
29
|
"zod": "4.3.6"
|
|
@@ -39,38 +39,10 @@
|
|
|
39
39
|
"types": "./lib/index.d.ts",
|
|
40
40
|
"default": "./lib/index.js"
|
|
41
41
|
},
|
|
42
|
-
"./auth": {
|
|
43
|
-
"types": "./lib/src/auth.d.ts",
|
|
44
|
-
"default": "./lib/src/auth.js"
|
|
45
|
-
},
|
|
46
|
-
"./browser": {
|
|
47
|
-
"types": "./lib/src/browser.d.ts",
|
|
48
|
-
"default": "./lib/src/browser.js"
|
|
49
|
-
},
|
|
50
|
-
"./client": {
|
|
51
|
-
"types": "./lib/src/client.d.ts",
|
|
52
|
-
"default": "./lib/src/client.js"
|
|
53
|
-
},
|
|
54
|
-
"./config-schema": {
|
|
55
|
-
"types": "./lib/src/config-schema.d.ts",
|
|
56
|
-
"default": "./lib/src/config-schema.js"
|
|
57
|
-
},
|
|
58
|
-
"./config": {
|
|
59
|
-
"types": "./lib/src/config.d.ts",
|
|
60
|
-
"default": "./lib/src/config.js"
|
|
61
|
-
},
|
|
62
|
-
"./profile": {
|
|
63
|
-
"types": "./lib/src/profile.d.ts",
|
|
64
|
-
"default": "./lib/src/profile.js"
|
|
65
|
-
},
|
|
66
|
-
"./*": {
|
|
67
|
-
"types": "./lib/src/*/index.d.ts",
|
|
68
|
-
"default": "./lib/src/*/index.js"
|
|
69
|
-
},
|
|
70
42
|
"./package.json": "./package.json"
|
|
71
43
|
}
|
|
72
44
|
},
|
|
73
|
-
"version": "0.9.
|
|
45
|
+
"version": "0.9.157",
|
|
74
46
|
"types": "./lib/index.d.ts",
|
|
75
47
|
"dbxToolsConfig": {
|
|
76
48
|
"tags": [
|
|
@@ -83,38 +55,10 @@
|
|
|
83
55
|
"types": "./lib/index.d.ts",
|
|
84
56
|
"default": "./lib/index.js"
|
|
85
57
|
},
|
|
86
|
-
"./auth": {
|
|
87
|
-
"types": "./lib/src/auth.d.ts",
|
|
88
|
-
"default": "./lib/src/auth.js"
|
|
89
|
-
},
|
|
90
|
-
"./browser": {
|
|
91
|
-
"types": "./lib/src/browser.d.ts",
|
|
92
|
-
"default": "./lib/src/browser.js"
|
|
93
|
-
},
|
|
94
|
-
"./client": {
|
|
95
|
-
"types": "./lib/src/client.d.ts",
|
|
96
|
-
"default": "./lib/src/client.js"
|
|
97
|
-
},
|
|
98
|
-
"./config-schema": {
|
|
99
|
-
"types": "./lib/src/config-schema.d.ts",
|
|
100
|
-
"default": "./lib/src/config-schema.js"
|
|
101
|
-
},
|
|
102
|
-
"./config": {
|
|
103
|
-
"types": "./lib/src/config.d.ts",
|
|
104
|
-
"default": "./lib/src/config.js"
|
|
105
|
-
},
|
|
106
|
-
"./profile": {
|
|
107
|
-
"types": "./lib/src/profile.d.ts",
|
|
108
|
-
"default": "./lib/src/profile.js"
|
|
109
|
-
},
|
|
110
|
-
"./*": {
|
|
111
|
-
"types": "./lib/src/*/index.d.ts",
|
|
112
|
-
"default": "./lib/src/*/index.js"
|
|
113
|
-
},
|
|
114
58
|
"./package.json": "./package.json"
|
|
115
59
|
},
|
|
116
60
|
"files": [
|
|
117
|
-
"index
|
|
61
|
+
"index*.ts",
|
|
118
62
|
"src",
|
|
119
63
|
"lib"
|
|
120
64
|
],
|
package/src/auth.ts
CHANGED
|
@@ -8,12 +8,11 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import { trimToNull, toLabel } from "@dbx-tools/shared-core";
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export { AUTH_BASE_PATH };
|
|
14
|
+
/** Canonical mount for Better Auth and the dbx-tools compatibility routes. */
|
|
15
|
+
export const AUTH_BASE_PATH = "/api/email/auth";
|
|
17
16
|
|
|
18
17
|
/**
|
|
19
18
|
* True only for the auth mount itself or one of its descendants.
|
|
@@ -38,9 +37,9 @@ export function passkeyDisplayName(
|
|
|
38
37
|
prefix: string | undefined,
|
|
39
38
|
hostname: string,
|
|
40
39
|
): string | undefined {
|
|
41
|
-
const normalizedPrefix =
|
|
42
|
-
const subdomain =
|
|
43
|
-
const suffix = subdomain ?
|
|
40
|
+
const normalizedPrefix = trimToNull(prefix);
|
|
41
|
+
const subdomain = trimToNull(hostname)?.split(".", 1)[0];
|
|
42
|
+
const suffix = subdomain ? toLabel(subdomain) : undefined;
|
|
44
43
|
if (!normalizedPrefix) return suffix;
|
|
45
44
|
if (!suffix || normalizedPrefix.toLowerCase().endsWith(suffix.toLowerCase())) {
|
|
46
45
|
return normalizedPrefix;
|
package/src/browser.ts
CHANGED
|
@@ -13,11 +13,11 @@ import { WebAuthnAbortService } from "@simplewebauthn/browser";
|
|
|
13
13
|
import { createAuthClient } from "better-auth/client";
|
|
14
14
|
import { emailOTPClient } from "better-auth/client/plugins";
|
|
15
15
|
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
import {
|
|
17
|
+
AUTH_BASE_PATH,
|
|
18
|
+
type AuthStatus,
|
|
19
|
+
passkeyDisplayName as formatPasskeyDisplayName,
|
|
20
|
+
} from "./auth.ts";
|
|
21
21
|
|
|
22
22
|
interface BrowserLocation {
|
|
23
23
|
readonly hostname: string;
|
package/src/client.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { normalizedUrlSchema } from "@dbx-tools/shared-core";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
|
|
10
10
|
import { authTypeSchema, targetKindSchema } from "./config-schema.ts";
|
|
@@ -15,7 +15,7 @@ export const RUNTIME_AUTH_TYPE = "runtime" as const;
|
|
|
15
15
|
/** Resolved secret-free Databricks authentication client fields. */
|
|
16
16
|
export const databricksAuthClientInfoSchema = z.object({
|
|
17
17
|
profile: z.string().min(1).optional(),
|
|
18
|
-
host:
|
|
18
|
+
host: normalizedUrlSchema,
|
|
19
19
|
accountId: z.string().min(1).optional(),
|
|
20
20
|
workspaceId: z.string().min(1).optional(),
|
|
21
21
|
target: targetKindSchema,
|
package/src/config-schema.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { databricksEnvironmentNames } from "@dbx-tools/shared-core";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
|
|
10
10
|
import { AuthType, TargetKind } from "./config.ts";
|
|
@@ -17,7 +17,7 @@ export const authTypeSchema = z
|
|
|
17
17
|
AuthType.AppOnBehalfOf,
|
|
18
18
|
AuthType.AppServicePrincipal,
|
|
19
19
|
])
|
|
20
|
-
.meta({ env:
|
|
20
|
+
.meta({ env: databricksEnvironmentNames.authType, flag: false })
|
|
21
21
|
.describe("Databricks authentication type values.");
|
|
22
22
|
|
|
23
23
|
export const targetKindSchema = z
|
package/src/profile.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { normalizedUrlSchema } from "@dbx-tools/shared-core";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
|
|
10
10
|
import { authTypeSchema, targetKindSchema } from "./config-schema.ts";
|
|
@@ -12,7 +12,7 @@ import { authTypeSchema, targetKindSchema } from "./config-schema.ts";
|
|
|
12
12
|
export const databricksProfileSummarySchema = z
|
|
13
13
|
.object({
|
|
14
14
|
name: z.string().min(1).describe("Profile name from the Databricks CLI configuration."),
|
|
15
|
-
host:
|
|
15
|
+
host: normalizedUrlSchema.optional().describe("Workspace or account host URL."),
|
|
16
16
|
accountId: z
|
|
17
17
|
.string()
|
|
18
18
|
.min(1)
|
package/lib/src/_route.d.ts
DELETED
package/lib/src/_route.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/** Canonical mount for Better Auth and the dbx-tools compatibility routes. */
|
|
2
|
-
export const AUTH_BASE_PATH = "/api/email/auth";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX3JvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL19yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIENhbm9uaWNhbCBtb3VudCBmb3IgQmV0dGVyIEF1dGggYW5kIHRoZSBkYngtdG9vbHMgY29tcGF0aWJpbGl0eSByb3V0ZXMuICovXG5leHBvcnQgY29uc3QgQVVUSF9CQVNFX1BBVEggPSBcIi9hcGkvZW1haWwvYXV0aFwiO1xuIl19
|
package/src/_route.ts
DELETED