dbctx 2.0.1 → 2.1.1

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.
Files changed (220) hide show
  1. package/dist/index.mjs +6727 -282
  2. package/package.json +12 -9
  3. package/dist/app/assemble.d.mts +0 -5
  4. package/dist/app/assemble.d.mts.map +0 -1
  5. package/dist/app/assemble.mjs +0 -182
  6. package/dist/app/config.d.mts +0 -9
  7. package/dist/app/config.d.mts.map +0 -1
  8. package/dist/app/config.mjs +0 -49
  9. package/dist/app/db.d.mts +0 -9
  10. package/dist/app/db.d.mts.map +0 -1
  11. package/dist/app/db.mjs +0 -182
  12. package/dist/app/detect.d.mts +0 -14
  13. package/dist/app/detect.d.mts.map +0 -1
  14. package/dist/app/detect.mjs +0 -108
  15. package/dist/app/list.d.mts +0 -4
  16. package/dist/app/list.d.mts.map +0 -1
  17. package/dist/app/list.mjs +0 -93
  18. package/dist/app/load-introspection.d.mts +0 -26
  19. package/dist/app/load-introspection.d.mts.map +0 -1
  20. package/dist/app/load-introspection.mjs +0 -89
  21. package/dist/app/login.d.mts +0 -2
  22. package/dist/app/login.d.mts.map +0 -1
  23. package/dist/app/login.mjs +0 -69
  24. package/dist/app/open-url.d.mts +0 -6
  25. package/dist/app/open-url.d.mts.map +0 -1
  26. package/dist/app/open-url.mjs +0 -33
  27. package/dist/app/sample.d.mts +0 -24
  28. package/dist/app/sample.d.mts.map +0 -1
  29. package/dist/app/sample.mjs +0 -257
  30. package/dist/app/session.d.mts +0 -9
  31. package/dist/app/session.d.mts.map +0 -1
  32. package/dist/app/session.mjs +0 -195
  33. package/dist/app/ssh.d.mts +0 -3
  34. package/dist/app/ssh.d.mts.map +0 -1
  35. package/dist/app/ssh.mjs +0 -218
  36. package/dist/app/tail.d.mts +0 -13
  37. package/dist/app/tail.d.mts.map +0 -1
  38. package/dist/app/tail.mjs +0 -168
  39. package/dist/db/analyze.d.mts +0 -3
  40. package/dist/db/analyze.d.mts.map +0 -1
  41. package/dist/db/analyze.mjs +0 -16
  42. package/dist/db/attributes.d.mts +0 -16
  43. package/dist/db/attributes.d.mts.map +0 -1
  44. package/dist/db/attributes.mjs +0 -37
  45. package/dist/db/check-constraints.d.mts +0 -9
  46. package/dist/db/check-constraints.d.mts.map +0 -1
  47. package/dist/db/check-constraints.mjs +0 -17
  48. package/dist/db/custom-types.d.mts +0 -26
  49. package/dist/db/custom-types.d.mts.map +0 -1
  50. package/dist/db/custom-types.mjs +0 -61
  51. package/dist/db/enums.d.mts +0 -8
  52. package/dist/db/enums.d.mts.map +0 -1
  53. package/dist/db/enums.mjs +0 -24
  54. package/dist/db/extensions.d.mts +0 -8
  55. package/dist/db/extensions.d.mts.map +0 -1
  56. package/dist/db/extensions.mjs +0 -14
  57. package/dist/db/file-stats.d.mts +0 -11
  58. package/dist/db/file-stats.d.mts.map +0 -1
  59. package/dist/db/file-stats.mjs +0 -43
  60. package/dist/db/foreign-keys.d.mts +0 -14
  61. package/dist/db/foreign-keys.d.mts.map +0 -1
  62. package/dist/db/foreign-keys.mjs +0 -44
  63. package/dist/db/functions.d.mts +0 -11
  64. package/dist/db/functions.d.mts.map +0 -1
  65. package/dist/db/functions.mjs +0 -23
  66. package/dist/db/index.d.mts +0 -19
  67. package/dist/db/index.d.mts.map +0 -1
  68. package/dist/db/index.mjs +0 -19
  69. package/dist/db/indexes.d.mts +0 -16
  70. package/dist/db/indexes.d.mts.map +0 -1
  71. package/dist/db/indexes.mjs +0 -38
  72. package/dist/db/planner-stats.d.mts +0 -33
  73. package/dist/db/planner-stats.d.mts.map +0 -1
  74. package/dist/db/planner-stats.mjs +0 -103
  75. package/dist/db/relations.d.mts +0 -11
  76. package/dist/db/relations.d.mts.map +0 -1
  77. package/dist/db/relations.mjs +0 -32
  78. package/dist/db/rls.d.mts +0 -21
  79. package/dist/db/rls.d.mts.map +0 -1
  80. package/dist/db/rls.mjs +0 -48
  81. package/dist/db/sample.d.mts +0 -16
  82. package/dist/db/sample.d.mts.map +0 -1
  83. package/dist/db/sample.mjs +0 -73
  84. package/dist/db/sequences.d.mts +0 -15
  85. package/dist/db/sequences.d.mts.map +0 -1
  86. package/dist/db/sequences.mjs +0 -31
  87. package/dist/db/stats.d.mts +0 -12
  88. package/dist/db/stats.d.mts.map +0 -1
  89. package/dist/db/stats.mjs +0 -34
  90. package/dist/db/triggers.d.mts +0 -11
  91. package/dist/db/triggers.d.mts.map +0 -1
  92. package/dist/db/triggers.mjs +0 -21
  93. package/dist/db/version.d.mts +0 -14
  94. package/dist/db/version.d.mts.map +0 -1
  95. package/dist/db/version.mjs +0 -27
  96. package/dist/flow/events.d.mts +0 -115
  97. package/dist/flow/events.d.mts.map +0 -1
  98. package/dist/flow/events.mjs +0 -2
  99. package/dist/flow/interpreter.d.mts +0 -21
  100. package/dist/flow/interpreter.d.mts.map +0 -1
  101. package/dist/flow/interpreter.mjs +0 -605
  102. package/dist/flow/projection.d.mts +0 -17
  103. package/dist/flow/projection.d.mts.map +0 -1
  104. package/dist/flow/projection.mjs +0 -83
  105. package/dist/flow/projection.test.d.mts +0 -2
  106. package/dist/flow/projection.test.d.mts.map +0 -1
  107. package/dist/flow/projection.test.mjs +0 -162
  108. package/dist/flow/reducer.d.mts +0 -5
  109. package/dist/flow/reducer.d.mts.map +0 -1
  110. package/dist/flow/reducer.mjs +0 -306
  111. package/dist/flow/reducer.test.d.mts +0 -2
  112. package/dist/flow/reducer.test.d.mts.map +0 -1
  113. package/dist/flow/reducer.test.mjs +0 -479
  114. package/dist/flow/run.d.mts +0 -3
  115. package/dist/flow/run.d.mts.map +0 -1
  116. package/dist/flow/run.mjs +0 -89
  117. package/dist/flow/states.d.mts +0 -54
  118. package/dist/flow/states.d.mts.map +0 -1
  119. package/dist/flow/states.mjs +0 -39
  120. package/dist/index.d.mts +0 -29
  121. package/dist/index.d.mts.map +0 -1
  122. package/dist/lib/atomic-write.d.mts +0 -4
  123. package/dist/lib/atomic-write.d.mts.map +0 -1
  124. package/dist/lib/atomic-write.mjs +0 -75
  125. package/dist/lib/env.d.mts +0 -2
  126. package/dist/lib/env.d.mts.map +0 -1
  127. package/dist/lib/env.mjs +0 -4
  128. package/dist/lib/stream-job.d.mts +0 -19
  129. package/dist/lib/stream-job.d.mts.map +0 -1
  130. package/dist/lib/stream-job.mjs +0 -55
  131. package/dist/lib/trpc-url.d.mts +0 -2
  132. package/dist/lib/trpc-url.d.mts.map +0 -1
  133. package/dist/lib/trpc-url.mjs +0 -5
  134. package/dist/lib/trpc.d.mts +0 -7
  135. package/dist/lib/trpc.d.mts.map +0 -1
  136. package/dist/lib/trpc.mjs +0 -37
  137. package/dist/lib/trpc.react.d.mts +0 -4
  138. package/dist/lib/trpc.react.d.mts.map +0 -1
  139. package/dist/lib/trpc.react.mjs +0 -3
  140. package/dist/lib/version.d.mts +0 -2
  141. package/dist/lib/version.d.mts.map +0 -1
  142. package/dist/lib/version.mjs +0 -5
  143. package/dist/logger.d.mts +0 -3
  144. package/dist/logger.d.mts.map +0 -1
  145. package/dist/logger.mjs +0 -11
  146. package/dist/providers/TrpcProvider.d.ts +0 -9
  147. package/dist/providers/TrpcProvider.d.ts.map +0 -1
  148. package/dist/providers/TrpcProvider.js +0 -41
  149. package/dist/store.d.mts +0 -176
  150. package/dist/store.d.mts.map +0 -1
  151. package/dist/store.mjs +0 -147
  152. package/dist/types/connection.d.mts +0 -17
  153. package/dist/types/connection.d.mts.map +0 -1
  154. package/dist/types/connection.mjs +0 -2
  155. package/dist/ui/App.d.ts +0 -10
  156. package/dist/ui/App.d.ts.map +0 -1
  157. package/dist/ui/App.js +0 -41
  158. package/dist/ui/components/Analyze.d.ts +0 -10
  159. package/dist/ui/components/Analyze.d.ts.map +0 -1
  160. package/dist/ui/components/Analyze.js +0 -54
  161. package/dist/ui/components/Billing.d.ts +0 -10
  162. package/dist/ui/components/Billing.d.ts.map +0 -1
  163. package/dist/ui/components/Billing.js +0 -40
  164. package/dist/ui/components/DB.d.ts +0 -10
  165. package/dist/ui/components/DB.d.ts.map +0 -1
  166. package/dist/ui/components/DB.js +0 -22
  167. package/dist/ui/components/DatabasePicker.d.ts +0 -13
  168. package/dist/ui/components/DatabasePicker.d.ts.map +0 -1
  169. package/dist/ui/components/DatabasePicker.js +0 -79
  170. package/dist/ui/components/Enrich.d.ts +0 -10
  171. package/dist/ui/components/Enrich.d.ts.map +0 -1
  172. package/dist/ui/components/Enrich.js +0 -41
  173. package/dist/ui/components/Error.d.ts +0 -7
  174. package/dist/ui/components/Error.d.ts.map +0 -1
  175. package/dist/ui/components/Error.js +0 -6
  176. package/dist/ui/components/Gate.d.ts +0 -10
  177. package/dist/ui/components/Gate.d.ts.map +0 -1
  178. package/dist/ui/components/Gate.js +0 -15
  179. package/dist/ui/components/Introspect.d.ts +0 -10
  180. package/dist/ui/components/Introspect.d.ts.map +0 -1
  181. package/dist/ui/components/Introspect.js +0 -66
  182. package/dist/ui/components/IntrospectionUpload.d.ts +0 -10
  183. package/dist/ui/components/IntrospectionUpload.d.ts.map +0 -1
  184. package/dist/ui/components/IntrospectionUpload.js +0 -30
  185. package/dist/ui/components/Login.d.ts +0 -19
  186. package/dist/ui/components/Login.d.ts.map +0 -1
  187. package/dist/ui/components/Login.js +0 -38
  188. package/dist/ui/components/OutputJson.d.ts +0 -10
  189. package/dist/ui/components/OutputJson.d.ts.map +0 -1
  190. package/dist/ui/components/OutputJson.js +0 -18
  191. package/dist/ui/components/PasswordInput.d.ts +0 -7
  192. package/dist/ui/components/PasswordInput.d.ts.map +0 -1
  193. package/dist/ui/components/PasswordInput.js +0 -32
  194. package/dist/ui/components/SSH.d.ts +0 -10
  195. package/dist/ui/components/SSH.d.ts.map +0 -1
  196. package/dist/ui/components/SSH.js +0 -22
  197. package/dist/ui/components/SamplesUpload.d.ts +0 -10
  198. package/dist/ui/components/SamplesUpload.d.ts.map +0 -1
  199. package/dist/ui/components/SamplesUpload.js +0 -24
  200. package/dist/ui/components/Sampling.d.ts +0 -10
  201. package/dist/ui/components/Sampling.d.ts.map +0 -1
  202. package/dist/ui/components/Sampling.js +0 -58
  203. package/dist/ui/components/Session.d.ts +0 -10
  204. package/dist/ui/components/Session.d.ts.map +0 -1
  205. package/dist/ui/components/Session.js +0 -47
  206. package/dist/ui/components/Spinner.d.ts +0 -3
  207. package/dist/ui/components/Spinner.d.ts.map +0 -1
  208. package/dist/ui/components/Spinner.js +0 -30
  209. package/dist/ui/components/Splash.d.ts +0 -3
  210. package/dist/ui/components/Splash.d.ts.map +0 -1
  211. package/dist/ui/components/Splash.js +0 -13
  212. package/dist/ui/components/TextInput.d.ts +0 -11
  213. package/dist/ui/components/TextInput.d.ts.map +0 -1
  214. package/dist/ui/components/TextInput.js +0 -286
  215. package/dist/ui/components/UserExplanation.d.ts +0 -10
  216. package/dist/ui/components/UserExplanation.d.ts.map +0 -1
  217. package/dist/ui/components/UserExplanation.js +0 -34
  218. package/dist/validatePaths.d.mts +0 -13
  219. package/dist/validatePaths.d.mts.map +0 -1
  220. package/dist/validatePaths.mjs +0 -58
@@ -1,26 +0,0 @@
1
- import type { Pool } from 'pg';
2
- export type TCustomTypeKind = 'composite' | 'domain';
3
- export type TDomainInfo = {
4
- kind: 'domain';
5
- name: string;
6
- base_type: string;
7
- not_null: boolean;
8
- default_expression: string | null;
9
- check_constraints: readonly {
10
- name: string;
11
- expression: string;
12
- }[];
13
- };
14
- export type TCompositeAttribute = {
15
- name: string;
16
- type: string;
17
- position: number;
18
- };
19
- export type TCompositeInfo = {
20
- kind: 'composite';
21
- name: string;
22
- attributes: readonly TCompositeAttribute[];
23
- };
24
- export type TCustomTypeInfo = TDomainInfo | TCompositeInfo;
25
- export declare const fetchPublicCustomTypes: (pool: Pool) => Promise<TCustomTypeInfo[]>;
26
- //# sourceMappingURL=custom-types.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-types.d.mts","sourceRoot":"./src/","sources":["db/custom-types.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAE7B,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,EAAE,SAAS;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,cAAc,CAAC;AAe3D,eAAO,MAAM,sBAAsB,GAC/B,MAAM,IAAI,KACX,OAAO,CAAC,eAAe,EAAE,CA8D3B,CAAC"}
@@ -1,61 +0,0 @@
1
- export const fetchPublicCustomTypes = async (pool) => {
2
- const [domains, composites] = await Promise.all([
3
- pool.query(`
4
- SELECT
5
- t.typname AS name,
6
- format_type(t.typbasetype, t.typtypmod) AS base_type,
7
- t.typnotnull AS not_null,
8
- t.typdefault AS default_expression,
9
- (
10
- SELECT json_agg(json_build_object(
11
- 'name', con.conname,
12
- 'expression', pg_get_constraintdef(con.oid, true)
13
- ) ORDER BY con.conname)
14
- FROM pg_catalog.pg_constraint con
15
- WHERE con.contypid = t.oid
16
- ) AS check_constraints
17
- FROM pg_catalog.pg_type t
18
- JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
19
- WHERE n.nspname = 'public'
20
- AND t.typtype = 'd'
21
- ORDER BY t.typname
22
- `),
23
- pool.query(`
24
- SELECT
25
- t.typname AS name,
26
- (
27
- SELECT json_agg(json_build_object(
28
- 'name', a.attname,
29
- 'type', format_type(a.atttypid, a.atttypmod),
30
- 'position', a.attnum
31
- ) ORDER BY a.attnum)
32
- FROM pg_catalog.pg_attribute a
33
- WHERE a.attrelid = t.typrelid
34
- AND a.attnum > 0
35
- AND NOT a.attisdropped
36
- ) AS attributes
37
- FROM pg_catalog.pg_type t
38
- JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
39
- JOIN pg_catalog.pg_class c ON c.oid = t.typrelid
40
- WHERE n.nspname = 'public'
41
- AND t.typtype = 'c'
42
- AND c.relkind = 'c'
43
- ORDER BY t.typname
44
- `),
45
- ]);
46
- const domainInfos = domains.rows.map((r) => ({
47
- kind: 'domain',
48
- name: r.name,
49
- base_type: r.base_type,
50
- not_null: r.not_null,
51
- default_expression: r.default_expression,
52
- check_constraints: r.check_constraints ?? [],
53
- }));
54
- const compositeInfos = composites.rows.map((r) => ({
55
- kind: 'composite',
56
- name: r.name,
57
- attributes: r.attributes ?? [],
58
- }));
59
- return [...domainInfos, ...compositeInfos];
60
- };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXR5cGVzLm1qcyIsInNvdXJjZVJvb3QiOiIuL3NyYy8iLCJzb3VyY2VzIjpbImRiL2N1c3RvbS10eXBlcy5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0NBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssRUFDdkMsSUFBVSxFQUNnQixFQUFFO0lBQzVCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FtQnRCLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBcUJ6QixDQUFDO0tBQ0wsQ0FBQyxDQUFDO0lBRUgsTUFBTSxXQUFXLEdBQWtCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1FBQ1osU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO1FBQ3RCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtRQUNwQixrQkFBa0IsRUFBRSxDQUFDLENBQUMsa0JBQWtCO1FBQ3hDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxFQUFFO0tBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRUosTUFBTSxjQUFjLEdBQXFCLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtRQUNaLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLEVBQUU7S0FDakMsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLENBQUMsR0FBRyxXQUFXLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UG9vbH0gZnJvbSAncGcnO1xuXG5leHBvcnQgdHlwZSBUQ3VzdG9tVHlwZUtpbmQgPSAnY29tcG9zaXRlJyB8ICdkb21haW4nO1xuXG5leHBvcnQgdHlwZSBURG9tYWluSW5mbyA9IHtcbiAgICBraW5kOiAnZG9tYWluJztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYmFzZV90eXBlOiBzdHJpbmc7XG4gICAgbm90X251bGw6IGJvb2xlYW47XG4gICAgZGVmYXVsdF9leHByZXNzaW9uOiBzdHJpbmcgfCBudWxsO1xuICAgIGNoZWNrX2NvbnN0cmFpbnRzOiByZWFkb25seSB7bmFtZTogc3RyaW5nOyBleHByZXNzaW9uOiBzdHJpbmd9W107XG59O1xuXG5leHBvcnQgdHlwZSBUQ29tcG9zaXRlQXR0cmlidXRlID0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcG9zaXRpb246IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFRDb21wb3NpdGVJbmZvID0ge1xuICAgIGtpbmQ6ICdjb21wb3NpdGUnO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhdHRyaWJ1dGVzOiByZWFkb25seSBUQ29tcG9zaXRlQXR0cmlidXRlW107XG59O1xuXG5leHBvcnQgdHlwZSBUQ3VzdG9tVHlwZUluZm8gPSBURG9tYWluSW5mbyB8IFRDb21wb3NpdGVJbmZvO1xuXG50eXBlIFREb21haW5Sb3cgPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGJhc2VfdHlwZTogc3RyaW5nO1xuICAgIG5vdF9udWxsOiBib29sZWFuO1xuICAgIGRlZmF1bHRfZXhwcmVzc2lvbjogc3RyaW5nIHwgbnVsbDtcbiAgICBjaGVja19jb25zdHJhaW50czogcmVhZG9ubHkge25hbWU6IHN0cmluZzsgZXhwcmVzc2lvbjogc3RyaW5nfVtdIHwgbnVsbDtcbn07XG5cbnR5cGUgVENvbXBvc2l0ZVJvdyA9IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYXR0cmlidXRlczogcmVhZG9ubHkgVENvbXBvc2l0ZUF0dHJpYnV0ZVtdIHwgbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaFB1YmxpY0N1c3RvbVR5cGVzID0gYXN5bmMgKFxuICAgIHBvb2w6IFBvb2wsXG4pOiBQcm9taXNlPFRDdXN0b21UeXBlSW5mb1tdPiA9PiB7XG4gICAgY29uc3QgW2RvbWFpbnMsIGNvbXBvc2l0ZXNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICBwb29sLnF1ZXJ5PFREb21haW5Sb3c+KGBcbiAgICAgICAgICAgIFNFTEVDVFxuICAgICAgICAgICAgICAgIHQudHlwbmFtZSBBUyBuYW1lLFxuICAgICAgICAgICAgICAgIGZvcm1hdF90eXBlKHQudHlwYmFzZXR5cGUsIHQudHlwdHlwbW9kKSBBUyBiYXNlX3R5cGUsXG4gICAgICAgICAgICAgICAgdC50eXBub3RudWxsIEFTIG5vdF9udWxsLFxuICAgICAgICAgICAgICAgIHQudHlwZGVmYXVsdCBBUyBkZWZhdWx0X2V4cHJlc3Npb24sXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBTRUxFQ1QganNvbl9hZ2coanNvbl9idWlsZF9vYmplY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScsIGNvbi5jb25uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2V4cHJlc3Npb24nLCBwZ19nZXRfY29uc3RyYWludGRlZihjb24ub2lkLCB0cnVlKVxuICAgICAgICAgICAgICAgICAgICApIE9SREVSIEJZIGNvbi5jb25uYW1lKVxuICAgICAgICAgICAgICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfY29uc3RyYWludCBjb25cbiAgICAgICAgICAgICAgICAgICAgV0hFUkUgY29uLmNvbnR5cGlkID0gdC5vaWRcbiAgICAgICAgICAgICAgICApIEFTIGNoZWNrX2NvbnN0cmFpbnRzXG4gICAgICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4gICAgICAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB0LnR5cG5hbWVzcGFjZVxuICAgICAgICAgICAgV0hFUkUgbi5uc3BuYW1lID0gJ3B1YmxpYydcbiAgICAgICAgICAgICAgICBBTkQgdC50eXB0eXBlID0gJ2QnXG4gICAgICAgICAgICBPUkRFUiBCWSB0LnR5cG5hbWVcbiAgICAgICAgYCksXG4gICAgICAgIHBvb2wucXVlcnk8VENvbXBvc2l0ZVJvdz4oYFxuICAgICAgICAgICAgU0VMRUNUXG4gICAgICAgICAgICAgICAgdC50eXBuYW1lIEFTIG5hbWUsXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBTRUxFQ1QganNvbl9hZ2coanNvbl9idWlsZF9vYmplY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScsIGEuYXR0bmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJywgZm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3Bvc2l0aW9uJywgYS5hdHRudW1cbiAgICAgICAgICAgICAgICAgICAgKSBPUkRFUiBCWSBhLmF0dG51bSlcbiAgICAgICAgICAgICAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZSBhXG4gICAgICAgICAgICAgICAgICAgIFdIRVJFIGEuYXR0cmVsaWQgPSB0LnR5cHJlbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICBBTkQgYS5hdHRudW0gPiAwXG4gICAgICAgICAgICAgICAgICAgICAgICBBTkQgTk9UIGEuYXR0aXNkcm9wcGVkXG4gICAgICAgICAgICAgICAgKSBBUyBhdHRyaWJ1dGVzXG4gICAgICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4gICAgICAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB0LnR5cG5hbWVzcGFjZVxuICAgICAgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSB0LnR5cHJlbGlkXG4gICAgICAgICAgICBXSEVSRSBuLm5zcG5hbWUgPSAncHVibGljJ1xuICAgICAgICAgICAgICAgIEFORCB0LnR5cHR5cGUgPSAnYydcbiAgICAgICAgICAgICAgICBBTkQgYy5yZWxraW5kID0gJ2MnXG4gICAgICAgICAgICBPUkRFUiBCWSB0LnR5cG5hbWVcbiAgICAgICAgYCksXG4gICAgXSk7XG5cbiAgICBjb25zdCBkb21haW5JbmZvczogVERvbWFpbkluZm9bXSA9IGRvbWFpbnMucm93cy5tYXAoKHIpID0+ICh7XG4gICAgICAgIGtpbmQ6ICdkb21haW4nLFxuICAgICAgICBuYW1lOiByLm5hbWUsXG4gICAgICAgIGJhc2VfdHlwZTogci5iYXNlX3R5cGUsXG4gICAgICAgIG5vdF9udWxsOiByLm5vdF9udWxsLFxuICAgICAgICBkZWZhdWx0X2V4cHJlc3Npb246IHIuZGVmYXVsdF9leHByZXNzaW9uLFxuICAgICAgICBjaGVja19jb25zdHJhaW50czogci5jaGVja19jb25zdHJhaW50cyA/PyBbXSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBjb21wb3NpdGVJbmZvczogVENvbXBvc2l0ZUluZm9bXSA9IGNvbXBvc2l0ZXMucm93cy5tYXAoKHIpID0+ICh7XG4gICAgICAgIGtpbmQ6ICdjb21wb3NpdGUnLFxuICAgICAgICBuYW1lOiByLm5hbWUsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHIuYXR0cmlidXRlcyA/PyBbXSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gWy4uLmRvbWFpbkluZm9zLCAuLi5jb21wb3NpdGVJbmZvc107XG59O1xuIl19
@@ -1,8 +0,0 @@
1
- import type { Pool } from 'pg';
2
- export type TEnumInfo = {
3
- values: string[];
4
- comment: string | null;
5
- };
6
- export type TGroupedEnums = Record<string, TEnumInfo>;
7
- export declare const fetchPublicEnums: (pool: Pool) => Promise<TGroupedEnums>;
8
- //# sourceMappingURL=enums.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enums.d.mts","sourceRoot":"./src/","sources":["db/enums.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAU7B,MAAM,MAAM,SAAS,GAAG;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEtD,eAAO,MAAM,gBAAgB,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,aAAa,CAyBxE,CAAC"}
package/dist/db/enums.mjs DELETED
@@ -1,24 +0,0 @@
1
- import { groupBy } from 'es-toolkit';
2
- export const fetchPublicEnums = async (pool) => {
3
- const result = await pool.query(`
4
- SELECT
5
- t.typname AS enum_name,
6
- e.enumlabel AS value,
7
- e.enumsortorder AS sort_order,
8
- obj_description(t.oid, 'pg_type') AS comment
9
- FROM pg_catalog.pg_type t
10
- JOIN pg_catalog.pg_enum e ON t.oid = e.enumtypid
11
- JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid
12
- WHERE n.nspname = 'public'
13
- ORDER BY enum_name, sort_order
14
- `);
15
- const grouped = groupBy(result.rows, (row) => row.enum_name);
16
- return Object.fromEntries(Object.entries(grouped).map(([name, rows]) => [
17
- name,
18
- {
19
- values: rows.map((r) => r.value),
20
- comment: rows[0]?.comment ?? null,
21
- },
22
- ]));
23
- };
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiZGIvZW51bXMubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFnQm5DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxJQUFVLEVBQTBCLEVBQUU7SUFDekUsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFnQjs7Ozs7Ozs7Ozs7S0FXOUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU3RCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzFDLElBQUk7UUFDSjtZQUNJLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLElBQUk7U0FDcEM7S0FDSixDQUFDLENBQ0wsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtQb29sfSBmcm9tICdwZyc7XG5pbXBvcnQge2dyb3VwQnl9IGZyb20gJ2VzLXRvb2xraXQnO1xuXG50eXBlIFRFbnVtVmFsdWVSb3cgPSB7XG4gICAgZW51bV9uYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBzb3J0X29yZGVyOiBudW1iZXI7XG4gICAgY29tbWVudDogc3RyaW5nIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIFRFbnVtSW5mbyA9IHtcbiAgICB2YWx1ZXM6IHN0cmluZ1tdO1xuICAgIGNvbW1lbnQ6IHN0cmluZyB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBUR3JvdXBlZEVudW1zID0gUmVjb3JkPHN0cmluZywgVEVudW1JbmZvPjtcblxuZXhwb3J0IGNvbnN0IGZldGNoUHVibGljRW51bXMgPSBhc3luYyAocG9vbDogUG9vbCk6IFByb21pc2U8VEdyb3VwZWRFbnVtcz4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBvb2wucXVlcnk8VEVudW1WYWx1ZVJvdz4oYFxuICAgICAgICBTRUxFQ1RcbiAgICAgICAgICAgIHQudHlwbmFtZSBBUyBlbnVtX25hbWUsXG4gICAgICAgICAgICBlLmVudW1sYWJlbCBBUyB2YWx1ZSxcbiAgICAgICAgICAgIGUuZW51bXNvcnRvcmRlciBBUyBzb3J0X29yZGVyLFxuICAgICAgICAgICAgb2JqX2Rlc2NyaXB0aW9uKHQub2lkLCAncGdfdHlwZScpIEFTIGNvbW1lbnRcbiAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX3R5cGUgdFxuICAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfZW51bSBlIE9OIHQub2lkID0gZS5lbnVtdHlwaWRcbiAgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIHQudHlwbmFtZXNwYWNlID0gbi5vaWRcbiAgICAgICAgV0hFUkUgbi5uc3BuYW1lID0gJ3B1YmxpYydcbiAgICAgICAgT1JERVIgQlkgZW51bV9uYW1lLCBzb3J0X29yZGVyXG4gICAgYCk7XG5cbiAgICBjb25zdCBncm91cGVkID0gZ3JvdXBCeShyZXN1bHQucm93cywgKHJvdykgPT4gcm93LmVudW1fbmFtZSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBPYmplY3QuZW50cmllcyhncm91cGVkKS5tYXAoKFtuYW1lLCByb3dzXSkgPT4gW1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IHJvd3MubWFwKChyKSA9PiByLnZhbHVlKSxcbiAgICAgICAgICAgICAgICBjb21tZW50OiByb3dzWzBdPy5jb21tZW50ID8/IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgICApO1xufTtcbiJdfQ==
@@ -1,8 +0,0 @@
1
- import type { Pool } from 'pg';
2
- export type TExtensionInfo = {
3
- name: string;
4
- version: string;
5
- schema: string;
6
- };
7
- export declare const fetchInstalledExtensions: (pool: Pool) => Promise<TExtensionInfo[]>;
8
- //# sourceMappingURL=extensions.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensions.d.mts","sourceRoot":"./src/","sources":["db/extensions.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACjC,MAAM,IAAI,KACX,OAAO,CAAC,cAAc,EAAE,CAa1B,CAAC"}
@@ -1,14 +0,0 @@
1
- export const fetchInstalledExtensions = async (pool) => {
2
- const result = await pool.query(`
3
- SELECT
4
- e.extname AS name,
5
- e.extversion AS version,
6
- n.nspname AS schema
7
- FROM pg_catalog.pg_extension e
8
- JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace
9
- WHERE e.extname <> 'plpgsql'
10
- ORDER BY e.extname
11
- `);
12
- return result.rows;
13
- };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5tanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJkYi9leHRlbnNpb25zLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLEVBQ3pDLElBQVUsRUFDZSxFQUFFO0lBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBaUI7Ozs7Ozs7OztLQVMvQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Bvb2x9IGZyb20gJ3BnJztcblxuZXhwb3J0IHR5cGUgVEV4dGVuc2lvbkluZm8gPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBzY2hlbWE6IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaEluc3RhbGxlZEV4dGVuc2lvbnMgPSBhc3luYyAoXG4gICAgcG9vbDogUG9vbCxcbik6IFByb21pc2U8VEV4dGVuc2lvbkluZm9bXT4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBvb2wucXVlcnk8VEV4dGVuc2lvbkluZm8+KGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgICBlLmV4dG5hbWUgQVMgbmFtZSxcbiAgICAgICAgICAgIGUuZXh0dmVyc2lvbiBBUyB2ZXJzaW9uLFxuICAgICAgICAgICAgbi5uc3BuYW1lIEFTIHNjaGVtYVxuICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfZXh0ZW5zaW9uIGVcbiAgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gZS5leHRuYW1lc3BhY2VcbiAgICAgICAgV0hFUkUgZS5leHRuYW1lIDw+ICdwbHBnc3FsJ1xuICAgICAgICBPUkRFUiBCWSBlLmV4dG5hbWVcbiAgICBgKTtcblxuICAgIHJldHVybiByZXN1bHQucm93cztcbn07XG4iXX0=
@@ -1,11 +0,0 @@
1
- import type { Pool } from 'pg';
2
- export type TRelationFileStats = {
3
- relation_name: string;
4
- file_path: string | null;
5
- modification_time: Date;
6
- size_bytes: number;
7
- is_partitioned: boolean;
8
- partition_count: number | null;
9
- };
10
- export declare const fetchRelationFileStats: (pool: Pool, relationName: string) => Promise<TRelationFileStats>;
11
- //# sourceMappingURL=file-stats.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-stats.d.mts","sourceRoot":"./src/","sources":["db/file-stats.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAE7B,MAAM,MAAM,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAC/B,MAAM,IAAI,EACV,cAAc,MAAM,KACrB,OAAO,CAAC,kBAAkB,CA6C5B,CAAC"}
@@ -1,43 +0,0 @@
1
- export const fetchRelationFileStats = async (pool, relationName) => {
2
- const result = await pool.query(`
3
- WITH target AS (
4
- SELECT c.oid, c.relname, c.relkind
5
- FROM pg_catalog.pg_class c
6
- JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
7
- WHERE n.nspname = 'public'
8
- AND c.relname = $1
9
- AND c.relkind IN ('r', 'p', 'm')
10
- ),
11
- partition_stats AS (
12
- SELECT
13
- (pg_stat_file(pg_relation_filepath(child.oid))).modification AS modification_time,
14
- (pg_stat_file(pg_relation_filepath(child.oid))).size AS size_bytes
15
- FROM target t
16
- JOIN pg_catalog.pg_inherits i ON i.inhparent = t.oid
17
- JOIN pg_catalog.pg_class child ON child.oid = i.inhrelid
18
- WHERE t.relkind = 'p'
19
- )
20
- SELECT
21
- t.relname AS relation_name,
22
- CASE
23
- WHEN t.relkind = 'p' THEN NULL
24
- ELSE pg_relation_filepath(t.oid)
25
- END AS file_path,
26
- CASE
27
- WHEN t.relkind = 'p' THEN (SELECT MAX(modification_time) FROM partition_stats)
28
- ELSE (pg_stat_file(pg_relation_filepath(t.oid))).modification
29
- END AS modification_time,
30
- CASE
31
- WHEN t.relkind = 'p' THEN (SELECT COALESCE(SUM(size_bytes), 0) FROM partition_stats)
32
- ELSE (pg_stat_file(pg_relation_filepath(t.oid))).size
33
- END AS size_bytes,
34
- t.relkind = 'p' AS is_partitioned,
35
- CASE
36
- WHEN t.relkind = 'p' THEN (SELECT COUNT(*) FROM partition_stats)
37
- ELSE NULL
38
- END AS partition_count
39
- FROM target t
40
- `, [relationName]);
41
- return result.rows[0];
42
- };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zdGF0cy5tanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJkYi9maWxlLXN0YXRzLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLEVBQ3ZDLElBQVUsRUFDVixZQUFvQixFQUNPLEVBQUU7SUFDN0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FzQ0MsRUFDRCxDQUFDLFlBQVksQ0FBQyxDQUNqQixDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtQb29sfSBmcm9tICdwZyc7XG5cbmV4cG9ydCB0eXBlIFRSZWxhdGlvbkZpbGVTdGF0cyA9IHtcbiAgICByZWxhdGlvbl9uYW1lOiBzdHJpbmc7XG4gICAgZmlsZV9wYXRoOiBzdHJpbmcgfCBudWxsO1xuICAgIG1vZGlmaWNhdGlvbl90aW1lOiBEYXRlO1xuICAgIHNpemVfYnl0ZXM6IG51bWJlcjtcbiAgICBpc19wYXJ0aXRpb25lZDogYm9vbGVhbjtcbiAgICBwYXJ0aXRpb25fY291bnQ6IG51bWJlciB8IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZmV0Y2hSZWxhdGlvbkZpbGVTdGF0cyA9IGFzeW5jIChcbiAgICBwb29sOiBQb29sLFxuICAgIHJlbGF0aW9uTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxUUmVsYXRpb25GaWxlU3RhdHM+ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwb29sLnF1ZXJ5PFRSZWxhdGlvbkZpbGVTdGF0cz4oXG4gICAgICAgIGBcbiAgICAgICAgV0lUSCB0YXJnZXQgQVMgKFxuICAgICAgICAgICAgU0VMRUNUIGMub2lkLCBjLnJlbG5hbWUsIGMucmVsa2luZFxuICAgICAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiAgICAgICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IGMucmVsbmFtZXNwYWNlXG4gICAgICAgICAgICBXSEVSRSBuLm5zcG5hbWUgPSAncHVibGljJ1xuICAgICAgICAgICAgICAgIEFORCBjLnJlbG5hbWUgPSAkMVxuICAgICAgICAgICAgICAgIEFORCBjLnJlbGtpbmQgSU4gKCdyJywgJ3AnLCAnbScpXG4gICAgICAgICksXG4gICAgICAgIHBhcnRpdGlvbl9zdGF0cyBBUyAoXG4gICAgICAgICAgICBTRUxFQ1RcbiAgICAgICAgICAgICAgICAocGdfc3RhdF9maWxlKHBnX3JlbGF0aW9uX2ZpbGVwYXRoKGNoaWxkLm9pZCkpKS5tb2RpZmljYXRpb24gQVMgbW9kaWZpY2F0aW9uX3RpbWUsXG4gICAgICAgICAgICAgICAgKHBnX3N0YXRfZmlsZShwZ19yZWxhdGlvbl9maWxlcGF0aChjaGlsZC5vaWQpKSkuc2l6ZSBBUyBzaXplX2J5dGVzXG4gICAgICAgICAgICBGUk9NIHRhcmdldCB0XG4gICAgICAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfaW5oZXJpdHMgaSBPTiBpLmluaHBhcmVudCA9IHQub2lkXG4gICAgICAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgY2hpbGQgT04gY2hpbGQub2lkID0gaS5pbmhyZWxpZFxuICAgICAgICAgICAgV0hFUkUgdC5yZWxraW5kID0gJ3AnXG4gICAgICAgIClcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgICB0LnJlbG5hbWUgQVMgcmVsYXRpb25fbmFtZSxcbiAgICAgICAgICAgIENBU0VcbiAgICAgICAgICAgICAgICBXSEVOIHQucmVsa2luZCA9ICdwJyBUSEVOIE5VTExcbiAgICAgICAgICAgICAgICBFTFNFIHBnX3JlbGF0aW9uX2ZpbGVwYXRoKHQub2lkKVxuICAgICAgICAgICAgRU5EIEFTIGZpbGVfcGF0aCxcbiAgICAgICAgICAgIENBU0VcbiAgICAgICAgICAgICAgICBXSEVOIHQucmVsa2luZCA9ICdwJyBUSEVOIChTRUxFQ1QgTUFYKG1vZGlmaWNhdGlvbl90aW1lKSBGUk9NIHBhcnRpdGlvbl9zdGF0cylcbiAgICAgICAgICAgICAgICBFTFNFIChwZ19zdGF0X2ZpbGUocGdfcmVsYXRpb25fZmlsZXBhdGgodC5vaWQpKSkubW9kaWZpY2F0aW9uXG4gICAgICAgICAgICBFTkQgQVMgbW9kaWZpY2F0aW9uX3RpbWUsXG4gICAgICAgICAgICBDQVNFXG4gICAgICAgICAgICAgICAgV0hFTiB0LnJlbGtpbmQgPSAncCcgVEhFTiAoU0VMRUNUIENPQUxFU0NFKFNVTShzaXplX2J5dGVzKSwgMCkgRlJPTSBwYXJ0aXRpb25fc3RhdHMpXG4gICAgICAgICAgICAgICAgRUxTRSAocGdfc3RhdF9maWxlKHBnX3JlbGF0aW9uX2ZpbGVwYXRoKHQub2lkKSkpLnNpemVcbiAgICAgICAgICAgIEVORCBBUyBzaXplX2J5dGVzLFxuICAgICAgICAgICAgdC5yZWxraW5kID0gJ3AnIEFTIGlzX3BhcnRpdGlvbmVkLFxuICAgICAgICAgICAgQ0FTRVxuICAgICAgICAgICAgICAgIFdIRU4gdC5yZWxraW5kID0gJ3AnIFRIRU4gKFNFTEVDVCBDT1VOVCgqKSBGUk9NIHBhcnRpdGlvbl9zdGF0cylcbiAgICAgICAgICAgICAgICBFTFNFIE5VTExcbiAgICAgICAgICAgIEVORCBBUyBwYXJ0aXRpb25fY291bnRcbiAgICAgICAgRlJPTSB0YXJnZXQgdFxuICAgICAgICBgLFxuICAgICAgICBbcmVsYXRpb25OYW1lXSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5yb3dzWzBdO1xufTtcbiJdfQ==
@@ -1,14 +0,0 @@
1
- import type { Pool } from 'pg';
2
- type TForeignKeyAction = 'NO ACTION' | 'RESTRICT' | 'CASCADE' | 'SET NULL' | 'SET DEFAULT';
3
- export type TForeignKeyInfo = {
4
- constraint_name: string;
5
- attributes: string[];
6
- referenced_relation: string;
7
- referenced_attributes: string[];
8
- on_update: TForeignKeyAction;
9
- on_delete: TForeignKeyAction;
10
- comment: string | null;
11
- };
12
- export declare const fetchRelationForeignKeys: (pool: Pool, relationName: string) => Promise<TForeignKeyInfo[]>;
13
- export {};
14
- //# sourceMappingURL=foreign-keys.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"foreign-keys.d.mts","sourceRoot":"./src/","sources":["db/foreign-keys.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAE7B,KAAK,iBAAiB,GAChB,WAAW,GACX,UAAU,GACV,SAAS,GACT,UAAU,GACV,aAAa,CAAC;AAEpB,MAAM,MAAM,eAAe,GAAG;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACjC,MAAM,IAAI,EACV,cAAc,MAAM,KACrB,OAAO,CAAC,eAAe,EAAE,CA8C3B,CAAC"}
@@ -1,44 +0,0 @@
1
- export const fetchRelationForeignKeys = async (pool, relationName) => {
2
- const result = await pool.query(`
3
- SELECT
4
- con.conname AS constraint_name,
5
- ARRAY(
6
- SELECT a.attname
7
- FROM unnest(con.conkey) WITH ORDINALITY AS cols(attnum, ord)
8
- JOIN pg_attribute a ON a.attrelid = con.conrelid AND a.attnum = cols.attnum
9
- ORDER BY cols.ord
10
- )::text[] AS attributes,
11
- ref_cl.relname AS referenced_relation,
12
- ARRAY(
13
- SELECT a.attname
14
- FROM unnest(con.confkey) WITH ORDINALITY AS cols(attnum, ord)
15
- JOIN pg_attribute a ON a.attrelid = con.confrelid AND a.attnum = cols.attnum
16
- ORDER BY cols.ord
17
- )::text[] AS referenced_attributes,
18
- CASE con.confupdtype
19
- WHEN 'a' THEN 'NO ACTION'
20
- WHEN 'r' THEN 'RESTRICT'
21
- WHEN 'c' THEN 'CASCADE'
22
- WHEN 'n' THEN 'SET NULL'
23
- WHEN 'd' THEN 'SET DEFAULT'
24
- END AS on_update,
25
- CASE con.confdeltype
26
- WHEN 'a' THEN 'NO ACTION'
27
- WHEN 'r' THEN 'RESTRICT'
28
- WHEN 'c' THEN 'CASCADE'
29
- WHEN 'n' THEN 'SET NULL'
30
- WHEN 'd' THEN 'SET DEFAULT'
31
- END AS on_delete,
32
- obj_description(con.oid, 'pg_constraint') AS comment
33
- FROM pg_catalog.pg_constraint con
34
- JOIN pg_catalog.pg_class cl ON cl.oid = con.conrelid
35
- JOIN pg_catalog.pg_class ref_cl ON ref_cl.oid = con.confrelid
36
- JOIN pg_catalog.pg_namespace n ON n.oid = cl.relnamespace
37
- WHERE con.contype = 'f'
38
- AND n.nspname = 'public'
39
- AND cl.relname = $1
40
- ORDER BY con.conname
41
- `, [relationName]);
42
- return result.rows;
43
- };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZWlnbi1rZXlzLm1qcyIsInNvdXJjZVJvb3QiOiIuL3NyYy8iLCJzb3VyY2VzIjpbImRiL2ZvcmVpZ24ta2V5cy5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJBLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEtBQUssRUFDekMsSUFBVSxFQUNWLFlBQW9CLEVBQ00sRUFBRTtJQUM1QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0F1Q0MsRUFDRCxDQUFDLFlBQVksQ0FBQyxDQUNqQixDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtQb29sfSBmcm9tICdwZyc7XG5cbnR5cGUgVEZvcmVpZ25LZXlBY3Rpb24gPVxuICAgIHwgJ05PIEFDVElPTidcbiAgICB8ICdSRVNUUklDVCdcbiAgICB8ICdDQVNDQURFJ1xuICAgIHwgJ1NFVCBOVUxMJ1xuICAgIHwgJ1NFVCBERUZBVUxUJztcblxuZXhwb3J0IHR5cGUgVEZvcmVpZ25LZXlJbmZvID0ge1xuICAgIGNvbnN0cmFpbnRfbmFtZTogc3RyaW5nO1xuICAgIGF0dHJpYnV0ZXM6IHN0cmluZ1tdO1xuICAgIHJlZmVyZW5jZWRfcmVsYXRpb246IHN0cmluZztcbiAgICByZWZlcmVuY2VkX2F0dHJpYnV0ZXM6IHN0cmluZ1tdO1xuICAgIG9uX3VwZGF0ZTogVEZvcmVpZ25LZXlBY3Rpb247XG4gICAgb25fZGVsZXRlOiBURm9yZWlnbktleUFjdGlvbjtcbiAgICBjb21tZW50OiBzdHJpbmcgfCBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGZldGNoUmVsYXRpb25Gb3JlaWduS2V5cyA9IGFzeW5jIChcbiAgICBwb29sOiBQb29sLFxuICAgIHJlbGF0aW9uTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxURm9yZWlnbktleUluZm9bXT4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBvb2wucXVlcnk8VEZvcmVpZ25LZXlJbmZvPihcbiAgICAgICAgYFxuICAgICAgICBTRUxFQ1RcbiAgICAgICAgICAgIGNvbi5jb25uYW1lIEFTIGNvbnN0cmFpbnRfbmFtZSxcbiAgICAgICAgICAgIEFSUkFZKFxuICAgICAgICAgICAgICAgIFNFTEVDVCBhLmF0dG5hbWVcbiAgICAgICAgICAgICAgICBGUk9NIHVubmVzdChjb24uY29ua2V5KSBXSVRIIE9SRElOQUxJVFkgQVMgY29scyhhdHRudW0sIG9yZClcbiAgICAgICAgICAgICAgICBKT0lOIHBnX2F0dHJpYnV0ZSBhIE9OIGEuYXR0cmVsaWQgPSBjb24uY29ucmVsaWQgQU5EIGEuYXR0bnVtID0gY29scy5hdHRudW1cbiAgICAgICAgICAgICAgICBPUkRFUiBCWSBjb2xzLm9yZFxuICAgICAgICAgICAgKTo6dGV4dFtdIEFTIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICByZWZfY2wucmVsbmFtZSBBUyByZWZlcmVuY2VkX3JlbGF0aW9uLFxuICAgICAgICAgICAgQVJSQVkoXG4gICAgICAgICAgICAgICAgU0VMRUNUIGEuYXR0bmFtZVxuICAgICAgICAgICAgICAgIEZST00gdW5uZXN0KGNvbi5jb25ma2V5KSBXSVRIIE9SRElOQUxJVFkgQVMgY29scyhhdHRudW0sIG9yZClcbiAgICAgICAgICAgICAgICBKT0lOIHBnX2F0dHJpYnV0ZSBhIE9OIGEuYXR0cmVsaWQgPSBjb24uY29uZnJlbGlkIEFORCBhLmF0dG51bSA9IGNvbHMuYXR0bnVtXG4gICAgICAgICAgICAgICAgT1JERVIgQlkgY29scy5vcmRcbiAgICAgICAgICAgICk6OnRleHRbXSBBUyByZWZlcmVuY2VkX2F0dHJpYnV0ZXMsXG4gICAgICAgICAgICBDQVNFIGNvbi5jb25mdXBkdHlwZVxuICAgICAgICAgICAgICAgIFdIRU4gJ2EnIFRIRU4gJ05PIEFDVElPTidcbiAgICAgICAgICAgICAgICBXSEVOICdyJyBUSEVOICdSRVNUUklDVCdcbiAgICAgICAgICAgICAgICBXSEVOICdjJyBUSEVOICdDQVNDQURFJ1xuICAgICAgICAgICAgICAgIFdIRU4gJ24nIFRIRU4gJ1NFVCBOVUxMJ1xuICAgICAgICAgICAgICAgIFdIRU4gJ2QnIFRIRU4gJ1NFVCBERUZBVUxUJ1xuICAgICAgICAgICAgRU5EIEFTIG9uX3VwZGF0ZSxcbiAgICAgICAgICAgIENBU0UgY29uLmNvbmZkZWx0eXBlXG4gICAgICAgICAgICAgICAgV0hFTiAnYScgVEhFTiAnTk8gQUNUSU9OJ1xuICAgICAgICAgICAgICAgIFdIRU4gJ3InIFRIRU4gJ1JFU1RSSUNUJ1xuICAgICAgICAgICAgICAgIFdIRU4gJ2MnIFRIRU4gJ0NBU0NBREUnXG4gICAgICAgICAgICAgICAgV0hFTiAnbicgVEhFTiAnU0VUIE5VTEwnXG4gICAgICAgICAgICAgICAgV0hFTiAnZCcgVEhFTiAnU0VUIERFRkFVTFQnXG4gICAgICAgICAgICBFTkQgQVMgb25fZGVsZXRlLFxuICAgICAgICAgICAgb2JqX2Rlc2NyaXB0aW9uKGNvbi5vaWQsICdwZ19jb25zdHJhaW50JykgQVMgY29tbWVudFxuICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfY29uc3RyYWludCBjb25cbiAgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGNsIE9OIGNsLm9pZCA9IGNvbi5jb25yZWxpZFxuICAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcmVmX2NsIE9OIHJlZl9jbC5vaWQgPSBjb24uY29uZnJlbGlkXG4gICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IGNsLnJlbG5hbWVzcGFjZVxuICAgICAgICBXSEVSRSBjb24uY29udHlwZSA9ICdmJ1xuICAgICAgICAgICAgQU5EIG4ubnNwbmFtZSA9ICdwdWJsaWMnXG4gICAgICAgICAgICBBTkQgY2wucmVsbmFtZSA9ICQxXG4gICAgICAgIE9SREVSIEJZIGNvbi5jb25uYW1lXG4gICAgICAgIGAsXG4gICAgICAgIFtyZWxhdGlvbk5hbWVdLFxuICAgICk7XG5cbiAgICByZXR1cm4gcmVzdWx0LnJvd3M7XG59O1xuIl19
@@ -1,11 +0,0 @@
1
- import type { Pool } from 'pg';
2
- export type TFunctionInfo = {
3
- name: string;
4
- language: string;
5
- argument_types: string;
6
- return_type: string;
7
- definition: string;
8
- is_trigger: boolean;
9
- };
10
- export declare const fetchPublicFunctions: (pool: Pool) => Promise<TFunctionInfo[]>;
11
- //# sourceMappingURL=functions.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.d.mts","sourceRoot":"./src/","sources":["db/functions.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAE7B,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,MAAM,IAAI,KACX,OAAO,CAAC,aAAa,EAAE,CAsBzB,CAAC"}
@@ -1,23 +0,0 @@
1
- export const fetchPublicFunctions = async (pool) => {
2
- const result = await pool.query(`
3
- SELECT
4
- p.proname AS name,
5
- l.lanname AS language,
6
- pg_get_function_arguments(p.oid) AS argument_types,
7
- pg_get_function_result(p.oid) AS return_type,
8
- pg_get_functiondef(p.oid) AS definition,
9
- p.prorettype = 'trigger'::regtype AS is_trigger
10
- FROM pg_catalog.pg_proc p
11
- JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
12
- JOIN pg_catalog.pg_language l ON l.oid = p.prolang
13
- WHERE n.nspname = 'public'
14
- AND p.prokind = 'f'
15
- AND NOT EXISTS (
16
- SELECT 1 FROM pg_catalog.pg_depend d
17
- WHERE d.objid = p.oid AND d.deptype = 'e'
18
- )
19
- ORDER BY p.proname
20
- `);
21
- return result.rows;
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLm1qcyIsInNvdXJjZVJvb3QiOiIuL3NyYy8iLCJzb3VyY2VzIjpbImRiL2Z1bmN0aW9ucy5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUNyQyxJQUFVLEVBQ2MsRUFBRTtJQUMxQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQjlDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UG9vbH0gZnJvbSAncGcnO1xuXG5leHBvcnQgdHlwZSBURnVuY3Rpb25JbmZvID0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBsYW5ndWFnZTogc3RyaW5nO1xuICAgIGFyZ3VtZW50X3R5cGVzOiBzdHJpbmc7XG4gICAgcmV0dXJuX3R5cGU6IHN0cmluZztcbiAgICBkZWZpbml0aW9uOiBzdHJpbmc7XG4gICAgaXNfdHJpZ2dlcjogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaFB1YmxpY0Z1bmN0aW9ucyA9IGFzeW5jIChcbiAgICBwb29sOiBQb29sLFxuKTogUHJvbWlzZTxURnVuY3Rpb25JbmZvW10+ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwb29sLnF1ZXJ5PFRGdW5jdGlvbkluZm8+KGBcbiAgICAgICAgU0VMRUNUXG4gICAgICAgICAgICBwLnByb25hbWUgQVMgbmFtZSxcbiAgICAgICAgICAgIGwubGFubmFtZSBBUyBsYW5ndWFnZSxcbiAgICAgICAgICAgIHBnX2dldF9mdW5jdGlvbl9hcmd1bWVudHMocC5vaWQpIEFTIGFyZ3VtZW50X3R5cGVzLFxuICAgICAgICAgICAgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwLm9pZCkgQVMgcmV0dXJuX3R5cGUsXG4gICAgICAgICAgICBwZ19nZXRfZnVuY3Rpb25kZWYocC5vaWQpIEFTIGRlZmluaXRpb24sXG4gICAgICAgICAgICBwLnByb3JldHR5cGUgPSAndHJpZ2dlcic6OnJlZ3R5cGUgQVMgaXNfdHJpZ2dlclxuICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfcHJvYyBwXG4gICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IHAucHJvbmFtZXNwYWNlXG4gICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19sYW5ndWFnZSBsIE9OIGwub2lkID0gcC5wcm9sYW5nXG4gICAgICAgIFdIRVJFIG4ubnNwbmFtZSA9ICdwdWJsaWMnXG4gICAgICAgICAgICBBTkQgcC5wcm9raW5kID0gJ2YnXG4gICAgICAgICAgICBBTkQgTk9UIEVYSVNUUyAoXG4gICAgICAgICAgICAgICAgU0VMRUNUIDEgRlJPTSBwZ19jYXRhbG9nLnBnX2RlcGVuZCBkXG4gICAgICAgICAgICAgICAgV0hFUkUgZC5vYmppZCA9IHAub2lkIEFORCBkLmRlcHR5cGUgPSAnZSdcbiAgICAgICAgICAgIClcbiAgICAgICAgT1JERVIgQlkgcC5wcm9uYW1lXG4gICAgYCk7XG5cbiAgICByZXR1cm4gcmVzdWx0LnJvd3M7XG59O1xuIl19
@@ -1,19 +0,0 @@
1
- export { fetchPublicRelations, fetchViewDefinition, type TRelationType, type TRelationInfo, type TGroupedRelations, } from './relations.mjs';
2
- export { fetchRelationAttributes, type TAttributeKind, type TGeneratedStorage, type TAttributeInfo, } from './attributes.mjs';
3
- export { fetchPublicEnums, type TEnumInfo, type TGroupedEnums, } from './enums.mjs';
4
- export { fetchRelationIndexes, type TIndexInfo } from './indexes.mjs';
5
- export { fetchRelationForeignKeys, type TForeignKeyInfo, } from './foreign-keys.mjs';
6
- export { fetchPostgresVersion, type TPostgresVersion, fetchDatabaseComment, fetchDatabaseIdentifier, type TDatabaseIdentifier, } from './version.mjs';
7
- export { fetchRelationFileStats, type TRelationFileStats, } from './file-stats.mjs';
8
- export { analyzeRelation } from './analyze.mjs';
9
- export { fetchRelationStats, type TRelationStats, type TAttributeStats, } from './stats.mjs';
10
- export { sampleColumn, sampleCompositeSubField, fetchCompositeSubFields, type TSampleStrategy, type TColumnSample, type TCompositeSubField, type TRelationKind, } from './sample.mjs';
11
- export { fetchPublicCheckConstraints, type TCheckConstraintInfo, } from './check-constraints.mjs';
12
- export { fetchInstalledExtensions, type TExtensionInfo } from './extensions.mjs';
13
- export { fetchPublicSequences, type TSequenceInfo } from './sequences.mjs';
14
- export { fetchPublicTriggers, type TTriggerInfo } from './triggers.mjs';
15
- export { fetchPublicFunctions, type TFunctionInfo } from './functions.mjs';
16
- export { fetchPublicCustomTypes, type TCustomTypeInfo, type TDomainInfo, type TCompositeInfo, type TCompositeAttribute, type TCustomTypeKind, } from './custom-types.mjs';
17
- export { fetchPublicRLS, type TRelationRLS, type TPolicyInfo, type TPolicyCommand, } from './rls.mjs';
18
- export { fetchPublicPlannerStatistics, type TRelationPlannerStats, type TAttributePlannerStats, type TExtendedStatistic, } from './planner-stats.mjs';
19
- //# sourceMappingURL=index.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"./src/","sources":["db/index.mts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,oBAAoB,EAAE,KAAK,UAAU,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EACH,wBAAwB,EACxB,KAAK,eAAe,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,mBAAmB,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,sBAAsB,EACtB,KAAK,kBAAkB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EACH,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,2BAA2B,EAC3B,KAAK,oBAAoB,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,wBAAwB,EAAE,KAAK,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAC,oBAAoB,EAAE,KAAK,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAC,mBAAmB,EAAE,KAAK,YAAY,EAAC,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAE,KAAK,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACH,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GAC1B,MAAM,qBAAqB,CAAC"}
package/dist/db/index.mjs DELETED
@@ -1,19 +0,0 @@
1
- export { fetchPublicRelations, fetchViewDefinition, } from './relations.mjs';
2
- export { fetchRelationAttributes, } from './attributes.mjs';
3
- export { fetchPublicEnums, } from './enums.mjs';
4
- export { fetchRelationIndexes } from './indexes.mjs';
5
- export { fetchRelationForeignKeys, } from './foreign-keys.mjs';
6
- export { fetchPostgresVersion, fetchDatabaseComment, fetchDatabaseIdentifier, } from './version.mjs';
7
- export { fetchRelationFileStats, } from './file-stats.mjs';
8
- export { analyzeRelation } from './analyze.mjs';
9
- export { fetchRelationStats, } from './stats.mjs';
10
- export { sampleColumn, sampleCompositeSubField, fetchCompositeSubFields, } from './sample.mjs';
11
- export { fetchPublicCheckConstraints, } from './check-constraints.mjs';
12
- export { fetchInstalledExtensions } from './extensions.mjs';
13
- export { fetchPublicSequences } from './sequences.mjs';
14
- export { fetchPublicTriggers } from './triggers.mjs';
15
- export { fetchPublicFunctions } from './functions.mjs';
16
- export { fetchPublicCustomTypes, } from './custom-types.mjs';
17
- export { fetchPublicRLS, } from './rls.mjs';
18
- export { fetchPublicPlannerStatistics, } from './planner-stats.mjs';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiZGIvaW5kZXgubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsbUJBQW1CLEdBSXRCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNILHVCQUF1QixHQUkxQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFDSCxnQkFBZ0IsR0FHbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFDLG9CQUFvQixFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQ0gsd0JBQXdCLEdBRTNCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNILG9CQUFvQixFQUVwQixvQkFBb0IsRUFDcEIsdUJBQXVCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxzQkFBc0IsR0FFekIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFDSCxrQkFBa0IsR0FHckIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNILFlBQVksRUFDWix1QkFBdUIsRUFDdkIsdUJBQXVCLEdBSzFCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDSCwyQkFBMkIsR0FFOUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUMsd0JBQXdCLEVBQXNCLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFDLG9CQUFvQixFQUFxQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxtQkFBbUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsb0JBQW9CLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUNILHNCQUFzQixHQU16QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDSCxjQUFjLEdBSWpCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFDSCw0QkFBNEIsR0FJL0IsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gICAgZmV0Y2hQdWJsaWNSZWxhdGlvbnMsXG4gICAgZmV0Y2hWaWV3RGVmaW5pdGlvbixcbiAgICB0eXBlIFRSZWxhdGlvblR5cGUsXG4gICAgdHlwZSBUUmVsYXRpb25JbmZvLFxuICAgIHR5cGUgVEdyb3VwZWRSZWxhdGlvbnMsXG59IGZyb20gJy4vcmVsYXRpb25zLm1qcyc7XG5leHBvcnQge1xuICAgIGZldGNoUmVsYXRpb25BdHRyaWJ1dGVzLFxuICAgIHR5cGUgVEF0dHJpYnV0ZUtpbmQsXG4gICAgdHlwZSBUR2VuZXJhdGVkU3RvcmFnZSxcbiAgICB0eXBlIFRBdHRyaWJ1dGVJbmZvLFxufSBmcm9tICcuL2F0dHJpYnV0ZXMubWpzJztcbmV4cG9ydCB7XG4gICAgZmV0Y2hQdWJsaWNFbnVtcyxcbiAgICB0eXBlIFRFbnVtSW5mbyxcbiAgICB0eXBlIFRHcm91cGVkRW51bXMsXG59IGZyb20gJy4vZW51bXMubWpzJztcbmV4cG9ydCB7ZmV0Y2hSZWxhdGlvbkluZGV4ZXMsIHR5cGUgVEluZGV4SW5mb30gZnJvbSAnLi9pbmRleGVzLm1qcyc7XG5leHBvcnQge1xuICAgIGZldGNoUmVsYXRpb25Gb3JlaWduS2V5cyxcbiAgICB0eXBlIFRGb3JlaWduS2V5SW5mbyxcbn0gZnJvbSAnLi9mb3JlaWduLWtleXMubWpzJztcbmV4cG9ydCB7XG4gICAgZmV0Y2hQb3N0Z3Jlc1ZlcnNpb24sXG4gICAgdHlwZSBUUG9zdGdyZXNWZXJzaW9uLFxuICAgIGZldGNoRGF0YWJhc2VDb21tZW50LFxuICAgIGZldGNoRGF0YWJhc2VJZGVudGlmaWVyLFxuICAgIHR5cGUgVERhdGFiYXNlSWRlbnRpZmllcixcbn0gZnJvbSAnLi92ZXJzaW9uLm1qcyc7XG5leHBvcnQge1xuICAgIGZldGNoUmVsYXRpb25GaWxlU3RhdHMsXG4gICAgdHlwZSBUUmVsYXRpb25GaWxlU3RhdHMsXG59IGZyb20gJy4vZmlsZS1zdGF0cy5tanMnO1xuZXhwb3J0IHthbmFseXplUmVsYXRpb259IGZyb20gJy4vYW5hbHl6ZS5tanMnO1xuZXhwb3J0IHtcbiAgICBmZXRjaFJlbGF0aW9uU3RhdHMsXG4gICAgdHlwZSBUUmVsYXRpb25TdGF0cyxcbiAgICB0eXBlIFRBdHRyaWJ1dGVTdGF0cyxcbn0gZnJvbSAnLi9zdGF0cy5tanMnO1xuZXhwb3J0IHtcbiAgICBzYW1wbGVDb2x1bW4sXG4gICAgc2FtcGxlQ29tcG9zaXRlU3ViRmllbGQsXG4gICAgZmV0Y2hDb21wb3NpdGVTdWJGaWVsZHMsXG4gICAgdHlwZSBUU2FtcGxlU3RyYXRlZ3ksXG4gICAgdHlwZSBUQ29sdW1uU2FtcGxlLFxuICAgIHR5cGUgVENvbXBvc2l0ZVN1YkZpZWxkLFxuICAgIHR5cGUgVFJlbGF0aW9uS2luZCxcbn0gZnJvbSAnLi9zYW1wbGUubWpzJztcbmV4cG9ydCB7XG4gICAgZmV0Y2hQdWJsaWNDaGVja0NvbnN0cmFpbnRzLFxuICAgIHR5cGUgVENoZWNrQ29uc3RyYWludEluZm8sXG59IGZyb20gJy4vY2hlY2stY29uc3RyYWludHMubWpzJztcbmV4cG9ydCB7ZmV0Y2hJbnN0YWxsZWRFeHRlbnNpb25zLCB0eXBlIFRFeHRlbnNpb25JbmZvfSBmcm9tICcuL2V4dGVuc2lvbnMubWpzJztcbmV4cG9ydCB7ZmV0Y2hQdWJsaWNTZXF1ZW5jZXMsIHR5cGUgVFNlcXVlbmNlSW5mb30gZnJvbSAnLi9zZXF1ZW5jZXMubWpzJztcbmV4cG9ydCB7ZmV0Y2hQdWJsaWNUcmlnZ2VycywgdHlwZSBUVHJpZ2dlckluZm99IGZyb20gJy4vdHJpZ2dlcnMubWpzJztcbmV4cG9ydCB7ZmV0Y2hQdWJsaWNGdW5jdGlvbnMsIHR5cGUgVEZ1bmN0aW9uSW5mb30gZnJvbSAnLi9mdW5jdGlvbnMubWpzJztcbmV4cG9ydCB7XG4gICAgZmV0Y2hQdWJsaWNDdXN0b21UeXBlcyxcbiAgICB0eXBlIFRDdXN0b21UeXBlSW5mbyxcbiAgICB0eXBlIFREb21haW5JbmZvLFxuICAgIHR5cGUgVENvbXBvc2l0ZUluZm8sXG4gICAgdHlwZSBUQ29tcG9zaXRlQXR0cmlidXRlLFxuICAgIHR5cGUgVEN1c3RvbVR5cGVLaW5kLFxufSBmcm9tICcuL2N1c3RvbS10eXBlcy5tanMnO1xuZXhwb3J0IHtcbiAgICBmZXRjaFB1YmxpY1JMUyxcbiAgICB0eXBlIFRSZWxhdGlvblJMUyxcbiAgICB0eXBlIFRQb2xpY3lJbmZvLFxuICAgIHR5cGUgVFBvbGljeUNvbW1hbmQsXG59IGZyb20gJy4vcmxzLm1qcyc7XG5leHBvcnQge1xuICAgIGZldGNoUHVibGljUGxhbm5lclN0YXRpc3RpY3MsXG4gICAgdHlwZSBUUmVsYXRpb25QbGFubmVyU3RhdHMsXG4gICAgdHlwZSBUQXR0cmlidXRlUGxhbm5lclN0YXRzLFxuICAgIHR5cGUgVEV4dGVuZGVkU3RhdGlzdGljLFxufSBmcm9tICcuL3BsYW5uZXItc3RhdHMubWpzJztcbiJdfQ==
@@ -1,16 +0,0 @@
1
- import type { Pool } from 'pg';
2
- export type TIndexInfo = {
3
- index_name: string;
4
- relation_name: string;
5
- is_unique: boolean;
6
- is_primary: boolean;
7
- is_exclusion: boolean;
8
- is_partial: boolean;
9
- partial_predicate: string | null;
10
- attributes: string[];
11
- exclusion_operators: string[] | null;
12
- definition: string;
13
- comment: string | null;
14
- };
15
- export declare const fetchRelationIndexes: (pool: Pool, relationName: string) => Promise<TIndexInfo[]>;
16
- //# sourceMappingURL=indexes.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"indexes.d.mts","sourceRoot":"./src/","sources":["db/indexes.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAE7B,MAAM,MAAM,UAAU,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,MAAM,IAAI,EACV,cAAc,MAAM,KACrB,OAAO,CAAC,UAAU,EAAE,CAwCtB,CAAC"}
@@ -1,38 +0,0 @@
1
- export const fetchRelationIndexes = async (pool, relationName) => {
2
- const result = await pool.query(`
3
- SELECT
4
- i.relname AS index_name,
5
- t.relname AS relation_name,
6
- ix.indisunique AS is_unique,
7
- ix.indisprimary AS is_primary,
8
- ix.indisexclusion AS is_exclusion,
9
- ix.indpred IS NOT NULL AS is_partial,
10
- pg_get_expr(ix.indpred, ix.indrelid) AS partial_predicate,
11
- ARRAY(
12
- SELECT pg_get_indexdef(ix.indexrelid, k + 1, true)
13
- FROM generate_subscripts(ix.indkey, 1) AS k
14
- ORDER BY k
15
- ) AS attributes,
16
- CASE
17
- WHEN ix.indisexclusion THEN (
18
- SELECT ARRAY_AGG(op.oprname ORDER BY ord.n)
19
- FROM pg_constraint con
20
- CROSS JOIN LATERAL unnest(con.conexclop) WITH ORDINALITY AS ord(opoid, n)
21
- JOIN pg_operator op ON op.oid = ord.opoid
22
- WHERE con.conindid = ix.indexrelid
23
- )
24
- ELSE NULL
25
- END AS exclusion_operators,
26
- pg_get_indexdef(ix.indexrelid) AS definition,
27
- obj_description(i.oid, 'pg_class') AS comment
28
- FROM pg_catalog.pg_index ix
29
- JOIN pg_catalog.pg_class i ON i.oid = ix.indexrelid
30
- JOIN pg_catalog.pg_class t ON t.oid = ix.indrelid
31
- JOIN pg_catalog.pg_namespace n ON n.oid = t.relnamespace
32
- WHERE n.nspname = 'public'
33
- AND t.relname = $1
34
- ORDER BY i.relname
35
- `, [relationName]);
36
- return result.rows;
37
- };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlcy5tanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJkYi9pbmRleGVzLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUNyQyxJQUFVLEVBQ1YsWUFBb0IsRUFDQyxFQUFFO0lBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQWlDQyxFQUNELENBQUMsWUFBWSxDQUFDLENBQ2pCLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Bvb2x9IGZyb20gJ3BnJztcblxuZXhwb3J0IHR5cGUgVEluZGV4SW5mbyA9IHtcbiAgICBpbmRleF9uYW1lOiBzdHJpbmc7XG4gICAgcmVsYXRpb25fbmFtZTogc3RyaW5nO1xuICAgIGlzX3VuaXF1ZTogYm9vbGVhbjtcbiAgICBpc19wcmltYXJ5OiBib29sZWFuO1xuICAgIGlzX2V4Y2x1c2lvbjogYm9vbGVhbjtcbiAgICBpc19wYXJ0aWFsOiBib29sZWFuO1xuICAgIHBhcnRpYWxfcHJlZGljYXRlOiBzdHJpbmcgfCBudWxsO1xuICAgIGF0dHJpYnV0ZXM6IHN0cmluZ1tdO1xuICAgIGV4Y2x1c2lvbl9vcGVyYXRvcnM6IHN0cmluZ1tdIHwgbnVsbDtcbiAgICBkZWZpbml0aW9uOiBzdHJpbmc7XG4gICAgY29tbWVudDogc3RyaW5nIHwgbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaFJlbGF0aW9uSW5kZXhlcyA9IGFzeW5jIChcbiAgICBwb29sOiBQb29sLFxuICAgIHJlbGF0aW9uTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxUSW5kZXhJbmZvW10+ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwb29sLnF1ZXJ5PFRJbmRleEluZm8+KFxuICAgICAgICBgXG4gICAgICAgIFNFTEVDVFxuICAgICAgICAgICAgaS5yZWxuYW1lIEFTIGluZGV4X25hbWUsXG4gICAgICAgICAgICB0LnJlbG5hbWUgQVMgcmVsYXRpb25fbmFtZSxcbiAgICAgICAgICAgIGl4LmluZGlzdW5pcXVlIEFTIGlzX3VuaXF1ZSxcbiAgICAgICAgICAgIGl4LmluZGlzcHJpbWFyeSBBUyBpc19wcmltYXJ5LFxuICAgICAgICAgICAgaXguaW5kaXNleGNsdXNpb24gQVMgaXNfZXhjbHVzaW9uLFxuICAgICAgICAgICAgaXguaW5kcHJlZCBJUyBOT1QgTlVMTCBBUyBpc19wYXJ0aWFsLFxuICAgICAgICAgICAgcGdfZ2V0X2V4cHIoaXguaW5kcHJlZCwgaXguaW5kcmVsaWQpIEFTIHBhcnRpYWxfcHJlZGljYXRlLFxuICAgICAgICAgICAgQVJSQVkoXG4gICAgICAgICAgICAgICAgU0VMRUNUIHBnX2dldF9pbmRleGRlZihpeC5pbmRleHJlbGlkLCBrICsgMSwgdHJ1ZSlcbiAgICAgICAgICAgICAgICBGUk9NIGdlbmVyYXRlX3N1YnNjcmlwdHMoaXguaW5ka2V5LCAxKSBBUyBrXG4gICAgICAgICAgICAgICAgT1JERVIgQlkga1xuICAgICAgICAgICAgKSBBUyBhdHRyaWJ1dGVzLFxuICAgICAgICAgICAgQ0FTRVxuICAgICAgICAgICAgICAgIFdIRU4gaXguaW5kaXNleGNsdXNpb24gVEhFTiAoXG4gICAgICAgICAgICAgICAgICAgIFNFTEVDVCBBUlJBWV9BR0cob3Aub3BybmFtZSBPUkRFUiBCWSBvcmQubilcbiAgICAgICAgICAgICAgICAgICAgRlJPTSBwZ19jb25zdHJhaW50IGNvblxuICAgICAgICAgICAgICAgICAgICBDUk9TUyBKT0lOIExBVEVSQUwgdW5uZXN0KGNvbi5jb25leGNsb3ApIFdJVEggT1JESU5BTElUWSBBUyBvcmQob3BvaWQsIG4pXG4gICAgICAgICAgICAgICAgICAgIEpPSU4gcGdfb3BlcmF0b3Igb3AgT04gb3Aub2lkID0gb3JkLm9wb2lkXG4gICAgICAgICAgICAgICAgICAgIFdIRVJFIGNvbi5jb25pbmRpZCA9IGl4LmluZGV4cmVsaWRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgRUxTRSBOVUxMXG4gICAgICAgICAgICBFTkQgQVMgZXhjbHVzaW9uX29wZXJhdG9ycyxcbiAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZihpeC5pbmRleHJlbGlkKSBBUyBkZWZpbml0aW9uLFxuICAgICAgICAgICAgb2JqX2Rlc2NyaXB0aW9uKGkub2lkLCAncGdfY2xhc3MnKSBBUyBjb21tZW50XG4gICAgICAgIEZST00gcGdfY2F0YWxvZy5wZ19pbmRleCBpeFxuICAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgaSBPTiBpLm9pZCA9IGl4LmluZGV4cmVsaWRcbiAgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHQgT04gdC5vaWQgPSBpeC5pbmRyZWxpZFxuICAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB0LnJlbG5hbWVzcGFjZVxuICAgICAgICBXSEVSRSBuLm5zcG5hbWUgPSAncHVibGljJ1xuICAgICAgICAgICAgQU5EIHQucmVsbmFtZSA9ICQxXG4gICAgICAgIE9SREVSIEJZIGkucmVsbmFtZVxuICAgICAgICBgLFxuICAgICAgICBbcmVsYXRpb25OYW1lXSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5yb3dzO1xufTtcbiJdfQ==
@@ -1,33 +0,0 @@
1
- import type { Pool } from 'pg';
2
- export type TAttributePlannerStats = {
3
- attribute_name: string;
4
- inherited: boolean;
5
- null_frac: number;
6
- avg_width: number;
7
- n_distinct: number;
8
- most_common_vals: readonly string[] | null;
9
- most_common_freqs: readonly number[] | null;
10
- histogram_bounds: readonly string[] | null;
11
- correlation: number | null;
12
- most_common_elems: readonly string[] | null;
13
- most_common_elem_freqs: readonly number[] | null;
14
- elem_count_histogram: readonly number[] | null;
15
- };
16
- export type TExtendedStatistic = {
17
- name: string;
18
- kind: readonly string[];
19
- columns: readonly string[];
20
- ndistinct: string | null;
21
- dependencies: string | null;
22
- mcv: string | null;
23
- };
24
- export type TRelationPlannerStats = {
25
- relation_name: string;
26
- reltuples: number;
27
- relpages: number;
28
- relallvisible: number;
29
- attributes: readonly TAttributePlannerStats[];
30
- extended: readonly TExtendedStatistic[];
31
- };
32
- export declare const fetchPublicPlannerStatistics: (pool: Pool) => Promise<readonly TRelationPlannerStats[]>;
33
- //# sourceMappingURL=planner-stats.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planner-stats.d.mts","sourceRoot":"./src/","sources":["db/planner-stats.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAE7B,MAAM,MAAM,sBAAsB,GAAG;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C,iBAAiB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,sBAAsB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACjD,oBAAoB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC9C,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC3C,CAAC;AAsCF,eAAO,MAAM,4BAA4B,GACrC,MAAM,IAAI,KACX,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAwG1C,CAAC"}