relq 1.0.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/LICENSE +21 -0
- package/README.md +862 -0
- package/dist/addons/buffer.js +1869 -0
- package/dist/addons/pg-cursor.js +1425 -0
- package/dist/addons/pg-format.js +2248 -0
- package/dist/addons/pg.js +4790 -0
- package/dist/bin/relq.js +2 -0
- package/dist/cjs/cache/index.cjs +9 -0
- package/dist/cjs/cache/query-cache.cjs +311 -0
- package/dist/cjs/cli/commands/add.cjs +82 -0
- package/dist/cjs/cli/commands/commit.cjs +145 -0
- package/dist/cjs/cli/commands/diff.cjs +84 -0
- package/dist/cjs/cli/commands/export.cjs +333 -0
- package/dist/cjs/cli/commands/fetch.cjs +59 -0
- package/dist/cjs/cli/commands/generate.cjs +242 -0
- package/dist/cjs/cli/commands/history.cjs +165 -0
- package/dist/cjs/cli/commands/import.cjs +524 -0
- package/dist/cjs/cli/commands/init.cjs +437 -0
- package/dist/cjs/cli/commands/introspect.cjs +142 -0
- package/dist/cjs/cli/commands/log.cjs +62 -0
- package/dist/cjs/cli/commands/migrate.cjs +167 -0
- package/dist/cjs/cli/commands/pull.cjs +410 -0
- package/dist/cjs/cli/commands/push.cjs +165 -0
- package/dist/cjs/cli/commands/rollback.cjs +169 -0
- package/dist/cjs/cli/commands/status.cjs +110 -0
- package/dist/cjs/cli/commands/sync.cjs +79 -0
- package/dist/cjs/cli/index.cjs +275 -0
- package/dist/cjs/cli/utils/change-tracker.cjs +446 -0
- package/dist/cjs/cli/utils/commit-manager.cjs +239 -0
- package/dist/cjs/cli/utils/config-loader.cjs +127 -0
- package/dist/cjs/cli/utils/env-loader.cjs +62 -0
- package/dist/cjs/cli/utils/fast-introspect.cjs +398 -0
- package/dist/cjs/cli/utils/git-utils.cjs +404 -0
- package/dist/cjs/cli/utils/migration-generator.cjs +269 -0
- package/dist/cjs/cli/utils/relqignore.cjs +114 -0
- package/dist/cjs/cli/utils/repo-manager.cjs +515 -0
- package/dist/cjs/cli/utils/schema-comparator.cjs +313 -0
- package/dist/cjs/cli/utils/schema-diff.cjs +284 -0
- package/dist/cjs/cli/utils/schema-hash.cjs +108 -0
- package/dist/cjs/cli/utils/schema-introspect.cjs +455 -0
- package/dist/cjs/cli/utils/snapshot-manager.cjs +223 -0
- package/dist/cjs/cli/utils/spinner.cjs +108 -0
- package/dist/cjs/cli/utils/sql-generator.cjs +520 -0
- package/dist/cjs/cli/utils/sql-parser.cjs +999 -0
- package/dist/cjs/cli/utils/type-generator.cjs +2061 -0
- package/dist/cjs/condition/array-condition-builder.cjs +503 -0
- package/dist/cjs/condition/array-numeric-condition-builder.cjs +186 -0
- package/dist/cjs/condition/array-specialized-condition-builder.cjs +206 -0
- package/dist/cjs/condition/array-string-condition-builder.cjs +146 -0
- package/dist/cjs/condition/base-condition-builder.cjs +2 -0
- package/dist/cjs/condition/condition-collector.cjs +284 -0
- package/dist/cjs/condition/fulltext-condition-builder.cjs +61 -0
- package/dist/cjs/condition/geometric-condition-builder.cjs +208 -0
- package/dist/cjs/condition/index.cjs +25 -0
- package/dist/cjs/condition/jsonb-condition-builder.cjs +160 -0
- package/dist/cjs/condition/network-condition-builder.cjs +230 -0
- package/dist/cjs/condition/range-condition-builder.cjs +82 -0
- package/dist/cjs/config/config.cjs +190 -0
- package/dist/cjs/config/index.cjs +9 -0
- package/dist/cjs/constants/pg-values.cjs +68 -0
- package/dist/cjs/copy/copy-builder.cjs +316 -0
- package/dist/cjs/copy/index.cjs +6 -0
- package/dist/cjs/core/query-builder.cjs +440 -0
- package/dist/cjs/core/relq-client.cjs +1831 -0
- package/dist/cjs/core/typed-kuery-client.cjs +2 -0
- package/dist/cjs/count/count-builder.cjs +88 -0
- package/dist/cjs/count/index.cjs +5 -0
- package/dist/cjs/cte/cte-builder.cjs +89 -0
- package/dist/cjs/cte/index.cjs +5 -0
- package/dist/cjs/ddl/function.cjs +48 -0
- package/dist/cjs/ddl/index.cjs +7 -0
- package/dist/cjs/ddl/sql.cjs +54 -0
- package/dist/cjs/delete/delete-builder.cjs +135 -0
- package/dist/cjs/delete/index.cjs +5 -0
- package/dist/cjs/errors/relq-errors.cjs +329 -0
- package/dist/cjs/examples/fulltext-search-test.cjs +122 -0
- package/dist/cjs/explain/explain-builder.cjs +99 -0
- package/dist/cjs/explain/index.cjs +5 -0
- package/dist/cjs/function/create-function-builder.cjs +196 -0
- package/dist/cjs/function/index.cjs +6 -0
- package/dist/cjs/functions/advanced-functions.cjs +241 -0
- package/dist/cjs/functions/case-builder.cjs +66 -0
- package/dist/cjs/functions/geometric-functions.cjs +104 -0
- package/dist/cjs/functions/index.cjs +184 -0
- package/dist/cjs/functions/network-functions.cjs +86 -0
- package/dist/cjs/functions/sql-functions.cjs +431 -0
- package/dist/cjs/index.cjs +164 -0
- package/dist/cjs/indexing/create-index-builder.cjs +187 -0
- package/dist/cjs/indexing/drop-index-builder.cjs +89 -0
- package/dist/cjs/indexing/index-types.cjs +2 -0
- package/dist/cjs/indexing/index.cjs +8 -0
- package/dist/cjs/insert/conflict-builder.cjs +173 -0
- package/dist/cjs/insert/index.cjs +5 -0
- package/dist/cjs/insert/insert-builder.cjs +254 -0
- package/dist/cjs/introspect/index.cjs +229 -0
- package/dist/cjs/maintenance/index.cjs +6 -0
- package/dist/cjs/maintenance/vacuum-builder.cjs +166 -0
- package/dist/cjs/pubsub/index.cjs +7 -0
- package/dist/cjs/pubsub/listen-notify-builder.cjs +57 -0
- package/dist/cjs/pubsub/listener-connection.cjs +180 -0
- package/dist/cjs/raw/index.cjs +5 -0
- package/dist/cjs/raw/raw-query-builder.cjs +27 -0
- package/dist/cjs/schema/index.cjs +15 -0
- package/dist/cjs/schema/schema-builder.cjs +1167 -0
- package/dist/cjs/schema-builder.cjs +21 -0
- package/dist/cjs/schema-definition/column-types.cjs +829 -0
- package/dist/cjs/schema-definition/index.cjs +62 -0
- package/dist/cjs/schema-definition/introspection.cjs +620 -0
- package/dist/cjs/schema-definition/partitions.cjs +129 -0
- package/dist/cjs/schema-definition/pg-enum.cjs +76 -0
- package/dist/cjs/schema-definition/pg-function.cjs +91 -0
- package/dist/cjs/schema-definition/pg-sequence.cjs +56 -0
- package/dist/cjs/schema-definition/pg-trigger.cjs +108 -0
- package/dist/cjs/schema-definition/relations.cjs +98 -0
- package/dist/cjs/schema-definition/sql-expressions.cjs +202 -0
- package/dist/cjs/schema-definition/table-definition.cjs +636 -0
- package/dist/cjs/select/aggregate-builder.cjs +179 -0
- package/dist/cjs/select/index.cjs +5 -0
- package/dist/cjs/select/select-builder.cjs +233 -0
- package/dist/cjs/sequence/index.cjs +7 -0
- package/dist/cjs/sequence/sequence-builder.cjs +264 -0
- package/dist/cjs/table/alter-table-builder.cjs +146 -0
- package/dist/cjs/table/constraint-builder.cjs +102 -0
- package/dist/cjs/table/create-table-builder.cjs +248 -0
- package/dist/cjs/table/index.cjs +17 -0
- package/dist/cjs/table/partition-builder.cjs +131 -0
- package/dist/cjs/table/truncate-builder.cjs +70 -0
- package/dist/cjs/transaction/index.cjs +6 -0
- package/dist/cjs/transaction/transaction-builder.cjs +78 -0
- package/dist/cjs/trigger/create-trigger-builder.cjs +174 -0
- package/dist/cjs/trigger/index.cjs +6 -0
- package/dist/cjs/types/aggregate-types.cjs +2 -0
- package/dist/cjs/types/config-types.cjs +40 -0
- package/dist/cjs/types/inference-types.cjs +18 -0
- package/dist/cjs/types/pagination-types.cjs +7 -0
- package/dist/cjs/types/result-types.cjs +2 -0
- package/dist/cjs/types/schema-types.cjs +2 -0
- package/dist/cjs/types/subscription-types.cjs +2 -0
- package/dist/cjs/types.cjs +2 -0
- package/dist/cjs/update/array-update-builder.cjs +205 -0
- package/dist/cjs/update/index.cjs +13 -0
- package/dist/cjs/update/update-builder.cjs +195 -0
- package/dist/cjs/utils/case-converter.cjs +58 -0
- package/dist/cjs/utils/environment-detection.cjs +120 -0
- package/dist/cjs/utils/index.cjs +10 -0
- package/dist/cjs/utils/pool-defaults.cjs +106 -0
- package/dist/cjs/utils/type-coercion.cjs +118 -0
- package/dist/cjs/view/create-view-builder.cjs +180 -0
- package/dist/cjs/view/index.cjs +7 -0
- package/dist/cjs/window/index.cjs +5 -0
- package/dist/cjs/window/window-builder.cjs +80 -0
- package/dist/config.cjs +1 -0
- package/dist/config.d.ts +655 -0
- package/dist/config.js +1 -0
- package/dist/esm/cache/index.js +1 -0
- package/dist/esm/cache/query-cache.js +303 -0
- package/dist/esm/cli/commands/add.js +78 -0
- package/dist/esm/cli/commands/commit.js +109 -0
- package/dist/esm/cli/commands/diff.js +81 -0
- package/dist/esm/cli/commands/export.js +297 -0
- package/dist/esm/cli/commands/fetch.js +56 -0
- package/dist/esm/cli/commands/generate.js +206 -0
- package/dist/esm/cli/commands/history.js +129 -0
- package/dist/esm/cli/commands/import.js +488 -0
- package/dist/esm/cli/commands/init.js +401 -0
- package/dist/esm/cli/commands/introspect.js +106 -0
- package/dist/esm/cli/commands/log.js +59 -0
- package/dist/esm/cli/commands/migrate.js +131 -0
- package/dist/esm/cli/commands/pull.js +374 -0
- package/dist/esm/cli/commands/push.js +129 -0
- package/dist/esm/cli/commands/rollback.js +133 -0
- package/dist/esm/cli/commands/status.js +107 -0
- package/dist/esm/cli/commands/sync.js +76 -0
- package/dist/esm/cli/index.js +240 -0
- package/dist/esm/cli/utils/change-tracker.js +405 -0
- package/dist/esm/cli/utils/commit-manager.js +191 -0
- package/dist/esm/cli/utils/config-loader.js +86 -0
- package/dist/esm/cli/utils/env-loader.js +57 -0
- package/dist/esm/cli/utils/fast-introspect.js +362 -0
- package/dist/esm/cli/utils/git-utils.js +347 -0
- package/dist/esm/cli/utils/migration-generator.js +263 -0
- package/dist/esm/cli/utils/relqignore.js +74 -0
- package/dist/esm/cli/utils/repo-manager.js +444 -0
- package/dist/esm/cli/utils/schema-comparator.js +307 -0
- package/dist/esm/cli/utils/schema-diff.js +276 -0
- package/dist/esm/cli/utils/schema-hash.js +69 -0
- package/dist/esm/cli/utils/schema-introspect.js +418 -0
- package/dist/esm/cli/utils/snapshot-manager.js +179 -0
- package/dist/esm/cli/utils/spinner.js +101 -0
- package/dist/esm/cli/utils/sql-generator.js +504 -0
- package/dist/esm/cli/utils/sql-parser.js +992 -0
- package/dist/esm/cli/utils/type-generator.js +2058 -0
- package/dist/esm/condition/array-condition-builder.js +495 -0
- package/dist/esm/condition/array-numeric-condition-builder.js +182 -0
- package/dist/esm/condition/array-specialized-condition-builder.js +200 -0
- package/dist/esm/condition/array-string-condition-builder.js +142 -0
- package/dist/esm/condition/base-condition-builder.js +1 -0
- package/dist/esm/condition/condition-collector.js +275 -0
- package/dist/esm/condition/fulltext-condition-builder.js +53 -0
- package/dist/esm/condition/geometric-condition-builder.js +200 -0
- package/dist/esm/condition/index.js +7 -0
- package/dist/esm/condition/jsonb-condition-builder.js +152 -0
- package/dist/esm/condition/network-condition-builder.js +222 -0
- package/dist/esm/condition/range-condition-builder.js +74 -0
- package/dist/esm/config/config.js +150 -0
- package/dist/esm/config/index.js +1 -0
- package/dist/esm/constants/pg-values.js +63 -0
- package/dist/esm/copy/copy-builder.js +308 -0
- package/dist/esm/copy/index.js +1 -0
- package/dist/esm/core/query-builder.js +426 -0
- package/dist/esm/core/relq-client.js +1791 -0
- package/dist/esm/core/typed-kuery-client.js +1 -0
- package/dist/esm/count/count-builder.js +81 -0
- package/dist/esm/count/index.js +1 -0
- package/dist/esm/cte/cte-builder.js +82 -0
- package/dist/esm/cte/index.js +1 -0
- package/dist/esm/ddl/function.js +45 -0
- package/dist/esm/ddl/index.js +2 -0
- package/dist/esm/ddl/sql.js +51 -0
- package/dist/esm/delete/delete-builder.js +128 -0
- package/dist/esm/delete/index.js +1 -0
- package/dist/esm/errors/relq-errors.js +310 -0
- package/dist/esm/examples/fulltext-search-test.js +117 -0
- package/dist/esm/explain/explain-builder.js +95 -0
- package/dist/esm/explain/index.js +1 -0
- package/dist/esm/function/create-function-builder.js +188 -0
- package/dist/esm/function/index.js +1 -0
- package/dist/esm/functions/advanced-functions.js +231 -0
- package/dist/esm/functions/case-builder.js +58 -0
- package/dist/esm/functions/geometric-functions.js +97 -0
- package/dist/esm/functions/index.js +171 -0
- package/dist/esm/functions/network-functions.js +79 -0
- package/dist/esm/functions/sql-functions.js +421 -0
- package/dist/esm/index.js +34 -0
- package/dist/esm/indexing/create-index-builder.js +180 -0
- package/dist/esm/indexing/drop-index-builder.js +81 -0
- package/dist/esm/indexing/index-types.js +1 -0
- package/dist/esm/indexing/index.js +2 -0
- package/dist/esm/insert/conflict-builder.js +162 -0
- package/dist/esm/insert/index.js +1 -0
- package/dist/esm/insert/insert-builder.js +247 -0
- package/dist/esm/introspect/index.js +224 -0
- package/dist/esm/maintenance/index.js +1 -0
- package/dist/esm/maintenance/vacuum-builder.js +158 -0
- package/dist/esm/pubsub/index.js +1 -0
- package/dist/esm/pubsub/listen-notify-builder.js +48 -0
- package/dist/esm/pubsub/listener-connection.js +173 -0
- package/dist/esm/raw/index.js +1 -0
- package/dist/esm/raw/raw-query-builder.js +20 -0
- package/dist/esm/schema/index.js +1 -0
- package/dist/esm/schema/schema-builder.js +1150 -0
- package/dist/esm/schema-builder.js +2 -0
- package/dist/esm/schema-definition/column-types.js +738 -0
- package/dist/esm/schema-definition/index.js +10 -0
- package/dist/esm/schema-definition/introspection.js +614 -0
- package/dist/esm/schema-definition/partitions.js +123 -0
- package/dist/esm/schema-definition/pg-enum.js +70 -0
- package/dist/esm/schema-definition/pg-function.js +85 -0
- package/dist/esm/schema-definition/pg-sequence.js +50 -0
- package/dist/esm/schema-definition/pg-trigger.js +102 -0
- package/dist/esm/schema-definition/relations.js +90 -0
- package/dist/esm/schema-definition/sql-expressions.js +193 -0
- package/dist/esm/schema-definition/table-definition.js +630 -0
- package/dist/esm/select/aggregate-builder.js +172 -0
- package/dist/esm/select/index.js +1 -0
- package/dist/esm/select/select-builder.js +226 -0
- package/dist/esm/sequence/index.js +1 -0
- package/dist/esm/sequence/sequence-builder.js +255 -0
- package/dist/esm/table/alter-table-builder.js +138 -0
- package/dist/esm/table/constraint-builder.js +95 -0
- package/dist/esm/table/create-table-builder.js +241 -0
- package/dist/esm/table/index.js +5 -0
- package/dist/esm/table/partition-builder.js +121 -0
- package/dist/esm/table/truncate-builder.js +63 -0
- package/dist/esm/transaction/index.js +1 -0
- package/dist/esm/transaction/transaction-builder.js +70 -0
- package/dist/esm/trigger/create-trigger-builder.js +166 -0
- package/dist/esm/trigger/index.js +1 -0
- package/dist/esm/types/aggregate-types.js +1 -0
- package/dist/esm/types/config-types.js +36 -0
- package/dist/esm/types/inference-types.js +12 -0
- package/dist/esm/types/pagination-types.js +4 -0
- package/dist/esm/types/result-types.js +1 -0
- package/dist/esm/types/schema-types.js +1 -0
- package/dist/esm/types/subscription-types.js +1 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/update/array-update-builder.js +192 -0
- package/dist/esm/update/index.js +2 -0
- package/dist/esm/update/update-builder.js +188 -0
- package/dist/esm/utils/case-converter.js +55 -0
- package/dist/esm/utils/environment-detection.js +113 -0
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/pool-defaults.js +100 -0
- package/dist/esm/utils/type-coercion.js +110 -0
- package/dist/esm/view/create-view-builder.js +171 -0
- package/dist/esm/view/index.js +1 -0
- package/dist/esm/window/index.js +1 -0
- package/dist/esm/window/window-builder.js +73 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +10341 -0
- package/dist/index.js +1 -0
- package/dist/schema-builder.cjs +1 -0
- package/dist/schema-builder.d.ts +2272 -0
- package/dist/schema-builder.js +1 -0
- package/package.json +55 -0
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,655 @@
|
|
|
1
|
+
import events = require('events');
|
|
2
|
+
import stream = require('stream');
|
|
3
|
+
import { ConnectionOptions } from 'tls';
|
|
4
|
+
|
|
5
|
+
declare enum TypeId {
|
|
6
|
+
BOOL = 16,
|
|
7
|
+
BYTEA = 17,
|
|
8
|
+
CHAR = 18,
|
|
9
|
+
INT8 = 20,
|
|
10
|
+
INT2 = 21,
|
|
11
|
+
INT4 = 23,
|
|
12
|
+
REGPROC = 24,
|
|
13
|
+
TEXT = 25,
|
|
14
|
+
OID = 26,
|
|
15
|
+
TID = 27,
|
|
16
|
+
XID = 28,
|
|
17
|
+
CID = 29,
|
|
18
|
+
JSON = 114,
|
|
19
|
+
XML = 142,
|
|
20
|
+
PG_NODE_TREE = 194,
|
|
21
|
+
SMGR = 210,
|
|
22
|
+
PATH = 602,
|
|
23
|
+
POLYGON = 604,
|
|
24
|
+
CIDR = 650,
|
|
25
|
+
FLOAT4 = 700,
|
|
26
|
+
FLOAT8 = 701,
|
|
27
|
+
ABSTIME = 702,
|
|
28
|
+
RELTIME = 703,
|
|
29
|
+
TINTERVAL = 704,
|
|
30
|
+
CIRCLE = 718,
|
|
31
|
+
MACADDR8 = 774,
|
|
32
|
+
MONEY = 790,
|
|
33
|
+
MACADDR = 829,
|
|
34
|
+
INET = 869,
|
|
35
|
+
ACLITEM = 1033,
|
|
36
|
+
BPCHAR = 1042,
|
|
37
|
+
VARCHAR = 1043,
|
|
38
|
+
DATE = 1082,
|
|
39
|
+
TIME = 1083,
|
|
40
|
+
TIMESTAMP = 1114,
|
|
41
|
+
TIMESTAMPTZ = 1184,
|
|
42
|
+
INTERVAL = 1186,
|
|
43
|
+
TIMETZ = 1266,
|
|
44
|
+
BIT = 1560,
|
|
45
|
+
VARBIT = 1562,
|
|
46
|
+
NUMERIC = 1700,
|
|
47
|
+
REFCURSOR = 1790,
|
|
48
|
+
REGPROCEDURE = 2202,
|
|
49
|
+
REGOPER = 2203,
|
|
50
|
+
REGOPERATOR = 2204,
|
|
51
|
+
REGCLASS = 2205,
|
|
52
|
+
REGTYPE = 2206,
|
|
53
|
+
UUID = 2950,
|
|
54
|
+
TXID_SNAPSHOT = 2970,
|
|
55
|
+
PG_LSN = 3220,
|
|
56
|
+
PG_NDISTINCT = 3361,
|
|
57
|
+
PG_DEPENDENCIES = 3402,
|
|
58
|
+
TSVECTOR = 3614,
|
|
59
|
+
TSQUERY = 3615,
|
|
60
|
+
GTSVECTOR = 3642,
|
|
61
|
+
REGCONFIG = 3734,
|
|
62
|
+
REGDICTIONARY = 3769,
|
|
63
|
+
JSONB = 3802,
|
|
64
|
+
REGNAMESPACE = 4089,
|
|
65
|
+
REGROLE = 4096
|
|
66
|
+
}
|
|
67
|
+
export type TypeFormat = "text" | "binary";
|
|
68
|
+
declare function setTypeParser(id: TypeId, parseFn: ((value: string) => any)): void;
|
|
69
|
+
declare function setTypeParser(id: TypeId, format: TypeFormat, parseFn: (value: string) => any): void;
|
|
70
|
+
declare const getTypeParser: (id: TypeId, format?: TypeFormat) => any;
|
|
71
|
+
export declare type MessageName = "parseComplete" | "bindComplete" | "closeComplete" | "noData" | "portalSuspended" | "replicationStart" | "emptyQuery" | "copyDone" | "copyData" | "rowDescription" | "parameterDescription" | "parameterStatus" | "backendKeyData" | "notification" | "readyForQuery" | "commandComplete" | "dataRow" | "copyInResponse" | "copyOutResponse" | "authenticationOk" | "authenticationMD5Password" | "authenticationCleartextPassword" | "authenticationSASL" | "authenticationSASLContinue" | "authenticationSASLFinal" | "error" | "notice";
|
|
72
|
+
export interface BackendMessage {
|
|
73
|
+
name: MessageName;
|
|
74
|
+
length: number;
|
|
75
|
+
}
|
|
76
|
+
export interface NoticeOrError {
|
|
77
|
+
message: string | undefined;
|
|
78
|
+
severity: string | undefined;
|
|
79
|
+
code: string | undefined;
|
|
80
|
+
detail: string | undefined;
|
|
81
|
+
hint: string | undefined;
|
|
82
|
+
position: string | undefined;
|
|
83
|
+
internalPosition: string | undefined;
|
|
84
|
+
internalQuery: string | undefined;
|
|
85
|
+
where: string | undefined;
|
|
86
|
+
schema: string | undefined;
|
|
87
|
+
table: string | undefined;
|
|
88
|
+
column: string | undefined;
|
|
89
|
+
dataType: string | undefined;
|
|
90
|
+
constraint: string | undefined;
|
|
91
|
+
file: string | undefined;
|
|
92
|
+
line: string | undefined;
|
|
93
|
+
routine: string | undefined;
|
|
94
|
+
}
|
|
95
|
+
declare class NoticeMessage implements BackendMessage, NoticeOrError {
|
|
96
|
+
readonly length: number;
|
|
97
|
+
readonly message: string | undefined;
|
|
98
|
+
constructor(length: number, message: string | undefined);
|
|
99
|
+
readonly name = "notice";
|
|
100
|
+
severity: string | undefined;
|
|
101
|
+
code: string | undefined;
|
|
102
|
+
detail: string | undefined;
|
|
103
|
+
hint: string | undefined;
|
|
104
|
+
position: string | undefined;
|
|
105
|
+
internalPosition: string | undefined;
|
|
106
|
+
internalQuery: string | undefined;
|
|
107
|
+
where: string | undefined;
|
|
108
|
+
schema: string | undefined;
|
|
109
|
+
table: string | undefined;
|
|
110
|
+
column: string | undefined;
|
|
111
|
+
dataType: string | undefined;
|
|
112
|
+
constraint: string | undefined;
|
|
113
|
+
file: string | undefined;
|
|
114
|
+
line: string | undefined;
|
|
115
|
+
routine: string | undefined;
|
|
116
|
+
}
|
|
117
|
+
export type QueryConfigValues<T> = T extends Array<infer U> ? T : never;
|
|
118
|
+
export interface ClientConfig {
|
|
119
|
+
user?: string | undefined;
|
|
120
|
+
database?: string | undefined;
|
|
121
|
+
password?: string | (() => string | Promise<string>) | undefined;
|
|
122
|
+
port?: number | undefined;
|
|
123
|
+
host?: string | undefined;
|
|
124
|
+
connectionString?: string | undefined;
|
|
125
|
+
keepAlive?: boolean | undefined;
|
|
126
|
+
stream?: () => stream.Duplex | undefined;
|
|
127
|
+
statement_timeout?: false | number | undefined;
|
|
128
|
+
ssl?: boolean | ConnectionOptions | undefined;
|
|
129
|
+
query_timeout?: number | undefined;
|
|
130
|
+
lock_timeout?: number | undefined;
|
|
131
|
+
keepAliveInitialDelayMillis?: number | undefined;
|
|
132
|
+
idle_in_transaction_session_timeout?: number | undefined;
|
|
133
|
+
application_name?: string | undefined;
|
|
134
|
+
fallback_application_name?: string | undefined;
|
|
135
|
+
connectionTimeoutMillis?: number | undefined;
|
|
136
|
+
types?: CustomTypesConfig | undefined;
|
|
137
|
+
options?: string | undefined;
|
|
138
|
+
client_encoding?: string | undefined;
|
|
139
|
+
}
|
|
140
|
+
export type ConnectionConfig = ClientConfig;
|
|
141
|
+
export interface PoolConfig extends ClientConfig {
|
|
142
|
+
// properties from module 'pg-pool'
|
|
143
|
+
max?: number | undefined;
|
|
144
|
+
min?: number | undefined;
|
|
145
|
+
idleTimeoutMillis?: number | undefined | null;
|
|
146
|
+
log?: ((...messages: any[]) => void) | undefined;
|
|
147
|
+
Promise?: PromiseConstructorLike | undefined;
|
|
148
|
+
allowExitOnIdle?: boolean | undefined;
|
|
149
|
+
maxUses?: number | undefined;
|
|
150
|
+
maxLifetimeSeconds?: number | undefined;
|
|
151
|
+
Client?: (new () => ClientBase) | undefined;
|
|
152
|
+
}
|
|
153
|
+
export interface QueryConfig<I = any[]> {
|
|
154
|
+
name?: string | undefined;
|
|
155
|
+
text: string;
|
|
156
|
+
values?: QueryConfigValues<I>;
|
|
157
|
+
types?: CustomTypesConfig | undefined;
|
|
158
|
+
}
|
|
159
|
+
export interface CustomTypesConfig {
|
|
160
|
+
getTypeParser: typeof getTypeParser;
|
|
161
|
+
}
|
|
162
|
+
export interface Submittable {
|
|
163
|
+
submit: (connection: Connection) => void;
|
|
164
|
+
}
|
|
165
|
+
export interface QueryArrayConfig<I = any[]> extends QueryConfig<I> {
|
|
166
|
+
rowMode: "array";
|
|
167
|
+
}
|
|
168
|
+
export interface FieldDef {
|
|
169
|
+
name: string;
|
|
170
|
+
tableID: number;
|
|
171
|
+
columnID: number;
|
|
172
|
+
dataTypeID: number;
|
|
173
|
+
dataTypeSize: number;
|
|
174
|
+
dataTypeModifier: number;
|
|
175
|
+
format: string;
|
|
176
|
+
}
|
|
177
|
+
export interface QueryResultBase {
|
|
178
|
+
command: string;
|
|
179
|
+
rowCount: number | null;
|
|
180
|
+
oid: number;
|
|
181
|
+
fields: FieldDef[];
|
|
182
|
+
}
|
|
183
|
+
export interface QueryResultRow {
|
|
184
|
+
[column: string]: any;
|
|
185
|
+
}
|
|
186
|
+
export interface QueryResult<R extends QueryResultRow = any> extends QueryResultBase {
|
|
187
|
+
rows: R[];
|
|
188
|
+
}
|
|
189
|
+
export interface QueryArrayResult<R extends any[] = any[]> extends QueryResultBase {
|
|
190
|
+
rows: R[];
|
|
191
|
+
}
|
|
192
|
+
export interface Notification {
|
|
193
|
+
processId: number;
|
|
194
|
+
channel: string;
|
|
195
|
+
payload?: string | undefined;
|
|
196
|
+
}
|
|
197
|
+
export interface QueryParse {
|
|
198
|
+
name: string;
|
|
199
|
+
text: string;
|
|
200
|
+
types: string[];
|
|
201
|
+
}
|
|
202
|
+
export type ValueMapper = (param: any, index: number) => any;
|
|
203
|
+
export interface BindConfig {
|
|
204
|
+
portal?: string | undefined;
|
|
205
|
+
statement?: string | undefined;
|
|
206
|
+
binary?: string | undefined;
|
|
207
|
+
values?: Array<Buffer | null | undefined | string> | undefined;
|
|
208
|
+
valueMapper?: ValueMapper | undefined;
|
|
209
|
+
}
|
|
210
|
+
export interface ExecuteConfig {
|
|
211
|
+
portal?: string | undefined;
|
|
212
|
+
rows?: string | undefined;
|
|
213
|
+
}
|
|
214
|
+
export interface MessageConfig {
|
|
215
|
+
type: string;
|
|
216
|
+
name?: string | undefined;
|
|
217
|
+
}
|
|
218
|
+
declare function escapeIdentifier(str: string): string;
|
|
219
|
+
declare function escapeLiteral(str: string): string;
|
|
220
|
+
declare class Connection extends events.EventEmitter {
|
|
221
|
+
readonly stream: stream.Duplex;
|
|
222
|
+
constructor(config?: ConnectionConfig);
|
|
223
|
+
bind(config: BindConfig | null, more: boolean): void;
|
|
224
|
+
execute(config: ExecuteConfig | null, more: boolean): void;
|
|
225
|
+
parse(query: QueryParse, more: boolean): void;
|
|
226
|
+
query(text: string): void;
|
|
227
|
+
describe(msg: MessageConfig, more: boolean): void;
|
|
228
|
+
close(msg: MessageConfig, more: boolean): void;
|
|
229
|
+
flush(): void;
|
|
230
|
+
sync(): void;
|
|
231
|
+
end(): void;
|
|
232
|
+
}
|
|
233
|
+
declare class ClientBase extends events.EventEmitter {
|
|
234
|
+
constructor(config?: string | ClientConfig);
|
|
235
|
+
connect(): Promise<void>;
|
|
236
|
+
connect(callback: (err: Error) => void): void;
|
|
237
|
+
query<T extends Submittable>(queryStream: T): T;
|
|
238
|
+
// tslint:disable:no-unnecessary-generics
|
|
239
|
+
query<R extends any[] = any[], I = any[]>(queryConfig: QueryArrayConfig<I>, values?: QueryConfigValues<I>): Promise<QueryArrayResult<R>>;
|
|
240
|
+
query<R extends QueryResultRow = any, I = any>(queryConfig: QueryConfig<I>): Promise<QueryResult<R>>;
|
|
241
|
+
query<R extends QueryResultRow = any, I = any[]>(queryTextOrConfig: string | QueryConfig<I>, values?: QueryConfigValues<I>): Promise<QueryResult<R>>;
|
|
242
|
+
query<R extends any[] = any[], I = any[]>(queryConfig: QueryArrayConfig<I>, callback: (err: Error, result: QueryArrayResult<R>) => void): void;
|
|
243
|
+
query<R extends QueryResultRow = any, I = any[]>(queryTextOrConfig: string | QueryConfig<I>, callback: (err: Error, result: QueryResult<R>) => void): void;
|
|
244
|
+
query<R extends QueryResultRow = any, I = any[]>(queryText: string, values: QueryConfigValues<I>, callback: (err: Error, result: QueryResult<R>) => void): void;
|
|
245
|
+
// tslint:enable:no-unnecessary-generics
|
|
246
|
+
copyFrom(queryText: string): stream.Writable;
|
|
247
|
+
copyTo(queryText: string): stream.Readable;
|
|
248
|
+
pauseDrain(): void;
|
|
249
|
+
resumeDrain(): void;
|
|
250
|
+
escapeIdentifier: typeof escapeIdentifier;
|
|
251
|
+
escapeLiteral: typeof escapeLiteral;
|
|
252
|
+
setTypeParser: typeof setTypeParser;
|
|
253
|
+
getTypeParser: typeof getTypeParser;
|
|
254
|
+
on<E extends "drain" | "error" | "notice" | "notification" | "end">(event: E, listener: E extends "drain" | "end" ? () => void : E extends "error" ? (err: Error) => void : E extends "notice" ? (notice: NoticeMessage) => void : (message: Notification) => void): this;
|
|
255
|
+
}
|
|
256
|
+
declare const EMPTY_OBJECT: unique symbol;
|
|
257
|
+
declare const EMPTY_ARRAY: unique symbol;
|
|
258
|
+
export interface ColumnConfig<T = unknown> {
|
|
259
|
+
$type: string;
|
|
260
|
+
$sqlType?: string;
|
|
261
|
+
$tsType?: T;
|
|
262
|
+
$nullable?: boolean;
|
|
263
|
+
$default?: T | (() => T) | string | object | typeof EMPTY_OBJECT | typeof EMPTY_ARRAY;
|
|
264
|
+
$primaryKey?: boolean;
|
|
265
|
+
$unique?: boolean;
|
|
266
|
+
$references?: {
|
|
267
|
+
table: string;
|
|
268
|
+
column: string;
|
|
269
|
+
onDelete?: string;
|
|
270
|
+
onUpdate?: string;
|
|
271
|
+
};
|
|
272
|
+
$check?: string;
|
|
273
|
+
$checkValues?: readonly string[];
|
|
274
|
+
$generated?: {
|
|
275
|
+
expression: string;
|
|
276
|
+
stored?: boolean;
|
|
277
|
+
};
|
|
278
|
+
$array?: boolean;
|
|
279
|
+
$dimensions?: number;
|
|
280
|
+
$length?: number;
|
|
281
|
+
$precision?: number;
|
|
282
|
+
$scale?: number;
|
|
283
|
+
$withTimezone?: boolean;
|
|
284
|
+
$columnName?: string;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Partition Types and Builders
|
|
288
|
+
*
|
|
289
|
+
* Provides type-safe, elegant API for PostgreSQL partitioning.
|
|
290
|
+
* Supports LIST, RANGE, HASH and multi-level subpartitioning.
|
|
291
|
+
*/
|
|
292
|
+
export type PartitionType = "LIST" | "RANGE" | "HASH";
|
|
293
|
+
/**
|
|
294
|
+
* Partition strategy definition
|
|
295
|
+
*/
|
|
296
|
+
export interface PartitionStrategyDef {
|
|
297
|
+
readonly $type: PartitionType;
|
|
298
|
+
readonly $column: string;
|
|
299
|
+
readonly $modulus?: number;
|
|
300
|
+
readonly $subpartition?: PartitionStrategyDef;
|
|
301
|
+
}
|
|
302
|
+
export interface IndexStorageOptions {
|
|
303
|
+
/** Fill factor (10-100). Lower values leave more space for updates. Default varies by index type. */
|
|
304
|
+
fillfactor?: number;
|
|
305
|
+
/** For GIN indexes: enable fast update technique */
|
|
306
|
+
fastupdate?: boolean;
|
|
307
|
+
/** For GIN indexes: pending list limit in KB */
|
|
308
|
+
ginPendingListLimit?: number;
|
|
309
|
+
/** For BRIN indexes: pages per range */
|
|
310
|
+
pagesPerRange?: number;
|
|
311
|
+
/** For BRIN indexes: enable auto-summarization */
|
|
312
|
+
autosummarize?: boolean;
|
|
313
|
+
/** Number of leaf pages to buffer for GiST indexes */
|
|
314
|
+
buffering?: "auto" | "on" | "off";
|
|
315
|
+
}
|
|
316
|
+
export interface IndexDefinition {
|
|
317
|
+
name: string;
|
|
318
|
+
columns: string[];
|
|
319
|
+
unique?: boolean;
|
|
320
|
+
using?: "BTREE" | "HASH" | "GIN" | "GIST" | "BRIN" | "SPGIST";
|
|
321
|
+
where?: string;
|
|
322
|
+
isUnique?: boolean;
|
|
323
|
+
/** Index storage options like fillfactor */
|
|
324
|
+
with?: IndexStorageOptions;
|
|
325
|
+
/** Tablespace for the index */
|
|
326
|
+
tablespace?: string;
|
|
327
|
+
/** Nulls ordering: first or last */
|
|
328
|
+
nulls?: "first" | "last";
|
|
329
|
+
/** Sort order */
|
|
330
|
+
order?: "asc" | "desc";
|
|
331
|
+
/** Include columns (covering index) */
|
|
332
|
+
include?: string[];
|
|
333
|
+
/** Expression for expression-based indexes */
|
|
334
|
+
expression?: string;
|
|
335
|
+
}
|
|
336
|
+
export type IsSerialType<T extends string> = T extends "SERIAL" | "BIGSERIAL" | "SMALLSERIAL" | "SERIAL4" | "SERIAL2" | "SERIAL8" ? true : false;
|
|
337
|
+
export type HasDefault<C> = C extends {
|
|
338
|
+
$default: undefined;
|
|
339
|
+
} ? false : C extends {
|
|
340
|
+
$default: infer D;
|
|
341
|
+
} ? D extends undefined ? false : true : false;
|
|
342
|
+
export type HasGenerated<C> = C extends {
|
|
343
|
+
$generated: undefined;
|
|
344
|
+
} ? false : C extends {
|
|
345
|
+
$generated: infer G;
|
|
346
|
+
} ? G extends undefined ? false : true : false;
|
|
347
|
+
export type GetColumnType<C> = C extends {
|
|
348
|
+
$type: infer T;
|
|
349
|
+
} ? T extends string ? T : string : string;
|
|
350
|
+
/**
|
|
351
|
+
* Check if column is explicitly marked NOT NULL
|
|
352
|
+
* - $nullable: false → explicitly NOT NULL (via .notNull())
|
|
353
|
+
* - $nullable: true → explicitly nullable (via .nullable())
|
|
354
|
+
* - $nullable: undefined → implicitly nullable (PostgreSQL default)
|
|
355
|
+
*/
|
|
356
|
+
export type IsExplicitlyNotNull<C> = C extends {
|
|
357
|
+
$nullable: false;
|
|
358
|
+
} ? true : false;
|
|
359
|
+
/**
|
|
360
|
+
* Check if column is a PRIMARY KEY
|
|
361
|
+
* PRIMARY KEY columns are implicitly NOT NULL in PostgreSQL
|
|
362
|
+
*/
|
|
363
|
+
export type IsPrimaryKey<C> = C extends {
|
|
364
|
+
$primaryKey: true;
|
|
365
|
+
} ? true : false;
|
|
366
|
+
/**
|
|
367
|
+
* Determine if a column is required for INSERT:
|
|
368
|
+
* REQUIRED when: (explicitly NOT NULL or PRIMARY KEY) AND no default/generated value
|
|
369
|
+
* OPTIONAL when: has default, is generated, is serial, or is nullable (explicit or implicit)
|
|
370
|
+
*/
|
|
371
|
+
export type IsRequiredForInsert<C> = HasDefault<C> extends true ? false : HasGenerated<C> extends true ? false : IsSerialType<GetColumnType<C>> extends true ? false : IsExplicitlyNotNull<C> extends true ? true : IsPrimaryKey<C> extends true ? true : false;
|
|
372
|
+
/**
|
|
373
|
+
* Determine if a column is required for SELECT:
|
|
374
|
+
* REQUIRED when: explicitly NOT NULL, has default, is generated, or is PRIMARY KEY
|
|
375
|
+
* OPTIONAL when: nullable (no NOT NULL constraint)
|
|
376
|
+
*/
|
|
377
|
+
export type IsRequiredForSelect<C> = IsExplicitlyNotNull<C> extends true ? true : IsPrimaryKey<C> extends true ? true : HasDefault<C> extends true ? true : HasGenerated<C> extends true ? true : IsSerialType<GetColumnType<C>> extends true ? true : false;
|
|
378
|
+
/**
|
|
379
|
+
* Build SELECT type with smart required/optional:
|
|
380
|
+
* - Required: NOT NULL, PRIMARY KEY, has DEFAULT/GENERATED columns
|
|
381
|
+
* - Optional: Nullable columns without constraints
|
|
382
|
+
*/
|
|
383
|
+
export type BuildSelectType<T extends Record<string, ColumnConfig>> = {
|
|
384
|
+
[K in keyof T as IsRequiredForSelect<T[K]> extends true ? K : never]: T[K] extends ColumnConfig<infer U> ? T[K] extends {
|
|
385
|
+
$nullable: true;
|
|
386
|
+
} ? U | null : U : unknown;
|
|
387
|
+
} & {
|
|
388
|
+
[K in keyof T as IsRequiredForSelect<T[K]> extends true ? never : K]?: T[K] extends ColumnConfig<infer U> ? U | null : unknown;
|
|
389
|
+
};
|
|
390
|
+
export type BuildInsertType<T extends Record<string, ColumnConfig>> = {
|
|
391
|
+
[K in keyof T as IsRequiredForInsert<T[K]> extends true ? K : never]: T[K] extends ColumnConfig<infer U> ? U : unknown;
|
|
392
|
+
} & {
|
|
393
|
+
[K in keyof T as IsRequiredForInsert<T[K]> extends true ? never : K]?: T[K] extends ColumnConfig<infer U> ? T[K] extends {
|
|
394
|
+
$nullable: true;
|
|
395
|
+
} ? U | null : U : unknown;
|
|
396
|
+
};
|
|
397
|
+
export interface TableDefinition<T extends Record<string, ColumnConfig>> {
|
|
398
|
+
$name: string;
|
|
399
|
+
$schema?: string;
|
|
400
|
+
$columns: T;
|
|
401
|
+
$primaryKey?: string[];
|
|
402
|
+
$uniqueConstraints?: Array<{
|
|
403
|
+
columns: string[];
|
|
404
|
+
name?: string;
|
|
405
|
+
}>;
|
|
406
|
+
$checkConstraints?: Array<{
|
|
407
|
+
expression: string;
|
|
408
|
+
name?: string;
|
|
409
|
+
}>;
|
|
410
|
+
$foreignKeys?: Array<{
|
|
411
|
+
columns: string[];
|
|
412
|
+
references: {
|
|
413
|
+
table: string;
|
|
414
|
+
columns: string[];
|
|
415
|
+
};
|
|
416
|
+
onDelete?: string;
|
|
417
|
+
onUpdate?: string;
|
|
418
|
+
name?: string;
|
|
419
|
+
}>;
|
|
420
|
+
$indexes?: IndexDefinition[];
|
|
421
|
+
$inherits?: string[];
|
|
422
|
+
$partitionBy?: PartitionStrategyDef;
|
|
423
|
+
$tablespace?: string;
|
|
424
|
+
$withOptions?: Record<string, unknown>;
|
|
425
|
+
$inferSelect: BuildSelectType<T>;
|
|
426
|
+
$inferInsert: BuildInsertType<T>;
|
|
427
|
+
toSQL(): string;
|
|
428
|
+
toCreateIndexSQL(): string[];
|
|
429
|
+
}
|
|
430
|
+
export interface RelqMigrationConfig {
|
|
431
|
+
directory: string;
|
|
432
|
+
tableName?: string;
|
|
433
|
+
schemaName?: string;
|
|
434
|
+
format?: "sequential" | "timestamp";
|
|
435
|
+
}
|
|
436
|
+
export interface RelqTypeGenConfig {
|
|
437
|
+
output: string;
|
|
438
|
+
includeEnums?: boolean;
|
|
439
|
+
includeRelations?: boolean;
|
|
440
|
+
namingConvention?: "camelCase" | "PascalCase" | "snake_case";
|
|
441
|
+
}
|
|
442
|
+
export interface RelqLoggingConfig {
|
|
443
|
+
queries?: boolean;
|
|
444
|
+
parameters?: boolean;
|
|
445
|
+
timing?: boolean;
|
|
446
|
+
errors?: boolean;
|
|
447
|
+
level?: "debug" | "info" | "warn" | "error";
|
|
448
|
+
}
|
|
449
|
+
export interface RelqCacheConfig {
|
|
450
|
+
enabled?: boolean;
|
|
451
|
+
strategy?: "lru" | "ttl" | "size";
|
|
452
|
+
maxSize?: number;
|
|
453
|
+
ttl?: number;
|
|
454
|
+
maxMemory?: number;
|
|
455
|
+
}
|
|
456
|
+
export interface RelqConnectionConfig extends Omit<PoolConfig, "ssl"> {
|
|
457
|
+
url?: string;
|
|
458
|
+
ssl?: boolean | "require" | "prefer" | "allow" | "disable" | PoolConfig["ssl"];
|
|
459
|
+
}
|
|
460
|
+
export interface RelqGenerateConfig {
|
|
461
|
+
outDir: string;
|
|
462
|
+
introspect?: boolean;
|
|
463
|
+
/**
|
|
464
|
+
* Convert snake_case column names to camelCase in generated schema.
|
|
465
|
+
* When true: `customColorsDark: text('custom_colors_dark')`
|
|
466
|
+
* When false: `custom_colors_dark: text()`
|
|
467
|
+
* @default true
|
|
468
|
+
*/
|
|
469
|
+
camelCase?: boolean;
|
|
470
|
+
/**
|
|
471
|
+
* Include database functions in generated schema.
|
|
472
|
+
* @default false
|
|
473
|
+
*/
|
|
474
|
+
includeFunctions?: boolean;
|
|
475
|
+
/**
|
|
476
|
+
* Include triggers in generated schema.
|
|
477
|
+
* @default false
|
|
478
|
+
*/
|
|
479
|
+
includeTriggers?: boolean;
|
|
480
|
+
/**
|
|
481
|
+
* Render numeric/decimal types as string instead of number.
|
|
482
|
+
* When true: `amount: numeric()` has type `string`
|
|
483
|
+
* When false: `amount: numeric()` has type `number` (default)
|
|
484
|
+
*
|
|
485
|
+
* Use string for large decimal values that exceed JavaScript's number precision.
|
|
486
|
+
* @default false
|
|
487
|
+
*/
|
|
488
|
+
numericAsString?: boolean;
|
|
489
|
+
}
|
|
490
|
+
export interface RelqSafetyConfig {
|
|
491
|
+
warnOnDataLoss?: boolean;
|
|
492
|
+
confirmDestructive?: boolean;
|
|
493
|
+
backupBeforeMigrate?: boolean;
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Git-like sync behavior configuration
|
|
497
|
+
*/
|
|
498
|
+
export interface RelqSyncConfig {
|
|
499
|
+
/**
|
|
500
|
+
* Path to snapshot file for offline diff
|
|
501
|
+
* @default '.relq/snapshot.json'
|
|
502
|
+
*/
|
|
503
|
+
snapshot?: string;
|
|
504
|
+
/**
|
|
505
|
+
* Table patterns to ignore (glob-style)
|
|
506
|
+
* @example ['_temp_*', '_relq_*', 'pg_*']
|
|
507
|
+
*/
|
|
508
|
+
ignore?: string[];
|
|
509
|
+
/**
|
|
510
|
+
* Backup directory for schema.ts before operations
|
|
511
|
+
* @default '.relq/backups'
|
|
512
|
+
*/
|
|
513
|
+
backupDir?: string;
|
|
514
|
+
/**
|
|
515
|
+
* Auto-generate migration when diff found during sync
|
|
516
|
+
* @default true
|
|
517
|
+
*/
|
|
518
|
+
autoGenerate?: boolean;
|
|
519
|
+
/**
|
|
520
|
+
* Auto-apply migrations (dangerous in production)
|
|
521
|
+
* @default false
|
|
522
|
+
*/
|
|
523
|
+
autoPush?: boolean;
|
|
524
|
+
/**
|
|
525
|
+
* Only pull if no conflicts (like --ff-only)
|
|
526
|
+
* @default false
|
|
527
|
+
*/
|
|
528
|
+
fastForwardOnly?: boolean;
|
|
529
|
+
/**
|
|
530
|
+
* Create backup of schema.ts before pull
|
|
531
|
+
* @default true
|
|
532
|
+
*/
|
|
533
|
+
createBackup?: boolean;
|
|
534
|
+
}
|
|
535
|
+
export interface RelqSchemaConfig<TTables extends Record<string, TableDefinition<Record<string, ColumnConfig>>> = Record<string, TableDefinition<Record<string, ColumnConfig>>>> {
|
|
536
|
+
tables?: TTables;
|
|
537
|
+
directory?: string;
|
|
538
|
+
defaultSchema?: string;
|
|
539
|
+
}
|
|
540
|
+
export interface RelqConfig<TTables extends Record<string, TableDefinition<Record<string, ColumnConfig>>> = Record<string, TableDefinition<Record<string, ColumnConfig>>>> {
|
|
541
|
+
connection?: RelqConnectionConfig;
|
|
542
|
+
schema?: string | RelqSchemaConfig<TTables>;
|
|
543
|
+
migrations?: RelqMigrationConfig;
|
|
544
|
+
typeGeneration?: RelqTypeGenConfig;
|
|
545
|
+
generate?: RelqGenerateConfig;
|
|
546
|
+
safety?: RelqSafetyConfig;
|
|
547
|
+
logging?: RelqLoggingConfig;
|
|
548
|
+
cache?: RelqCacheConfig;
|
|
549
|
+
pool?: {
|
|
550
|
+
min?: number;
|
|
551
|
+
max?: number;
|
|
552
|
+
idleTimeoutMs?: number;
|
|
553
|
+
connectionTimeoutMs?: number;
|
|
554
|
+
acquireTimeoutMs?: number;
|
|
555
|
+
};
|
|
556
|
+
conventions?: {
|
|
557
|
+
timestamps?: {
|
|
558
|
+
createdAt?: string | false;
|
|
559
|
+
updatedAt?: string | false;
|
|
560
|
+
deletedAt?: string | false;
|
|
561
|
+
};
|
|
562
|
+
softDelete?: boolean;
|
|
563
|
+
primaryKey?: string;
|
|
564
|
+
};
|
|
565
|
+
plugins?: RelqPlugin[];
|
|
566
|
+
/**
|
|
567
|
+
* Git-like sync behavior configuration
|
|
568
|
+
*/
|
|
569
|
+
sync?: RelqSyncConfig;
|
|
570
|
+
extensions?: string[];
|
|
571
|
+
/**
|
|
572
|
+
* Author name for schema commits
|
|
573
|
+
* Used when creating commits in _relq_commits table and .relq folder
|
|
574
|
+
* @example 'John Mathew'
|
|
575
|
+
*/
|
|
576
|
+
author?: string;
|
|
577
|
+
/**
|
|
578
|
+
* Maximum number of commits to keep in history
|
|
579
|
+
* Old commits beyond this limit are automatically pruned
|
|
580
|
+
* @default 1000
|
|
581
|
+
*/
|
|
582
|
+
commitLimit?: number;
|
|
583
|
+
/**
|
|
584
|
+
* Render numeric/decimal types as string instead of number.
|
|
585
|
+
* When true: `amount: numeric()` has type `string`
|
|
586
|
+
* When false: `amount: numeric()` has type `number` (default)
|
|
587
|
+
*
|
|
588
|
+
* Use string for large decimal values that exceed JavaScript's number precision.
|
|
589
|
+
* @default false
|
|
590
|
+
*/
|
|
591
|
+
numericAsString?: boolean;
|
|
592
|
+
/**
|
|
593
|
+
* Include VIEWs and MATERIALIZED VIEWs in schema generation.
|
|
594
|
+
* @default false
|
|
595
|
+
*/
|
|
596
|
+
includeViews?: boolean;
|
|
597
|
+
/**
|
|
598
|
+
* Include FOREIGN TABLEs (Foreign Data Wrapper) in schema generation.
|
|
599
|
+
* @default false
|
|
600
|
+
*/
|
|
601
|
+
includeFDW?: boolean;
|
|
602
|
+
/**
|
|
603
|
+
* Include TRIGGERs in schema generation.
|
|
604
|
+
* @default false
|
|
605
|
+
*/
|
|
606
|
+
includeTriggers?: boolean;
|
|
607
|
+
/**
|
|
608
|
+
* Include FUNCTIONs and PROCEDUREs in schema generation.
|
|
609
|
+
* @default false
|
|
610
|
+
*/
|
|
611
|
+
includeFunctions?: boolean;
|
|
612
|
+
}
|
|
613
|
+
export interface RelqPlugin {
|
|
614
|
+
name: string;
|
|
615
|
+
version?: string;
|
|
616
|
+
hooks?: {
|
|
617
|
+
beforeQuery?: (query: string, params: unknown[]) => {
|
|
618
|
+
query: string;
|
|
619
|
+
params: unknown[];
|
|
620
|
+
} | void;
|
|
621
|
+
afterQuery?: (result: unknown, query: string, params: unknown[]) => unknown | void;
|
|
622
|
+
onError?: (error: Error, query: string, params: unknown[]) => void;
|
|
623
|
+
onConnect?: () => void | Promise<void>;
|
|
624
|
+
onDisconnect?: () => void | Promise<void>;
|
|
625
|
+
};
|
|
626
|
+
}
|
|
627
|
+
export declare function defineConfig<TTables extends Record<string, TableDefinition<Record<string, ColumnConfig>>> = Record<string, TableDefinition<Record<string, ColumnConfig>>>>(config: RelqConfig<TTables>): RelqConfig<TTables>;
|
|
628
|
+
export declare function loadConfig(path?: string): Promise<RelqConfig>;
|
|
629
|
+
export declare function parseConnectionUrl(url: string): RelqConnectionConfig;
|
|
630
|
+
export declare function mergeConfigs(...configs: Partial<RelqConfig>[]): RelqConfig;
|
|
631
|
+
export declare function validateConfig(config: RelqConfig): {
|
|
632
|
+
valid: boolean;
|
|
633
|
+
errors: string[];
|
|
634
|
+
};
|
|
635
|
+
interface Blob$1 extends BunConsumerConvenienceMethods {
|
|
636
|
+
// We have to specify bytes again even though it comes from
|
|
637
|
+
// BunConsumerConvenienceMethods, because inheritance in TypeScript is
|
|
638
|
+
// slightly different from just "copying in the methods" (the difference is
|
|
639
|
+
// related to how type parameters are resolved)
|
|
640
|
+
bytes(): Promise<Uint8Array<ArrayBuffer>>;
|
|
641
|
+
/**
|
|
642
|
+
* Consume the blob as a FormData instance
|
|
643
|
+
*/
|
|
644
|
+
formData(): Promise<FormData>;
|
|
645
|
+
/**
|
|
646
|
+
* Consume the blob as an ArrayBuffer
|
|
647
|
+
*/
|
|
648
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
649
|
+
/**
|
|
650
|
+
* Returns a readable stream of the blob's contents
|
|
651
|
+
*/
|
|
652
|
+
stream(): ReadableStream<Uint8Array<ArrayBuffer>>;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
export {};
|
package/dist/config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './esm/config/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QueryCache, CacheKeyBuilder, createQueryCacheMiddleware, withCache, createTableCache } from "./query-cache.js";
|