@payloadcms/db-postgres 3.0.0-alpha.18 → 3.0.0-alpha.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. package/dist/connect.js +17 -32
  2. package/dist/create.js +6 -21
  3. package/dist/createGlobal.js +6 -21
  4. package/dist/createGlobalVersion.js +10 -25
  5. package/dist/createMigration.js +11 -26
  6. package/dist/createVersion.js +10 -25
  7. package/dist/deleteMany.js +8 -23
  8. package/dist/deleteOne.js +10 -25
  9. package/dist/deleteVersions.js +10 -25
  10. package/dist/destroy.js +2 -12
  11. package/dist/find/buildFindManyArgs.js +6 -14
  12. package/dist/find/chainMethods.js +2 -11
  13. package/dist/find/findMany.js +14 -29
  14. package/dist/find/traverseFields.js +8 -23
  15. package/dist/find.js +6 -21
  16. package/dist/findGlobal.js +6 -21
  17. package/dist/findGlobalVersions.js +8 -23
  18. package/dist/findOne.js +6 -21
  19. package/dist/findVersions.js +8 -23
  20. package/dist/index.js +72 -87
  21. package/dist/init.js +17 -32
  22. package/dist/migrate.js +15 -30
  23. package/dist/migrateDown.js +12 -22
  24. package/dist/migrateFresh.js +15 -28
  25. package/dist/migrateRefresh.js +18 -26
  26. package/dist/migrateReset.js +13 -21
  27. package/dist/migrateStatus.js +9 -19
  28. package/dist/queries/buildAndOrConditions.js +4 -14
  29. package/dist/queries/buildQuery.js +10 -20
  30. package/dist/queries/createJSONQuery/convertPathToJSONTraversal.js +4 -14
  31. package/dist/queries/createJSONQuery/formatJSONPathSegment.js +2 -12
  32. package/dist/queries/createJSONQuery/index.js +6 -16
  33. package/dist/queries/getTableColumnFromPath.js +38 -49
  34. package/dist/queries/operatorMap.js +17 -27
  35. package/dist/queries/parseParams.js +32 -42
  36. package/dist/queries/sanitizeQueryValue.js +8 -18
  37. package/dist/queryDrafts.js +10 -25
  38. package/dist/schema/build.js +49 -64
  39. package/dist/schema/createIndex.js +5 -15
  40. package/dist/schema/idToUUID.js +2 -12
  41. package/dist/schema/parentIDColumnMap.js +7 -17
  42. package/dist/schema/setColumnID.js +10 -20
  43. package/dist/schema/traverseFields.js +62 -77
  44. package/dist/schema/validateExistingBlockIsIdentical.js +9 -19
  45. package/dist/transactions/beginTransaction.js +4 -14
  46. package/dist/transactions/commitTransaction.js +2 -12
  47. package/dist/transactions/rollbackTransaction.js +2 -12
  48. package/dist/transform/read/hasManyNumber.js +2 -12
  49. package/dist/transform/read/hasManyText.js +2 -12
  50. package/dist/transform/read/index.js +12 -20
  51. package/dist/transform/read/relationship.js +2 -12
  52. package/dist/transform/read/traverseFields.js +15 -23
  53. package/dist/transform/write/array.js +6 -16
  54. package/dist/transform/write/blocks.js +6 -21
  55. package/dist/transform/write/index.js +4 -14
  56. package/dist/transform/write/numbers.js +2 -12
  57. package/dist/transform/write/relationships.js +4 -14
  58. package/dist/transform/write/selects.js +4 -14
  59. package/dist/transform/write/texts.js +2 -12
  60. package/dist/transform/write/traverseFields.js +30 -45
  61. package/dist/transform/write/types.js +2 -5
  62. package/dist/types.js +2 -5
  63. package/dist/update.js +11 -26
  64. package/dist/updateGlobal.js +6 -21
  65. package/dist/updateGlobalVersion.js +10 -25
  66. package/dist/updateVersion.js +10 -25
  67. package/dist/upsertRow/deleteExistingArrayRows.js +5 -15
  68. package/dist/upsertRow/deleteExistingRowsByPath.js +9 -19
  69. package/dist/upsertRow/index.js +24 -34
  70. package/dist/upsertRow/insertArrays.js +2 -12
  71. package/dist/upsertRow/types.js +2 -5
  72. package/dist/utilities/appendPrefixToKeys.js +2 -12
  73. package/dist/utilities/createBlocksMap.js +2 -12
  74. package/dist/utilities/createMigrationTable.js +4 -14
  75. package/dist/utilities/createRelationshipMap.js +2 -12
  76. package/dist/utilities/hasLocalesTable.js +5 -15
  77. package/dist/utilities/isArrayOfRows.js +2 -12
  78. package/dist/utilities/migrationTableExists.js +4 -14
  79. package/dist/utilities/parseError.js +6 -14
  80. package/package.json +5 -4
