@dbx-tools/appkit 0.6.185 → 0.6.188

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit";
6
- export const PACKAGE_VERSION = "0.6.185";
6
+ export const PACKAGE_VERSION = "0.6.188";
7
7
  export * as appkit from "./src/appkit.ts";
8
8
  export * as brand from "./src/brand.ts";
9
9
  export * as bundle from "./src/bundle.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit";
2
- export declare const PACKAGE_VERSION = "0.6.185";
2
+ export declare const PACKAGE_VERSION = "0.6.188";
3
3
  export * as appkit from "./src/appkit.ts";
4
4
  export * as brand from "./src/brand.ts";
5
5
  export * as bundle from "./src/bundle.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/appkit";
5
- export const PACKAGE_VERSION = "0.6.185";
5
+ export const PACKAGE_VERSION = "0.6.188";
6
6
  export * as appkit from "./src/appkit.js";
7
7
  export * as brand from "./src/brand.js";
8
8
  export * as bundle from "./src/bundle.js";
@@ -17,4 +17,4 @@ export { bundleAppResourceSchema, flattenAppYamlEnv, flattenAppEnv, getBundlePat
17
17
  export { ACCESS_TOKEN_HEADER, USER_ID_HEADER, USER_EMAIL_HEADER, IDENTITY_MODES, DEFAULT_IDENTITY_MODE } from "./src/identity.js";
18
18
  export { LifecycleBridgePlugin, lifecycleBridge } from "./src/interceptor.js";
19
19
  export { SSL_MODES } from "./src/pgaddress.js";
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzNHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEksT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjYuMTg1XCI7XG5leHBvcnQgKiBhcyBhcHBraXQgZnJvbSBcIi4vc3JjL2FwcGtpdC50c1wiO1xuZXhwb3J0ICogYXMgYnJhbmQgZnJvbSBcIi4vc3JjL2JyYW5kLnRzXCI7XG5leHBvcnQgKiBhcyBidW5kbGUgZnJvbSBcIi4vc3JjL2J1bmRsZS50c1wiO1xuZXhwb3J0ICogYXMgZGF0YWJyaWNrcyBmcm9tIFwiLi9zcmMvZGF0YWJyaWNrcy50c1wiO1xuZXhwb3J0ICogYXMgaWRlbnRpdHkgZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgKiBhcyBpbnRlcmNlcHRvciBmcm9tIFwiLi9zcmMvaW50ZXJjZXB0b3IudHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUmVzb2x2ZXIgZnJvbSBcIi4vc3JjL2xha2ViYXNlLXJlc29sdmVyLnRzXCI7XG5leHBvcnQgKiBhcyBwZ2FkZHJlc3MgZnJvbSBcIi4vc3JjL3BnYWRkcmVzcy50c1wiO1xuZXhwb3J0ICogYXMgcGx1Z2luIGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCAqIGFzIHByb3Zpc2lvbiBmcm9tIFwiLi9zcmMvcHJvdmlzaW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF1dG9Db25maWd1cmVNb2RlLCBDcmVhdGVBcHBDb25maWcsIEV4ZWN1dGlvbkNvbnRleHRMaWtlLCBXb3Jrc3BhY2VDbGllbnRMaWtlIH0gZnJvbSBcIi4vc3JjL2FwcGtpdC50c1wiO1xuZXhwb3J0IHsgYnVuZGxlQXBwUmVzb3VyY2VTY2hlbWEsIGZsYXR0ZW5BcHBZYW1sRW52LCBmbGF0dGVuQXBwRW52LCBnZXRCdW5kbGVQYXRoIH0gZnJvbSBcIi4vc3JjL2J1bmRsZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBCdW5kbGVWYWxpZGF0ZUpzb24sIENvbmZpZ0ZpbGUsIENvbmZpZ01hcFZhbHVlLCBDb25maWdTb3VyY2UsIFJlc29sdmVDb25maWdWYWx1ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvYnVuZGxlLnRzXCI7XG5leHBvcnQgdHlwZSB7IENvbnRleHRMaWtlIH0gZnJvbSBcIi4vc3JjL2RhdGFicmlja3MudHNcIjtcbmV4cG9ydCB7IEFDQ0VTU19UT0tFTl9IRUFERVIsIFVTRVJfSURfSEVBREVSLCBVU0VSX0VNQUlMX0hFQURFUiwgSURFTlRJVFlfTU9ERVMsIERFRkFVTFRfSURFTlRJVFlfTU9ERSB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBJZGVudGl0eU1vZGUsIEhlYWRlckJlYXJpbmcgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB7IExpZmVjeWNsZUJyaWRnZVBsdWdpbiwgbGlmZWN5Y2xlQnJpZGdlIH0gZnJvbSBcIi4vc3JjL2ludGVyY2VwdG9yLnRzXCI7XG5leHBvcnQgdHlwZSB7IExpZmVjeWNsZUV2ZW50LCBMaWZlY3ljbGVIYW5kbGVyLCBSZXNvbHZlZEFwcEVudiwgQmluZGFibGVQcm9jZXNzLCBJbnRlcmNlcHRvckNvbnRleHQsIEludGVyY2VwdG9yLCBJbnRlcmNlcHRvclJ1bnRpbWUgfSBmcm9tIFwiLi9zcmMvaW50ZXJjZXB0b3IudHNcIjtcbmV4cG9ydCB0eXBlIHsgTGFrZWJhc2VSZXNvbHZlcklucHV0cywgTGFrZWJhc2VDb25uZWN0aW9uIH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXJlc29sdmVyLnRzXCI7XG5leHBvcnQgeyBTU0xfTU9ERVMgfSBmcm9tIFwiLi9zcmMvcGdhZGRyZXNzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNzbE1vZGUsIExha2ViYXNlQ29ubmVjdGlvbklucHV0cywgUGFyc2VkQWRkcmVzcyB9IGZyb20gXCIuL3NyYy9wZ2FkZHJlc3MudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGx1Z2luQ29udGV4dExpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzNHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEksT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjYuMTg4XCI7XG5leHBvcnQgKiBhcyBhcHBraXQgZnJvbSBcIi4vc3JjL2FwcGtpdC50c1wiO1xuZXhwb3J0ICogYXMgYnJhbmQgZnJvbSBcIi4vc3JjL2JyYW5kLnRzXCI7XG5leHBvcnQgKiBhcyBidW5kbGUgZnJvbSBcIi4vc3JjL2J1bmRsZS50c1wiO1xuZXhwb3J0ICogYXMgZGF0YWJyaWNrcyBmcm9tIFwiLi9zcmMvZGF0YWJyaWNrcy50c1wiO1xuZXhwb3J0ICogYXMgaWRlbnRpdHkgZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgKiBhcyBpbnRlcmNlcHRvciBmcm9tIFwiLi9zcmMvaW50ZXJjZXB0b3IudHNcIjtcbmV4cG9ydCAqIGFzIGxha2ViYXNlUmVzb2x2ZXIgZnJvbSBcIi4vc3JjL2xha2ViYXNlLXJlc29sdmVyLnRzXCI7XG5leHBvcnQgKiBhcyBwZ2FkZHJlc3MgZnJvbSBcIi4vc3JjL3BnYWRkcmVzcy50c1wiO1xuZXhwb3J0ICogYXMgcGx1Z2luIGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCAqIGFzIHByb3Zpc2lvbiBmcm9tIFwiLi9zcmMvcHJvdmlzaW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF1dG9Db25maWd1cmVNb2RlLCBDcmVhdGVBcHBDb25maWcsIEV4ZWN1dGlvbkNvbnRleHRMaWtlLCBXb3Jrc3BhY2VDbGllbnRMaWtlIH0gZnJvbSBcIi4vc3JjL2FwcGtpdC50c1wiO1xuZXhwb3J0IHsgYnVuZGxlQXBwUmVzb3VyY2VTY2hlbWEsIGZsYXR0ZW5BcHBZYW1sRW52LCBmbGF0dGVuQXBwRW52LCBnZXRCdW5kbGVQYXRoIH0gZnJvbSBcIi4vc3JjL2J1bmRsZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBCdW5kbGVWYWxpZGF0ZUpzb24sIENvbmZpZ0ZpbGUsIENvbmZpZ01hcFZhbHVlLCBDb25maWdTb3VyY2UsIFJlc29sdmVDb25maWdWYWx1ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvYnVuZGxlLnRzXCI7XG5leHBvcnQgdHlwZSB7IENvbnRleHRMaWtlIH0gZnJvbSBcIi4vc3JjL2RhdGFicmlja3MudHNcIjtcbmV4cG9ydCB7IEFDQ0VTU19UT0tFTl9IRUFERVIsIFVTRVJfSURfSEVBREVSLCBVU0VSX0VNQUlMX0hFQURFUiwgSURFTlRJVFlfTU9ERVMsIERFRkFVTFRfSURFTlRJVFlfTU9ERSB9IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0IHR5cGUgeyBJZGVudGl0eU1vZGUsIEhlYWRlckJlYXJpbmcgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB7IExpZmVjeWNsZUJyaWRnZVBsdWdpbiwgbGlmZWN5Y2xlQnJpZGdlIH0gZnJvbSBcIi4vc3JjL2ludGVyY2VwdG9yLnRzXCI7XG5leHBvcnQgdHlwZSB7IExpZmVjeWNsZUV2ZW50LCBMaWZlY3ljbGVIYW5kbGVyLCBSZXNvbHZlZEFwcEVudiwgQmluZGFibGVQcm9jZXNzLCBJbnRlcmNlcHRvckNvbnRleHQsIEludGVyY2VwdG9yLCBJbnRlcmNlcHRvclJ1bnRpbWUgfSBmcm9tIFwiLi9zcmMvaW50ZXJjZXB0b3IudHNcIjtcbmV4cG9ydCB0eXBlIHsgTGFrZWJhc2VSZXNvbHZlcklucHV0cywgTGFrZWJhc2VDb25uZWN0aW9uIH0gZnJvbSBcIi4vc3JjL2xha2ViYXNlLXJlc29sdmVyLnRzXCI7XG5leHBvcnQgeyBTU0xfTU9ERVMgfSBmcm9tIFwiLi9zcmMvcGdhZGRyZXNzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNzbE1vZGUsIExha2ViYXNlQ29ubmVjdGlvbklucHV0cywgUGFyc2VkQWRkcmVzcyB9IGZyb20gXCIuL3NyYy9wZ2FkZHJlc3MudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGx1Z2luQ29udGV4dExpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG4iXX0=
@@ -100,7 +100,11 @@ function parseUri(s) {
100
100
  catch {
101
101
  return {};
102
102
  }
103
- const result = {};
103
+ const target = url.pathname.replace(/^\//, "");
104
+ const decodedTarget = target ? decodeURIComponent(target) : "";
105
+ const result = decodedTarget.startsWith("projects/")
106
+ ? parseResourcePathSegments(decodedTarget)
107
+ : {};
104
108
  if (url.hostname)
105
109
  result.host = url.hostname;
106
110
  const port = object.toNumber(url.port);
@@ -114,9 +118,8 @@ function parseUri(s) {
114
118
  result.user = url.username;
115
119
  }
116
120
  }
117
- const db = url.pathname.replace(/^\//, "");
118
- if (db)
119
- result.database = decodeURIComponent(db);
121
+ if (decodedTarget && !result.project)
122
+ result.database = decodedTarget;
120
123
  const sslmodeRaw = url.searchParams.get("sslmode") ?? url.searchParams.get("sslMode");
121
124
  const sslmode = sslmodeRaw?.toLowerCase();
122
125
  if (isSslMode(sslmode)) {
@@ -167,4 +170,4 @@ function parseResourcePathSegments(s) {
167
170
  }
168
171
  return {};
169
172
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGdhZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BnYWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJDRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCwrRUFBK0U7QUFDL0UsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQVUsQ0FBQztBQTBDbkUsTUFBTSxhQUFhLEdBQUcsOEJBQThCLENBQUM7QUFDckQsTUFBTSxhQUFhLEdBQUcsd0NBQXdDLENBQUM7QUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyw4Q0FBOEMsQ0FBQztBQUV4RTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFnQztJQUMzRCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixJQUFJLENBQUMsQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRWxCLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQUUsT0FBTyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxzRUFBc0U7SUFDdEUsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BFLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7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UG9zdGdyZXMgY29ubmVjdGlvbiBpbnB1dHMuXG4gKlxuICogQWNjZXB0cyB3aGF0ZXZlciBzaGFwZSBhIHVzZXIgaXMgbGlrZWx5IHRvIHBhc3RlIGludG9cbiAqIGBMQUtFQkFTRV9FTkRQT0lOVGAgKG9yIHRoZSBtYXRjaGluZyBjb25maWcgZmllbGQpIGFuZCBleHRyYWN0c1xuICogZXZlcnkgcmVjb2duaXphYmxlIHBpZWNlLiBXaGF0ZXZlciBpdCBjYW4ndCByZWNvdmVyIGlzIGxlZnQgZm9yIHRoZVxuICogTGFrZWJhc2UgcmVzb2x2ZXIgdG8gZGlzY292ZXIuXG4gKlxuICogUmVjb2duaXplZCBmb3JtYXRzOlxuICpcbiAqIC0gKipQb3N0Z3JlcyBVUkkqKiAtXG4gKiAgIGBwb3N0Z3Jlc3FsOi8vdXNlckBob3N0OnBvcnQvZGI/c3NsbW9kZT1yZXF1aXJlYCAoYWxzbyBgcG9zdGdyZXM6Ly9gKS5cbiAqICAgWWllbGRzIGB1c2VyYCwgYGhvc3RgLCBgcG9ydGAsIGBkYXRhYmFzZWAsIGBzc2xNb2RlYC5cbiAqXG4gKiAtICoqQ2Fub25pY2FsIGVuZHBvaW50IHJlc291cmNlIHBhdGgqKiAtXG4gKiAgIGBwcm9qZWN0cy97cH0vYnJhbmNoZXMve2J9L2VuZHBvaW50cy97ZX1gIC1cbiAqICAgeWllbGRzIGBwcm9qZWN0YCwgYGJyYW5jaGAsIGBlbmRwb2ludElkYCwgYW5kIHRoZSBvcmlnaW5hbCBzdHJpbmcgYXNcbiAqICAgYGVuZHBvaW50YCAoYWxyZWFkeSBpbiBsYWtlYmFzZSdzIGV4cGVjdGVkIGZvcm0pLlxuICpcbiAqIC0gKipEYXRhYmFzZSByZXNvdXJjZSBwYXRoKiogLVxuICogICBgcHJvamVjdHMve3B9L2JyYW5jaGVzL3tifS9kYXRhYmFzZXMve2R9YCAtXG4gKiAgIHlpZWxkcyBgcHJvamVjdGAsIGBicmFuY2hgLCBhbmQgYGRhdGFiYXNlUmVzb3VyY2VJZGAgKHRoZSBVQ1xuICogICByZXNvdXJjZSBsZWFmLCBub3QgYFBHREFUQUJBU0VgOyB0aGUgcmVzb2x2ZXIgbG9va3MgdXAgdGhlIHJlYWxcbiAqICAgUG9zdGdyZXMgbmFtZSB2aWEgUkVTVCkuXG4gKlxuICogLSAqKkJyYW5jaCByZXNvdXJjZSBwYXRoKiogLVxuICogICBgcHJvamVjdHMve3B9L2JyYW5jaGVzL3tifWAgLSB5aWVsZHMgYHByb2plY3RgLCBgYnJhbmNoYC5cbiAqXG4gKiAtICoqUHJvamVjdCByZXNvdXJjZSBwYXRoKiogLVxuICogICBgcHJvamVjdHMve3B9YCAtIHlpZWxkcyBgcHJvamVjdGAuXG4gKlxuICogLSAqKkJhcmUgaG9zdG5hbWUqKiAtXG4gKiAgIGBlcC1zdGVlcC1mb3Jlc3QtZTE5OXY0M3cuZGF0YWJhc2UuZWFzdHVzMi5henVyZWRhdGFicmlja3MubmV0YCAtXG4gKiAgIHlpZWxkcyBgaG9zdGAgb25seTsgdGhlIHJlc29sdmVyIHJldmVyc2UtbG9va3MgdXAgdGhlIG93bmluZ1xuICogICBlbmRwb2ludCB0byByZWNvdmVyIHRoZSByZXNvdXJjZSBwYXRoLlxuICpcbiAqIC0gKipCYXJlIHByb2plY3QgaWQqKiAtXG4gKiAgIGBkYngtdG9vbHMtZGVtb2AgKDEtNjMgY2hhcnMsIGxvd2VyY2FzZSBsZXR0ZXJzL2RpZ2l0cy9oeXBoZW5zKSAtXG4gKiAgIHlpZWxkcyBgcHJvamVjdGAuXG4gKlxuICogUmV0dXJucyBhbiBlbXB0eSBvYmplY3QgZm9yIGlucHV0cyBpdCBkb2Vzbid0IHJlY29nbml6ZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb2JqZWN0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcblxuLyoqIFBvc3RncmVzIFRMUyBtb2RlcyBhY2NlcHRlZCBieSB7QGxpbmsgU3NsTW9kZX0sIGluIGBQR1NTTE1PREVgIHNwZWxsaW5nLiAqL1xuZXhwb3J0IGNvbnN0IFNTTF9NT0RFUyA9IFtcInJlcXVpcmVcIiwgXCJkaXNhYmxlXCIsIFwicHJlZmVyXCJdIGFzIGNvbnN0O1xuXG4vKiogUG9zdGdyZXMgVExTIG1vZGUgcGFzc2VkIHRocm91Z2ggdG8gYHBnYC4gKi9cbmV4cG9ydCB0eXBlIFNzbE1vZGUgPSAodHlwZW9mIFNTTF9NT0RFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBPcHRpb25hbCBMYWtlYmFzZSBQb3N0Z3JlcyBjb25uZWN0aW9uIGZpZWxkcyBzaGFyZWQgYnkgcGFyc2VkIGFkZHJlc3NlcyxcbiAqIHJlc29sdmVyL2VudiBpbnB1dHMsIGFuZCByZXNvbHZlZCBjb25uZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWtlYmFzZUNvbm5lY3Rpb25JbnB1dHMge1xuICAvKiogTGFrZWJhc2UgcHJvamVjdCBpZC4gUmVzb2x2ZWQgZnJvbSB0aGUgd29ya3NwYWNlIHdoZW4gdW5zZXQuICovXG4gIHByb2plY3Q/OiBzdHJpbmc7XG4gIC8qKiBCcmFuY2ggaWQgd2l0aGluIHRoZSBwcm9qZWN0LiBEZWZhdWx0cyB0byB0aGUgcHJvamVjdCdzIGRlZmF1bHQgYnJhbmNoLiAqL1xuICBicmFuY2g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDYW5vbmljYWwgZW5kcG9pbnQgcmVzb3VyY2UgcGF0aCAoYHByb2plY3RzLy4uLi9lbmRwb2ludHMvLi4uYCksIGZyb21cbiAgICogYExBS0VCQVNFX0VORFBPSU5UYC4gRGVmYXVsdHMgdG8gdGhlIGJyYW5jaCdzIHJlYWQtd3JpdGUgZW5kcG9pbnQuXG4gICAqL1xuICBlbmRwb2ludD86IHN0cmluZztcbiAgLyoqIFBvc3RncmVzIGRhdGFiYXNlIG5hbWUgKGBQR0RBVEFCQVNFYCkuIERlZmF1bHRzIHRvIGBkYXRhYnJpY2tzX3Bvc3RncmVzYC4gKi9cbiAgZGF0YWJhc2U/OiBzdHJpbmc7XG4gIC8qKiBQb3N0Z3JlcyBob3N0bmFtZSAoYFBHSE9TVGApLiBEZWZhdWx0cyB0byB0aGUgcmVzb2x2ZWQgZW5kcG9pbnQncyBob3N0LiAqL1xuICBob3N0Pzogc3RyaW5nO1xuICAvKiogUG9zdGdyZXMgcG9ydCAoYFBHUE9SVGApLiBEZWZhdWx0cyB0byA1NDMyLiAqL1xuICBwb3J0PzogbnVtYmVyO1xuICAvKiogUG9zdGdyZXMgVExTIG1vZGUgKGBQR1NTTE1PREVgKS4gRGVmYXVsdHMgdG8gYHJlcXVpcmVgLiAqL1xuICBzc2xNb2RlPzogU3NsTW9kZTtcbn1cblxuLyoqIFBpZWNlcyByZWNvdmVyZWQgZnJvbSBwYXJzaW5nIGEgc2luZ2xlIGFkZHJlc3Mgb3IgcmVzb3VyY2UtcGF0aCBpbnB1dC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkQWRkcmVzcyBleHRlbmRzIExha2ViYXNlQ29ubmVjdGlvbklucHV0cyB7XG4gIC8qKiBFbmRwb2ludCBsZWFmIGlkIChsYXN0IHNlZ21lbnQgb2YgYW4gZW5kcG9pbnQgcmVzb3VyY2UgcGF0aCkuICovXG4gIGVuZHBvaW50SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEYXRhYmFzZSByZXNvdXJjZSBpZCBsZWFmIGZyb20gYSBgLi4uL2RhdGFiYXNlcy97aWR9YCBwYXRoLiBOb3QgdGhlXG4gICAqIFBvc3RncmVzIGRhdGFiYXNlIG5hbWUuXG4gICAqL1xuICBkYXRhYmFzZVJlc291cmNlSWQ/OiBzdHJpbmc7XG4gIC8qKiBQb3N0Z3JlcyB1c2VyIChVUkktZGVjb2RlZCBpZiBlbmNvZGVkKS4gKi9cbiAgdXNlcj86IHN0cmluZztcbn1cblxuY29uc3QgVVJMX1NDSEVNRV9SRSA9IC9eKHBvc3RncmVzfHBvc3RncmVzcWwpOlxcL1xcLy9pO1xuY29uc3QgUFJPSkVDVF9JRF9SRSA9IC9eW2Etel1bYS16MC05LV17MCw2MX1bYS16MC05XSR8XlthLXpdJC87XG5jb25zdCBIT1NUTkFNRV9ISU5UX1JFID0gL15bYS16MC05XVthLXowLTktXSooXFwuW2EtejAtOV1bYS16MC05LV0qKSskL2k7XG5cbi8qKlxuICogUGFyc2UgYSBMYWtlYmFzZSBjb25uZWN0aW9uIGlucHV0IGludG8gd2hhdGV2ZXIgcGllY2VzIGl0IGNhcnJpZXMuXG4gKiBTZWUgbW9kdWxlIGRvY3N0cmluZyBmb3IgdGhlIHN1cHBvcnRlZCBmb3JtYXRzLiBSZXR1cm5zIGB7fWAgZm9yXG4gKiBgdW5kZWZpbmVkYCwgZW1wdHkgc3RyaW5ncywgYW5kIHVucmVjb2duaXplZCBpbnB1dHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IHBnYWRkcmVzcyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdFwiO1xuICpcbiAqIHBnYWRkcmVzcy5wYXJzZUFkZHJlc3MoXCJwcm9qZWN0cy9kZW1vL2JyYW5jaGVzL3Byb2R1Y3Rpb24vZW5kcG9pbnRzL2VwLTFcIik7XG4gKiAvLyB7IHByb2plY3Q6IFwiZGVtb1wiLCBicmFuY2g6IFwicHJvZHVjdGlvblwiLCBlbmRwb2ludElkOiBcImVwLTFcIiwgZW5kcG9pbnQ6IFwicHJvamVjdHMvLi4uXCIgfVxuICpcbiAqIHBnYWRkcmVzcy5wYXJzZUFkZHJlc3MoXCJwb3N0Z3Jlc3FsOi8vbWVAZXAtMS5kYXRhYmFzZS5henVyZWRhdGFicmlja3MubmV0L2FwcD9zc2xtb2RlPXJlcXVpcmVcIik7XG4gKiAvLyB7IGhvc3Q6IFwiZXAtMS5kYXRhYmFzZS5henVyZWRhdGFicmlja3MubmV0XCIsIHVzZXI6IFwibWVcIiwgZGF0YWJhc2U6IFwiYXBwXCIsIHNzbE1vZGU6IFwicmVxdWlyZVwiIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQWRkcmVzcyhpbnB1dDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IFBhcnNlZEFkZHJlc3Mge1xuICBpZiAoIWlucHV0KSByZXR1cm4ge307XG4gIGNvbnN0IHMgPSBpbnB1dC50cmltKCk7XG4gIGlmICghcykgcmV0dXJuIHt9O1xuXG4gIGlmIChVUkxfU0NIRU1FX1JFLnRlc3QocykpIHJldHVybiBwYXJzZVVyaShzKTtcbiAgaWYgKHMuc3RhcnRzV2l0aChcInByb2plY3RzL1wiKSkgcmV0dXJuIHBhcnNlUmVzb3VyY2VQYXRoU2VnbWVudHMocyk7XG4gIC8vIFJlc291cmNlIGlkcyBuZXZlciBjb250YWluIGRvdHM7IGEgZG90dGVkIGlucHV0IG11c3QgYmUgYSBob3N0bmFtZS5cbiAgaWYgKEhPU1ROQU1FX0hJTlRfUkUudGVzdChzKSAmJiBzLmluY2x1ZGVzKFwiLlwiKSkgcmV0dXJuIHsgaG9zdDogcyB9O1xuICBpZiAoUFJPSkVDVF9JRF9SRS50ZXN0KHMpKSByZXR1cm4geyBwcm9qZWN0OiBzIH07XG4gIHJldHVybiB7fTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIExha2ViYXNlIGBwcm9qZWN0cy8uLi5gIHJlc291cmNlIHBhdGguIFJldHVybnMgYHt9YCB3aGVuIHRoZVxuICogaW5wdXQgaXMgbm90IGEgcmVzb3VyY2UgcGF0aCAoc28gYmFyZSBicmFuY2ggaWRzIGFyZSBub3QgbWlzdGFrZW4gZm9yXG4gKiBwcm9qZWN0IGlkcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlc291cmNlUGF0aChpbnB1dDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IFBhcnNlZEFkZHJlc3Mge1xuICBpZiAoIWlucHV0KSByZXR1cm4ge307XG4gIGNvbnN0IHMgPSBpbnB1dC50cmltKCk7XG4gIGlmICghcy5zdGFydHNXaXRoKFwicHJvamVjdHMvXCIpKSByZXR1cm4ge307XG4gIHJldHVybiBwYXJzZVJlc291cmNlUGF0aFNlZ21lbnRzKHMpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVVyaShzOiBzdHJpbmcpOiBQYXJzZWRBZGRyZXNzIHtcbiAgbGV0IHVybDogVVJMO1xuICB0cnkge1xuICAgIHVybCA9IG5ldyBVUkwocyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjb25zdCByZXN1bHQ6IFBhcnNlZEFkZHJlc3MgPSB7fTtcbiAgaWYgKHVybC5ob3N0bmFtZSkgcmVzdWx0Lmhvc3QgPSB1cmwuaG9zdG5hbWU7XG4gIGNvbnN0IHBvcnQgPSBvYmplY3QudG9OdW1iZXIodXJsLnBvcnQpO1xuICBpZiAocG9ydCAhPT0gdW5kZWZpbmVkKSByZXN1bHQucG9ydCA9IHBvcnQ7XG4gIGlmICh1cmwudXNlcm5hbWUpIHtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0LnVzZXIgPSBkZWNvZGVVUklDb21wb25lbnQodXJsLnVzZXJuYW1lKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJlc3VsdC51c2VyID0gdXJsLnVzZXJuYW1lO1xuICAgIH1cbiAgfVxuICBjb25zdCBkYiA9IHVybC5wYXRobmFtZS5yZXBsYWNlKC9eXFwvLywgXCJcIik7XG4gIGlmIChkYikgcmVzdWx0LmRhdGFiYXNlID0gZGVjb2RlVVJJQ29tcG9uZW50KGRiKTtcbiAgY29uc3Qgc3NsbW9kZVJhdyA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KFwic3NsbW9kZVwiKSA/PyB1cmwuc2VhcmNoUGFyYW1zLmdldChcInNzbE1vZGVcIik7XG4gIGNvbnN0IHNzbG1vZGUgPSBzc2xtb2RlUmF3Py50b0xvd2VyQ2FzZSgpO1xuICBpZiAoaXNTc2xNb2RlKHNzbG1vZGUpKSB7XG4gICAgcmVzdWx0LnNzbE1vZGUgPSBzc2xtb2RlO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGlzU3NsTW9kZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdmFsdWUgaXMgU3NsTW9kZSB7XG4gIHJldHVybiBTU0xfTU9ERVMuc29tZSgobW9kZSkgPT4gbW9kZSA9PT0gdmFsdWUpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVJlc291cmNlUGF0aFNlZ21lbnRzKHM6IHN0cmluZyk6IFBhcnNlZEFkZHJlc3Mge1xuICBjb25zdCBwYXJ0cyA9IHMuc3BsaXQoXCIvXCIpO1xuICBpZiAocGFydHNbMF0gIT09IFwicHJvamVjdHNcIiB8fCBwYXJ0cy5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3QgcHJvamVjdCA9IHBhcnRzWzFdO1xuICBpZiAoIXByb2plY3QpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBpZiAocGFydHMubGVuZ3RoID09PSAyKSB7XG4gICAgcmV0dXJuIHsgcHJvamVjdCB9O1xuICB9XG5cbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gNCAmJiBwYXJ0c1syXSA9PT0gXCJicmFuY2hlc1wiICYmIHBhcnRzWzNdKSB7XG4gICAgcmV0dXJuIHsgcHJvamVjdCwgYnJhbmNoOiBwYXJ0c1szXSB9O1xuICB9XG5cbiAgaWYgKFxuICAgIHBhcnRzLmxlbmd0aCA9PT0gNiAmJlxuICAgIHBhcnRzWzJdID09PSBcImJyYW5jaGVzXCIgJiZcbiAgICBwYXJ0c1s0XSA9PT0gXCJlbmRwb2ludHNcIiAmJlxuICAgIHBhcnRzWzNdICYmXG4gICAgcGFydHNbNV1cbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb2plY3QsXG4gICAgICBicmFuY2g6IHBhcnRzWzNdLFxuICAgICAgZW5kcG9pbnRJZDogcGFydHNbNV0sXG4gICAgICBlbmRwb2ludDogcyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKFxuICAgIHBhcnRzLmxlbmd0aCA9PT0gNiAmJlxuICAgIHBhcnRzWzJdID09PSBcImJyYW5jaGVzXCIgJiZcbiAgICBwYXJ0c1s0XSA9PT0gXCJkYXRhYmFzZXNcIiAmJlxuICAgIHBhcnRzWzNdICYmXG4gICAgcGFydHNbNV1cbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb2plY3QsXG4gICAgICBicmFuY2g6IHBhcnRzWzNdLFxuICAgICAgZGF0YWJhc2VSZXNvdXJjZUlkOiBwYXJ0c1s1XSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHt9O1xufVxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGdhZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BnYWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJDRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCwrRUFBK0U7QUFDL0UsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQVUsQ0FBQztBQTBDbkUsTUFBTSxhQUFhLEdBQUcsOEJBQThCLENBQUM7QUFDckQsTUFBTSxhQUFhLEdBQUcsd0NBQXdDLENBQUM7QUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyw4Q0FBOEMsQ0FBQztBQUV4RTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFnQztJQUMzRCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixJQUFJLENBQUMsQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRWxCLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQUUsT0FBTyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxzRUFBc0U7SUFDdEUsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BFLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7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RUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZsZXhpYmxlIGFkZHJlc3MgcGFyc2VyIGZvciBMYWtlYmFzZSBQb3N0Z3JlcyBjb25uZWN0aW9uIGlucHV0cy5cbiAqXG4gKiBBY2NlcHRzIHdoYXRldmVyIHNoYXBlIGEgdXNlciBpcyBsaWtlbHkgdG8gcGFzdGUgaW50b1xuICogYExBS0VCQVNFX0VORFBPSU5UYCAob3IgdGhlIG1hdGNoaW5nIGNvbmZpZyBmaWVsZCkgYW5kIGV4dHJhY3RzXG4gKiBldmVyeSByZWNvZ25pemFibGUgcGllY2UuIFdoYXRldmVyIGl0IGNhbid0IHJlY292ZXIgaXMgbGVmdCBmb3IgdGhlXG4gKiBMYWtlYmFzZSByZXNvbHZlciB0byBkaXNjb3Zlci5cbiAqXG4gKiBSZWNvZ25pemVkIGZvcm1hdHM6XG4gKlxuICogLSAqKlBvc3RncmVzIFVSSSoqIC1cbiAqICAgYHBvc3RncmVzcWw6Ly91c2VyQGhvc3Q6cG9ydC9kYj9zc2xtb2RlPXJlcXVpcmVgIChhbHNvIGBwb3N0Z3JlczovL2ApLlxuICogICBZaWVsZHMgYHVzZXJgLCBgaG9zdGAsIGBwb3J0YCwgYGRhdGFiYXNlYCwgYHNzbE1vZGVgLlxuICpcbiAqIC0gKipDYW5vbmljYWwgZW5kcG9pbnQgcmVzb3VyY2UgcGF0aCoqIC1cbiAqICAgYHByb2plY3RzL3twfS9icmFuY2hlcy97Yn0vZW5kcG9pbnRzL3tlfWAgLVxuICogICB5aWVsZHMgYHByb2plY3RgLCBgYnJhbmNoYCwgYGVuZHBvaW50SWRgLCBhbmQgdGhlIG9yaWdpbmFsIHN0cmluZyBhc1xuICogICBgZW5kcG9pbnRgIChhbHJlYWR5IGluIGxha2ViYXNlJ3MgZXhwZWN0ZWQgZm9ybSkuXG4gKlxuICogLSAqKkRhdGFiYXNlIHJlc291cmNlIHBhdGgqKiAtXG4gKiAgIGBwcm9qZWN0cy97cH0vYnJhbmNoZXMve2J9L2RhdGFiYXNlcy97ZH1gIC1cbiAqICAgeWllbGRzIGBwcm9qZWN0YCwgYGJyYW5jaGAsIGFuZCBgZGF0YWJhc2VSZXNvdXJjZUlkYCAodGhlIFVDXG4gKiAgIHJlc291cmNlIGxlYWYsIG5vdCBgUEdEQVRBQkFTRWA7IHRoZSByZXNvbHZlciBsb29rcyB1cCB0aGUgcmVhbFxuICogICBQb3N0Z3JlcyBuYW1lIHZpYSBSRVNUKS5cbiAqXG4gKiAtICoqQnJhbmNoIHJlc291cmNlIHBhdGgqKiAtXG4gKiAgIGBwcm9qZWN0cy97cH0vYnJhbmNoZXMve2J9YCAtIHlpZWxkcyBgcHJvamVjdGAsIGBicmFuY2hgLlxuICpcbiAqIC0gKipQcm9qZWN0IHJlc291cmNlIHBhdGgqKiAtXG4gKiAgIGBwcm9qZWN0cy97cH1gIC0geWllbGRzIGBwcm9qZWN0YC5cbiAqXG4gKiAtICoqQmFyZSBob3N0bmFtZSoqIC1cbiAqICAgYGVwLXN0ZWVwLWZvcmVzdC1lMTk5djQzdy5kYXRhYmFzZS5lYXN0dXMyLmF6dXJlZGF0YWJyaWNrcy5uZXRgIC1cbiAqICAgeWllbGRzIGBob3N0YCBvbmx5OyB0aGUgcmVzb2x2ZXIgcmV2ZXJzZS1sb29rcyB1cCB0aGUgb3duaW5nXG4gKiAgIGVuZHBvaW50IHRvIHJlY292ZXIgdGhlIHJlc291cmNlIHBhdGguXG4gKlxuICogLSAqKkJhcmUgcHJvamVjdCBpZCoqIC1cbiAqICAgYGRieC10b29scy1kZW1vYCAoMS02MyBjaGFycywgbG93ZXJjYXNlIGxldHRlcnMvZGlnaXRzL2h5cGhlbnMpIC1cbiAqICAgeWllbGRzIGBwcm9qZWN0YC5cbiAqXG4gKiBSZXR1cm5zIGFuIGVtcHR5IG9iamVjdCBmb3IgaW5wdXRzIGl0IGRvZXNuJ3QgcmVjb2duaXplLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvYmplY3QgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuXG4vKiogUG9zdGdyZXMgVExTIG1vZGVzIGFjY2VwdGVkIGJ5IHtAbGluayBTc2xNb2RlfSwgaW4gYFBHU1NMTU9ERWAgc3BlbGxpbmcuICovXG5leHBvcnQgY29uc3QgU1NMX01PREVTID0gW1wicmVxdWlyZVwiLCBcImRpc2FibGVcIiwgXCJwcmVmZXJcIl0gYXMgY29uc3Q7XG5cbi8qKiBQb3N0Z3JlcyBUTFMgbW9kZSBwYXNzZWQgdGhyb3VnaCB0byBgcGdgLiAqL1xuZXhwb3J0IHR5cGUgU3NsTW9kZSA9ICh0eXBlb2YgU1NMX01PREVTKVtudW1iZXJdO1xuXG4vKipcbiAqIE9wdGlvbmFsIExha2ViYXNlIFBvc3RncmVzIGNvbm5lY3Rpb24gZmllbGRzIHNoYXJlZCBieSBwYXJzZWQgYWRkcmVzc2VzLFxuICogcmVzb2x2ZXIvZW52IGlucHV0cywgYW5kIHJlc29sdmVkIGNvbm5lY3Rpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExha2ViYXNlQ29ubmVjdGlvbklucHV0cyB7XG4gIC8qKiBMYWtlYmFzZSBwcm9qZWN0IGlkLiBSZXNvbHZlZCBmcm9tIHRoZSB3b3Jrc3BhY2Ugd2hlbiB1bnNldC4gKi9cbiAgcHJvamVjdD86IHN0cmluZztcbiAgLyoqIEJyYW5jaCBpZCB3aXRoaW4gdGhlIHByb2plY3QuIERlZmF1bHRzIHRvIHRoZSBwcm9qZWN0J3MgZGVmYXVsdCBicmFuY2guICovXG4gIGJyYW5jaD86IHN0cmluZztcbiAgLyoqXG4gICAqIENhbm9uaWNhbCBlbmRwb2ludCByZXNvdXJjZSBwYXRoIChgcHJvamVjdHMvLi4uL2VuZHBvaW50cy8uLi5gKSwgZnJvbVxuICAgKiBgTEFLRUJBU0VfRU5EUE9JTlRgLiBEZWZhdWx0cyB0byB0aGUgYnJhbmNoJ3MgcmVhZC13cml0ZSBlbmRwb2ludC5cbiAgICovXG4gIGVuZHBvaW50Pzogc3RyaW5nO1xuICAvKiogUG9zdGdyZXMgZGF0YWJhc2UgbmFtZSAoYFBHREFUQUJBU0VgKS4gRGVmYXVsdHMgdG8gYGRhdGFicmlja3NfcG9zdGdyZXNgLiAqL1xuICBkYXRhYmFzZT86IHN0cmluZztcbiAgLyoqIFBvc3RncmVzIGhvc3RuYW1lIChgUEdIT1NUYCkuIERlZmF1bHRzIHRvIHRoZSByZXNvbHZlZCBlbmRwb2ludCdzIGhvc3QuICovXG4gIGhvc3Q/OiBzdHJpbmc7XG4gIC8qKiBQb3N0Z3JlcyBwb3J0IChgUEdQT1JUYCkuIERlZmF1bHRzIHRvIDU0MzIuICovXG4gIHBvcnQ/OiBudW1iZXI7XG4gIC8qKiBQb3N0Z3JlcyBUTFMgbW9kZSAoYFBHU1NMTU9ERWApLiBEZWZhdWx0cyB0byBgcmVxdWlyZWAuICovXG4gIHNzbE1vZGU/OiBTc2xNb2RlO1xufVxuXG4vKiogUGllY2VzIHJlY292ZXJlZCBmcm9tIHBhcnNpbmcgYSBzaW5nbGUgYWRkcmVzcyBvciByZXNvdXJjZS1wYXRoIGlucHV0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRBZGRyZXNzIGV4dGVuZHMgTGFrZWJhc2VDb25uZWN0aW9uSW5wdXRzIHtcbiAgLyoqIEVuZHBvaW50IGxlYWYgaWQgKGxhc3Qgc2VnbWVudCBvZiBhbiBlbmRwb2ludCByZXNvdXJjZSBwYXRoKS4gKi9cbiAgZW5kcG9pbnRJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIERhdGFiYXNlIHJlc291cmNlIGlkIGxlYWYgZnJvbSBhIGAuLi4vZGF0YWJhc2VzL3tpZH1gIHBhdGguIE5vdCB0aGVcbiAgICogUG9zdGdyZXMgZGF0YWJhc2UgbmFtZS5cbiAgICovXG4gIGRhdGFiYXNlUmVzb3VyY2VJZD86IHN0cmluZztcbiAgLyoqIFBvc3RncmVzIHVzZXIgKFVSSS1kZWNvZGVkIGlmIGVuY29kZWQpLiAqL1xuICB1c2VyPzogc3RyaW5nO1xufVxuXG5jb25zdCBVUkxfU0NIRU1FX1JFID0gL14ocG9zdGdyZXN8cG9zdGdyZXNxbCk6XFwvXFwvL2k7XG5jb25zdCBQUk9KRUNUX0lEX1JFID0gL15bYS16XVthLXowLTktXXswLDYxfVthLXowLTldJHxeW2Etel0kLztcbmNvbnN0IEhPU1ROQU1FX0hJTlRfUkUgPSAvXlthLXowLTldW2EtejAtOS1dKihcXC5bYS16MC05XVthLXowLTktXSopKyQvaTtcblxuLyoqXG4gKiBQYXJzZSBhIExha2ViYXNlIGNvbm5lY3Rpb24gaW5wdXQgaW50byB3aGF0ZXZlciBwaWVjZXMgaXQgY2Fycmllcy5cbiAqIFNlZSBtb2R1bGUgZG9jc3RyaW5nIGZvciB0aGUgc3VwcG9ydGVkIGZvcm1hdHMuIFJldHVybnMgYHt9YCBmb3JcbiAqIGB1bmRlZmluZWRgLCBlbXB0eSBzdHJpbmdzLCBhbmQgdW5yZWNvZ25pemVkIGlucHV0cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgcGdhZGRyZXNzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG4gKlxuICogcGdhZGRyZXNzLnBhcnNlQWRkcmVzcyhcInByb2plY3RzL2RlbW8vYnJhbmNoZXMvcHJvZHVjdGlvbi9lbmRwb2ludHMvZXAtMVwiKTtcbiAqIC8vIHsgcHJvamVjdDogXCJkZW1vXCIsIGJyYW5jaDogXCJwcm9kdWN0aW9uXCIsIGVuZHBvaW50SWQ6IFwiZXAtMVwiLCBlbmRwb2ludDogXCJwcm9qZWN0cy8uLi5cIiB9XG4gKlxuICogcGdhZGRyZXNzLnBhcnNlQWRkcmVzcyhcInBvc3RncmVzcWw6Ly9tZUBlcC0xLmRhdGFiYXNlLmF6dXJlZGF0YWJyaWNrcy5uZXQvYXBwP3NzbG1vZGU9cmVxdWlyZVwiKTtcbiAqIC8vIHsgaG9zdDogXCJlcC0xLmRhdGFiYXNlLmF6dXJlZGF0YWJyaWNrcy5uZXRcIiwgdXNlcjogXCJtZVwiLCBkYXRhYmFzZTogXCJhcHBcIiwgc3NsTW9kZTogXCJyZXF1aXJlXCIgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBZGRyZXNzKGlucHV0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogUGFyc2VkQWRkcmVzcyB7XG4gIGlmICghaW5wdXQpIHJldHVybiB7fTtcbiAgY29uc3QgcyA9IGlucHV0LnRyaW0oKTtcbiAgaWYgKCFzKSByZXR1cm4ge307XG5cbiAgaWYgKFVSTF9TQ0hFTUVfUkUudGVzdChzKSkgcmV0dXJuIHBhcnNlVXJpKHMpO1xuICBpZiAocy5zdGFydHNXaXRoKFwicHJvamVjdHMvXCIpKSByZXR1cm4gcGFyc2VSZXNvdXJjZVBhdGhTZWdtZW50cyhzKTtcbiAgLy8gUmVzb3VyY2UgaWRzIG5ldmVyIGNvbnRhaW4gZG90czsgYSBkb3R0ZWQgaW5wdXQgbXVzdCBiZSBhIGhvc3RuYW1lLlxuICBpZiAoSE9TVE5BTUVfSElOVF9SRS50ZXN0KHMpICYmIHMuaW5jbHVkZXMoXCIuXCIpKSByZXR1cm4geyBob3N0OiBzIH07XG4gIGlmIChQUk9KRUNUX0lEX1JFLnRlc3QocykpIHJldHVybiB7IHByb2plY3Q6IHMgfTtcbiAgcmV0dXJuIHt9O1xufVxuXG4vKipcbiAqIFBhcnNlIGEgTGFrZWJhc2UgYHByb2plY3RzLy4uLmAgcmVzb3VyY2UgcGF0aC4gUmV0dXJucyBge31gIHdoZW4gdGhlXG4gKiBpbnB1dCBpcyBub3QgYSByZXNvdXJjZSBwYXRoIChzbyBiYXJlIGJyYW5jaCBpZHMgYXJlIG5vdCBtaXN0YWtlbiBmb3JcbiAqIHByb2plY3QgaWRzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVzb3VyY2VQYXRoKGlucHV0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogUGFyc2VkQWRkcmVzcyB7XG4gIGlmICghaW5wdXQpIHJldHVybiB7fTtcbiAgY29uc3QgcyA9IGlucHV0LnRyaW0oKTtcbiAgaWYgKCFzLnN0YXJ0c1dpdGgoXCJwcm9qZWN0cy9cIikpIHJldHVybiB7fTtcbiAgcmV0dXJuIHBhcnNlUmVzb3VyY2VQYXRoU2VnbWVudHMocyk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVXJpKHM6IHN0cmluZyk6IFBhcnNlZEFkZHJlc3Mge1xuICBsZXQgdXJsOiBVUkw7XG4gIHRyeSB7XG4gICAgdXJsID0gbmV3IFVSTChzKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0IHRhcmdldCA9IHVybC5wYXRobmFtZS5yZXBsYWNlKC9eXFwvLywgXCJcIik7XG4gIGNvbnN0IGRlY29kZWRUYXJnZXQgPSB0YXJnZXQgPyBkZWNvZGVVUklDb21wb25lbnQodGFyZ2V0KSA6IFwiXCI7XG4gIGNvbnN0IHJlc3VsdDogUGFyc2VkQWRkcmVzcyA9IGRlY29kZWRUYXJnZXQuc3RhcnRzV2l0aChcInByb2plY3RzL1wiKVxuICAgID8gcGFyc2VSZXNvdXJjZVBhdGhTZWdtZW50cyhkZWNvZGVkVGFyZ2V0KVxuICAgIDoge307XG4gIGlmICh1cmwuaG9zdG5hbWUpIHJlc3VsdC5ob3N0ID0gdXJsLmhvc3RuYW1lO1xuICBjb25zdCBwb3J0ID0gb2JqZWN0LnRvTnVtYmVyKHVybC5wb3J0KTtcbiAgaWYgKHBvcnQgIT09IHVuZGVmaW5lZCkgcmVzdWx0LnBvcnQgPSBwb3J0O1xuICBpZiAodXJsLnVzZXJuYW1lKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdC51c2VyID0gZGVjb2RlVVJJQ29tcG9uZW50KHVybC51c2VybmFtZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXN1bHQudXNlciA9IHVybC51c2VybmFtZTtcbiAgICB9XG4gIH1cbiAgaWYgKGRlY29kZWRUYXJnZXQgJiYgIXJlc3VsdC5wcm9qZWN0KSByZXN1bHQuZGF0YWJhc2UgPSBkZWNvZGVkVGFyZ2V0O1xuICBjb25zdCBzc2xtb2RlUmF3ID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoXCJzc2xtb2RlXCIpID8/IHVybC5zZWFyY2hQYXJhbXMuZ2V0KFwic3NsTW9kZVwiKTtcbiAgY29uc3Qgc3NsbW9kZSA9IHNzbG1vZGVSYXc/LnRvTG93ZXJDYXNlKCk7XG4gIGlmIChpc1NzbE1vZGUoc3NsbW9kZSkpIHtcbiAgICByZXN1bHQuc3NsTW9kZSA9IHNzbG1vZGU7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaXNTc2xNb2RlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBTc2xNb2RlIHtcbiAgcmV0dXJuIFNTTF9NT0RFUy5zb21lKChtb2RlKSA9PiBtb2RlID09PSB2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlUmVzb3VyY2VQYXRoU2VnbWVudHMoczogc3RyaW5nKTogUGFyc2VkQWRkcmVzcyB7XG4gIGNvbnN0IHBhcnRzID0gcy5zcGxpdChcIi9cIik7XG4gIGlmIChwYXJ0c1swXSAhPT0gXCJwcm9qZWN0c1wiIHx8IHBhcnRzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBwcm9qZWN0ID0gcGFydHNbMV07XG4gIGlmICghcHJvamVjdCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICByZXR1cm4geyBwcm9qZWN0IH07XG4gIH1cblxuICBpZiAocGFydHMubGVuZ3RoID09PSA0ICYmIHBhcnRzWzJdID09PSBcImJyYW5jaGVzXCIgJiYgcGFydHNbM10pIHtcbiAgICByZXR1cm4geyBwcm9qZWN0LCBicmFuY2g6IHBhcnRzWzNdIH07XG4gIH1cblxuICBpZiAoXG4gICAgcGFydHMubGVuZ3RoID09PSA2ICYmXG4gICAgcGFydHNbMl0gPT09IFwiYnJhbmNoZXNcIiAmJlxuICAgIHBhcnRzWzRdID09PSBcImVuZHBvaW50c1wiICYmXG4gICAgcGFydHNbM10gJiZcbiAgICBwYXJ0c1s1XVxuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvamVjdCxcbiAgICAgIGJyYW5jaDogcGFydHNbM10sXG4gICAgICBlbmRwb2ludElkOiBwYXJ0c1s1XSxcbiAgICAgIGVuZHBvaW50OiBzLFxuICAgIH07XG4gIH1cblxuICBpZiAoXG4gICAgcGFydHMubGVuZ3RoID09PSA2ICYmXG4gICAgcGFydHNbMl0gPT09IFwiYnJhbmNoZXNcIiAmJlxuICAgIHBhcnRzWzRdID09PSBcImRhdGFiYXNlc1wiICYmXG4gICAgcGFydHNbM10gJiZcbiAgICBwYXJ0c1s1XVxuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvamVjdCxcbiAgICAgIGJyYW5jaDogcGFydHNbM10sXG4gICAgICBkYXRhYmFzZVJlc291cmNlSWQ6IHBhcnRzWzVdLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge307XG59XG4iXX0=
package/package.json CHANGED
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@databricks/appkit": "^0.60.0",
22
- "@dbx-tools/test-polyglot": "0.6.185",
22
+ "@dbx-tools/test-polyglot": "0.6.188",
23
23
  "@types/bun": "1.3.14",
24
24
  "@types/node": "^24.6.0",
25
25
  "typescript": "^5.9.3"
@@ -29,8 +29,8 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@databricks/sdk-experimental": "^0.17.0",
32
- "@dbx-tools/core": "0.6.185",
33
- "@dbx-tools/shared-core": "0.6.185",
32
+ "@dbx-tools/core": "0.6.188",
33
+ "@dbx-tools/shared-core": "0.6.188",
34
34
  "zod": "4.3.6"
35
35
  },
36
36
  "main": "./lib/index.js",
@@ -47,7 +47,7 @@
47
47
  "./package.json": "./package.json"
48
48
  }
49
49
  },
50
- "version": "0.6.185",
50
+ "version": "0.6.188",
51
51
  "types": "./lib/index.d.ts",
52
52
  "type": "module",
53
53
  "exports": {
package/src/pgaddress.ts CHANGED
@@ -138,7 +138,11 @@ function parseUri(s: string): ParsedAddress {
138
138
  } catch {
139
139
  return {};
140
140
  }
141
- const result: ParsedAddress = {};
141
+ const target = url.pathname.replace(/^\//, "");
142
+ const decodedTarget = target ? decodeURIComponent(target) : "";
143
+ const result: ParsedAddress = decodedTarget.startsWith("projects/")
144
+ ? parseResourcePathSegments(decodedTarget)
145
+ : {};
142
146
  if (url.hostname) result.host = url.hostname;
143
147
  const port = object.toNumber(url.port);
144
148
  if (port !== undefined) result.port = port;
@@ -149,8 +153,7 @@ function parseUri(s: string): ParsedAddress {
149
153
  result.user = url.username;
150
154
  }
151
155
  }
152
- const db = url.pathname.replace(/^\//, "");
153
- if (db) result.database = decodeURIComponent(db);
156
+ if (decodedTarget && !result.project) result.database = decodedTarget;
154
157
  const sslmodeRaw = url.searchParams.get("sslmode") ?? url.searchParams.get("sslMode");
155
158
  const sslmode = sslmodeRaw?.toLowerCase();
156
159
  if (isSslMode(sslmode)) {