@relq/orm 0.1.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.
Files changed (254) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +236 -0
  3. package/dist/cjs/__test-types.cjs +17 -0
  4. package/dist/cjs/addon/cursor.cjs +1473 -0
  5. package/dist/cjs/addon/pg.cjs +4969 -0
  6. package/dist/cjs/cache/index.cjs +9 -0
  7. package/dist/cjs/cache/query-cache.cjs +311 -0
  8. package/dist/cjs/condition/array-condition-builder.cjs +527 -0
  9. package/dist/cjs/condition/array-numeric-condition-builder.cjs +186 -0
  10. package/dist/cjs/condition/array-specialized-condition-builder.cjs +206 -0
  11. package/dist/cjs/condition/array-string-condition-builder.cjs +146 -0
  12. package/dist/cjs/condition/base-condition-builder.cjs +2 -0
  13. package/dist/cjs/condition/condition-collector.cjs +461 -0
  14. package/dist/cjs/condition/fulltext-condition-builder.cjs +61 -0
  15. package/dist/cjs/condition/geometric-condition-builder.cjs +228 -0
  16. package/dist/cjs/condition/index.cjs +29 -0
  17. package/dist/cjs/condition/jsonb-condition-builder.cjs +448 -0
  18. package/dist/cjs/condition/network-condition-builder.cjs +237 -0
  19. package/dist/cjs/condition/postgis-condition-builder.cjs +188 -0
  20. package/dist/cjs/condition/range-condition-builder.cjs +98 -0
  21. package/dist/cjs/core/helpers/ConnectedAggregateBuilder.cjs +132 -0
  22. package/dist/cjs/core/helpers/ConnectedCTEBuilder.cjs +53 -0
  23. package/dist/cjs/core/helpers/ConnectedCountBuilder.cjs +73 -0
  24. package/dist/cjs/core/helpers/ConnectedDeleteBuilder.cjs +65 -0
  25. package/dist/cjs/core/helpers/ConnectedInsertBuilder.cjs +112 -0
  26. package/dist/cjs/core/helpers/ConnectedInsertFromSelectBuilder.cjs +66 -0
  27. package/dist/cjs/core/helpers/ConnectedQueryBuilder.cjs +146 -0
  28. package/dist/cjs/core/helpers/ConnectedRawQueryBuilder.cjs +46 -0
  29. package/dist/cjs/core/helpers/ConnectedSelectBuilder.cjs +331 -0
  30. package/dist/cjs/core/helpers/ConnectedTransactionBuilder.cjs +105 -0
  31. package/dist/cjs/core/helpers/ConnectedUpdateBuilder.cjs +79 -0
  32. package/dist/cjs/core/helpers/PaginateBuilder.cjs +178 -0
  33. package/dist/cjs/core/helpers/ReturningExecutor.cjs +70 -0
  34. package/dist/cjs/core/helpers/capability-guard.cjs +10 -0
  35. package/dist/cjs/core/helpers/index.cjs +31 -0
  36. package/dist/cjs/core/helpers/methods.cjs +10 -0
  37. package/dist/cjs/core/helpers/query-convenience.cjs +238 -0
  38. package/dist/cjs/core/helpers/select-joins.cjs +251 -0
  39. package/dist/cjs/core/helpers/select-pagination.cjs +233 -0
  40. package/dist/cjs/core/helpers/select-types.cjs +2 -0
  41. package/dist/cjs/core/pg-family/cockroachdb-client/capabilities.cjs +31 -0
  42. package/dist/cjs/core/pg-family/cockroachdb-client/index.cjs +7 -0
  43. package/dist/cjs/core/pg-family/cockroachdb-client/relq-cockroach.cjs +16 -0
  44. package/dist/cjs/core/pg-family/dsql-client/capabilities.cjs +31 -0
  45. package/dist/cjs/core/pg-family/dsql-client/index.cjs +7 -0
  46. package/dist/cjs/core/pg-family/dsql-client/relq-dsql.cjs +16 -0
  47. package/dist/cjs/core/pg-family/index.cjs +19 -0
  48. package/dist/cjs/core/pg-family/nile-client/capabilities.cjs +31 -0
  49. package/dist/cjs/core/pg-family/nile-client/index.cjs +7 -0
  50. package/dist/cjs/core/pg-family/nile-client/relq-nile.cjs +36 -0
  51. package/dist/cjs/core/pg-family/nile-client/tenant-context.cjs +44 -0
  52. package/dist/cjs/core/pg-family/pg-client/capabilities.cjs +31 -0
  53. package/dist/cjs/core/pg-family/pg-client/index.cjs +7 -0
  54. package/dist/cjs/core/pg-family/pg-client/relq-postgres.cjs +43 -0
  55. package/dist/cjs/core/pg-family/shared/pg-base.cjs +385 -0
  56. package/dist/cjs/core/pg-family/shared/pg-dialect.cjs +67 -0
  57. package/dist/cjs/core/pg-family/shared/pg-error-parser.cjs +34 -0
  58. package/dist/cjs/core/pg-family/shared/pg-type-coercion.cjs +14 -0
  59. package/dist/cjs/core/relq-base.cjs +307 -0
  60. package/dist/cjs/core/relq-client.cjs +56 -0
  61. package/dist/cjs/core/shared/cleanup.cjs +36 -0
  62. package/dist/cjs/core/shared/column-mapping.cjs +97 -0
  63. package/dist/cjs/core/shared/errors.cjs +17 -0
  64. package/dist/cjs/core/shared/index.cjs +24 -0
  65. package/dist/cjs/core/shared/table-accessor.cjs +22 -0
  66. package/dist/cjs/core/shared/transform.cjs +35 -0
  67. package/dist/cjs/core/shared/types.cjs +2 -0
  68. package/dist/cjs/core/shared/validation.cjs +140 -0
  69. package/dist/cjs/core/types/core.types.cjs +2 -0
  70. package/dist/cjs/count/count-builder.cjs +88 -0
  71. package/dist/cjs/count/index.cjs +5 -0
  72. package/dist/cjs/delete/delete-builder.cjs +176 -0
  73. package/dist/cjs/delete/index.cjs +5 -0
  74. package/dist/cjs/explain/explain-builder.cjs +99 -0
  75. package/dist/cjs/explain/index.cjs +5 -0
  76. package/dist/cjs/index.cjs +26 -0
  77. package/dist/cjs/insert/conflict-builder.cjs +213 -0
  78. package/dist/cjs/insert/index.cjs +5 -0
  79. package/dist/cjs/insert/insert-builder.cjs +320 -0
  80. package/dist/cjs/insert/insert-from-select-builder.cjs +86 -0
  81. package/dist/cjs/pubsub/index.cjs +7 -0
  82. package/dist/cjs/pubsub/listen-notify-builder.cjs +57 -0
  83. package/dist/cjs/pubsub/listener-connection.cjs +180 -0
  84. package/dist/cjs/raw/index.cjs +8 -0
  85. package/dist/cjs/raw/raw-query-builder.cjs +27 -0
  86. package/dist/cjs/raw/sql-template.cjs +73 -0
  87. package/dist/cjs/select/aggregate-builder.cjs +179 -0
  88. package/dist/cjs/select/index.cjs +16 -0
  89. package/dist/cjs/select/join-builder.cjs +192 -0
  90. package/dist/cjs/select/join-condition-builder.cjs +189 -0
  91. package/dist/cjs/select/join-internals.cjs +5 -0
  92. package/dist/cjs/select/join-many-condition-builder.cjs +159 -0
  93. package/dist/cjs/select/scalar-query-builder.cjs +134 -0
  94. package/dist/cjs/select/scalar-select-builder.cjs +78 -0
  95. package/dist/cjs/select/select-builder.cjs +426 -0
  96. package/dist/cjs/select/sql-expression.cjs +38 -0
  97. package/dist/cjs/select/table-proxy.cjs +99 -0
  98. package/dist/cjs/shared/aws-dsql.cjs +181 -0
  99. package/dist/cjs/shared/errors/relq-errors.cjs +361 -0
  100. package/dist/cjs/shared/pg-format.cjs +383 -0
  101. package/dist/cjs/shared/types/config-types.cjs +51 -0
  102. package/dist/cjs/transaction/index.cjs +6 -0
  103. package/dist/cjs/transaction/transaction-builder.cjs +78 -0
  104. package/dist/cjs/types/aggregate-types.cjs +2 -0
  105. package/dist/cjs/types/inference-types.cjs +18 -0
  106. package/dist/cjs/types/pagination-types.cjs +7 -0
  107. package/dist/cjs/types/result-types.cjs +2 -0
  108. package/dist/cjs/types/scalar-types.cjs +2 -0
  109. package/dist/cjs/types/schema-types.cjs +2 -0
  110. package/dist/cjs/types/subscription-types.cjs +2 -0
  111. package/dist/cjs/types.cjs +2 -0
  112. package/dist/cjs/update/array-update-builder.cjs +232 -0
  113. package/dist/cjs/update/index.cjs +16 -0
  114. package/dist/cjs/update/jsonb-update-builder.cjs +219 -0
  115. package/dist/cjs/update/update-builder.cjs +274 -0
  116. package/dist/cjs/utils/addon/pg/cursor.cjs +8 -0
  117. package/dist/cjs/utils/addon/pg/pg.cjs +23 -0
  118. package/dist/cjs/utils/case-converter.cjs +58 -0
  119. package/dist/cjs/utils/env-resolver.cjs +226 -0
  120. package/dist/cjs/utils/environment-detection.cjs +124 -0
  121. package/dist/cjs/utils/fk-resolver.cjs +186 -0
  122. package/dist/cjs/utils/index.cjs +25 -0
  123. package/dist/cjs/utils/pool-defaults.cjs +91 -0
  124. package/dist/cjs/utils/type-coercion.cjs +120 -0
  125. package/dist/cjs/window/index.cjs +5 -0
  126. package/dist/cjs/window/window-builder.cjs +80 -0
  127. package/dist/esm/__test-types.js +15 -0
  128. package/dist/esm/addon/cursor.js +1440 -0
  129. package/dist/esm/addon/pg.js +4931 -0
  130. package/dist/esm/cache/index.js +1 -0
  131. package/dist/esm/cache/query-cache.js +303 -0
  132. package/dist/esm/condition/array-condition-builder.js +519 -0
  133. package/dist/esm/condition/array-numeric-condition-builder.js +182 -0
  134. package/dist/esm/condition/array-specialized-condition-builder.js +200 -0
  135. package/dist/esm/condition/array-string-condition-builder.js +142 -0
  136. package/dist/esm/condition/base-condition-builder.js +1 -0
  137. package/dist/esm/condition/condition-collector.js +452 -0
  138. package/dist/esm/condition/fulltext-condition-builder.js +53 -0
  139. package/dist/esm/condition/geometric-condition-builder.js +220 -0
  140. package/dist/esm/condition/index.js +8 -0
  141. package/dist/esm/condition/jsonb-condition-builder.js +439 -0
  142. package/dist/esm/condition/network-condition-builder.js +229 -0
  143. package/dist/esm/condition/postgis-condition-builder.js +180 -0
  144. package/dist/esm/condition/range-condition-builder.js +90 -0
  145. package/dist/esm/core/helpers/ConnectedAggregateBuilder.js +128 -0
  146. package/dist/esm/core/helpers/ConnectedCTEBuilder.js +49 -0
  147. package/dist/esm/core/helpers/ConnectedCountBuilder.js +69 -0
  148. package/dist/esm/core/helpers/ConnectedDeleteBuilder.js +61 -0
  149. package/dist/esm/core/helpers/ConnectedInsertBuilder.js +108 -0
  150. package/dist/esm/core/helpers/ConnectedInsertFromSelectBuilder.js +62 -0
  151. package/dist/esm/core/helpers/ConnectedQueryBuilder.js +142 -0
  152. package/dist/esm/core/helpers/ConnectedRawQueryBuilder.js +42 -0
  153. package/dist/esm/core/helpers/ConnectedSelectBuilder.js +327 -0
  154. package/dist/esm/core/helpers/ConnectedTransactionBuilder.js +100 -0
  155. package/dist/esm/core/helpers/ConnectedUpdateBuilder.js +75 -0
  156. package/dist/esm/core/helpers/PaginateBuilder.js +174 -0
  157. package/dist/esm/core/helpers/ReturningExecutor.js +66 -0
  158. package/dist/esm/core/helpers/capability-guard.js +7 -0
  159. package/dist/esm/core/helpers/index.js +13 -0
  160. package/dist/esm/core/helpers/methods.js +6 -0
  161. package/dist/esm/core/helpers/query-convenience.js +194 -0
  162. package/dist/esm/core/helpers/select-joins.js +246 -0
  163. package/dist/esm/core/helpers/select-pagination.js +226 -0
  164. package/dist/esm/core/helpers/select-types.js +1 -0
  165. package/dist/esm/core/pg-family/cockroachdb-client/capabilities.js +28 -0
  166. package/dist/esm/core/pg-family/cockroachdb-client/index.js +2 -0
  167. package/dist/esm/core/pg-family/cockroachdb-client/relq-cockroach.js +12 -0
  168. package/dist/esm/core/pg-family/dsql-client/capabilities.js +28 -0
  169. package/dist/esm/core/pg-family/dsql-client/index.js +2 -0
  170. package/dist/esm/core/pg-family/dsql-client/relq-dsql.js +12 -0
  171. package/dist/esm/core/pg-family/index.js +6 -0
  172. package/dist/esm/core/pg-family/nile-client/capabilities.js +28 -0
  173. package/dist/esm/core/pg-family/nile-client/index.js +2 -0
  174. package/dist/esm/core/pg-family/nile-client/relq-nile.js +32 -0
  175. package/dist/esm/core/pg-family/nile-client/tenant-context.js +40 -0
  176. package/dist/esm/core/pg-family/pg-client/capabilities.js +28 -0
  177. package/dist/esm/core/pg-family/pg-client/index.js +2 -0
  178. package/dist/esm/core/pg-family/pg-client/relq-postgres.js +39 -0
  179. package/dist/esm/core/pg-family/shared/pg-base.js +347 -0
  180. package/dist/esm/core/pg-family/shared/pg-dialect.js +63 -0
  181. package/dist/esm/core/pg-family/shared/pg-error-parser.js +29 -0
  182. package/dist/esm/core/pg-family/shared/pg-type-coercion.js +6 -0
  183. package/dist/esm/core/relq-base.js +270 -0
  184. package/dist/esm/core/relq-client.js +48 -0
  185. package/dist/esm/core/shared/cleanup.js +27 -0
  186. package/dist/esm/core/shared/column-mapping.js +90 -0
  187. package/dist/esm/core/shared/errors.js +13 -0
  188. package/dist/esm/core/shared/index.js +6 -0
  189. package/dist/esm/core/shared/table-accessor.js +19 -0
  190. package/dist/esm/core/shared/transform.js +30 -0
  191. package/dist/esm/core/shared/types.js +1 -0
  192. package/dist/esm/core/shared/validation.js +136 -0
  193. package/dist/esm/core/types/core.types.js +1 -0
  194. package/dist/esm/count/count-builder.js +81 -0
  195. package/dist/esm/count/index.js +1 -0
  196. package/dist/esm/delete/delete-builder.js +169 -0
  197. package/dist/esm/delete/index.js +1 -0
  198. package/dist/esm/explain/explain-builder.js +95 -0
  199. package/dist/esm/explain/index.js +1 -0
  200. package/dist/esm/index.js +7 -0
  201. package/dist/esm/insert/conflict-builder.js +202 -0
  202. package/dist/esm/insert/index.js +1 -0
  203. package/dist/esm/insert/insert-builder.js +313 -0
  204. package/dist/esm/insert/insert-from-select-builder.js +79 -0
  205. package/dist/esm/pubsub/index.js +1 -0
  206. package/dist/esm/pubsub/listen-notify-builder.js +48 -0
  207. package/dist/esm/pubsub/listener-connection.js +173 -0
  208. package/dist/esm/raw/index.js +2 -0
  209. package/dist/esm/raw/raw-query-builder.js +20 -0
  210. package/dist/esm/raw/sql-template.js +66 -0
  211. package/dist/esm/select/aggregate-builder.js +172 -0
  212. package/dist/esm/select/index.js +4 -0
  213. package/dist/esm/select/join-builder.js +184 -0
  214. package/dist/esm/select/join-condition-builder.js +181 -0
  215. package/dist/esm/select/join-internals.js +2 -0
  216. package/dist/esm/select/join-many-condition-builder.js +151 -0
  217. package/dist/esm/select/scalar-query-builder.js +126 -0
  218. package/dist/esm/select/scalar-select-builder.js +70 -0
  219. package/dist/esm/select/select-builder.js +419 -0
  220. package/dist/esm/select/sql-expression.js +33 -0
  221. package/dist/esm/select/table-proxy.js +91 -0
  222. package/dist/esm/shared/aws-dsql.js +140 -0
  223. package/dist/esm/shared/errors/relq-errors.js +339 -0
  224. package/dist/esm/shared/pg-format.js +375 -0
  225. package/dist/esm/shared/types/config-types.js +46 -0
  226. package/dist/esm/transaction/index.js +1 -0
  227. package/dist/esm/transaction/transaction-builder.js +70 -0
  228. package/dist/esm/types/aggregate-types.js +1 -0
  229. package/dist/esm/types/inference-types.js +12 -0
  230. package/dist/esm/types/pagination-types.js +4 -0
  231. package/dist/esm/types/result-types.js +1 -0
  232. package/dist/esm/types/scalar-types.js +1 -0
  233. package/dist/esm/types/schema-types.js +1 -0
  234. package/dist/esm/types/subscription-types.js +1 -0
  235. package/dist/esm/types.js +1 -0
  236. package/dist/esm/update/array-update-builder.js +219 -0
  237. package/dist/esm/update/index.js +3 -0
  238. package/dist/esm/update/jsonb-update-builder.js +211 -0
  239. package/dist/esm/update/update-builder.js +267 -0
  240. package/dist/esm/utils/addon/pg/cursor.js +1 -0
  241. package/dist/esm/utils/addon/pg/pg.js +2 -0
  242. package/dist/esm/utils/case-converter.js +55 -0
  243. package/dist/esm/utils/env-resolver.js +213 -0
  244. package/dist/esm/utils/environment-detection.js +114 -0
  245. package/dist/esm/utils/fk-resolver.js +178 -0
  246. package/dist/esm/utils/index.js +4 -0
  247. package/dist/esm/utils/pool-defaults.js +85 -0
  248. package/dist/esm/utils/type-coercion.js +112 -0
  249. package/dist/esm/window/index.js +1 -0
  250. package/dist/esm/window/window-builder.js +73 -0
  251. package/dist/index.cjs +1 -0
  252. package/dist/index.d.ts +7281 -0
  253. package/dist/index.js +1 -0
  254. package/package.json +52 -0
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.quoteIdent = quoteIdent;
4
+ exports.quoteLiteral = quoteLiteral;
5
+ exports.quoteString = quoteString;
6
+ exports.config = config;
7
+ exports.formatWithArray = formatWithArray;
8
+ exports.format = format;
9
+ const reservedMap = {
10
+ "AES128": true,
11
+ "AES256": true,
12
+ "ALL": true,
13
+ "ALLOWOVERWRITE": true,
14
+ "ANALYSE": true,
15
+ "ANALYZE": true,
16
+ "AND": true,
17
+ "ANY": true,
18
+ "ARRAY": true,
19
+ "AS": true,
20
+ "ASC": true,
21
+ "AUTHORIZATION": true,
22
+ "BACKUP": true,
23
+ "BETWEEN": true,
24
+ "BINARY": true,
25
+ "BLANKSASNULL": true,
26
+ "BOTH": true,
27
+ "BYTEDICT": true,
28
+ "CASE": true,
29
+ "CAST": true,
30
+ "CHECK": true,
31
+ "COLLATE": true,
32
+ "COLUMN": true,
33
+ "CONSTRAINT": true,
34
+ "CREATE": true,
35
+ "CREDENTIALS": true,
36
+ "CROSS": true,
37
+ "CURRENT_DATE": true,
38
+ "CURRENT_TIME": true,
39
+ "CURRENT_TIMESTAMP": true,
40
+ "CURRENT_USER": true,
41
+ "CURRENT_USER_ID": true,
42
+ "DEFAULT": true,
43
+ "DEFERRABLE": true,
44
+ "DEFLATE": true,
45
+ "DEFRAG": true,
46
+ "DELTA": true,
47
+ "DELTA32K": true,
48
+ "DESC": true,
49
+ "DISABLE": true,
50
+ "DISTINCT": true,
51
+ "DO": true,
52
+ "ELSE": true,
53
+ "EMPTYASNULL": true,
54
+ "ENABLE": true,
55
+ "ENCODE": true,
56
+ "ENCRYPT": true,
57
+ "ENCRYPTION": true,
58
+ "END": true,
59
+ "EXCEPT": true,
60
+ "EXPLICIT": true,
61
+ "FALSE": true,
62
+ "FOR": true,
63
+ "FOREIGN": true,
64
+ "FREEZE": true,
65
+ "FROM": true,
66
+ "FULL": true,
67
+ "GLOBALDICT256": true,
68
+ "GLOBALDICT64K": true,
69
+ "GRANT": true,
70
+ "GROUP": true,
71
+ "GZIP": true,
72
+ "HAVING": true,
73
+ "IDENTITY": true,
74
+ "IGNORE": true,
75
+ "ILIKE": true,
76
+ "IN": true,
77
+ "INITIALLY": true,
78
+ "INNER": true,
79
+ "INTERSECT": true,
80
+ "INTO": true,
81
+ "IS": true,
82
+ "ISNULL": true,
83
+ "JOIN": true,
84
+ "LEADING": true,
85
+ "LEFT": true,
86
+ "LIKE": true,
87
+ "LIMIT": true,
88
+ "LOCALTIME": true,
89
+ "LOCALTIMESTAMP": true,
90
+ "LUN": true,
91
+ "LUNS": true,
92
+ "LZO": true,
93
+ "LZOP": true,
94
+ "MINUS": true,
95
+ "MOSTLY13": true,
96
+ "MOSTLY32": true,
97
+ "MOSTLY8": true,
98
+ "NATURAL": true,
99
+ "NEW": true,
100
+ "NOT": true,
101
+ "NOTNULL": true,
102
+ "NULL": true,
103
+ "NULLS": true,
104
+ "OFF": true,
105
+ "OFFLINE": true,
106
+ "OFFSET": true,
107
+ "OLD": true,
108
+ "ON": true,
109
+ "ONLY": true,
110
+ "OPEN": true,
111
+ "OR": true,
112
+ "ORDER": true,
113
+ "OUTER": true,
114
+ "OVERLAPS": true,
115
+ "PARALLEL": true,
116
+ "PARTITION": true,
117
+ "PERCENT": true,
118
+ "PLACING": true,
119
+ "PRIMARY": true,
120
+ "RAW": true,
121
+ "READRATIO": true,
122
+ "RECOVER": true,
123
+ "REFERENCES": true,
124
+ "REJECTLOG": true,
125
+ "RESORT": true,
126
+ "RESTORE": true,
127
+ "RIGHT": true,
128
+ "SELECT": true,
129
+ "SESSION_USER": true,
130
+ "SIMILAR": true,
131
+ "SOME": true,
132
+ "SYSDATE": true,
133
+ "SYSTEM": true,
134
+ "TABLE": true,
135
+ "TAG": true,
136
+ "TDES": true,
137
+ "TEXT255": true,
138
+ "TEXT32K": true,
139
+ "THEN": true,
140
+ "TO": true,
141
+ "TOP": true,
142
+ "TRAILING": true,
143
+ "TRUE": true,
144
+ "TRUNCATECOLUMNS": true,
145
+ "UNION": true,
146
+ "UNIQUE": true,
147
+ "USER": true,
148
+ "USING": true,
149
+ "VERBOSE": true,
150
+ "WALLET": true,
151
+ "WHEN": true,
152
+ "WHERE": true,
153
+ "WITH": true,
154
+ "WITHOUT": true,
155
+ };
156
+ const fmtPattern = {
157
+ ident: 'I',
158
+ literal: 'L',
159
+ string: 's',
160
+ };
161
+ function formatDate(date) {
162
+ date = date.replace('T', ' ');
163
+ date = date.replace('Z', '+00');
164
+ return date;
165
+ }
166
+ function isReserved(value) {
167
+ return !!reservedMap[value.toUpperCase()];
168
+ }
169
+ function arrayToList(useSpace, array, formatter) {
170
+ let sql = useSpace ? ' (' : '(';
171
+ for (let i = 0; i < array.length; i++) {
172
+ sql += (i === 0 ? '' : ', ') + formatter(array[i]);
173
+ }
174
+ sql += ')';
175
+ return sql;
176
+ }
177
+ function quoteIdent(value) {
178
+ if (value === undefined || value === null) {
179
+ throw new Error('SQL identifier cannot be null or undefined');
180
+ }
181
+ else if (value === false) {
182
+ return '"f"';
183
+ }
184
+ else if (value === true) {
185
+ return '"t"';
186
+ }
187
+ else if (value instanceof Date) {
188
+ return '"' + formatDate(value.toISOString()) + '"';
189
+ }
190
+ else if (typeof Buffer !== 'undefined' && value instanceof Buffer) {
191
+ throw new Error('SQL identifier cannot be a buffer');
192
+ }
193
+ else if (Array.isArray(value)) {
194
+ const temp = [];
195
+ for (let i = 0; i < value.length; i++) {
196
+ if (Array.isArray(value[i])) {
197
+ throw new Error('Nested array to grouped list conversion is not supported for SQL identifier');
198
+ }
199
+ else {
200
+ temp.push(quoteIdent(value[i]));
201
+ }
202
+ }
203
+ return temp.toString();
204
+ }
205
+ else if (value === Object(value)) {
206
+ throw new Error('SQL identifier cannot be an object');
207
+ }
208
+ const ident = value.toString().slice(0);
209
+ if (/^[a-z_][a-z0-9_$]*$/.test(ident) && !isReserved(ident)) {
210
+ return ident;
211
+ }
212
+ let quoted = '"';
213
+ for (let i = 0; i < ident.length; i++) {
214
+ const c = ident[i];
215
+ if (c === '"') {
216
+ quoted += c + c;
217
+ }
218
+ else {
219
+ quoted += c;
220
+ }
221
+ }
222
+ quoted += '"';
223
+ return quoted;
224
+ }
225
+ function quoteLiteral(value) {
226
+ let literal = '';
227
+ let explicitCast = null;
228
+ if (value === undefined || value === null) {
229
+ return 'NULL';
230
+ }
231
+ else if (value === false) {
232
+ return "'f'";
233
+ }
234
+ else if (value === true) {
235
+ return "'t'";
236
+ }
237
+ else if (value instanceof Date) {
238
+ return "'" + formatDate(value.toISOString()) + "'";
239
+ }
240
+ else if (typeof Buffer !== 'undefined' && value instanceof Buffer) {
241
+ return "E'\\\\x" + value.toString('hex') + "'";
242
+ }
243
+ else if (Array.isArray(value)) {
244
+ const temp = [];
245
+ for (let i = 0; i < value.length; i++) {
246
+ if (Array.isArray(value[i])) {
247
+ temp.push(arrayToList(i !== 0, value[i], quoteLiteral));
248
+ }
249
+ else {
250
+ temp.push(quoteLiteral(value[i]));
251
+ }
252
+ }
253
+ return temp.toString();
254
+ }
255
+ else if (value === Object(value)) {
256
+ explicitCast = 'jsonb';
257
+ literal = JSON.stringify(value);
258
+ }
259
+ else {
260
+ literal = value.toString().slice(0);
261
+ }
262
+ let hasBackslash = false;
263
+ let quoted = "'";
264
+ for (let i = 0; i < literal.length; i++) {
265
+ const c = literal[i];
266
+ if (c === "'") {
267
+ quoted += c + c;
268
+ }
269
+ else if (c === '\\') {
270
+ quoted += c + c;
271
+ hasBackslash = true;
272
+ }
273
+ else {
274
+ quoted += c;
275
+ }
276
+ }
277
+ quoted += "'";
278
+ if (hasBackslash) {
279
+ quoted = 'E' + quoted;
280
+ }
281
+ if (explicitCast) {
282
+ quoted += '::' + explicitCast;
283
+ }
284
+ return quoted;
285
+ }
286
+ function quoteString(value) {
287
+ if (value === undefined || value === null) {
288
+ return '';
289
+ }
290
+ else if (value === false) {
291
+ return 'f';
292
+ }
293
+ else if (value === true) {
294
+ return 't';
295
+ }
296
+ else if (value instanceof Date) {
297
+ return formatDate(value.toISOString());
298
+ }
299
+ else if (typeof Buffer !== 'undefined' && value instanceof Buffer) {
300
+ return '\\x' + value.toString('hex');
301
+ }
302
+ else if (Array.isArray(value)) {
303
+ const temp = [];
304
+ for (let i = 0; i < value.length; i++) {
305
+ if (value[i] !== null && value[i] !== undefined) {
306
+ if (Array.isArray(value[i])) {
307
+ temp.push(arrayToList(i !== 0, value[i], quoteString));
308
+ }
309
+ else {
310
+ temp.push(quoteString(value[i]));
311
+ }
312
+ }
313
+ }
314
+ return temp.toString();
315
+ }
316
+ else if (value === Object(value)) {
317
+ return JSON.stringify(value);
318
+ }
319
+ return value.toString().slice(0);
320
+ }
321
+ function config(cfg) {
322
+ fmtPattern.ident = 'I';
323
+ fmtPattern.literal = 'L';
324
+ fmtPattern.string = 's';
325
+ if (cfg && cfg.pattern) {
326
+ if (cfg.pattern.ident) {
327
+ fmtPattern.ident = cfg.pattern.ident;
328
+ }
329
+ if (cfg.pattern.literal) {
330
+ fmtPattern.literal = cfg.pattern.literal;
331
+ }
332
+ if (cfg.pattern.string) {
333
+ fmtPattern.string = cfg.pattern.string;
334
+ }
335
+ }
336
+ }
337
+ function formatWithArray(fmt, parameters) {
338
+ const params = parameters;
339
+ let re = '%(%|(\\d+\\$)?[';
340
+ re += fmtPattern.ident;
341
+ re += fmtPattern.literal;
342
+ re += fmtPattern.string;
343
+ re += '])';
344
+ const regex = new RegExp(re, 'g');
345
+ let index = 0;
346
+ return fmt.replace(regex, function (_, type) {
347
+ if (type === '%') {
348
+ return '%';
349
+ }
350
+ let position = index;
351
+ const tokens = type.split('$');
352
+ if (tokens.length > 1) {
353
+ position = parseInt(tokens[0]) - 1;
354
+ type = tokens[1];
355
+ }
356
+ if (position < 0) {
357
+ throw new Error('specified argument 0 but arguments start at 1');
358
+ }
359
+ else if (position > params.length - 1) {
360
+ throw new Error('too few arguments');
361
+ }
362
+ index = position + 1;
363
+ if (type === fmtPattern.ident) {
364
+ return quoteIdent(params[position]);
365
+ }
366
+ else if (type === fmtPattern.literal) {
367
+ return quoteLiteral(params[position]);
368
+ }
369
+ else if (type === fmtPattern.string) {
370
+ return quoteString(params[position]);
371
+ }
372
+ return _;
373
+ });
374
+ }
375
+ function format(fmt, ...args) {
376
+ return formatWithArray(fmt, args);
377
+ }
378
+ exports.default = format;
379
+ format.ident = quoteIdent;
380
+ format.literal = quoteLiteral;
381
+ format.string = quoteString;
382
+ format.withArray = formatWithArray;
383
+ format.config = config;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPoolingEnabled = isPoolingEnabled;
4
+ exports.toPoolConfig = toPoolConfig;
5
+ exports.isAwsDsqlConfig = isAwsDsqlConfig;
6
+ const pool_defaults_1 = require("../../orm/utils/pool-defaults.cjs");
7
+ function isPoolingEnabled(config) {
8
+ return config.pooling !== false;
9
+ }
10
+ function toPoolConfig(config) {
11
+ const smartDefaults = config.disableSmartDefaults
12
+ ? { min: 0, max: 10, idleTimeoutMillis: 30000, connectionTimeoutMillis: 0 }
13
+ : (0, pool_defaults_1.mergeWithDefaults)(config.pool);
14
+ const isAws = !!config.aws;
15
+ const host = isAws ? config.aws.hostname : (config.host || 'localhost');
16
+ const port = config.aws?.port ?? config.port ?? 5432;
17
+ const user = config.aws?.user ?? config.user ?? (isAws ? 'admin' : undefined);
18
+ const ssl = isAws ? (config.aws.ssl ?? true) : config.ssl;
19
+ const isWorkers = typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers';
20
+ const allowExitOnIdle = !isWorkers;
21
+ const poolConfig = {
22
+ host,
23
+ port,
24
+ database: config.database,
25
+ user,
26
+ password: config.password,
27
+ min: config.pool?.min ?? smartDefaults.min,
28
+ max: config.pool?.max ?? smartDefaults.max,
29
+ idleTimeoutMillis: config.pool?.idleTimeoutMillis ?? smartDefaults.idleTimeoutMillis,
30
+ connectionTimeoutMillis: config.pool?.connectionTimeoutMillis ?? smartDefaults.connectionTimeoutMillis,
31
+ application_name: config.pool?.application_name,
32
+ ssl: config.pool?.ssl ?? ssl,
33
+ allowExitOnIdle
34
+ };
35
+ if (config.connectionString) {
36
+ return {
37
+ connectionString: config.connectionString,
38
+ min: poolConfig.min,
39
+ max: poolConfig.max,
40
+ idleTimeoutMillis: poolConfig.idleTimeoutMillis,
41
+ connectionTimeoutMillis: poolConfig.connectionTimeoutMillis,
42
+ application_name: poolConfig.application_name,
43
+ ssl: poolConfig.ssl,
44
+ allowExitOnIdle
45
+ };
46
+ }
47
+ return poolConfig;
48
+ }
49
+ function isAwsDsqlConfig(config) {
50
+ return !!config.aws?.hostname && !!config.aws?.region;
51
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SavepointBuilder = exports.TransactionBuilder = void 0;
4
+ var transaction_builder_1 = require("./transaction-builder.cjs");
5
+ Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transaction_builder_1.TransactionBuilder; } });
6
+ Object.defineProperty(exports, "SavepointBuilder", { enumerable: true, get: function () { return transaction_builder_1.SavepointBuilder; } });
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SavepointBuilder = exports.TransactionBuilder = void 0;
7
+ const pg_format_1 = __importDefault(require("../shared/pg-format.cjs"));
8
+ class TransactionBuilder {
9
+ isolationLevel;
10
+ mode;
11
+ __deferrable;
12
+ isolation(level) {
13
+ this.isolationLevel = level;
14
+ return this;
15
+ }
16
+ readWrite() {
17
+ this.mode = 'READ WRITE';
18
+ return this;
19
+ }
20
+ readOnly() {
21
+ this.mode = 'READ ONLY';
22
+ return this;
23
+ }
24
+ deferrable() {
25
+ this.__deferrable = true;
26
+ return this;
27
+ }
28
+ notDeferrable() {
29
+ this.__deferrable = false;
30
+ return this;
31
+ }
32
+ begin() {
33
+ let sql = 'BEGIN';
34
+ const options = [];
35
+ if (this.isolationLevel) {
36
+ options.push(`ISOLATION LEVEL ${this.isolationLevel}`);
37
+ }
38
+ if (this.mode) {
39
+ options.push(this.mode);
40
+ }
41
+ if (this.__deferrable !== undefined) {
42
+ options.push(this.__deferrable ? 'DEFERRABLE' : 'NOT DEFERRABLE');
43
+ }
44
+ if (options.length > 0) {
45
+ sql += ` ${options.join(', ')}`;
46
+ }
47
+ return sql;
48
+ }
49
+ commit() {
50
+ return 'COMMIT';
51
+ }
52
+ rollback() {
53
+ return 'ROLLBACK';
54
+ }
55
+ toString() {
56
+ return this.begin();
57
+ }
58
+ }
59
+ exports.TransactionBuilder = TransactionBuilder;
60
+ class SavepointBuilder {
61
+ savepointName;
62
+ constructor(savepointName) {
63
+ this.savepointName = savepointName;
64
+ }
65
+ create() {
66
+ return `SAVEPOINT ${pg_format_1.default.ident(this.savepointName)}`;
67
+ }
68
+ rollback() {
69
+ return `ROLLBACK TO SAVEPOINT ${pg_format_1.default.ident(this.savepointName)}`;
70
+ }
71
+ release() {
72
+ return `RELEASE SAVEPOINT ${pg_format_1.default.ident(this.savepointName)}`;
73
+ }
74
+ toString() {
75
+ return this.create();
76
+ }
77
+ }
78
+ exports.SavepointBuilder = SavepointBuilder;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isColumnAlias = isColumnAlias;
4
+ exports.isAggregateColumn = isAggregateColumn;
5
+ exports.getColumnName = getColumnName;
6
+ exports.getResultKey = getResultKey;
7
+ function isColumnAlias(col) {
8
+ return Array.isArray(col) && col.length === 2;
9
+ }
10
+ function isAggregateColumn(col) {
11
+ return /^[a-z_]+\(/i.test(col);
12
+ }
13
+ function getColumnName(col) {
14
+ return isColumnAlias(col) ? col[0] : col;
15
+ }
16
+ function getResultKey(col) {
17
+ return isColumnAlias(col) ? col[1] : col;
18
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.randomLimit = randomLimit;
4
+ function randomLimit(range) {
5
+ const [min, max] = range;
6
+ return Math.floor(Math.random() * (max - min + 1)) + min;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });