@dbx-tools/databricks 0.9.31 → 0.9.36
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 +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/src/workspace-client.d.ts +17 -0
- package/lib/src/workspace-client.js +42 -3
- package/package.json +52 -11
- package/src/workspace-client.ts +46 -2
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/databricks";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.36";
|
|
7
7
|
export * as cloud from "./src/cloud.ts";
|
|
8
8
|
export * as databricksFS from "./src/databricks-fs.ts";
|
|
9
9
|
export * as databricksPath from "./src/databricks-path.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/databricks";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.36";
|
|
3
3
|
export * as cloud from "./src/cloud.ts";
|
|
4
4
|
export * as databricksFS from "./src/databricks-fs.ts";
|
|
5
5
|
export * as databricksPath from "./src/databricks-path.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/databricks";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.36";
|
|
6
6
|
export * as cloud from "./src/cloud.js";
|
|
7
7
|
export * as databricksFS from "./src/databricks-fs.js";
|
|
8
8
|
export * as databricksPath from "./src/databricks-path.js";
|
|
@@ -12,4 +12,4 @@ export { RANGE_CACHE_TTL_MS, CloudProvider } from "./src/cloud.js";
|
|
|
12
12
|
export { DatabricksFileSystem } from "./src/databricks-fs.js";
|
|
13
13
|
export { isHomeRelativePath } from "./src/databricks-path.js";
|
|
14
14
|
export { getPublicIp } from "./src/net.js";
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssY0FBYyxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL2RhdGFicmlja3NcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4zNlwiO1xuZXhwb3J0ICogYXMgY2xvdWQgZnJvbSBcIi4vc3JjL2Nsb3VkLnRzXCI7XG5leHBvcnQgKiBhcyBkYXRhYnJpY2tzRlMgZnJvbSBcIi4vc3JjL2RhdGFicmlja3MtZnMudHNcIjtcbmV4cG9ydCAqIGFzIGRhdGFicmlja3NQYXRoIGZyb20gXCIuL3NyYy9kYXRhYnJpY2tzLXBhdGgudHNcIjtcbmV4cG9ydCAqIGFzIG5ldCBmcm9tIFwiLi9zcmMvbmV0LnRzXCI7XG5leHBvcnQgKiBhcyB3b3Jrc3BhY2VDbGllbnQgZnJvbSBcIi4vc3JjL3dvcmtzcGFjZS1jbGllbnQudHNcIjtcbmV4cG9ydCB7IFJBTkdFX0NBQ0hFX1RUTF9NUywgQ2xvdWRQcm92aWRlciB9IGZyb20gXCIuL3NyYy9jbG91ZC50c1wiO1xuZXhwb3J0IHR5cGUgeyBDbG91ZExvY2F0aW9uIH0gZnJvbSBcIi4vc3JjL2Nsb3VkLnRzXCI7XG5leHBvcnQgeyBEYXRhYnJpY2tzRmlsZVN5c3RlbSB9IGZyb20gXCIuL3NyYy9kYXRhYnJpY2tzLWZzLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NGaWxlU3lzdGVtT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9kYXRhYnJpY2tzLWZzLnRzXCI7XG5leHBvcnQgeyBpc0hvbWVSZWxhdGl2ZVBhdGggfSBmcm9tIFwiLi9zcmMvZGF0YWJyaWNrcy1wYXRoLnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NGaWxlc0JhY2tlbmQsIE5vcm1hbGl6ZURhdGFicmlja3NSb290T3B0aW9ucywgUmVzb2x2ZURhdGFicmlja3NSb290T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9kYXRhYnJpY2tzLXBhdGgudHNcIjtcbmV4cG9ydCB7IGdldFB1YmxpY0lwIH0gZnJvbSBcIi4vc3JjL25ldC50c1wiO1xuZXhwb3J0IHR5cGUgeyBXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiLi9zcmMvd29ya3NwYWNlLWNsaWVudC50c1wiO1xuIl19
|
|
@@ -6,9 +6,26 @@
|
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
8
|
import { type WorkspaceClient as AppKitWorkspaceClient } from "@databricks/appkit";
|
|
9
|
+
import { type DatabricksAuthOptions } from "@dbx-tools/auth";
|
|
9
10
|
import { net } from "@dbx-tools/shared-core";
|
|
10
11
|
/** Legacy SDK client exposed by AppKit for APIs not yet on its facade. */
|
|
11
12
|
export type WorkspaceClient = ReturnType<AppKitWorkspaceClient["toLegacyWorkspaceClient"]>;
|
|
13
|
+
/**
|
|
14
|
+
* Create an AppKit workspace client whose SDK credential visitor delegates to
|
|
15
|
+
* `@dbx-tools/auth`.
|
|
16
|
+
*
|
|
17
|
+
* The auth package resolves the active profile, host, token lifecycle, and
|
|
18
|
+
* unified-workspace header without requiring callers to mirror profile values
|
|
19
|
+
* into environment variables. The SDK still owns workspace APIs and request
|
|
20
|
+
* execution.
|
|
21
|
+
*/
|
|
22
|
+
export declare function createWorkspaceClient(options?: DatabricksAuthOptions): Promise<AppKitWorkspaceClient>;
|
|
23
|
+
/**
|
|
24
|
+
* Refresh the dbx-tools credential lifecycle attached by
|
|
25
|
+
* {@link createWorkspaceClient}. Returns `false` for externally supplied
|
|
26
|
+
* AppKit clients whose credential owner is unknown.
|
|
27
|
+
*/
|
|
28
|
+
export declare function refreshWorkspaceClientAuthentication(client: AppKitWorkspaceClient): Promise<boolean>;
|
|
12
29
|
/** Resolve AppKit's facade or an existing legacy client to the legacy SDK surface. */
|
|
13
30
|
export declare function toLegacyWorkspaceClient(client: AppKitWorkspaceClient | WorkspaceClient): WorkspaceClient;
|
|
14
31
|
/**
|
|
@@ -5,11 +5,50 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import { createWorkspaceClient, } from "@databricks/appkit";
|
|
8
|
+
import { createWorkspaceClient as _createWorkspaceClient, } from "@databricks/appkit";
|
|
9
9
|
import { appkit } from "@dbx-tools/appkit";
|
|
10
|
+
import { client as authClient } from "@dbx-tools/auth";
|
|
10
11
|
import { functionUtils, net } from "@dbx-tools/shared-core";
|
|
11
12
|
/** Databricks workspace ids are a 10-20 digit run embedded in the host. */
|
|
12
13
|
const WORKSPACE_ID_REGEX = /\d{10,20}/;
|
|
14
|
+
const workspaceAuth = new WeakMap();
|
|
15
|
+
/**
|
|
16
|
+
* Create an AppKit workspace client whose SDK credential visitor delegates to
|
|
17
|
+
* `@dbx-tools/auth`.
|
|
18
|
+
*
|
|
19
|
+
* The auth package resolves the active profile, host, token lifecycle, and
|
|
20
|
+
* unified-workspace header without requiring callers to mirror profile values
|
|
21
|
+
* into environment variables. The SDK still owns workspace APIs and request
|
|
22
|
+
* execution.
|
|
23
|
+
*/
|
|
24
|
+
export async function createWorkspaceClient(options = {}) {
|
|
25
|
+
const auth = await authClient.createAuthClient(options);
|
|
26
|
+
const client = _createWorkspaceClient({ host: auth.host });
|
|
27
|
+
client.config.credentials = {
|
|
28
|
+
name: "pat",
|
|
29
|
+
async configure() {
|
|
30
|
+
return async (headers) => {
|
|
31
|
+
for (const [name, value] of Object.entries(await auth.headers())) {
|
|
32
|
+
headers.set(name, value);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
workspaceAuth.set(client, auth);
|
|
38
|
+
return client;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Refresh the dbx-tools credential lifecycle attached by
|
|
42
|
+
* {@link createWorkspaceClient}. Returns `false` for externally supplied
|
|
43
|
+
* AppKit clients whose credential owner is unknown.
|
|
44
|
+
*/
|
|
45
|
+
export async function refreshWorkspaceClientAuthentication(client) {
|
|
46
|
+
const auth = workspaceAuth.get(client);
|
|
47
|
+
if (!auth)
|
|
48
|
+
return false;
|
|
49
|
+
await auth.headers({ login: false, refresh: true });
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
13
52
|
/** Resolve AppKit's facade or an existing legacy client to the legacy SDK surface. */
|
|
14
53
|
export function toLegacyWorkspaceClient(client) {
|
|
15
54
|
return "toLegacyWorkspaceClient" in client ? client.toLegacyWorkspaceClient() : client;
|
|
@@ -19,7 +58,7 @@ export function toLegacyWorkspaceClient(client) {
|
|
|
19
58
|
* construction happens at most once per process. Used only when there's no
|
|
20
59
|
* AppKit execution context to borrow a client from.
|
|
21
60
|
*/
|
|
22
|
-
const getDefaultWorkspaceClient = functionUtils.memoize(async () => createWorkspaceClient().toLegacyWorkspaceClient());
|
|
61
|
+
const getDefaultWorkspaceClient = functionUtils.memoize(async () => (await createWorkspaceClient()).toLegacyWorkspaceClient());
|
|
23
62
|
/**
|
|
24
63
|
* The AppKit execution-context workspace client when available, otherwise
|
|
25
64
|
* `undefined`. Never constructs a fallback client and never throws for a
|
|
@@ -107,4 +146,4 @@ export async function getWorkspaceId(workspaceHost) {
|
|
|
107
146
|
}
|
|
108
147
|
return undefined;
|
|
109
148
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3Jrc3BhY2UtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCwyRUFBMkU7QUFDM0UsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUM7QUFNdkMsc0ZBQXNGO0FBQ3RGLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsTUFBK0M7SUFFL0MsT0FBTyx5QkFBeUIsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDekYsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLHlCQUF5QixHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FDakUscUJBQXFCLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxDQUNsRCxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsT0FBTyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztBQUMzRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0I7SUFDdEMsT0FBTyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsTUFBTSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsa0JBQWtCO0lBQy9CLElBQUksQ0FBQztRQUNILE9BQU8sQ0FBQyxNQUFNLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxNQUF3QjtJQUMvRCxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLElBQUksV0FBVztRQUFFLE9BQU8sV0FBVyxDQUFDO0lBRXBDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3JDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELHFGQUFxRjtBQUNyRixTQUFTLG1CQUFtQixDQUFDLEdBQVk7SUFDdkMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ3RGLE1BQU0sS0FBSyxHQUFJLEdBQThCLENBQUMsUUFBUSxDQUFDO0lBQ3ZELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDOUUsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZTtJQUNuQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGtCQUFrQixFQUFFLENBQUM7SUFDMUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLFVBQVU7WUFBRSxPQUFPLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLElBQUksY0FBYztRQUFFLE9BQU8sY0FBYyxDQUFDO0lBQzFDLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQUMsYUFBc0I7SUFDekQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLGtCQUFrQixFQUFFLENBQUMsRUFBRSxXQUFXLENBQUM7SUFDOUQsSUFBSSxXQUFXO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFDcEMsYUFBYSxHQUFHLGFBQWEsSUFBSSxDQUFDLE1BQU0sZUFBZSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM7SUFDakUsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb2x2ZSB0aGUgY3VycmVudCBEYXRhYnJpY2tzIHdvcmtzcGFjZSdzIFVSTCwgbnVtZXJpYyBpZCwgYW5kIGNsaWVudCBmcm9tXG4gKiB0aGUgYWN0aXZlIGV4ZWN1dGlvbiBjb250ZXh0IChBcHBLaXQsIHdoZW4gaW5pdGlhbGl6ZWQpLCBhIGRlZmF1bHRcbiAqIHtAbGluayBXb3Jrc3BhY2VDbGllbnR9LCBvciB0aGUgZW52aXJvbm1lbnQuIFNlcnZlci1vbmx5LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQge1xuICBjcmVhdGVXb3Jrc3BhY2VDbGllbnQsXG4gIHR5cGUgV29ya3NwYWNlQ2xpZW50IGFzIEFwcEtpdFdvcmtzcGFjZUNsaWVudCxcbn0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgYXBwa2l0IH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBmdW5jdGlvblV0aWxzLCBuZXQgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuXG4vKiogRGF0YWJyaWNrcyB3b3Jrc3BhY2UgaWRzIGFyZSBhIDEwLTIwIGRpZ2l0IHJ1biBlbWJlZGRlZCBpbiB0aGUgaG9zdC4gKi9cbmNvbnN0IFdPUktTUEFDRV9JRF9SRUdFWCA9IC9cXGR7MTAsMjB9LztcblxuLyoqIExlZ2FjeSBTREsgY2xpZW50IGV4cG9zZWQgYnkgQXBwS2l0IGZvciBBUElzIG5vdCB5ZXQgb24gaXRzIGZhY2FkZS4gKi9cbmV4cG9ydCB0eXBlIFdvcmtzcGFjZUNsaWVudCA9IFJldHVyblR5cGU8QXBwS2l0V29ya3NwYWNlQ2xpZW50W1widG9MZWdhY3lXb3Jrc3BhY2VDbGllbnRcIl0+O1xudHlwZSBDb25maWcgPSBXb3Jrc3BhY2VDbGllbnRbXCJjb25maWdcIl07XG5cbi8qKiBSZXNvbHZlIEFwcEtpdCdzIGZhY2FkZSBvciBhbiBleGlzdGluZyBsZWdhY3kgY2xpZW50IHRvIHRoZSBsZWdhY3kgU0RLIHN1cmZhY2UuICovXG5leHBvcnQgZnVuY3Rpb24gdG9MZWdhY3lXb3Jrc3BhY2VDbGllbnQoXG4gIGNsaWVudDogQXBwS2l0V29ya3NwYWNlQ2xpZW50IHwgV29ya3NwYWNlQ2xpZW50LFxuKTogV29ya3NwYWNlQ2xpZW50IHtcbiAgcmV0dXJuIFwidG9MZWdhY3lXb3Jrc3BhY2VDbGllbnRcIiBpbiBjbGllbnQgPyBjbGllbnQudG9MZWdhY3lXb3Jrc3BhY2VDbGllbnQoKSA6IGNsaWVudDtcbn1cblxuLyoqXG4gKiBMYXppbHktY29uc3RydWN0ZWQgZGVmYXVsdCBgV29ya3NwYWNlQ2xpZW50YCAoZW52IC8gcHJvZmlsZSBhdXRoKSwgbWVtb2l6ZWQgc29cbiAqIGNvbnN0cnVjdGlvbiBoYXBwZW5zIGF0IG1vc3Qgb25jZSBwZXIgcHJvY2Vzcy4gVXNlZCBvbmx5IHdoZW4gdGhlcmUncyBub1xuICogQXBwS2l0IGV4ZWN1dGlvbiBjb250ZXh0IHRvIGJvcnJvdyBhIGNsaWVudCBmcm9tLlxuICovXG5jb25zdCBnZXREZWZhdWx0V29ya3NwYWNlQ2xpZW50ID0gZnVuY3Rpb25VdGlscy5tZW1vaXplKGFzeW5jICgpID0+XG4gIGNyZWF0ZVdvcmtzcGFjZUNsaWVudCgpLnRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KCksXG4pO1xuXG4vKipcbiAqIFRoZSBBcHBLaXQgZXhlY3V0aW9uLWNvbnRleHQgd29ya3NwYWNlIGNsaWVudCB3aGVuIGF2YWlsYWJsZSwgb3RoZXJ3aXNlXG4gKiBgdW5kZWZpbmVkYC4gTmV2ZXIgY29uc3RydWN0cyBhIGZhbGxiYWNrIGNsaWVudCBhbmQgbmV2ZXIgdGhyb3dzIGZvciBhXG4gKiBtaXNzaW5nIEFwcEtpdCBzY29wZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUdldFdvcmtzcGFjZUNsaWVudCgpOiBXb3Jrc3BhY2VDbGllbnQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYXBwa2l0LnRyeUdldEV4ZWN1dGlvbkNvbnRleHQoKT8uY2xpZW50LnRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIHtAbGluayBXb3Jrc3BhY2VDbGllbnR9OiB7QGxpbmsgdHJ5R2V0V29ya3NwYWNlQ2xpZW50fSBmaXJzdCwgZWxzZVxuICogYSBtZW1vaXplZCBkZWZhdWx0IGNsaWVudCBmcm9tIGVudiAvIHByb2ZpbGUgYXV0aC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFdvcmtzcGFjZUNsaWVudCgpOiBQcm9taXNlPFdvcmtzcGFjZUNsaWVudD4ge1xuICByZXR1cm4gdHJ5R2V0V29ya3NwYWNlQ2xpZW50KCkgPz8gKGF3YWl0IGdldERlZmF1bHRXb3Jrc3BhY2VDbGllbnQoKSk7XG59XG5cbi8qKlxuICogVGhlIGFjdGl2ZSB3b3Jrc3BhY2UgYENvbmZpZ2A6IHRoZSBBcHBLaXQgZXhlY3V0aW9uLWNvbnRleHQgY2xpZW50J3MgY29uZmlnXG4gKiB3aGVuIEFwcEtpdCBpcyBpbml0aWFsaXplZCwgZWxzZSB0aGUgZGVmYXVsdCBjbGllbnQncy4gUmV0dXJucyBgdW5kZWZpbmVkYFxuICogKG5ldmVyIHRocm93cykgd2hlbiBuZWl0aGVyIGlzIGF2YWlsYWJsZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0V29ya3NwYWNlQ29uZmlnKCk6IFByb21pc2U8Q29uZmlnIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIChhd2FpdCBnZXRXb3Jrc3BhY2VDbGllbnQoKSkuY29uZmlnO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQ3VycmVudCBEYXRhYnJpY2tzIHVzZXJuYW1lIGZvciB3b3Jrc3BhY2UgaG9tZSBwYXRoc1xuICogKGAvV29ya3NwYWNlL1VzZXJzLzx1c2VyTmFtZT5gKS5cbiAqXG4gKiBQcmVmZXJzIGB1c2VyTmFtZWAgb24gdGhlIEFwcEtpdCBleGVjdXRpb24gY29udGV4dCB3aGVuIHNldCwgb3RoZXJ3aXNlXG4gKiBjYWxscyBgY3VycmVudFVzZXIubWUoKWAgb24ge0BsaW5rIGNsaWVudH0gKG9yIHtAbGluayBnZXRXb3Jrc3BhY2VDbGllbnR9KS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRVc2VyTmFtZShjbGllbnQ/OiBXb3Jrc3BhY2VDbGllbnQpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjb250ZXh0VXNlciA9IHJlYWRDb250ZXh0VXNlck5hbWUoYXBwa2l0LnRyeUdldEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4gIGlmIChjb250ZXh0VXNlcikgcmV0dXJuIGNvbnRleHRVc2VyO1xuXG4gIGNvbnN0IHJlc29sdmVkID0gY2xpZW50ID8/IChhd2FpdCBnZXRXb3Jrc3BhY2VDbGllbnQoKSk7XG4gIGNvbnN0IG1lID0gYXdhaXQgcmVzb2x2ZWQuY3VycmVudFVzZXIubWUoKTtcbiAgY29uc3QgdXNlck5hbWUgPSBtZS51c2VyTmFtZT8udHJpbSgpO1xuICBpZiAoIXVzZXJOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRGF0YWJyaWNrcyBjdXJyZW50VXNlci5tZSgpIGRpZCBub3QgcmV0dXJuIGEgdXNlck5hbWVcIik7XG4gIH1cbiAgcmV0dXJuIHVzZXJOYW1lO1xufVxuXG4vKiogQmVzdC1lZmZvcnQgYHVzZXJOYW1lYCBvZmYgYW4gQXBwS2l0IGV4ZWN1dGlvbiBjb250ZXh0IChzaGFwZSB2YXJpZXMgYnkgbW9kZSkuICovXG5mdW5jdGlvbiByZWFkQ29udGV4dFVzZXJOYW1lKGN0eDogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgY3R4ICE9PSBcIm9iamVjdFwiIHx8IGN0eCA9PT0gbnVsbCB8fCAhKFwidXNlck5hbWVcIiBpbiBjdHgpKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCB2YWx1ZSA9IChjdHggYXMgeyB1c2VyTmFtZT86IHVua25vd24gfSkudXNlck5hbWU7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudHJpbSgpID8gdmFsdWUudHJpbSgpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIGN1cnJlbnQgd29ya3NwYWNlIGhvc3QgYXMgYSBgbmV0LlVybEJ1aWxkZXJgOiB0aGUgd29ya3NwYWNlXG4gKiBgQ29uZmlnYCBob3N0IGZpcnN0LCB0aGVuIHRoZSBgREFUQUJSSUNLU19IT1NUYCBlbnYgdmFyLCBlbHNlIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0V29ya3NwYWNlVXJsKCk6IFByb21pc2U8bmV0LlVybEJ1aWxkZXIgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgZ2V0V29ya3NwYWNlQ29uZmlnKCk7XG4gIGlmIChjb25maWcpIHtcbiAgICBjb25zdCBjb25maWdIb3N0ID0gbmV0LnVybEJ1aWxkZXIoYXdhaXQgY29uZmlnLmdldEhvc3QoKSk7XG4gICAgaWYgKGNvbmZpZ0hvc3QpIHJldHVybiBjb25maWdIb3N0O1xuICB9XG4gIGNvbnN0IGRhdGFicmlja3NIb3N0ID0gbmV0LnVybEJ1aWxkZXIocHJvY2Vzcy5lbnYuREFUQUJSSUNLU19IT1NUKTtcbiAgaWYgKGRhdGFicmlja3NIb3N0KSByZXR1cm4gZGF0YWJyaWNrc0hvc3Q7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgbnVtZXJpYyB3b3Jrc3BhY2UgaWQ6IHRoZSB3b3Jrc3BhY2UgYENvbmZpZ2AncyBgd29ya3NwYWNlSWRgXG4gKiBmaXJzdCwgZWxzZSB0aGUgMTAtMjAgZGlnaXQgcnVuIG9mIGB3b3Jrc3BhY2VIb3N0YCAoZGVmYXVsdGluZyB0b1xuICoge0BsaW5rIGdldFdvcmtzcGFjZVVybH0ncyBob3N0KS4gYHVuZGVmaW5lZGAgd2hlbiBuZWl0aGVyIHlpZWxkcyBhbiBpZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFdvcmtzcGFjZUlkKHdvcmtzcGFjZUhvc3Q/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCB3b3Jrc3BhY2VJZCA9IChhd2FpdCBnZXRXb3Jrc3BhY2VDb25maWcoKSk/LndvcmtzcGFjZUlkO1xuICBpZiAod29ya3NwYWNlSWQpIHJldHVybiB3b3Jrc3BhY2VJZDtcbiAgd29ya3NwYWNlSG9zdCA9IHdvcmtzcGFjZUhvc3QgPz8gKGF3YWl0IGdldFdvcmtzcGFjZVVybCgpKT8uaG9zdDtcbiAgaWYgKHdvcmtzcGFjZUhvc3QpIHtcbiAgICBjb25zdCBtYXRjaCA9IHdvcmtzcGFjZUhvc3QubWF0Y2goV09SS1NQQUNFX0lEX1JFR0VYKT8uWzBdO1xuICAgIGlmIChtYXRjaCkgcmV0dXJuIG1hdGNoO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3Jrc3BhY2UtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFDTCxxQkFBcUIsSUFBSSxzQkFBc0IsR0FFaEQsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sSUFBSSxVQUFVLEVBQStDLE1BQU0saUJBQWlCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCwyRUFBMkU7QUFDM0UsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUM7QUFDdkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQXFDLENBQUM7QUFNdkU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxVQUFpQyxFQUFFO0lBRW5DLE1BQU0sSUFBSSxHQUFHLE1BQU0sVUFBVSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHO1FBQzFCLElBQUksRUFBRSxLQUFLO1FBQ1gsS0FBSyxDQUFDLFNBQVM7WUFDYixPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDdkIsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUNqRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUMsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0lBQ0YsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG9DQUFvQyxDQUN4RCxNQUE2QjtJQUU3QixNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDeEIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxzRkFBc0Y7QUFDdEYsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxNQUErQztJQUUvQyxPQUFPLHlCQUF5QixJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUN6RixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0seUJBQXlCLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUNqRSxDQUFDLE1BQU0scUJBQXFCLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLENBQzFELENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQjtJQUNuQyxPQUFPLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0FBQzNFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGtCQUFrQjtJQUN0QyxPQUFPLHFCQUFxQixFQUFFLElBQUksQ0FBQyxNQUFNLHlCQUF5QixFQUFFLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILEtBQUssVUFBVSxrQkFBa0I7SUFDL0IsSUFBSSxDQUFDO1FBQ0gsT0FBTyxDQUFDLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGtCQUFrQixDQUFDLE1BQXdCO0lBQy9ELE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7SUFDekUsSUFBSSxXQUFXO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFFcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDeEQsTUFBTSxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzNDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDckMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQscUZBQXFGO0FBQ3JGLFNBQVMsbUJBQW1CLENBQUMsR0FBWTtJQUN2QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDdEYsTUFBTSxLQUFLLEdBQUksR0FBOEIsQ0FBQyxRQUFRLENBQUM7SUFDdkQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM5RSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlO0lBQ25DLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQztJQUMxQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksVUFBVTtZQUFFLE9BQU8sVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkUsSUFBSSxjQUFjO1FBQUUsT0FBTyxjQUFjLENBQUM7SUFDMUMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxhQUFzQjtJQUN6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUM5RCxJQUFJLFdBQVc7UUFBRSxPQUFPLFdBQVcsQ0FBQztJQUNwQyxhQUFhLEdBQUcsYUFBYSxJQUFJLENBQUMsTUFBTSxlQUFlLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQztJQUNqRSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksS0FBSztZQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvbHZlIHRoZSBjdXJyZW50IERhdGFicmlja3Mgd29ya3NwYWNlJ3MgVVJMLCBudW1lcmljIGlkLCBhbmQgY2xpZW50IGZyb21cbiAqIHRoZSBhY3RpdmUgZXhlY3V0aW9uIGNvbnRleHQgKEFwcEtpdCwgd2hlbiBpbml0aWFsaXplZCksIGEgZGVmYXVsdFxuICoge0BsaW5rIFdvcmtzcGFjZUNsaWVudH0sIG9yIHRoZSBlbnZpcm9ubWVudC4gU2VydmVyLW9ubHkuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7XG4gIGNyZWF0ZVdvcmtzcGFjZUNsaWVudCBhcyBfY3JlYXRlV29ya3NwYWNlQ2xpZW50LFxuICB0eXBlIFdvcmtzcGFjZUNsaWVudCBhcyBBcHBLaXRXb3Jrc3BhY2VDbGllbnQsXG59IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IGFwcGtpdCB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdFwiO1xuaW1wb3J0IHsgY2xpZW50IGFzIGF1dGhDbGllbnQsIHR5cGUgQXV0aENsaWVudCwgdHlwZSBEYXRhYnJpY2tzQXV0aE9wdGlvbnMgfSBmcm9tIFwiQGRieC10b29scy9hdXRoXCI7XG5pbXBvcnQgeyBmdW5jdGlvblV0aWxzLCBuZXQgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuXG4vKiogRGF0YWJyaWNrcyB3b3Jrc3BhY2UgaWRzIGFyZSBhIDEwLTIwIGRpZ2l0IHJ1biBlbWJlZGRlZCBpbiB0aGUgaG9zdC4gKi9cbmNvbnN0IFdPUktTUEFDRV9JRF9SRUdFWCA9IC9cXGR7MTAsMjB9LztcbmNvbnN0IHdvcmtzcGFjZUF1dGggPSBuZXcgV2Vha01hcDxBcHBLaXRXb3Jrc3BhY2VDbGllbnQsIEF1dGhDbGllbnQ+KCk7XG5cbi8qKiBMZWdhY3kgU0RLIGNsaWVudCBleHBvc2VkIGJ5IEFwcEtpdCBmb3IgQVBJcyBub3QgeWV0IG9uIGl0cyBmYWNhZGUuICovXG5leHBvcnQgdHlwZSBXb3Jrc3BhY2VDbGllbnQgPSBSZXR1cm5UeXBlPEFwcEtpdFdvcmtzcGFjZUNsaWVudFtcInRvTGVnYWN5V29ya3NwYWNlQ2xpZW50XCJdPjtcbnR5cGUgQ29uZmlnID0gV29ya3NwYWNlQ2xpZW50W1wiY29uZmlnXCJdO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBBcHBLaXQgd29ya3NwYWNlIGNsaWVudCB3aG9zZSBTREsgY3JlZGVudGlhbCB2aXNpdG9yIGRlbGVnYXRlcyB0b1xuICogYEBkYngtdG9vbHMvYXV0aGAuXG4gKlxuICogVGhlIGF1dGggcGFja2FnZSByZXNvbHZlcyB0aGUgYWN0aXZlIHByb2ZpbGUsIGhvc3QsIHRva2VuIGxpZmVjeWNsZSwgYW5kXG4gKiB1bmlmaWVkLXdvcmtzcGFjZSBoZWFkZXIgd2l0aG91dCByZXF1aXJpbmcgY2FsbGVycyB0byBtaXJyb3IgcHJvZmlsZSB2YWx1ZXNcbiAqIGludG8gZW52aXJvbm1lbnQgdmFyaWFibGVzLiBUaGUgU0RLIHN0aWxsIG93bnMgd29ya3NwYWNlIEFQSXMgYW5kIHJlcXVlc3RcbiAqIGV4ZWN1dGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZUNsaWVudChcbiAgb3B0aW9uczogRGF0YWJyaWNrc0F1dGhPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPEFwcEtpdFdvcmtzcGFjZUNsaWVudD4ge1xuICBjb25zdCBhdXRoID0gYXdhaXQgYXV0aENsaWVudC5jcmVhdGVBdXRoQ2xpZW50KG9wdGlvbnMpO1xuICBjb25zdCBjbGllbnQgPSBfY3JlYXRlV29ya3NwYWNlQ2xpZW50KHsgaG9zdDogYXV0aC5ob3N0IH0pO1xuICBjbGllbnQuY29uZmlnLmNyZWRlbnRpYWxzID0ge1xuICAgIG5hbWU6IFwicGF0XCIsXG4gICAgYXN5bmMgY29uZmlndXJlKCkge1xuICAgICAgcmV0dXJuIGFzeW5jIChoZWFkZXJzKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhhd2FpdCBhdXRoLmhlYWRlcnMoKSkpIHtcbiAgICAgICAgICBoZWFkZXJzLnNldChuYW1lLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbiAgd29ya3NwYWNlQXV0aC5zZXQoY2xpZW50LCBhdXRoKTtcbiAgcmV0dXJuIGNsaWVudDtcbn1cblxuLyoqXG4gKiBSZWZyZXNoIHRoZSBkYngtdG9vbHMgY3JlZGVudGlhbCBsaWZlY3ljbGUgYXR0YWNoZWQgYnlcbiAqIHtAbGluayBjcmVhdGVXb3Jrc3BhY2VDbGllbnR9LiBSZXR1cm5zIGBmYWxzZWAgZm9yIGV4dGVybmFsbHkgc3VwcGxpZWRcbiAqIEFwcEtpdCBjbGllbnRzIHdob3NlIGNyZWRlbnRpYWwgb3duZXIgaXMgdW5rbm93bi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hXb3Jrc3BhY2VDbGllbnRBdXRoZW50aWNhdGlvbihcbiAgY2xpZW50OiBBcHBLaXRXb3Jrc3BhY2VDbGllbnQsXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgYXV0aCA9IHdvcmtzcGFjZUF1dGguZ2V0KGNsaWVudCk7XG4gIGlmICghYXV0aCkgcmV0dXJuIGZhbHNlO1xuICBhd2FpdCBhdXRoLmhlYWRlcnMoeyBsb2dpbjogZmFsc2UsIHJlZnJlc2g6IHRydWUgfSk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKiogUmVzb2x2ZSBBcHBLaXQncyBmYWNhZGUgb3IgYW4gZXhpc3RpbmcgbGVnYWN5IGNsaWVudCB0byB0aGUgbGVnYWN5IFNESyBzdXJmYWNlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KFxuICBjbGllbnQ6IEFwcEtpdFdvcmtzcGFjZUNsaWVudCB8IFdvcmtzcGFjZUNsaWVudCxcbik6IFdvcmtzcGFjZUNsaWVudCB7XG4gIHJldHVybiBcInRvTGVnYWN5V29ya3NwYWNlQ2xpZW50XCIgaW4gY2xpZW50ID8gY2xpZW50LnRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KCkgOiBjbGllbnQ7XG59XG5cbi8qKlxuICogTGF6aWx5LWNvbnN0cnVjdGVkIGRlZmF1bHQgYFdvcmtzcGFjZUNsaWVudGAgKGVudiAvIHByb2ZpbGUgYXV0aCksIG1lbW9pemVkIHNvXG4gKiBjb25zdHJ1Y3Rpb24gaGFwcGVucyBhdCBtb3N0IG9uY2UgcGVyIHByb2Nlc3MuIFVzZWQgb25seSB3aGVuIHRoZXJlJ3Mgbm9cbiAqIEFwcEtpdCBleGVjdXRpb24gY29udGV4dCB0byBib3Jyb3cgYSBjbGllbnQgZnJvbS5cbiAqL1xuY29uc3QgZ2V0RGVmYXVsdFdvcmtzcGFjZUNsaWVudCA9IGZ1bmN0aW9uVXRpbHMubWVtb2l6ZShhc3luYyAoKSA9PlxuICAoYXdhaXQgY3JlYXRlV29ya3NwYWNlQ2xpZW50KCkpLnRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KCksXG4pO1xuXG4vKipcbiAqIFRoZSBBcHBLaXQgZXhlY3V0aW9uLWNvbnRleHQgd29ya3NwYWNlIGNsaWVudCB3aGVuIGF2YWlsYWJsZSwgb3RoZXJ3aXNlXG4gKiBgdW5kZWZpbmVkYC4gTmV2ZXIgY29uc3RydWN0cyBhIGZhbGxiYWNrIGNsaWVudCBhbmQgbmV2ZXIgdGhyb3dzIGZvciBhXG4gKiBtaXNzaW5nIEFwcEtpdCBzY29wZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUdldFdvcmtzcGFjZUNsaWVudCgpOiBXb3Jrc3BhY2VDbGllbnQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYXBwa2l0LnRyeUdldEV4ZWN1dGlvbkNvbnRleHQoKT8uY2xpZW50LnRvTGVnYWN5V29ya3NwYWNlQ2xpZW50KCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIHtAbGluayBXb3Jrc3BhY2VDbGllbnR9OiB7QGxpbmsgdHJ5R2V0V29ya3NwYWNlQ2xpZW50fSBmaXJzdCwgZWxzZVxuICogYSBtZW1vaXplZCBkZWZhdWx0IGNsaWVudCBmcm9tIGVudiAvIHByb2ZpbGUgYXV0aC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFdvcmtzcGFjZUNsaWVudCgpOiBQcm9taXNlPFdvcmtzcGFjZUNsaWVudD4ge1xuICByZXR1cm4gdHJ5R2V0V29ya3NwYWNlQ2xpZW50KCkgPz8gKGF3YWl0IGdldERlZmF1bHRXb3Jrc3BhY2VDbGllbnQoKSk7XG59XG5cbi8qKlxuICogVGhlIGFjdGl2ZSB3b3Jrc3BhY2UgYENvbmZpZ2A6IHRoZSBBcHBLaXQgZXhlY3V0aW9uLWNvbnRleHQgY2xpZW50J3MgY29uZmlnXG4gKiB3aGVuIEFwcEtpdCBpcyBpbml0aWFsaXplZCwgZWxzZSB0aGUgZGVmYXVsdCBjbGllbnQncy4gUmV0dXJucyBgdW5kZWZpbmVkYFxuICogKG5ldmVyIHRocm93cykgd2hlbiBuZWl0aGVyIGlzIGF2YWlsYWJsZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0V29ya3NwYWNlQ29uZmlnKCk6IFByb21pc2U8Q29uZmlnIHwgdW5kZWZpbmVkPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIChhd2FpdCBnZXRXb3Jrc3BhY2VDbGllbnQoKSkuY29uZmlnO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQ3VycmVudCBEYXRhYnJpY2tzIHVzZXJuYW1lIGZvciB3b3Jrc3BhY2UgaG9tZSBwYXRoc1xuICogKGAvV29ya3NwYWNlL1VzZXJzLzx1c2VyTmFtZT5gKS5cbiAqXG4gKiBQcmVmZXJzIGB1c2VyTmFtZWAgb24gdGhlIEFwcEtpdCBleGVjdXRpb24gY29udGV4dCB3aGVuIHNldCwgb3RoZXJ3aXNlXG4gKiBjYWxscyBgY3VycmVudFVzZXIubWUoKWAgb24ge0BsaW5rIGNsaWVudH0gKG9yIHtAbGluayBnZXRXb3Jrc3BhY2VDbGllbnR9KS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRVc2VyTmFtZShjbGllbnQ/OiBXb3Jrc3BhY2VDbGllbnQpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjb250ZXh0VXNlciA9IHJlYWRDb250ZXh0VXNlck5hbWUoYXBwa2l0LnRyeUdldEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4gIGlmIChjb250ZXh0VXNlcikgcmV0dXJuIGNvbnRleHRVc2VyO1xuXG4gIGNvbnN0IHJlc29sdmVkID0gY2xpZW50ID8/IChhd2FpdCBnZXRXb3Jrc3BhY2VDbGllbnQoKSk7XG4gIGNvbnN0IG1lID0gYXdhaXQgcmVzb2x2ZWQuY3VycmVudFVzZXIubWUoKTtcbiAgY29uc3QgdXNlck5hbWUgPSBtZS51c2VyTmFtZT8udHJpbSgpO1xuICBpZiAoIXVzZXJOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRGF0YWJyaWNrcyBjdXJyZW50VXNlci5tZSgpIGRpZCBub3QgcmV0dXJuIGEgdXNlck5hbWVcIik7XG4gIH1cbiAgcmV0dXJuIHVzZXJOYW1lO1xufVxuXG4vKiogQmVzdC1lZmZvcnQgYHVzZXJOYW1lYCBvZmYgYW4gQXBwS2l0IGV4ZWN1dGlvbiBjb250ZXh0IChzaGFwZSB2YXJpZXMgYnkgbW9kZSkuICovXG5mdW5jdGlvbiByZWFkQ29udGV4dFVzZXJOYW1lKGN0eDogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgY3R4ICE9PSBcIm9iamVjdFwiIHx8IGN0eCA9PT0gbnVsbCB8fCAhKFwidXNlck5hbWVcIiBpbiBjdHgpKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCB2YWx1ZSA9IChjdHggYXMgeyB1c2VyTmFtZT86IHVua25vd24gfSkudXNlck5hbWU7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudHJpbSgpID8gdmFsdWUudHJpbSgpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIGN1cnJlbnQgd29ya3NwYWNlIGhvc3QgYXMgYSBgbmV0LlVybEJ1aWxkZXJgOiB0aGUgd29ya3NwYWNlXG4gKiBgQ29uZmlnYCBob3N0IGZpcnN0LCB0aGVuIHRoZSBgREFUQUJSSUNLU19IT1NUYCBlbnYgdmFyLCBlbHNlIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0V29ya3NwYWNlVXJsKCk6IFByb21pc2U8bmV0LlVybEJ1aWxkZXIgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgZ2V0V29ya3NwYWNlQ29uZmlnKCk7XG4gIGlmIChjb25maWcpIHtcbiAgICBjb25zdCBjb25maWdIb3N0ID0gbmV0LnVybEJ1aWxkZXIoYXdhaXQgY29uZmlnLmdldEhvc3QoKSk7XG4gICAgaWYgKGNvbmZpZ0hvc3QpIHJldHVybiBjb25maWdIb3N0O1xuICB9XG4gIGNvbnN0IGRhdGFicmlja3NIb3N0ID0gbmV0LnVybEJ1aWxkZXIocHJvY2Vzcy5lbnYuREFUQUJSSUNLU19IT1NUKTtcbiAgaWYgKGRhdGFicmlja3NIb3N0KSByZXR1cm4gZGF0YWJyaWNrc0hvc3Q7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgbnVtZXJpYyB3b3Jrc3BhY2UgaWQ6IHRoZSB3b3Jrc3BhY2UgYENvbmZpZ2AncyBgd29ya3NwYWNlSWRgXG4gKiBmaXJzdCwgZWxzZSB0aGUgMTAtMjAgZGlnaXQgcnVuIG9mIGB3b3Jrc3BhY2VIb3N0YCAoZGVmYXVsdGluZyB0b1xuICoge0BsaW5rIGdldFdvcmtzcGFjZVVybH0ncyBob3N0KS4gYHVuZGVmaW5lZGAgd2hlbiBuZWl0aGVyIHlpZWxkcyBhbiBpZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFdvcmtzcGFjZUlkKHdvcmtzcGFjZUhvc3Q/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCB3b3Jrc3BhY2VJZCA9IChhd2FpdCBnZXRXb3Jrc3BhY2VDb25maWcoKSk/LndvcmtzcGFjZUlkO1xuICBpZiAod29ya3NwYWNlSWQpIHJldHVybiB3b3Jrc3BhY2VJZDtcbiAgd29ya3NwYWNlSG9zdCA9IHdvcmtzcGFjZUhvc3QgPz8gKGF3YWl0IGdldFdvcmtzcGFjZVVybCgpKT8uaG9zdDtcbiAgaWYgKHdvcmtzcGFjZUhvc3QpIHtcbiAgICBjb25zdCBtYXRjaCA9IHdvcmtzcGFjZUhvc3QubWF0Y2goV09SS1NQQUNFX0lEX1JFR0VYKT8uWzBdO1xuICAgIGlmIChtYXRjaCkgcmV0dXJuIG1hdGNoO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -19,16 +19,17 @@
|
|
|
19
19
|
"projen": "projen"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@types/bun": "1.3.14",
|
|
23
22
|
"@types/node": "^24.6.0",
|
|
24
23
|
"typescript": "^5.9.3"
|
|
25
24
|
},
|
|
26
25
|
"dependencies": {
|
|
27
26
|
"@databricks/appkit": "0.81.0",
|
|
28
|
-
"@dbx-tools/appkit": "^0.9.
|
|
29
|
-
"@dbx-tools/
|
|
30
|
-
"@dbx-tools/
|
|
31
|
-
"@dbx-tools/
|
|
27
|
+
"@dbx-tools/appkit": "^0.9.36",
|
|
28
|
+
"@dbx-tools/auth": "^0.9.36",
|
|
29
|
+
"@dbx-tools/cli-service": "^0.9.36",
|
|
30
|
+
"@dbx-tools/core": "^0.9.36",
|
|
31
|
+
"@dbx-tools/shared-core": "^0.9.36",
|
|
32
|
+
"@dbx-tools/shared-fs": "^0.9.36"
|
|
32
33
|
},
|
|
33
34
|
"main": "./lib/index.js",
|
|
34
35
|
"license": "Apache-2.0",
|
|
@@ -41,17 +42,62 @@
|
|
|
41
42
|
"types": "./lib/index.d.ts",
|
|
42
43
|
"default": "./lib/index.js"
|
|
43
44
|
},
|
|
45
|
+
"./cloud": {
|
|
46
|
+
"types": "./lib/src/cloud.d.ts",
|
|
47
|
+
"default": "./lib/src/cloud.js"
|
|
48
|
+
},
|
|
49
|
+
"./databricks-fs": {
|
|
50
|
+
"types": "./lib/src/databricks-fs.d.ts",
|
|
51
|
+
"default": "./lib/src/databricks-fs.js"
|
|
52
|
+
},
|
|
53
|
+
"./databricks-path": {
|
|
54
|
+
"types": "./lib/src/databricks-path.d.ts",
|
|
55
|
+
"default": "./lib/src/databricks-path.js"
|
|
56
|
+
},
|
|
57
|
+
"./net": {
|
|
58
|
+
"types": "./lib/src/net.d.ts",
|
|
59
|
+
"default": "./lib/src/net.js"
|
|
60
|
+
},
|
|
61
|
+
"./workspace-client": {
|
|
62
|
+
"types": "./lib/src/workspace-client.d.ts",
|
|
63
|
+
"default": "./lib/src/workspace-client.js"
|
|
64
|
+
},
|
|
44
65
|
"./package.json": "./package.json"
|
|
45
66
|
}
|
|
46
67
|
},
|
|
47
|
-
"version": "0.9.
|
|
68
|
+
"version": "0.9.36",
|
|
48
69
|
"types": "./lib/index.d.ts",
|
|
70
|
+
"dbxToolsConfig": {
|
|
71
|
+
"tags": [
|
|
72
|
+
"node"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
49
75
|
"type": "module",
|
|
50
76
|
"exports": {
|
|
51
77
|
".": {
|
|
52
78
|
"types": "./lib/index.d.ts",
|
|
53
79
|
"default": "./lib/index.js"
|
|
54
80
|
},
|
|
81
|
+
"./cloud": {
|
|
82
|
+
"types": "./lib/src/cloud.d.ts",
|
|
83
|
+
"default": "./lib/src/cloud.js"
|
|
84
|
+
},
|
|
85
|
+
"./databricks-fs": {
|
|
86
|
+
"types": "./lib/src/databricks-fs.d.ts",
|
|
87
|
+
"default": "./lib/src/databricks-fs.js"
|
|
88
|
+
},
|
|
89
|
+
"./databricks-path": {
|
|
90
|
+
"types": "./lib/src/databricks-path.d.ts",
|
|
91
|
+
"default": "./lib/src/databricks-path.js"
|
|
92
|
+
},
|
|
93
|
+
"./net": {
|
|
94
|
+
"types": "./lib/src/net.d.ts",
|
|
95
|
+
"default": "./lib/src/net.js"
|
|
96
|
+
},
|
|
97
|
+
"./workspace-client": {
|
|
98
|
+
"types": "./lib/src/workspace-client.d.ts",
|
|
99
|
+
"default": "./lib/src/workspace-client.js"
|
|
100
|
+
},
|
|
55
101
|
"./package.json": "./package.json"
|
|
56
102
|
},
|
|
57
103
|
"files": [
|
|
@@ -59,10 +105,5 @@
|
|
|
59
105
|
"src",
|
|
60
106
|
"lib"
|
|
61
107
|
],
|
|
62
|
-
"dbxToolsConfig": {
|
|
63
|
-
"tags": [
|
|
64
|
-
"node"
|
|
65
|
-
]
|
|
66
|
-
},
|
|
67
108
|
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"bunx projen\"."
|
|
68
109
|
}
|
package/src/workspace-client.ts
CHANGED
|
@@ -7,19 +7,63 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
-
createWorkspaceClient,
|
|
10
|
+
createWorkspaceClient as _createWorkspaceClient,
|
|
11
11
|
type WorkspaceClient as AppKitWorkspaceClient,
|
|
12
12
|
} from "@databricks/appkit";
|
|
13
13
|
import { appkit } from "@dbx-tools/appkit";
|
|
14
|
+
import { client as authClient, type AuthClient, type DatabricksAuthOptions } from "@dbx-tools/auth";
|
|
14
15
|
import { functionUtils, net } from "@dbx-tools/shared-core";
|
|
15
16
|
|
|
16
17
|
/** Databricks workspace ids are a 10-20 digit run embedded in the host. */
|
|
17
18
|
const WORKSPACE_ID_REGEX = /\d{10,20}/;
|
|
19
|
+
const workspaceAuth = new WeakMap<AppKitWorkspaceClient, AuthClient>();
|
|
18
20
|
|
|
19
21
|
/** Legacy SDK client exposed by AppKit for APIs not yet on its facade. */
|
|
20
22
|
export type WorkspaceClient = ReturnType<AppKitWorkspaceClient["toLegacyWorkspaceClient"]>;
|
|
21
23
|
type Config = WorkspaceClient["config"];
|
|
22
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Create an AppKit workspace client whose SDK credential visitor delegates to
|
|
27
|
+
* `@dbx-tools/auth`.
|
|
28
|
+
*
|
|
29
|
+
* The auth package resolves the active profile, host, token lifecycle, and
|
|
30
|
+
* unified-workspace header without requiring callers to mirror profile values
|
|
31
|
+
* into environment variables. The SDK still owns workspace APIs and request
|
|
32
|
+
* execution.
|
|
33
|
+
*/
|
|
34
|
+
export async function createWorkspaceClient(
|
|
35
|
+
options: DatabricksAuthOptions = {},
|
|
36
|
+
): Promise<AppKitWorkspaceClient> {
|
|
37
|
+
const auth = await authClient.createAuthClient(options);
|
|
38
|
+
const client = _createWorkspaceClient({ host: auth.host });
|
|
39
|
+
client.config.credentials = {
|
|
40
|
+
name: "pat",
|
|
41
|
+
async configure() {
|
|
42
|
+
return async (headers) => {
|
|
43
|
+
for (const [name, value] of Object.entries(await auth.headers())) {
|
|
44
|
+
headers.set(name, value);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
workspaceAuth.set(client, auth);
|
|
50
|
+
return client;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Refresh the dbx-tools credential lifecycle attached by
|
|
55
|
+
* {@link createWorkspaceClient}. Returns `false` for externally supplied
|
|
56
|
+
* AppKit clients whose credential owner is unknown.
|
|
57
|
+
*/
|
|
58
|
+
export async function refreshWorkspaceClientAuthentication(
|
|
59
|
+
client: AppKitWorkspaceClient,
|
|
60
|
+
): Promise<boolean> {
|
|
61
|
+
const auth = workspaceAuth.get(client);
|
|
62
|
+
if (!auth) return false;
|
|
63
|
+
await auth.headers({ login: false, refresh: true });
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
|
|
23
67
|
/** Resolve AppKit's facade or an existing legacy client to the legacy SDK surface. */
|
|
24
68
|
export function toLegacyWorkspaceClient(
|
|
25
69
|
client: AppKitWorkspaceClient | WorkspaceClient,
|
|
@@ -33,7 +77,7 @@ export function toLegacyWorkspaceClient(
|
|
|
33
77
|
* AppKit execution context to borrow a client from.
|
|
34
78
|
*/
|
|
35
79
|
const getDefaultWorkspaceClient = functionUtils.memoize(async () =>
|
|
36
|
-
createWorkspaceClient().toLegacyWorkspaceClient(),
|
|
80
|
+
(await createWorkspaceClient()).toLegacyWorkspaceClient(),
|
|
37
81
|
);
|
|
38
82
|
|
|
39
83
|
/**
|