@pothos/plugin-drizzle 0.0.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 (179) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +6 -0
  3. package/README.md +437 -0
  4. package/TODO.md +21 -0
  5. package/drizzle/meta/_journal.json +1 -0
  6. package/drizzle.config.ts +10 -0
  7. package/dts/drizzle-field-builder.d.ts +124 -0
  8. package/dts/drizzle-field-builder.d.ts.map +1 -0
  9. package/dts/field-builder.d.ts +2 -0
  10. package/dts/field-builder.d.ts.map +1 -0
  11. package/dts/global-types.d.ts +92 -0
  12. package/dts/global-types.d.ts.map +1 -0
  13. package/dts/index.d.ts +13 -0
  14. package/dts/index.d.ts.map +1 -0
  15. package/dts/interface-ref.d.ts +9 -0
  16. package/dts/interface-ref.d.ts.map +1 -0
  17. package/dts/model-loader.d.ts +44 -0
  18. package/dts/model-loader.d.ts.map +1 -0
  19. package/dts/node-ref.d.ts +5 -0
  20. package/dts/node-ref.d.ts.map +1 -0
  21. package/dts/object-ref.d.ts +14 -0
  22. package/dts/object-ref.d.ts.map +1 -0
  23. package/dts/schema-builder.d.ts +2 -0
  24. package/dts/schema-builder.d.ts.map +1 -0
  25. package/dts/types.d.ts +147 -0
  26. package/dts/types.d.ts.map +1 -0
  27. package/dts/utils/config.d.ts +7 -0
  28. package/dts/utils/config.d.ts.map +1 -0
  29. package/dts/utils/cursors.d.ts +58 -0
  30. package/dts/utils/cursors.d.ts.map +1 -0
  31. package/dts/utils/deep-equal.d.ts +2 -0
  32. package/dts/utils/deep-equal.d.ts.map +1 -0
  33. package/dts/utils/drizzle-graphql.d.ts +18 -0
  34. package/dts/utils/drizzle-graphql.d.ts.map +1 -0
  35. package/dts/utils/loader-map.d.ts +11 -0
  36. package/dts/utils/loader-map.d.ts.map +1 -0
  37. package/dts/utils/map-query.d.ts +30 -0
  38. package/dts/utils/map-query.d.ts.map +1 -0
  39. package/dts/utils/refs.d.ts +5 -0
  40. package/dts/utils/refs.d.ts.map +1 -0
  41. package/dts/utils/selections.d.ts +22 -0
  42. package/dts/utils/selections.d.ts.map +1 -0
  43. package/dts/utils/usage.d.ts +5 -0
  44. package/dts/utils/usage.d.ts.map +1 -0
  45. package/esm/drizzle-field-builder.d.ts +216 -0
  46. package/esm/drizzle-field-builder.d.ts.map +1 -0
  47. package/esm/field-builder.d.ts +2 -0
  48. package/esm/field-builder.d.ts.map +1 -0
  49. package/esm/global-types.d.ts +124 -0
  50. package/esm/global-types.d.ts.map +1 -0
  51. package/esm/index.d.ts +13 -0
  52. package/esm/index.d.ts.map +1 -0
  53. package/esm/interface-ref.d.ts +9 -0
  54. package/esm/interface-ref.d.ts.map +1 -0
  55. package/esm/model-loader.d.ts +45 -0
  56. package/esm/model-loader.d.ts.map +1 -0
  57. package/esm/node-ref.d.ts +5 -0
  58. package/esm/node-ref.d.ts.map +1 -0
  59. package/esm/object-ref.d.ts +14 -0
  60. package/esm/object-ref.d.ts.map +1 -0
  61. package/esm/package.json +3 -0
  62. package/esm/schema-builder.d.ts +2 -0
  63. package/esm/schema-builder.d.ts.map +1 -0
  64. package/esm/src/drizzle-field-builder.js +215 -0
  65. package/esm/src/drizzle-field-builder.js.map +1 -0
  66. package/esm/src/field-builder.js +77 -0
  67. package/esm/src/field-builder.js.map +1 -0
  68. package/esm/src/global-types.js +2 -0
  69. package/esm/src/global-types.js.map +1 -0
  70. package/esm/src/index.js +107 -0
  71. package/esm/src/index.js.map +1 -0
  72. package/esm/src/interface-ref.js +26 -0
  73. package/esm/src/interface-ref.js.map +1 -0
  74. package/esm/src/model-loader.js +168 -0
  75. package/esm/src/model-loader.js.map +1 -0
  76. package/esm/src/node-ref.js +4 -0
  77. package/esm/src/node-ref.js.map +1 -0
  78. package/esm/src/object-ref.js +38 -0
  79. package/esm/src/object-ref.js.map +1 -0
  80. package/esm/src/schema-builder.js +190 -0
  81. package/esm/src/schema-builder.js.map +1 -0
  82. package/esm/src/types.js +2 -0
  83. package/esm/src/types.js.map +1 -0
  84. package/esm/src/utils/config.js +15 -0
  85. package/esm/src/utils/config.js.map +1 -0
  86. package/esm/src/utils/cursors.js +316 -0
  87. package/esm/src/utils/cursors.js.map +1 -0
  88. package/esm/src/utils/deep-equal.js +44 -0
  89. package/esm/src/utils/deep-equal.js.map +1 -0
  90. package/esm/src/utils/drizzle-graphql.js +176 -0
  91. package/esm/src/utils/drizzle-graphql.js.map +1 -0
  92. package/esm/src/utils/loader-map.js +35 -0
  93. package/esm/src/utils/loader-map.js.map +1 -0
  94. package/esm/src/utils/map-query.js +284 -0
  95. package/esm/src/utils/map-query.js.map +1 -0
  96. package/esm/src/utils/refs.js +14 -0
  97. package/esm/src/utils/refs.js.map +1 -0
  98. package/esm/src/utils/selections.js +136 -0
  99. package/esm/src/utils/selections.js.map +1 -0
  100. package/esm/src/utils/usage.js +59 -0
  101. package/esm/src/utils/usage.js.map +1 -0
  102. package/esm/types.d.ts +161 -0
  103. package/esm/types.d.ts.map +1 -0
  104. package/esm/utils/config.d.ts +7 -0
  105. package/esm/utils/config.d.ts.map +1 -0
  106. package/esm/utils/cursors.d.ts +58 -0
  107. package/esm/utils/cursors.d.ts.map +1 -0
  108. package/esm/utils/deep-equal.d.ts +2 -0
  109. package/esm/utils/deep-equal.d.ts.map +1 -0
  110. package/esm/utils/drizzle-graphql.d.ts +18 -0
  111. package/esm/utils/drizzle-graphql.d.ts.map +1 -0
  112. package/esm/utils/loader-map.d.ts +11 -0
  113. package/esm/utils/loader-map.d.ts.map +1 -0
  114. package/esm/utils/map-query.d.ts +30 -0
  115. package/esm/utils/map-query.d.ts.map +1 -0
  116. package/esm/utils/refs.d.ts +5 -0
  117. package/esm/utils/refs.d.ts.map +1 -0
  118. package/esm/utils/selections.d.ts +22 -0
  119. package/esm/utils/selections.d.ts.map +1 -0
  120. package/esm/utils/usage.d.ts +5 -0
  121. package/esm/utils/usage.d.ts.map +1 -0
  122. package/lib/src/drizzle-field-builder.js +225 -0
  123. package/lib/src/drizzle-field-builder.js.map +1 -0
  124. package/lib/src/field-builder.js +82 -0
  125. package/lib/src/field-builder.js.map +1 -0
  126. package/lib/src/global-types.js +6 -0
  127. package/lib/src/global-types.js.map +1 -0
  128. package/lib/src/index.js +180 -0
  129. package/lib/src/index.js.map +1 -0
  130. package/lib/src/interface-ref.js +36 -0
  131. package/lib/src/interface-ref.js.map +1 -0
  132. package/lib/src/model-loader.js +176 -0
  133. package/lib/src/model-loader.js.map +1 -0
  134. package/lib/src/node-ref.js +15 -0
  135. package/lib/src/node-ref.js.map +1 -0
  136. package/lib/src/object-ref.js +56 -0
  137. package/lib/src/object-ref.js.map +1 -0
  138. package/lib/src/schema-builder.js +236 -0
  139. package/lib/src/schema-builder.js.map +1 -0
  140. package/lib/src/types.js +13 -0
  141. package/lib/src/types.js.map +1 -0
  142. package/lib/src/utils/config.js +26 -0
  143. package/lib/src/utils/config.js.map +1 -0
  144. package/lib/src/utils/cursors.js +362 -0
  145. package/lib/src/utils/cursors.js.map +1 -0
  146. package/lib/src/utils/deep-equal.js +55 -0
  147. package/lib/src/utils/deep-equal.js.map +1 -0
  148. package/lib/src/utils/drizzle-graphql.js +192 -0
  149. package/lib/src/utils/drizzle-graphql.js.map +1 -0
  150. package/lib/src/utils/loader-map.js +57 -0
  151. package/lib/src/utils/loader-map.js.map +1 -0
  152. package/lib/src/utils/map-query.js +308 -0
  153. package/lib/src/utils/map-query.js.map +1 -0
  154. package/lib/src/utils/refs.js +33 -0
  155. package/lib/src/utils/refs.js.map +1 -0
  156. package/lib/src/utils/selections.js +163 -0
  157. package/lib/src/utils/selections.js.map +1 -0
  158. package/lib/src/utils/usage.js +84 -0
  159. package/lib/src/utils/usage.js.map +1 -0
  160. package/package.json +66 -0
  161. package/src/drizzle-field-builder.ts +500 -0
  162. package/src/field-builder.ts +168 -0
  163. package/src/global-types.ts +481 -0
  164. package/src/index.ts +175 -0
  165. package/src/interface-ref.ts +24 -0
  166. package/src/model-loader.ts +235 -0
  167. package/src/node-ref.ts +8 -0
  168. package/src/object-ref.ts +51 -0
  169. package/src/schema-builder.ts +299 -0
  170. package/src/types.ts +640 -0
  171. package/src/utils/config.ts +28 -0
  172. package/src/utils/cursors.ts +446 -0
  173. package/src/utils/deep-equal.ts +58 -0
  174. package/src/utils/drizzle-graphql.ts +235 -0
  175. package/src/utils/loader-map.ts +51 -0
  176. package/src/utils/map-query.ts +582 -0
  177. package/src/utils/refs.ts +25 -0
  178. package/src/utils/selections.ts +209 -0
  179. package/src/utils/usage.ts +64 -0