@@ -1,23 +1,13 @@
1
- /* eslint-disable no-await-in-loop */ "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "parseParams", {
6
- enumerable: true,
7
- get: function() {
8
- return parseParams;
9
- }
10
- });
11
- const _drizzleorm = require("drizzle-orm");
12
- const _errors = require("payload/errors");
13
- const _types = require("payload/types");
14
- const _buildAndOrConditions = require("./buildAndOrConditions");
15
- const _createJSONQuery = require("./createJSONQuery");
16
- const _convertPathToJSONTraversal = require("./createJSONQuery/convertPathToJSONTraversal");
17
- const _getTableColumnFromPath = require("./getTableColumnFromPath");
18
- const _operatorMap = require("./operatorMap");
19
- const _sanitizeQueryValue = require("./sanitizeQueryValue");
20
- async function parseParams({ adapter, fields, joinAliases, joins, locale, selectFields, tableName, where }) {
1
+ /* eslint-disable no-await-in-loop */ import { and, ilike, isNotNull, isNull, ne, notInArray, or, sql } from 'drizzle-orm';
2
+ import { QueryError } from 'payload/errors';
3
+ import { validOperators } from 'payload/types';
4
+ import { buildAndOrConditions } from './buildAndOrConditions';
5
+ import { createJSONQuery } from './createJSONQuery';
6
+ import { convertPathToJSONTraversal } from './createJSONQuery/convertPathToJSONTraversal';
7
+ import { getTableColumnFromPath } from './getTableColumnFromPath';
8
+ import { operatorMap } from './operatorMap';
9
+ import { sanitizeQueryValue } from './sanitizeQueryValue';
10
+ export async function parseParams({ adapter, fields, joinAliases, joins, locale, selectFields, tableName, where }) {
21
11
  let result;
22
12
  const constraints = [];
23
13
  if (typeof where === 'object' && Object.keys(where).length > 0) {
@@ -32,7 +22,7 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
32
22
  conditionOperator = 'or';
33
23
  }
34
24
  if (Array.isArray(condition)) {
35
- const builtConditions = await (0, _buildAndOrConditions.buildAndOrConditions)({
25
+ const builtConditions = await buildAndOrConditions({
36
26
  adapter,
37
27
  fields,
38
28
  joinAliases,
@@ -43,7 +33,7 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
43
33
  where: condition
44
34
  });
45
35
  if (builtConditions.length > 0) {
46
- result = _operatorMap.operatorMap[conditionOperator](...builtConditions);
36
+ result = operatorMap[conditionOperator](...builtConditions);
47
37
  }
48
38
  } else {
49
39
  // It's a path - and there can be multiple comparisons on a single path.
@@ -52,9 +42,9 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
52
42
  const pathOperators = where[relationOrPath];
53
43
  if (typeof pathOperators === 'object') {
54
44
  for (const operator of Object.keys(pathOperators)){
55
- if (_types.validOperators.includes(operator)) {
45
+ if (validOperators.includes(operator)) {
56
46
  const val = where[relationOrPath][operator];
57
- const { columnName, constraints: queryConstraints, field, getNotNullColumnByValue, pathSegments, rawColumn, table } = (0, _getTableColumnFromPath.getTableColumnFromPath)({
47
+ const { columnName, constraints: queryConstraints, field, getNotNullColumnByValue, pathSegments, rawColumn, table } = getTableColumnFromPath({
58
48
  adapter,
59
49
  collectionPath: relationOrPath,
60
50
  fields,
@@ -68,9 +58,9 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
68
58
  });
69
59
  queryConstraints.forEach(({ columnName: col, table: constraintTable, value })=>{
70
60
  if (typeof value === 'string' && value.indexOf('%') > -1) {
71
- constraints.push(_operatorMap.operatorMap.like(constraintTable[col], value));
61
+ constraints.push(operatorMap.like(constraintTable[col], value));
72
62
  } else {
73
- constraints.push(_operatorMap.operatorMap.equals(constraintTable[col], value));
63
+ constraints.push(operatorMap.equals(constraintTable[col], value));
74
64
  }
75
65
  });
76
66
  if ([
@@ -80,7 +70,7 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
80
70
  const segments = pathSegments.slice(1);
81
71
  segments.unshift(table[columnName].name);
82
72
  if (field.type === 'richText') {
83
- const jsonQuery = (0, _createJSONQuery.createJSONQuery)({
73
+ const jsonQuery = createJSONQuery({
84
74
  operator,
85
75
  pathSegments: segments,
86
76
  treatAsArray: [
@@ -89,10 +79,10 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
89
79
  treatRootAsArray: true,
90
80
  value: val
91
81
  });
92
- constraints.push(_drizzleorm.sql.raw(jsonQuery));
82
+ constraints.push(sql.raw(jsonQuery));
93
83
  break;
94
84
  }
95
- const jsonQuery = (0, _convertPathToJSONTraversal.convertPathToJSONTraversal)(pathSegments);
85
+ const jsonQuery = convertPathToJSONTraversal(pathSegments);
96
86
  const operatorKeys = {
97
87
  contains: {
98
88
  operator: 'ilike',
@@ -118,15 +108,15 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
118
108
  if (operator === 'exists') {
119
109
  formattedValue = '';
120
110
  }
121
- constraints.push(_drizzleorm.sql.raw(`${table[columnName].name}${jsonQuery} ${operatorKeys[operator].operator} ${formattedValue}`));
111
+ constraints.push(sql.raw(`${table[columnName].name}${jsonQuery} ${operatorKeys[operator].operator} ${formattedValue}`));
122
112
  break;
123
113
  }
124
114
  if (getNotNullColumnByValue) {
125
115
  const columnName = getNotNullColumnByValue(val);
126
116
  if (columnName) {
127
- constraints.push((0, _drizzleorm.isNotNull)(table[columnName]));
117
+ constraints.push(isNotNull(table[columnName]));
128
118
  } else {
129
- throw new _errors.QueryError([
119
+ throw new QueryError([
130
120
  {
131
121
  path: relationOrPath
132
122
  }
@@ -135,10 +125,10 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
135
125
  break;
136
126
  }
137
127
  if (operator === 'like') {
138
- constraints.push((0, _drizzleorm.and)(...val.split(' ').map((word)=>(0, _drizzleorm.ilike)(table[columnName], `%${word}%`))));
128
+ constraints.push(and(...val.split(' ').map((word)=>ilike(table[columnName], `%${word}%`))));
139
129
  break;
140
130
  }
141
- const sanitizedQueryValue = (0, _sanitizeQueryValue.sanitizeQueryValue)({
131
+ const sanitizedQueryValue = sanitizeQueryValue({
142
132
  adapter,
143
133
  field,
144
134
  operator,
@@ -150,25 +140,25 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
150
140
  }
151
141
  const { operator: queryOperator, value: queryValue } = sanitizedQueryValue;
152
142
  if (queryOperator === 'not_equals' && queryValue !== null) {
153
- constraints.push((0, _drizzleorm.or)((0, _drizzleorm.isNull)(rawColumn || table[columnName]), /* eslint-disable @typescript-eslint/no-explicit-any */ (0, _drizzleorm.ne)(rawColumn || table[columnName], queryValue)));
143
+ constraints.push(or(isNull(rawColumn || table[columnName]), /* eslint-disable @typescript-eslint/no-explicit-any */ ne(rawColumn || table[columnName], queryValue)));
154
144
  break;
155
145
  }
156
146
  if ((field.type === 'relationship' || field.type === 'upload') && Array.isArray(queryValue) && operator === 'not_in') {
157
- constraints.push((0, _drizzleorm.sql)`${(0, _drizzleorm.notInArray)(table[columnName], queryValue)} OR
147
+ constraints.push(sql`${notInArray(table[columnName], queryValue)} OR
158
148
  ${table[columnName]}
159
149
  IS
160
150
  NULL`);
161
151
  break;
162
152
  }
163
153
  if (operator === 'equals' && queryValue === null) {
164
- constraints.push((0, _drizzleorm.isNull)(rawColumn || table[columnName]));
154
+ constraints.push(isNull(rawColumn || table[columnName]));
165
155
  break;
166
156
  }
167
157
  if (operator === 'not_equals' && queryValue === null) {
168
- constraints.push((0, _drizzleorm.isNotNull)(rawColumn || table[columnName]));
158
+ constraints.push(isNotNull(rawColumn || table[columnName]));
169
159
  break;
170
160
  }
171
- constraints.push(_operatorMap.operatorMap[queryOperator](rawColumn || table[columnName], queryValue));
161
+ constraints.push(operatorMap[queryOperator](rawColumn || table[columnName], queryValue));
172
162
  }
173
163
  }
174
164
  }
@@ -178,9 +168,9 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
178
168
  }
179
169
  if (constraints.length > 0) {
180
170
  if (result) {
181
- result = (0, _drizzleorm.and)(result, ...constraints);
171
+ result = and(result, ...constraints);
182
172
  } else {
183
- result = (0, _drizzleorm.and)(...constraints);
173
+ result = and(...constraints);
184
174
  }
185
175
  }
186
176
  if (constraints.length === 1 && !result) {
@@ -189,4 +179,4 @@ async function parseParams({ adapter, fields, joinAliases, joins, locale, select
189
179
  return result;
190
180
  }
191
181
 
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3BhcnNlUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB0eXBlIHsgU1FMIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBPcGVyYXRvciwgV2hlcmUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBhbmQsIGlsaWtlLCBpc05vdE51bGwsIGlzTnVsbCwgbmUsIG5vdEluQXJyYXksIG9yLCBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7IFF1ZXJ5RXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcbmltcG9ydCB7IHZhbGlkT3BlcmF0b3JzIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1uLCBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQnVpbGRRdWVyeUpvaW5BbGlhc2VzLCBCdWlsZFF1ZXJ5Sm9pbnMgfSBmcm9tICcuL2J1aWxkUXVlcnknXG5cbmltcG9ydCB7IGJ1aWxkQW5kT3JDb25kaXRpb25zIH0gZnJvbSAnLi9idWlsZEFuZE9yQ29uZGl0aW9ucydcbmltcG9ydCB7IGNyZWF0ZUpTT05RdWVyeSB9IGZyb20gJy4vY3JlYXRlSlNPTlF1ZXJ5J1xuaW1wb3J0IHsgY29udmVydFBhdGhUb0pTT05UcmF2ZXJzYWwgfSBmcm9tICcuL2NyZWF0ZUpTT05RdWVyeS9jb252ZXJ0UGF0aFRvSlNPTlRyYXZlcnNhbCdcbmltcG9ydCB7IGdldFRhYmxlQ29sdW1uRnJvbVBhdGggfSBmcm9tICcuL2dldFRhYmxlQ29sdW1uRnJvbVBhdGgnXG5pbXBvcnQgeyBvcGVyYXRvck1hcCB9IGZyb20gJy4vb3BlcmF0b3JNYXAnXG5pbXBvcnQgeyBzYW5pdGl6ZVF1ZXJ5VmFsdWUgfSBmcm9tICcuL3Nhbml0aXplUXVlcnlWYWx1ZSdcblxudHlwZSBBcmdzID0ge1xuICBhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXJcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGpvaW5BbGlhc2VzOiBCdWlsZFF1ZXJ5Sm9pbkFsaWFzZXNcbiAgam9pbnM6IEJ1aWxkUXVlcnlKb2luc1xuICBsb2NhbGU6IHN0cmluZ1xuICBzZWxlY3RGaWVsZHM6IFJlY29yZDxzdHJpbmcsIEdlbmVyaWNDb2x1bW4+XG4gIHRhYmxlTmFtZTogc3RyaW5nXG4gIHdoZXJlOiBXaGVyZVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VQYXJhbXMoe1xuICBhZGFwdGVyLFxuICBmaWVsZHMsXG4gIGpvaW5BbGlhc2VzLFxuICBqb2lucyxcbiAgbG9jYWxlLFxuICBzZWxlY3RGaWVsZHMsXG4gIHRhYmxlTmFtZSxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxTUUw+IHtcbiAgbGV0IHJlc3VsdDogU1FMXG4gIGNvbnN0IGNvbnN0cmFpbnRzOiBTUUxbXSA9IFtdXG5cbiAgaWYgKHR5cGVvZiB3aGVyZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMod2hlcmUpLmxlbmd0aCA+IDApIHtcbiAgICAvLyBXZSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGUgd2hlcmVLZXkgaXMgYW4gQU5ELCBPUiwgb3IgYSBzY2hlbWEgcGF0aFxuICAgIGZvciAoY29uc3QgcmVsYXRpb25PclBhdGggb2YgT2JqZWN0LmtleXMod2hlcmUpKSB7XG4gICAgICBpZiAocmVsYXRpb25PclBhdGgpIHtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gd2hlcmVbcmVsYXRpb25PclBhdGhdXG4gICAgICAgIGxldCBjb25kaXRpb25PcGVyYXRvcjogJ2FuZCcgfCAnb3InXG4gICAgICAgIGlmIChyZWxhdGlvbk9yUGF0aC50b0xvd2VyQ2FzZSgpID09PSAnYW5kJykge1xuICAgICAgICAgIGNvbmRpdGlvbk9wZXJhdG9yID0gJ2FuZCdcbiAgICAgICAgfSBlbHNlIGlmIChyZWxhdGlvbk9yUGF0aC50b0xvd2VyQ2FzZSgpID09PSAnb3InKSB7XG4gICAgICAgICAgY29uZGl0aW9uT3BlcmF0b3IgPSAnb3InXG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgICAgIGNvbnN0IGJ1aWx0Q29uZGl0aW9ucyA9IGF3YWl0IGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChidWlsdENvbmRpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gb3BlcmF0b3JNYXBbY29uZGl0aW9uT3BlcmF0b3JdKC4uLmJ1aWx0Q29uZGl0aW9ucylcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSXQncyBhIHBhdGggLSBhbmQgdGhlcmUgY2FuIGJlIG11bHRpcGxlIGNvbXBhcmlzb25zIG9uIGEgc2luZ2xlIHBhdGguXG4gICAgICAgICAgLy8gRm9yIGV4YW1wbGUgLSB0aXRsZSBsaWtlICd0ZXN0JyBhbmQgdGl0bGUgbm90IGVxdWFsIHRvICd0ZXN0ZXInXG4gICAgICAgICAgLy8gU28gd2UgbmVlZCB0byBsb29wIG9uIGtleXMgYWdhaW4gaGVyZSB0byBoYW5kbGUgZWFjaCBvcGVyYXRvciBpbmRlcGVuZGVudGx5XG4gICAgICAgICAgY29uc3QgcGF0aE9wZXJhdG9ycyA9IHdoZXJlW3JlbGF0aW9uT3JQYXRoXVxuICAgICAgICAgIGlmICh0eXBlb2YgcGF0aE9wZXJhdG9ycyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb3BlcmF0b3Igb2YgT2JqZWN0LmtleXMocGF0aE9wZXJhdG9ycykpIHtcbiAgICAgICAgICAgICAgaWYgKHZhbGlkT3BlcmF0b3JzLmluY2x1ZGVzKG9wZXJhdG9yIGFzIE9wZXJhdG9yKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHdoZXJlW3JlbGF0aW9uT3JQYXRoXVtvcGVyYXRvcl1cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lLFxuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHM6IHF1ZXJ5Q29uc3RyYWludHMsXG4gICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgIGdldE5vdE51bGxDb2x1bW5CeVZhbHVlLFxuICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzLFxuICAgICAgICAgICAgICAgICAgcmF3Q29sdW1uLFxuICAgICAgICAgICAgICAgICAgdGFibGUsXG4gICAgICAgICAgICAgICAgfSA9IGdldFRhYmxlQ29sdW1uRnJvbVBhdGgoe1xuICAgICAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25QYXRoOiByZWxhdGlvbk9yUGF0aCxcbiAgICAgICAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGpvaW5BbGlhc2VzLFxuICAgICAgICAgICAgICAgICAgam9pbnMsXG4gICAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgICBwYXRoU2VnbWVudHM6IHJlbGF0aW9uT3JQYXRoLnJlcGxhY2UoL19fL2csICcuJykuc3BsaXQoJy4nKSxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdEZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIHF1ZXJ5Q29uc3RyYWludHMuZm9yRWFjaCgoeyBjb2x1bW5OYW1lOiBjb2wsIHRhYmxlOiBjb25zdHJhaW50VGFibGUsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluZGV4T2YoJyUnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2gob3BlcmF0b3JNYXAubGlrZShjb25zdHJhaW50VGFibGVbY29sXSwgdmFsdWUpKVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChvcGVyYXRvck1hcC5lcXVhbHMoY29uc3RyYWludFRhYmxlW2NvbF0sIHZhbHVlKSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgWydqc29uJywgJ3JpY2hUZXh0J10uaW5jbHVkZXMoZmllbGQudHlwZSkgJiZcbiAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocGF0aFNlZ21lbnRzKSAmJlxuICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aFNlZ21lbnRzLnNsaWNlKDEpXG4gICAgICAgICAgICAgICAgICBzZWdtZW50cy51bnNoaWZ0KHRhYmxlW2NvbHVtbk5hbWVdLm5hbWUpXG5cbiAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmljaFRleHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25RdWVyeSA9IGNyZWF0ZUpTT05RdWVyeSh7XG4gICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiBzZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICB0cmVhdEFzQXJyYXk6IFsnY2hpbGRyZW4nXSxcbiAgICAgICAgICAgICAgICAgICAgICB0cmVhdFJvb3RBc0FycmF5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChzcWwucmF3KGpzb25RdWVyeSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25RdWVyeSA9IGNvbnZlcnRQYXRoVG9KU09OVHJhdmVyc2FsKHBhdGhTZWdtZW50cylcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yS2V5cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IHsgb3BlcmF0b3I6ICdpbGlrZScsIHdpbGRjYXJkOiAnJScgfSxcbiAgICAgICAgICAgICAgICAgICAgZXF1YWxzOiB7IG9wZXJhdG9yOiAnPScsIHdpbGRjYXJkOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgICBleGlzdHM6IHsgb3BlcmF0b3I6IHZhbCA9PT0gdHJ1ZSA/ICdpcyBub3QgbnVsbCcgOiAnaXMgbnVsbCcgfSxcbiAgICAgICAgICAgICAgICAgICAgbGlrZTogeyBvcGVyYXRvcjogJ2xpa2UnLCB3aWxkY2FyZDogJyUnIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdF9lcXVhbHM6IHsgb3BlcmF0b3I6ICc8PicsIHdpbGRjYXJkOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gYCcke29wZXJhdG9yS2V5c1tvcGVyYXRvcl0ud2lsZGNhcmR9JHt2YWx9JHtvcGVyYXRvcktleXNbb3BlcmF0b3JdLndpbGRjYXJkfSdgXG5cbiAgICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSAnJ1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBzcWwucmF3KFxuICAgICAgICAgICAgICAgICAgICAgIGAke3RhYmxlW2NvbHVtbk5hbWVdLm5hbWV9JHtqc29uUXVlcnl9ICR7b3BlcmF0b3JLZXlzW29wZXJhdG9yXS5vcGVyYXRvcn0gJHtmb3JtYXR0ZWRWYWx1ZX1gLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGdldE5vdE51bGxDb2x1bW5CeVZhbHVlKHZhbClcbiAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goaXNOb3ROdWxsKHRhYmxlW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFt7IHBhdGg6IHJlbGF0aW9uT3JQYXRoIH1dKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3IgPT09ICdsaWtlJykge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgYW5kKC4uLnZhbC5zcGxpdCgnICcpLm1hcCgod29yZCkgPT4gaWxpa2UodGFibGVbY29sdW1uTmFtZV0sIGAlJHt3b3JkfSVgKSkpLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRRdWVyeVZhbHVlID0gc2FuaXRpemVRdWVyeVZhbHVlKHtcbiAgICAgICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgcmVsYXRpb25PclBhdGgsXG4gICAgICAgICAgICAgICAgICB2YWwsXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIGlmIChzYW5pdGl6ZWRRdWVyeVZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgb3BlcmF0b3I6IHF1ZXJ5T3BlcmF0b3IsIHZhbHVlOiBxdWVyeVZhbHVlIH0gPSBzYW5pdGl6ZWRRdWVyeVZhbHVlXG5cbiAgICAgICAgICAgICAgICBpZiAocXVlcnlPcGVyYXRvciA9PT0gJ25vdF9lcXVhbHMnICYmIHF1ZXJ5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIG9yKFxuICAgICAgICAgICAgICAgICAgICAgIGlzTnVsbChyYXdDb2x1bW4gfHwgdGFibGVbY29sdW1uTmFtZV0pLFxuICAgICAgICAgICAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbiAgICAgICAgICAgICAgICAgICAgICBuZTxhbnk+KHJhd0NvbHVtbiB8fCB0YWJsZVtjb2x1bW5OYW1lXSwgcXVlcnlWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyB8fCBmaWVsZC50eXBlID09PSAndXBsb2FkJykgJiZcbiAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocXVlcnlWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID09PSAnbm90X2luJ1xuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgc3FsYCR7bm90SW5BcnJheSh0YWJsZVtjb2x1bW5OYW1lXSwgcXVlcnlWYWx1ZSl9IE9SXG4gICAgICAgICAgICAgICAgICAgICR7dGFibGVbY29sdW1uTmFtZV19XG4gICAgICAgICAgICAgICAgICAgIElTXG4gICAgICAgICAgICAgICAgICAgIE5VTExgLFxuICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2VxdWFscycgJiYgcXVlcnlWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChpc051bGwocmF3Q29sdW1uIHx8IHRhYmxlW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSAnbm90X2VxdWFscycgJiYgcXVlcnlWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChpc05vdE51bGwocmF3Q29sdW1uIHx8IHRhYmxlW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yTWFwW3F1ZXJ5T3BlcmF0b3JdKHJhd0NvbHVtbiB8fCB0YWJsZVtjb2x1bW5OYW1lXSwgcXVlcnlWYWx1ZSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChjb25zdHJhaW50cy5sZW5ndGggPiAwKSB7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgcmVzdWx0ID0gYW5kKHJlc3VsdCwgLi4uY29uc3RyYWludHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGFuZCguLi5jb25zdHJhaW50cylcbiAgICB9XG4gIH1cbiAgaWYgKGNvbnN0cmFpbnRzLmxlbmd0aCA9PT0gMSAmJiAhcmVzdWx0KSB7XG4gICAgO1tyZXN1bHRdID0gY29uc3RyYWludHNcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVBhcmFtcyIsImFkYXB0ZXIiLCJmaWVsZHMiLCJqb2luQWxpYXNlcyIsImpvaW5zIiwibG9jYWxlIiwic2VsZWN0RmllbGRzIiwidGFibGVOYW1lIiwid2hlcmUiLCJyZXN1bHQiLCJjb25zdHJhaW50cyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJyZWxhdGlvbk9yUGF0aCIsImNvbmRpdGlvbiIsImNvbmRpdGlvbk9wZXJhdG9yIiwidG9Mb3dlckNhc2UiLCJBcnJheSIsImlzQXJyYXkiLCJidWlsdENvbmRpdGlvbnMiLCJidWlsZEFuZE9yQ29uZGl0aW9ucyIsIm9wZXJhdG9yTWFwIiwicGF0aE9wZXJhdG9ycyIsIm9wZXJhdG9yIiwidmFsaWRPcGVyYXRvcnMiLCJpbmNsdWRlcyIsInZhbCIsImNvbHVtbk5hbWUiLCJxdWVyeUNvbnN0cmFpbnRzIiwiZmllbGQiLCJnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSIsInBhdGhTZWdtZW50cyIsInJhd0NvbHVtbiIsInRhYmxlIiwiZ2V0VGFibGVDb2x1bW5Gcm9tUGF0aCIsImNvbGxlY3Rpb25QYXRoIiwicmVwbGFjZSIsInNwbGl0IiwidmFsdWUiLCJmb3JFYWNoIiwiY29sIiwiY29uc3RyYWludFRhYmxlIiwiaW5kZXhPZiIsInB1c2giLCJsaWtlIiwiZXF1YWxzIiwidHlwZSIsInNlZ21lbnRzIiwic2xpY2UiLCJ1bnNoaWZ0IiwibmFtZSIsImpzb25RdWVyeSIsImNyZWF0ZUpTT05RdWVyeSIsInRyZWF0QXNBcnJheSIsInRyZWF0Um9vdEFzQXJyYXkiLCJzcWwiLCJyYXciLCJjb252ZXJ0UGF0aFRvSlNPTlRyYXZlcnNhbCIsIm9wZXJhdG9yS2V5cyIsImNvbnRhaW5zIiwid2lsZGNhcmQiLCJleGlzdHMiLCJub3RfZXF1YWxzIiwiZm9ybWF0dGVkVmFsdWUiLCJpc05vdE51bGwiLCJRdWVyeUVycm9yIiwicGF0aCIsImFuZCIsIm1hcCIsIndvcmQiLCJpbGlrZSIsInNhbml0aXplZFF1ZXJ5VmFsdWUiLCJzYW5pdGl6ZVF1ZXJ5VmFsdWUiLCJxdWVyeU9wZXJhdG9yIiwicXVlcnlWYWx1ZSIsIm9yIiwiaXNOdWxsIiwibmUiLCJub3RJbkFycmF5Il0sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7Ozs7K0JBNkJiQTs7O2VBQUFBOzs7NEJBekJpRDt3QkFDNUM7dUJBQ0k7c0NBS007aUNBQ0w7NENBQ1c7d0NBQ0o7NkJBQ1g7b0NBQ087QUFhNUIsZUFBZUEsWUFBWSxFQUNoQ0MsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLFdBQVcsRUFDWEMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLFlBQVksRUFDWkMsU0FBUyxFQUNUQyxLQUFLLEVBQ0E7SUFDTCxJQUFJQztJQUNKLE1BQU1DLGNBQXFCLEVBQUU7SUFFN0Is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
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3BhcnNlUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB0eXBlIHsgU1FMIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBPcGVyYXRvciwgV2hlcmUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBhbmQsIGlsaWtlLCBpc05vdE51bGwsIGlzTnVsbCwgbmUsIG5vdEluQXJyYXksIG9yLCBzcWwgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7IFF1ZXJ5RXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcbmltcG9ydCB7IHZhbGlkT3BlcmF0b3JzIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1uLCBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQnVpbGRRdWVyeUpvaW5BbGlhc2VzLCBCdWlsZFF1ZXJ5Sm9pbnMgfSBmcm9tICcuL2J1aWxkUXVlcnknXG5cbmltcG9ydCB7IGJ1aWxkQW5kT3JDb25kaXRpb25zIH0gZnJvbSAnLi9idWlsZEFuZE9yQ29uZGl0aW9ucydcbmltcG9ydCB7IGNyZWF0ZUpTT05RdWVyeSB9IGZyb20gJy4vY3JlYXRlSlNPTlF1ZXJ5J1xuaW1wb3J0IHsgY29udmVydFBhdGhUb0pTT05UcmF2ZXJzYWwgfSBmcm9tICcuL2NyZWF0ZUpTT05RdWVyeS9jb252ZXJ0UGF0aFRvSlNPTlRyYXZlcnNhbCdcbmltcG9ydCB7IGdldFRhYmxlQ29sdW1uRnJvbVBhdGggfSBmcm9tICcuL2dldFRhYmxlQ29sdW1uRnJvbVBhdGgnXG5pbXBvcnQgeyBvcGVyYXRvck1hcCB9IGZyb20gJy4vb3BlcmF0b3JNYXAnXG5pbXBvcnQgeyBzYW5pdGl6ZVF1ZXJ5VmFsdWUgfSBmcm9tICcuL3Nhbml0aXplUXVlcnlWYWx1ZSdcblxudHlwZSBBcmdzID0ge1xuICBhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXJcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGpvaW5BbGlhc2VzOiBCdWlsZFF1ZXJ5Sm9pbkFsaWFzZXNcbiAgam9pbnM6IEJ1aWxkUXVlcnlKb2luc1xuICBsb2NhbGU6IHN0cmluZ1xuICBzZWxlY3RGaWVsZHM6IFJlY29yZDxzdHJpbmcsIEdlbmVyaWNDb2x1bW4+XG4gIHRhYmxlTmFtZTogc3RyaW5nXG4gIHdoZXJlOiBXaGVyZVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VQYXJhbXMoe1xuICBhZGFwdGVyLFxuICBmaWVsZHMsXG4gIGpvaW5BbGlhc2VzLFxuICBqb2lucyxcbiAgbG9jYWxlLFxuICBzZWxlY3RGaWVsZHMsXG4gIHRhYmxlTmFtZSxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxTUUw+IHtcbiAgbGV0IHJlc3VsdDogU1FMXG4gIGNvbnN0IGNvbnN0cmFpbnRzOiBTUUxbXSA9IFtdXG5cbiAgaWYgKHR5cGVvZiB3aGVyZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMod2hlcmUpLmxlbmd0aCA+IDApIHtcbiAgICAvLyBXZSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGUgd2hlcmVLZXkgaXMgYW4gQU5ELCBPUiwgb3IgYSBzY2hlbWEgcGF0aFxuICAgIGZvciAoY29uc3QgcmVsYXRpb25PclBhdGggb2YgT2JqZWN0LmtleXMod2hlcmUpKSB7XG4gICAgICBpZiAocmVsYXRpb25PclBhdGgpIHtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gd2hlcmVbcmVsYXRpb25PclBhdGhdXG4gICAgICAgIGxldCBjb25kaXRpb25PcGVyYXRvcjogJ2FuZCcgfCAnb3InXG4gICAgICAgIGlmIChyZWxhdGlvbk9yUGF0aC50b0xvd2VyQ2FzZSgpID09PSAnYW5kJykge1xuICAgICAgICAgIGNvbmRpdGlvbk9wZXJhdG9yID0gJ2FuZCdcbiAgICAgICAgfSBlbHNlIGlmIChyZWxhdGlvbk9yUGF0aC50b0xvd2VyQ2FzZSgpID09PSAnb3InKSB7XG4gICAgICAgICAgY29uZGl0aW9uT3BlcmF0b3IgPSAnb3InXG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgICAgIGNvbnN0IGJ1aWx0Q29uZGl0aW9ucyA9IGF3YWl0IGJ1aWxkQW5kT3JDb25kaXRpb25zKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICBqb2luQWxpYXNlcyxcbiAgICAgICAgICAgIGpvaW5zLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgc2VsZWN0RmllbGRzLFxuICAgICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgICAgd2hlcmU6IGNvbmRpdGlvbixcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChidWlsdENvbmRpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gb3BlcmF0b3JNYXBbY29uZGl0aW9uT3BlcmF0b3JdKC4uLmJ1aWx0Q29uZGl0aW9ucylcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSXQncyBhIHBhdGggLSBhbmQgdGhlcmUgY2FuIGJlIG11bHRpcGxlIGNvbXBhcmlzb25zIG9uIGEgc2luZ2xlIHBhdGguXG4gICAgICAgICAgLy8gRm9yIGV4YW1wbGUgLSB0aXRsZSBsaWtlICd0ZXN0JyBhbmQgdGl0bGUgbm90IGVxdWFsIHRvICd0ZXN0ZXInXG4gICAgICAgICAgLy8gU28gd2UgbmVlZCB0byBsb29wIG9uIGtleXMgYWdhaW4gaGVyZSB0byBoYW5kbGUgZWFjaCBvcGVyYXRvciBpbmRlcGVuZGVudGx5XG4gICAgICAgICAgY29uc3QgcGF0aE9wZXJhdG9ycyA9IHdoZXJlW3JlbGF0aW9uT3JQYXRoXVxuICAgICAgICAgIGlmICh0eXBlb2YgcGF0aE9wZXJhdG9ycyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb3BlcmF0b3Igb2YgT2JqZWN0LmtleXMocGF0aE9wZXJhdG9ycykpIHtcbiAgICAgICAgICAgICAgaWYgKHZhbGlkT3BlcmF0b3JzLmluY2x1ZGVzKG9wZXJhdG9yIGFzIE9wZXJhdG9yKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHdoZXJlW3JlbGF0aW9uT3JQYXRoXVtvcGVyYXRvcl1cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lLFxuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHM6IHF1ZXJ5Q29uc3RyYWludHMsXG4gICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgIGdldE5vdE51bGxDb2x1bW5CeVZhbHVlLFxuICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzLFxuICAgICAgICAgICAgICAgICAgcmF3Q29sdW1uLFxuICAgICAgICAgICAgICAgICAgdGFibGUsXG4gICAgICAgICAgICAgICAgfSA9IGdldFRhYmxlQ29sdW1uRnJvbVBhdGgoe1xuICAgICAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25QYXRoOiByZWxhdGlvbk9yUGF0aCxcbiAgICAgICAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGpvaW5BbGlhc2VzLFxuICAgICAgICAgICAgICAgICAgam9pbnMsXG4gICAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgICBwYXRoU2VnbWVudHM6IHJlbGF0aW9uT3JQYXRoLnJlcGxhY2UoL19fL2csICcuJykuc3BsaXQoJy4nKSxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdEZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIHF1ZXJ5Q29uc3RyYWludHMuZm9yRWFjaCgoeyBjb2x1bW5OYW1lOiBjb2wsIHRhYmxlOiBjb25zdHJhaW50VGFibGUsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluZGV4T2YoJyUnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2gob3BlcmF0b3JNYXAubGlrZShjb25zdHJhaW50VGFibGVbY29sXSwgdmFsdWUpKVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChvcGVyYXRvck1hcC5lcXVhbHMoY29uc3RyYWludFRhYmxlW2NvbF0sIHZhbHVlKSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgWydqc29uJywgJ3JpY2hUZXh0J10uaW5jbHVkZXMoZmllbGQudHlwZSkgJiZcbiAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocGF0aFNlZ21lbnRzKSAmJlxuICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aFNlZ21lbnRzLnNsaWNlKDEpXG4gICAgICAgICAgICAgICAgICBzZWdtZW50cy51bnNoaWZ0KHRhYmxlW2NvbHVtbk5hbWVdLm5hbWUpXG5cbiAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmljaFRleHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25RdWVyeSA9IGNyZWF0ZUpTT05RdWVyeSh7XG4gICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgcGF0aFNlZ21lbnRzOiBzZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICB0cmVhdEFzQXJyYXk6IFsnY2hpbGRyZW4nXSxcbiAgICAgICAgICAgICAgICAgICAgICB0cmVhdFJvb3RBc0FycmF5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChzcWwucmF3KGpzb25RdWVyeSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGpzb25RdWVyeSA9IGNvbnZlcnRQYXRoVG9KU09OVHJhdmVyc2FsKHBhdGhTZWdtZW50cylcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yS2V5cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IHsgb3BlcmF0b3I6ICdpbGlrZScsIHdpbGRjYXJkOiAnJScgfSxcbiAgICAgICAgICAgICAgICAgICAgZXF1YWxzOiB7IG9wZXJhdG9yOiAnPScsIHdpbGRjYXJkOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgICBleGlzdHM6IHsgb3BlcmF0b3I6IHZhbCA9PT0gdHJ1ZSA/ICdpcyBub3QgbnVsbCcgOiAnaXMgbnVsbCcgfSxcbiAgICAgICAgICAgICAgICAgICAgbGlrZTogeyBvcGVyYXRvcjogJ2xpa2UnLCB3aWxkY2FyZDogJyUnIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdF9lcXVhbHM6IHsgb3BlcmF0b3I6ICc8PicsIHdpbGRjYXJkOiAnJyB9LFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gYCcke29wZXJhdG9yS2V5c1tvcGVyYXRvcl0ud2lsZGNhcmR9JHt2YWx9JHtvcGVyYXRvcktleXNbb3BlcmF0b3JdLndpbGRjYXJkfSdgXG5cbiAgICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2V4aXN0cycpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSAnJ1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdHJhaW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBzcWwucmF3KFxuICAgICAgICAgICAgICAgICAgICAgIGAke3RhYmxlW2NvbHVtbk5hbWVdLm5hbWV9JHtqc29uUXVlcnl9ICR7b3BlcmF0b3JLZXlzW29wZXJhdG9yXS5vcGVyYXRvcn0gJHtmb3JtYXR0ZWRWYWx1ZX1gLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChnZXROb3ROdWxsQ29sdW1uQnlWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGdldE5vdE51bGxDb2x1bW5CeVZhbHVlKHZhbClcbiAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goaXNOb3ROdWxsKHRhYmxlW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFt7IHBhdGg6IHJlbGF0aW9uT3JQYXRoIH1dKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3IgPT09ICdsaWtlJykge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgYW5kKC4uLnZhbC5zcGxpdCgnICcpLm1hcCgod29yZCkgPT4gaWxpa2UodGFibGVbY29sdW1uTmFtZV0sIGAlJHt3b3JkfSVgKSkpLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRRdWVyeVZhbHVlID0gc2FuaXRpemVRdWVyeVZhbHVlKHtcbiAgICAgICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgcmVsYXRpb25PclBhdGgsXG4gICAgICAgICAgICAgICAgICB2YWwsXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIGlmIChzYW5pdGl6ZWRRdWVyeVZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgb3BlcmF0b3I6IHF1ZXJ5T3BlcmF0b3IsIHZhbHVlOiBxdWVyeVZhbHVlIH0gPSBzYW5pdGl6ZWRRdWVyeVZhbHVlXG5cbiAgICAgICAgICAgICAgICBpZiAocXVlcnlPcGVyYXRvciA9PT0gJ25vdF9lcXVhbHMnICYmIHF1ZXJ5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIG9yKFxuICAgICAgICAgICAgICAgICAgICAgIGlzTnVsbChyYXdDb2x1bW4gfHwgdGFibGVbY29sdW1uTmFtZV0pLFxuICAgICAgICAgICAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbiAgICAgICAgICAgICAgICAgICAgICBuZTxhbnk+KHJhd0NvbHVtbiB8fCB0YWJsZVtjb2x1bW5OYW1lXSwgcXVlcnlWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyB8fCBmaWVsZC50eXBlID09PSAndXBsb2FkJykgJiZcbiAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocXVlcnlWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yID09PSAnbm90X2luJ1xuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgc3FsYCR7bm90SW5BcnJheSh0YWJsZVtjb2x1bW5OYW1lXSwgcXVlcnlWYWx1ZSl9IE9SXG4gICAgICAgICAgICAgICAgICAgICR7dGFibGVbY29sdW1uTmFtZV19XG4gICAgICAgICAgICAgICAgICAgIElTXG4gICAgICAgICAgICAgICAgICAgIE5VTExgLFxuICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2VxdWFscycgJiYgcXVlcnlWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChpc051bGwocmF3Q29sdW1uIHx8IHRhYmxlW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSAnbm90X2VxdWFscycgJiYgcXVlcnlWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChpc05vdE51bGwocmF3Q29sdW1uIHx8IHRhYmxlW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3RyYWludHMucHVzaChcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yTWFwW3F1ZXJ5T3BlcmF0b3JdKHJhd0NvbHVtbiB8fCB0YWJsZVtjb2x1bW5OYW1lXSwgcXVlcnlWYWx1ZSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChjb25zdHJhaW50cy5sZW5ndGggPiAwKSB7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgcmVzdWx0ID0gYW5kKHJlc3VsdCwgLi4uY29uc3RyYWludHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGFuZCguLi5jb25zdHJhaW50cylcbiAgICB9XG4gIH1cbiAgaWYgKGNvbnN0cmFpbnRzLmxlbmd0aCA9PT0gMSAmJiAhcmVzdWx0KSB7XG4gICAgO1tyZXN1bHRdID0gY29uc3RyYWludHNcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJhbmQiLCJpbGlrZSIsImlzTm90TnVsbCIsImlzTnVsbCIsIm5lIiwibm90SW5BcnJheSIsIm9yIiwic3FsIiwiUXVlcnlFcnJvciIsInZhbGlkT3BlcmF0b3JzIiwiYnVpbGRBbmRPckNvbmRpdGlvbnMiLCJjcmVhdGVKU09OUXVlcnkiLCJjb252ZXJ0UGF0aFRvSlNPTlRyYXZlcnNhbCIsImdldFRhYmxlQ29sdW1uRnJvbVBhdGgiLCJvcGVyYXRvck1hcCIsInNhbml0aXplUXVlcnlWYWx1ZSIsInBhcnNlUGFyYW1zIiwiYWRhcHRlciIsImZpZWxkcyIsImpvaW5BbGlhc2VzIiwiam9pbnMiLCJsb2NhbGUiLCJzZWxlY3RGaWVsZHMiLCJ0YWJsZU5hbWUiLCJ3aGVyZSIsInJlc3VsdCIsImNvbnN0cmFpbnRzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsInJlbGF0aW9uT3JQYXRoIiwiY29uZGl0aW9uIiwiY29uZGl0aW9uT3BlcmF0b3IiLCJ0b0xvd2VyQ2FzZSIsIkFycmF5IiwiaXNBcnJheSIsImJ1aWx0Q29uZGl0aW9ucyIsInBhdGhPcGVyYXRvcnMiLCJvcGVyYXRvciIsImluY2x1ZGVzIiwidmFsIiwiY29sdW1uTmFtZSIsInF1ZXJ5Q29uc3RyYWludHMiLCJmaWVsZCIsImdldE5vdE51bGxDb2x1bW5CeVZhbHVlIiwicGF0aFNlZ21lbnRzIiwicmF3Q29sdW1uIiwidGFibGUiLCJjb2xsZWN0aW9uUGF0aCIsInJlcGxhY2UiLCJzcGxpdCIsInZhbHVlIiwiZm9yRWFjaCIsImNvbCIsImNvbnN0cmFpbnRUYWJsZSIsImluZGV4T2YiLCJwdXNoIiwibGlrZSIsImVxdWFscyIsInR5cGUiLCJzZWdtZW50cyIsInNsaWNlIiwidW5zaGlmdCIsIm5hbWUiLCJqc29uUXVlcnkiLCJ0cmVhdEFzQXJyYXkiLCJ0cmVhdFJvb3RBc0FycmF5IiwicmF3Iiwib3BlcmF0b3JLZXlzIiwiY29udGFpbnMiLCJ3aWxkY2FyZCIsImV4aXN0cyIsIm5vdF9lcXVhbHMiLCJmb3JtYXR0ZWRWYWx1ZSIsInBhdGgiLCJtYXAiLCJ3b3JkIiwic2FuaXRpemVkUXVlcnlWYWx1ZSIsInF1ZXJ5T3BlcmF0b3IiLCJxdWVyeVZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUMsR0FJbkMsU0FBU0EsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLFVBQVUsRUFBRUMsRUFBRSxFQUFFQyxHQUFHLFFBQVEsY0FBYTtBQUNwRixTQUFTQyxVQUFVLFFBQVEsaUJBQWdCO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxnQkFBZTtBQUs5QyxTQUFTQyxvQkFBb0IsUUFBUSx5QkFBd0I7QUFDN0QsU0FBU0MsZUFBZSxRQUFRLG9CQUFtQjtBQUNuRCxT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
@@ -1,20 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "sanitizeQueryValue", {
6
- enumerable: true,
7
- get: function() {
8
- return sanitizeQueryValue;
9
- }
10
- });
11
- const _errors = require("payload/errors");
12
- const _types = require("payload/types");
13
- const _utilities = require("payload/utilities");
14
- const sanitizeQueryValue = ({ adapter, field, operator: operatorArg, relationOrPath, val })=>{
1
+ import { APIError } from 'payload/errors';
2
+ import { fieldAffectsData } from 'payload/types';
3
+ import { createArrayFromCommaDelineated } from 'payload/utilities';
4
+ export const sanitizeQueryValue = ({ adapter, field, operator: operatorArg, relationOrPath, val })=>{
15
5
  let operator = operatorArg;
16
6
  let formattedValue = val;
17
- if (!(0, _types.fieldAffectsData)(field)) return {
7
+ if (!fieldAffectsData(field)) return {
18
8
  operator,
19
9
  value: formattedValue
20
10
  };
@@ -42,7 +32,7 @@ const sanitizeQueryValue = ({ adapter, field, operator: operatorArg, relationOrP
42
32
  'not_in'
43
33
  ].includes(operator)) {
44
34
  if (typeof formattedValue === 'string') {
45
- formattedValue = (0, _utilities.createArrayFromCommaDelineated)(formattedValue);
35
+ formattedValue = createArrayFromCommaDelineated(formattedValue);
46
36
  if (field.type === 'number') {
47
37
  formattedValue = formattedValue.map((arrayVal)=>parseFloat(arrayVal));
48
38
  }
@@ -77,7 +67,7 @@ const sanitizeQueryValue = ({ adapter, field, operator: operatorArg, relationOrP
77
67
  }
78
68
  }
79
69
  if (operator === 'near' || operator === 'within' || operator === 'intersects') {
80
- throw new _errors.APIError(`Querying with '${operator}' is not supported with the postgres database adapter.`);
70
+ throw new APIError(`Querying with '${operator}' is not supported with the postgres database adapter.`);
81
71
  }
82
72
  if (operator === 'contains') {
83
73
  formattedValue = `%${formattedValue}%`;
@@ -94,4 +84,4 @@ const sanitizeQueryValue = ({ adapter, field, operator: operatorArg, relationOrP
94
84
  };
95
85
  };
96
86
 
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgdHlwZSBGaWVsZCwgdHlwZSBUYWJBc0ZpZWxkLCBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB7IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG50eXBlIFNhbml0aXplUXVlcnlWYWx1ZUFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIG9wZXJhdG9yOiBzdHJpbmdcbiAgcmVsYXRpb25PclBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgYWRhcHRlcixcbiAgZmllbGQsXG4gIG9wZXJhdG9yOiBvcGVyYXRvckFyZyxcbiAgcmVsYXRpb25PclBhdGgsXG4gIHZhbCxcbn06IFNhbml0aXplUXVlcnlWYWx1ZUFyZ3MpOiB7IG9wZXJhdG9yOiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH0gPT4ge1xuICBsZXQgb3BlcmF0b3IgPSBvcGVyYXRvckFyZ1xuICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWxcblxuICBpZiAoIWZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSByZXR1cm4geyBvcGVyYXRvciwgdmFsdWU6IGZvcm1hdHRlZFZhbHVlIH1cblxuICBpZiAoXG4gICAgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSAmJlxuICAgICFyZWxhdGlvbk9yUGF0aC5lbmRzV2l0aCgncmVsYXRpb25UbycpICYmXG4gICAgQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSlcbiAgKSB7XG4gICAgY29uc3QgYWxsUG9zc2libGVJRFR5cGVzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gW11cbiAgICBmb3JtYXR0ZWRWYWx1ZS5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgIGlmIChhZGFwdGVyLmlkVHlwZSAhPT0gJ3V1aWQnICYmIHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGFsbFBvc3NpYmxlSURUeXBlcy5wdXNoKHZhbCwgcGFyc2VJbnQodmFsKSlcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgYWxsUG9zc2libGVJRFR5cGVzLnB1c2godmFsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxsUG9zc2libGVJRFR5cGVzLnB1c2godmFsLCBTdHJpbmcodmFsKSlcbiAgICAgIH1cbiAgICB9KVxuICAgIGZvcm1hdHRlZFZhbHVlID0gYWxsUG9zc2libGVJRFR5cGVzXG4gIH1cblxuICAvLyBDYXN0IGluY29taW5nIHZhbHVlcyBhcyBwcm9wZXIgc2VhcmNoYWJsZSB0eXBlc1xuICBpZiAoZmllbGQudHlwZSA9PT0gJ2NoZWNrYm94JyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWwudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSBmb3JtYXR0ZWRWYWx1ZSA9IHRydWVcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICdmYWxzZScpIGZvcm1hdHRlZFZhbHVlID0gZmFsc2VcbiAgfVxuXG4gIGlmIChbJ2FsbCcsICdpbicsICdub3RfaW4nXS5pbmNsdWRlcyhvcGVyYXRvcikpIHtcbiAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBjcmVhdGVBcnJheUZyb21Db21tYURlbGluZWF0ZWQoZm9ybWF0dGVkVmFsdWUpXG5cbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlLm1hcCgoYXJyYXlWYWwpID0+IHBhcnNlRmxvYXQoYXJyYXlWYWwpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkgfHwgZm9ybWF0dGVkVmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBOdW1iZXIodmFsKVxuICB9XG5cbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdkYXRlJykge1xuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBuZXcgRGF0ZSh2YWwpXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKERhdGUucGFyc2UoZm9ybWF0dGVkVmFsdWUpKSkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvciwgdmFsdWU6IHVuZGVmaW5lZCB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICBmb3JtYXR0ZWRWYWx1ZSA9IG5ldyBEYXRlKHZhbClcbiAgICB9XG4gIH1cblxuICBpZiAoWydyZWxhdGlvbnNoaXAnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICBpZiAodmFsID09PSAnbnVsbCcpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ25lYXInIHx8IG9wZXJhdG9yID09PSAnd2l0aGluJyB8fCBvcGVyYXRvciA9PT0gJ2ludGVyc2VjdHMnKSB7XG4gICAgdGhyb3cgbmV3IEFQSUVycm9yKFxuICAgICAgYFF1ZXJ5aW5nIHdpdGggJyR7b3BlcmF0b3J9JyBpcyBub3Qgc3VwcG9ydGVkIHdpdGggdGhlIHBvc3RncmVzIGRhdGFiYXNlIGFkYXB0ZXIuYCxcbiAgICApXG4gIH1cblxuICBpZiAob3BlcmF0b3IgPT09ICdjb250YWlucycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGAlJHtmb3JtYXR0ZWRWYWx1ZX0lYFxuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnZXhpc3RzJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUgPT09ICd0cnVlJyB8fCBmb3JtYXR0ZWRWYWx1ZSA9PT0gdHJ1ZVxuICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIG9wZXJhdG9yID0gJ2lzTnVsbCdcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBvcGVyYXRvciwgdmFsdWU6IGZvcm1hdHRlZFZhbHVlIH1cbn1cbiJdLCJuYW1lcyI6WyJzYW5pdGl6ZVF1ZXJ5VmFsdWUiLCJhZGFwdGVyIiwiZmllbGQiLCJvcGVyYXRvciIsIm9wZXJhdG9yQXJnIiwicmVsYXRpb25PclBhdGgiLCJ2YWwiLCJmb3JtYXR0ZWRWYWx1ZSIsImZpZWxkQWZmZWN0c0RhdGEiLCJ2YWx1ZSIsInR5cGUiLCJlbmRzV2l0aCIsIkFycmF5IiwiaXNBcnJheSIsImFsbFBvc3NpYmxlSURUeXBlcyIsImZvckVhY2giLCJpZFR5cGUiLCJwdXNoIiwicGFyc2VJbnQiLCJTdHJpbmciLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIiwibWFwIiwiYXJyYXlWYWwiLCJwYXJzZUZsb2F0IiwibGVuZ3RoIiwiTnVtYmVyIiwiRGF0ZSIsImlzTmFOIiwicGFyc2UiLCJ1bmRlZmluZWQiLCJBUElFcnJvciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFjYUE7OztlQUFBQTs7O3dCQWRZO3VCQUNxQzsyQkFD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
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3Nhbml0aXplUXVlcnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgdHlwZSBGaWVsZCwgdHlwZSBUYWJBc0ZpZWxkLCBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB7IGNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG50eXBlIFNhbml0aXplUXVlcnlWYWx1ZUFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIG9wZXJhdG9yOiBzdHJpbmdcbiAgcmVsYXRpb25PclBhdGg6IHN0cmluZ1xuICB2YWw6IGFueVxufVxuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVRdWVyeVZhbHVlID0gKHtcbiAgYWRhcHRlcixcbiAgZmllbGQsXG4gIG9wZXJhdG9yOiBvcGVyYXRvckFyZyxcbiAgcmVsYXRpb25PclBhdGgsXG4gIHZhbCxcbn06IFNhbml0aXplUXVlcnlWYWx1ZUFyZ3MpOiB7IG9wZXJhdG9yOiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH0gPT4ge1xuICBsZXQgb3BlcmF0b3IgPSBvcGVyYXRvckFyZ1xuICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWxcblxuICBpZiAoIWZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSByZXR1cm4geyBvcGVyYXRvciwgdmFsdWU6IGZvcm1hdHRlZFZhbHVlIH1cblxuICBpZiAoXG4gICAgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSAmJlxuICAgICFyZWxhdGlvbk9yUGF0aC5lbmRzV2l0aCgncmVsYXRpb25UbycpICYmXG4gICAgQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSlcbiAgKSB7XG4gICAgY29uc3QgYWxsUG9zc2libGVJRFR5cGVzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gW11cbiAgICBmb3JtYXR0ZWRWYWx1ZS5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgIGlmIChhZGFwdGVyLmlkVHlwZSAhPT0gJ3V1aWQnICYmIHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGFsbFBvc3NpYmxlSURUeXBlcy5wdXNoKHZhbCwgcGFyc2VJbnQodmFsKSlcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgYWxsUG9zc2libGVJRFR5cGVzLnB1c2godmFsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxsUG9zc2libGVJRFR5cGVzLnB1c2godmFsLCBTdHJpbmcodmFsKSlcbiAgICAgIH1cbiAgICB9KVxuICAgIGZvcm1hdHRlZFZhbHVlID0gYWxsUG9zc2libGVJRFR5cGVzXG4gIH1cblxuICAvLyBDYXN0IGluY29taW5nIHZhbHVlcyBhcyBwcm9wZXIgc2VhcmNoYWJsZSB0eXBlc1xuICBpZiAoZmllbGQudHlwZSA9PT0gJ2NoZWNrYm94JyAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWwudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSBmb3JtYXR0ZWRWYWx1ZSA9IHRydWVcbiAgICBpZiAodmFsLnRvTG93ZXJDYXNlKCkgPT09ICdmYWxzZScpIGZvcm1hdHRlZFZhbHVlID0gZmFsc2VcbiAgfVxuXG4gIGlmIChbJ2FsbCcsICdpbicsICdub3RfaW4nXS5pbmNsdWRlcyhvcGVyYXRvcikpIHtcbiAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBjcmVhdGVBcnJheUZyb21Db21tYURlbGluZWF0ZWQoZm9ybWF0dGVkVmFsdWUpXG5cbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlLm1hcCgoYXJyYXlWYWwpID0+IHBhcnNlRmxvYXQoYXJyYXlWYWwpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShmb3JtYXR0ZWRWYWx1ZSkgfHwgZm9ybWF0dGVkVmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgZm9ybWF0dGVkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZm9ybWF0dGVkVmFsdWUgPSBOdW1iZXIodmFsKVxuICB9XG5cbiAgaWYgKGZpZWxkLnR5cGUgPT09ICdkYXRlJykge1xuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgZm9ybWF0dGVkVmFsdWUgPSBuZXcgRGF0ZSh2YWwpXG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKERhdGUucGFyc2UoZm9ybWF0dGVkVmFsdWUpKSkge1xuICAgICAgICByZXR1cm4geyBvcGVyYXRvciwgdmFsdWU6IHVuZGVmaW5lZCB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICBmb3JtYXR0ZWRWYWx1ZSA9IG5ldyBEYXRlKHZhbClcbiAgICB9XG4gIH1cblxuICBpZiAoWydyZWxhdGlvbnNoaXAnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICBpZiAodmFsID09PSAnbnVsbCcpIHtcbiAgICAgIGZvcm1hdHRlZFZhbHVlID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGlmIChvcGVyYXRvciA9PT0gJ25lYXInIHx8IG9wZXJhdG9yID09PSAnd2l0aGluJyB8fCBvcGVyYXRvciA9PT0gJ2ludGVyc2VjdHMnKSB7XG4gICAgdGhyb3cgbmV3IEFQSUVycm9yKFxuICAgICAgYFF1ZXJ5aW5nIHdpdGggJyR7b3BlcmF0b3J9JyBpcyBub3Qgc3VwcG9ydGVkIHdpdGggdGhlIHBvc3RncmVzIGRhdGFiYXNlIGFkYXB0ZXIuYCxcbiAgICApXG4gIH1cblxuICBpZiAob3BlcmF0b3IgPT09ICdjb250YWlucycpIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZSA9IGAlJHtmb3JtYXR0ZWRWYWx1ZX0lYFxuICB9XG5cbiAgaWYgKG9wZXJhdG9yID09PSAnZXhpc3RzJykge1xuICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUgPT09ICd0cnVlJyB8fCBmb3JtYXR0ZWRWYWx1ZSA9PT0gdHJ1ZVxuICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIG9wZXJhdG9yID0gJ2lzTnVsbCdcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBvcGVyYXRvciwgdmFsdWU6IGZvcm1hdHRlZFZhbHVlIH1cbn1cbiJdLCJuYW1lcyI6WyJBUElFcnJvciIsImZpZWxkQWZmZWN0c0RhdGEiLCJjcmVhdGVBcnJheUZyb21Db21tYURlbGluZWF0ZWQiLCJzYW5pdGl6ZVF1ZXJ5VmFsdWUiLCJhZGFwdGVyIiwiZmllbGQiLCJvcGVyYXRvciIsIm9wZXJhdG9yQXJnIiwicmVsYXRpb25PclBhdGgiLCJ2YWwiLCJmb3JtYXR0ZWRWYWx1ZSIsInZhbHVlIiwidHlwZSIsImVuZHNXaXRoIiwiQXJyYXkiLCJpc0FycmF5IiwiYWxsUG9zc2libGVJRFR5cGVzIiwiZm9yRWFjaCIsImlkVHlwZSIsInB1c2giLCJwYXJzZUludCIsIlN0cmluZyIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJtYXAiLCJhcnJheVZhbCIsInBhcnNlRmxvYXQiLCJsZW5ndGgiLCJOdW1iZXIiLCJEYXRlIiwiaXNOYU4iLCJwYXJzZSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsUUFBUSxRQUFRLGlCQUFnQjtBQUN6QyxTQUFz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
@@ -1,32 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "queryDrafts", {
6
- enumerable: true,
7
- get: function() {
8
- return queryDrafts;
9
- }
10
- });
11
- const _database = require("payload/database");
12
- const _versions = require("payload/versions");
13
- const _tosnakecase = /*#__PURE__*/ _interop_require_default(require("to-snake-case"));
14
- const _findMany = require("./find/findMany");
15
- function _interop_require_default(obj) {
16
- return obj && obj.__esModule ? obj : {
17
- default: obj
18
- };
19
- }
20
- const queryDrafts = async function queryDrafts({ collection, limit, locale, page = 1, pagination, req = {}, sort, where }) {
1
+ import { combineQueries } from 'payload/database';
2
+ import { buildVersionCollectionFields } from 'payload/versions';
3
+ import toSnakeCase from 'to-snake-case';
4
+ import { findMany } from './find/findMany';
5
+ export const queryDrafts = async function queryDrafts({ collection, limit, locale, page = 1, pagination, req = {}, sort, where }) {
21
6
  const collectionConfig = this.payload.collections[collection].config;
22
- const tableName = `_${(0, _tosnakecase.default)(collection)}_v`;
23
- const fields = (0, _versions.buildVersionCollectionFields)(collectionConfig);
24
- const combinedWhere = (0, _database.combineQueries)({
7
+ const tableName = `_${toSnakeCase(collection)}_v`;
8
+ const fields = buildVersionCollectionFields(collectionConfig);
9
+ const combinedWhere = combineQueries({
25
10
  latest: {
26
11
  equals: true
27
12
  }
28
13
  }, where);
29
- const result = await (0, _findMany.findMany)({
14
+ const result = await findMany({
30
15
  adapter: this,
31
16
  fields,
32
17
  limit,
@@ -53,4 +38,4 @@ const queryDrafts = async function queryDrafts({ collection, limit, locale, page
53
38
  };
54
39
  };
55
40
 
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWVyeURyYWZ0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0LCBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgdHlwZSBRdWVyeURyYWZ0cywgY29tYmluZVF1ZXJpZXMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHsgYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyB9IGZyb20gJ3BheWxvYWQvdmVyc2lvbnMnXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHsgZmluZE1hbnkgfSBmcm9tICcuL2ZpbmQvZmluZE1hbnknXG5cbmV4cG9ydCBjb25zdCBxdWVyeURyYWZ0czogUXVlcnlEcmFmdHMgPSBhc3luYyBmdW5jdGlvbiBxdWVyeURyYWZ0cyh7XG4gIGNvbGxlY3Rpb24sXG4gIGxpbWl0LFxuICBsb2NhbGUsXG4gIHBhZ2UgPSAxLFxuICBwYWdpbmF0aW9uLFxuICByZXEgPSB7fSBhcyBQYXlsb2FkUmVxdWVzdCxcbiAgc29ydCxcbiAgd2hlcmUsXG59KSB7XG4gIGNvbnN0IGNvbGxlY3Rpb25Db25maWc6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgPSB0aGlzLnBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvbl0uY29uZmlnXG4gIGNvbnN0IHRhYmxlTmFtZSA9IGBfJHt0b1NuYWtlQ2FzZShjb2xsZWN0aW9uKX1fdmBcbiAgY29uc3QgZmllbGRzID0gYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb2xsZWN0aW9uQ29uZmlnKVxuXG4gIGNvbnN0IGNvbWJpbmVkV2hlcmUgPSBjb21iaW5lUXVlcmllcyh7IGxhdGVzdDogeyBlcXVhbHM6IHRydWUgfSB9LCB3aGVyZSlcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaW5kTWFueSh7XG4gICAgYWRhcHRlcjogdGhpcyxcbiAgICBmaWVsZHMsXG4gICAgbGltaXQsXG4gICAgbG9jYWxlLFxuICAgIHBhZ2UsXG4gICAgcGFnaW5hdGlvbixcbiAgICByZXEsXG4gICAgc29ydCxcbiAgICB0YWJsZU5hbWUsXG4gICAgd2hlcmU6IGNvbWJpbmVkV2hlcmUsXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN1bHQsXG4gICAgZG9jczogcmVzdWx0LmRvY3MubWFwKChkb2MpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgZG9jID0ge1xuICAgICAgICBpZDogZG9jLnBhcmVudCxcbiAgICAgICAgLi4uZG9jLnZlcnNpb24sXG4gICAgICAgIGNyZWF0ZWRBdDogZG9jLmNyZWF0ZWRBdCxcbiAgICAgICAgdXBkYXRlZEF0OiBkb2MudXBkYXRlZEF0LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZG9jXG4gICAgfSksXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJxdWVyeURyYWZ0cyIsImNvbGxlY3Rpb24iLCJsaW1pdCIsImxvY2FsZSIsInBhZ2UiLCJwYWdpbmF0aW9uIiwicmVxIiwic29ydCIsIndoZXJlIiwiY29sbGVjdGlvbkNvbmZpZyIsInBheWxvYWQiLCJjb2xsZWN0aW9ucyIsImNvbmZpZyIsInRhYmxlTmFtZSIsInRvU25ha2VDYXNlIiwiZmllbGRzIiwiYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyIsImNvbWJpbmVkV2hlcmUiLCJjb21iaW5lUXVlcmllcyIsImxhdGVzdCIsImVxdWFscyIsInJlc3VsdCIsImZpbmRNYW55IiwiYWRhcHRlciIsImRvY3MiLCJtYXAiLCJkb2MiLCJpZCIsInBhcmVudCIsInZlcnNpb24iLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBUWFBOzs7ZUFBQUE7OzswQkFOb0M7MEJBQ0o7b0VBQ3JCOzBCQUVDOzs7Ozs7QUFFbEIsTUFBTUEsY0FBMkIsZUFBZUEsWUFBWSxFQUNqRUMsVUFBVSxFQUNWQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTkMsT0FBTyxDQUFDLEVBQ1JDLFVBQVUsRUFDVkMsTUFBTSxDQUFDLENBQW1CLEVBQzFCQyxJQUFJLEVBQ0pDLEtBQUssRUFDTjtJQUNDLE1BQU1DLG1CQUE4QyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDVixXQUFXLENBQUNXLE1BQU07SUFDL0YsTUFBTUMsWUFBWSxDQUFDLENBQUMsRUFBRUMsSUFBQUEsb0JBQVcsRUFBQ2IsWUFBWSxFQUFFLENBQUM7SUFDakQsTUFBTWMsU0FBU0MsSUFBQUEsc0NBQTRCLEVBQUNQO0lBRTVDLE1BQU1RLGdCQUFnQkMsSUFBQUEsd0JBQWMsRUFBQztRQUFFQyxRQUFRO1lBQUVDLFFBQVE7UUFBSztJQUFFLEdBQUdaO0lBRW5FLE1BQU1hLFNBQVMsTUFBTUMsSUFBQUEsa0JBQVEsRUFBQztRQUM1QkMsU0FBUyxJQUFJO1FBQ2JSO1FBQ0FiO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FNO1FBQ0FMLE9BQU9TO0lBQ1Q7SUFFQSxPQUFPO1FBQ0wsR0FBR0ksTUFBTTtRQUNURyxNQUFNSCxPQUFPRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDQztZQUNyQiw2Q0FBNkM7WUFDN0NBLE1BQU07Z0JBQ0pDLElBQUlELElBQUlFLE1BQU07Z0JBQ2QsR0FBR0YsSUFBSUcsT0FBTztnQkFDZEMsV0FBV0osSUFBSUksU0FBUztnQkFDeEJDLFdBQVdMLElBQUlLLFNBQVM7WUFDMUI7WUFFQSxPQUFPTDtRQUNUO0lBQ0Y7QUFDRiJ9
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWVyeURyYWZ0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0LCBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgdHlwZSBRdWVyeURyYWZ0cywgY29tYmluZVF1ZXJpZXMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHsgYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyB9IGZyb20gJ3BheWxvYWQvdmVyc2lvbnMnXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHsgZmluZE1hbnkgfSBmcm9tICcuL2ZpbmQvZmluZE1hbnknXG5cbmV4cG9ydCBjb25zdCBxdWVyeURyYWZ0czogUXVlcnlEcmFmdHMgPSBhc3luYyBmdW5jdGlvbiBxdWVyeURyYWZ0cyh7XG4gIGNvbGxlY3Rpb24sXG4gIGxpbWl0LFxuICBsb2NhbGUsXG4gIHBhZ2UgPSAxLFxuICBwYWdpbmF0aW9uLFxuICByZXEgPSB7fSBhcyBQYXlsb2FkUmVxdWVzdCxcbiAgc29ydCxcbiAgd2hlcmUsXG59KSB7XG4gIGNvbnN0IGNvbGxlY3Rpb25Db25maWc6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgPSB0aGlzLnBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvbl0uY29uZmlnXG4gIGNvbnN0IHRhYmxlTmFtZSA9IGBfJHt0b1NuYWtlQ2FzZShjb2xsZWN0aW9uKX1fdmBcbiAgY29uc3QgZmllbGRzID0gYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb2xsZWN0aW9uQ29uZmlnKVxuXG4gIGNvbnN0IGNvbWJpbmVkV2hlcmUgPSBjb21iaW5lUXVlcmllcyh7IGxhdGVzdDogeyBlcXVhbHM6IHRydWUgfSB9LCB3aGVyZSlcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaW5kTWFueSh7XG4gICAgYWRhcHRlcjogdGhpcyxcbiAgICBmaWVsZHMsXG4gICAgbGltaXQsXG4gICAgbG9jYWxlLFxuICAgIHBhZ2UsXG4gICAgcGFnaW5hdGlvbixcbiAgICByZXEsXG4gICAgc29ydCxcbiAgICB0YWJsZU5hbWUsXG4gICAgd2hlcmU6IGNvbWJpbmVkV2hlcmUsXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN1bHQsXG4gICAgZG9jczogcmVzdWx0LmRvY3MubWFwKChkb2MpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgZG9jID0ge1xuICAgICAgICBpZDogZG9jLnBhcmVudCxcbiAgICAgICAgLi4uZG9jLnZlcnNpb24sXG4gICAgICAgIGNyZWF0ZWRBdDogZG9jLmNyZWF0ZWRBdCxcbiAgICAgICAgdXBkYXRlZEF0OiBkb2MudXBkYXRlZEF0LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZG9jXG4gICAgfSksXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjb21iaW5lUXVlcmllcyIsImJ1aWxkVmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMiLCJ0b1NuYWtlQ2FzZSIsImZpbmRNYW55IiwicXVlcnlEcmFmdHMiLCJjb2xsZWN0aW9uIiwibGltaXQiLCJsb2NhbGUiLCJwYWdlIiwicGFnaW5hdGlvbiIsInJlcSIsInNvcnQiLCJ3aGVyZSIsImNvbGxlY3Rpb25Db25maWciLCJwYXlsb2FkIiwiY29sbGVjdGlvbnMiLCJjb25maWciLCJ0YWJsZU5hbWUiLCJmaWVsZHMiLCJjb21iaW5lZFdoZXJlIiwibGF0ZXN0IiwiZXF1YWxzIiwicmVzdWx0IiwiYWRhcHRlciIsImRvY3MiLCJtYXAiLCJkb2MiLCJpZCIsInBhcmVudCIsInZlcnNpb24iLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiXSwibWFwcGluZ3MiOiJBQUVBLFNBQTJCQSxjQUFjLFFBQVEsbUJBQWtCO0FBQ25FLFNBQVNDLDRCQUE0QixRQUFRLG1CQUFrQjtBQUMvRCxPQUFPQyxpQkFBaUIsZ0JBQWU7QUFFdkMsU0FBU0MsUUFBUSxRQUFRLGtCQUFpQjtBQUUxQyxPQUFPLE1BQU1DLGNBQTJCLGVBQWVBLFlBQVksRUFDakVDLFVBQVUsRUFDVkMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLE9BQU8sQ0FBQyxFQUNSQyxVQUFVLEVBQ1ZDLE1BQU0sQ0FBQyxDQUFtQixFQUMxQkMsSUFBSSxFQUNKQyxLQUFLLEVBQ047SUFDQyxNQUFNQyxtQkFBOEMsSUFBSSxDQUFDQyxPQUFPLENBQUNDLFdBQVcsQ0FBQ1YsV0FBVyxDQUFDVyxNQUFNO0lBQy9GLE1BQU1DLFlBQVksQ0FBQyxDQUFDLEVBQUVmLFlBQVlHLFlBQVksRUFBRSxDQUFDO0lBQ2pELE1BQU1hLFNBQVNqQiw2QkFBNkJZO0lBRTVDLE1BQU1NLGdCQUFnQm5CLGVBQWU7UUFBRW9CLFFBQVE7WUFBRUMsUUFBUTtRQUFLO0lBQUUsR0FBR1Q7SUFFbkUsTUFBTVUsU0FBUyxNQUFNbkIsU0FBUztRQUM1Qm9CLFNBQVMsSUFBSTtRQUNiTDtRQUNBWjtRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBTTtRQUNBTCxPQUFPTztJQUNUO0lBRUEsT0FBTztRQUNMLEdBQUdHLE1BQU07UUFDVEUsTUFBTUYsT0FBT0UsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0M7WUFDckIsNkNBQTZDO1lBQzdDQSxNQUFNO2dCQUNKQyxJQUFJRCxJQUFJRSxNQUFNO2dCQUNkLEdBQUdGLElBQUlHLE9BQU87Z0JBQ2RDLFdBQVdKLElBQUlJLFNBQVM7Z0JBQ3hCQyxXQUFXTCxJQUFJSyxTQUFTO1lBQzFCO1lBRUEsT0FBT0w7UUFDVDtJQUNGO0FBQ0YsRUFBQyJ9