@pothos/plugin-drizzle 0.17.5 → 0.18.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 (50) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dts/connection-helpers.d.ts.map +1 -1
  3. package/dts/drizzle-field-builder.d.ts.map +1 -1
  4. package/dts/types.d.ts +5 -2
  5. package/dts/types.d.ts.map +1 -1
  6. package/dts/utils/config.d.ts +3 -0
  7. package/dts/utils/config.d.ts.map +1 -1
  8. package/dts/utils/cursors.d.ts +12 -8
  9. package/dts/utils/cursors.d.ts.map +1 -1
  10. package/dts/utils/selections.d.ts +1 -0
  11. package/dts/utils/selections.d.ts.map +1 -1
  12. package/esm/connection-helpers.d.ts.map +1 -1
  13. package/esm/connection-helpers.js +8 -7
  14. package/esm/connection-helpers.js.map +1 -1
  15. package/esm/drizzle-field-builder.d.ts.map +1 -1
  16. package/esm/drizzle-field-builder.js +8 -6
  17. package/esm/drizzle-field-builder.js.map +1 -1
  18. package/esm/types.d.ts +5 -2
  19. package/esm/types.d.ts.map +1 -1
  20. package/esm/types.js.map +1 -1
  21. package/esm/utils/config.d.ts +3 -0
  22. package/esm/utils/config.d.ts.map +1 -1
  23. package/esm/utils/config.js +95 -17
  24. package/esm/utils/config.js.map +1 -1
  25. package/esm/utils/cursors.d.ts +12 -8
  26. package/esm/utils/cursors.d.ts.map +1 -1
  27. package/esm/utils/cursors.js +199 -117
  28. package/esm/utils/cursors.js.map +1 -1
  29. package/esm/utils/selections.d.ts +1 -0
  30. package/esm/utils/selections.d.ts.map +1 -1
  31. package/esm/utils/selections.js +10 -4
  32. package/esm/utils/selections.js.map +1 -1
  33. package/lib/connection-helpers.js +7 -6
  34. package/lib/connection-helpers.js.map +1 -1
  35. package/lib/drizzle-field-builder.js +8 -6
  36. package/lib/drizzle-field-builder.js.map +1 -1
  37. package/lib/types.js.map +1 -1
  38. package/lib/utils/config.js +95 -17
  39. package/lib/utils/config.js.map +1 -1
  40. package/lib/utils/cursors.js +201 -116
  41. package/lib/utils/cursors.js.map +1 -1
  42. package/lib/utils/selections.js +13 -4
  43. package/lib/utils/selections.js.map +1 -1
  44. package/package.json +4 -4
  45. package/src/connection-helpers.ts +14 -7
  46. package/src/drizzle-field-builder.ts +10 -7
  47. package/src/types.ts +8 -4
  48. package/src/utils/config.ts +117 -20
  49. package/src/utils/cursors.ts +253 -92
  50. package/src/utils/selections.ts +12 -4
@@ -1,6 +1,7 @@
1
1
  import { decodeBase64, encodeBase64, PothosValidationError } from '@pothos/core';
2
- import { getColumns } from 'drizzle-orm';
2
+ import { asc, desc, eq, getColumns, gt, isNull, lt, sql } from 'drizzle-orm';
3
3
  import { queryFromInfo } from './map-query.js';
4
+ import { omitUndefinedKeys } from './selections.js';
4
5
  const DEFAULT_MAX_SIZE = 100;
5
6
  const DEFAULT_SIZE = 20;
6
7
  export function formatCursorChunk(value) {
@@ -49,15 +50,20 @@ export function getIDSerializer(fields, config) {
49
50
  return `${formatIDChunk(value[config.columnToTsName(fields[0])])}`;
50
51
  };
51
52
  }
53
+ export function cursorFieldKey(field, config) {
54
+ return typeof field === 'string' ? field : config.columnToTsName(field);
55
+ }
52
56
  export function getColumnSerializer(fields, config) {
53
57
  if (fields.length === 0) {
54
58
  throw new PothosValidationError('Column serializer must have at least one field');
55
59
  }
56
60
  return (value)=>{
57
61
  if (fields.length > 1) {
58
- return `J:${JSON.stringify(fields.map((col)=>value[config.columnToTsName(col)]))}`;
62
+ // each value carries its own type tag, the same ones a single value gets.
63
+ // Plain JSON would turn a Date into a string and refuse a bigint outright.
64
+ return `T:${JSON.stringify(fields.map((field)=>formatCursorChunk(value[cursorFieldKey(field, config)])))}`;
59
65
  }
60
- return formatCursorChunk(value[config.columnToTsName(fields[0])]);
66
+ return formatCursorChunk(value[cursorFieldKey(fields[0], config)]);
61
67
  };
62
68
  }