@@ -0,0 +1,362 @@
1
+ /* eslint-disable no-nested-ternary */ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ drizzleCursorConnectionQuery: function() {
13
+ return drizzleCursorConnectionQuery;
14
+ },
15
+ formatCursorChunk: function() {
16
+ return formatCursorChunk;
17
+ },
18
+ formatDrizzleCursor: function() {
19
+ return formatDrizzleCursor;
20
+ },
21
+ getColumnParser: function() {
22
+ return getColumnParser;
23
+ },
24
+ getColumnSerializer: function() {
25
+ return getColumnSerializer;
26
+ },
27
+ getCursorFormatter: function() {
28
+ return getCursorFormatter;
29
+ },
30
+ getCursorParser: function() {
31
+ return getCursorParser;
32
+ },
33
+ parseDrizzleCursor: function() {
34
+ return parseDrizzleCursor;
35
+ },
36
+ parseID: function() {
37
+ return parseID;
38
+ },
39
+ parseSerializedDrizzleColumn: function() {
40
+ return parseSerializedDrizzleColumn;
41
+ },
42
+ resolveDrizzleCursorConnection: function() {
43
+ return resolveDrizzleCursorConnection;
44
+ },
45
+ wrapConnectionResult: function() {
46
+ return wrapConnectionResult;
47
+ }
48
+ });
49
+ const _core = require("@pothos/core");
50
+ const _drizzleorm = require("drizzle-orm");
51
+ const _mapquery = require("./map-query");
52
+ const DEFAULT_MAX_SIZE = 100;
53
+ const DEFAULT_SIZE = 20;
54
+ function formatCursorChunk(value) {
55
+ if (value instanceof Date) {
56
+ return `D:${String(Number(value))}`;
57
+ }
58
+ switch(typeof value){
59
+ case 'number':
60
+ return `N:${value}`;
61
+ case 'string':
62
+ return `S:${value}`;
63
+ case 'bigint':
64
+ return `I:${value}`;
65
+ default:
66
+ throw new _core.PothosValidationError(`Unsupported cursor type ${typeof value}`);
67
+ }
68
+ }
69
+ function formatDrizzleCursor(record, fields) {
70
+ return getCursorFormatter(fields)(record);
71
+ }
72
+ function getColumnSerializer(fields) {
73
+ if (fields.length === 0) {
74
+ throw new _core.PothosValidationError('Column serializer must have at least one field');
75
+ }
76
+ return (value)=>{
77
+ if (fields.length > 1) {
78
+ return `J:${JSON.stringify(fields.map((col)=>value[col.name]))}`;
79
+ }
80
+ return `${formatCursorChunk(value[fields[0].name])}`;
81
+ };
82
+ }
83
+ function getCursorFormatter(fields) {
84
+ if (fields.length === 0) {
85
+ throw new _core.PothosValidationError('Cursor must have at least one field');
86
+ }
87
+ const serializer = getColumnSerializer(fields);
88
+ return (value)=>{
89
+ return (0, _core.encodeBase64)(`DC:${serializer(value)}`);
90
+ };
91
+ }
92
+ function parseDrizzleCursor(cursor) {
93
+ if (typeof cursor !== 'string') {
94
+ throw new _core.PothosValidationError('Cursor must be a string');
95
+ }
96
+ try {
97
+ const decoded = (0, _core.decodeBase64)(cursor);
98
+ if (!decoded.startsWith('DC:')) {
99
+ throw new _core.PothosValidationError('Invalid cursor');
100
+ }
101
+ return parseSerializedDrizzleColumn(decoded.slice(3));
102
+ } catch {
103
+ throw new _core.PothosValidationError(`Invalid cursor: ${cursor}`);
104
+ }
105
+ }
106
+ function parseSerializedDrizzleColumn(value) {
107
+ if (typeof value !== 'string') {
108
+ throw new _core.PothosValidationError('value must be a string');
109
+ }
110
+ try {
111
+ const [, type, rawValue] = value.match(/^(S|N|D|J|I):(.*)/);
112
+ switch(type){
113
+ case 'S':
114
+ return rawValue;
115
+ case 'N':
116
+ return Number.parseInt(rawValue, 10);
117
+ case 'D':
118
+ return new Date(Number.parseInt(rawValue, 10));
119
+ case 'J':
120
+ return JSON.parse(rawValue);
121
+ case 'I':
122
+ return BigInt(rawValue);
123
+ default:
124
+ throw new _core.PothosValidationError(`Invalid cursor type ${type}`);
125
+ }
126
+ } catch {
127
+ throw new _core.PothosValidationError(`Invalid serialized data: ${value}`);
128
+ }
129
+ }
130
+ function parseID(id, dataType) {
131
+ if (!id) {
132
+ return id;
133
+ }
134
+ switch(dataType){
135
+ case 'String':
136
+ return id;
137
+ case 'Int':
138
+ return Number.parseInt(id, 10);
139
+ case 'BigInt':
140
+ return BigInt(id);
141
+ case 'Boolean':
142
+ return id !== 'false';
143
+ case 'Float':
144
+ case 'Decimal':
145
+ return Number.parseFloat(id);
146
+ case 'DateTime':
147
+ return new Date(id);
148
+ case 'Json':
149
+ return JSON.parse(id);
150
+ case 'Byte':
151
+ return Buffer.from(id, 'base64');
152
+ default:
153
+ return id;
154
+ }
155
+ }
156
+ function getColumnParser(fields) {
157
+ if (fields.length === 0) {
158
+ throw new _core.PothosValidationError('Column parser must have at least one field');
159
+ }
160
+ return (value)=>{
161
+ const parsed = parseSerializedDrizzleColumn(value);
162
+ if (fields.length === 1) {
163
+ return {
164
+ [fields[0].name]: parsed
165
+ };
166
+ }
167
+ if (!Array.isArray(parsed)) {
168
+ throw new _core.PothosValidationError(`Expected compound cursor to contain an array, but got ${parsed}`);
169
+ }
170
+ const record = {};
171
+ fields.forEach((field, i)=>{
172
+ record[field.name] = parsed[i];
173
+ });
174
+ return record;
175
+ };
176
+ }
177
+ function getCursorParser(fields) {
178
+ if (fields.length === 0) {
179
+ throw new _core.PothosValidationError('Cursor must have at least one field');
180
+ }
181
+ return (cursor)=>{
182
+ const parsed = parseDrizzleCursor(cursor);
183
+ if (fields.length === 1) {
184
+ return {
185
+ [fields[0].name]: parsed
186
+ };
187
+ }
188
+ if (!Array.isArray(parsed)) {
189
+ throw new _core.PothosValidationError(`Expected compound cursor to contain an array, but got ${parsed}`);
190
+ }
191
+ const record = {};
192
+ fields.forEach((field, i)=>{
193
+ record[field.name] = parsed[i];
194
+ });
195
+ return record;
196
+ };
197
+ }
198
+ const orderByOps = (0, _drizzleorm.getOrderByOperators)();
199
+ function parseOrderBy(orderBy, invert) {
200
+ if (!Array.isArray(orderBy)) {
201
+ return parseOrderBy([
202
+ orderBy
203
+ ], invert);
204
+ }
205
+ const asc = invert ? 'desc' : 'asc';
206
+ const desc = invert ? 'asc' : 'desc';
207
+ const normalized = orderBy.map((field)=>{
208
+ if (typeof field === 'object' && 'asc' in field) {
209
+ return {
210
+ direction: asc,
211
+ column: field.asc
212
+ };
213
+ } else if (typeof field === 'object' && 'desc' in field) {
214
+ return {
215
+ direction: desc,
216
+ column: field.desc
217
+ };
218
+ }
219
+ return {
220
+ direction: asc,
221
+ column: field
222
+ };
223
+ });
224
+ return {
225
+ normalized,
226
+ columns: normalized.map((field)=>field.column),
227
+ sql: normalized.map((field)=>orderByOps[field.direction](field.column))
228
+ };
229
+ }
230
+ const ops = (0, _drizzleorm.getOperators)();
231
+ function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, orderBy, where }) {
232
+ const { before, after, first, last } = args;
233
+ if (first != null && first < 0) {
234
+ throw new _core.PothosValidationError('Argument "first" must be a non-negative integer');
235
+ }
236
+ if (last != null && last < 0) {
237
+ throw new _core.PothosValidationError('Argument "last" must be a non-negative integer');
238
+ }
239
+ if (before && after) {
240
+ throw new _core.PothosValidationError('Arguments "before" and "after" are not supported at the same time');
241
+ }
242
+ if (before != null && first != null) {
243
+ throw new _core.PothosValidationError('Arguments "before" and "first" are not supported at the same time');
244
+ }
245
+ if (after != null && last != null) {
246
+ throw new _core.PothosValidationError('Arguments "after" and "last" are not supported at the same time');
247
+ }
248
+ const cursor = before !== null && before !== void 0 ? before : after;
249
+ const maxSizeForConnection = typeof maxSize === 'function' ? maxSize(args, ctx) : maxSize;
250
+ const defaultSizeForConnection = typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize;
251
+ var _ref;
252
+ let limit = Math.min((_ref = first !== null && first !== void 0 ? first : last) !== null && _ref !== void 0 ? _ref : defaultSizeForConnection, maxSizeForConnection) + 1;
253
+ if (before !== null && before !== void 0 ? before : last) {
254
+ limit = -limit;
255
+ }
256
+ const parsedOrderBy = parseOrderBy(orderBy, limit < 0);
257
+ const columns = {};
258
+ parsedOrderBy.columns.forEach((column)=>{
259
+ columns[column.name] = true;
260
+ });
261
+ let whereClauses = where ? [
262
+ where
263
+ ] : [];
264
+ if (cursor) {
265
+ const cursorParser = getCursorParser(parsedOrderBy.columns);
266
+ const parsedCursor = cursorParser(cursor);
267
+ whereClauses.push(ops.or(...parsedOrderBy.normalized.map(({ direction, column }, index)=>{
268
+ const compare = direction === 'asc' ? ops.gt(column, parsedCursor[column.name]) : ops.lt(column, parsedCursor[column.name]);
269
+ if (index === 0) {
270
+ return compare;
271
+ }
272
+ return ops.and(...parsedOrderBy.normalized.slice(0, index).map(({ column: c })=>ops.eq(c, parsedCursor[c.name])), compare);
273
+ })));
274
+ }
275
+ return {
276
+ cursorColumns: parsedOrderBy.columns,
277
+ columns,
278
+ orderBy: parsedOrderBy.sql,
279
+ limit,
280
+ offset: cursor ? 1 : 0,
281
+ where: ops.and(...whereClauses)
282
+ };
283
+ }
284
+ function wrapConnectionResult(results, args, limit, cursor, resolveNode) {
285
+ var _edges_, _edges_1;
286
+ const gotFullResults = results.length === Math.abs(limit);
287
+ const hasNextPage = args.before ? true : args.last ? false : gotFullResults;
288
+ var _args_before;
289
+ const hasPreviousPage = args.after ? true : ((_args_before = args.before) !== null && _args_before !== void 0 ? _args_before : args.last) ? gotFullResults : false;
290
+ const nodes = gotFullResults ? results.slice(limit < 0 ? 1 : 0, limit < 0 ? results.length : -1) : results;
291
+ const connection = {
292
+ args,
293
+ edges: [],
294
+ pageInfo: {
295
+ startCursor: null,
296
+ endCursor: null,
297
+ hasPreviousPage,
298
+ hasNextPage
299
+ }
300
+ };
301
+ const edges = nodes.map((value, index)=>value == null ? null : resolveNode ? {
302
+ connection,
303
+ ...value,
304
+ cursor: cursor(value),
305
+ node: resolveNode(value)
306
+ } : {
307
+ connection,
308
+ cursor: cursor(value),
309
+ node: value
310
+ });
311
+ if (args.last && !args.first) {
312
+ edges.reverse();
313
+ }
314
+ connection.edges = edges;
315
+ var _edges__cursor;
316
+ connection.pageInfo.startCursor = (_edges__cursor = (_edges_ = edges[0]) === null || _edges_ === void 0 ? void 0 : _edges_.cursor) !== null && _edges__cursor !== void 0 ? _edges__cursor : null;
317
+ var _edges__cursor1;
318
+ connection.pageInfo.endCursor = (_edges__cursor1 = (_edges_1 = edges[edges.length - 1]) === null || _edges_1 === void 0 ? void 0 : _edges_1.cursor) !== null && _edges__cursor1 !== void 0 ? _edges__cursor1 : null;
319
+ return connection;
320
+ }
321
+ async function resolveDrizzleCursorConnection(table, info, typeName, config, options, resolve) {
322
+ let query;
323
+ let formatter;
324
+ const results = await resolve((q)=>{
325
+ const { cursorColumns, ...connectionQuery } = drizzleCursorConnectionQuery({
326
+ ...options,
327
+ orderBy: q.orderBy ? typeof q.orderBy === 'function' ? q.orderBy(table.columns) : q.orderBy : table.primaryKey
328
+ });
329
+ formatter = getCursorFormatter(cursorColumns);
330
+ const where = typeof q.where === 'function' ? q.where(table.columns, (0, _drizzleorm.getOperators)()) : q.where;
331
+ query = (0, _mapquery.queryFromInfo)({
332
+ context: options.ctx,
333
+ info,
334
+ select: {
335
+ ...connectionQuery,
336
+ columns: {
337
+ ...q.columns,
338
+ ...connectionQuery.columns
339
+ },
340
+ where: ops.and(connectionQuery.where, where)
341
+ },
342
+ paths: [
343
+ [
344
+ 'nodes'
345
+ ],
346
+ [
347
+ 'edges',
348
+ 'node'
349
+ ]
350
+ ],
351
+ typeName,
352
+ config
353
+ });
354
+ return query;
355
+ });
356
+ if (!results) {
357
+ return results;
358
+ }
359
+ return wrapConnectionResult(results, options.args, query.limit, formatter);
360
+ }
361
+
362
+ //# sourceMappingURL=cursors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/cursors.ts"],"names":["drizzleCursorConnectionQuery","formatCursorChunk","formatDrizzleCursor","getColumnParser","getColumnSerializer","getCursorFormatter","getCursorParser","parseDrizzleCursor","parseID","parseSerializedDrizzleColumn","resolveDrizzleCursorConnection","wrapConnectionResult","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","PothosValidationError","record","fields","length","JSON","stringify","map","col","name","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","type","rawValue","match","parseInt","parse","BigInt","id","dataType","parseFloat","Buffer","from","parsed","Array","isArray","forEach","field","i","orderByOps","getOrderByOperators","parseOrderBy","orderBy","invert","asc","desc","normalized","direction","column","columns","sql","ops","getOperators","args","ctx","maxSize","defaultSize","where","before","after","first","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","parsedOrderBy","whereClauses","cursorParser","parsedCursor","push","or","index","compare","gt","lt","and","c","eq","cursorColumns","offset","results","resolveNode","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","table","info","typeName","config","options","resolve","query","formatter","q","connectionQuery","primaryKey","queryFromInfo","context","select","paths"],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /* eslint-disable no-continue */ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "deepEqual", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return deepEqual;
9
+ }
10
+ });
11
+ function deepEqual(left, right, ignore) {
12
+ if (left === right) {
13
+ return true;
14
+ }
15
+ if (left && right && typeof left === 'object' && typeof right === 'object') {
16
+ var _left_valueOf, _right_valueOf;
17
+ if (Array.isArray(left)) {
18
+ if (!Array.isArray(right)) {
19
+ return false;
20
+ }
21
+ const { length } = left;
22
+ if (right.length !== length) {
23
+ return false;
24
+ }
25
+ for(let i = 0; i < length; i += 1){
26
+ if (!deepEqual(left[i], right[i])) {
27
+ return false;
28
+ }
29
+ }
30
+ return true;
31
+ }
32
+ const lValue = (_left_valueOf = left.valueOf) === null || _left_valueOf === void 0 ? void 0 : _left_valueOf.call(left);
33
+ const rValue = (_right_valueOf = right.valueOf) === null || _right_valueOf === void 0 ? void 0 : _right_valueOf.call(right);
34
+ if ((lValue != null || rValue != null) && typeof lValue !== 'object') {
35
+ return lValue === rValue;
36
+ }
37
+ const keys = Object.keys(left);
38
+ const keyLength = keys.length;
39
+ if (keyLength !== Object.keys(right).length) {
40
+ return false;
41
+ }
42
+ for (const key of keys){
43
+ if (ignore === null || ignore === void 0 ? void 0 : ignore.has(key)) {
44
+ continue;
45
+ }
46
+ if (!deepEqual(left[key], right[key])) {
47
+ return false;
48
+ }
49
+ }
50
+ return true;
51
+ }
52
+ return false;
53
+ }
54
+
55
+ //# sourceMappingURL=deep-equal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/deep-equal.ts"],"names":["deepEqual","left","right","ignore","Array","isArray","length","i","lValue","valueOf","rValue","keys","Object","keyLength","key","has"],"mappings":"AAAA,8BAA8B;;;;+BACdA;;;eAAAA;;;AAAT,SAASA,UAAUC,IAAa,EAAEC,KAAc,EAAEC,MAAoB;IAC3E,IAAIF,SAASC,OAAO;QAClB,OAAO;IACT;IAEA,IAAID,QAAQC,SAAS,OAAOD,SAAS,YAAY,OAAOC,UAAU,UAAU;YAqB3DD,eACAC;QArBf,IAAIE,MAAMC,OAAO,CAACJ,OAAO;YACvB,IAAI,CAACG,MAAMC,OAAO,CAACH,QAAQ;gBACzB,OAAO;YACT;YAEA,MAAM,EAAEI,MAAM,EAAE,GAAGL;YAEnB,IAAIC,MAAMI,MAAM,KAAKA,QAAQ;gBAC3B,OAAO;YACT;YAEA,IAAK,IAAIC,IAAI,GAAGA,IAAID,QAAQC,KAAK,EAAG;gBAClC,IAAI,CAACP,UAAUC,IAAI,CAACM,EAAE,EAAEL,KAAK,CAACK,EAAE,GAAG;oBACjC,OAAO;gBACT;YACF;YAEA,OAAO;QACT;QAEA,MAAMC,UAASP,gBAAAA,KAAKQ,OAAO,cAAZR,oCAAAA,mBAAAA;QACf,MAAMS,UAASR,iBAAAA,MAAMO,OAAO,cAAbP,qCAAAA,oBAAAA;QAEf,IAAI,AAACM,CAAAA,UAAU,QAAQE,UAAU,IAAG,KAAM,OAAOF,WAAW,UAAU;YACpE,OAAOA,WAAWE;QACpB;QAEA,MAAMC,OAAOC,OAAOD,IAAI,CAACV;QACzB,MAAMY,YAAYF,KAAKL,MAAM;QAE7B,IAAIO,cAAcD,OAAOD,IAAI,CAACT,OAAOI,MAAM,EAAE;YAC3C,OAAO;QACT;QAEA,KAAK,MAAMQ,OAAOH,KAAM;YACtB,IAAIR,mBAAAA,6BAAAA,OAAQY,GAAG,CAACD,MAAM;gBACpB;YACF;YAEA,IACE,CAACd,UAAU,AAACC,IAAgC,CAACa,IAAI,EAAE,AAACZ,KAAiC,CAACY,IAAI,GAC1F;gBACA,OAAO;YACT;QACF;QAEA,OAAO;IACT;IAEA,OAAO;AACT"}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ extractFilters: function() {
13
+ return extractFilters;
14
+ },
15
+ extractFiltersColumn: function() {
16
+ return extractFiltersColumn;
17
+ },
18
+ extractOrderBy: function() {
19
+ return extractOrderBy;
20
+ },
21
+ remapFromGraphQLArrayInput: function() {
22
+ return remapFromGraphQLArrayInput;
23
+ },
24
+ remapFromGraphQLCore: function() {
25
+ return remapFromGraphQLCore;
26
+ },
27
+ remapFromGraphQLSingleInput: function() {
28
+ return remapFromGraphQLSingleInput;
29
+ }
30
+ });
31
+ const _drizzleorm = require("drizzle-orm");
32
+ const _graphql = require("graphql");
33
+ const remapFromGraphQLCore = (value, column, columnName)=>{
34
+ switch(column.dataType){
35
+ case 'date':
36
+ {
37
+ const formatted = new Date(value);
38
+ if (Number.isNaN(formatted.getTime())) throw new _graphql.GraphQLError(`Field '${columnName}' is not a valid date!`);
39
+ return formatted;
40
+ }
41
+ case 'buffer':
42
+ {
43
+ if (!Array.isArray(value)) {
44
+ throw new _graphql.GraphQLError(`Field '${columnName}' is not an array!`);
45
+ }
46
+ return Buffer.from(value);
47
+ }
48
+ case 'json':
49
+ {
50
+ if (column.columnType === 'PgGeometryObject') return value;
51
+ try {
52
+ return JSON.parse(value);
53
+ } catch (e) {
54
+ throw new _graphql.GraphQLError(`Invalid JSON in field '${columnName}':\n${e instanceof Error ? e.message : 'Unknown error'}`);
55
+ }
56
+ }
57
+ case 'array':
58
+ {
59
+ if (!Array.isArray(value)) {
60
+ throw new _graphql.GraphQLError(`Field '${columnName}' is not an array!`);
61
+ }
62
+ if (column.columnType === 'PgGeometry' && value.length !== 2) {
63
+ throw new _graphql.GraphQLError(`Invalid float tuple in field '${columnName}': expected array with length of 2, received ${value.length}`);
64
+ }
65
+ return value;
66
+ }
67
+ case 'bigint':
68
+ {
69
+ try {
70
+ return BigInt(value);
71
+ } catch (error) {
72
+ throw new _graphql.GraphQLError(`Field '${columnName}' is not a BigInt!`);
73
+ }
74
+ }
75
+ default:
76
+ {
77
+ return value;
78
+ }
79
+ }
80
+ };
81
+ const remapFromGraphQLSingleInput = (queryInput, table)=>{
82
+ for (const [key, value] of Object.entries(queryInput)){
83
+ if (value === undefined) {
84
+ delete queryInput[key];
85
+ } else {
86
+ const column = table.columns[key];
87
+ if (!column) throw new _graphql.GraphQLError(`Unknown column: ${key}`);
88
+ if (value === null && column.notNull) {
89
+ delete queryInput[key];
90
+ continue;
91
+ }
92
+ queryInput[key] = remapFromGraphQLCore(value, column, key);
93
+ }
94
+ }
95
+ return queryInput;
96
+ };
97
+ const remapFromGraphQLArrayInput = (queryInput, table)=>{
98
+ for (const entry of queryInput)remapFromGraphQLSingleInput(entry, table);
99
+ return queryInput;
100
+ };
101
+ const extractOrderBy = (table, orderArgs)=>{
102
+ const res = [];
103
+ for (const [column, config] of Object.entries(orderArgs).sort((a, b)=>{
104
+ var _b_, _a_;
105
+ var _b__priority, _a__priority;
106
+ return ((_b__priority = (_b_ = b[1]) === null || _b_ === void 0 ? void 0 : _b_.priority) !== null && _b__priority !== void 0 ? _b__priority : 0) - ((_a__priority = (_a_ = a[1]) === null || _a_ === void 0 ? void 0 : _a_.priority) !== null && _a__priority !== void 0 ? _a__priority : 0);
107
+ })){
108
+ if (!config) continue;
109
+ const { direction } = config;
110
+ res.push(direction === 'asc' ? (0, _drizzleorm.asc)(table.columns[column]) : (0, _drizzleorm.desc)(table.columns[column]));
111
+ }
112
+ return res;
113
+ };
114
+ const ops = (0, _drizzleorm.getOperators)();
115
+ const extractFiltersColumn = (column, columnName, operators)=>{
116
+ var _operators_OR;
117
+ if (!((_operators_OR = operators.OR) === null || _operators_OR === void 0 ? void 0 : _operators_OR.length)) delete operators.OR;
118
+ const entries = Object.entries(operators);
119
+ if (operators.OR) {
120
+ if (entries.length > 1) {
121
+ throw new _graphql.GraphQLError(`WHERE ${columnName}: Cannot specify both fields and 'OR' in column operators!`);
122
+ }
123
+ const variants = [];
124
+ for (const variant of operators.OR){
125
+ const extracted = extractFiltersColumn(column, columnName, variant);
126
+ if (extracted) variants.push(extracted);
127
+ }
128
+ return variants.length ? variants.length > 1 ? ops.or(...variants) : variants[0] : undefined;
129
+ }
130
+ const variants = [];
131
+ for (const [operatorName, operatorValue] of entries){
132
+ if (operatorValue === null || operatorValue === false) continue;
133
+ switch(operatorName){
134
+ case 'eq':
135
+ case 'ne':
136
+ case 'gt':
137
+ case 'gte':
138
+ case 'lt':
139
+ case 'lte':
140
+ const singleValue = remapFromGraphQLCore(operatorValue, column, columnName);
141
+ variants.push(ops[operatorName](column, singleValue));
142
+ break;
143
+ case 'like':
144
+ case 'notLike':
145
+ case 'ilike':
146
+ case 'notIlike':
147
+ variants.push(ops[operatorName](column, operatorValue));
148
+ break;
149
+ case 'inArray':
150
+ case 'notInArray':
151
+ if (!operatorValue.length) {
152
+ throw new _graphql.GraphQLError(`WHERE ${columnName}: Unable to use operator ${operatorName} with an empty array!`);
153
+ }
154
+ const arrayValue = operatorValue.map((val)=>remapFromGraphQLCore(val, column, columnName));
155
+ variants.push(ops[operatorName](column, arrayValue));
156
+ break;
157
+ case 'isNull':
158
+ case 'isNotNull':
159
+ variants.push(ops[operatorName](column));
160
+ break;
161
+ default:
162
+ throw new _graphql.GraphQLError(`Unknown operator: ${operatorName}`);
163
+ }
164
+ }
165
+ return variants.length ? variants.length > 1 ? ops.and(...variants) : variants[0] : undefined;
166
+ };
167
+ const extractFilters = (table, tableName, filters)=>{
168
+ var _filters_OR;
169
+ if (!((_filters_OR = filters.OR) === null || _filters_OR === void 0 ? void 0 : _filters_OR.length)) delete filters.OR;
170
+ const entries = Object.entries(filters);
171
+ if (!entries.length) return;
172
+ if (filters.OR) {
173
+ if (entries.length > 1) {
174
+ throw new _graphql.GraphQLError(`WHERE ${tableName}: Cannot specify both fields and 'OR' in table filters!`);
175
+ }
176
+ const variants = [];
177
+ for (const variant of filters.OR){
178
+ const extracted = extractFilters(table, tableName, variant);
179
+ if (extracted) variants.push(extracted);
180
+ }
181
+ return variants.length ? variants.length > 1 ? ops.or(...variants) : variants[0] : undefined;
182
+ }
183
+ const variants = [];
184
+ for (const [columnName, operators] of entries){
185
+ if (operators === null) continue;
186
+ const column = table.columns[columnName];
187
+ variants.push(extractFiltersColumn(column, columnName, operators));
188
+ }
189
+ return variants.length ? variants.length > 1 ? ops.and(...variants) : variants[0] : undefined;
190
+ };
191
+
192
+ //# sourceMappingURL=drizzle-graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/drizzle-graphql.ts"],"names":["extractFilters","extractFiltersColumn","extractOrderBy","remapFromGraphQLArrayInput","remapFromGraphQLCore","remapFromGraphQLSingleInput","value","column","columnName","dataType","formatted","Date","Number","isNaN","getTime","GraphQLError","Array","isArray","Buffer","from","columnType","JSON","parse","e","Error","message","length","BigInt","error","queryInput","table","key","Object","entries","undefined","columns","notNull","entry","orderArgs","res","config","sort","a","b","priority","direction","push","asc","desc","ops","getOperators","operators","OR","variants","variant","extracted","or","operatorName","operatorValue","singleValue","arrayValue","map","val","and","tableName","filters"],"mappings":"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"}