dbctx 1.2.0 → 1.4.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.mts","sourceRoot":"./src/","sources":["app/db.mts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAIzC,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAEF,QAAA,MAAO,IAAI,0BAAM,CAAC;AAwFlB,eAAO,MAAM,SAAS,GAClB,OAAO,MAAM,KACd,OAAO,CAAC,aAAa,GAAG,SAAS,CA8GnC,CAAC"}
1
+ {"version":3,"file":"db.d.mts","sourceRoot":"./src/","sources":["app/db.mts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAIzC,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAEF,QAAA,MAAO,IAAI,0BAAM,CAAC;AAyHlB,eAAO,MAAM,SAAS,GAClB,OAAO,MAAM,KACd,OAAO,CAAC,aAAa,GAAG,SAAS,CA8GnC,CAAC"}
package/dist/app/db.mjs CHANGED
@@ -4,6 +4,30 @@ import { runInAction, when } from 'mobx';
4
4
  import { scope } from 'scope-utilities';
5
5
  import { fetchPostgresVersion } from '../db/version.mjs';
6
6
  const { Pool } = pg;
7
+ const formatConnectionError = (err) => {
8
+ if (!(err instanceof Error)) {
9
+ return String(err) || 'Unknown error';
10
+ }
11
+ if (err.message) {
12
+ return err.message;
13
+ }
14
+ // System errors (ECONNREFUSED, ETIMEDOUT, etc.)
15
+ const sysErr = err;
16
+ if (sysErr.code) {
17
+ const parts = [sysErr.code];
18
+ if (sysErr.syscall) {
19
+ parts.push(sysErr.syscall);
20
+ }
21
+ if (sysErr.address) {
22
+ parts.push(sysErr.address);
23
+ }
24
+ if (sysErr.port !== undefined) {
25
+ parts.push(String(sysErr.port));
26
+ }
27
+ return parts.join(' ');
28
+ }
29
+ return 'Connection failed';
30
+ };
7
31
  const resolveDBConfig = (store) => scope({
8
32
  hostname: 'localhost',
9
33
  port: 5432,
@@ -132,7 +156,7 @@ export const connectDB = async (store) => {
132
156
  runInAction(() => {
133
157
  store.steps.databaseConnection.state = 'error';
134
158
  store.steps.databaseConnection.error =
135
- err instanceof Error ? err.message : String(err);
159
+ formatConnectionError(err);
136
160
  });
137
161
  return undefined;
138
162
  }
@@ -154,4 +178,4 @@ export const connectDB = async (store) => {
154
178
  };
155
179
  return attemptConnection(config.password, ssl);
156
180
  };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiYXBwL2RiLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFJdEMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFPdkQsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUUsQ0FBQztBQVVsQixNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWEsRUFBcUIsRUFBRSxDQUN6RCxLQUFLLENBQUM7SUFDRixRQUFRLEVBQUUsV0FBVztJQUNyQixJQUFJLEVBQUUsSUFBSTtJQUNWLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFFBQVEsRUFBRSxTQUErQjtDQUM1QyxDQUFDO0tBQ0csR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVE7SUFDbEQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lBQ2pCLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRO0lBQ3RELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE1B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a0IsQ0FBQyxZQUFZO29CQUN2QyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQ25ELEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDL0MsS0FBSyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7WUFDM0QsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUVuRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVMsQ0FBQztZQUU3RCxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUNiLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDL0MsS0FBSyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3JlYWRGaWxlU3luY30gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGcgZnJvbSAncGcnO1xuaW1wb3J0IHtydW5JbkFjdGlvbiwgd2hlbn0gZnJvbSAnbW9ieCc7XG5pbXBvcnQge3Njb3BlfSBmcm9tICdzY29wZS11dGlsaXRpZXMnO1xuXG5pbXBvcnQgdHlwZSB7VFN0b3JlfSBmcm9tICcuLi9zdG9yZS5tanMnO1xuaW1wb3J0IHR5cGUge1RTU0xNb2RlfSBmcm9tICcuLi9pbmRleC5tanMnO1xuaW1wb3J0IHtmZXRjaFBvc3RncmVzVmVyc2lvbn0gZnJvbSAnLi4vZGIvdmVyc2lvbi5tanMnO1xuXG5leHBvcnQgdHlwZSBUREJDb25uZWN0aW9uID0ge1xuICAgIHJlYWRvbmx5IHBvb2w6IEluc3RhbmNlVHlwZTx0eXBlb2YgUG9vbD47XG4gICAgcmVhZG9ubHkgY2xlYW51cDogKCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IHtQb29sfSA9IHBnO1xuXG50eXBlIFRSZXNvbHZlZERCQ29uZmlnID0ge1xuICAgIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IGRhdGFiYXNlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgdXNlcm5hbWU6IHN0cmluZztcbiAgICByZWFkb25seSBwYXNzd29yZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuY29uc3QgcmVzb2x2ZURCQ29uZmlnID0gKHN0b3JlOiBUU3RvcmUpOiBUUmVzb2x2ZWREQkNvbmZpZyA9PlxuICAgIHNjb3BlKHtcbiAgICAgICAgaG9zdG5hbWU6ICdsb2NhbGhvc3QnLFxuICAgICAgICBwb3J0OiA1NDMyLFxuICAgICAgICBkYXRhYmFzZTogJ3Bvc3RncmVzJyxcbiAgICAgICAgdXNlcm5hbWU6ICdwb3N0Z3JlcycsXG4gICAgICAgIHBhc3N3b3JkOiB1bmRlZmluZWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIH0pXG4gICAgICAgIC5sZXQoKGNvbmZpZykgPT4gKHtcbiAgICAgICAgICAgIGhvc3RuYW1lOiBwcm9jZXNzLmVudlsnUEdIT1NUJ10gPz8gY29uZmlnLmhvc3RuYW1lLFxuICAgICAgICAgICAgcG9ydDogcHJvY2Vzcy5lbnZbJ1BHUE9SVCddXG4gICAgICAgICAgICAgICAgPyBwYXJzZUludChwcm9jZXNzLmVudlsnUEdQT1JUJ10sIDEwKVxuICAgICAgICAgICAgICAgIDogY29uZmlnLnBvcnQsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnZbJ1BHREFUQUJBU0UnXSA/PyBjb25maWcuZGF0YWJhc2UsXG4gICAgICAgICAgICB1c2VybmFtZTogcHJvY2Vzcy5lbnZbJ1BHVVNFUiddID8/IGNvbmZpZy51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudlsnUEdQQVNTV09SRCddID8/IGNvbmZpZy5wYXNzd29yZCxcbiAgICAgICAgfSkpXG4gICAgICAgIC5sZXQoKGNvbmZpZykgPT5cbiAgICAgICAgICAgIHN0b3JlLmNvbmZpZy5jb25uZWN0aW9uU3RyaW5nXG4gICAgICAgICAgICAgICAgPyBzY29wZShuZXcgVVJMKHN0b3JlLmNvbmZpZy5jb25uZWN0aW9uU3RyaW5nKSlcbiAgICAgICAgICAgICAgICAgICAgICAubGV0KCh1cmwpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RuYW1lOiB1cmwuaG9zdG5hbWUgfHwgY29uZmlnLmhvc3RuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0OiB1cmwucG9ydCA/IHBhcnNlSW50KHVybC5wb3J0LCAxMCkgOiBjb25maWcucG9ydCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2U6IHVybC5wYXRobmFtZS5zbGljZSgxKSB8fCBjb25maWcuZGF0YWJhc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KHVybC51c2VybmFtZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy51c2VybmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IHVybC5wYXNzd29yZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBkZWNvZGVVUklDb21wb25lbnQodXJsLnBhc3N3b3JkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25maWcucGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgICAgLnZhbHVlKClcbiAgICAgICAgICAgICAgICA6IGNvbmZpZyxcbiAgICAgICAgKVxuICAgICAgICAubGV0KChjb25maWcpID0+ICh7XG4gICAgICAgICAgICBob3N0bmFtZTogc3RvcmUuY29uZmlnLmhvc3RuYW1lID8/IGNvbmZpZy5ob3N0bmFtZSxcbiAgICAgICAgICAgIHBvcnQ6IHN0b3JlLmNvbmZpZy5wb3J0ID8/IGNvbmZpZy5wb3J0LFxuICAgICAgICAgICAgZGF0YWJhc2U6IHN0b3JlLmNvbmZpZy5kYXRhYmFzZSA/PyBjb25maWcuZGF0YWJhc2UsXG4gICAgICAgICAgICB1c2VybmFtZTogc3RvcmUuY29uZmlnLnVzZXJuYW1lID8/IGNvbmZpZy51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBjb25maWcucGFzc3dvcmQsXG4gICAgICAgIH0pKVxuICAgICAgICAudmFsdWUoKTtcblxudHlwZSBUU1NMQ29uZmlnID1cbiAgICB8IGZhbHNlXG4gICAgfCB7XG4gICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiBib29sZWFuO1xuICAgICAgICAgIGNhPzogc3RyaW5nO1xuICAgICAgICAgIGNlcnQ/OiBzdHJpbmc7XG4gICAgICAgICAga2V5Pzogc3RyaW5nO1xuICAgICAgfTtcblxuY29uc3QgYnVpbGRTU0xDb25maWcgPSAoc3RvcmU6IFRTdG9yZSk6IFRTU0xDb25maWcgPT4ge1xuICAgIGNvbnN0IG1vZGU6IFRTU0xNb2RlID0gc3RvcmUuY29uZmlnLnNzbG1vZGUgPz8gJ3ByZWZlcic7XG5cbiAgICByZXR1cm4gbW9kZSA9PT0gJ2Rpc2FibGUnXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiB7XG4gICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDpcbiAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICd2ZXJpZnktY2EnIHx8IG1vZGUgPT09ICd2ZXJpZnktZnVsbCcsXG4gICAgICAgICAgICAgIC4uLihzdG9yZS5jb25maWcuc3Nscm9vdGNlcnRcbiAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2E6IHJlYWRGaWxlU3luYyhzdG9yZS5jb25maWcuc3Nscm9vdGNlcnQsICd1dGYtOCcpLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgLi4uKHN0b3JlLmNvbmZpZy5zc2xjZXJ0XG4gICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlcnQ6IHJlYWRGaWxlU3luYyhzdG9yZS5jb25maWcuc3NsY2VydCwgJ3V0Zi04JyksXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAuLi4oc3RvcmUuY29uZmlnLnNzbGtleVxuICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHJlYWRGaWxlU3luYyhzdG9yZS5jb25maWcuc3Nsa2V5LCAndXRmLTgnKSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25uZWN0REIgPSBhc3luYyAoXG4gICAgc3RvcmU6IFRTdG9yZSxcbik6IFByb21pc2U8VERCQ29ubmVjdGlvbiB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlc29sdmVEQkNvbmZpZyhzdG9yZSk7XG4gICAgY29uc3Qgc3NsID0gYnVpbGRTU0xDb25maWcoc3RvcmUpO1xuXG4gICAgLy8gU1NIIHR1bm5lbDogY29ubmVjdCB2aWEgbG9jYWxob3N0IHR1bm5lbCwgYnV0IGRpc3BsYXkgdGhlIHJlYWwgcmVtb3RlIHRhcmdldFxuICAgIGNvbnN0IGNvbm5lY3Rpb25Ib3N0ID1cbiAgICAgICAgc3RvcmUuc3RlcHMuc3NoQ29ubmVjdGlvbi5lbmFibGVkICYmXG4gICAgICAgIHN0b3JlLnN0ZXBzLnNzaENvbm5lY3Rpb24ubG9jYWxQb3J0ICE9PSBudWxsXG4gICAgICAgICAgICA/ICcxMjcuMC4wLjEnXG4gICAgICAgICAgICA6IGNvbmZpZy5ob3N0bmFtZTtcbiAgICBjb25zdCBjb25uZWN0aW9uUG9ydCA9XG4gICAgICAgIHN0b3JlLnN0ZXBzLnNzaENvbm5lY3Rpb24uZW5hYmxlZCAmJlxuICAgICAgICBzdG9yZS5zdGVwcy5zc2hDb25uZWN0aW9uLmxvY2FsUG9ydCAhPT0gbnVsbFxuICAgICAgICAgICAgPyBzdG9yZS5zdGVwcy5zc2hDb25uZWN0aW9uLmxvY2FsUG9ydFxuICAgICAgICAgICAgOiBjb25maWcucG9ydDtcblxuICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnBpY2tlZEhvc3RuYW1lID0gY29uZmlnLmhvc3RuYW1lO1xuICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucGlja2VkUG9ydCA9IGNvbmZpZy5wb3J0O1xuICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucGlja2VkRGF0YWJhc2UgPSBjb25maWcuZGF0YWJhc2U7XG4gICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5waWNrZWRVc2VybmFtZSA9IGNvbmZpZy51c2VybmFtZTtcbiAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnN0YXRlID0gJ2Nvbm5lY3RpbmcnO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYXR0ZW1wdENvbm5lY3Rpb24gPSBhc3luYyAoXG4gICAgICAgIHBhc3N3b3JkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgIHNzbENvbmZpZzogVFNTTENvbmZpZyxcbiAgICApOiBQcm9taXNlPFREQkNvbm5lY3Rpb24gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICAgICAgY29uc3QgcG9vbCA9IG5ldyBQb29sKHtcbiAgICAgICAgICAgIGhvc3Q6IGNvbm5lY3Rpb25Ib3N0LFxuICAgICAgICAgICAgcG9ydDogY29ubmVjdGlvblBvcnQsXG4gICAgICAgICAgICBkYXRhYmFzZTogY29uZmlnLmRhdGFiYXNlLFxuICAgICAgICAgICAgdXNlcjogY29uZmlnLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICBzc2w6IHNzbENvbmZpZyxcbiAgICAgICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0TWlsbGlzOiAxMF8wMDAsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBwb29sLmNvbm5lY3QoKTtcbiAgICAgICAgICAgIGNsaWVudC5yZWxlYXNlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSBhd2FpdCBmZXRjaFBvc3RncmVzVmVyc2lvbihwb29sKTtcblxuICAgICAgICAgICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5wb3N0Z3Jlc1ZlcnNpb24gPVxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLnZlcnNpb247XG4gICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnBvc3RncmVzVmVyc2lvbk51bWJlciA9XG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb24udmVyc2lvbl9udW07XG4gICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnN0YXRlID0gJ2Nvbm5lY3RlZCc7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwb29sLFxuICAgICAgICAgICAgICAgIGNsZWFudXA6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcG9vbC5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnN0YXRlID0gJ2lkbGUnO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBhd2FpdCBwb29sLmVuZCgpO1xuXG4gICAgICAgICAgICAvLyBTU0wgZXJyb3JzIGhhcHBlbiBiZWZvcmUgYXV0aCDigJQgY2hlY2sgZmlyc3RcbiAgICAgICAgICAgIGNvbnN0IGVyck1zZyA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnJztcbiAgICAgICAgICAgIGNvbnN0IGlzU1NMRXJyb3IgPSBlcnJNc2cuaW5jbHVkZXMoJ2RvZXMgbm90IHN1cHBvcnQgU1NMJyk7XG4gICAgICAgICAgICBjb25zdCBzc2xNb2RlOiBUU1NMTW9kZSA9IHN0b3JlLmNvbmZpZy5zc2xtb2RlID8/ICdwcmVmZXInO1xuXG4gICAgICAgICAgICBpZiAoaXNTU0xFcnJvciAmJiBzc2xNb2RlID09PSAncHJlZmVyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBhdHRlbXB0Q29ubmVjdGlvbihwYXNzd29yZCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwZ0NvZGUgPSAoZXJyIGFzIHtjb2RlPzogc3RyaW5nfSkuY29kZTtcbiAgICAgICAgICAgIGNvbnN0IGlzQXV0aEVycm9yID1cbiAgICAgICAgICAgICAgICBwZ0NvZGUgPT09ICcyOFAwMScgfHxcbiAgICAgICAgICAgICAgICBwZ0NvZGUgPT09ICcyODAwMCcgfHxcbiAgICAgICAgICAgICAgICBlcnJNc2cuaW5jbHVkZXMoJ3Bhc3N3b3JkIG11c3QgYmUgYSBzdHJpbmcnKTtcblxuICAgICAgICAgICAgaWYgKCFpc0F1dGhFcnJvcikge1xuICAgICAgICAgICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnN0YXRlID0gJ2Vycm9yJztcbiAgICAgICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLmVycm9yID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLndyb25nQXR0ZW1wdCA9XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5wcm9tcHRDb3VudCA+IDA7XG4gICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnBhc3N3b3JkID0gbnVsbDtcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucHJvbXB0Q291bnQgKz0gMTtcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24uc3RhdGUgPSAnbmVlZC1wYXNzd29yZCc7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgd2hlbigoKSA9PiBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucGFzc3dvcmQgIT09IG51bGwpO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdQYXNzd29yZCA9IHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5wYXNzd29yZCE7XG5cbiAgICAgICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucGFzc3dvcmQgPSBudWxsO1xuICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5zdGF0ZSA9ICdjb25uZWN0aW5nJztcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gYXR0ZW1wdENvbm5lY3Rpb24obmV3UGFzc3dvcmQsIHNzbENvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGF0dGVtcHRDb25uZWN0aW9uKGNvbmZpZy5wYXNzd29yZCwgc3NsKTtcbn07XG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiYXBwL2RiLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFJdEMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFPdkQsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUUsQ0FBQztBQUVsQixNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBWSxFQUFVLEVBQUU7SUFDbkQsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNkLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELE1BQU0sTUFBTSxHQUFHLEdBS2QsQ0FBQztJQUNGLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLENBQUM7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Q2hELEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDO1lBRW5FLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUyxDQUFDO1lBRTdELFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsS0FBSyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUMvQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cmVhZEZpbGVTeW5jfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwZyBmcm9tICdwZyc7XG5pbXBvcnQge3J1bkluQWN0aW9uLCB3aGVufSBmcm9tICdtb2J4JztcbmltcG9ydCB7c2NvcGV9IGZyb20gJ3Njb3BlLXV0aWxpdGllcyc7XG5cbmltcG9ydCB0eXBlIHtUU3RvcmV9IGZyb20gJy4uL3N0b3JlLm1qcyc7XG5pbXBvcnQgdHlwZSB7VFNTTE1vZGV9IGZyb20gJy4uL2luZGV4Lm1qcyc7XG5pbXBvcnQge2ZldGNoUG9zdGdyZXNWZXJzaW9ufSBmcm9tICcuLi9kYi92ZXJzaW9uLm1qcyc7XG5cbmV4cG9ydCB0eXBlIFREQkNvbm5lY3Rpb24gPSB7XG4gICAgcmVhZG9ubHkgcG9vbDogSW5zdGFuY2VUeXBlPHR5cGVvZiBQb29sPjtcbiAgICByZWFkb25seSBjbGVhbnVwOiAoKSA9PiB2b2lkO1xufTtcblxuY29uc3Qge1Bvb2x9ID0gcGc7XG5cbmNvbnN0IGZvcm1hdENvbm5lY3Rpb25FcnJvciA9IChlcnI6IHVua25vd24pOiBzdHJpbmcgPT4ge1xuICAgIGlmICghKGVyciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICByZXR1cm4gU3RyaW5nKGVycikgfHwgJ1Vua25vd24gZXJyb3InO1xuICAgIH1cblxuICAgIGlmIChlcnIubWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gZXJyLm1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLy8gU3lzdGVtIGVycm9ycyAoRUNPTk5SRUZVU0VELCBFVElNRURPVVQsIGV0Yy4pXG4gICAgY29uc3Qgc3lzRXJyID0gZXJyIGFzIHtcbiAgICAgICAgY29kZT86IHN0cmluZztcbiAgICAgICAgc3lzY2FsbD86IHN0cmluZztcbiAgICAgICAgYWRkcmVzcz86IHN0cmluZztcbiAgICAgICAgcG9ydD86IG51bWJlcjtcbiAgICB9O1xuICAgIGlmIChzeXNFcnIuY29kZSkge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IFtzeXNFcnIuY29kZV07XG4gICAgICAgIGlmIChzeXNFcnIuc3lzY2FsbCkge1xuICAgICAgICAgICAgcGFydHMucHVzaChzeXNFcnIuc3lzY2FsbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN5c0Vyci5hZGRyZXNzKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKHN5c0Vyci5hZGRyZXNzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3lzRXJyLnBvcnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFydHMucHVzaChTdHJpbmcoc3lzRXJyLnBvcnQpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFydHMuam9pbignICcpO1xuICAgIH1cblxuICAgIHJldHVybiAnQ29ubmVjdGlvbiBmYWlsZWQnO1xufTtcblxudHlwZSBUUmVzb2x2ZWREQkNvbmZpZyA9IHtcbiAgICByZWFkb25seSBob3N0bmFtZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbiAgICByZWFkb25seSBkYXRhYmFzZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcGFzc3dvcmQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IHJlc29sdmVEQkNvbmZpZyA9IChzdG9yZTogVFN0b3JlKTogVFJlc29sdmVkREJDb25maWcgPT5cbiAgICBzY29wZSh7XG4gICAgICAgIGhvc3RuYW1lOiAnbG9jYWxob3N0JyxcbiAgICAgICAgcG9ydDogNTQzMixcbiAgICAgICAgZGF0YWJhc2U6ICdwb3N0Z3JlcycsXG4gICAgICAgIHVzZXJuYW1lOiAncG9zdGdyZXMnLFxuICAgICAgICBwYXNzd29yZDogdW5kZWZpbmVkIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICB9KVxuICAgICAgICAubGV0KChjb25maWcpID0+ICh7XG4gICAgICAgICAgICBob3N0bmFtZTogcHJvY2Vzcy5lbnZbJ1BHSE9TVCddID8/IGNvbmZpZy5ob3N0bmFtZSxcbiAgICAgICAgICAgIHBvcnQ6IHByb2Nlc3MuZW52WydQR1BPUlQnXVxuICAgICAgICAgICAgICAgID8gcGFyc2VJbnQocHJvY2Vzcy5lbnZbJ1BHUE9SVCddLCAxMClcbiAgICAgICAgICAgICAgICA6IGNvbmZpZy5wb3J0LFxuICAgICAgICAgICAgZGF0YWJhc2U6IHByb2Nlc3MuZW52WydQR0RBVEFCQVNFJ10gPz8gY29uZmlnLmRhdGFiYXNlLFxuICAgICAgICAgICAgdXNlcm5hbWU6IHByb2Nlc3MuZW52WydQR1VTRVInXSA/PyBjb25maWcudXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnZbJ1BHUEFTU1dPUkQnXSA/PyBjb25maWcucGFzc3dvcmQsXG4gICAgICAgIH0pKVxuICAgICAgICAubGV0KChjb25maWcpID0+XG4gICAgICAgICAgICBzdG9yZS5jb25maWcuY29ubmVjdGlvblN0cmluZ1xuICAgICAgICAgICAgICAgID8gc2NvcGUobmV3IFVSTChzdG9yZS5jb25maWcuY29ubmVjdGlvblN0cmluZykpXG4gICAgICAgICAgICAgICAgICAgICAgLmxldCgodXJsKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0bmFtZTogdXJsLmhvc3RuYW1lIHx8IGNvbmZpZy5ob3N0bmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydDogdXJsLnBvcnQgPyBwYXJzZUludCh1cmwucG9ydCwgMTApIDogY29uZmlnLnBvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlOiB1cmwucGF0aG5hbWUuc2xpY2UoMSkgfHwgY29uZmlnLmRhdGFiYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZVVSSUNvbXBvbmVudCh1cmwudXNlcm5hbWUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcudXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiB1cmwucGFzc3dvcmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZGVjb2RlVVJJQ29tcG9uZW50KHVybC5wYXNzd29yZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uZmlnLnBhc3N3b3JkLFxuICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZSgpXG4gICAgICAgICAgICAgICAgOiBjb25maWcsXG4gICAgICAgIClcbiAgICAgICAgLmxldCgoY29uZmlnKSA9PiAoe1xuICAgICAgICAgICAgaG9zdG5hbWU6IHN0b3JlLmNvbmZpZy5ob3N0bmFtZSA/PyBjb25maWcuaG9zdG5hbWUsXG4gICAgICAgICAgICBwb3J0OiBzdG9yZS5jb25maWcucG9ydCA/PyBjb25maWcucG9ydCxcbiAgICAgICAgICAgIGRhdGFiYXNlOiBzdG9yZS5jb25maWcuZGF0YWJhc2UgPz8gY29uZmlnLmRhdGFiYXNlLFxuICAgICAgICAgICAgdXNlcm5hbWU6IHN0b3JlLmNvbmZpZy51c2VybmFtZSA/PyBjb25maWcudXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogY29uZmlnLnBhc3N3b3JkLFxuICAgICAgICB9KSlcbiAgICAgICAgLnZhbHVlKCk7XG5cbnR5cGUgVFNTTENvbmZpZyA9XG4gICAgfCBmYWxzZVxuICAgIHwge1xuICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogYm9vbGVhbjtcbiAgICAgICAgICBjYT86IHN0cmluZztcbiAgICAgICAgICBjZXJ0Pzogc3RyaW5nO1xuICAgICAgICAgIGtleT86IHN0cmluZztcbiAgICAgIH07XG5cbmNvbnN0IGJ1aWxkU1NMQ29uZmlnID0gKHN0b3JlOiBUU3RvcmUpOiBUU1NMQ29uZmlnID0+IHtcbiAgICBjb25zdCBtb2RlOiBUU1NMTW9kZSA9IHN0b3JlLmNvbmZpZy5zc2xtb2RlID8/ICdwcmVmZXInO1xuXG4gICAgcmV0dXJuIG1vZGUgPT09ICdkaXNhYmxlJ1xuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDoge1xuICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6XG4gICAgICAgICAgICAgICAgICBtb2RlID09PSAndmVyaWZ5LWNhJyB8fCBtb2RlID09PSAndmVyaWZ5LWZ1bGwnLFxuICAgICAgICAgICAgICAuLi4oc3RvcmUuY29uZmlnLnNzbHJvb3RjZXJ0XG4gICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhOiByZWFkRmlsZVN5bmMoc3RvcmUuY29uZmlnLnNzbHJvb3RjZXJ0LCAndXRmLTgnKSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgIC4uLihzdG9yZS5jb25maWcuc3NsY2VydFxuICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjZXJ0OiByZWFkRmlsZVN5bmMoc3RvcmUuY29uZmlnLnNzbGNlcnQsICd1dGYtOCcpLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgLi4uKHN0b3JlLmNvbmZpZy5zc2xrZXlcbiAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiByZWFkRmlsZVN5bmMoc3RvcmUuY29uZmlnLnNzbGtleSwgJ3V0Zi04JyksXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgY29ubmVjdERCID0gYXN5bmMgKFxuICAgIHN0b3JlOiBUU3RvcmUsXG4pOiBQcm9taXNlPFREQkNvbm5lY3Rpb24gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICBjb25zdCBjb25maWcgPSByZXNvbHZlREJDb25maWcoc3RvcmUpO1xuICAgIGNvbnN0IHNzbCA9IGJ1aWxkU1NMQ29uZmlnKHN0b3JlKTtcblxuICAgIC8vIFNTSCB0dW5uZWw6IGNvbm5lY3QgdmlhIGxvY2FsaG9zdCB0dW5uZWwsIGJ1dCBkaXNwbGF5IHRoZSByZWFsIHJlbW90ZSB0YXJnZXRcbiAgICBjb25zdCBjb25uZWN0aW9uSG9zdCA9XG4gICAgICAgIHN0b3JlLnN0ZXBzLnNzaENvbm5lY3Rpb24uZW5hYmxlZCAmJlxuICAgICAgICBzdG9yZS5zdGVwcy5zc2hDb25uZWN0aW9uLmxvY2FsUG9ydCAhPT0gbnVsbFxuICAgICAgICAgICAgPyAnMTI3LjAuMC4xJ1xuICAgICAgICAgICAgOiBjb25maWcuaG9zdG5hbWU7XG4gICAgY29uc3QgY29ubmVjdGlvblBvcnQgPVxuICAgICAgICBzdG9yZS5zdGVwcy5zc2hDb25uZWN0aW9uLmVuYWJsZWQgJiZcbiAgICAgICAgc3RvcmUuc3RlcHMuc3NoQ29ubmVjdGlvbi5sb2NhbFBvcnQgIT09IG51bGxcbiAgICAgICAgICAgID8gc3RvcmUuc3RlcHMuc3NoQ29ubmVjdGlvbi5sb2NhbFBvcnRcbiAgICAgICAgICAgIDogY29uZmlnLnBvcnQ7XG5cbiAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5waWNrZWRIb3N0bmFtZSA9IGNvbmZpZy5ob3N0bmFtZTtcbiAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnBpY2tlZFBvcnQgPSBjb25maWcucG9ydDtcbiAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnBpY2tlZERhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucGlja2VkVXNlcm5hbWUgPSBjb25maWcudXNlcm5hbWU7XG4gICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5zdGF0ZSA9ICdjb25uZWN0aW5nJztcbiAgICB9KTtcblxuICAgIGNvbnN0IGF0dGVtcHRDb25uZWN0aW9uID0gYXN5bmMgKFxuICAgICAgICBwYXNzd29yZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBzc2xDb25maWc6IFRTU0xDb25maWcsXG4gICAgKTogUHJvbWlzZTxUREJDb25uZWN0aW9uIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgICAgIGNvbnN0IHBvb2wgPSBuZXcgUG9vbCh7XG4gICAgICAgICAgICBob3N0OiBjb25uZWN0aW9uSG9zdCxcbiAgICAgICAgICAgIHBvcnQ6IGNvbm5lY3Rpb25Qb3J0LFxuICAgICAgICAgICAgZGF0YWJhc2U6IGNvbmZpZy5kYXRhYmFzZSxcbiAgICAgICAgICAgIHVzZXI6IGNvbmZpZy51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgc3NsOiBzc2xDb25maWcsXG4gICAgICAgICAgICBjb25uZWN0aW9uVGltZW91dE1pbGxpczogMTBfMDAwLFxuICAgICAgICB9KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgcG9vbC5jb25uZWN0KCk7XG4gICAgICAgICAgICBjbGllbnQucmVsZWFzZSgpO1xuXG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uID0gYXdhaXQgZmV0Y2hQb3N0Z3Jlc1ZlcnNpb24ocG9vbCk7XG5cbiAgICAgICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucG9zdGdyZXNWZXJzaW9uID1cbiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbi52ZXJzaW9uO1xuICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5wb3N0Z3Jlc1ZlcnNpb25OdW1iZXIgPVxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLnZlcnNpb25fbnVtO1xuICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5zdGF0ZSA9ICdjb25uZWN0ZWQnO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcG9vbCxcbiAgICAgICAgICAgICAgICBjbGVhbnVwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHBvb2wuZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5zdGF0ZSA9ICdpZGxlJztcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgYXdhaXQgcG9vbC5lbmQoKTtcblxuICAgICAgICAgICAgLy8gU1NMIGVycm9ycyBoYXBwZW4gYmVmb3JlIGF1dGgg4oCUIGNoZWNrIGZpcnN0XG4gICAgICAgICAgICBjb25zdCBlcnJNc2cgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJyc7XG4gICAgICAgICAgICBjb25zdCBpc1NTTEVycm9yID0gZXJyTXNnLmluY2x1ZGVzKCdkb2VzIG5vdCBzdXBwb3J0IFNTTCcpO1xuICAgICAgICAgICAgY29uc3Qgc3NsTW9kZTogVFNTTE1vZGUgPSBzdG9yZS5jb25maWcuc3NsbW9kZSA/PyAncHJlZmVyJztcblxuICAgICAgICAgICAgaWYgKGlzU1NMRXJyb3IgJiYgc3NsTW9kZSA9PT0gJ3ByZWZlcicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXR0ZW1wdENvbm5lY3Rpb24ocGFzc3dvcmQsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcGdDb2RlID0gKGVyciBhcyB7Y29kZT86IHN0cmluZ30pLmNvZGU7XG4gICAgICAgICAgICBjb25zdCBpc0F1dGhFcnJvciA9XG4gICAgICAgICAgICAgICAgcGdDb2RlID09PSAnMjhQMDEnIHx8XG4gICAgICAgICAgICAgICAgcGdDb2RlID09PSAnMjgwMDAnIHx8XG4gICAgICAgICAgICAgICAgZXJyTXNnLmluY2x1ZGVzKCdwYXNzd29yZCBtdXN0IGJlIGEgc3RyaW5nJyk7XG5cbiAgICAgICAgICAgIGlmICghaXNBdXRoRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5zdGF0ZSA9ICdlcnJvcic7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5lcnJvciA9XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRDb25uZWN0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLndyb25nQXR0ZW1wdCA9XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5wcm9tcHRDb3VudCA+IDA7XG4gICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnBhc3N3b3JkID0gbnVsbDtcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucHJvbXB0Q291bnQgKz0gMTtcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24uc3RhdGUgPSAnbmVlZC1wYXNzd29yZCc7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgd2hlbigoKSA9PiBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucGFzc3dvcmQgIT09IG51bGwpO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdQYXNzd29yZCA9IHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5wYXNzd29yZCE7XG5cbiAgICAgICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucGFzc3dvcmQgPSBudWxsO1xuICAgICAgICAgICAgICAgIHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbi5zdGF0ZSA9ICdjb25uZWN0aW5nJztcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gYXR0ZW1wdENvbm5lY3Rpb24obmV3UGFzc3dvcmQsIHNzbENvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGF0dGVtcHRDb25uZWN0aW9uKGNvbmZpZy5wYXNzd29yZCwgc3NsKTtcbn07XG4iXX0=
@@ -7,5 +7,6 @@ export declare const detectPackageManager: () => TPackageManager;
7
7
  export declare const detectProvider: (hostname: string) => TDatabaseProvider;
8
8
  export declare const detectAIAssistants: () => TAIAssistant[];
9
9
  export declare const detectDocker: () => boolean;
10
+ export declare const detectSSHSession: () => boolean;
10
11
  export declare const isLocalhost: (hostname: string) => boolean;
11
12
  //# sourceMappingURL=detect.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.mts","sourceRoot":"./src/","sources":["app/detect.mts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,YAAY,EACZ,iBAAiB,EACjB,GAAG,EACH,MAAM,EACN,aAAa,EACb,eAAe,EAClB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,QAAQ,QAAO,GAKT,CAAC;AAEpB,eAAO,MAAM,WAAW,QAAO,MAqB9B,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,OAAgD,CAAC;AAI9E,eAAO,MAAM,kBAAkB,QAAO,aAiBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,eAYvC,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,iBA0BjD,CAAC;AAaF,eAAO,MAAM,kBAAkB,QAAO,YAAY,EAMjD,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,OAAoC,CAAC;AAErE,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,KAAG,OAS9C,CAAC"}
1
+ {"version":3,"file":"detect.d.mts","sourceRoot":"./src/","sources":["app/detect.mts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,YAAY,EACZ,iBAAiB,EACjB,GAAG,EACH,MAAM,EACN,aAAa,EACb,eAAe,EAClB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,QAAQ,QAAO,GAKT,CAAC;AAEpB,eAAO,MAAM,WAAW,QAAO,MAqB9B,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,OAAgD,CAAC;AAI9E,eAAO,MAAM,kBAAkB,QAAO,aAiBrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,eAYvC,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,iBA0BjD,CAAC;AAaF,eAAO,MAAM,kBAAkB,QAAO,YAAY,EAMjD,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,OAAoC,CAAC;AAErE,eAAO,MAAM,gBAAgB,QAAO,OACuB,CAAC;AAE5D,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,KAAG,OAS9C,CAAC"}
@@ -95,6 +95,7 @@ export const detectAIAssistants = () => {
95
95
  .map(([name]) => name);
96
96
  };
97
97
  export const detectDocker = () => existsSync('/.dockerenv');
98
+ export const detectSSHSession = () => !!(env.SSH_CONNECTION || env.SSH_CLIENT || env.SSH_TTY);
98
99
  export const isLocalhost = (hostname) => {
99
100
  const lower = hostname.toLowerCase();
100
101
  return (lower === 'localhost' ||
@@ -102,4 +103,4 @@ export const isLocalhost = (hostname) => {
102
103
  lower === '::1' ||
103
104
  lower === '0.0.0.0');
104
105
  };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0Lm1qcyIsInNvdXJjZVJvb3QiOiIuL3NyYy8iLCJzb3VyY2VzIjpbImFwcC9kZXRlY3QubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxJQUFJLENBQUM7QUFDOUIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLElBQUksQ0FBQztBQUM1QixPQUFPLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFXM0MsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQVEsRUFBRSxDQUM5QixRQUFRLEtBQUssUUFBUTtJQUNqQixDQUFDLENBQUMsT0FBTztJQUNULENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTztRQUNwQixDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFFcEIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQVcsRUFBRTtJQUNwQyxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN2QixPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUV4QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLE1BQU0sS0FBSyxHQUEyQjtRQUNsQyxJQUFJLEVBQUUsTUFBTTtRQUNaLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixJQUFJLEVBQUUsTUFBTTtRQUNaLEdBQUcsRUFBRSxLQUFLO0tBQ2IsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQztBQUNsQyxD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LEtBQUssS0FBSyxTQUFTLENBQ3RCLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2V4aXN0c1N5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCB7dG90YWxtZW19IGZyb20gJ29zJztcbmltcG9ydCB7YmFzZW5hbWUsIGpvaW59IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtjd2QsIGVudiwgcGxhdGZvcm19IGZyb20gJ3Byb2Nlc3MnO1xuXG5pbXBvcnQgdHlwZSB7XG4gICAgVEFJQXNzaXN0YW50LFxuICAgIFREYXRhYmFzZVByb3ZpZGVyLFxuICAgIFRPcyxcbiAgICBUU2hlbGwsXG4gICAgVFN5c3RlbU1lbW9yeSxcbiAgICBUUGFja2FnZU1hbmFnZXIsXG59IGZyb20gJ0BkYmN0eC9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGRldGVjdE9TID0gKCk6IFRPcyA9PlxuICAgIHBsYXRmb3JtID09PSAnZGFyd2luJ1xuICAgICAgICA/ICdtYWNvcydcbiAgICAgICAgOiBwbGF0Zm9ybSA9PT0gJ3dpbjMyJ1xuICAgICAgICAgID8gJ3dpbmRvd3MnXG4gICAgICAgICAgOiAnbGludXgnO1xuXG5leHBvcnQgY29uc3QgZGV0ZWN0U2hlbGwgPSAoKTogVFNoZWxsID0+IHtcbiAgICBpZiAocGxhdGZvcm0gPT09ICd3aW4zMicpIHtcbiAgICAgICAgcmV0dXJuICdwb3dlcnNoZWxsJztcbiAgICB9XG5cbiAgICBjb25zdCBzaGVsbCA9IGVudi5TSEVMTDtcblxuICAgIGlmICghc2hlbGwpIHtcbiAgICAgICAgcmV0dXJuICdvdGhlcic7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZSA9IGJhc2VuYW1lKHNoZWxsKTtcbiAgICBjb25zdCBrbm93bjogUmVjb3JkPHN0cmluZywgVFNoZWxsPiA9IHtcbiAgICAgICAgYmFzaDogJ2Jhc2gnLFxuICAgICAgICB6c2g6ICd6c2gnLFxuICAgICAgICBrc2g6ICdrc2gnLFxuICAgICAgICBmaXNoOiAnZmlzaCcsXG4gICAgICAgIGFzaDogJ2FzaCcsXG4gICAgfTtcblxuICAgIHJldHVybiBrbm93bltuYW1lXSA/PyAnb3RoZXInO1xufTtcblxuZXhwb3J0IGNvbnN0IGRldGVjdFdTTCA9ICgpOiBib29sZWFuID0+ICEhKGVudi5XU0xfRElTVFJPX05BTUUgfHwgZW52LldTTEVOVik7XG5cbmNvbnN0IEdCID0gMTAyNCAqKiAzO1xuXG5leHBvcnQgY29uc3QgZGV0ZWN0U3lzdGVtTWVtb3J5ID0gKCk6IFRTeXN0ZW1NZW1vcnkgPT4ge1xuICAgIGNvbnN0IGJ5dGVzID0gdG90YWxtZW0oKTtcblxuICAgIGlmIChieXRlcyA8IDEyICogR0IpIHtcbiAgICAgICAgcmV0dXJuICc4Zyc7XG4gICAgfVxuICAgIGlmIChieXRlcyA8IDIwICogR0IpIHtcbiAgICAgICAgcmV0dXJuICcxNmcnO1xuICAgIH1cbiAgICBpZiAoYnl0ZXMgPCAyOCAqIEdCKSB7XG4gICAgICAgIHJldHVybiAnMjRnJztcbiAgICB9XG4gICAgaWYgKGJ5dGVzIDwgNDggKiBHQikge1xuICAgICAgICByZXR1cm4gJzMyZyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdtb3JlJztcbn07XG5cbmV4cG9ydCBjb25zdCBkZXRlY3RQYWNrYWdlTWFuYWdlciA9ICgpOiBUUGFja2FnZU1hbmFnZXIgPT4ge1xuICAgIGNvbnN0IGFnZW50ID0gZW52Lm5wbV9jb25maWdfdXNlcl9hZ2VudCA/PyAnJztcbiAgICBjb25zdCBrbm93bjogcmVhZG9ubHkgVFBhY2thZ2VNYW5hZ2VyW10gPSBbXG4gICAgICAgICdwbnBtJyxcbiAgICAgICAgJ3lhcm4nLFxuICAgICAgICAnYnVuJyxcbiAgICAgICAgJ2Rlbm8nLFxuICAgIF0gYXMgY29uc3Q7XG5cbiAgICBjb25zdCBtYXRjaCA9IGtub3duLmZpbmQoKHBtKSA9PiBhZ2VudC5zdGFydHNXaXRoKHBtKSk7XG5cbiAgICByZXR1cm4gbWF0Y2ggPz8gJ25wbSc7XG59O1xuXG4vLyBUT0RPOiBJbXBsZW1lbnQgaG9zdG5hbWUg4oaSIHByb3ZpZGVyIG1hcHBpbmdcbmV4cG9ydCBjb25zdCBkZXRlY3RQcm92aWRlciA9IChob3N0bmFtZTogc3RyaW5nKTogVERhdGFiYXNlUHJvdmlkZXIgPT4ge1xuICAgIGNvbnN0IHJ1bGVzOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFtzdHJpbmcsIFREYXRhYmFzZVByb3ZpZGVyXT4gPSBbXG4gICAgICAgIFsnLm5lb24udGVjaCcsICduZW9uJ10sXG4gICAgICAgIFsnLnJkcy5hbWF6b25hd3MuY29tJywgJ2F3cyddLFxuICAgICAgICBbJy5hbWF6b25hd3MuY29tJywgJ2F3cyddLFxuICAgICAgICBbJy5zdXBhYmFzZS5jbycsICdzdXBhYmFzZSddLFxuICAgICAgICBbJy5zdXBhYmFzZS5jb20nLCAnc3VwYWJhc2UnXSxcbiAgICAgICAgWycuZGF0YWJhc2UuYXp1cmUuY29tJywgJ2F6dXJlJ10sXG4gICAgICAgIFsnLmNsb3Vkc3FsLicsICdnY3AnXSxcbiAgICAgICAgWycuc3FsLmdvb2cnLCAnZ2NwJ10sXG4gICAgICAgIFsnLnJhaWx3YXkuYXBwJywgJ3JhaWx3YXknXSxcbiAgICAgICAgWycucmVuZGVyLmNvbScsICdyZW5kZXInXSxcbiAgICAgICAgWycuYWl2ZW5jbG91ZC5jb20nLCAnYXZpZW4nXSxcbiAgICAgICAgWycuYWl2ZW4uaW8nLCAnYXZpZW4nXSxcbiAgICAgICAgWycudGltZXNjYWxlZGIuaW8nLCAndGltZXNjYWxlX2Nsb3VkJ10sXG4gICAgICAgIFsnLmhlcm9rdWFwcC5jb20nLCAnaGVyb2t1J10sXG4gICAgICAgIFsnLmZseS5kZXYnLCAnZmx5J10sXG4gICAgICAgIFsnLmtveWViLmFwcCcsICdrb3llYiddLFxuICAgICAgICBbJy5kYi5vbmRpZ2l0YWxvY2Vhbi5jb20nLCAnZGlnaXRhbF9vY2VhbiddLFxuICAgICAgICBbJy5hbGliYWJhY2xvdWRkYi5jb20nLCAnYWxpYmFkYV9jbG91ZCddLFxuICAgIF07XG5cbiAgICBjb25zdCBsb3dlciA9IGhvc3RuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgZm91bmQgPSBydWxlcy5maW5kKChbc3VmZml4XSkgPT4gbG93ZXIuaW5jbHVkZXMoc3VmZml4KSk7XG5cbiAgICByZXR1cm4gZm91bmQ/LlsxXSA/PyAnb3RoZXInO1xufTtcblxuY29uc3QgYWlBc3Npc3RhbnRSdWxlczogUmVhZG9ubHlBcnJheTxcbiAgICByZWFkb25seSBbVEFJQXNzaXN0YW50LCBSZWFkb25seUFycmF5PHN0cmluZz5dXG4+ID0gW1xuICAgIFsnY3Vyc29yJywgWycuY3Vyc29yJywgJy5jdXJzb3JydWxlcyddXSxcbiAgICBbJ2NsYXVkZV9jb2RlJywgWycuY2xhdWRlJywgJ0NMQVVERS5tZCddXSxcbiAgICBbJ29wZW5jb2RlJywgWycub3BlbmNvZGUnXV0sXG4gICAgWydhaWRlcicsIFsnLmFpZGVyLmNvbmYueW1sJywgJy5haWRlci5jaGF0Lmhpc3RvcnkubWQnXV0sXG4gICAgWydvcGVuYWlfY29kZXgnLCBbJy5jb2RleCddXSxcbiAgICBbJ2dpdGh1Yl9jb3BpbG90JywgWycuZ2l0aHViL2NvcGlsb3QtaW5zdHJ1Y3Rpb25zLm1kJ11dLFxuXTtcblxuZXhwb3J0IGNvbnN0IGRldGVjdEFJQXNzaXN0YW50cyA9ICgpOiBUQUlBc3Npc3RhbnRbXSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IGN3ZCgpO1xuXG4gICAgcmV0dXJuIGFpQXNzaXN0YW50UnVsZXNcbiAgICAgICAgLmZpbHRlcigoWywgcGF0aHNdKSA9PiBwYXRocy5zb21lKChwKSA9PiBleGlzdHNTeW5jKGpvaW4ocm9vdCwgcCkpKSlcbiAgICAgICAgLm1hcCgoW25hbWVdKSA9PiBuYW1lKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZXRlY3REb2NrZXIgPSAoKTogYm9vbGVhbiA9PiBleGlzdHNTeW5jKCcvLmRvY2tlcmVudicpO1xuXG5leHBvcnQgY29uc3QgaXNMb2NhbGhvc3QgPSAoaG9zdG5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGxvd2VyID0gaG9zdG5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIGxvd2VyID09PSAnbG9jYWxob3N0JyB8fFxuICAgICAgICBsb3dlciA9PT0gJzEyNy4wLjAuMScgfHxcbiAgICAgICAgbG93ZXIgPT09ICc6OjEnIHx8XG4gICAgICAgIGxvd2VyID09PSAnMC4wLjAuMCdcbiAgICApO1xufTtcbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0Lm1qcyIsInNvdXJjZVJvb3QiOiIuL3NyYy8iLCJzb3VyY2VzIjpbImFwcC9kZXRlY3QubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxJQUFJLENBQUM7QUFDOUIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLElBQUksQ0FBQztBQUM1QixPQUFPLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFXM0MsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQVEsRUFBRSxDQUM5QixRQUFRLEtBQUssUUFBUTtJQUNqQixDQUFDLENBQUMsT0FBTztJQUNULENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTztRQUNwQixDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFFcEIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQVcsRUFBRTtJQUNwQyxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN2QixPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUV4QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLE1BQU0sS0FBSyxHQUEyQjtRQUNsQyxJQUFJLEVBQUUsTUFBTTtRQUNaLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixJQUFJLEVBQUUsTUFBTTtRQUNaLEdBQUcsRUFBRSxLQUFLO0tBQ2IsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQztBQUNsQyxD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LEVBQUU7SUFDckQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRXJDLE9BQU8sQ0FDSCxLQUFLLEtBQUssV0FBVztRQUNyQixLQUFLLEtBQUssV0FBVztRQUNyQixLQUFLLEtBQUssS0FBSztRQUNmLEtBQUssS0FBSyxTQUFTLENBQ3RCLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2V4aXN0c1N5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCB7dG90YWxtZW19IGZyb20gJ29zJztcbmltcG9ydCB7YmFzZW5hbWUsIGpvaW59IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtjd2QsIGVudiwgcGxhdGZvcm19IGZyb20gJ3Byb2Nlc3MnO1xuXG5pbXBvcnQgdHlwZSB7XG4gICAgVEFJQXNzaXN0YW50LFxuICAgIFREYXRhYmFzZVByb3ZpZGVyLFxuICAgIFRPcyxcbiAgICBUU2hlbGwsXG4gICAgVFN5c3RlbU1lbW9yeSxcbiAgICBUUGFja2FnZU1hbmFnZXIsXG59IGZyb20gJ0BkYmN0eC9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGRldGVjdE9TID0gKCk6IFRPcyA9PlxuICAgIHBsYXRmb3JtID09PSAnZGFyd2luJ1xuICAgICAgICA/ICdtYWNvcydcbiAgICAgICAgOiBwbGF0Zm9ybSA9PT0gJ3dpbjMyJ1xuICAgICAgICAgID8gJ3dpbmRvd3MnXG4gICAgICAgICAgOiAnbGludXgnO1xuXG5leHBvcnQgY29uc3QgZGV0ZWN0U2hlbGwgPSAoKTogVFNoZWxsID0+IHtcbiAgICBpZiAocGxhdGZvcm0gPT09ICd3aW4zMicpIHtcbiAgICAgICAgcmV0dXJuICdwb3dlcnNoZWxsJztcbiAgICB9XG5cbiAgICBjb25zdCBzaGVsbCA9IGVudi5TSEVMTDtcblxuICAgIGlmICghc2hlbGwpIHtcbiAgICAgICAgcmV0dXJuICdvdGhlcic7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZSA9IGJhc2VuYW1lKHNoZWxsKTtcbiAgICBjb25zdCBrbm93bjogUmVjb3JkPHN0cmluZywgVFNoZWxsPiA9IHtcbiAgICAgICAgYmFzaDogJ2Jhc2gnLFxuICAgICAgICB6c2g6ICd6c2gnLFxuICAgICAgICBrc2g6ICdrc2gnLFxuICAgICAgICBmaXNoOiAnZmlzaCcsXG4gICAgICAgIGFzaDogJ2FzaCcsXG4gICAgfTtcblxuICAgIHJldHVybiBrbm93bltuYW1lXSA/PyAnb3RoZXInO1xufTtcblxuZXhwb3J0IGNvbnN0IGRldGVjdFdTTCA9ICgpOiBib29sZWFuID0+ICEhKGVudi5XU0xfRElTVFJPX05BTUUgfHwgZW52LldTTEVOVik7XG5cbmNvbnN0IEdCID0gMTAyNCAqKiAzO1xuXG5leHBvcnQgY29uc3QgZGV0ZWN0U3lzdGVtTWVtb3J5ID0gKCk6IFRTeXN0ZW1NZW1vcnkgPT4ge1xuICAgIGNvbnN0IGJ5dGVzID0gdG90YWxtZW0oKTtcblxuICAgIGlmIChieXRlcyA8IDEyICogR0IpIHtcbiAgICAgICAgcmV0dXJuICc4Zyc7XG4gICAgfVxuICAgIGlmIChieXRlcyA8IDIwICogR0IpIHtcbiAgICAgICAgcmV0dXJuICcxNmcnO1xuICAgIH1cbiAgICBpZiAoYnl0ZXMgPCAyOCAqIEdCKSB7XG4gICAgICAgIHJldHVybiAnMjRnJztcbiAgICB9XG4gICAgaWYgKGJ5dGVzIDwgNDggKiBHQikge1xuICAgICAgICByZXR1cm4gJzMyZyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdtb3JlJztcbn07XG5cbmV4cG9ydCBjb25zdCBkZXRlY3RQYWNrYWdlTWFuYWdlciA9ICgpOiBUUGFja2FnZU1hbmFnZXIgPT4ge1xuICAgIGNvbnN0IGFnZW50ID0gZW52Lm5wbV9jb25maWdfdXNlcl9hZ2VudCA/PyAnJztcbiAgICBjb25zdCBrbm93bjogcmVhZG9ubHkgVFBhY2thZ2VNYW5hZ2VyW10gPSBbXG4gICAgICAgICdwbnBtJyxcbiAgICAgICAgJ3lhcm4nLFxuICAgICAgICAnYnVuJyxcbiAgICAgICAgJ2Rlbm8nLFxuICAgIF0gYXMgY29uc3Q7XG5cbiAgICBjb25zdCBtYXRjaCA9IGtub3duLmZpbmQoKHBtKSA9PiBhZ2VudC5zdGFydHNXaXRoKHBtKSk7XG5cbiAgICByZXR1cm4gbWF0Y2ggPz8gJ25wbSc7XG59O1xuXG4vLyBUT0RPOiBJbXBsZW1lbnQgaG9zdG5hbWUg4oaSIHByb3ZpZGVyIG1hcHBpbmdcbmV4cG9ydCBjb25zdCBkZXRlY3RQcm92aWRlciA9IChob3N0bmFtZTogc3RyaW5nKTogVERhdGFiYXNlUHJvdmlkZXIgPT4ge1xuICAgIGNvbnN0IHJ1bGVzOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFtzdHJpbmcsIFREYXRhYmFzZVByb3ZpZGVyXT4gPSBbXG4gICAgICAgIFsnLm5lb24udGVjaCcsICduZW9uJ10sXG4gICAgICAgIFsnLnJkcy5hbWF6b25hd3MuY29tJywgJ2F3cyddLFxuICAgICAgICBbJy5hbWF6b25hd3MuY29tJywgJ2F3cyddLFxuICAgICAgICBbJy5zdXBhYmFzZS5jbycsICdzdXBhYmFzZSddLFxuICAgICAgICBbJy5zdXBhYmFzZS5jb20nLCAnc3VwYWJhc2UnXSxcbiAgICAgICAgWycuZGF0YWJhc2UuYXp1cmUuY29tJywgJ2F6dXJlJ10sXG4gICAgICAgIFsnLmNsb3Vkc3FsLicsICdnY3AnXSxcbiAgICAgICAgWycuc3FsLmdvb2cnLCAnZ2NwJ10sXG4gICAgICAgIFsnLnJhaWx3YXkuYXBwJywgJ3JhaWx3YXknXSxcbiAgICAgICAgWycucmVuZGVyLmNvbScsICdyZW5kZXInXSxcbiAgICAgICAgWycuYWl2ZW5jbG91ZC5jb20nLCAnYXZpZW4nXSxcbiAgICAgICAgWycuYWl2ZW4uaW8nLCAnYXZpZW4nXSxcbiAgICAgICAgWycudGltZXNjYWxlZGIuaW8nLCAndGltZXNjYWxlX2Nsb3VkJ10sXG4gICAgICAgIFsnLmhlcm9rdWFwcC5jb20nLCAnaGVyb2t1J10sXG4gICAgICAgIFsnLmZseS5kZXYnLCAnZmx5J10sXG4gICAgICAgIFsnLmtveWViLmFwcCcsICdrb3llYiddLFxuICAgICAgICBbJy5kYi5vbmRpZ2l0YWxvY2Vhbi5jb20nLCAnZGlnaXRhbF9vY2VhbiddLFxuICAgICAgICBbJy5hbGliYWJhY2xvdWRkYi5jb20nLCAnYWxpYmFkYV9jbG91ZCddLFxuICAgIF07XG5cbiAgICBjb25zdCBsb3dlciA9IGhvc3RuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgZm91bmQgPSBydWxlcy5maW5kKChbc3VmZml4XSkgPT4gbG93ZXIuaW5jbHVkZXMoc3VmZml4KSk7XG5cbiAgICByZXR1cm4gZm91bmQ/LlsxXSA/PyAnb3RoZXInO1xufTtcblxuY29uc3QgYWlBc3Npc3RhbnRSdWxlczogUmVhZG9ubHlBcnJheTxcbiAgICByZWFkb25seSBbVEFJQXNzaXN0YW50LCBSZWFkb25seUFycmF5PHN0cmluZz5dXG4+ID0gW1xuICAgIFsnY3Vyc29yJywgWycuY3Vyc29yJywgJy5jdXJzb3JydWxlcyddXSxcbiAgICBbJ2NsYXVkZV9jb2RlJywgWycuY2xhdWRlJywgJ0NMQVVERS5tZCddXSxcbiAgICBbJ29wZW5jb2RlJywgWycub3BlbmNvZGUnXV0sXG4gICAgWydhaWRlcicsIFsnLmFpZGVyLmNvbmYueW1sJywgJy5haWRlci5jaGF0Lmhpc3RvcnkubWQnXV0sXG4gICAgWydvcGVuYWlfY29kZXgnLCBbJy5jb2RleCddXSxcbiAgICBbJ2dpdGh1Yl9jb3BpbG90JywgWycuZ2l0aHViL2NvcGlsb3QtaW5zdHJ1Y3Rpb25zLm1kJ11dLFxuXTtcblxuZXhwb3J0IGNvbnN0IGRldGVjdEFJQXNzaXN0YW50cyA9ICgpOiBUQUlBc3Npc3RhbnRbXSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IGN3ZCgpO1xuXG4gICAgcmV0dXJuIGFpQXNzaXN0YW50UnVsZXNcbiAgICAgICAgLmZpbHRlcigoWywgcGF0aHNdKSA9PiBwYXRocy5zb21lKChwKSA9PiBleGlzdHNTeW5jKGpvaW4ocm9vdCwgcCkpKSlcbiAgICAgICAgLm1hcCgoW25hbWVdKSA9PiBuYW1lKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZXRlY3REb2NrZXIgPSAoKTogYm9vbGVhbiA9PiBleGlzdHNTeW5jKCcvLmRvY2tlcmVudicpO1xuXG5leHBvcnQgY29uc3QgZGV0ZWN0U1NIU2Vzc2lvbiA9ICgpOiBib29sZWFuID0+XG4gICAgISEoZW52LlNTSF9DT05ORUNUSU9OIHx8IGVudi5TU0hfQ0xJRU5UIHx8IGVudi5TU0hfVFRZKTtcblxuZXhwb3J0IGNvbnN0IGlzTG9jYWxob3N0ID0gKGhvc3RuYW1lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBsb3dlciA9IGhvc3RuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICBsb3dlciA9PT0gJ2xvY2FsaG9zdCcgfHxcbiAgICAgICAgbG93ZXIgPT09ICcxMjcuMC4wLjEnIHx8XG4gICAgICAgIGxvd2VyID09PSAnOjoxJyB8fFxuICAgICAgICBsb3dlciA9PT0gJzAuMC4wLjAnXG4gICAgKTtcbn07XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"./src/","sources":["index.mts"],"names":[],"mappings":";AAcA,MAAM,MAAM,QAAQ,GACd,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,aAAa,CAAC;AAEpB,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"./src/","sources":["index.mts"],"names":[],"mappings":";AA6BA,MAAM,MAAM,QAAQ,GACd,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,aAAa,CAAC;AAEpB,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
package/dist/index.mjs CHANGED
@@ -4,9 +4,16 @@ import { render } from 'ink';
4
4
  import { createElement } from 'react';
5
5
  import { Error } from './ui/components/Error.js';
6
6
  import { App } from './ui/App.js';
7
+ import { Splash } from './ui/components/Splash.js';
7
8
  import { createAppStore } from './store.mjs';
9
+ import { runInAction } from 'mobx';
8
10
  import { validatePathOptions, } from './validatePaths.mjs';
9
11
  import { run } from './app/index.mjs';
12
+ import { CLIENT_VERSION } from './lib/version.mjs';
13
+ import { scope } from 'scope-utilities';
14
+ import { trpc } from '#client/lib/trpc.mjs';
15
+ import { readConfig } from './app/config.mjs';
16
+ import { detectDocker, detectOS, detectShell, detectWSL, detectSystemMemory, detectPackageManager, detectSSHSession, } from './app/detect.mjs';
10
17
  const parseSSHTarget = (target) => {
11
18
  const atIndex = target.indexOf('@');
12
19
  const username = atIndex >= 0 ? target.slice(0, atIndex) : undefined;
@@ -21,8 +28,17 @@ const parseSSHTarget = (target) => {
21
28
  const program = new Command();
22
29
  program
23
30
  .name('dbctx')
24
- .description('AI generated docs from your application database')
25
- .version('1.0.0')
31
+ .version(CLIENT_VERSION)
32
+ .helpOption('--help', 'display help for command')
33
+ .addHelpText('beforeAll', () => {
34
+ const { unmount } = render(createElement(Splash));
35
+ unmount();
36
+ return '';
37
+ });
38
+ const generate = program
39
+ .command('generate', { isDefault: true })
40
+ .description('Connect to a PostgreSQL database and generate context')
41
+ .helpOption('--help', 'display help for command')
26
42
  .argument('[connection-string]', 'PostgreSQL connection string (env: DATABASE_URL)')
27
43
  .option('-h, --hostname <host>', 'database hostname (env: PGHOST, default: localhost)')
28
44
  .option('-p, --port <port>', 'database port (env: PGPORT, default: 5432)', parseInt)
@@ -38,6 +54,40 @@ program
38
54
  .option('--ssh-username <user>', 'SSH tunnel username (default: $USER)')
39
55
  .option('-i, --ssh-key <path>', 'path to SSH private key (default: ~/.ssh/id_rsa)')
40
56
  .action((connectionString, options) => {
57
+ // Show help if no connection config is provided
58
+ const hasCLIConfig = connectionString !== undefined ||
59
+ options.hostname !== undefined ||
60
+ options.port !== undefined ||
61
+ options.database !== undefined ||
62
+ options.username !== undefined;
63
+ const hasEnvConfig = [
64
+ 'PGHOST',
65
+ 'PGPORT',
66
+ 'PGDATABASE',
67
+ 'PGUSER',
68
+ 'PGPASSWORD',
69
+ 'DATABASE_URL',
70
+ ].some((key) => process.env[key] !== undefined);
71
+ if (!hasCLIConfig && !hasEnvConfig) {
72
+ generate.help();
73
+ }
74
+ // Validate connection strings are PostgreSQL URLs
75
+ const effectiveConnectionString = connectionString ?? process.env['DATABASE_URL'];
76
+ const connectionStringError = scope(effectiveConnectionString)
77
+ .let((str) => {
78
+ if (str === undefined) {
79
+ return null;
80
+ }
81
+ if (!URL.canParse(str)) {
82
+ return `Malformed connection string "${str}": not a valid URL`;
83
+ }
84
+ const { protocol } = new URL(str);
85
+ if (protocol !== 'postgres:' && protocol !== 'postgresql:') {
86
+ return `Invalid connection string "${str}": expected postgres:// or postgresql://`;
87
+ }
88
+ return null;
89
+ })
90
+ .value();
41
91
  // Validate path options exist on filesystem
42
92
  const { errors: pathErrors, expandedPaths } = validatePathOptions(options);
43
93
  if (pathErrors.length > 0) {
@@ -60,7 +110,7 @@ program
60
110
  ? parseSSHTarget(validatedOptions.ssh)
61
111
  : undefined;
62
112
  const config = {
63
- connectionString,
113
+ connectionString: effectiveConnectionString,
64
114
  ...validatedOptions,
65
115
  sshHost: validatedOptions.sshHost ?? sshDefaults?.host,
66
116
  sshPort: validatedOptions.sshPort ?? sshDefaults?.port,
@@ -68,7 +118,54 @@ program
68
118
  };
69
119
  const store = createAppStore(config);
70
120
  render(createElement(App, { store }));
121
+ if (connectionStringError) {
122
+ runInAction(() => {
123
+ store.steps.databaseConnection.state = 'error';
124
+ store.steps.databaseConnection.error = connectionStringError;
125
+ });
126
+ return;
127
+ }
71
128
  run(store);
72
129
  });
130
+ const fireRunTelemetry = async () => {
131
+ const doNotTrack = `${process.env['DO_NOT_TRACK']}`.toLowerCase();
132
+ if (doNotTrack === '1' || doNotTrack === 'true') {
133
+ return;
134
+ }
135
+ const args = process.argv.slice(2);
136
+ const isHelp = args.includes('--help') || args[0] === 'help';
137
+ const subcommand = isHelp ? 'help' : 'generate';
138
+ const config = await readConfig();
139
+ return trpc.telemetry.create.mutate({
140
+ type: 'cli.run',
141
+ subcommand,
142
+ flags: {
143
+ help: isHelp,
144
+ connection_string: args.some((a) => !a.startsWith('-') && a !== 'generate' && a !== 'help'),
145
+ hostname: args.includes('-h') || args.includes('--hostname'),
146
+ port: args.includes('-p') || args.includes('--port'),
147
+ database: args.includes('-d') || args.includes('--database'),
148
+ username: args.includes('-U') || args.includes('--username'),
149
+ ssl: ['--sslmode', '--sslcert', '--sslkey', '--sslrootcert'].some((f) => args.includes(f)),
150
+ ssh: args.includes('--ssh') || args.includes('--ssh-host'),
151
+ },
152
+ is_docker: detectDocker(),
153
+ is_ssh_session: detectSSHSession(),
154
+ shell: detectShell(),
155
+ os: detectOS(),
156
+ is_wsl: detectWSL(),
157
+ system_memory: detectSystemMemory(),
158
+ package_manager: detectPackageManager(),
159
+ device_id: config.device_id,
160
+ });
161
+ };
162
+ try {
163
+ await fireRunTelemetry();
164
+ }
165
+ catch (err) {
166
+ if (process.env.NODE_ENV !== 'production') {
167
+ console.error(err);
168
+ }
169
+ }
73
170
  program.parse();
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiaW5kZXgubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxLQUFLLENBQUM7QUFDM0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUNwQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxtQkFBbUIsR0FFdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUEwQnBDLE1BQU0sY0FBYyxHQUFHLENBQ25CLE1BQWMsRUFLaEIsRUFBRTtJQUNBLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRSxNQUFNLFFBQVEsR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25FLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsTUFBTSxJQUFJLEdBQUcsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFD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RSxJQUFJO1FBQ3RELFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLElBQUksV0FBVyxFQUFFLFFBQVE7S0FDckUsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztJQUVwQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUMsQ0FBQztBQUVQLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7Q29tbWFuZH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7cmVuZGVyfSBmcm9tICdpbmsnO1xuaW1wb3J0IHtjcmVhdGVFbGVtZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0Vycm9yfSBmcm9tICcuL3VpL2NvbXBvbmVudHMvRXJyb3IuanMnO1xuaW1wb3J0IHtBcHB9IGZyb20gJy4vdWkvQXBwLmpzJztcbmltcG9ydCB7Y3JlYXRlQXBwU3RvcmV9IGZyb20gJy4vc3RvcmUubWpzJztcbmltcG9ydCB7XG4gICAgdmFsaWRhdGVQYXRoT3B0aW9ucyxcbiAgICB0eXBlIFRQYXRoVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tICcuL3ZhbGlkYXRlUGF0aHMubWpzJztcbmltcG9ydCB7VENvbm5lY3Rpb25Db25maWd9IGZyb20gJy4vdHlwZXMvY29ubmVjdGlvbi5tanMnO1xuaW1wb3J0IHtydW59IGZyb20gJy4vYXBwL2luZGV4Lm1qcyc7XG5cbmV4cG9ydCB0eXBlIFRTU0xNb2RlID1cbiAgICB8ICdkaXNhYmxlJ1xuICAgIHwgJ2FsbG93J1xuICAgIHwgJ3ByZWZlcidcbiAgICB8ICdyZXF1aXJlJ1xuICAgIHwgJ3ZlcmlmeS1jYSdcbiAgICB8ICd2ZXJpZnktZnVsbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVE9wdGlvbnMge1xuICAgIGhvc3RuYW1lPzogc3RyaW5nO1xuICAgIHBvcnQ/OiBudW1iZXI7XG4gICAgZGF0YWJhc2U/OiBzdHJpbmc7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgc3NsbW9kZT86IFRTU0xNb2RlO1xuICAgIHNzbGNlcnQ/OiBzdHJpbmc7XG4gICAgc3Nsa2V5Pzogc3RyaW5nO1xuICAgIHNzbHJvb3RjZXJ0Pzogc3RyaW5nO1xuICAgIHNzaD86IHN0cmluZztcbiAgICBzc2hIb3N0Pzogc3RyaW5nO1xuICAgIHNzaFBvcnQ/OiBudW1iZXI7XG4gICAgc3NoVXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgc3NoS2V5Pzogc3RyaW5nO1xufVxuXG5jb25zdCBwYXJzZVNTSFRhcmdldCA9IChcbiAgICB0YXJnZXQ6IHN0cmluZyxcbik6IHtcbiAgICB1c2VybmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGhvc3Q6IHN0cmluZztcbiAgICBwb3J0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59ID0+IHtcbiAgICBjb25zdCBhdEluZGV4ID0gdGFyZ2V0LmluZGV4T2YoJ0AnKTtcbiAgICBjb25zdCB1c2VybmFtZSA9IGF0SW5kZXggPj0gMCA/IHRhcmdldC5zbGljZSgwLCBhdEluZGV4KSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBob3N0UG9ydCA9IGF0SW5kZXggPj0gMCA/IHRhcmdldC5zbGljZShhdEluZGV4ICsgMSkgOiB0YXJnZXQ7XG4gICAgY29uc3QgY29sb25JbmRleCA9IGhvc3RQb3J0Lmxhc3RJbmRleE9mKCc6Jyk7XG4gICAgY29uc3QgaG9zdCA9IGNvbG9uSW5kZXggPj0gMCA/IGhvc3RQb3J0LnNsaWNlKDAsIGNvbG9uSW5kZXgpIDogaG9zdFBvcnQ7XG4gICAgY29uc3QgcG9ydCA9XG4gICAgICAgIGNvbG9uSW5kZXggPj0gMFxuICAgICAgICAgICAgPyBwYXJzZUludChob3N0UG9ydC5zbGljZShjb2xvbkluZGV4ICsgMSksIDEwKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge3VzZXJuYW1lLCBob3N0LCBwb3J0fTtcbn07XG5cbmNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXG5wcm9ncmFtXG4gICAgLm5hbWUoJ2RiY3R4JylcbiAgICAuZGVzY3JpcHRpb24oJ0FJIGdlbmVyYXRlZCBkb2NzIGZyb20geW91ciBhcHBsaWNhdGlvbiBkYXRhYmFzZScpXG4gICAgLnZlcnNpb24oJzEuMC4wJylcbiAgICAuYXJndW1lbnQoXG4gICAgICAgICdbY29ubmVjdGlvbi1zdHJpbmddJyxcbiAgICAgICAgJ1Bvc3RncmVTUUwgY29ubmVjdGlvbiBzdHJpbmcgKGVudjogREFUQUJBU0VfVVJMKScsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctaCwgLS1ob3N0bmFtZSA8aG9zdD4nLFxuICAgICAgICAnZGF0YWJhc2UgaG9zdG5hbWUgKGVudjogUEdIT1NULCBkZWZhdWx0OiBsb2NhbGhvc3QpJyxcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgICAgJy1wLCAtLXBvcnQgPHBvcnQ+JyxcbiAgICAgICAgJ2RhdGFiYXNlIHBvcnQgKGVudjogUEdQT1JULCBkZWZhdWx0OiA1NDMyKScsXG4gICAgICAgIHBhcnNlSW50LFxuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgICAnLWQsIC0tZGF0YWJhc2UgPG5hbWU+JyxcbiAgICAgICAgJ2RhdGFiYXNlIG5hbWUgKGVudjogUEdEQVRBQkFTRSwgZGVmYXVsdDogcG9zdGdyZXMpJyxcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgICAgJy1VLCAtLXVzZXJuYW1lIDx1c2VyPicsXG4gICAgICAgICdkYXRhYmFzZSB1c2VybmFtZSAoZW52OiBQR1VTRVIsIGRlZmF1bHQ6IHBvc3RncmVzKScsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctLXNzbG1vZGUgPG1vZGU+JyxcbiAgICAgICAgJ1NTTCBtb2RlOiBkaXNhYmxlfGFsbG93fHByZWZlcnxyZXF1aXJlfHZlcmlmeS1jYXx2ZXJpZnktZnVsbCAoZW52OiBQR1NTTE1PREUsIGRlZmF1bHQ6IHByZWZlciknLFxuICAgIClcbiAgICAub3B0aW9uKCctLXNzbGNlcnQgPHBhdGg+JywgJ3BhdGggdG8gY2xpZW50IGNlcnRpZmljYXRlIChlbnY6IFBHU1NMQ0VSVCknKVxuICAgIC5vcHRpb24oJy0tc3Nsa2V5IDxwYXRoPicsICdwYXRoIHRvIGNsaWVudCBwcml2YXRlIGtleSAoZW52OiBQR1NTTEtFWSknKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctLXNzbHJvb3RjZXJ0IDxwYXRoPicsXG4gICAgICAgICdwYXRoIHRvIHJvb3QgQ0EgY2VydGlmaWNhdGUgKGVudjogUEdTU0xST09UQ0VSVCknLFxuICAgIClcbiAgICAub3B0aW9uKCctLXNzaCA8dGFyZ2V0PicsICdTU0ggdHVubmVsIHRhcmdldCAodXNlckBob3N0Wzpwb3J0XSknKVxuICAgIC5vcHRpb24oJy0tc3NoLWhvc3QgPGhvc3Q+JywgJ1NTSCB0dW5uZWwgaG9zdCAoYmFzdGlvbi9qdW1wIHNlcnZlciknKVxuICAgIC5vcHRpb24oJy0tc3NoLXBvcnQgPHBvcnQ+JywgJ1NTSCB0dW5uZWwgcG9ydCAoZGVmYXVsdDogMjIpJywgcGFyc2VJbnQpXG4gICAgLm9wdGlvbignLS1zc2gtdXNlcm5hbWUgPHVzZXI+JywgJ1NTSCB0dW5uZWwgdXNlcm5hbWUgKGRlZmF1bHQ6ICRVU0VSKScpXG4gICAgLm9wdGlvbihcbiAgICAgICAgJy1pLCAtLXNzaC1rZXkgPHBhdGg+JyxcbiAgICAgICAgJ3BhdGggdG8gU1NIIHByaXZhdGUga2V5IChkZWZhdWx0OiB+Ly5zc2gvaWRfcnNhKScsXG4gICAgKVxuICAgIC5hY3Rpb24oKGNvbm5lY3Rpb25TdHJpbmc6IHN0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9uczogVE9wdGlvbnMpID0+IHtcbiAgICAgICAgLy8gVmFsaWRhdGUgcGF0aCBvcHRpb25zIGV4aXN0IG9uIGZpbGVzeXN0ZW1cbiAgICAgICAgY29uc3Qge2Vycm9yczogcGF0aEVycm9ycywgZXhwYW5kZWRQYXRoc30gPVxuICAgICAgICAgICAgdmFsaWRhdGVQYXRoT3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICBpZiAocGF0aEVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID0gcGF0aEVycm9yc1xuICAgICAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgICAgICAgICh7b3B0aW9uLCBwYXRofTogVFBhdGhWYWxpZGF0aW9uRXJyb3IpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke29wdGlvbn06ICR7cGF0aH1gLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuam9pbignXFxuJyk7XG5cbiAgICAgICAgICAgIHJlbmRlcihcbiAgICAgICAgICAgICAgICBFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBUaGUgZm9sbG93aW5nIHBhdGhzIGRvIG5vdCBleGlzdDpcXG4ke2Vycm9yTWVzc2FnZXN9YCxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlcGxhY2Ugb3JpZ2luYWwgcGF0aHMgd2l0aCBleHBhbmRlZCBwYXRoc1xuICAgICAgICAvLyAofiByZXNvbHZlZCB0byBob21lIGRpcmVjdG9yeSlcbiAgICAgICAgY29uc3QgdmFsaWRhdGVkT3B0aW9uczogVE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgLi4uZXhwYW5kZWRQYXRocyxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBCdWlsZCBjb25maWcgYW5kIHJlbmRlciB0aGUgYXBwXG4gICAgICAgIGNvbnN0IHNzaERlZmF1bHRzID0gdmFsaWRhdGVkT3B0aW9ucy5zc2hcbiAgICAgICAgICAgID8gcGFyc2VTU0hUYXJnZXQodmFsaWRhdGVkT3B0aW9ucy5zc2gpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICBjb25zdCBjb25maWc6IFRDb25uZWN0aW9uQ29uZmlnID0ge1xuICAgICAgICAgICAgY29ubmVjdGlvblN0cmluZyxcbiAgICAgICAgICAgIC4uLnZhbGlkYXRlZE9wdGlvbnMsXG4gICAgICAgICAgICBzc2hIb3N0OiB2YWxpZGF0ZWRPcHRpb25zLnNzaEhvc3QgPz8gc3NoRGVmYXVsdHM/Lmhvc3QsXG4gICAgICAgICAgICBzc2hQb3J0OiB2YWxpZGF0ZWRPcHRpb25zLnNzaFBvcnQgPz8gc3NoRGVmYXVsdHM/LnBvcnQsXG4gICAgICAgICAgICBzc2hVc2VybmFtZTogdmFsaWRhdGVkT3B0aW9ucy5zc2hVc2VybmFtZSA/PyBzc2hEZWZhdWx0cz8udXNlcm5hbWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc3RvcmUgPSBjcmVhdGVBcHBTdG9yZShjb25maWcpO1xuXG4gICAgICAgIHJlbmRlcihjcmVhdGVFbGVtZW50KEFwcCwge3N0b3JlfSkpO1xuXG4gICAgICAgIHJ1bihzdG9yZSk7XG4gICAgfSk7XG5cbnByb2dyYW0ucGFyc2UoKTtcbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiaW5kZXgubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxLQUFLLENBQUM7QUFDM0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUNwQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFDSCxtQkFBbUIsR0FFdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFDSCxZQUFZLEVBQ1osUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixnQkFBZ0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQTBCMUIsTUFBTSxjQUFjLEdBQUcsQ0FDbkIsTUFBYyxFQUtoQixFQUFFO0lBQ0EsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMs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O1FBQ3ZDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztLQUM5QixDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixJQUFJLENBQUM7SUFDRCxNQUFNLGdCQUFnQixFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDWCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVksRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQge0NvbW1hbmR9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQge3JlbmRlcn0gZnJvbSAnaW5rJztcbmltcG9ydCB7Y3JlYXRlRWxlbWVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtFcnJvcn0gZnJvbSAnLi91aS9jb21wb25lbnRzL0Vycm9yLmpzJztcbmltcG9ydCB7QXBwfSBmcm9tICcuL3VpL0FwcC5qcyc7XG5pbXBvcnQge1NwbGFzaH0gZnJvbSAnLi91aS9jb21wb25lbnRzL1NwbGFzaC5qcyc7XG5pbXBvcnQge2NyZWF0ZUFwcFN0b3JlfSBmcm9tICcuL3N0b3JlLm1qcyc7XG5pbXBvcnQge3J1bkluQWN0aW9ufSBmcm9tICdtb2J4JztcbmltcG9ydCB7XG4gICAgdmFsaWRhdGVQYXRoT3B0aW9ucyxcbiAgICB0eXBlIFRQYXRoVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tICcuL3ZhbGlkYXRlUGF0aHMubWpzJztcbmltcG9ydCB7VENvbm5lY3Rpb25Db25maWd9IGZyb20gJy4vdHlwZXMvY29ubmVjdGlvbi5tanMnO1xuaW1wb3J0IHtydW59IGZyb20gJy4vYXBwL2luZGV4Lm1qcyc7XG5pbXBvcnQge0NMSUVOVF9WRVJTSU9OfSBmcm9tICcuL2xpYi92ZXJzaW9uLm1qcyc7XG5pbXBvcnQge3Njb3BlfSBmcm9tICdzY29wZS11dGlsaXRpZXMnO1xuaW1wb3J0IHt0cnBjfSBmcm9tICcjY2xpZW50L2xpYi90cnBjLm1qcyc7XG5pbXBvcnQge3JlYWRDb25maWd9IGZyb20gJy4vYXBwL2NvbmZpZy5tanMnO1xuaW1wb3J0IHtcbiAgICBkZXRlY3REb2NrZXIsXG4gICAgZGV0ZWN0T1MsXG4gICAgZGV0ZWN0U2hlbGwsXG4gICAgZGV0ZWN0V1NMLFxuICAgIGRldGVjdFN5c3RlbU1lbW9yeSxcbiAgICBkZXRlY3RQYWNrYWdlTWFuYWdlcixcbiAgICBkZXRlY3RTU0hTZXNzaW9uLFxufSBmcm9tICcuL2FwcC9kZXRlY3QubWpzJztcblxuZXhwb3J0IHR5cGUgVFNTTE1vZGUgPVxuICAgIHwgJ2Rpc2FibGUnXG4gICAgfCAnYWxsb3cnXG4gICAgfCAncHJlZmVyJ1xuICAgIHwgJ3JlcXVpcmUnXG4gICAgfCAndmVyaWZ5LWNhJ1xuICAgIHwgJ3ZlcmlmeS1mdWxsJztcblxuZXhwb3J0IGludGVyZmFjZSBUT3B0aW9ucyB7XG4gICAgaG9zdG5hbWU/OiBzdHJpbmc7XG4gICAgcG9ydD86IG51bWJlcjtcbiAgICBkYXRhYmFzZT86IHN0cmluZztcbiAgICB1c2VybmFtZT86IHN0cmluZztcbiAgICBzc2xtb2RlPzogVFNTTE1vZGU7XG4gICAgc3NsY2VydD86IHN0cmluZztcbiAgICBzc2xrZXk/OiBzdHJpbmc7XG4gICAgc3Nscm9vdGNlcnQ/OiBzdHJpbmc7XG4gICAgc3NoPzogc3RyaW5nO1xuICAgIHNzaEhvc3Q/OiBzdHJpbmc7XG4gICAgc3NoUG9ydD86IG51bWJlcjtcbiAgICBzc2hVc2VybmFtZT86IHN0cmluZztcbiAgICBzc2hLZXk/OiBzdHJpbmc7XG59XG5cbmNvbnN0IHBhcnNlU1NIVGFyZ2V0ID0gKFxuICAgIHRhcmdldDogc3RyaW5nLFxuKToge1xuICAgIHVzZXJuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIHBvcnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbn0gPT4ge1xuICAgIGNvbnN0IGF0SW5kZXggPSB0YXJnZXQuaW5kZXhPZignQCcpO1xuICAgIGNvbnN0IHVzZXJuYW1lID0gYXRJbmRleCA+PSAwID8gdGFyZ2V0LnNsaWNlKDAsIGF0SW5kZXgpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGhvc3RQb3J0ID0gYXRJbmRleCA+PSAwID8gdGFyZ2V0LnNsaWNlKGF0SW5kZXggKyAxKSA6IHRhcmdldDtcbiAgICBjb25zdCBjb2xvbkluZGV4ID0gaG9zdFBvcnQubGFzdEluZGV4T2YoJzonKTtcbiAgICBjb25zdCBob3N0ID0gY29sb25JbmRleCA+PSAwID8gaG9zdFBvcnQuc2xpY2UoMCwgY29sb25JbmRleCkgOiBob3N0UG9ydDtcbiAgICBjb25zdCBwb3J0ID1cbiAgICAgICAgY29sb25JbmRleCA+PSAwXG4gICAgICAgICAgICA/IHBhcnNlSW50KGhvc3RQb3J0LnNsaWNlKGNvbG9uSW5kZXggKyAxKSwgMTApXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7dXNlcm5hbWUsIGhvc3QsIHBvcnR9O1xufTtcblxuY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKCk7XG5cbnByb2dyYW1cbiAgICAubmFtZSgnZGJjdHgnKVxuICAgIC52ZXJzaW9uKENMSUVOVF9WRVJTSU9OKVxuICAgIC5oZWxwT3B0aW9uKCctLWhlbHAnLCAnZGlzcGxheSBoZWxwIGZvciBjb21tYW5kJylcbiAgICAuYWRkSGVscFRleHQoJ2JlZm9yZUFsbCcsICgpID0+IHtcbiAgICAgICAgY29uc3Qge3VubW91bnR9ID0gcmVuZGVyKGNyZWF0ZUVsZW1lbnQoU3BsYXNoKSk7XG4gICAgICAgIHVubW91bnQoKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH0pO1xuXG5jb25zdCBnZW5lcmF0ZSA9IHByb2dyYW1cbiAgICAuY29tbWFuZCgnZ2VuZXJhdGUnLCB7aXNEZWZhdWx0OiB0cnVlfSlcbiAgICAuZGVzY3JpcHRpb24oJ0Nvbm5lY3QgdG8gYSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGFuZCBnZW5lcmF0ZSBjb250ZXh0JylcbiAgICAuaGVscE9wdGlvbignLS1oZWxwJywgJ2Rpc3BsYXkgaGVscCBmb3IgY29tbWFuZCcpXG4gICAgLmFyZ3VtZW50KFxuICAgICAgICAnW2Nvbm5lY3Rpb24tc3RyaW5nXScsXG4gICAgICAgICdQb3N0Z3JlU1FMIGNvbm5lY3Rpb24gc3RyaW5nIChlbnY6IERBVEFCQVNFX1VSTCknLFxuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgICAnLWgsIC0taG9zdG5hbWUgPGhvc3Q+JyxcbiAgICAgICAgJ2RhdGFiYXNlIGhvc3RuYW1lIChlbnY6IFBHSE9TVCwgZGVmYXVsdDogbG9jYWxob3N0KScsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctcCwgLS1wb3J0IDxwb3J0PicsXG4gICAgICAgICdkYXRhYmFzZSBwb3J0IChlbnY6IFBHUE9SVCwgZGVmYXVsdDogNTQzMiknLFxuICAgICAgICBwYXJzZUludCxcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgICAgJy1kLCAtLWRhdGFiYXNlIDxuYW1lPicsXG4gICAgICAgICdkYXRhYmFzZSBuYW1lIChlbnY6IFBHREFUQUJBU0UsIGRlZmF1bHQ6IHBvc3RncmVzKScsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctVSwgLS11c2VybmFtZSA8dXNlcj4nLFxuICAgICAgICAnZGF0YWJhc2UgdXNlcm5hbWUgKGVudjogUEdVU0VSLCBkZWZhdWx0OiBwb3N0Z3JlcyknLFxuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgICAnLS1zc2xtb2RlIDxtb2RlPicsXG4gICAgICAgICdTU0wgbW9kZTogZGlzYWJsZXxhbGxvd3xwcmVmZXJ8cmVxdWlyZXx2ZXJpZnktY2F8dmVyaWZ5LWZ1bGwgKGVudjogUEdTU0xNT0RFLCBkZWZhdWx0OiBwcmVmZXIpJyxcbiAgICApXG4gICAgLm9wdGlvbignLS1zc2xjZXJ0IDxwYXRoPicsICdwYXRoIHRvIGNsaWVudCBjZXJ0aWZpY2F0ZSAoZW52OiBQR1NTTENFUlQpJylcbiAgICAub3B0aW9uKCctLXNzbGtleSA8cGF0aD4nLCAncGF0aCB0byBjbGllbnQgcHJpdmF0ZSBrZXkgKGVudjogUEdTU0xLRVkpJylcbiAgICAub3B0aW9uKFxuICAgICAgICAnLS1zc2xyb290Y2VydCA8cGF0aD4nLFxuICAgICAgICAncGF0aCB0byByb290IENBIGNlcnRpZmljYXRlIChlbnY6IFBHU1NMUk9PVENFUlQpJyxcbiAgICApXG4gICAgLm9wdGlvbignLS1zc2ggPHRhcmdldD4nLCAnU1NIIHR1bm5lbCB0YXJnZXQgKHVzZXJAaG9zdFs6cG9ydF0pJylcbiAgICAub3B0aW9uKCctLXNzaC1ob3N0IDxob3N0PicsICdTU0ggdHVubmVsIGhvc3QgKGJhc3Rpb24vanVtcCBzZXJ2ZXIpJylcbiAgICAub3B0aW9uKCctLXNzaC1wb3J0IDxwb3J0PicsICdTU0ggdHVubmVsIHBvcnQgKGRlZmF1bHQ6IDIyKScsIHBhcnNlSW50KVxuICAgIC5vcHRpb24oJy0tc3NoLXVzZXJuYW1lIDx1c2VyPicsICdTU0ggdHVubmVsIHVzZXJuYW1lIChkZWZhdWx0OiAkVVNFUiknKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctaSwgLS1zc2gta2V5IDxwYXRoPicsXG4gICAgICAgICdwYXRoIHRvIFNTSCBwcml2YXRlIGtleSAoZGVmYXVsdDogfi8uc3NoL2lkX3JzYSknLFxuICAgIClcbiAgICAuYWN0aW9uKChjb25uZWN0aW9uU3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM6IFRPcHRpb25zKSA9PiB7XG4gICAgICAgIC8vIFNob3cgaGVscCBpZiBubyBjb25uZWN0aW9uIGNvbmZpZyBpcyBwcm92aWRlZFxuICAgICAgICBjb25zdCBoYXNDTElDb25maWcgPVxuICAgICAgICAgICAgY29ubmVjdGlvblN0cmluZyAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBvcHRpb25zLmhvc3RuYW1lICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIG9wdGlvbnMucG9ydCAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBvcHRpb25zLmRhdGFiYXNlICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIG9wdGlvbnMudXNlcm5hbWUgIT09IHVuZGVmaW5lZDtcblxuICAgICAgICBjb25zdCBoYXNFbnZDb25maWcgPSBbXG4gICAgICAgICAgICAnUEdIT1NUJyxcbiAgICAgICAgICAgICdQR1BPUlQnLFxuICAgICAgICAgICAgJ1BHREFUQUJBU0UnLFxuICAgICAgICAgICAgJ1BHVVNFUicsXG4gICAgICAgICAgICAnUEdQQVNTV09SRCcsXG4gICAgICAgICAgICAnREFUQUJBU0VfVVJMJyxcbiAgICAgICAgXS5zb21lKChrZXkpID0+IHByb2Nlc3MuZW52W2tleV0gIT09IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgaWYgKCFoYXNDTElDb25maWcgJiYgIWhhc0VudkNvbmZpZykge1xuICAgICAgICAgICAgZ2VuZXJhdGUuaGVscCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgY29ubmVjdGlvbiBzdHJpbmdzIGFyZSBQb3N0Z3JlU1FMIFVSTHNcbiAgICAgICAgY29uc3QgZWZmZWN0aXZlQ29ubmVjdGlvblN0cmluZyA9XG4gICAgICAgICAgICBjb25uZWN0aW9uU3RyaW5nID8/IHByb2Nlc3MuZW52WydEQVRBQkFTRV9VUkwnXTtcblxuICAgICAgICBjb25zdCBjb25uZWN0aW9uU3RyaW5nRXJyb3IgPSBzY29wZShlZmZlY3RpdmVDb25uZWN0aW9uU3RyaW5nKVxuICAgICAgICAgICAgLmxldCgoc3RyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghVVJMLmNhblBhcnNlKHN0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBNYWxmb3JtZWQgY29ubmVjdGlvbiBzdHJpbmcgXCIke3N0cn1cIjogbm90IGEgdmFsaWQgVVJMYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7cHJvdG9jb2x9ID0gbmV3IFVSTChzdHIpO1xuICAgICAgICAgICAgICAgIGlmIChwcm90b2NvbCAhPT0gJ3Bvc3RncmVzOicgJiYgcHJvdG9jb2wgIT09ICdwb3N0Z3Jlc3FsOicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBJbnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIFwiJHtzdHJ9XCI6IGV4cGVjdGVkIHBvc3RncmVzOi8vIG9yIHBvc3RncmVzcWw6Ly9gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC52YWx1ZSgpO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHBhdGggb3B0aW9ucyBleGlzdCBvbiBmaWxlc3lzdGVtXG4gICAgICAgIGNvbnN0IHtlcnJvcnM6IHBhdGhFcnJvcnMsIGV4cGFuZGVkUGF0aHN9ID1cbiAgICAgICAgICAgIHZhbGlkYXRlUGF0aE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHBhdGhFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IHBhdGhFcnJvcnNcbiAgICAgICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAgICAgICAoe29wdGlvbiwgcGF0aH06IFRQYXRoVmFsaWRhdGlvbkVycm9yKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHtvcHRpb259OiAke3BhdGh9YCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmpvaW4oJ1xcbicpO1xuXG4gICAgICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICAgICAgRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVGhlIGZvbGxvd2luZyBwYXRocyBkbyBub3QgZXhpc3Q6XFxuJHtlcnJvck1lc3NhZ2VzfWAsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXBsYWNlIG9yaWdpbmFsIHBhdGhzIHdpdGggZXhwYW5kZWQgcGF0aHNcbiAgICAgICAgLy8gKH4gcmVzb2x2ZWQgdG8gaG9tZSBkaXJlY3RvcnkpXG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZE9wdGlvbnM6IFRPcHRpb25zID0ge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIC4uLmV4cGFuZGVkUGF0aHMsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQnVpbGQgY29uZmlnIGFuZCByZW5kZXIgdGhlIGFwcFxuICAgICAgICBjb25zdCBzc2hEZWZhdWx0cyA9IHZhbGlkYXRlZE9wdGlvbnMuc3NoXG4gICAgICAgICAgICA/IHBhcnNlU1NIVGFyZ2V0KHZhbGlkYXRlZE9wdGlvbnMuc3NoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgY29uZmlnOiBUQ29ubmVjdGlvbkNvbmZpZyA9IHtcbiAgICAgICAgICAgIGNvbm5lY3Rpb25TdHJpbmc6IGVmZmVjdGl2ZUNvbm5lY3Rpb25TdHJpbmcsXG4gICAgICAgICAgICAuLi52YWxpZGF0ZWRPcHRpb25zLFxuICAgICAgICAgICAgc3NoSG9zdDogdmFsaWRhdGVkT3B0aW9ucy5zc2hIb3N0ID8/IHNzaERlZmF1bHRzPy5ob3N0LFxuICAgICAgICAgICAgc3NoUG9ydDogdmFsaWRhdGVkT3B0aW9ucy5zc2hQb3J0ID8/IHNzaERlZmF1bHRzPy5wb3J0LFxuICAgICAgICAgICAgc3NoVXNlcm5hbWU6IHZhbGlkYXRlZE9wdGlvbnMuc3NoVXNlcm5hbWUgPz8gc3NoRGVmYXVsdHM/LnVzZXJuYW1lLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHN0b3JlID0gY3JlYXRlQXBwU3RvcmUoY29uZmlnKTtcblxuICAgICAgICByZW5kZXIoY3JlYXRlRWxlbWVudChBcHAsIHtzdG9yZX0pKTtcblxuICAgICAgICBpZiAoY29ubmVjdGlvblN0cmluZ0Vycm9yKSB7XG4gICAgICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnN0YXRlID0gJ2Vycm9yJztcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24uZXJyb3IgPSBjb25uZWN0aW9uU3RyaW5nRXJyb3I7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bihzdG9yZSk7XG4gICAgfSk7XG5cbmNvbnN0IGZpcmVSdW5UZWxlbWV0cnkgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZG9Ob3RUcmFjayA9IGAke3Byb2Nlc3MuZW52WydET19OT1RfVFJBQ0snXX1gLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoZG9Ob3RUcmFjayA9PT0gJzEnIHx8IGRvTm90VHJhY2sgPT09ICd0cnVlJykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYXJncyA9IHByb2Nlc3MuYXJndi5zbGljZSgyKTtcbiAgICBjb25zdCBpc0hlbHAgPSBhcmdzLmluY2x1ZGVzKCctLWhlbHAnKSB8fCBhcmdzWzBdID09PSAnaGVscCc7XG4gICAgY29uc3Qgc3ViY29tbWFuZCA9IGlzSGVscCA/ICdoZWxwJyA6ICdnZW5lcmF0ZSc7XG5cbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCByZWFkQ29uZmlnKCk7XG5cbiAgICByZXR1cm4gdHJwYy50ZWxlbWV0cnkuY3JlYXRlLm11dGF0ZSh7XG4gICAgICAgIHR5cGU6ICdjbGkucnVuJyxcbiAgICAgICAgc3ViY29tbWFuZCxcbiAgICAgICAgZmxhZ3M6IHtcbiAgICAgICAgICAgIGhlbHA6IGlzSGVscCxcbiAgICAgICAgICAgIGNvbm5lY3Rpb25fc3RyaW5nOiBhcmdzLnNvbWUoXG4gICAgICAgICAgICAgICAgKGEpID0+ICFhLnN0YXJ0c1dpdGgoJy0nKSAmJiBhICE9PSAnZ2VuZXJhdGUnICYmIGEgIT09ICdoZWxwJyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBob3N0bmFtZTogYXJncy5pbmNsdWRlcygnLWgnKSB8fCBhcmdzLmluY2x1ZGVzKCctLWhvc3RuYW1lJyksXG4gICAgICAgICAgICBwb3J0OiBhcmdzLmluY2x1ZGVzKCctcCcpIHx8IGFyZ3MuaW5jbHVkZXMoJy0tcG9ydCcpLFxuICAgICAgICAgICAgZGF0YWJhc2U6IGFyZ3MuaW5jbHVkZXMoJy1kJykgfHwgYXJncy5pbmNsdWRlcygnLS1kYXRhYmFzZScpLFxuICAgICAgICAgICAgdXNlcm5hbWU6IGFyZ3MuaW5jbHVkZXMoJy1VJykgfHwgYXJncy5pbmNsdWRlcygnLS11c2VybmFtZScpLFxuICAgICAgICAgICAgc3NsOiBbJy0tc3NsbW9kZScsICctLXNzbGNlcnQnLCAnLS1zc2xrZXknLCAnLS1zc2xyb290Y2VydCddLnNvbWUoXG4gICAgICAgICAgICAgICAgKGYpID0+IGFyZ3MuaW5jbHVkZXMoZiksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3NoOiBhcmdzLmluY2x1ZGVzKCctLXNzaCcpIHx8IGFyZ3MuaW5jbHVkZXMoJy0tc3NoLWhvc3QnKSxcbiAgICAgICAgfSxcbiAgICAgICAgaXNfZG9ja2VyOiBkZXRlY3REb2NrZXIoKSxcbiAgICAgICAgaXNfc3NoX3Nlc3Npb246IGRldGVjdFNTSFNlc3Npb24oKSxcbiAgICAgICAgc2hlbGw6IGRldGVjdFNoZWxsKCksXG4gICAgICAgIG9zOiBkZXRlY3RPUygpLFxuICAgICAgICBpc193c2w6IGRldGVjdFdTTCgpLFxuICAgICAgICBzeXN0ZW1fbWVtb3J5OiBkZXRlY3RTeXN0ZW1NZW1vcnkoKSxcbiAgICAgICAgcGFja2FnZV9tYW5hZ2VyOiBkZXRlY3RQYWNrYWdlTWFuYWdlcigpLFxuICAgICAgICBkZXZpY2VfaWQ6IGNvbmZpZy5kZXZpY2VfaWQsXG4gICAgfSk7XG59O1xuXG50cnkge1xuICAgIGF3YWl0IGZpcmVSdW5UZWxlbWV0cnkoKTtcbn0gY2F0Y2ggKGVycikge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9XG59XG5cbnByb2dyYW0ucGFyc2UoKTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"DB.d.ts","sourceRoot":"./src/","sources":["ui/components/DB.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAGrC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAI5C,KAAK,QAAQ,GAAG;IACZ,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,EAAE,eAAsB,QAAQ,KAAG,SAAS;;CAkEvD,CAAC"}
1
+ {"version":3,"file":"DB.d.ts","sourceRoot":"./src/","sources":["ui/components/DB.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAGrC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAI5C,KAAK,QAAQ,GAAG;IACZ,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,EAAE,eAAsB,QAAQ,KAAG,SAAS;;CAmEvD,CAAC"}
@@ -17,6 +17,6 @@ export const DB = observer(({ store }) => {
17
17
  });
18
18
  } }, db.promptCount)] })) : db.state === 'connected' ? (_jsxs(Text, { color: "green", children: ["connected to ", target, db.postgresVersion
19
19
  ? ` (PostgreSQL ${db.postgresVersion})`
20
- : ''] })) : (_jsxs(Text, { color: "red", children: ["Error: ", db.error, " \u2014 ", target] }))] }));
20
+ : ''] })) : (_jsxs(Text, { color: "red", children: ["Error: ", db.error, db.pickedHostname !== null ? ` — ${target}` : ''] }))] }));
21
21
  });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiREIuanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJ1aS9jb21wb25lbnRzL0RCLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxLQUFLLENBQUM7QUFFOUIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFNakQsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFXLEVBQWEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0lBRTFDLElBQUksRUFBRSxDQUFDLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckUsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxjQUFjLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFFeEUsT0FBTyxDQUNILE1BQUMsR0FBRyxlQUNDLEVBQUUsQ0FBQyxLQUFLLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUN6QixLQUFDLE9BQU8sS0FBRyxDQUNkLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUMzQixLQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsT0FBTyx1QkFBUyxDQUMvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FDL0IsS0FBQyxJQUFJLElBQUMsS0FBSyxFQUFDLE1BQU0sdUJBQVMsQ0FDOUIsQ0FBQyxDQUFDLENBQUMsQ0FDQSxLQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsS0FBSyx1QkFBUyxDQUM3QixFQUVELEtBQUMsSUFBSSxvQkFBUyxFQUNkLEtBQUMsSUFBSSxJQUFDLElBQUksMkJBQVksRUFFckIsRUFBRSxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ3pCLE1BQUMsSUFBSSxpQ0FDYyxNQUFNLFNBQUssR0FBRyxFQUM3QixLQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsTUFBTSxZQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQVEsSUFDMUMsQ0FDVixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FDL0IsOEJBQ0ssRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDZixLQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsS0FBSyxpQ0FBd0IsQ0FDNUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNSLE1BQUMsSUFBSSxxQ0FDa0IsR0FBRyxFQUN0QixNQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsTUFBTSxhQUNiLEVBQUUsQ0FBQyxjQUFjLE9BQUcsRUFBRSxDQUFDLGNBQWMsRUFDckMsVUFBVSxJQUNSLEVBQ04sSUFBSSxJQUNGLEVBQ1AsS0FBQyxhQUFhLElBQ1YsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQ2hCLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0NBQ2IsS0FBSyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDOzRCQUNwRCxDQUFDLENBQUMsQ0FBQzt3QkFDUCxDQUFDLElBQ0ksRUFBRSxDQUFDLFdBQVcsQ0FDckIsSUFDSCxDQUNOLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUMzQixNQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsT0FBTyw4QkFDRCxNQUFNLEVBQ25CLEVBQUUsQ0FBQyxlQUFlO3dCQUNmLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsR0FBRzt3QkFDdkMsQ0FBQyxDQUFDLEVBQUUsSUFDTCxDQUNWLENBQUMsQ0FBQyxDQUFDLENBQ0EsTUFBQyxJQUFJLElBQUMsS0FBSyxFQUFDLEtBQUssd0JBQ0wsRUFBRSxDQUFDLEtBQUssY0FBSyxNQUFNLElBQ3hCLENBQ1YsSUFDQyxDQUNULENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Qm94LCBUZXh0fSBmcm9tICdpbmsnO1xuaW1wb3J0IHR5cGUge1JlYWN0Tm9kZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtvYnNlcnZlcn0gZnJvbSAnbW9ieC1yZWFjdC1saXRlJztcbmltcG9ydCB7cnVuSW5BY3Rpb259IGZyb20gJ21vYngnO1xuaW1wb3J0IHR5cGUge1RTdG9yZX0gZnJvbSAnLi4vLi4vc3RvcmUubWpzJztcbmltcG9ydCB7U3Bpbm5lcn0gZnJvbSAnLi9TcGlubmVyLmpzJztcbmltcG9ydCB7UGFzc3dvcmRJbnB1dH0gZnJvbSAnLi9QYXNzd29yZElucHV0LmpzJztcblxudHlwZSBUREJQcm9wcyA9IHtcbiAgICByZWFkb25seSBzdG9yZTogVFN0b3JlO1xufTtcblxuZXhwb3J0IGNvbnN0IERCID0gb2JzZXJ2ZXIoKHtzdG9yZX06IFREQlByb3BzKTogUmVhY3ROb2RlID0+IHtcbiAgICBjb25zdCBkYiA9IHN0b3JlLnN0ZXBzLmRhdGFiYXNlQ29ubmVjdGlvbjtcblxuICAgIGlmIChkYi5zdGF0ZSA9PT0gJ2lkbGUnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHBvcnRTdWZmaXggPSBkYi5waWNrZWRQb3J0ID09PSA1NDMyID8gJycgOiBgOiR7ZGIucGlja2VkUG9ydH1gO1xuICAgIGNvbnN0IHRhcmdldCA9IGAke2RiLnBpY2tlZERhdGFiYXNlfUAke2RiLnBpY2tlZEhvc3RuYW1lfSR7cG9ydFN1ZmZpeH1gO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJveD5cbiAgICAgICAgICAgIHtkYi5zdGF0ZSA9PT0gJ2Nvbm5lY3RpbmcnID8gKFxuICAgICAgICAgICAgICAgIDxTcGlubmVyIC8+XG4gICAgICAgICAgICApIDogZGIuc3RhdGUgPT09ICdjb25uZWN0ZWQnID8gKFxuICAgICAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwiZ3JlZW5cIj7il488L1RleHQ+XG4gICAgICAgICAgICApIDogZGIuc3RhdGUgPT09ICduZWVkLXBhc3N3b3JkJyA/IChcbiAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cImdyYXlcIj7il488L1RleHQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwicmVkXCI+4pePPC9UZXh0PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgPFRleHQ+IDwvVGV4dD5cbiAgICAgICAgICAgIDxUZXh0IGJvbGQ+REI6IDwvVGV4dD5cblxuICAgICAgICAgICAge2RiLnN0YXRlID09PSAnY29ubmVjdGluZycgPyAoXG4gICAgICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3RpbmcgdG8ge3RhcmdldH0gYXN7JyAnfVxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cImN5YW5cIj57ZGIucGlja2VkVXNlcm5hbWV9PC9UZXh0PlxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICkgOiBkYi5zdGF0ZSA9PT0gJ25lZWQtcGFzc3dvcmQnID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIHtkYi53cm9uZ0F0dGVtcHQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cInJlZFwiPldyb25nIHBhc3N3b3JkLiA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIEVudGVyIHBhc3N3b3JkIGZvcnsnICd9XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cImN5YW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZGIucGlja2VkVXNlcm5hbWV9QHtkYi5waWNrZWRIb3N0bmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cG9ydFN1ZmZpeH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHsnOiAnfVxuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxQYXNzd29yZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24ucGFzc3dvcmQgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2RiLnByb21wdENvdW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IGRiLnN0YXRlID09PSAnY29ubmVjdGVkJyA/IChcbiAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cImdyZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3RlZCB0byB7dGFyZ2V0fVxuICAgICAgICAgICAgICAgICAgICB7ZGIucG9zdGdyZXNWZXJzaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGAgKFBvc3RncmVTUUwgJHtkYi5wb3N0Z3Jlc1ZlcnNpb259KWBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJyd9XG4gICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cInJlZFwiPlxuICAgICAgICAgICAgICAgICAgICBFcnJvcjoge2RiLmVycm9yfSDigJQge3RhcmdldH1cbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICApfVxuICAgICAgICA8L0JveD5cbiAgICApO1xufSk7XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiREIuanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJ1aS9jb21wb25lbnRzL0RCLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxLQUFLLENBQUM7QUFFOUIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFNakQsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFXLEVBQWEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0lBRTFDLElBQUksRUFBRSxDQUFDLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckUsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxjQUFjLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFFeEUsT0FBTyxDQUNILE1BQUMsR0FBRyxlQUNDLEVBQUUsQ0FBQyxLQUFLLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUN6QixLQUFDLE9BQU8sS0FBRyxDQUNkLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUMzQixLQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsT0FBTyx1QkFBUyxDQUMvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FDL0IsS0FBQyxJQUFJLElBQUMsS0FBSyxFQUFDLE1BQU0sdUJBQVMsQ0FDOUIsQ0FBQyxDQUFDLENBQUMsQ0FDQSxLQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsS0FBSyx1QkFBUyxDQUM3QixFQUVELEtBQUMsSUFBSSxvQkFBUyxFQUNkLEtBQUMsSUFBSSxJQUFDLElBQUksMkJBQVksRUFFckIsRUFBRSxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ3pCLE1BQUMsSUFBSSxpQ0FDYyxNQUFNLFNBQUssR0FBRyxFQUM3QixLQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsTUFBTSxZQUFFLEVBQUUsQ0FBQyxjQUFjLEdBQVEsSUFDMUMsQ0FDVixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FDL0IsOEJBQ0ssRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDZixLQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsS0FBSyxpQ0FBd0IsQ0FDNUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNSLE1BQUMsSUFBSSxxQ0FDa0IsR0FBRyxFQUN0QixNQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsTUFBTSxhQUNiLEVBQUUsQ0FBQyxjQUFjLE9BQUcsRUFBRSxDQUFDLGNBQWMsRUFDckMsVUFBVSxJQUNSLEVBQ04sSUFBSSxJQUNGLEVBQ1AsS0FBQyxhQUFhLElBQ1YsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQ2hCLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0NBQ2IsS0FBSyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDOzRCQUNwRCxDQUFDLENBQUMsQ0FBQzt3QkFDUCxDQUFDLElBQ0ksRUFBRSxDQUFDLFdBQVcsQ0FDckIsSUFDSCxDQUNOLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUMzQixNQUFDLElBQUksSUFBQyxLQUFLLEVBQUMsT0FBTyw4QkFDRCxNQUFNLEVBQ25CLEVBQUUsQ0FBQyxlQUFlO3dCQUNmLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsR0FBRzt3QkFDdkMsQ0FBQyxDQUFDLEVBQUUsSUFDTCxDQUNWLENBQUMsQ0FBQyxDQUFDLENBQ0EsTUFBQyxJQUFJLElBQUMsS0FBSyxFQUFDLEtBQUssd0JBQ0wsRUFBRSxDQUFDLEtBQUssRUFDZixFQUFFLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUM5QyxDQUNWLElBQ0MsQ0FDVCxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JveCwgVGV4dH0gZnJvbSAnaW5rJztcbmltcG9ydCB0eXBlIHtSZWFjdE5vZGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7b2JzZXJ2ZXJ9IGZyb20gJ21vYngtcmVhY3QtbGl0ZSc7XG5pbXBvcnQge3J1bkluQWN0aW9ufSBmcm9tICdtb2J4JztcbmltcG9ydCB0eXBlIHtUU3RvcmV9IGZyb20gJy4uLy4uL3N0b3JlLm1qcyc7XG5pbXBvcnQge1NwaW5uZXJ9IGZyb20gJy4vU3Bpbm5lci5qcyc7XG5pbXBvcnQge1Bhc3N3b3JkSW5wdXR9IGZyb20gJy4vUGFzc3dvcmRJbnB1dC5qcyc7XG5cbnR5cGUgVERCUHJvcHMgPSB7XG4gICAgcmVhZG9ubHkgc3RvcmU6IFRTdG9yZTtcbn07XG5cbmV4cG9ydCBjb25zdCBEQiA9IG9ic2VydmVyKCh7c3RvcmV9OiBUREJQcm9wcyk6IFJlYWN0Tm9kZSA9PiB7XG4gICAgY29uc3QgZGIgPSBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb247XG5cbiAgICBpZiAoZGIuc3RhdGUgPT09ICdpZGxlJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwb3J0U3VmZml4ID0gZGIucGlja2VkUG9ydCA9PT0gNTQzMiA/ICcnIDogYDoke2RiLnBpY2tlZFBvcnR9YDtcbiAgICBjb25zdCB0YXJnZXQgPSBgJHtkYi5waWNrZWREYXRhYmFzZX1AJHtkYi5waWNrZWRIb3N0bmFtZX0ke3BvcnRTdWZmaXh9YDtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCb3g+XG4gICAgICAgICAgICB7ZGIuc3RhdGUgPT09ICdjb25uZWN0aW5nJyA/IChcbiAgICAgICAgICAgICAgICA8U3Bpbm5lciAvPlxuICAgICAgICAgICAgKSA6IGRiLnN0YXRlID09PSAnY29ubmVjdGVkJyA/IChcbiAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cImdyZWVuXCI+4pePPC9UZXh0PlxuICAgICAgICAgICAgKSA6IGRiLnN0YXRlID09PSAnbmVlZC1wYXNzd29yZCcgPyAoXG4gICAgICAgICAgICAgICAgPFRleHQgY29sb3I9XCJncmF5XCI+4pePPC9UZXh0PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cInJlZFwiPuKXjzwvVGV4dD5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxUZXh0PiA8L1RleHQ+XG4gICAgICAgICAgICA8VGV4dCBib2xkPkRCOiA8L1RleHQ+XG5cbiAgICAgICAgICAgIHtkYi5zdGF0ZSA9PT0gJ2Nvbm5lY3RpbmcnID8gKFxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW5nIHRvIHt0YXJnZXR9IGFzeycgJ31cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgY29sb3I9XCJjeWFuXCI+e2RiLnBpY2tlZFVzZXJuYW1lfTwvVGV4dD5cbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICApIDogZGIuc3RhdGUgPT09ICduZWVkLXBhc3N3b3JkJyA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICB7ZGIud3JvbmdBdHRlbXB0ID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQgY29sb3I9XCJyZWRcIj5Xcm9uZyBwYXNzd29yZC4gPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICBFbnRlciBwYXNzd29yZCBmb3J7JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQgY29sb3I9XCJjeWFuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2RiLnBpY2tlZFVzZXJuYW1lfUB7ZGIucGlja2VkSG9zdG5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BvcnRTdWZmaXh9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB7JzogJ31cbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8UGFzc3dvcmRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnBhc3N3b3JkID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtkYi5wcm9tcHRDb3VudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBkYi5zdGF0ZSA9PT0gJ2Nvbm5lY3RlZCcgPyAoXG4gICAgICAgICAgICAgICAgPFRleHQgY29sb3I9XCJncmVlblwiPlxuICAgICAgICAgICAgICAgICAgICBjb25uZWN0ZWQgdG8ge3RhcmdldH1cbiAgICAgICAgICAgICAgICAgICAge2RiLnBvc3RncmVzVmVyc2lvblxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgIChQb3N0Z3JlU1FMICR7ZGIucG9zdGdyZXNWZXJzaW9ufSlgXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcnfVxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFRleHQgY29sb3I9XCJyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgRXJyb3I6IHtkYi5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAge2RiLnBpY2tlZEhvc3RuYW1lICE9PSBudWxsID8gYCDigJQgJHt0YXJnZXR9YCA6ICcnfVxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvQm94PlxuICAgICk7XG59KTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dbctx",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "dbctx CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",
@@ -49,7 +49,7 @@
49
49
  "cross-env": "7.0.3",
50
50
  "prettier": "3.8.1",
51
51
  "typescript": "5.9.3",
52
- "@dbctx/core": "1.0.5"
52
+ "@dbctx/core": "1.1.0"
53
53
  },
54
54
  "volta": {
55
55
  "node": "24.0.0"