@pothos/plugin-drizzle 0.18.0 → 0.19.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 (167) hide show
  1. package/CHANGELOG.md +351 -0
  2. package/README.md +784 -221
  3. package/dts/connection-helpers.d.ts +18 -8
  4. package/dts/connection-helpers.d.ts.map +1 -1
  5. package/dts/drizzle-field-builder.d.ts +4 -11
  6. package/dts/drizzle-field-builder.d.ts.map +1 -1
  7. package/dts/global-types.d.ts.map +1 -1
  8. package/dts/index.d.ts.map +1 -1
  9. package/dts/model-loader.d.ts +18 -17
  10. package/dts/model-loader.d.ts.map +1 -1
  11. package/dts/types.d.ts +81 -20
  12. package/dts/types.d.ts.map +1 -1
  13. package/dts/utils/adapter.d.ts +39 -0
  14. package/dts/utils/adapter.d.ts.map +1 -0
  15. package/dts/utils/await-selections.d.ts +12 -0
  16. package/dts/utils/await-selections.d.ts.map +1 -0
  17. package/dts/utils/config.d.ts +23 -3
  18. package/dts/utils/config.d.ts.map +1 -1
  19. package/dts/utils/cursors.d.ts +6 -6
  20. package/dts/utils/cursors.d.ts.map +1 -1
  21. package/dts/utils/map-query.d.ts +22 -21
  22. package/dts/utils/map-query.d.ts.map +1 -1
  23. package/dts/utils/path-info.d.ts +13 -0
  24. package/dts/utils/path-info.d.ts.map +1 -0
  25. package/dts/utils/relation-filter.d.ts +48 -0
  26. package/dts/utils/relation-filter.d.ts.map +1 -0
  27. package/dts/utils/selections.d.ts +2 -21
  28. package/dts/utils/selections.d.ts.map +1 -1
  29. package/esm/connection-helpers.d.ts +18 -8
  30. package/esm/connection-helpers.d.ts.map +1 -1
  31. package/esm/connection-helpers.js +52 -19
  32. package/esm/connection-helpers.js.map +1 -1
  33. package/esm/drizzle-field-builder.d.ts +4 -11
  34. package/esm/drizzle-field-builder.d.ts.map +1 -1
  35. package/esm/drizzle-field-builder.js +138 -96
  36. package/esm/drizzle-field-builder.js.map +1 -1
  37. package/esm/field-builder.js +61 -47
  38. package/esm/field-builder.js.map +1 -1
  39. package/esm/global-types.d.ts.map +1 -1
  40. package/esm/index.d.ts.map +1 -1
  41. package/esm/index.js +37 -61
  42. package/esm/index.js.map +1 -1
  43. package/esm/model-loader.d.ts +18 -17
  44. package/esm/model-loader.d.ts.map +1 -1
  45. package/esm/model-loader.js +76 -45
  46. package/esm/model-loader.js.map +1 -1
  47. package/esm/schema-builder.js +40 -149
  48. package/esm/schema-builder.js.map +1 -1
  49. package/esm/types.d.ts +81 -20
  50. package/esm/types.d.ts.map +1 -1
  51. package/esm/types.js +1 -0
  52. package/esm/types.js.map +1 -1
  53. package/esm/utils/adapter.d.ts +39 -0
  54. package/esm/utils/adapter.d.ts.map +1 -0
  55. package/esm/utils/adapter.js +137 -0
  56. package/esm/utils/adapter.js.map +1 -0
  57. package/esm/utils/await-selections.d.ts +12 -0
  58. package/esm/utils/await-selections.d.ts.map +1 -0
  59. package/esm/utils/await-selections.js +19 -0
  60. package/esm/utils/await-selections.js.map +1 -0
  61. package/esm/utils/config.d.ts +23 -3
  62. package/esm/utils/config.d.ts.map +1 -1
  63. package/esm/utils/config.js +1 -4
  64. package/esm/utils/config.js.map +1 -1
  65. package/esm/utils/cursors.d.ts +6 -6
  66. package/esm/utils/cursors.d.ts.map +1 -1
  67. package/esm/utils/cursors.js +55 -90
  68. package/esm/utils/cursors.js.map +1 -1
  69. package/esm/utils/map-query.d.ts +22 -21
  70. package/esm/utils/map-query.d.ts.map +1 -1
  71. package/esm/utils/map-query.js +40 -336
  72. package/esm/utils/map-query.js.map +1 -1
  73. package/esm/utils/path-info.d.ts +13 -0
  74. package/esm/utils/path-info.d.ts.map +1 -0
  75. package/esm/utils/path-info.js +37 -0
  76. package/esm/utils/path-info.js.map +1 -0
  77. package/esm/utils/relation-filter.d.ts +48 -0
  78. package/esm/utils/relation-filter.d.ts.map +1 -0
  79. package/esm/utils/relation-filter.js +92 -0
  80. package/esm/utils/relation-filter.js.map +1 -0
  81. package/esm/utils/selections.d.ts +2 -21
  82. package/esm/utils/selections.d.ts.map +1 -1
  83. package/esm/utils/selections.js +1 -133
  84. package/esm/utils/selections.js.map +1 -1
  85. package/lib/connection-helpers.js +51 -18
  86. package/lib/connection-helpers.js.map +1 -1
  87. package/lib/drizzle-field-builder.js +136 -94
  88. package/lib/drizzle-field-builder.js.map +1 -1
  89. package/lib/field-builder.js +58 -44
  90. package/lib/field-builder.js.map +1 -1
  91. package/lib/index.js +36 -60
  92. package/lib/index.js.map +1 -1
  93. package/lib/model-loader.js +76 -45
  94. package/lib/model-loader.js.map +1 -1
  95. package/lib/schema-builder.js +40 -149
  96. package/lib/schema-builder.js.map +1 -1
  97. package/lib/types.js +4 -0
  98. package/lib/types.js.map +1 -1
  99. package/lib/utils/adapter.js +147 -0
  100. package/lib/utils/adapter.js.map +1 -0
  101. package/lib/utils/await-selections.js +20 -0
  102. package/lib/utils/await-selections.js.map +1 -0
  103. package/lib/utils/config.js +1 -4
  104. package/lib/utils/config.js.map +1 -1
  105. package/lib/utils/cursors.js +47 -88
  106. package/lib/utils/cursors.js.map +1 -1
  107. package/lib/utils/map-query.js +28 -341
  108. package/lib/utils/map-query.js.map +1 -1
  109. package/lib/utils/path-info.js +39 -0
  110. package/lib/utils/path-info.js.map +1 -0
  111. package/lib/utils/relation-filter.js +91 -0
  112. package/lib/utils/relation-filter.js.map +1 -0
  113. package/lib/utils/selections.js +3 -158
  114. package/lib/utils/selections.js.map +1 -1
  115. package/package.json +8 -6
  116. package/src/connection-helpers.ts +167 -53
  117. package/src/drizzle-field-builder.ts +296 -176
  118. package/src/field-builder.ts +110 -77
  119. package/src/global-types.ts +0 -32
  120. package/src/index.ts +42 -68
  121. package/src/model-loader.ts +110 -71
  122. package/src/schema-builder.ts +76 -169
  123. package/src/types.ts +176 -44
  124. package/src/utils/adapter.ts +197 -0
  125. package/src/utils/await-selections.ts +31 -0
  126. package/src/utils/config.ts +1 -5
  127. package/src/utils/cursors.ts +53 -81
  128. package/src/utils/map-query.ts +51 -708
  129. package/src/utils/path-info.ts +40 -0
  130. package/src/utils/relation-filter.ts +185 -0
  131. package/src/utils/selections.ts +2 -207
  132. package/dts/utils/deep-equal.d.ts +0 -2
  133. package/dts/utils/deep-equal.d.ts.map +0 -1
  134. package/dts/utils/drizzle-graphql.d.ts +0 -2
  135. package/dts/utils/drizzle-graphql.d.ts.map +0 -1
  136. package/dts/utils/loader-map.d.ts +0 -11
  137. package/dts/utils/loader-map.d.ts.map +0 -1
  138. package/dts/utils/usage.d.ts +0 -5
  139. package/dts/utils/usage.d.ts.map +0 -1
  140. package/esm/utils/deep-equal.d.ts +0 -2
  141. package/esm/utils/deep-equal.d.ts.map +0 -1
  142. package/esm/utils/deep-equal.js +0 -45
  143. package/esm/utils/deep-equal.js.map +0 -1
  144. package/esm/utils/drizzle-graphql.d.ts +0 -2
  145. package/esm/utils/drizzle-graphql.d.ts.map +0 -1
  146. package/esm/utils/drizzle-graphql.js +0 -232
  147. package/esm/utils/drizzle-graphql.js.map +0 -1
  148. package/esm/utils/loader-map.d.ts +0 -11
  149. package/esm/utils/loader-map.d.ts.map +0 -1
  150. package/esm/utils/loader-map.js +0 -35
  151. package/esm/utils/loader-map.js.map +0 -1
  152. package/esm/utils/usage.d.ts +0 -5
  153. package/esm/utils/usage.d.ts.map +0 -1
  154. package/esm/utils/usage.js +0 -59
  155. package/esm/utils/usage.js.map +0 -1
  156. package/lib/utils/deep-equal.js +0 -55
  157. package/lib/utils/deep-equal.js.map +0 -1
  158. package/lib/utils/drizzle-graphql.js +0 -236
  159. package/lib/utils/drizzle-graphql.js.map +0 -1
  160. package/lib/utils/loader-map.js +0 -56
  161. package/lib/utils/loader-map.js.map +0 -1
  162. package/lib/utils/usage.js +0 -83
  163. package/lib/utils/usage.js.map +0 -1
  164. package/src/utils/deep-equal.ts +0 -57
  165. package/src/utils/drizzle-graphql.ts +0 -274
  166. package/src/utils/loader-map.ts +0 -49
  167. package/src/utils/usage.ts +0 -62