63
69
  export function getCursorFormatter(fields, config) {
@@ -88,7 +94,7 @@ export function parseSerializedDrizzleColumn(value) {
88
94
  throw new PothosValidationError('value must be a string');
89
95
  }
90
96
  try {
91
- const [, type, rawValue] = value.match(/^(S|N|D|J|I):(.*)/);
97
+ const [, type, rawValue] = value.match(/^(S|N|D|J|I|T):(.*)/);
92
98
  switch(type){
93
99
  case 'S':
94
100
  return rawValue;
@@ -97,7 +103,11 @@ export function parseSerializedDrizzleColumn(value) {
97
103
  case 'D':
98
104
  return new Date(Number.parseInt(rawValue, 10));
99
105
  case 'J':
106
+ // compound values from before each one carried a tag: whatever JSON
107
+ // preserved is the best that can be recovered
100
108
  return JSON.parse(rawValue);
109
+ case 'T':
110
+ return JSON.parse(rawValue).map((chunk)=>chunk === null ? null : parseSerializedDrizzleColumn(chunk));
101
111
  case 'I':
102
112
  return BigInt(rawValue);
103
113
  default:
@@ -187,79 +197,207 @@ export function getColumnParser(fields) {
187
197
  return record;
188
198
  };
189
199
  }
190
- export function getCursorParser(fields) {
191
- if (fields.length === 0) {
200
+ export function getCursorParser(keys) {
201
+ if (keys.length === 0) {
192
202
  throw new PothosValidationError('Cursor must have at least one field');
193
203
  }
194
204
  return (cursor)=>{
195
205
  const parsed = parseDrizzleCursor(cursor);
196
- if (fields.length === 1) {
206
+ if (keys.length === 1) {
197
207
  return {
198
- [fields[0].name]: parsed
208
+ [keys[0]]: parsed
199
209
  };
200
210
  }
201
- if (!Array.isArray(parsed)) {
202
- throw new PothosValidationError(`Expected compound cursor to contain an array, but got ${parsed}`);
211
+ // A cursor issued before a column joined the ordering only holds values for
212
+ // the columns that came before it. Those still describe a position, just a
213
+ // less precise one, so the page is keyed off the prefix the cursor covers
214
+ // rather than rejected. Cursors returned by that page carry every column.
215
+ const values = Array.isArray(parsed) ? parsed : [
216
+ parsed
217
+ ];
218
+ if (values.length === 0) {
219
+ throw new PothosValidationError('Cursor contains no values');
220
+ }
221
+ if (values.length > keys.length) {
222
+ throw new PothosValidationError(`Expected cursor to contain at most ${keys.length} values, but got ${values.length}`);
203
223
  }
204
224
  const record = {};
205
- fields.forEach((field, i)=>{
206
- record[field.name] = parsed[i];
225
+ values.forEach((value, i)=>{
226
+ record[keys[i]] = value;
207
227
  });
208
228
  return record;
209
229
  };
210
230
  }
211
- function parseOrderBy(config, table, orderBy, invert) {
212
- const entries = [];
213
- const columns = [];
231
+ function resolveExpression(expression, table) {
232
+ return typeof expression === 'function' ? expression(table, {
233
+ sql
234
+ }) : expression;
235
+ }
236
+ // Drizzle aliases the table it is querying (`d0`), so ordering and comparing
237
+ // have to reach for the column on that alias rather than the original table.
238
+ // Expressions get the alias handed to them and resolve themselves.
239
+ function orderTarget(entry, table) {
240
+ if (entry.column) {
241
+ var _table_entry_key;
242
+ return (_table_entry_key = table[entry.key]) !== null && _table_entry_key !== void 0 ? _table_entry_key : entry.column;
243
+ }
244
+ return resolveExpression(entry.expression, table);
245
+ }
246
+ function flipDirection(direction) {
247
+ return direction === 'asc' ? 'desc' : 'asc';
248
+ }
249
+ function ordersBy(entries, column) {
250
+ return entries.some((entry)=>{
251
+ var _entry_column;
252
+ return ((_entry_column = entry.column) === null || _entry_column === void 0 ? void 0 : _entry_column.name) === column.name;
253
+ });
254
+ }
255
+ // The ordering fixes a row's position only if some set of columns the database
256
+ // keeps unique is fully covered by it. A nullable column can't contribute:
257
+ // rows sharing a null tie with each other, and a cursor compared against null
258
+ // matches nothing.
259
+ function orderIsUnique(entries, config, table) {
260
+ return config.getUniqueConstraints(table.name).some((columns)=>columns.every((column)=>column.notNull && ordersBy(entries, column)));
261
+ }
262
+ // A cursor names a row's position in the ordering, which only works if no two
263
+ // rows can share a position. Ordering by a column with duplicate values (a
264
+ // timestamp, a status) leaves ties to be broken arbitrarily, so a row can move
265
+ // between pages and end up returned twice or skipped entirely. Appending a key
266
+ // the database keeps unique fixes that. Key columns already in the ordering are
267
+ // left where the user put them.
268
+ function appendTieBreaker(entries, config, table) {
269
+ var _ref;
270
+ var _entries_;
271
+ if (orderIsUnique(entries, config, table)) {
272
+ return;
273
+ }
274
+ const tieBreaker = config.findTieBreaker(table.name);
275
+ if (!tieBreaker) {
276
+ return;
277
+ }
278
+ const direction = (_ref = (_entries_ = entries[entries.length - 1]) === null || _entries_ === void 0 ? void 0 : _entries_.direction) !== null && _ref !== void 0 ? _ref : 'asc';
279
+ for (const column of tieBreaker){
280
+ if (!ordersBy(entries, column)) {
281
+ entries.push({
282
+ direction,
283
+ key: config.columnToTsName(column),
284
+ column
285
+ });
286
+ }
287
+ }
288
+ }
289
+ function parseOrderBy(config, table, orderBy, invert, extras) {
214
290
  const normalized = [];
215
- const asc = invert ? 'desc' : 'asc';
216
- const desc = invert ? 'asc' : 'desc';
217
- if ('table' in orderBy && orderBy.table && typeof orderBy.table === 'object') {
218
- entries.push([
219
- config.columnToTsName(orderBy),
220
- asc
221
- ]);
222
- columns.push(orderBy);
223
- normalized.push({
224
- direction: 'asc',
225
- column: orderBy
291
+ const columnEntry = (column, direction)=>({
292
+ direction,
293
+ key: config.columnToTsName(column),
294
+ column
226
295
  });
296
+ if ('table' in orderBy && orderBy.table && typeof orderBy.table === 'object') {
297
+ normalized.push(columnEntry(orderBy, 'asc'));
227
298
  } else if (Array.isArray(orderBy)) {
228
299
  for (const field of orderBy){
229
- entries.push([
230
- config.columnToTsName(field),
231
- asc
232
- ]);
233
- columns.push(field);
234
- normalized.push({
235
- direction: 'asc',
236
- column: field
237
- });
300
+ normalized.push(columnEntry(field, 'asc'));
238
301
  }
239
302
  } else {
240
303
  const tableColumns = getColumns(table.table);
241
304
  Object.entries(orderBy).forEach(([name, direction])=>{
242
- if (direction) {
243
- const column = tableColumns[name];
244
- columns.push(column);
245
- entries.push([
246
- name,
247
- direction === 'asc' ? asc : desc
248
- ]);
249
- normalized.push({
250
- direction: direction,
251
- column
252
- });
305
+ if (!direction) {
306
+ return;
253
307
  }
308
+ const column = tableColumns[name];
309
+ if (column) {
310
+ normalized.push(columnEntry(column, direction));
311
+ return;
312
+ }
313
+ const expression = extras === null || extras === void 0 ? void 0 : extras[name];
314
+ if (!expression) {
315
+ throw new PothosValidationError(`Can't order by "${name}": ${table.name} has no such column, and the query passed to the connection declares no extra with that name`);
316
+ }
317
+ normalized.push({
318
+ direction,
319
+ key: name,
320
+ expression
321
+ });
254
322
  });
255
323
  }
324
+ appendTieBreaker(normalized, config, table);
325
+ const directionFor = ({ direction })=>invert ? flipDirection(direction) : direction;
256
326
  return {
257
327
  normalized,
258
- columns,
259
- orderBy: Object.fromEntries(entries)
328
+ // only real columns need adding to the selection; extras are already selected
329
+ columns: normalized.flatMap(({ column })=>column ? [
330
+ column
331
+ ] : []),
332
+ cursorFields: normalized.map(({ column, key })=>column !== null && column !== void 0 ? column : key),
333
+ // the object form can only name columns, so an expression forces the
334
+ // callback form -- which renders identically for the columns beside it
335
+ orderBy: normalized.some(({ expression })=>expression) ? (t)=>normalized.map((entry)=>(directionFor(entry) === 'asc' ? asc : desc)(orderTarget(entry, t))) : Object.fromEntries(normalized.map((entry)=>[
336
+ entry.key,
337
+ directionFor(entry)
338
+ ]))
260
339
  };
261
340
  }
262
- export function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, orderBy, where, config, table }) {
341
+ // Rows past the cursor are those where the first ordering column that differs
342
+ // from the cursor differs in the direction being paged. Columns the cursor
343
+ // doesn't cover are left out: it was issued for a shorter ordering, and its
344
+ // prefix still describes a position.
345
+ function compareTo(entry, operator, value) {
346
+ const isNullish = value === null || value === undefined;
347
+ if (entry.column) {
348
+ if (operator === 'eq' && isNullish) {
349
+ return {
350
+ [entry.key]: {
351
+ isNull: true
352
+ }
353
+ };
354
+ }
355
+ // never the `{ column: value }` shorthand: drizzle reads any object value
356
+ // as a nested filter, so a null throws and a Date silently drops the
357
+ // comparison. Naming the operator works for every value a cursor can hold
358
+ return {
359
+ [entry.key]: {
360
+ [operator]: value
361
+ }
362
+ };
363
+ }
364
+ if (operator === 'eq' && isNullish) {
365
+ return {
366
+ RAW: (table)=>isNull(orderTarget(entry, table))
367
+ };
368
+ }
369
+ const operators = {
370
+ gt,
371
+ lt,
372
+ eq
373
+ };
374
+ // RAW hands the filter the table it is being built against, which is what an
375
+ // expression needs to resolve
376
+ return {
377
+ RAW: (table)=>operators[operator](orderTarget(entry, table), value)
378
+ };
379
+ }
380
+ function keysetFilter(entries, cursor, paging) {
381
+ const parsedCursor = getCursorParser(entries.map(({ key })=>key))(cursor);
382
+ const covered = entries.filter(({ key })=>key in parsedCursor);
383
+ const parts = covered.map((entry, index)=>{
384
+ const ascending = paging === 'after' ? entry.direction === 'asc' : entry.direction === 'desc';
385
+ const compare = compareTo(entry, ascending ? 'gt' : 'lt', parsedCursor[entry.key]);
386
+ if (index === 0) {
387
+ return compare;
388
+ }
389
+ return {
390
+ AND: [
391
+ ...covered.slice(0, index).map((previous)=>compareTo(previous, 'eq', parsedCursor[previous.key])),
392
+ compare
393
+ ]
394
+ };
395
+ });
396
+ return parts.length > 1 ? {
397
+ OR: parts
398
+ } : parts[0];
399
+ }
400
+ export function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, orderBy, extras, where, config, table }) {
263
401
  var _ref;
264
402
  const { before, after, first, last } = args;
265
403
  if (first != null && first < 0) {
@@ -275,7 +413,7 @@ export function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_
275
413
  const defaultSizeForConnection = typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize;
276
414
  const limit = Math.min((_ref = first !== null && first !== void 0 ? first : last) !== null && _ref !== void 0 ? _ref : defaultSizeForConnection, maxSizeForConnection) + 1;
277
415
  const inverted = !first && !!last;
278
- const parsedOrderBy = parseOrderBy(config, table, orderBy, inverted);
416
+ const parsedOrderBy = parseOrderBy(config, table, orderBy, inverted, extras);
279
417
  const columns = {};
280
418
  for (const column of parsedOrderBy.columns){
281
419
  columns[config.columnToTsName(column)] = true;
@@ -285,78 +423,20 @@ export function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_
285
423
  whereClauses.push(where);
286
424
  }
287
425
  if (after) {
288
- const cursorParser = getCursorParser(parsedOrderBy.columns);
289
- const parsedCursor = cursorParser(after);
290
- const parts = parsedOrderBy.normalized.map(({ direction, column }, index)=>{
291
- const columnName = config.columnToTsName(column);
292
- const compare = direction === 'asc' ? {
293
- [columnName]: {
294
- gt: parsedCursor[column.name]
295
- }
296
- } : {
297
- [columnName]: {
298
- lt: parsedCursor[column.name]
299
- }
300
- };
301
- if (index === 0) {
302
- return compare;
303
- }
304
- return {
305
- AND: [
306
- ...parsedOrderBy.normalized.slice(0, index).map(({ column: c })=>{
307
- return {
308
- [config.columnToTsName(c)]: parsedCursor[c.name]
309
- };
310
- }),
311
- compare
312
- ]
313
- };
314
- });
315
- whereClauses.push(parts.length > 1 ? {
316
- OR: parts
317
- } : parts[0]);
426
+ whereClauses.push(keysetFilter(parsedOrderBy.normalized, after, 'after'));
318
427
  }
319
428
  if (before) {
320
- const cursorParser = getCursorParser(parsedOrderBy.columns);
321
- const parsedCursor = cursorParser(before);
322
- const parts = parsedOrderBy.normalized.map(({ direction, column }, index)=>{
323
- const columnName = config.columnToTsName(column);
324
- const compare = direction === 'desc' ? {
325
- [columnName]: {
326
- gt: parsedCursor[column.name]
327
- }
328
- } : {
329
- [columnName]: {
330
- lt: parsedCursor[column.name]
331
- }
332
- };
333
- if (index === 0) {
334
- return compare;
335
- }
336
- return {
337
- AND: [
338
- ...parsedOrderBy.normalized.slice(0, index).map(({ column: c })=>{
339
- return {
340
- [config.columnToTsName(c)]: parsedCursor[c.name]
341
- };
342
- }),
343
- compare
344
- ]
345
- };
346
- });
347
- whereClauses.push(parts.length > 1 ? {
348
- OR: parts
349
- } : parts[0]);
429
+ whereClauses.push(keysetFilter(parsedOrderBy.normalized, before, 'before'));
350
430
  }
351
- return {
352
- cursorColumns: parsedOrderBy.columns,
431
+ return omitUndefinedKeys({
432
+ cursorFields: parsedOrderBy.cursorFields,
353
433
  columns,
354
434
  orderBy: parsedOrderBy.orderBy,
355
435
  limit,
356
436
  where: whereClauses.length > 1 ? {
357
437
  AND: whereClauses
358
438
  } : whereClauses[0]
359
- };
439
+ });
360
440
  }
361
441
  export function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent, totalCount) {
362
442
  var _ref, _ref1;
@@ -401,18 +481,20 @@ export async function resolveDrizzleCursorConnection(tableName, info, typeName,
401
481
  let formatter;
402
482
  const results = await resolve((q = {})=>{
403
483
  var _ref;
404
- const { cursorColumns, ...connectionQuery } = drizzleCursorConnectionQuery({
484
+ const { cursorFields, ...connectionQuery } = drizzleCursorConnectionQuery({
405
485
  ...options,
406
486
  config,
407
487
  orderBy: (_ref = typeof q.orderBy === 'function' ? q.orderBy(table.table) : q.orderBy) !== null && _ref !== void 0 ? _ref : config.getPrimaryKey(table.name),
488
+ extras: q.extras,
408
489
  table
409
490
  });
410
- formatter = getCursorFormatter(cursorColumns, config);
491
+ formatter = getCursorFormatter(cursorFields, config);
411
492
  query = queryFromInfo({
412
493
  context: options.ctx,
413
494
  info,
414
- select: {
495
+ select: omitUndefinedKeys({
415
496
  ...connectionQuery,
497
+ extras: q.extras,
416
498
  columns: {
417
499
  ...q.columns,
418
500
  ...connectionQuery.columns
@@ -423,7 +505,7 @@ export async function resolveDrizzleCursorConnection(tableName, info, typeName,
423
505
  connectionQuery.where
424
506
  ]
425
507
  } : q.where || connectionQuery.where
426
- },
508
+ }),
427
509
  paths: [
428
510
  [
429
511
  'nodes'
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["decodeBase64","encodeBase64","PothosValidationError","getColumns","queryFromInfo","DEFAULT_MAX_SIZE","DEFAULT_SIZE","formatCursorChunk","value","Date","String","Number","formatDrizzleCursor","record","fields","config","getCursorFormatter","formatIDChunk","getIDSerializer","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","getColumnSerializer","serializer","parseDrizzleCursor","cursor","decoded","startsWith","parseSerializedDrizzleColumn","slice","type","rawValue","match","parseInt","parse","BigInt","parseSerializedIDColumn","id","dataType","error","getIDParser","name","parsed","Array","isArray","forEach","i","getColumnParser","getCursorParser","parseOrderBy","table","orderBy","invert","entries","columns","normalized","asc","desc","push","direction","column","tableColumns","Object","fromEntries","drizzleCursorConnectionQuery","args","ctx","maxSize","defaultSize","where","first","before","after","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","cursorParser","parsedCursor","parts","index","columnName","compare","gt","lt","AND","c","OR","cursorColumns","wrapConnectionResult","results","resolveNode","parent","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","resolveDrizzleCursorConnection","tableName","info","typeName","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","context","select","paths","undefined"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["decodeBase64","encodeBase64","PothosValidationError","asc","desc","eq","getColumns","gt","isNull","lt","sql","queryFromInfo","omitUndefinedKeys","DEFAULT_MAX_SIZE","DEFAULT_SIZE","formatCursorChunk","value","Date","String","Number","formatDrizzleCursor","record","fields","config","getCursorFormatter","formatIDChunk","getIDSerializer","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","cursorFieldKey","getColumnSerializer","serializer","parseDrizzleCursor","cursor","decoded","startsWith","parseSerializedDrizzleColumn","slice","type","rawValue","match","parseInt","parse","chunk","BigInt","parseSerializedIDColumn","id","dataType","error","getIDParser","name","parsed","Array","isArray","forEach","i","getColumnParser","getCursorParser","keys","values","resolveExpression","expression","table","orderTarget","entry","column","key","flipDirection","direction","ordersBy","entries","some","orderIsUnique","getUniqueConstraints","columns","every","notNull","appendTieBreaker","tieBreaker","findTieBreaker","push","parseOrderBy","orderBy","invert","extras","normalized","columnEntry","tableColumns","Object","directionFor","flatMap","cursorFields","t","fromEntries","compareTo","operator","isNullish","undefined","RAW","operators","keysetFilter","paging","parsedCursor","covered","filter","parts","index","ascending","compare","AND","previous","OR","drizzleCursorConnectionQuery","args","ctx","maxSize","defaultSize","where","first","before","after","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","wrapConnectionResult","results","resolveNode","parent","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","resolveDrizzleCursorConnection","tableName","info","typeName","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","context","select","paths"],"mappings":"AAAA,SACEA,YAAY,EACZC,YAAY,EAEZC,qBAAqB,QAEhB,eAAe;AACtB,SACEC,GAAG,EAGHC,IAAI,EACJC,EAAE,EACFC,UAAU,EACVC,EAAE,EACFC,MAAM,EACNC,EAAE,EAEFC,GAAG,QAGE,cAAc;AAIrB,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,iBAAiB,QAA2B,kBAAkB;AAEvE,MAAMC,mBAAmB;AACzB,MAAMC,eAAe;AAErB,OAAO,SAASC,kBAAkBC,KAAc;IAC9C,IAAIA,SAAS,MAAM;QACjB,OAAO;IACT;IAEA,IAAIA,iBAAiBC,MAAM;QACzB,OAAO,CAAC,EAAE,EAAEC,OAAOC,OAAOH,SAAS;IACrC;IAEA,OAAQ,OAAOA;QACb,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,OAAO;QACrB,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,OAAO;QACrB,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,OAAO;QACrB;YACE,MAAM,IAAId,sBAAsB,CAAC,wBAAwB,EAAE,OAAOc,OAAO;IAC7E;AACF;AAEA,OAAO,SAASI,oBACdC,MAA+B,EAC/BC,MAAgB,EAChBC,MAAiC;IAEjC,OAAOC,mBAAmBF,QAAQC,QAAQF;AAC5C;AAEA,OAAO,SAASI,cAAcT,KAAc;IAC1C,IAAIA,iBAAiBC,MAAM;QACzB,OAAO,GAAGC,OAAOC,OAAOH,SAAS;IACnC;IAEA,OAAQ,OAAOA;QACb,KAAK;QACL,KAAK;QACL,KAAK;YACH,OAAO,GAAGA,OAAO;QACnB;YACE,MAAM,IAAId,sBAAsB,CAAC,oBAAoB,EAAE,OAAOc,OAAO;IACzE;AACF;AAEA,OAAO,SAASU,gBAAgBJ,MAAgB,EAAEC,MAAiC;IACjF,IAAID,OAAOK,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIzB,sBAAsB;IAClC;IAEA,OAAO,CAACc;QACN,IAAIM,OAAOK,MAAM,GAAG,GAAG;YACrBL,OAAOM,GAAG,CAAC,CAACC,QAAUA,MAAMC,SAAS;YACrC,OAAO,GAAGC,KAAKC,SAAS,CAACV,OAAOM,GAAG,CAAC,CAACK,MAAQjB,KAAK,CAACO,OAAOW,cAAc,CAACD,KAAK,IAAI;QACpF;QAEA,OAAO,GAAGR,cAAcT,KAAK,CAACO,OAAOW,cAAc,CAACZ,MAAM,CAAC,EAAE,EAAE,GAAG;IACpE;AACF;AAOA,OAAO,SAASa,eAAeN,KAAkB,EAAEN,MAAiC;IAClF,OAAO,OAAOM,UAAU,WAAWA,QAAQN,OAAOW,cAAc,CAACL;AACnE;AAEA,OAAO,SAASO,oBACdd,MAA8B,EAC9BC,MAAiC;IAEjC,IAAID,OAAOK,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIzB,sBAAsB;IAClC;IAEA,OAAO,CAACc;QACN,IAAIM,OAAOK,MAAM,GAAG,GAAG;YACrB,0EAA0E;YAC1E,2EAA2E;YAC3E,OAAO,CAAC,EAAE,EAAEI,KAAKC,SAAS,CACxBV,OAAOM,GAAG,CAAC,CAACC,QAAUd,kBAAkBC,KAAK,CAACmB,eAAeN,OAAON,QAAQ,KAC3E;QACL;QAEA,OAAOR,kBAAkBC,KAAK,CAACmB,eAAeb,MAAM,CAAC,EAAE,EAAEC,QAAQ;IACnE;AACF;AAEA,OAAO,SAASC,mBACdF,MAA8B,EAC9BC,MAAiC;IAEjC,IAAID,OAAOK,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIzB,sBAAsB;IAClC;IAEA,MAAMmC,aAAaD,oBAAoBd,QAAQC;IAE/C,OAAO,CAACP;QACN,OAAOf,aAAa,CAAC,GAAG,EAAEoC,WAAWrB,QAAQ;IAC/C;AACF;AAEA,OAAO,SAASsB,mBAAmBC,MAAe;IAChD,IAAI,OAAOA,WAAW,UAAU;QAC9B,MAAM,IAAIrC,sBAAsB;IAClC;IAEA,IAAI;QACF,MAAMsC,UAAUxC,aAAauC;QAC7B,IAAI,CAACC,QAAQC,UAAU,CAAC,QAAQ;YAC9B,MAAM,IAAIvC,sBAAsB;QAClC;QAEA,OAAOwC,6BAA6BF,QAAQG,KAAK,CAAC;IACpD,EAAE,OAAM;QACN,MAAM,IAAIzC,sBAAsB,CAAC,gBAAgB,EAAEqC,QAAQ;IAC7D;AACF;AAEA,OAAO,SAASG,6BAA6B1B,KAAc;IACzD,IAAI,OAAOA,UAAU,UAAU;QAC7B,MAAM,IAAId,sBAAsB;IAClC;IAEA,IAAI;QACF,MAAM,GAAG0C,MAAMC,SAAS,GAAG7B,MAAM8B,KAAK,CAAC;QAEvC,OAAQF;YACN,KAAK;gBACH,OAAOC;YACT,KAAK;gBACH,OAAO1B,OAAO4B,QAAQ,CAACF,UAAU;YACnC,KAAK;gBACH,OAAO,IAAI5B,KAAKE,OAAO4B,QAAQ,CAACF,UAAU;YAC5C,KAAK;gBACH,oEAAoE;gBACpE,8CAA8C;gBAC9C,OAAOd,KAAKiB,KAAK,CAACH;YACpB,KAAK;gBACH,OAAO,AAACd,KAAKiB,KAAK,CAACH,UAAgCjB,GAAG,CAAC,CAACqB,QACtDA,UAAU,OAAO,OAAOP,6BAA6BO;YAEzD,KAAK;gBACH,OAAOC,OAAOL;YAChB;gBACE,MAAM,IAAI3C,sBAAsB,CAAC,oBAAoB,EAAE0C,MAAM;QACjE;IACF,EAAE,OAAM;QACN,MAAM,IAAI1C,sBAAsB,CAAC,yBAAyB,EAAEc,OAAO;IACrE;AACF;AAEA,OAAO,SAASmC,wBAAwBC,EAAU,EAAEvB,KAAa;IAC/D,IAAI,CAACuB,IAAI;QACP,OAAOA;IACT;IAEA,IAAI;QACF,IAAIvB,MAAMwB,QAAQ,CAACZ,UAAU,CAAC,WAAW;YACvC,OAAOtB,OAAO4B,QAAQ,CAACK,IAAI;QAC7B;QAEA,IAAIvB,MAAMwB,QAAQ,CAACZ,UAAU,CAAC,WAAW;YACvC,OAAOS,OAAOE;QAChB;QAEA,IAAIvB,MAAMwB,QAAQ,CAACZ,UAAU,CAAC,WAAW;YACvC,OAAOW;QACT;QAEA,IAAIvB,MAAMwB,QAAQ,KAAK,eAAe;YACpC,OAAO,IAAIpC,KAAKmC;QAClB;QAEA,MAAM,IAAIlD,sBAAsB,CAAC,oBAAoB,EAAE2B,MAAMwB,QAAQ,EAAE;IACzE,EAAE,OAAOC,OAAgB;QACvB,IAAIA,iBAAiBpD,uBAAuB;YAC1C,MAAMoD;QACR;QAEA,MAAM,IAAIpD,sBAAsB,CAAC,uBAAuB,EAAEkD,IAAI;IAChE;AACF;AAEA,OAAO,SAASG,YAAYjC,MAAyB;IACnD,IAAIA,OAAOK,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIzB,sBAAsB;IAClC;IAEA,OAAO,CAACc;QACN,IAAIM,OAAOK,MAAM,KAAK,GAAG;YACvB,OAAO;gBAAE,CAACL,MAAM,CAAC,EAAE,CAACkC,IAAI,CAAC,EAAEL,wBAAwBnC,OAAOM,MAAM,CAAC,EAAE;YAAE;QACvE;QAEA,IAAI;YACF,MAAMmC,SAAS1B,KAAKiB,KAAK,CAAChC;YAE1B,IAAI,CAAC0C,MAAMC,OAAO,CAACF,SAAS;gBAC1B,MAAM,IAAIvD,sBACR,CAAC,kDAAkD,EAAEc,OAAO;YAEhE;YAEA,IAAIyC,OAAO9B,MAAM,KAAKL,OAAOK,MAAM,EAAE;gBACnC,MAAM,IAAIzB,sBACR,CAAC,gCAAgC,EAAEoB,OAAOK,MAAM,CAAC,mBAAmB,EAAE8B,OAAO9B,MAAM,EAAE;YAEzF;YAEA,MAAMN,SAAkC,CAAC;YAEzCC,OAAOsC,OAAO,CAAC,CAAC/B,OAAOgC;gBACrBxC,MAAM,CAACQ,MAAM2B,IAAI,CAAC,GAAGC,MAAM,CAACI,EAAE;YAChC;YAEA,OAAOxC;QACT,EAAE,OAAOiC,OAAgB;YACvB,IAAIA,iBAAiBpD,uBAAuB;gBAC1C,MAAMoD;YACR;YAEA,MAAM,IAAIpD,sBAAsB,CAAC,uBAAuB,EAAEc,OAAO;QACnE;IACF;AACF;AAEA,OAAO,SAAS8C,gBAAgBxC,MAAyB;IACvD,IAAIA,OAAOK,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIzB,sBAAsB;IAClC;IAEA,OAAO,CAACc;QACN,MAAMyC,SAASf,6BAA6B1B;QAE5C,IAAIM,OAAOK,MAAM,KAAK,GAAG;YACvB,OAAO;gBAAE,CAACL,MAAM,CAAC,EAAE,CAACkC,IAAI,CAAC,EAAEC;YAAO;QACpC;QAEA,IAAI,CAACC,MAAMC,OAAO,CAACF,SAAS;YAC1B,MAAM,IAAIvD,sBACR,CAAC,sDAAsD,EAAEuD,QAAQ;QAErE;QAEA,IAAIA,OAAO9B,MAAM,KAAKL,OAAOK,MAAM,EAAE;YACnC,MAAM,IAAIzB,sBACR,CAAC,oCAAoC,EAAEoB,OAAOK,MAAM,CAAC,mBAAmB,EAAE8B,OAAO9B,MAAM,EAAE;QAE7F;QAEA,MAAMN,SAAkC,CAAC;QAEzCC,OAAOsC,OAAO,CAAC,CAAC/B,OAAOgC;YACrBxC,MAAM,CAACQ,MAAM2B,IAAI,CAAC,GAAGC,MAAM,CAACI,EAAE;QAChC;QAEA,OAAOxC;IACT;AACF;AAEA,OAAO,SAAS0C,gBAAgBC,IAAuB;IACrD,IAAIA,KAAKrC,MAAM,KAAK,GAAG;QACrB,MAAM,IAAIzB,sBAAsB;IAClC;IAEA,OAAO,CAACqC;QACN,MAAMkB,SAASnB,mBAAmBC;QAElC,IAAIyB,KAAKrC,MAAM,KAAK,GAAG;YACrB,OAAO;gBAAE,CAACqC,IAAI,CAAC,EAAE,CAAC,EAAEP;YAAO;QAC7B;QAEA,4EAA4E;QAC5E,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAMQ,SAASP,MAAMC,OAAO,CAACF,UAAUA,SAAS;YAACA;SAAO;QAExD,IAAIQ,OAAOtC,MAAM,KAAK,GAAG;YACvB,MAAM,IAAIzB,sBAAsB;QAClC;QAEA,IAAI+D,OAAOtC,MAAM,GAAGqC,KAAKrC,MAAM,EAAE;YAC/B,MAAM,IAAIzB,sBACR,CAAC,mCAAmC,EAAE8D,KAAKrC,MAAM,CAAC,iBAAiB,EAAEsC,OAAOtC,MAAM,EAAE;QAExF;QAEA,MAAMN,SAAkC,CAAC;QAEzC4C,OAAOL,OAAO,CAAC,CAAC5C,OAAO6C;YACrBxC,MAAM,CAAC2C,IAAI,CAACH,EAAE,CAAC,GAAG7C;QACpB;QAEA,OAAOK;IACT;AACF;AA0BA,SAAS6C,kBAAkBC,UAA6B,EAAEC,KAAY;IACpE,OAAO,OAAOD,eAAe,aACzB,AAACA,WAAqEC,OAAO;QAAE1D;IAAI,KACnFyD;AACN;AAEA,6EAA6E;AAC7E,6EAA6E;AAC7E,mEAAmE;AACnE,SAASE,YAAYC,KAAmB,EAAEF,KAAY;IACpD,IAAIE,MAAMC,MAAM,EAAE;YACT;QAAP,QAAO,mBAAA,AAACH,KAA2C,CAACE,MAAME,GAAG,CAAC,cAAvD,8BAAA,mBAA2DF,MAAMC,MAAM;IAChF;IAEA,OAAOL,kBAAkBI,MAAMH,UAAU,EAAGC;AAC9C;AAEA,SAASK,cAAcC,SAAyB;IAC9C,OAAOA,cAAc,QAAQ,SAAS;AACxC;AAEA,SAASC,SAASC,OAAuB,EAAEL,MAAc;IACvD,OAAOK,QAAQC,IAAI,CAAC,CAACP;YAAUA;eAAAA,EAAAA,gBAAAA,MAAMC,MAAM,cAAZD,oCAAAA,cAAcd,IAAI,MAAKe,OAAOf,IAAI;;AACnE;AAEA,+EAA+E;AAC/E,2EAA2E;AAC3E,8EAA8E;AAC9E,mBAAmB;AACnB,SAASsB,cACPF,OAAuB,EACvBrD,MAAiC,EACjC6C,KAA4B;IAE5B,OAAO7C,OACJwD,oBAAoB,CAACX,MAAMZ,IAAI,EAC/BqB,IAAI,CAAC,CAACG,UAAYA,QAAQC,KAAK,CAAC,CAACV,SAAWA,OAAOW,OAAO,IAAIP,SAASC,SAASL;AACrF;AAEA,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,+EAA+E;AAC/E,gFAAgF;AAChF,gCAAgC;AAChC,SAASY,iBACPP,OAAuB,EACvBrD,MAAiC,EACjC6C,KAA4B;;QAYVQ;IAVlB,IAAIE,cAAcF,SAASrD,QAAQ6C,QAAQ;QACzC;IACF;IAEA,MAAMgB,aAAa7D,OAAO8D,cAAc,CAACjB,MAAMZ,IAAI;IAEnD,IAAI,CAAC4B,YAAY;QACf;IACF;IAEA,MAAMV,qBAAYE,YAAAA,OAAO,CAACA,QAAQjD,MAAM,GAAG,EAAE,cAA3BiD,gCAAAA,UAA6BF,SAAS,uCAAI;IAE5D,KAAK,MAAMH,UAAUa,WAAY;QAC/B,IAAI,CAACT,SAASC,SAASL,SAAS;YAC9BK,QAAQU,IAAI,CAAC;gBAAEZ;gBAAWF,KAAKjD,OAAOW,cAAc,CAACqC;gBAASA;YAAO;QACvE;IACF;AACF;AAEA,SAASgB,aACPhE,MAAiC,EACjC6C,KAA4B,EAC5BoB,OAAiD,EACjDC,MAAe,EACfC,MAAsD;IAEtD,MAAMC,aAA6B,EAAE;IAErC,MAAMC,cAAc,CAACrB,QAAgBG,YAA+B,CAAA;YAClEA;YACAF,KAAKjD,OAAOW,cAAc,CAACqC;YAC3BA;QACF,CAAA;IAEA,IAAI,WAAWiB,WAAWA,QAAQpB,KAAK,IAAI,OAAOoB,QAAQpB,KAAK,KAAK,UAAU;QAC5EuB,WAAWL,IAAI,CAACM,YAAYJ,SAA8B;IAC5D,OAAO,IAAI9B,MAAMC,OAAO,CAAC6B,UAAU;QACjC,KAAK,MAAM3D,SAAS2D,QAAS;YAC3BG,WAAWL,IAAI,CAACM,YAAY/D,OAAO;QACrC;IACF,OAAO;QACL,MAAMgE,eAAevF,WAAW8D,MAAMA,KAAK;QAC3C0B,OAAOlB,OAAO,CACZY,SAGA5B,OAAO,CAAC,CAAC,CAACJ,MAAMkB,UAAU;YAC1B,IAAI,CAACA,WAAW;gBACd;YACF;YAEA,MAAMH,SAASsB,YAAY,CAACrC,KAAK;YAEjC,IAAIe,QAAQ;gBACVoB,WAAWL,IAAI,CAACM,YAAYrB,QAAQG;gBACpC;YACF;YAEA,MAAMP,aAAauB,mBAAAA,6BAAAA,MAAQ,CAAClC,KAAK;YAEjC,IAAI,CAACW,YAAY;gBACf,MAAM,IAAIjE,sBACR,CAAC,gBAAgB,EAAEsD,KAAK,GAAG,EAAEY,MAAMZ,IAAI,CAAC,4FAA4F,CAAC;YAEzI;YAEAmC,WAAWL,IAAI,CAAC;gBAAEZ;gBAAWF,KAAKhB;gBAAMW;YAAW;QACrD;IACF;IAEAgB,iBAAiBQ,YAAYpE,QAAQ6C;IAErC,MAAM2B,eAAe,CAAC,EAAErB,SAAS,EAAgB,GAC/Ce,SAAShB,cAAcC,aAAaA;IAEtC,OAAO;QACLiB;QACA,8EAA8E;QAC9EX,SAASW,WAAWK,OAAO,CAAC,CAAC,EAAEzB,MAAM,EAAE,GAAMA,SAAS;gBAACA;aAAO,GAAG,EAAE;QACnE0B,cAAcN,WAAW/D,GAAG,CAAC,CAAC,EAAE2C,MAAM,EAAEC,GAAG,EAAE,GAAKD,mBAAAA,oBAAAA,SAAUC;QAC5D,qEAAqE;QACrE,uEAAuE;QACvEgB,SAASG,WAAWd,IAAI,CAAC,CAAC,EAAEV,UAAU,EAAE,GAAKA,cACzC,CAAC+B,IACCP,WAAW/D,GAAG,CAAC,CAAC0C,QACd,AAACyB,CAAAA,aAAazB,WAAW,QAAQnE,MAAMC,IAAG,EAAGiE,YAAYC,OAAO4B,OAEpEJ,OAAOK,WAAW,CAACR,WAAW/D,GAAG,CAAC,CAAC0C,QAAU;gBAACA,MAAME,GAAG;gBAAEuB,aAAazB;aAAO;IACnF;AACF;AAEA,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,qCAAqC;AACrC,SAAS8B,UAAU9B,KAAmB,EAAE+B,QAA4B,EAAErF,KAAc;IAClF,MAAMsF,YAAYtF,UAAU,QAAQA,UAAUuF;IAE9C,IAAIjC,MAAMC,MAAM,EAAE;QAChB,IAAI8B,aAAa,QAAQC,WAAW;YAClC,OAAO;gBAAE,CAAChC,MAAME,GAAG,CAAC,EAAE;oBAAEhE,QAAQ;gBAAK;YAAE;QACzC;QAEA,0EAA0E;QAC1E,qEAAqE;QACrE,0EAA0E;QAC1E,OAAO;YAAE,CAAC8D,MAAME,GAAG,CAAC,EAAE;gBAAE,CAAC6B,SAAS,EAAErF;YAAM;QAAE;IAC9C;IAEA,IAAIqF,aAAa,QAAQC,WAAW;QAClC,OAAO;YAAEE,KAAK,CAACpC,QAAiB5D,OAAO6D,YAAYC,OAAOF;QAAe;IAC3E;IAEA,MAAMqC,YAAY;QAAElG;QAAIE;QAAIJ;IAAG;IAE/B,6EAA6E;IAC7E,8BAA8B;IAC9B,OAAO;QACLmG,KAAK,CAACpC,QAAiBqC,SAAS,CAACJ,SAAS,CAAChC,YAAYC,OAAOF,QAAepD;IAC/E;AACF;AAEA,SAAS0F,aAAa9B,OAAuB,EAAErC,MAAc,EAAEoE,MAA0B;IACvF,MAAMC,eAAe7C,gBAAgBa,QAAQhD,GAAG,CAAC,CAAC,EAAE4C,GAAG,EAAE,GAAKA,MAAMjC;IACpE,MAAMsE,UAAUjC,QAAQkC,MAAM,CAAC,CAAC,EAAEtC,GAAG,EAAE,GAAKA,OAAOoC;IAEnD,MAAMG,QAAQF,QAAQjF,GAAG,CAAC,CAAC0C,OAAO0C;QAChC,MAAMC,YAAYN,WAAW,UAAUrC,MAAMI,SAAS,KAAK,QAAQJ,MAAMI,SAAS,KAAK;QACvF,MAAMwC,UAAUd,UAAU9B,OAAO2C,YAAY,OAAO,MAAML,YAAY,CAACtC,MAAME,GAAG,CAAC;QAEjF,IAAIwC,UAAU,GAAG;YACf,OAAOE;QACT;QAEA,OAAO;YACLC,KAAK;mBACAN,QACAlE,KAAK,CAAC,GAAGqE,OACTpF,GAAG,CAAC,CAACwF,WAAahB,UAAUgB,UAAU,MAAMR,YAAY,CAACQ,SAAS5C,GAAG,CAAC;gBACzE0C;aACD;QACH;IACF;IAEA,OAAOH,MAAMpF,MAAM,GAAG,IAAI;QAAE0F,IAAIN;IAAM,IAAIA,KAAK,CAAC,EAAE;AACpD;AAEA,OAAO,SAASO,6BAA6B,EAC3CC,IAAI,EACJC,GAAG,EACHC,UAAU5G,gBAAgB,EAC1B6G,cAAc5G,YAAY,EAC1B0E,OAAO,EACPE,MAAM,EACNiC,KAAK,EACLpG,MAAM,EACN6C,KAAK,EAC+B;QAoBbwD;IAnBvB,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEF,KAAK,EAAEG,IAAI,EAAE,GAAGR;IACvC,IAAIK,SAAS,QAAQA,QAAQ,GAAG;QAC9B,MAAM,IAAI1H,sBAAsB;IAClC;IAEA,IAAI6H,QAAQ,QAAQA,OAAO,GAAG;QAC5B,MAAM,IAAI7H,sBAAsB;IAClC;IAEA,IAAI0H,SAAS,QAAQG,QAAQ,MAAM;QACjC,MAAM,IAAI7H,sBACR;IAEJ;IAEA,MAAM8H,uBAAuB,OAAOP,YAAY,aAAaA,QAAQF,MAAMC,OAAOC;IAClF,MAAMQ,2BACJ,OAAOP,gBAAgB,aAAaA,YAAYH,MAAMC,OAAOE;IAE/D,MAAMQ,QAAQC,KAAKC,GAAG,EAACR,OAAAA,kBAAAA,mBAAAA,QAASG,kBAATH,kBAAAA,OAAiBK,0BAA0BD,wBAAwB;IAC1F,MAAMK,WAAW,CAACT,SAAS,CAAC,CAACG;IAE7B,MAAMO,gBAAgB/C,aAAahE,QAAQ6C,OAAOoB,SAAS6C,UAAU3C;IAErE,MAAMV,UAAmC,CAAC;IAE1C,KAAK,MAAMT,UAAU+D,cAActD,OAAO,CAAE;QAC1CA,OAAO,CAACzD,OAAOW,cAAc,CAACqC,QAAQ,GAAG;IAC3C;IAEA,MAAMgE,eAAqB,EAAE;IAE7B,IAAIZ,OAAO;QACTY,aAAajD,IAAI,CAACqC;IACpB;IAEA,IAAIG,OAAO;QACTS,aAAajD,IAAI,CAACoB,aAAa4B,cAAc3C,UAAU,EAAEmC,OAAO;IAClE;IAEA,IAAID,QAAQ;QACVU,aAAajD,IAAI,CAACoB,aAAa4B,cAAc3C,UAAU,EAAEkC,QAAQ;IACnE;IAEA,OAAOjH,kBAAkB;QACvBqF,cAAcqC,cAAcrC,YAAY;QACxCjB;QACAQ,SAAS8C,cAAc9C,OAAO;QAC9B0C;QACAP,OAAOY,aAAa5G,MAAM,GAAG,IAAI;YAAEwF,KAAKoB;QAAa,IAAIA,YAAY,CAAC,EAAE;IAC1E;AACF;AAEA,OAAO,SAASC,qBACdC,OAAqB,EACrBlB,IAAkD,EAClDW,KAAa,EACb3F,MAA2B,EAC3BmG,WAAwD,EACxDC,MAAgB,EAChBC,UAAyD;;QA0CvBC,SACFA;IAzChC,MAAMC,iBAAiBL,QAAQ9G,MAAM,KAAKwG,KAAKY,GAAG,CAACb;IACnD,MAAMc,cAAczB,KAAKM,MAAM,GAAG,OAAON,KAAKQ,IAAI,GAAG,QAAQe;IAC7D,MAAMG,kBAAkB1B,KAAKO,KAAK,GAAG,OAAO,CAACP,KAAKK,KAAK,IAAI,CAAC,CAACL,KAAKQ,IAAI,GAAGe,iBAAiB;IAC1F,MAAMI,QAAQJ,iBAAiBL,QAAQ9F,KAAK,CAAC,GAAG,CAAC,KAAK8F;IAEtD,MAAMU,aAAa;QACjBR;QACApB;QACAqB;QACAC,OAAO,EAAE;QACTO,UAAU;YACRC,aAAa;YACbC,WAAW;YACXL;YACAD;QACF;IACF;IAEA,MAAMH,QAAQK,MAAMtH,GAAG,CAAC,CAACZ,QACvBA,SAAS,OACL,OACA0H,cACE;YACES;YACA,GAAGnI,KAAK;YACRuB,QAAQA,OAAOvB;YACfuI,MAAMb,YAAY1H;QACpB,IACA;YACEmI;YACA5G,QAAQA,OAAOvB;YACfuI,MAAMvI;QACR;IAGR,IAAIuG,KAAKQ,IAAI,IAAI,CAACR,KAAKK,KAAK,EAAE;QAC5BiB,MAAMW,OAAO;IACf;IAEAL,WAAWN,KAAK,GAAGA;IACnBM,WAAWC,QAAQ,CAACC,WAAW,YAAGR,UAAAA,KAAK,CAAC,EAAE,cAARA,8BAAAA,QAAUtG,MAAM,uCAAI;IACtD4G,WAAWC,QAAQ,CAACE,SAAS,aAAGT,WAAAA,KAAK,CAACA,MAAMlH,MAAM,GAAG,EAAE,cAAvBkH,+BAAAA,SAAyBtG,MAAM,yCAAI;IAEnE,OAAO4G;AACT;AAEA,OAAO,eAAeM,+BACpBC,SAAiB,EACjBC,IAAwB,EACxBC,QAAgB,EAChBrI,MAAiC,EACjCsI,OAEC,EACDC,OAE+B,EAC/BnB,MAAe;IAEf,MAAMvE,QAAQ7C,OAAOwI,SAAS,CAACL,UAAU;IACzC,IAAIM;IACJ,IAAIC;IACJ,MAAMxB,UAAU,MAAMqB,QAAQ,CAACI,IAAI,CAAC,CAAC;YAK9B;QAJL,MAAM,EAAEjE,YAAY,EAAE,GAAGkE,iBAAiB,GAAG7C,6BAA6B;YACxE,GAAGuC,OAAO;YACVtI;YACAiE,OAAO,GACJ,OAAA,OAAO0E,EAAE1E,OAAO,KAAK,aAAa0E,EAAE1E,OAAO,CAACpB,MAAMA,KAAK,IAAa8F,EAAE1E,OAAO,cAA7E,kBAAA,OACDjE,OAAO6I,aAAa,CAAChG,MAAMZ,IAAI;YACjCkC,QAAQwE,EAAExE,MAAM;YAChBtB;QACF;QACA6F,YAAYzI,mBAAmByE,cAAc1E;QAE7CyI,QAAQrJ,cAAc;YACpB0J,SAASR,QAAQrC,GAAG;YACpBmC;YACAW,QAAQ1J,kBAAkB;gBACxB,GAAGuJ,eAAe;gBAClBzE,QAAQwE,EAAExE,MAAM;gBAChBV,SAAS;oBACP,GAAGkF,EAAElF,OAAO;oBACZ,GAAGmF,gBAAgBnF,OAAO;gBAC5B;gBACA2C,OACEwC,gBAAgBxC,KAAK,IAAIuC,EAAEvC,KAAK,GAC5B;oBACER,KAAK;wBAAC+C,EAAEvC,KAAK;wBAAEwC,gBAAgBxC,KAAK;qBAAC;gBACvC,IACAuC,EAAEvC,KAAK,IAAIwC,gBAAgBxC,KAAK;YACxC;YACA4C,OAAO;gBAAC;oBAAC;iBAAQ;gBAAE;oBAAC;oBAAS;iBAAO;aAAC;YACrCX;YACArI;QAEF;QAEA,OAAOyI;IACT;IAEA,IAAI,CAACvB,SAAS;QACZ,OAAOA;IACT;IAEA,qFAAqF;IACrF,IAAI,CAACuB,OAAO;QACV,OAAO;YACLrB;YACApB,MAAMsC,QAAQtC,IAAI;YAClBqB,YAAYiB,QAAQjB,UAAU;YAC9BC,OAAO,EAAE;YACTO,UAAU;gBACRC,aAAa;gBACbC,WAAW;gBACXL,iBAAiB;gBACjBD,aAAa;YACf;QACF;IACF;IAEA,OAAOR,qBACLC,SACAoB,QAAQtC,IAAI,EACZyC,MAAM9B,KAAK,EACX+B,WACA1D,WACAoC,QACAkB,QAAQjB,UAAU;AAEtB"}
@@ -14,6 +14,7 @@ export interface SelectionState {
14
14
  skipDeferredFragments: boolean;
15
15
  }
16
16
  export type SelectionMap = DBQueryConfig<'one'>;
17
+ export declare function omitUndefinedKeys<T extends object>(query: T): T;
17
18
  export declare function selectionCompatible(state: SelectionState, selectionMap: SelectionMap | boolean, ignoreQuery?: boolean): boolean;
18
19
  export declare function stateCompatible(state: SelectionState, newState: SelectionState, ignoreQuery?: boolean): boolean;
19
20
  export declare function mergeState(state: SelectionState, newState: SelectionState): void;
@@ -1 +1 @@
1
- {"version":3,"file":"selections.d.ts","sourceRoot":"","sources":["../../src/utils/selections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAEhD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,GAAG,OAAO,EACpC,WAAW,UAAQ,GAClB,OAAO,CA+BT;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,WAAW,UAAQ,GAClB,OAAO,CAQT;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,QAoBzE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,qBAAqB,EAC5B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,CAahB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,yBAAyB,EACjC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,YAAY,GAAG,OAAO,QAyDlC;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,yBAAyB,EACjC,KAAK,EAAE,cAAc,GACpB,YAAY,CA6Bd"}
1
+ {"version":3,"file":"selections.d.ts","sourceRoot":"","sources":["../../src/utils/selections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAK/D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,GAAG,OAAO,EACpC,WAAW,UAAQ,GAClB,OAAO,CA+BT;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,WAAW,UAAQ,GAClB,OAAO,CAQT;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,QAoBzE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,qBAAqB,EAC5B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,CAahB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,yBAAyB,EACjC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,YAAY,GAAG,OAAO,QA0DlC;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,yBAAyB,EACjC,KAAK,EAAE,cAAc,GACpB,YAAY,CA6Bd"}
@@ -1,5 +1,10 @@
1
1
  import { PothosValidationError } from '@pothos/core';
2
2
  import { deepEqual } from './deep-equal.js';
3
+ export function omitUndefinedKeys(query) {
4
+ const entries = Object.entries(query);
5
+ const defined = entries.filter(([, value])=>value !== undefined);
6
+ return defined.length === entries.length ? query : Object.fromEntries(defined);
7
+ }
3
8
  export function selectionCompatible(state, selectionMap, ignoreQuery = false) {
4
9
  if (typeof selectionMap === 'boolean') {
5
10
  return ignoreQuery || !selectionMap || Object.keys(state.query).length === 0;
@@ -15,7 +20,7 @@ export function selectionCompatible(state, selectionMap, ignoreQuery = false) {
15
20
  })) {
16
21
  return false;
17
22
  }
18
- return ignoreQuery || deepEqual(state.query, query);
23
+ return ignoreQuery || deepEqual(state.query, omitUndefinedKeys(query));
19
24
  }
20
25
  export function stateCompatible(state, newState, ignoreQuery = false) {
21
26
  for (const [name, relationState] of newState.with){
@@ -71,8 +76,9 @@ export function mergeSelection(config, state, selection) {
71
76
  merge(config.relations[relation.targetTableName], key, value);
72
77
  }
73
78
  }
74
- if (Object.keys(query).length > 0) {
75
- state.query = query;
79
+ const normalizedQuery = omitUndefinedKeys(query);
80
+ if (Object.keys(normalizedQuery).length > 0) {
81
+ state.query = normalizedQuery;
76
82
  }
77
83
  if (extras) {
78
84
  for (const [key, value] of Object.entries(extras)){
@@ -106,7 +112,7 @@ export function mergeSelection(config, state, selection) {
106
112
  }
107
113
  export function selectionToQuery(config, state) {
108
114
  const query = {
109
- ...state.query,
115
+ ...omitUndefinedKeys(state.query),
110
116
  columns: undefined,
111
117
  with: {},
112
118
  extras: {}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/selections.ts"],"names":["PothosValidationError","deepEqual","selectionCompatible","state","selectionMap","ignoreQuery","Object","keys","query","length","with","withSelection","extras","columns","_","entries","some","key","value","has","get","existing","stateCompatible","newState","name","relationState","mergeState","allColumns","add","set","createState","table","skipDeferredFragments","parent","Set","Map","mappings","depth","mergeSelection","config","selection","relation","relations","merge","targetTableName","relatedState","selectionToQuery","undefined","column","getPrimaryKey","tsName","columnToTsName","forEach","sel"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/selections.ts"],"names":["PothosValidationError","deepEqual","omitUndefinedKeys","query","entries","Object","defined","filter","value","undefined","length","fromEntries","selectionCompatible","state","selectionMap","ignoreQuery","keys","with","withSelection","extras","columns","_","some","key","has","get","existing","stateCompatible","newState","name","relationState","mergeState","allColumns","add","set","createState","table","skipDeferredFragments","parent","Set","Map","mappings","depth","mergeSelection","config","selection","relation","relations","merge","targetTableName","normalizedQuery","relatedState","selectionToQuery","column","getPrimaryKey","tsName","columnToTsName","forEach","sel"],"mappings":"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"}
@@ -18,20 +18,21 @@ function drizzleConnectionHelpers(builder, refOrType, { select, resolveNode, que
18
18
  const config = (0, _config.getSchemaConfig)(builder);
19
19
  const tableName = typeof refOrType === 'string' ? refOrType : refOrType.tableName;
20
20
  function resolve(list, args, ctx, parent) {
21
- const { select, cursorColumns } = getQueryArgs(args, ctx);
22
- const formatCursor = (0, _cursors.getCursorFormatter)(cursorColumns, config);
21
+ const { select, cursorFields } = getQueryArgs(args, ctx);
22
+ const formatCursor = (0, _cursors.getCursorFormatter)(cursorFields, config);
23
23
  return (0, _cursors.wrapConnectionResult)(list, args, select.limit, formatCursor, resolveNode !== null && resolveNode !== void 0 ? resolveNode : (edge)=>edge, parent);
24
24
  }
25
25
  const getQueryArgs = (args, ctx)=>{
26
26
  var _ref, _ref1;
27
27
  const { limit, orderBy, where, ...fieldQuery } = (_ref = typeof query === 'function' ? query(args, ctx) : query) !== null && _ref !== void 0 ? _ref : {};
28
28
  const table = config.relations[tableName];
29
- const { cursorColumns, columns, ...connectionQuery } = (0, _cursors.drizzleCursorConnectionQuery)({
29
+ const { cursorFields, columns, ...connectionQuery } = (0, _cursors.drizzleCursorConnectionQuery)({
30
30
  ctx,
31
31
  maxSize,
32
32
  defaultSize: typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize,
33
33
  args,
34
34
  orderBy: (_ref1 = typeof orderBy === 'function' ? orderBy(table) : orderBy) !== null && _ref1 !== void 0 ? _ref1 : (0, _config.getSchemaConfig)(builder).getPrimaryKey(tableName),
35
+ extras: fieldQuery.extras,
35
36
  where,
36
37
  config,
37
38
  table
@@ -46,7 +47,7 @@ function drizzleConnectionHelpers(builder, refOrType, { select, resolveNode, que
46
47
  },
47
48
  limit: Math.abs(limit !== null && limit !== void 0 ? limit : connectionQuery.limit)
48
49
  },
49
- cursorColumns
50
+ cursorFields
50
51
  };
51
52
  };
52
53
  function getQuery(args, ctx, nestedSelectionOrInfo) {
@@ -74,10 +75,10 @@ function drizzleConnectionHelpers(builder, refOrType, { select, resolveNode, que
74
75
  }
75
76
  const baseQuery = typeof query === 'function' ? query(args, ctx) : query !== null && query !== void 0 ? query : {};
76
77
  const queryResult = (0, _selections.selectionToQuery)(config, selectState);
77
- return {
78
+ return (0, _selections.omitUndefinedKeys)({
78
79
  ...baseQuery,
79
80
  ...queryResult
80
- };
81
+ });
81
82
  }
82
83
  const getArgs = ()=>createArgs ? builder.args(createArgs) : {};
83
84
  return {