dbctx 1.0.3 → 1.3.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.
- package/dist/app/assemble.d.mts +5 -0
- package/dist/app/assemble.d.mts.map +1 -0
- package/dist/app/assemble.mjs +161 -0
- package/dist/app/config.d.mts +9 -0
- package/dist/app/config.d.mts.map +1 -0
- package/dist/app/config.mjs +49 -0
- package/dist/app/db.d.mts +9 -0
- package/dist/app/db.d.mts.map +1 -0
- package/dist/app/db.mjs +181 -0
- package/dist/app/detect.d.mts +11 -0
- package/dist/app/detect.d.mts.map +1 -0
- package/dist/app/detect.mjs +105 -0
- package/dist/app/index.d.mts +3 -0
- package/dist/app/index.d.mts.map +1 -0
- package/dist/app/index.mjs +81 -0
- package/dist/app/open-url.d.mts +4 -0
- package/dist/app/open-url.d.mts.map +1 -0
- package/dist/app/open-url.mjs +27 -0
- package/dist/app/session.d.mts +8 -0
- package/dist/app/session.d.mts.map +1 -0
- package/dist/app/session.mjs +155 -0
- package/dist/app/ssh.d.mts +3 -0
- package/dist/app/ssh.d.mts.map +1 -0
- package/dist/app/ssh.mjs +207 -0
- package/dist/db/analyze.d.mts +1 -1
- package/dist/db/analyze.d.mts.map +1 -1
- package/dist/db/analyze.mjs +1 -1
- package/dist/db/attributes.d.mts +3 -3
- package/dist/db/attributes.d.mts.map +1 -1
- package/dist/db/attributes.mjs +2 -2
- package/dist/db/enums.d.mts +1 -1
- package/dist/db/enums.d.mts.map +1 -1
- package/dist/db/enums.mjs +2 -2
- package/dist/db/file-stats.d.mts +1 -1
- package/dist/db/file-stats.d.mts.map +1 -1
- package/dist/db/file-stats.mjs +1 -1
- package/dist/db/foreign-keys.d.mts +2 -2
- package/dist/db/foreign-keys.d.mts.map +1 -1
- package/dist/db/foreign-keys.mjs +1 -1
- package/dist/db/index.d.mts +9 -9
- package/dist/db/index.d.mts.map +1 -1
- package/dist/db/index.mjs +10 -10
- package/dist/db/indexes.d.mts +1 -1
- package/dist/db/indexes.d.mts.map +1 -1
- package/dist/db/indexes.mjs +1 -1
- package/dist/db/relations.d.mts +2 -2
- package/dist/db/relations.d.mts.map +1 -1
- package/dist/db/relations.mjs +2 -2
- package/dist/db/stats.d.mts +1 -1
- package/dist/db/stats.d.mts.map +1 -1
- package/dist/db/stats.mjs +2 -2
- package/dist/db/version.d.mts +2 -1
- package/dist/db/version.d.mts.map +1 -1
- package/dist/db/version.mjs +9 -1
- package/dist/index.d.mts +4 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +105 -51
- package/dist/lib/trpc-url.d.mts +2 -0
- package/dist/lib/trpc-url.d.mts.map +1 -0
- package/dist/lib/trpc-url.mjs +6 -0
- package/dist/lib/trpc.d.mts +7 -0
- package/dist/lib/trpc.d.mts.map +1 -0
- package/dist/lib/trpc.mjs +37 -0
- package/dist/lib/trpc.react.d.mts +4 -0
- package/dist/lib/trpc.react.d.mts.map +1 -0
- package/dist/lib/trpc.react.mjs +3 -0
- package/dist/lib/version.d.mts +2 -0
- package/dist/lib/version.d.mts.map +1 -0
- package/dist/lib/version.mjs +5 -0
- package/dist/providers/TrpcProvider.d.ts +9 -0
- package/dist/providers/TrpcProvider.d.ts.map +1 -0
- package/dist/providers/TrpcProvider.js +41 -0
- package/dist/schemas/index.d.mts +106 -1
- package/dist/schemas/index.d.mts.map +1 -1
- package/dist/schemas/index.mjs +27 -2
- package/dist/store.d.mts +64 -0
- package/dist/store.d.mts.map +1 -0
- package/dist/store.mjs +68 -0
- package/dist/{App.d.ts → types/connection.d.mts} +3 -9
- package/dist/types/connection.d.mts.map +1 -0
- package/dist/types/connection.mjs +2 -0
- package/dist/ui/App.d.ts +10 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.js +13 -0
- package/dist/ui/components/DB.d.ts +10 -0
- package/dist/ui/components/DB.d.ts.map +1 -0
- package/dist/ui/components/DB.js +22 -0
- package/dist/{components → ui/components}/Error.d.ts +1 -1
- package/dist/ui/components/Error.d.ts.map +1 -0
- package/dist/ui/components/Error.js +6 -0
- package/dist/ui/components/Gate.d.ts +10 -0
- package/dist/ui/components/Gate.d.ts.map +1 -0
- package/dist/ui/components/Gate.js +15 -0
- package/dist/ui/components/Introspect.d.ts +10 -0
- package/dist/ui/components/Introspect.d.ts.map +1 -0
- package/dist/ui/components/Introspect.js +66 -0
- package/dist/ui/components/PasswordInput.d.ts +7 -0
- package/dist/ui/components/PasswordInput.d.ts.map +1 -0
- package/dist/ui/components/PasswordInput.js +32 -0
- package/dist/ui/components/SSH.d.ts +10 -0
- package/dist/ui/components/SSH.d.ts.map +1 -0
- package/dist/ui/components/SSH.js +22 -0
- package/dist/ui/components/Session.d.ts +10 -0
- package/dist/ui/components/Session.d.ts.map +1 -0
- package/dist/ui/components/Session.js +47 -0
- package/dist/ui/components/Spinner.d.ts +3 -0
- package/dist/ui/components/Spinner.d.ts.map +1 -0
- package/dist/ui/components/Spinner.js +18 -0
- package/dist/ui/components/Splash.d.ts +3 -0
- package/dist/ui/components/Splash.d.ts.map +1 -0
- package/dist/ui/components/Splash.js +13 -0
- package/dist/validatePaths.d.mts +1 -1
- package/dist/validatePaths.d.mts.map +1 -1
- package/dist/validatePaths.mjs +17 -11
- package/package.json +22 -2
- package/dist/App.d.ts.map +0 -1
- package/dist/App.js +0 -9
- package/dist/components/Error.d.ts.map +0 -1
- package/dist/components/Error.js +0 -6
package/dist/db/stats.mjs
CHANGED
|
@@ -13,7 +13,7 @@ export const fetchRelationStats = async (pool, relationName) => {
|
|
|
13
13
|
JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace AND n.nspname = s.schemaname
|
|
14
14
|
WHERE s.schemaname = 'public'
|
|
15
15
|
AND s.tablename = $1
|
|
16
|
-
ORDER BY s.
|
|
16
|
+
ORDER BY s.attname
|
|
17
17
|
`, [relationName]);
|
|
18
18
|
if (result.rows.length === 0) {
|
|
19
19
|
return {
|
|
@@ -31,4 +31,4 @@ export const fetchRelationStats = async (pool, relationName) => {
|
|
|
31
31
|
})),
|
|
32
32
|
};
|
|
33
33
|
};
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiZGIvc3RhdHMubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDbkMsSUFBVSxFQUNWLFlBQW9CLEVBQ0csRUFBRTtJQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBRzNCOzs7Ozs7Ozs7Ozs7Ozs7U0FlQyxFQUNELENBQUMsWUFBWSxDQUFDLENBQ2pCLENBQUM7SUFFRixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU87WUFDSCxhQUFhLEVBQUUsWUFBWTtZQUMzQixtQkFBbUIsRUFBRSxDQUFDO1lBQ3RCLFVBQVUsRUFBRSxFQUFFO1NBQ2pCLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTztRQUNILGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDM0MsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7UUFDdkQsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxjQUFjLEVBQUUsa0JBQWtCLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRSxjQUFjO1lBQ2Qsa0JBQWtCO1NBQ3JCLENBQUMsQ0FBQztLQUNOLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UG9vbH0gZnJvbSAncGcnO1xuXG5leHBvcnQgdHlwZSBUQXR0cmlidXRlU3RhdHMgPSB7XG4gICAgYXR0cmlidXRlX25hbWU6IHN0cmluZztcbiAgICBlc3RpbWF0ZWRfZGlzdGluY3Q6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFRSZWxhdGlvblN0YXRzID0ge1xuICAgIHJlbGF0aW9uX25hbWU6IHN0cmluZztcbiAgICBlc3RpbWF0ZWRfcm93X2NvdW50OiBudW1iZXI7XG4gICAgYXR0cmlidXRlczogVEF0dHJpYnV0ZVN0YXRzW107XG59O1xuXG5leHBvcnQgY29uc3QgZmV0Y2hSZWxhdGlvblN0YXRzID0gYXN5bmMgKFxuICAgIHBvb2w6IFBvb2wsXG4gICAgcmVsYXRpb25OYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPFRSZWxhdGlvblN0YXRzPiA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcG9vbC5xdWVyeTxcbiAgICAgICAgVEF0dHJpYnV0ZVN0YXRzICYge3JlbGF0aW9uX25hbWU6IHN0cmluZzsgZXN0aW1hdGVkX3Jvd19jb3VudDogbnVtYmVyfVxuICAgID4oXG4gICAgICAgIGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgICBzLnRhYmxlbmFtZSBBUyByZWxhdGlvbl9uYW1lLFxuICAgICAgICAgICAgYy5yZWx0dXBsZXM6OmJpZ2ludCBBUyBlc3RpbWF0ZWRfcm93X2NvdW50LFxuICAgICAgICAgICAgcy5hdHRuYW1lIEFTIGF0dHJpYnV0ZV9uYW1lLFxuICAgICAgICAgICAgQ0FTRVxuICAgICAgICAgICAgICAgIFdIRU4gcy5uX2Rpc3RpbmN0ID4gMCBUSEVOIHMubl9kaXN0aW5jdFxuICAgICAgICAgICAgICAgIEVMU0UgYWJzKHMubl9kaXN0aW5jdCkgKiBjLnJlbHR1cGxlc1xuICAgICAgICAgICAgRU5EOjpiaWdpbnQgQVMgZXN0aW1hdGVkX2Rpc3RpbmN0XG4gICAgICAgIEZST00gcGdfY2F0YWxvZy5wZ19zdGF0cyBzXG4gICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMucmVsbmFtZSA9IHMudGFibGVuYW1lXG4gICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IGMucmVsbmFtZXNwYWNlIEFORCBuLm5zcG5hbWUgPSBzLnNjaGVtYW5hbWVcbiAgICAgICAgV0hFUkUgcy5zY2hlbWFuYW1lID0gJ3B1YmxpYydcbiAgICAgICAgICAgIEFORCBzLnRhYmxlbmFtZSA9ICQxXG4gICAgICAgIE9SREVSIEJZIHMuYXR0bmFtZVxuICAgICAgICBgLFxuICAgICAgICBbcmVsYXRpb25OYW1lXSxcbiAgICApO1xuXG4gICAgaWYgKHJlc3VsdC5yb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVsYXRpb25fbmFtZTogcmVsYXRpb25OYW1lLFxuICAgICAgICAgICAgZXN0aW1hdGVkX3Jvd19jb3VudDogMCxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIHJlbGF0aW9uX25hbWU6IHJlc3VsdC5yb3dzWzBdLnJlbGF0aW9uX25hbWUsXG4gICAgICAgIGVzdGltYXRlZF9yb3dfY291bnQ6IHJlc3VsdC5yb3dzWzBdLmVzdGltYXRlZF9yb3dfY291bnQsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHJlc3VsdC5yb3dzLm1hcCgoe2F0dHJpYnV0ZV9uYW1lLCBlc3RpbWF0ZWRfZGlzdGluY3R9KSA9PiAoe1xuICAgICAgICAgICAgYXR0cmlidXRlX25hbWUsXG4gICAgICAgICAgICBlc3RpbWF0ZWRfZGlzdGluY3QsXG4gICAgICAgIH0pKSxcbiAgICB9O1xufTtcbiJdfQ==
|
package/dist/db/version.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Pool } from
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
2
|
export type TPostgresVersion = {
|
|
3
3
|
version: string;
|
|
4
4
|
version_num: number;
|
|
@@ -9,5 +9,6 @@ export type TDatabaseIdentifier = {
|
|
|
9
9
|
database_oid: number;
|
|
10
10
|
database_name: string;
|
|
11
11
|
};
|
|
12
|
+
export declare const fetchDatabaseComment: (pool: Pool) => Promise<string | null>;
|
|
12
13
|
export declare const fetchDatabaseIdentifier: (pool: Pool) => Promise<TDatabaseIdentifier>;
|
|
13
14
|
//# sourceMappingURL=version.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.mts","sourceRoot":"./src/","sources":["db/version.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"version.d.mts","sourceRoot":"./src/","sources":["db/version.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAE7B,MAAM,MAAM,gBAAgB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,MAAM,IAAI,KACX,OAAO,CAAC,gBAAgB,CAQ1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,MAAM,IAAI,KACX,OAAO,CAAC,MAAM,GAAG,IAAI,CAQvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAChC,MAAM,IAAI,KACX,OAAO,CAAC,mBAAmB,CAU7B,CAAC"}
|
package/dist/db/version.mjs
CHANGED
|
@@ -6,6 +6,14 @@ export const fetchPostgresVersion = async (pool) => {
|
|
|
6
6
|
`);
|
|
7
7
|
return result.rows[0];
|
|
8
8
|
};
|
|
9
|
+
export const fetchDatabaseComment = async (pool) => {
|
|
10
|
+
const result = await pool.query(`
|
|
11
|
+
SELECT shobj_description(d.oid, 'pg_database') AS comment
|
|
12
|
+
FROM pg_database d
|
|
13
|
+
WHERE d.datname = current_database()
|
|
14
|
+
`);
|
|
15
|
+
return result.rows[0].comment;
|
|
16
|
+
};
|
|
9
17
|
export const fetchDatabaseIdentifier = async (pool) => {
|
|
10
18
|
const result = await pool.query(`
|
|
11
19
|
SELECT
|
|
@@ -16,4 +24,4 @@ export const fetchDatabaseIdentifier = async (pool) => {
|
|
|
16
24
|
`);
|
|
17
25
|
return result.rows[0];
|
|
18
26
|
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5tanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJkYi92ZXJzaW9uLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQ3JDLElBQVUsRUFDZSxFQUFFO0lBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBbUI7Ozs7S0FJakQsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQVFGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEtBQUssRUFDckMsSUFBVSxFQUNZLEVBQUU7SUFDeEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUEyQjs7OztLQUl6RCxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssRUFDeEMsSUFBVSxFQUNrQixFQUFFO0lBQzlCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBc0I7Ozs7OztLQU1wRCxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Bvb2x9IGZyb20gJ3BnJztcblxuZXhwb3J0IHR5cGUgVFBvc3RncmVzVmVyc2lvbiA9IHtcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgdmVyc2lvbl9udW06IG51bWJlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaFBvc3RncmVzVmVyc2lvbiA9IGFzeW5jIChcbiAgICBwb29sOiBQb29sLFxuKTogUHJvbWlzZTxUUG9zdGdyZXNWZXJzaW9uPiA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcG9vbC5xdWVyeTxUUG9zdGdyZXNWZXJzaW9uPihgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgICAgY3VycmVudF9zZXR0aW5nKCdzZXJ2ZXJfdmVyc2lvbicpIEFTIHZlcnNpb24sXG4gICAgICAgICAgICBjdXJyZW50X3NldHRpbmcoJ3NlcnZlcl92ZXJzaW9uX251bScpOjppbnQgQVMgdmVyc2lvbl9udW1cbiAgICBgKTtcblxuICAgIHJldHVybiByZXN1bHQucm93c1swXTtcbn07XG5cbmV4cG9ydCB0eXBlIFREYXRhYmFzZUlkZW50aWZpZXIgPSB7XG4gICAgc3lzdGVtX2lkZW50aWZpZXI6IHN0cmluZztcbiAgICBkYXRhYmFzZV9vaWQ6IG51bWJlcjtcbiAgICBkYXRhYmFzZV9uYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgZmV0Y2hEYXRhYmFzZUNvbW1lbnQgPSBhc3luYyAoXG4gICAgcG9vbDogUG9vbCxcbik6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBvb2wucXVlcnk8e2NvbW1lbnQ6IHN0cmluZyB8IG51bGx9PihgXG4gICAgICAgIFNFTEVDVCBzaG9ial9kZXNjcmlwdGlvbihkLm9pZCwgJ3BnX2RhdGFiYXNlJykgQVMgY29tbWVudFxuICAgICAgICBGUk9NIHBnX2RhdGFiYXNlIGRcbiAgICAgICAgV0hFUkUgZC5kYXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpXG4gICAgYCk7XG5cbiAgICByZXR1cm4gcmVzdWx0LnJvd3NbMF0uY29tbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaERhdGFiYXNlSWRlbnRpZmllciA9IGFzeW5jIChcbiAgICBwb29sOiBQb29sLFxuKTogUHJvbWlzZTxURGF0YWJhc2VJZGVudGlmaWVyPiA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcG9vbC5xdWVyeTxURGF0YWJhc2VJZGVudGlmaWVyPihgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgICAgc3lzdGVtX2lkZW50aWZpZXI6OnRleHQgQVMgc3lzdGVtX2lkZW50aWZpZXIsXG4gICAgICAgICAgICAoU0VMRUNUIG9pZDo6aW50IEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKSkgQVMgZGF0YWJhc2Vfb2lkLFxuICAgICAgICAgICAgY3VycmVudF9kYXRhYmFzZSgpIEFTIGRhdGFiYXNlX25hbWVcbiAgICAgICAgRlJPTSBwZ19jb250cm9sX3N5c3RlbSgpXG4gICAgYCk7XG5cbiAgICByZXR1cm4gcmVzdWx0LnJvd3NbMF07XG59O1xuIl19
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export type TSSLMode =
|
|
3
|
-
export interface
|
|
2
|
+
export type TSSLMode = 'disable' | 'allow' | 'prefer' | 'require' | 'verify-ca' | 'verify-full';
|
|
3
|
+
export interface TOptions {
|
|
4
4
|
hostname?: string;
|
|
5
5
|
port?: number;
|
|
6
6
|
database?: string;
|
|
@@ -9,9 +9,10 @@ export interface ConnectionOptions {
|
|
|
9
9
|
sslcert?: string;
|
|
10
10
|
sslkey?: string;
|
|
11
11
|
sslrootcert?: string;
|
|
12
|
+
ssh?: string;
|
|
12
13
|
sshHost?: string;
|
|
13
14
|
sshPort?: number;
|
|
14
15
|
sshUsername?: string;
|
|
15
|
-
|
|
16
|
+
sshKey?: string;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"./src/","sources":["index.mts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"./src/","sources":["index.mts"],"names":[],"mappings":";AAkBA,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
|
@@ -1,75 +1,129 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Command } from
|
|
3
|
-
import { render } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { render } from 'ink';
|
|
4
|
+
import { createElement } from 'react';
|
|
5
|
+
import { Error } from './ui/components/Error.js';
|
|
6
|
+
import { App } from './ui/App.js';
|
|
7
|
+
import { Splash } from './ui/components/Splash.js';
|
|
8
|
+
import { createAppStore } from './store.mjs';
|
|
9
|
+
import { runInAction } from 'mobx';
|
|
10
|
+
import { validatePathOptions, } from './validatePaths.mjs';
|
|
11
|
+
import { run } from './app/index.mjs';
|
|
12
|
+
import { CLIENT_VERSION } from './lib/version.mjs';
|
|
13
|
+
import { scope } from 'scope-utilities';
|
|
14
|
+
const parseSSHTarget = (target) => {
|
|
15
|
+
const atIndex = target.indexOf('@');
|
|
16
|
+
const username = atIndex >= 0 ? target.slice(0, atIndex) : undefined;
|
|
17
|
+
const hostPort = atIndex >= 0 ? target.slice(atIndex + 1) : target;
|
|
18
|
+
const colonIndex = hostPort.lastIndexOf(':');
|
|
19
|
+
const host = colonIndex >= 0 ? hostPort.slice(0, colonIndex) : hostPort;
|
|
20
|
+
const port = colonIndex >= 0
|
|
21
|
+
? parseInt(hostPort.slice(colonIndex + 1), 10)
|
|
22
|
+
: undefined;
|
|
23
|
+
return { username, host, port };
|
|
24
|
+
};
|
|
7
25
|
const program = new Command();
|
|
8
26
|
program
|
|
9
|
-
.name(
|
|
10
|
-
.
|
|
11
|
-
.
|
|
12
|
-
.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
.
|
|
20
|
-
.
|
|
21
|
-
.
|
|
22
|
-
.option(
|
|
23
|
-
.option(
|
|
24
|
-
.option(
|
|
27
|
+
.name('dbctx')
|
|
28
|
+
.version(CLIENT_VERSION)
|
|
29
|
+
.helpOption('--help', 'display help for command')
|
|
30
|
+
.addHelpText('beforeAll', () => {
|
|
31
|
+
const { unmount } = render(createElement(Splash));
|
|
32
|
+
unmount();
|
|
33
|
+
return '';
|
|
34
|
+
});
|
|
35
|
+
const generate = program
|
|
36
|
+
.command('generate', { isDefault: true })
|
|
37
|
+
.description('Connect to a PostgreSQL database and generate context')
|
|
38
|
+
.helpOption('--help', 'display help for command')
|
|
39
|
+
.argument('[connection-string]', 'PostgreSQL connection string (env: DATABASE_URL)')
|
|
40
|
+
.option('-h, --hostname <host>', 'database hostname (env: PGHOST, default: localhost)')
|
|
41
|
+
.option('-p, --port <port>', 'database port (env: PGPORT, default: 5432)', parseInt)
|
|
42
|
+
.option('-d, --database <name>', 'database name (env: PGDATABASE, default: postgres)')
|
|
43
|
+
.option('-U, --username <user>', 'database username (env: PGUSER, default: postgres)')
|
|
44
|
+
.option('--sslmode <mode>', 'SSL mode: disable|allow|prefer|require|verify-ca|verify-full (env: PGSSLMODE, default: prefer)')
|
|
45
|
+
.option('--sslcert <path>', 'path to client certificate (env: PGSSLCERT)')
|
|
46
|
+
.option('--sslkey <path>', 'path to client private key (env: PGSSLKEY)')
|
|
47
|
+
.option('--sslrootcert <path>', 'path to root CA certificate (env: PGSSLROOTCERT)')
|
|
48
|
+
.option('--ssh <target>', 'SSH tunnel target (user@host[:port])')
|
|
49
|
+
.option('--ssh-host <host>', 'SSH tunnel host (bastion/jump server)')
|
|
50
|
+
.option('--ssh-port <port>', 'SSH tunnel port (default: 22)', parseInt)
|
|
51
|
+
.option('--ssh-username <user>', 'SSH tunnel username (default: $USER)')
|
|
52
|
+
.option('-i, --ssh-key <path>', 'path to SSH private key (default: ~/.ssh/id_rsa)')
|
|
25
53
|
.action((connectionString, options) => {
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
54
|
+
// Show help if no connection config is provided
|
|
55
|
+
const hasCLIConfig = connectionString !== undefined ||
|
|
56
|
+
options.hostname !== undefined ||
|
|
57
|
+
options.port !== undefined ||
|
|
58
|
+
options.database !== undefined ||
|
|
59
|
+
options.username !== undefined;
|
|
60
|
+
const hasEnvConfig = [
|
|
61
|
+
'PGHOST',
|
|
62
|
+
'PGPORT',
|
|
63
|
+
'PGDATABASE',
|
|
64
|
+
'PGUSER',
|
|
65
|
+
'PGPASSWORD',
|
|
66
|
+
'DATABASE_URL',
|
|
67
|
+
].some((key) => process.env[key] !== undefined);
|
|
68
|
+
if (!hasCLIConfig && !hasEnvConfig) {
|
|
69
|
+
generate.help();
|
|
33
70
|
}
|
|
71
|
+
// Validate connection strings are PostgreSQL URLs
|
|
72
|
+
const effectiveConnectionString = connectionString ?? process.env['DATABASE_URL'];
|
|
73
|
+
const connectionStringError = scope(effectiveConnectionString)
|
|
74
|
+
.let((str) => {
|
|
75
|
+
if (str === undefined) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
if (!URL.canParse(str)) {
|
|
79
|
+
return `Malformed connection string "${str}": not a valid URL`;
|
|
80
|
+
}
|
|
81
|
+
const { protocol } = new URL(str);
|
|
82
|
+
if (protocol !== 'postgres:' &&
|
|
83
|
+
protocol !== 'postgresql:') {
|
|
84
|
+
return `Invalid connection string "${str}": expected postgres:// or postgresql://`;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
})
|
|
88
|
+
.value();
|
|
34
89
|
// Validate path options exist on filesystem
|
|
35
90
|
const { errors: pathErrors, expandedPaths } = validatePathOptions(options);
|
|
36
91
|
if (pathErrors.length > 0) {
|
|
37
92
|
const errorMessages = pathErrors
|
|
38
93
|
.map(({ option, path }) => ` ${option}: ${path}`)
|
|
39
|
-
.join(
|
|
94
|
+
.join('\n');
|
|
40
95
|
render(Error({
|
|
41
96
|
message: `The following paths do not exist:\n${errorMessages}`,
|
|
42
97
|
}));
|
|
43
98
|
process.exit(1);
|
|
44
99
|
}
|
|
45
|
-
// Replace original paths with expanded paths
|
|
100
|
+
// Replace original paths with expanded paths
|
|
101
|
+
// (~ resolved to home directory)
|
|
46
102
|
const validatedOptions = {
|
|
47
103
|
...options,
|
|
48
104
|
...expandedPaths,
|
|
49
105
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{ key: "database", flag: "-d/--database" },
|
|
55
|
-
{ key: "username", flag: "-U/--username" },
|
|
56
|
-
];
|
|
57
|
-
const missing = requiredOptions
|
|
58
|
-
.filter(({ key }) => !validatedOptions[key])
|
|
59
|
-
.map(({ flag }) => flag);
|
|
60
|
-
if (missing.length > 0) {
|
|
61
|
-
render(Error({
|
|
62
|
-
message: `Missing required options: ${missing.join(", ")}`,
|
|
63
|
-
}));
|
|
64
|
-
process.exit(1);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
// All validations passed - build config and render the app
|
|
106
|
+
// Build config and render the app
|
|
107
|
+
const sshDefaults = validatedOptions.ssh
|
|
108
|
+
? parseSSHTarget(validatedOptions.ssh)
|
|
109
|
+
: undefined;
|
|
68
110
|
const config = {
|
|
69
|
-
connectionString,
|
|
111
|
+
connectionString: effectiveConnectionString,
|
|
70
112
|
...validatedOptions,
|
|
113
|
+
sshHost: validatedOptions.sshHost ?? sshDefaults?.host,
|
|
114
|
+
sshPort: validatedOptions.sshPort ?? sshDefaults?.port,
|
|
115
|
+
sshUsername: validatedOptions.sshUsername ?? sshDefaults?.username,
|
|
71
116
|
};
|
|
72
|
-
|
|
117
|
+
const store = createAppStore(config);
|
|
118
|
+
render(createElement(App, { store }));
|
|
119
|
+
if (connectionStringError) {
|
|
120
|
+
runInAction(() => {
|
|
121
|
+
store.steps.databaseConnection.state = 'error';
|
|
122
|
+
store.steps.databaseConnection.error = connectionStringError;
|
|
123
|
+
});
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
run(store);
|
|
73
127
|
});
|
|
74
128
|
program.parse();
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiaW5kZXgubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDN0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBNkIsTUFBTSxxQkFBcUIsQ0FBQztBQW1CckYsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUU5QixPQUFPO0tBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQztLQUNiLFdBQVcsQ0FBQyxrREFBa0QsQ0FBQztLQUMvRCxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ2hCLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxrREFBa0QsQ0FBQztLQUNuRixNQUFNLENBQUMsdUJBQXVCLEVBQUUscURBQXFELENBQUM7S0FDdEYsTUFBTSxDQUFDLG1CQUFtQixFQUFFLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQztLQUNuRixNQUFNLENBQUMsdUJBQXVCLEVBQUUsb0RBQW9ELENBQUM7S0FDckYsTUFBTSxDQUFDLHVCQUF1QixFQUFFLG9EQUFvRCxDQUFDO0tBQ3JGLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxnR0FBZ0csQ0FBQztLQUM1SCxNQUFNLENBQUMsa0JBQWtCLEVBQUUsNkNBQTZDLENBQUM7S0FDekUsTUFBTSxDQUFDLGlCQUFpQixFQUFFLDRDQUE0QyxDQUFDO0tBQ3ZFLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxrREFBa0QsQ0FBQztLQUNsRixNQUFNLENBQUMsbUJBQW1CLEVBQUUsdUNBQXVDLENBQUM7S0FDcEUsTUFBTSxDQUFDLG1CQUFtQixFQUFFLCtCQUErQixFQUFFLFFBQVEs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ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwiaW5rXCI7XG5pbXBvcnQgeyBFcnJvciB9IGZyb20gXCIuL2NvbXBvbmVudHMvRXJyb3IuanNcIjtcbmltcG9ydCB7IEFwcCwgdHlwZSBUQ29ubmVjdGlvbkNvbmZpZyB9IGZyb20gXCIuL0FwcC5qc1wiO1xuaW1wb3J0IHsgdmFsaWRhdGVQYXRoT3B0aW9ucywgdHlwZSBUUGF0aFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuL3ZhbGlkYXRlUGF0aHMubWpzXCI7XG5cbmV4cG9ydCB0eXBlIFRTU0xNb2RlID0gXCJkaXNhYmxlXCIgfCBcImFsbG93XCIgfCBcInByZWZlclwiIHwgXCJyZXF1aXJlXCIgfCBcInZlcmlmeS1jYVwiIHwgXCJ2ZXJpZnktZnVsbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25PcHRpb25zIHtcbiAgICBob3N0bmFtZT86IHN0cmluZztcbiAgICBwb3J0PzogbnVtYmVyO1xuICAgIGRhdGFiYXNlPzogc3RyaW5nO1xuICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgIHNzbG1vZGU/OiBUU1NMTW9kZTtcbiAgICBzc2xjZXJ0Pzogc3RyaW5nO1xuICAgIHNzbGtleT86IHN0cmluZztcbiAgICBzc2xyb290Y2VydD86IHN0cmluZztcbiAgICBzc2hIb3N0Pzogc3RyaW5nO1xuICAgIHNzaFBvcnQ/OiBudW1iZXI7XG4gICAgc3NoVXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgc3NoUHJpdmF0ZUtleT86IHN0cmluZztcbn1cblxuY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKCk7XG5cbnByb2dyYW1cbiAgICAubmFtZShcImRiY3R4XCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiQUkgZ2VuZXJhdGVkIGRvY3MgZnJvbSB5b3VyIGFwcGxpY2F0aW9uIGRhdGFiYXNlXCIpXG4gICAgLnZlcnNpb24oXCIxLjAuMFwiKVxuICAgIC5hcmd1bWVudChcIltjb25uZWN0aW9uLXN0cmluZ11cIiwgXCJQb3N0Z3JlU1FMIGNvbm5lY3Rpb24gc3RyaW5nIChlbnY6IERBVEFCQVNFX1VSTClcIilcbiAgICAub3B0aW9uKFwiLWgsIC0taG9zdG5hbWUgPGhvc3Q+XCIsIFwiZGF0YWJhc2UgaG9zdG5hbWUgKGVudjogUEdIT1NULCBkZWZhdWx0OiBsb2NhbGhvc3QpXCIpXG4gICAgLm9wdGlvbihcIi1wLCAtLXBvcnQgPHBvcnQ+XCIsIFwiZGF0YWJhc2UgcG9ydCAoZW52OiBQR1BPUlQsIGRlZmF1bHQ6IDU0MzIpXCIsIHBhcnNlSW50KVxuICAgIC5vcHRpb24oXCItZCwgLS1kYXRhYmFzZSA8bmFtZT5cIiwgXCJkYXRhYmFzZSBuYW1lIChlbnY6IFBHREFUQUJBU0UsIGRlZmF1bHQ6IHBvc3RncmVzKVwiKVxuICAgIC5vcHRpb24oXCItVSwgLS11c2VybmFtZSA8dXNlcj5cIiwgXCJkYXRhYmFzZSB1c2VybmFtZSAoZW52OiBQR1VTRVIsIGRlZmF1bHQ6IHBvc3RncmVzKVwiKVxuICAgIC5vcHRpb24oXCItLXNzbG1vZGUgPG1vZGU+XCIsIFwiU1NMIG1vZGU6IGRpc2FibGV8YWxsb3d8cHJlZmVyfHJlcXVpcmV8dmVyaWZ5LWNhfHZlcmlmeS1mdWxsIChlbnY6IFBHU1NMTU9ERSwgZGVmYXVsdDogcHJlZmVyKVwiKVxuICAgIC5vcHRpb24oXCItLXNzbGNlcnQgPHBhdGg+XCIsIFwicGF0aCB0byBjbGllbnQgY2VydGlmaWNhdGUgKGVudjogUEdTU0xDRVJUKVwiKVxuICAgIC5vcHRpb24oXCItLXNzbGtleSA8cGF0aD5cIiwgXCJwYXRoIHRvIGNsaWVudCBwcml2YXRlIGtleSAoZW52OiBQR1NTTEtFWSlcIilcbiAgICAub3B0aW9uKFwiLS1zc2xyb290Y2VydCA8cGF0aD5cIiwgXCJwYXRoIHRvIHJvb3QgQ0EgY2VydGlmaWNhdGUgKGVudjogUEdTU0xST09UQ0VSVClcIilcbiAgICAub3B0aW9uKFwiLS1zc2gtaG9zdCA8aG9zdD5cIiwgXCJTU0ggdHVubmVsIGhvc3QgKGJhc3Rpb24vanVtcCBzZXJ2ZXIpXCIpXG4gICAgLm9wdGlvbihcIi0tc3NoLXBvcnQgPHBvcnQ+XCIsIFwiU1NIIHR1bm5lbCBwb3J0IChkZWZhdWx0OiAyMilcIiwgcGFyc2VJbnQpXG4gICAgLm9wdGlvbihcIi0tc3NoLXVzZXJuYW1lIDx1c2VyPlwiLCBcIlNTSCB0dW5uZWwgdXNlcm5hbWUgKGRlZmF1bHQ6ICRVU0VSKVwiKVxuICAgIC5vcHRpb24oXCItLXNzaC1wcml2YXRlLWtleSA8cGF0aD5cIiwgXCJwYXRoIHRvIFNTSCBwcml2YXRlIGtleSAoZGVmYXVsdDogfi8uc3NoL2lkX3JzYSlcIilcbiAgICAuYWN0aW9uKChjb25uZWN0aW9uU3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM6IENvbm5lY3Rpb25PcHRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IGhhc0Nvbm5lY3Rpb25TdHJpbmcgPSBCb29sZWFuKGNvbm5lY3Rpb25TdHJpbmcpO1xuICAgICAgICBjb25zdCBoYXNJbmRpdmlkdWFsT3B0aW9ucyA9IEJvb2xlYW4oXG4gICAgICAgICAgICBvcHRpb25zLmhvc3RuYW1lIHx8IG9wdGlvbnMucG9ydCB8fCBvcHRpb25zLmRhdGFiYXNlIHx8IG9wdGlvbnMudXNlcm5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaGFzQ29ubmVjdGlvblN0cmluZyAmJiBoYXNJbmRpdmlkdWFsT3B0aW9ucykge1xuICAgICAgICAgICAgcmVuZGVyKFxuICAgICAgICAgICAgICAgIEVycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2Fubm90IHVzZSBib3RoIGNvbm5lY3Rpb24gc3RyaW5nIGFuZCBpbmRpdmlkdWFsIG9wdGlvbnMgKC1oLCAtcCwgLWQsIC1VKS4gVXNlIG9uZSBvciB0aGUgb3RoZXIuXCIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbGlkYXRlIHBhdGggb3B0aW9ucyBleGlzdCBvbiBmaWxlc3lzdGVtXG4gICAgICAgIGNvbnN0IHsgZXJyb3JzOiBwYXRoRXJyb3JzLCBleHBhbmRlZFBhdGhzIH0gPSB2YWxpZGF0ZVBhdGhPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChwYXRoRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXMgPSBwYXRoRXJyb3JzXG4gICAgICAgICAgICAgICAgLm1hcCgoeyBvcHRpb24sIHBhdGggfTogVFBhdGhWYWxpZGF0aW9uRXJyb3IpID0+IGAgICR7b3B0aW9ufTogJHtwYXRofWApXG4gICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG5cbiAgICAgICAgICAgIHJlbmRlcihcbiAgICAgICAgICAgICAgICBFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBUaGUgZm9sbG93aW5nIHBhdGhzIGRvIG5vdCBleGlzdDpcXG4ke2Vycm9yTWVzc2FnZXN9YCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVwbGFjZSBvcmlnaW5hbCBwYXRocyB3aXRoIGV4cGFuZGVkIHBhdGhzICh+IHJlc29sdmVkIHRvIGhvbWUgZGlyZWN0b3J5KVxuICAgICAgICBjb25zdCB2YWxpZGF0ZWRPcHRpb25zOiBDb25uZWN0aW9uT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAuLi5leHBhbmRlZFBhdGhzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChoYXNJbmRpdmlkdWFsT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRPcHRpb25zID0gW1xuICAgICAgICAgICAgICAgIHsga2V5OiBcImhvc3RuYW1lXCIsIGZsYWc6IFwiLWgvLS1ob3N0bmFtZVwiIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6IFwicG9ydFwiLCBmbGFnOiBcIi1wLy0tcG9ydFwiIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6IFwiZGF0YWJhc2VcIiwgZmxhZzogXCItZC8tLWRhdGFiYXNlXCIgfSxcbiAgICAgICAgICAgICAgICB7IGtleTogXCJ1c2VybmFtZVwiLCBmbGFnOiBcIi1VLy0tdXNlcm5hbWVcIiB9LFxuICAgICAgICAgICAgXSBhcyBjb25zdDtcblxuICAgICAgICAgICAgY29uc3QgbWlzc2luZyA9IHJlcXVpcmVkT3B0aW9uc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHsga2V5IH0pID0+ICF2YWxpZGF0ZWRPcHRpb25zW2tleV0pXG4gICAgICAgICAgICAgICAgLm1hcCgoeyBmbGFnIH0pID0+IGZsYWcpO1xuXG4gICAgICAgICAgICBpZiAobWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmVuZGVyKFxuICAgICAgICAgICAgICAgICAgICBFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgTWlzc2luZyByZXF1aXJlZCBvcHRpb25zOiAke21pc3Npbmcuam9pbihcIiwgXCIpfWAsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFsbCB2YWxpZGF0aW9ucyBwYXNzZWQgLSBidWlsZCBjb25maWcgYW5kIHJlbmRlciB0aGUgYXBwXG4gICAgICAgIGNvbnN0IGNvbmZpZzogVENvbm5lY3Rpb25Db25maWcgPSB7XG4gICAgICAgICAgICBjb25uZWN0aW9uU3RyaW5nLFxuICAgICAgICAgICAgLi4udmFsaWRhdGVkT3B0aW9ucyxcbiAgICAgICAgfTtcblxuICAgICAgICByZW5kZXIoQXBwKHsgY29uZmlnIH0pKTtcbiAgICB9KTtcblxucHJvZ3JhbS5wYXJzZSgpO1xuIl19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiaW5kZXgubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxLQUFLLENBQUM7QUFDM0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUNwQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDL0MsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFDSCxtQkFBbUIsR0FFdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQTBCdEMsTUFBTSxjQUFjLEdBQUcsQ0FDbkIsTUFBYyxFQUtoQixFQUFFO0lBQ0EsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxH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QyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87SUFDWCxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDLENBQUM7QUFFUCxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQge0NvbW1hbmR9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQge3JlbmRlcn0gZnJvbSAnaW5rJztcbmltcG9ydCB7Y3JlYXRlRWxlbWVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtFcnJvcn0gZnJvbSAnLi91aS9jb21wb25lbnRzL0Vycm9yLmpzJztcbmltcG9ydCB7QXBwfSBmcm9tICcuL3VpL0FwcC5qcyc7XG5pbXBvcnQge1NwbGFzaH0gZnJvbSAnLi91aS9jb21wb25lbnRzL1NwbGFzaC5qcyc7XG5pbXBvcnQge2NyZWF0ZUFwcFN0b3JlfSBmcm9tICcuL3N0b3JlLm1qcyc7XG5pbXBvcnQge3J1bkluQWN0aW9ufSBmcm9tICdtb2J4JztcbmltcG9ydCB7XG4gICAgdmFsaWRhdGVQYXRoT3B0aW9ucyxcbiAgICB0eXBlIFRQYXRoVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tICcuL3ZhbGlkYXRlUGF0aHMubWpzJztcbmltcG9ydCB7VENvbm5lY3Rpb25Db25maWd9IGZyb20gJy4vdHlwZXMvY29ubmVjdGlvbi5tanMnO1xuaW1wb3J0IHtydW59IGZyb20gJy4vYXBwL2luZGV4Lm1qcyc7XG5pbXBvcnQge0NMSUVOVF9WRVJTSU9OfSBmcm9tICcuL2xpYi92ZXJzaW9uLm1qcyc7XG5pbXBvcnQge3Njb3BlfSBmcm9tICdzY29wZS11dGlsaXRpZXMnO1xuXG5leHBvcnQgdHlwZSBUU1NMTW9kZSA9XG4gICAgfCAnZGlzYWJsZSdcbiAgICB8ICdhbGxvdydcbiAgICB8ICdwcmVmZXInXG4gICAgfCAncmVxdWlyZSdcbiAgICB8ICd2ZXJpZnktY2EnXG4gICAgfCAndmVyaWZ5LWZ1bGwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRPcHRpb25zIHtcbiAgICBob3N0bmFtZT86IHN0cmluZztcbiAgICBwb3J0PzogbnVtYmVyO1xuICAgIGRhdGFiYXNlPzogc3RyaW5nO1xuICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgIHNzbG1vZGU/OiBUU1NMTW9kZTtcbiAgICBzc2xjZXJ0Pzogc3RyaW5nO1xuICAgIHNzbGtleT86IHN0cmluZztcbiAgICBzc2xyb290Y2VydD86IHN0cmluZztcbiAgICBzc2g/OiBzdHJpbmc7XG4gICAgc3NoSG9zdD86IHN0cmluZztcbiAgICBzc2hQb3J0PzogbnVtYmVyO1xuICAgIHNzaFVzZXJuYW1lPzogc3RyaW5nO1xuICAgIHNzaEtleT86IHN0cmluZztcbn1cblxuY29uc3QgcGFyc2VTU0hUYXJnZXQgPSAoXG4gICAgdGFyZ2V0OiBzdHJpbmcsXG4pOiB7XG4gICAgdXNlcm5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgcG9ydDogbnVtYmVyIHwgdW5kZWZpbmVkO1xufSA9PiB7XG4gICAgY29uc3QgYXRJbmRleCA9IHRhcmdldC5pbmRleE9mKCdAJyk7XG4gICAgY29uc3QgdXNlcm5hbWUgPSBhdEluZGV4ID49IDAgPyB0YXJnZXQuc2xpY2UoMCwgYXRJbmRleCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgaG9zdFBvcnQgPSBhdEluZGV4ID49IDAgPyB0YXJnZXQuc2xpY2UoYXRJbmRleCArIDEpIDogdGFyZ2V0O1xuICAgIGNvbnN0IGNvbG9uSW5kZXggPSBob3N0UG9ydC5sYXN0SW5kZXhPZignOicpO1xuICAgIGNvbnN0IGhvc3QgPSBjb2xvbkluZGV4ID49IDAgPyBob3N0UG9ydC5zbGljZSgwLCBjb2xvbkluZGV4KSA6IGhvc3RQb3J0O1xuICAgIGNvbnN0IHBvcnQgPVxuICAgICAgICBjb2xvbkluZGV4ID49IDBcbiAgICAgICAgICAgID8gcGFyc2VJbnQoaG9zdFBvcnQuc2xpY2UoY29sb25JbmRleCArIDEpLCAxMClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHt1c2VybmFtZSwgaG9zdCwgcG9ydH07XG59O1xuXG5jb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTtcblxucHJvZ3JhbVxuICAgIC5uYW1lKCdkYmN0eCcpXG4gICAgLnZlcnNpb24oQ0xJRU5UX1ZFUlNJT04pXG4gICAgLmhlbHBPcHRpb24oJy0taGVscCcsICdkaXNwbGF5IGhlbHAgZm9yIGNvbW1hbmQnKVxuICAgIC5hZGRIZWxwVGV4dCgnYmVmb3JlQWxsJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7dW5tb3VudH0gPSByZW5kZXIoY3JlYXRlRWxlbWVudChTcGxhc2gpKTtcbiAgICAgICAgdW5tb3VudCgpO1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfSk7XG5cbmNvbnN0IGdlbmVyYXRlID0gcHJvZ3JhbVxuICAgIC5jb21tYW5kKCdnZW5lcmF0ZScsIHtpc0RlZmF1bHQ6IHRydWV9KVxuICAgIC5kZXNjcmlwdGlvbignQ29ubmVjdCB0byBhIFBvc3RncmVTUUwgZGF0YWJhc2UgYW5kIGdlbmVyYXRlIGNvbnRleHQnKVxuICAgIC5oZWxwT3B0aW9uKCctLWhlbHAnLCAnZGlzcGxheSBoZWxwIGZvciBjb21tYW5kJylcbiAgICAuYXJndW1lbnQoXG4gICAgICAgICdbY29ubmVjdGlvbi1zdHJpbmddJyxcbiAgICAgICAgJ1Bvc3RncmVTUUwgY29ubmVjdGlvbiBzdHJpbmcgKGVudjogREFUQUJBU0VfVVJMKScsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctaCwgLS1ob3N0bmFtZSA8aG9zdD4nLFxuICAgICAgICAnZGF0YWJhc2UgaG9zdG5hbWUgKGVudjogUEdIT1NULCBkZWZhdWx0OiBsb2NhbGhvc3QpJyxcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgICAgJy1wLCAtLXBvcnQgPHBvcnQ+JyxcbiAgICAgICAgJ2RhdGFiYXNlIHBvcnQgKGVudjogUEdQT1JULCBkZWZhdWx0OiA1NDMyKScsXG4gICAgICAgIHBhcnNlSW50LFxuICAgIClcbiAgICAub3B0aW9uKFxuICAgICAgICAnLWQsIC0tZGF0YWJhc2UgPG5hbWU+JyxcbiAgICAgICAgJ2RhdGFiYXNlIG5hbWUgKGVudjogUEdEQVRBQkFTRSwgZGVmYXVsdDogcG9zdGdyZXMpJyxcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgICAgJy1VLCAtLXVzZXJuYW1lIDx1c2VyPicsXG4gICAgICAgICdkYXRhYmFzZSB1c2VybmFtZSAoZW52OiBQR1VTRVIsIGRlZmF1bHQ6IHBvc3RncmVzKScsXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctLXNzbG1vZGUgPG1vZGU+JyxcbiAgICAgICAgJ1NTTCBtb2RlOiBkaXNhYmxlfGFsbG93fHByZWZlcnxyZXF1aXJlfHZlcmlmeS1jYXx2ZXJpZnktZnVsbCAoZW52OiBQR1NTTE1PREUsIGRlZmF1bHQ6IHByZWZlciknLFxuICAgIClcbiAgICAub3B0aW9uKCctLXNzbGNlcnQgPHBhdGg+JywgJ3BhdGggdG8gY2xpZW50IGNlcnRpZmljYXRlIChlbnY6IFBHU1NMQ0VSVCknKVxuICAgIC5vcHRpb24oJy0tc3Nsa2V5IDxwYXRoPicsICdwYXRoIHRvIGNsaWVudCBwcml2YXRlIGtleSAoZW52OiBQR1NTTEtFWSknKVxuICAgIC5vcHRpb24oXG4gICAgICAgICctLXNzbHJvb3RjZXJ0IDxwYXRoPicsXG4gICAgICAgICdwYXRoIHRvIHJvb3QgQ0EgY2VydGlmaWNhdGUgKGVudjogUEdTU0xST09UQ0VSVCknLFxuICAgIClcbiAgICAub3B0aW9uKCctLXNzaCA8dGFyZ2V0PicsICdTU0ggdHVubmVsIHRhcmdldCAodXNlckBob3N0Wzpwb3J0XSknKVxuICAgIC5vcHRpb24oJy0tc3NoLWhvc3QgPGhvc3Q+JywgJ1NTSCB0dW5uZWwgaG9zdCAoYmFzdGlvbi9qdW1wIHNlcnZlciknKVxuICAgIC5vcHRpb24oJy0tc3NoLXBvcnQgPHBvcnQ+JywgJ1NTSCB0dW5uZWwgcG9ydCAoZGVmYXVsdDogMjIpJywgcGFyc2VJbnQpXG4gICAgLm9wdGlvbignLS1zc2gtdXNlcm5hbWUgPHVzZXI+JywgJ1NTSCB0dW5uZWwgdXNlcm5hbWUgKGRlZmF1bHQ6ICRVU0VSKScpXG4gICAgLm9wdGlvbihcbiAgICAgICAgJy1pLCAtLXNzaC1rZXkgPHBhdGg+JyxcbiAgICAgICAgJ3BhdGggdG8gU1NIIHByaXZhdGUga2V5IChkZWZhdWx0OiB+Ly5zc2gvaWRfcnNhKScsXG4gICAgKVxuICAgIC5hY3Rpb24oKGNvbm5lY3Rpb25TdHJpbmc6IHN0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9uczogVE9wdGlvbnMpID0+IHtcbiAgICAgICAgLy8gU2hvdyBoZWxwIGlmIG5vIGNvbm5lY3Rpb24gY29uZmlnIGlzIHByb3ZpZGVkXG4gICAgICAgIGNvbnN0IGhhc0NMSUNvbmZpZyA9XG4gICAgICAgICAgICBjb25uZWN0aW9uU3RyaW5nICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIG9wdGlvbnMuaG9zdG5hbWUgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgb3B0aW9ucy5wb3J0ICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIG9wdGlvbnMuZGF0YWJhc2UgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgb3B0aW9ucy51c2VybmFtZSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IGhhc0VudkNvbmZpZyA9IFtcbiAgICAgICAgICAgICdQR0hPU1QnLFxuICAgICAgICAgICAgJ1BHUE9SVCcsXG4gICAgICAgICAgICAnUEdEQVRBQkFTRScsXG4gICAgICAgICAgICAnUEdVU0VSJyxcbiAgICAgICAgICAgICdQR1BBU1NXT1JEJyxcbiAgICAgICAgICAgICdEQVRBQkFTRV9VUkwnLFxuICAgICAgICBdLnNvbWUoKGtleSkgPT4gcHJvY2Vzcy5lbnZba2V5XSAhPT0gdW5kZWZpbmVkKTtcblxuICAgICAgICBpZiAoIWhhc0NMSUNvbmZpZyAmJiAhaGFzRW52Q29uZmlnKSB7XG4gICAgICAgICAgICBnZW5lcmF0ZS5oZWxwKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWxpZGF0ZSBjb25uZWN0aW9uIHN0cmluZ3MgYXJlIFBvc3RncmVTUUwgVVJMc1xuICAgICAgICBjb25zdCBlZmZlY3RpdmVDb25uZWN0aW9uU3RyaW5nID1cbiAgICAgICAgICAgIGNvbm5lY3Rpb25TdHJpbmcgPz8gcHJvY2Vzcy5lbnZbJ0RBVEFCQVNFX1VSTCddO1xuXG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25TdHJpbmdFcnJvciA9IHNjb3BlKGVmZmVjdGl2ZUNvbm5lY3Rpb25TdHJpbmcpXG4gICAgICAgICAgICAubGV0KChzdHIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFVUkwuY2FuUGFyc2Uoc3RyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYE1hbGZvcm1lZCBjb25uZWN0aW9uIHN0cmluZyBcIiR7c3RyfVwiOiBub3QgYSB2YWxpZCBVUkxgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHtwcm90b2NvbH0gPSBuZXcgVVJMKHN0cik7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBwcm90b2NvbCAhPT0gJ3Bvc3RncmVzOicgJiZcbiAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2wgIT09ICdwb3N0Z3Jlc3FsOidcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBJbnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIFwiJHtzdHJ9XCI6IGV4cGVjdGVkIHBvc3RncmVzOi8vIG9yIHBvc3RncmVzcWw6Ly9gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC52YWx1ZSgpO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHBhdGggb3B0aW9ucyBleGlzdCBvbiBmaWxlc3lzdGVtXG4gICAgICAgIGNvbnN0IHtlcnJvcnM6IHBhdGhFcnJvcnMsIGV4cGFuZGVkUGF0aHN9ID1cbiAgICAgICAgICAgIHZhbGlkYXRlUGF0aE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHBhdGhFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IHBhdGhFcnJvcnNcbiAgICAgICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAgICAgICAoe29wdGlvbiwgcGF0aH06IFRQYXRoVmFsaWRhdGlvbkVycm9yKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHtvcHRpb259OiAke3BhdGh9YCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmpvaW4oJ1xcbicpO1xuXG4gICAgICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICAgICAgRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVGhlIGZvbGxvd2luZyBwYXRocyBkbyBub3QgZXhpc3Q6XFxuJHtlcnJvck1lc3NhZ2VzfWAsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXBsYWNlIG9yaWdpbmFsIHBhdGhzIHdpdGggZXhwYW5kZWQgcGF0aHNcbiAgICAgICAgLy8gKH4gcmVzb2x2ZWQgdG8gaG9tZSBkaXJlY3RvcnkpXG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZE9wdGlvbnM6IFRPcHRpb25zID0ge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIC4uLmV4cGFuZGVkUGF0aHMsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQnVpbGQgY29uZmlnIGFuZCByZW5kZXIgdGhlIGFwcFxuICAgICAgICBjb25zdCBzc2hEZWZhdWx0cyA9IHZhbGlkYXRlZE9wdGlvbnMuc3NoXG4gICAgICAgICAgICA/IHBhcnNlU1NIVGFyZ2V0KHZhbGlkYXRlZE9wdGlvbnMuc3NoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgY29uZmlnOiBUQ29ubmVjdGlvbkNvbmZpZyA9IHtcbiAgICAgICAgICAgIGNvbm5lY3Rpb25TdHJpbmc6IGVmZmVjdGl2ZUNvbm5lY3Rpb25TdHJpbmcsXG4gICAgICAgICAgICAuLi52YWxpZGF0ZWRPcHRpb25zLFxuICAgICAgICAgICAgc3NoSG9zdDogdmFsaWRhdGVkT3B0aW9ucy5zc2hIb3N0ID8/IHNzaERlZmF1bHRzPy5ob3N0LFxuICAgICAgICAgICAgc3NoUG9ydDogdmFsaWRhdGVkT3B0aW9ucy5zc2hQb3J0ID8/IHNzaERlZmF1bHRzPy5wb3J0LFxuICAgICAgICAgICAgc3NoVXNlcm5hbWU6IHZhbGlkYXRlZE9wdGlvbnMuc3NoVXNlcm5hbWUgPz8gc3NoRGVmYXVsdHM/LnVzZXJuYW1lLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHN0b3JlID0gY3JlYXRlQXBwU3RvcmUoY29uZmlnKTtcblxuICAgICAgICByZW5kZXIoY3JlYXRlRWxlbWVudChBcHAsIHtzdG9yZX0pKTtcblxuICAgICAgICBpZiAoY29ubmVjdGlvblN0cmluZ0Vycm9yKSB7XG4gICAgICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RvcmUuc3RlcHMuZGF0YWJhc2VDb25uZWN0aW9uLnN0YXRlID0gJ2Vycm9yJztcbiAgICAgICAgICAgICAgICBzdG9yZS5zdGVwcy5kYXRhYmFzZUNvbm5lY3Rpb24uZXJyb3IgPSBjb25uZWN0aW9uU3RyaW5nRXJyb3I7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bihzdG9yZSk7XG4gICAgfSk7XG5cbnByb2dyYW0ucGFyc2UoKTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trpc-url.d.mts","sourceRoot":"./src/","sources":["lib/trpc-url.mts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,QAAO,MAGoB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const PROD_CORE = 'https://core.dbctx.io';
|
|
2
|
+
const DEV_CORE_PORT = 12001;
|
|
3
|
+
export const getTRPCURL = () => process.env.NODE_ENV === 'production'
|
|
4
|
+
? `${PROD_CORE}/trpc`
|
|
5
|
+
: `http://localhost:${DEV_CORE_PORT}/trpc`;
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJwYy11cmwubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsibGliL3RycGMtdXJsLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQztBQUMxQyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUM7QUFFNUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQVcsRUFBRSxDQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxZQUFZO0lBQ2pDLENBQUMsQ0FBQyxHQUFHLFNBQVMsT0FBTztJQUNyQixDQUFDLENBQUMsb0JBQW9CLGFBQWEsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgUFJPRF9DT1JFID0gJ2h0dHBzOi8vY29yZS5kYmN0eC5pbyc7XG5jb25zdCBERVZfQ09SRV9QT1JUID0gMTIwMDE7XG5cbmV4cG9ydCBjb25zdCBnZXRUUlBDVVJMID0gKCk6IHN0cmluZyA9PlxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbidcbiAgICAgICAgPyBgJHtQUk9EX0NPUkV9L3RycGNgXG4gICAgICAgIDogYGh0dHA6Ly9sb2NhbGhvc3Q6JHtERVZfQ09SRV9QT1JUfS90cnBjYDtcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TRPCClient } from '@trpc/client';
|
|
2
|
+
import type { TAppRouter } from '@dbctx/core';
|
|
3
|
+
type TGetToken = () => Promise<string | null>;
|
|
4
|
+
export declare const trpc: TRPCClient<TAppRouter>;
|
|
5
|
+
export declare const createAuthenticatedTRPCClient: (getToken: TGetToken) => TRPCClient<TAppRouter>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=trpc.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trpc.d.mts","sourceRoot":"./src/","sources":["lib/trpc.mts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAI5C,KAAK,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAgC9C,eAAO,MAAM,IAAI,EAAE,UAAU,CAAC,UAAU,CAEtC,CAAC;AAEH,eAAO,MAAM,6BAA6B,GACtC,UAAU,SAAS,KACpB,UAAU,CAAC,UAAU,CAGlB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createTRPCClient, httpBatchLink, splitLink, httpSubscriptionLink, } from '@trpc/client';
|
|
2
|
+
import { EventSource } from 'eventsource';
|
|
3
|
+
import { getTRPCURL } from '#client/lib/trpc-url.mjs';
|
|
4
|
+
const createLinks = (getToken) => {
|
|
5
|
+
const headers = getToken
|
|
6
|
+
? async () => {
|
|
7
|
+
const token = await getToken();
|
|
8
|
+
return token ? { Authorization: `Bearer ${token}` } : {};
|
|
9
|
+
}
|
|
10
|
+
: undefined;
|
|
11
|
+
return [
|
|
12
|
+
splitLink({
|
|
13
|
+
condition: (op) => op.type === 'subscription',
|
|
14
|
+
true: httpSubscriptionLink({
|
|
15
|
+
url: getTRPCURL(),
|
|
16
|
+
EventSource: EventSource,
|
|
17
|
+
connectionParams: getToken
|
|
18
|
+
? async () => {
|
|
19
|
+
const token = await getToken();
|
|
20
|
+
return token ? { token } : {};
|
|
21
|
+
}
|
|
22
|
+
: undefined,
|
|
23
|
+
}),
|
|
24
|
+
false: httpBatchLink({
|
|
25
|
+
url: getTRPCURL(),
|
|
26
|
+
headers,
|
|
27
|
+
}),
|
|
28
|
+
}),
|
|
29
|
+
];
|
|
30
|
+
};
|
|
31
|
+
export const trpc = createTRPCClient({
|
|
32
|
+
links: createLinks(),
|
|
33
|
+
});
|
|
34
|
+
export const createAuthenticatedTRPCClient = (getToken) => createTRPCClient({
|
|
35
|
+
links: createLinks(getToken),
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJwYy5tanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJwYy5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsU0FBUyxFQUNULG9CQUFvQixHQUN2QixNQUFNLGNBQWMsQ0FBQztBQUd0QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUlwRCxNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQW9CLEVBQUUsRUFBRTtJQUN6QyxNQUFNLE9BQU8sR0FBRyxRQUFRO1FBQ3BCLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNQLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsYUFBYSxFQUFFLFVBQVUsS0FBSyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNELENBQUM7UUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWhCLE9BQU87UUFDSCxTQUFTLENBQUM7WUFDTixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYztZQUM3QyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7Z0JBQ3ZCLEdBQUcsRUFBRSxVQUFVLEVBQUU7Z0JBQ2pCLFdBQVcsRUFDUCxXQUF1RDtnQkFDM0QsZ0JBQWdCLEVBQUUsUUFBUTtvQkFDdEIsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO3dCQUNQLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxFQUFFLENBQUM7d0JBQy9CLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2hDLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDbEIsQ0FBQztZQUNGLEtBQUssRUFBRSxhQUFhLENBQUM7Z0JBQ2pCLEdBQUcsRUFBRSxVQUFVLEVBQUU7Z0JBQ2pCLE9BQU87YUFDVixDQUFDO1NBQ0wsQ0FBQztLQUNMLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQTJCLGdCQUFnQixDQUFhO0lBQ3JFLEtBQUssRUFBRSxXQUFXLEVBQUU7Q0FDdkIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FDekMsUUFBbUIsRUFDRyxFQUFFLENBQ3hCLGdCQUFnQixDQUFhO0lBQ3pCLEtBQUssRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDO0NBQy9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgY3JlYXRlVFJQQ0NsaWVudCxcbiAgICBodHRwQmF0Y2hMaW5rLFxuICAgIHNwbGl0TGluayxcbiAgICBodHRwU3Vic2NyaXB0aW9uTGluayxcbn0gZnJvbSAnQHRycGMvY2xpZW50JztcbmltcG9ydCB0eXBlIHtUUlBDQ2xpZW50fSBmcm9tICdAdHJwYy9jbGllbnQnO1xuaW1wb3J0IHR5cGUge1RBcHBSb3V0ZXJ9IGZyb20gJ0BkYmN0eC9jb3JlJztcbmltcG9ydCB7RXZlbnRTb3VyY2V9IGZyb20gJ2V2ZW50c291cmNlJztcbmltcG9ydCB7Z2V0VFJQQ1VSTH0gZnJvbSAnI2NsaWVudC9saWIvdHJwYy11cmwubWpzJztcblxudHlwZSBUR2V0VG9rZW4gPSAoKSA9PiBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xuXG5jb25zdCBjcmVhdGVMaW5rcyA9IChnZXRUb2tlbj86IFRHZXRUb2tlbikgPT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRUb2tlblxuICAgICAgICA/IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRUb2tlbigpO1xuICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPyB7QXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWB9IDoge307XG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBbXG4gICAgICAgIHNwbGl0TGluayh7XG4gICAgICAgICAgICBjb25kaXRpb246IChvcCkgPT4gb3AudHlwZSA9PT0gJ3N1YnNjcmlwdGlvbicsXG4gICAgICAgICAgICB0cnVlOiBodHRwU3Vic2NyaXB0aW9uTGluayh7XG4gICAgICAgICAgICAgICAgdXJsOiBnZXRUUlBDVVJMKCksXG4gICAgICAgICAgICAgICAgRXZlbnRTb3VyY2U6XG4gICAgICAgICAgICAgICAgICAgIEV2ZW50U291cmNlIGFzIHVua25vd24gYXMgdHlwZW9mIGdsb2JhbFRoaXMuRXZlbnRTb3VyY2UsXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvblBhcmFtczogZ2V0VG9rZW5cbiAgICAgICAgICAgICAgICAgICAgPyBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0VG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID8ge3Rva2VufSA6IHt9O1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZhbHNlOiBodHRwQmF0Y2hMaW5rKHtcbiAgICAgICAgICAgICAgICB1cmw6IGdldFRSUENVUkwoKSxcbiAgICAgICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pLFxuICAgIF07XG59O1xuXG5leHBvcnQgY29uc3QgdHJwYzogVFJQQ0NsaWVudDxUQXBwUm91dGVyPiA9IGNyZWF0ZVRSUENDbGllbnQ8VEFwcFJvdXRlcj4oe1xuICAgIGxpbmtzOiBjcmVhdGVMaW5rcygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBdXRoZW50aWNhdGVkVFJQQ0NsaWVudCA9IChcbiAgICBnZXRUb2tlbjogVEdldFRva2VuLFxuKTogVFJQQ0NsaWVudDxUQXBwUm91dGVyPiA9PlxuICAgIGNyZWF0ZVRSUENDbGllbnQ8VEFwcFJvdXRlcj4oe1xuICAgICAgICBsaW5rczogY3JlYXRlTGlua3MoZ2V0VG9rZW4pLFxuICAgIH0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trpc.react.d.mts","sourceRoot":"./src/","sources":["lib/trpc.react.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,UAAU,EAAE,OAAO,CAC1B,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { createTRPCReact } from '@trpc/react-query';
|
|
2
|
+
export const trpcReact = createTRPCReact();
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJwYy5yZWFjdC5tanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJwYy5yZWFjdC5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSWxELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FDbEIsZUFBZSxFQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZVRSUENSZWFjdH0gZnJvbSAnQHRycGMvcmVhY3QtcXVlcnknO1xuaW1wb3J0IHR5cGUge0NyZWF0ZVRSUENSZWFjdH0gZnJvbSAnQHRycGMvcmVhY3QtcXVlcnknO1xuaW1wb3J0IHR5cGUge1RBcHBSb3V0ZXJ9IGZyb20gJ0BkYmN0eC9jb3JlJztcblxuZXhwb3J0IGNvbnN0IHRycGNSZWFjdDogQ3JlYXRlVFJQQ1JlYWN0PFRBcHBSb3V0ZXIsIHVua25vd24+ID1cbiAgICBjcmVhdGVUUlBDUmVhY3Q8VEFwcFJvdXRlcj4oKTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.mts","sourceRoot":"./src/","sources":["lib/version.mts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,EAAE,MAAoB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
const require = createRequire(import.meta.url);
|
|
3
|
+
const pkg = require('../../package.json');
|
|
4
|
+
export const CLIENT_VERSION = pkg.version;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5tanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJsaWIvdmVyc2lvbi5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUUxQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQXNCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZVJlcXVpcmV9IGZyb20gJ25vZGU6bW9kdWxlJztcblxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IHBrZyA9IHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpIGFzIHt2ZXJzaW9uOiBzdHJpbmd9O1xuXG5leHBvcnQgY29uc3QgQ0xJRU5UX1ZFUlNJT046IHN0cmluZyA9IHBrZy52ZXJzaW9uO1xuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type TGetToken = () => Promise<string | null>;
|
|
3
|
+
type TTRPCProviderProps = {
|
|
4
|
+
readonly children: React.ReactNode;
|
|
5
|
+
readonly getToken?: TGetToken;
|
|
6
|
+
};
|
|
7
|
+
export declare const TRPCProvider: ({ children, getToken }: TTRPCProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=TrpcProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrpcProvider.d.ts","sourceRoot":"./src/","sources":["providers/TrpcProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,KAAK,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE9C,KAAK,kBAAkB,GAAG;IACtB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACjC,CAAC;AAmCF,eAAO,MAAM,YAAY,GAAI,wBAAsB,kBAAkB,4CAUpE,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
4
|
+
import { httpBatchLink, splitLink, httpSubscriptionLink } from '@trpc/client';
|
|
5
|
+
import { EventSource } from 'eventsource';
|
|
6
|
+
import { trpcReact } from '#client/lib/trpc.react.mjs';
|
|
7
|
+
import { getTRPCURL } from '#client/lib/trpc-url.mjs';
|
|
8
|
+
const queryClient = new QueryClient();
|
|
9
|
+
const createTRPCClient = (getToken) => trpcReact.createClient({
|
|
10
|
+
links: [
|
|
11
|
+
splitLink({
|
|
12
|
+
condition: (op) => op.type === 'subscription',
|
|
13
|
+
true: httpSubscriptionLink({
|
|
14
|
+
url: getTRPCURL(),
|
|
15
|
+
EventSource: EventSource,
|
|
16
|
+
connectionParams: getToken
|
|
17
|
+
? async () => {
|
|
18
|
+
const token = await getToken();
|
|
19
|
+
return token ? { token } : {};
|
|
20
|
+
}
|
|
21
|
+
: undefined,
|
|
22
|
+
}),
|
|
23
|
+
false: httpBatchLink({
|
|
24
|
+
url: getTRPCURL(),
|
|
25
|
+
headers: getToken
|
|
26
|
+
? async () => {
|
|
27
|
+
const token = await getToken();
|
|
28
|
+
return token
|
|
29
|
+
? { Authorization: `Bearer ${token}` }
|
|
30
|
+
: {};
|
|
31
|
+
}
|
|
32
|
+
: undefined,
|
|
33
|
+
}),
|
|
34
|
+
}),
|
|
35
|
+
],
|
|
36
|
+
});
|
|
37
|
+
export const TRPCProvider = ({ children, getToken }) => {
|
|
38
|
+
const [trpcClient] = React.useState(() => createTRPCClient(getToken));
|
|
39
|
+
return (_jsx(trpcReact.Provider, { client: trpcClient, queryClient: queryClient, children: _jsx(QueryClientProvider, { client: queryClient, children: children }) }));
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJwY1Byb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsicHJvdmlkZXJzL1RycGNQcm92aWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBU3BELE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7QUFFdEMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQW9CLEVBQUUsRUFBRSxDQUM5QyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ25CLEtBQUssRUFBRTtRQUNILFNBQVMsQ0FBQztZQUNOLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjO1lBQzdDLElBQUksRUFBRSxvQkFBb0IsQ0FBQztnQkFDdkIsR0FBRyxFQUFFLFVBQVUsRUFBRTtnQkFDakIsV0FBVyxFQUNQLFdBQXVEO2dCQUMzRCxnQkFBZ0IsRUFBRSxRQUFRO29CQUN0QixDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7d0JBQ1AsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQzt3QkFDL0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDaEMsQ0FBQztvQkFDSCxDQUFDLENBQUMsU0FBUzthQUNsQixDQUFDO1lBQ0YsS0FBSyxFQUFFLGFBQWEsQ0FBQztnQkFDakIsR0FBRyxFQUFFLFVBQVUsRUFBRTtnQkFDakIsT0FBTyxFQUFFLFFBQVE7b0JBQ2IsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO3dCQUNQLE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxFQUFFLENBQUM7d0JBQy9CLE9BQU8sS0FBSzs0QkFDUixDQUFDLENBQUMsRUFBQyxhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUUsRUFBQzs0QkFDcEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDYixDQUFDO29CQUNILENBQUMsQ0FBQyxTQUFTO2FBQ2xCLENBQUM7U0FDTCxDQUFDO0tBQ0w7Q0FDSixDQUFDLENBQUM7QUFFUCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQXFCLEVBQUUsRUFBRTtJQUNyRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRXRFLE9BQU8sQ0FDSCxLQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsV0FBVyxZQUM1RCxLQUFDLG1CQUFtQixJQUFDLE1BQU0sRUFBRSxXQUFXLFlBQ25DLFFBQVEsR0FDUyxHQUNMLENBQ3hCLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtRdWVyeUNsaWVudCwgUXVlcnlDbGllbnRQcm92aWRlcn0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7aHR0cEJhdGNoTGluaywgc3BsaXRMaW5rLCBodHRwU3Vic2NyaXB0aW9uTGlua30gZnJvbSAnQHRycGMvY2xpZW50JztcbmltcG9ydCB7RXZlbnRTb3VyY2V9IGZyb20gJ2V2ZW50c291cmNlJztcbmltcG9ydCB7dHJwY1JlYWN0fSBmcm9tICcjY2xpZW50L2xpYi90cnBjLnJlYWN0Lm1qcyc7XG5pbXBvcnQge2dldFRSUENVUkx9IGZyb20gJyNjbGllbnQvbGliL3RycGMtdXJsLm1qcyc7XG5cbnR5cGUgVEdldFRva2VuID0gKCkgPT4gUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcblxudHlwZSBUVFJQQ1Byb3ZpZGVyUHJvcHMgPSB7XG4gICAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICByZWFkb25seSBnZXRUb2tlbj86IFRHZXRUb2tlbjtcbn07XG5cbmNvbnN0IHF1ZXJ5Q2xpZW50ID0gbmV3IFF1ZXJ5Q2xpZW50KCk7XG5cbmNvbnN0IGNyZWF0ZVRSUENDbGllbnQgPSAoZ2V0VG9rZW4/OiBUR2V0VG9rZW4pID0+XG4gICAgdHJwY1JlYWN0LmNyZWF0ZUNsaWVudCh7XG4gICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICBzcGxpdExpbmsoe1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogKG9wKSA9PiBvcC50eXBlID09PSAnc3Vic2NyaXB0aW9uJyxcbiAgICAgICAgICAgICAgICB0cnVlOiBodHRwU3Vic2NyaXB0aW9uTGluayh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogZ2V0VFJQQ1VSTCgpLFxuICAgICAgICAgICAgICAgICAgICBFdmVudFNvdXJjZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50U291cmNlIGFzIHVua25vd24gYXMgdHlwZW9mIGdsb2JhbFRoaXMuRXZlbnRTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25QYXJhbXM6IGdldFRva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0VG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA/IHt0b2tlbn0gOiB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmFsc2U6IGh0dHBCYXRjaExpbmsoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IGdldFRSUENVUkwoKSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogZ2V0VG9rZW5cbiAgICAgICAgICAgICAgICAgICAgICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7QXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICB9KTtcblxuZXhwb3J0IGNvbnN0IFRSUENQcm92aWRlciA9ICh7Y2hpbGRyZW4sIGdldFRva2VufTogVFRSUENQcm92aWRlclByb3BzKSA9PiB7XG4gICAgY29uc3QgW3RycGNDbGllbnRdID0gUmVhY3QudXNlU3RhdGUoKCkgPT4gY3JlYXRlVFJQQ0NsaWVudChnZXRUb2tlbikpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPHRycGNSZWFjdC5Qcm92aWRlciBjbGllbnQ9e3RycGNDbGllbnR9IHF1ZXJ5Q2xpZW50PXtxdWVyeUNsaWVudH0+XG4gICAgICAgICAgICA8UXVlcnlDbGllbnRQcm92aWRlciBjbGllbnQ9e3F1ZXJ5Q2xpZW50fT5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L1F1ZXJ5Q2xpZW50UHJvdmlkZXI+XG4gICAgICAgIDwvdHJwY1JlYWN0LlByb3ZpZGVyPlxuICAgICk7XG59O1xuIl19
|