@@ -62,26 +62,7 @@ const _core = require("@pothos/core");
62
62
  const _drizzleorm = require("drizzle-orm");
63
63
  const _mapquery = require("./map-query.js");
64
64
  const _selections = require("./selections.js");
65
- const DEFAULT_MAX_SIZE = 100;
66
- const DEFAULT_SIZE = 20;
67
- function formatCursorChunk(value) {
68
- if (value == null) {
69
- return null;
70
- }
71
- if (value instanceof Date) {
72
- return `D:${String(Number(value))}`;
73
- }
74
- switch(typeof value){
75
- case 'number':
76
- return `N:${value}`;
77
- case 'string':
78
- return `S:${value}`;
79
- case 'bigint':
80
- return `I:${value}`;
81
- default:
82
- throw new _core.PothosValidationError(`Unsupported cursor type ${typeof value}`);
83
- }
84
- }
65
+ const formatCursorChunk = _core.encodeCursorChunk;
85
66
  function formatDrizzleCursor(record, fields, config) {
86
67
  return getCursorFormatter(fields, config)(record);
87
68
  }
@@ -104,7 +85,6 @@ function getIDSerializer(fields, config) {
104
85
  }
105
86
  return (value)=>{
106
87
  if (fields.length > 1) {
107
- fields.map((field)=>field.keyAsName);
108
88
  return `${JSON.stringify(fields.map((col)=>value[config.columnToTsName(col)]))}`;
109
89
  }
110
90
  return `${formatIDChunk(value[config.columnToTsName(fields[0])])}`;
@@ -121,7 +101,7 @@ function getColumnSerializer(fields, config) {
121
101
  if (fields.length > 1) {
122
102
  // each value carries its own type tag, the same ones a single value gets.
123
103
  // Plain JSON would turn a Date into a string and refuse a bigint outright.
124
- return `T:${JSON.stringify(fields.map((field)=>formatCursorChunk(value[cursorFieldKey(field, config)])))}`;
104
+ return (0, _core.encodeCursorTuple)(fields.map((field)=>value[cursorFieldKey(field, config)]));
125
105
  }
126
106
  return formatCursorChunk(value[cursorFieldKey(fields[0], config)]);
127
107
  };
@@ -154,25 +134,9 @@ function parseSerializedDrizzleColumn(value) {
154
134
  throw new _core.PothosValidationError('value must be a string');
155
135
  }
156
136
  try {
157
- const [, type, rawValue] = value.match(/^(S|N|D|J|I|T):(.*)/);
158
- switch(type){
159
- case 'S':
160
- return rawValue;
161
- case 'N':
162
- return Number.parseInt(rawValue, 10);
163
- case 'D':
164
- return new Date(Number.parseInt(rawValue, 10));
165
- case 'J':
166
- // compound values from before each one carried a tag: whatever JSON
167
- // preserved is the best that can be recovered
168
- return JSON.parse(rawValue);
169
- case 'T':
170
- return JSON.parse(rawValue).map((chunk)=>chunk === null ? null : parseSerializedDrizzleColumn(chunk));
171
- case 'I':
172
- return BigInt(rawValue);
173
- default:
174
- throw new _core.PothosValidationError(`Invalid cursor type ${type}`);
175
- }
137
+ // `@pothos/core`'s `decodeCursorChunk` reads every tag, including the `J:` a compound cursor
138
+ // used before each part carried one -- see `getCursorParser` for what happens to that array.
139
+ return (0, _core.decodeCursorChunk)(value);
176
140
  } catch {
177
141
  throw new _core.PothosValidationError(`Invalid serialized data: ${value}`);
178
142
  }
@@ -192,7 +156,9 @@ function parseSerializedIDColumn(id, field) {
192
156
  return id;
193
157
  }
194
158
  if (field.dataType === 'object date') {
195
- return new Date(id);
159
+ // `formatIDChunk` writes the epoch milliseconds; `new Date` of that string is an Invalid
160
+ // Date, since it is not a date format `Date` parses.
161
+ return new Date(Number(id));
196
162
  }
197
163
  throw new _core.PothosValidationError(`Unsupported ID type ${field.dataType}`);
198
164
  } catch (error) {
@@ -202,14 +168,14 @@ function parseSerializedIDColumn(id, field) {
202
168
  throw new _core.PothosValidationError(`Invalid serialized ID: ${id}`);
203
169
  }
204
170
  }
205
- function getIDParser(fields) {
171
+ function getIDParser(fields, config) {
206
172
  if (fields.length === 0) {
207
173
  throw new _core.PothosValidationError('Column parser must have at least one field');
208
174
  }
209
175
  return (value)=>{
210
176
  if (fields.length === 1) {
211
177
  return {
212
- [fields[0].name]: parseSerializedIDColumn(value, fields[0])
178
+ [config.columnToTsName(fields[0])]: parseSerializedIDColumn(value, fields[0])
213
179
  };
214
180
  }
215
181
  try {
@@ -222,7 +188,7 @@ function getIDParser(fields) {
222
188
  }
223
189
  const record = {};
224
190
  fields.forEach((field, i)=>{
225
- record[field.name] = parsed[i];
191
+ record[config.columnToTsName(field)] = parsed[i];
226
192
  });
227
193
  return record;
228
194
  } catch (error) {
@@ -272,6 +238,10 @@ function getCursorParser(keys) {
272
238
  // the columns that came before it. Those still describe a position, just a
273
239
  // less precise one, so the page is keyed off the prefix the cursor covers
274
240
  // rather than rejected. Cursors returned by that page carry every column.
241
+ //
242
+ // The array is a `T:` chunk's values, each still its own type. A cursor issued before this
243
+ // release decodes from a `J:` chunk instead, whose parts arrive as whatever plain JSON
244
+ // preserved -- see the deprecated `J:` case in `@pothos/core`'s `decodeCursorChunk`.
275
245
  const values = Array.isArray(parsed) ? parsed : [
276
246
  parsed
277
247
  ];
@@ -457,22 +427,21 @@ function keysetFilter(entries, cursor, paging) {
457
427
  OR: parts
458
428
  } : parts[0];
459
429
  }
460
- function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, orderBy, extras, where, config, table }) {
461
- var _ref;
430
+ function drizzleCursorConnectionQuery({ args, ctx, maxSize, defaultSize, orderBy, extras, where, config, table }) {
462
431
  const { before, after, first, last } = args;
463
- if (first != null && first < 0) {
464
- throw new _core.PothosValidationError('Argument "first" must be a non-negative integer');
465
- }
466
- if (last != null && last < 0) {
467
- throw new _core.PothosValidationError('Argument "last" must be a non-negative integer');
468
- }
432
+ (0, _core.validateConnectionArguments)(args);
469
433
  if (first != null && last != null) {
470
434
  throw new _core.PothosValidationError('Arguments "first" and "last" are not supported at the same time');
471
435
  }
472
436
  const maxSizeForConnection = typeof maxSize === 'function' ? maxSize(args, ctx) : maxSize;
473
437
  const defaultSizeForConnection = typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize;
474
- const limit = Math.min((_ref = first !== null && first !== void 0 ? first : last) !== null && _ref !== void 0 ? _ref : defaultSizeForConnection, maxSizeForConnection) + 1;
475
- const inverted = !first && !!last;
438
+ const { limit } = (0, _core.getConnectionPageSize)({
439
+ args,
440
+ defaultSize: defaultSizeForConnection,
441
+ maxSize: maxSizeForConnection
442
+ });
443
+ // `last: 0` asks for the last zero rows, so it pages backwards like any other `last`.
444
+ const inverted = first == null && last != null;
476
445
  const parsedOrderBy = parseOrderBy(config, table, orderBy, inverted, extras);
477
446
  const columns = {};
478
447
  for (const column of parsedOrderBy.columns){
@@ -502,8 +471,11 @@ function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent,
502
471
  var _ref, _ref1;
503
472
  var _edges_, _edges_1;
504
473
  const gotFullResults = results.length === Math.abs(limit);
505
- const hasNextPage = args.before ? true : args.last ? false : gotFullResults;
506
- const hasPreviousPage = args.after ? true : !args.first && !!args.last ? gotFullResults : false;
474
+ // `first`/`last` are compared against null rather than by truthiness, so `last: 0` reports the
475
+ // `pageInfo` of a backward page of zero rows rather than of a forward one.
476
+ const backward = args.first == null && args.last != null;
477
+ const hasNextPage = args.before ? true : args.last != null ? false : gotFullResults;
478
+ const hasPreviousPage = args.after ? true : backward ? gotFullResults : false;
507
479
  const nodes = gotFullResults ? results.slice(0, -1) : results;
508
480
  const connection = {
509
481
  parent,
@@ -527,7 +499,7 @@ function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent,
527
499
  cursor: cursor(value),
528
500
  node: value
529
501
  });
530
- if (args.last && !args.first) {
502
+ if (backward) {
531
503
  edges.reverse();
532
504
  }
533
505
  connection.edges = edges;
@@ -535,7 +507,8 @@ function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent,
535
507
  connection.pageInfo.endCursor = (_ref1 = (_edges_1 = edges[edges.length - 1]) === null || _edges_1 === void 0 ? void 0 : _edges_1.cursor) !== null && _ref1 !== void 0 ? _ref1 : null;
536
508
  return connection;
537
509
  }
538
- async function resolveDrizzleCursorConnection(tableName, info, typeName, config, options, resolve, parent) {
510
+ async function resolveDrizzleCursorConnection(tableName, // The settled plan of the connection's rows; the builder handed to `resolve` merges into it.
511
+ plan, config, options, resolve, parent) {
539
512
  const table = config.relations[tableName];
540
513
  let query;
541
514
  let formatter;
@@ -549,35 +522,20 @@ async function resolveDrizzleCursorConnection(tableName, info, typeName, config,
549
522
  table
550
523
  });
551
524
  formatter = getCursorFormatter(cursorFields, config);
552
- query = (0, _mapquery.queryFromInfo)({
553
- context: options.ctx,
554
- info,
555
- select: (0, _selections.omitUndefinedKeys)({
556
- ...connectionQuery,
557
- extras: q.extras,
558
- columns: {
559
- ...q.columns,
560
- ...connectionQuery.columns
561
- },
562
- where: connectionQuery.where && q.where ? {
563
- AND: [
564
- q.where,
565
- connectionQuery.where
566
- ]
567
- } : q.where || connectionQuery.where
568
- }),
569
- paths: [
570
- [
571
- 'nodes'
572
- ],
573
- [
574
- 'edges',
575
- 'node'
525
+ query = (0, _mapquery.queryFromPlan)(plan, (0, _selections.omitUndefinedKeys)({
526
+ ...connectionQuery,
527
+ extras: q.extras,
528
+ columns: {
529
+ ...q.columns,
530
+ ...connectionQuery.columns
531
+ },
532
+ where: connectionQuery.where && q.where ? {
533
+ AND: [
534
+ q.where,
535
+ connectionQuery.where
576
536
  ]
577
- ],
578
- typeName,
579
- config
580
- });
537
+ } : q.where || connectionQuery.where
538
+ }));
581
539
  return query;
582
540
  });
583
541
  if (!results) {
@@ -598,7 +556,8 @@ async function resolveDrizzleCursorConnection(tableName, info, typeName, config,
598
556
  }
599
557
  };
600
558
  }
601
- return wrapConnectionResult(results, options.args, query.limit, formatter, undefined, parent, options.totalCount);
559
+ const { limit } = query;
560
+ return wrapConnectionResult(results, options.args, limit, formatter, undefined, parent, options.totalCount);
602
561
  }
603
562
 
604
563
  //# sourceMappingURL=cursors.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["cursorFieldKey","drizzleCursorConnectionQuery","formatCursorChunk","formatDrizzleCursor","formatIDChunk","getColumnParser","getColumnSerializer","getCursorFormatter","getCursorParser","getIDParser","getIDSerializer","parseDrizzleCursor","parseSerializedDrizzleColumn","parseSerializedIDColumn","resolveDrizzleCursorConnection","wrapConnectionResult","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","PothosValidationError","record","fields","config","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","type","rawValue","match","parseInt","parse","chunk","BigInt","id","dataType","error","name","parsed","Array","isArray","forEach","i","keys","values","resolveExpression","expression","table","sql","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","getColumns","Object","directionFor","flatMap","cursorFields","t","asc","desc","fromEntries","compareTo","operator","isNullish","undefined","isNull","RAW","operators","gt","lt","eq","keysetFilter","paging","parsedCursor","covered","filter","parts","index","ascending","compare","AND","previous","OR","args","ctx","maxSize","defaultSize","where","first","before","after","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","omitUndefinedKeys","results","resolveNode","parent","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","tableName","info","typeName","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","queryFromInfo","context","select","paths"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["cursorFieldKey","drizzleCursorConnectionQuery","formatCursorChunk","formatDrizzleCursor","formatIDChunk","getColumnParser","getColumnSerializer","getCursorFormatter","getCursorParser","getIDParser","getIDSerializer","parseDrizzleCursor","parseSerializedDrizzleColumn","parseSerializedIDColumn","resolveDrizzleCursorConnection","wrapConnectionResult","encodeCursorChunk","record","fields","config","value","Date","String","Number","PothosValidationError","length","JSON","stringify","map","col","columnToTsName","field","encodeCursorTuple","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","decodeCursorChunk","id","dataType","parseInt","BigInt","error","parsed","parse","Array","isArray","forEach","i","name","keys","values","resolveExpression","expression","table","sql","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","getColumns","Object","directionFor","flatMap","cursorFields","t","asc","desc","fromEntries","compareTo","operator","isNullish","undefined","isNull","RAW","operators","gt","lt","eq","keysetFilter","paging","parsedCursor","covered","filter","parts","index","ascending","compare","AND","previous","OR","args","ctx","maxSize","defaultSize","where","before","after","first","last","validateConnectionArguments","maxSizeForConnection","defaultSizeForConnection","limit","getConnectionPageSize","inverted","parsedOrderBy","whereClauses","omitUndefinedKeys","results","resolveNode","parent","totalCount","edges","gotFullResults","Math","abs","backward","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","tableName","plan","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","queryFromPlan"],"mappings":"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"}