@payloadcms/drizzle 3.59.0-internal.ff6711a → 3.59.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.
@@ -177,7 +177,7 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
177
177
  } else if (selectMode === 'include' && typeof blocksSelect[block.slug] === 'undefined' || selectMode === 'exclude' && blocksSelect[block.slug] === false) {
178
178
  blockSelect = {};
179
179
  blockSelectMode = 'include';
180
- } else if (selectMode === 'include' && blocksSelect[block.slug] === true) {
180
+ } else if (selectMode === 'include' && Boolean(blocksSelect[block.slug])) {
181
181
  blockSelect = true;
182
182
  }
183
183
  }
@@ -526,7 +526,7 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
526
526
  args.columns[name] = false;
527
527
  let shouldSelect = false;
528
528
  if (select || selectAllOnCurrentLevel) {
529
- if (selectAllOnCurrentLevel || selectMode === 'include' && select[field.name] === true || selectMode === 'exclude' && typeof select[field.name] === 'undefined') {
529
+ if (selectAllOnCurrentLevel || selectMode === 'include' && Boolean(select[field.name]) || selectMode === 'exclude' && typeof select[field.name] === 'undefined') {
530
530
  shouldSelect = true;
531
531
  }
532
532
  } else {
@@ -577,7 +577,7 @@ export const traverseFields = ({ _locales, adapter, collectionSlug, currentArgs,
577
577
  if (!select && !selectAllOnCurrentLevel) {
578
578
  break;
579
579
  }
580
- if (selectAllOnCurrentLevel || selectMode === 'include' && select[field.name] === true || selectMode === 'exclude' && typeof select[field.name] === 'undefined') {
580
+ if (selectAllOnCurrentLevel || selectMode === 'include' && Boolean(select[field.name]) || selectMode === 'exclude' && typeof select[field.name] === 'undefined') {
581
581
  const fieldPath = `${path}${field.name}`;
582
582
  if ((isFieldLocalized || parentIsLocalized) && _locales) {
583
583
  _locales.columns[fieldPath] = true;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { SQLiteSelect, SQLiteSelectBase } from 'drizzle-orm/sqlite-core'\n\nimport { and, asc, count, desc, eq, getTableName, or, sql } from 'drizzle-orm'\nimport {\n appendVersionToQueryKey,\n buildVersionCollectionFields,\n combineQueries,\n type FlattenedField,\n getFieldByPath,\n getQueryDraftsSort,\n type JoinQuery,\n type SelectMode,\n type SelectType,\n type Where,\n} from 'payload'\nimport { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\nimport { buildQuery } from '../queries/buildQuery.js'\nimport { getTableAlias } from '../queries/getTableAlias.js'\nimport { operatorMap } from '../queries/operatorMap.js'\nimport { getArrayRelationName } from '../utilities/getArrayRelationName.js'\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { rawConstraint } from '../utilities/rawConstraint.js'\nimport {\n InternalBlockTableNameIndex,\n resolveBlockTableName,\n} from '../utilities/validateExistingBlockIsIdentical.js'\n\nconst flattenAllWherePaths = (where: Where, paths: { path: string; ref: any }[]) => {\n for (const k in where) {\n if (['AND', 'OR'].includes(k.toUpperCase())) {\n if (Array.isArray(where[k])) {\n for (const whereField of where[k]) {\n flattenAllWherePaths(whereField, paths)\n }\n }\n } else {\n // TODO: explore how to support arrays/relationship querying.\n paths.push({ path: k.split('.').join('_'), ref: where })\n }\n }\n}\n\nconst buildSQLWhere = (where: Where, alias: string) => {\n for (const k in where) {\n if (['AND', 'OR'].includes(k.toUpperCase())) {\n if (Array.isArray(where[k])) {\n const op = 'AND' === k.toUpperCase() ? and : or\n const accumulated = []\n for (const whereField of where[k]) {\n accumulated.push(buildSQLWhere(whereField, alias))\n }\n return op(...accumulated)\n }\n } else {\n const payloadOperator = Object.keys(where[k])[0]\n\n const value = where[k][payloadOperator]\n if (payloadOperator === '$raw') {\n return sql.raw(value)\n }\n\n return operatorMap[payloadOperator](sql.raw(`\"${alias}\".\"${k.split('.').join('_')}\"`), value)\n }\n }\n}\n\ntype SQLSelect = SQLiteSelectBase<any, any, any, any>\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: DrizzleAdapter\n collectionSlug?: string\n currentArgs: Result\n currentTableName: string\n depth?: number\n draftsEnabled?: boolean\n fields: FlattenedField[]\n joinQuery: JoinQuery\n joins?: BuildQueryJoinAliases\n locale?: string\n parentIsLocalized?: boolean\n path: string\n select?: SelectType\n selectAllOnCurrentLevel?: boolean\n selectMode?: SelectMode\n tablePath: string\n topLevelArgs: Record<string, unknown>\n topLevelTableName: string\n versions?: boolean\n withTabledFields: {\n numbers?: boolean\n rels?: boolean\n texts?: boolean\n }\n}\n\nexport const traverseFields = ({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n draftsEnabled,\n fields,\n joinQuery = {},\n joins,\n locale,\n parentIsLocalized = false,\n path,\n select,\n selectAllOnCurrentLevel = false,\n selectMode,\n tablePath,\n topLevelArgs,\n topLevelTableName,\n versions,\n withTabledFields,\n}: TraverseFieldArgs) => {\n fields.forEach((field) => {\n if (fieldIsVirtual(field)) {\n return\n }\n\n const isFieldLocalized = fieldShouldBeLocalized({\n field,\n parentIsLocalized,\n })\n\n // handle simple relationship\n if (\n depth > 0 &&\n (field.type === 'upload' || field.type === 'relationship') &&\n !field.hasMany &&\n typeof field.relationTo === 'string'\n ) {\n if (isFieldLocalized) {\n _locales.with[`${path}${field.name}`] = true\n } else {\n currentArgs.with[`${path}${field.name}`] = true\n }\n }\n\n switch (field.type) {\n case 'array': {\n const arraySelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && typeof arraySelect === 'undefined') ||\n (selectMode === 'exclude' && arraySelect === false)\n ) {\n break\n }\n }\n\n const withArray: Result = {\n columns:\n typeof arraySelect === 'object'\n ? {\n id: true,\n _order: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${tablePath}${toSnakeCase(field.name)}`,\n )\n\n if (typeof arraySelect === 'object') {\n if (adapter.tables[arrayTableName]._locale) {\n withArray.columns._locale = true\n }\n\n if (adapter.tables[arrayTableName]._uuid) {\n withArray.columns._uuid = true\n }\n }\n\n const arrayTableNameWithLocales = `${arrayTableName}${adapter.localesSuffix}`\n\n if (adapter.tables[arrayTableNameWithLocales]) {\n withArray.with._locales = {\n columns:\n typeof arraySelect === 'object'\n ? {\n _locale: true,\n }\n : {\n id: false,\n _parentID: false,\n },\n with: {},\n }\n }\n\n const relationName = getArrayRelationName({\n field,\n path: `${path}${field.name}`,\n tableName: arrayTableName,\n })\n\n currentArgs.with[relationName] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n draftsEnabled,\n fields: field.flattenedFields,\n joinQuery,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: '',\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withTabledFields,\n })\n\n if (\n typeof arraySelect === 'object' &&\n withArray.with._locales &&\n Object.keys(withArray.with._locales).length === 1\n ) {\n delete withArray.with._locales\n }\n\n break\n }\n\n case 'blocks': {\n const blocksSelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && !blocksSelect) ||\n (selectMode === 'exclude' && blocksSelect === false)\n ) {\n break\n }\n }\n\n if (adapter.blocksAsJSON) {\n if (select || selectAllOnCurrentLevel) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || parentIsLocalized) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n }\n\n break\n }\n\n ;(field.blockReferences ?? field.blocks).forEach((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n const blockKey = `_blocks_${block.slug}${!block[InternalBlockTableNameIndex] ? '' : `_${block[InternalBlockTableNameIndex]}`}`\n\n let blockSelect: boolean | SelectType | undefined\n\n let blockSelectMode = selectMode\n\n if (selectMode === 'include' && blocksSelect === true) {\n blockSelect = true\n }\n\n if (typeof blocksSelect === 'object') {\n if (typeof blocksSelect[block.slug] === 'object') {\n blockSelect = blocksSelect[block.slug]\n } else if (\n (selectMode === 'include' && typeof blocksSelect[block.slug] === 'undefined') ||\n (selectMode === 'exclude' && blocksSelect[block.slug] === false)\n ) {\n blockSelect = {}\n blockSelectMode = 'include'\n } else if (selectMode === 'include' && blocksSelect[block.slug] === true) {\n blockSelect = true\n }\n }\n\n if (!topLevelArgs[blockKey]) {\n const withBlock: Result = {\n columns:\n typeof blockSelect === 'object'\n ? {\n id: true,\n _order: true,\n _path: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const tableName = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`),\n )\n\n if (typeof blockSelect === 'object') {\n if (adapter.tables[tableName]._locale) {\n withBlock.columns._locale = true\n }\n\n if (adapter.tables[tableName]._uuid) {\n withBlock.columns._uuid = true\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.localesSuffix}`]) {\n withBlock.with._locales = {\n with: {},\n }\n\n if (typeof blockSelect === 'object') {\n withBlock.with._locales.columns = {\n _locale: true,\n }\n }\n }\n topLevelArgs.with[blockKey] = withBlock\n\n traverseFields({\n _locales: withBlock.with._locales,\n adapter,\n currentArgs: withBlock,\n currentTableName: tableName,\n depth,\n draftsEnabled,\n fields: block.flattenedFields,\n joinQuery,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: '',\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withTabledFields,\n })\n\n if (\n typeof blockSelect === 'object' &&\n withBlock.with._locales &&\n Object.keys(withBlock.with._locales.columns).length === 1\n ) {\n delete withBlock.with._locales\n }\n }\n })\n\n break\n }\n\n case 'group':\n case 'tab': {\n const fieldSelect = select?.[field.name]\n\n if (fieldSelect === false) {\n break\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n draftsEnabled,\n fields: field.flattenedFields,\n joinQuery,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${path}${field.name}_`,\n select: typeof fieldSelect === 'object' ? fieldSelect : undefined,\n selectAllOnCurrentLevel:\n selectAllOnCurrentLevel ||\n fieldSelect === true ||\n (selectMode === 'exclude' && typeof fieldSelect === 'undefined'),\n selectMode,\n tablePath: `${tablePath}${toSnakeCase(field.name)}_`,\n topLevelArgs,\n topLevelTableName,\n versions,\n withTabledFields,\n })\n\n break\n }\n case 'join': {\n // when `joinsQuery` is false, do not join\n if (joinQuery === false) {\n break\n }\n\n if (\n (select && selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n\n const joinSchemaPath = `${path.replaceAll('_', '.')}${field.name}`\n\n if (joinQuery[joinSchemaPath] === false) {\n break\n }\n\n const {\n count: shouldCount = false,\n limit: limitArg = field.defaultLimit ?? 10,\n page,\n sort = field.defaultSort,\n where,\n } = joinQuery[joinSchemaPath] || {}\n let limit = limitArg\n\n if (limit !== 0) {\n // get an additional document and slice it later to determine if there is a next page\n limit += 1\n }\n\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n\n const db = adapter.drizzle as LibSQLDatabase\n\n if (Array.isArray(field.collection)) {\n let currentQuery: null | SQLSelect = null\n const onPath = field.on.split('.').join('_')\n\n if (Array.isArray(sort)) {\n throw new Error('Not implemented')\n }\n\n let sanitizedSort = sort\n\n if (!sanitizedSort) {\n if (\n field.collection.some((collection) =>\n adapter.payload.collections[collection].config.fields.some(\n (f) => f.type === 'date' && f.name === 'createdAt',\n ),\n )\n ) {\n sanitizedSort = '-createdAt'\n } else {\n sanitizedSort = 'id'\n }\n }\n\n const sortOrder = sanitizedSort.startsWith('-') ? desc : asc\n sanitizedSort = sanitizedSort.replace('-', '')\n\n const sortPath = sanitizedSort.split('.').join('_')\n\n const wherePaths: { path: string; ref: any }[] = []\n\n if (where) {\n flattenAllWherePaths(where, wherePaths)\n }\n\n for (const collection of field.collection) {\n const joinCollectionTableName = adapter.tableNameMap.get(toSnakeCase(collection))\n\n const table = adapter.tables[joinCollectionTableName]\n\n const sortColumn = table[sortPath]\n\n const selectFields = {\n id: adapter.tables[joinCollectionTableName].id,\n parent: sql`${adapter.tables[joinCollectionTableName][onPath]}`.as(onPath),\n relationTo: sql`${collection}`.as('relationTo'),\n sortPath: sql`${sortColumn ? sortColumn : null}`.as('sortPath'),\n }\n\n const collectionQueryWhere: any[] = []\n // Select for WHERE and Fallback NULL\n for (const { path, ref } of wherePaths) {\n const collectioConfig = adapter.payload.collections[collection].config\n const field = getFieldByPath({ fields: collectioConfig.flattenedFields, path })\n\n if (field && field.field.type === 'select' && field.field.hasMany) {\n let tableName = adapter.tableNameMap.get(\n `${toSnakeCase(collection)}_${toSnakeCase(path)}`,\n )\n let parentTable = getTableName(table)\n\n if (adapter.schemaName) {\n tableName = `\"${adapter.schemaName}\".\"${tableName}\"`\n parentTable = `\"${adapter.schemaName}\".\"${parentTable}\"`\n }\n\n if (adapter.name === 'postgres') {\n selectFields[path] = sql\n .raw(\n `(select jsonb_agg(${tableName}.value) from ${tableName} where ${tableName}.parent_id = ${parentTable}.id)`,\n )\n .as(path)\n } else {\n selectFields[path] = sql\n .raw(\n `(select json_group_array(${tableName}.value) from ${tableName} where ${tableName}.parent_id = ${parentTable}.id)`,\n )\n .as(path)\n }\n\n const constraint = ref[path]\n const operator = Object.keys(constraint)[0]\n const value: any = Object.values(constraint)[0]\n\n const query = adapter.createJSONQuery({\n column: `\"${path}\"`,\n operator,\n pathSegments: [field.field.name],\n table: parentTable,\n value,\n })\n ref[path] = { $raw: query }\n } else if (adapter.tables[joinCollectionTableName][path]) {\n selectFields[path] = sql`${adapter.tables[joinCollectionTableName][path]}`.as(path)\n // Allow to filter by collectionSlug\n } else if (path !== 'relationTo') {\n selectFields[path] = sql`null`.as(path)\n }\n }\n\n let query: any = db.select(selectFields).from(adapter.tables[joinCollectionTableName])\n if (collectionQueryWhere.length) {\n query = query.where(and(...collectionQueryWhere))\n }\n if (currentQuery === null) {\n currentQuery = query as unknown as SQLSelect\n } else {\n currentQuery = currentQuery.unionAll(query) as SQLSelect\n }\n }\n\n const subQueryAlias = `${columnName}_subquery`\n\n let sqlWhere = eq(\n sql.raw(`\"${currentTableName}\".\"id\"`),\n sql.raw(`\"${subQueryAlias}\".\"${onPath}\"`),\n )\n\n if (where && Object.keys(where).length > 0) {\n sqlWhere = and(sqlWhere, buildSQLWhere(where, subQueryAlias))\n }\n\n if (shouldCount) {\n currentArgs.extras[`${columnName}_count`] = sql`${db\n .select({ count: count() })\n .from(sql`${currentQuery.as(subQueryAlias)}`)\n .where(sqlWhere)}`.as(`${columnName}_count`)\n }\n\n currentQuery = currentQuery.orderBy(sortOrder(sql`\"sortPath\"`)) as SQLSelect\n\n if (page && limit !== 0) {\n const offset = (page - 1) * limit\n if (offset > 0) {\n currentQuery = currentQuery.offset(offset) as SQLSelect\n }\n }\n\n if (limit) {\n currentQuery = currentQuery.limit(limit) as SQLSelect\n }\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n id: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".\"id\"`),\n relationTo: sql.raw(`\"${subQueryAlias}\".\"relationTo\"`),\n }),\n })\n .from(sql`${currentQuery.as(subQueryAlias)}`)\n .where(sqlWhere)}`.as(columnName)\n } else {\n const useDrafts =\n (versions || draftsEnabled) &&\n Boolean(adapter.payload.collections[field.collection].config.versions.drafts)\n\n const fields = useDrafts\n ? buildVersionCollectionFields(\n adapter.payload.config,\n adapter.payload.collections[field.collection].config,\n true,\n )\n : adapter.payload.collections[field.collection].config.flattenedFields\n\n const joinCollectionTableName = adapter.tableNameMap.get(\n useDrafts\n ? `_${toSnakeCase(field.collection)}${adapter.versionsSuffix}`\n : toSnakeCase(field.collection),\n )\n\n const joins: BuildQueryJoinAliases = []\n\n const currentIDColumn = versions\n ? adapter.tables[currentTableName].parent\n : adapter.tables[currentTableName].id\n\n let joinQueryWhere: Where\n\n const currentIDRaw = sql.raw(\n `\"${getNameFromDrizzleTable(currentIDColumn.table)}\".\"${currentIDColumn.name}\"`,\n )\n\n if (Array.isArray(field.targetField.relationTo)) {\n joinQueryWhere = {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: rawConstraint(currentIDRaw),\n },\n },\n }\n } else {\n joinQueryWhere = {\n [field.on]: {\n equals: rawConstraint(currentIDRaw),\n },\n }\n }\n\n if (where && Object.keys(where).length) {\n joinQueryWhere = {\n and: [joinQueryWhere, where],\n }\n }\n\n if (useDrafts) {\n joinQueryWhere = combineQueries(appendVersionToQueryKey(joinQueryWhere), {\n latest: { equals: true },\n })\n }\n\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n\n const subQueryAlias = `${columnName}_alias`\n\n const { newAliasTable } = getTableAlias({\n adapter,\n tableName: joinCollectionTableName,\n })\n\n const {\n orderBy,\n selectFields,\n where: subQueryWhere,\n } = buildQuery({\n adapter,\n aliasTable: newAliasTable,\n fields,\n joins,\n locale,\n parentIsLocalized,\n selectLocale: true,\n sort: useDrafts\n ? getQueryDraftsSort({\n collectionConfig: adapter.payload.collections[field.collection].config,\n sort,\n })\n : sort,\n tableName: joinCollectionTableName,\n where: joinQueryWhere,\n })\n\n for (let key in selectFields) {\n const val = selectFields[key]\n\n if (val.table && getNameFromDrizzleTable(val.table) === joinCollectionTableName) {\n delete selectFields[key]\n key = key.split('.').pop()\n selectFields[key] = newAliasTable[key]\n }\n }\n\n if (useDrafts) {\n selectFields.parent = newAliasTable.parent\n }\n\n let query: SQLiteSelect = db\n .select(selectFields as any)\n .from(newAliasTable)\n .where(subQueryWhere)\n .orderBy(() => orderBy.map(({ column, order }) => order(column)))\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n query = query[type ?? 'leftJoin'](table, condition)\n })\n\n if (page && limit !== 0) {\n const offset = (page - 1) * limit - 1\n if (offset > 0) {\n query = query.offset(offset)\n }\n }\n\n if (limit !== 0) {\n query = query.limit(limit)\n }\n\n const subQuery = query.as(subQueryAlias)\n\n if (shouldCount) {\n let countSubquery: SQLiteSelect = db\n .select(selectFields as any)\n\n .from(newAliasTable)\n .where(subQueryWhere)\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n countSubquery = countSubquery[type ?? 'leftJoin'](table, condition)\n })\n\n currentArgs.extras[`${columnName}_count`] = sql`${db\n .select({\n count: count(),\n })\n .from(sql`${countSubquery.as(`${subQueryAlias}_count_subquery`)}`)}`.as(\n `${subQueryAlias}_count`,\n )\n }\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n result: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".${useDrafts ? 'parent_id' : 'id'}`),\n ...(selectFields._locale && {\n locale: sql.raw(`\"${subQueryAlias}\".${selectFields._locale.name}`),\n }),\n }),\n })\n .from(sql`${subQuery}`)}`.as(subQueryAlias)\n }\n\n break\n }\n\n case 'point': {\n if (adapter.name === 'sqlite') {\n break\n }\n\n const args = isFieldLocalized ? _locales : currentArgs\n if (!args.columns) {\n args.columns = {}\n }\n\n if (!args.extras) {\n args.extras = {}\n }\n\n const name = `${path}${field.name}`\n\n // Drizzle handles that poorly. See https://github.com/drizzle-team/drizzle-orm/issues/2526\n // Additionally, this way we format the column value straight in the database using ST_AsGeoJSON\n args.columns[name] = false\n\n let shouldSelect = false\n\n if (select || selectAllOnCurrentLevel) {\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n shouldSelect = true\n }\n } else {\n shouldSelect = true\n }\n const tableName = fieldShouldBeLocalized({ field, parentIsLocalized })\n ? `${currentTableName}${adapter.localesSuffix}`\n : currentTableName\n\n if (shouldSelect) {\n args.extras[name] = sql\n .raw(`ST_AsGeoJSON(\"${adapter.tables[tableName][name].name}\")::jsonb`)\n .as(name)\n }\n break\n }\n\n case 'select': {\n if (select && !selectAllOnCurrentLevel) {\n if (\n (selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n }\n\n if (field.hasMany) {\n const withSelect: Result = {\n columns: {\n id: false,\n order: false,\n parent: false,\n },\n orderBy: ({ order }, { asc }) => [asc(order)],\n }\n\n currentArgs.with[`${path}${field.name}`] = withSelect\n break\n }\n\n if (select || selectAllOnCurrentLevel) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || parentIsLocalized) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n }\n\n break\n }\n\n default: {\n if (!select && !selectAllOnCurrentLevel) {\n break\n }\n\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && select[field.name] === true) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || parentIsLocalized) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n\n if (\n !withTabledFields.rels &&\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (!withTabledFields.numbers && field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (!withTabledFields.texts && field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\n break\n }\n }\n })\n\n return topLevelArgs\n}\n"],"names":["and","asc","count","desc","eq","getTableName","or","sql","appendVersionToQueryKey","buildVersionCollectionFields","combineQueries","getFieldByPath","getQueryDraftsSort","fieldIsVirtual","fieldShouldBeLocalized","toSnakeCase","buildQuery","getTableAlias","operatorMap","getArrayRelationName","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","InternalBlockTableNameIndex","resolveBlockTableName","flattenAllWherePaths","where","paths","k","includes","toUpperCase","Array","isArray","whereField","push","path","split","join","ref","buildSQLWhere","alias","op","accumulated","payloadOperator","Object","keys","value","raw","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","draftsEnabled","fields","joinQuery","joins","locale","parentIsLocalized","select","selectAllOnCurrentLevel","selectMode","tablePath","topLevelArgs","topLevelTableName","versions","withTabledFields","forEach","field","isFieldLocalized","type","hasMany","relationTo","with","name","arraySelect","withArray","columns","id","_order","_parentID","orderBy","arrayTableName","tableNameMap","get","tables","_locale","_uuid","arrayTableNameWithLocales","localesSuffix","relationName","tableName","flattenedFields","localized","undefined","length","blocksSelect","blocksAsJSON","fieldPath","blockReferences","blocks","_block","block","payload","blockKey","slug","blockSelect","blockSelectMode","withBlock","_path","fieldSelect","joinSchemaPath","replaceAll","shouldCount","limit","limitArg","defaultLimit","page","sort","defaultSort","columnName","db","drizzle","collection","currentQuery","onPath","on","Error","sanitizedSort","some","collections","config","f","sortOrder","startsWith","replace","sortPath","wherePaths","joinCollectionTableName","table","sortColumn","selectFields","parent","as","collectionQueryWhere","collectioConfig","parentTable","schemaName","constraint","operator","values","query","createJSONQuery","column","pathSegments","$raw","from","unionAll","subQueryAlias","sqlWhere","extras","offset","useDrafts","Boolean","drafts","versionsSuffix","currentIDColumn","joinQueryWhere","currentIDRaw","targetField","equals","latest","newAliasTable","subQueryWhere","aliasTable","selectLocale","collectionConfig","key","val","pop","map","order","$dynamic","condition","subQuery","countSubquery","result","args","shouldSelect","withSelect","rels","numbers","texts"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/find/traverseFields.ts"],"sourcesContent":["import type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { SQLiteSelect, SQLiteSelectBase } from 'drizzle-orm/sqlite-core'\n\nimport { and, asc, count, desc, eq, getTableName, or, sql } from 'drizzle-orm'\nimport {\n appendVersionToQueryKey,\n buildVersionCollectionFields,\n combineQueries,\n type FlattenedField,\n getFieldByPath,\n getQueryDraftsSort,\n type JoinQuery,\n type SelectMode,\n type SelectType,\n type Where,\n} from 'payload'\nimport { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js'\nimport type { Result } from './buildFindManyArgs.js'\n\nimport { buildQuery } from '../queries/buildQuery.js'\nimport { getTableAlias } from '../queries/getTableAlias.js'\nimport { operatorMap } from '../queries/operatorMap.js'\nimport { getArrayRelationName } from '../utilities/getArrayRelationName.js'\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { rawConstraint } from '../utilities/rawConstraint.js'\nimport {\n InternalBlockTableNameIndex,\n resolveBlockTableName,\n} from '../utilities/validateExistingBlockIsIdentical.js'\n\nconst flattenAllWherePaths = (where: Where, paths: { path: string; ref: any }[]) => {\n for (const k in where) {\n if (['AND', 'OR'].includes(k.toUpperCase())) {\n if (Array.isArray(where[k])) {\n for (const whereField of where[k]) {\n flattenAllWherePaths(whereField, paths)\n }\n }\n } else {\n // TODO: explore how to support arrays/relationship querying.\n paths.push({ path: k.split('.').join('_'), ref: where })\n }\n }\n}\n\nconst buildSQLWhere = (where: Where, alias: string) => {\n for (const k in where) {\n if (['AND', 'OR'].includes(k.toUpperCase())) {\n if (Array.isArray(where[k])) {\n const op = 'AND' === k.toUpperCase() ? and : or\n const accumulated = []\n for (const whereField of where[k]) {\n accumulated.push(buildSQLWhere(whereField, alias))\n }\n return op(...accumulated)\n }\n } else {\n const payloadOperator = Object.keys(where[k])[0]\n\n const value = where[k][payloadOperator]\n if (payloadOperator === '$raw') {\n return sql.raw(value)\n }\n\n return operatorMap[payloadOperator](sql.raw(`\"${alias}\".\"${k.split('.').join('_')}\"`), value)\n }\n }\n}\n\ntype SQLSelect = SQLiteSelectBase<any, any, any, any>\n\ntype TraverseFieldArgs = {\n _locales: Result\n adapter: DrizzleAdapter\n collectionSlug?: string\n currentArgs: Result\n currentTableName: string\n depth?: number\n draftsEnabled?: boolean\n fields: FlattenedField[]\n joinQuery: JoinQuery\n joins?: BuildQueryJoinAliases\n locale?: string\n parentIsLocalized?: boolean\n path: string\n select?: SelectType\n selectAllOnCurrentLevel?: boolean\n selectMode?: SelectMode\n tablePath: string\n topLevelArgs: Record<string, unknown>\n topLevelTableName: string\n versions?: boolean\n withTabledFields: {\n numbers?: boolean\n rels?: boolean\n texts?: boolean\n }\n}\n\nexport const traverseFields = ({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n draftsEnabled,\n fields,\n joinQuery = {},\n joins,\n locale,\n parentIsLocalized = false,\n path,\n select,\n selectAllOnCurrentLevel = false,\n selectMode,\n tablePath,\n topLevelArgs,\n topLevelTableName,\n versions,\n withTabledFields,\n}: TraverseFieldArgs) => {\n fields.forEach((field) => {\n if (fieldIsVirtual(field)) {\n return\n }\n\n const isFieldLocalized = fieldShouldBeLocalized({\n field,\n parentIsLocalized,\n })\n\n // handle simple relationship\n if (\n depth > 0 &&\n (field.type === 'upload' || field.type === 'relationship') &&\n !field.hasMany &&\n typeof field.relationTo === 'string'\n ) {\n if (isFieldLocalized) {\n _locales.with[`${path}${field.name}`] = true\n } else {\n currentArgs.with[`${path}${field.name}`] = true\n }\n }\n\n switch (field.type) {\n case 'array': {\n const arraySelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && typeof arraySelect === 'undefined') ||\n (selectMode === 'exclude' && arraySelect === false)\n ) {\n break\n }\n }\n\n const withArray: Result = {\n columns:\n typeof arraySelect === 'object'\n ? {\n id: true,\n _order: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${tablePath}${toSnakeCase(field.name)}`,\n )\n\n if (typeof arraySelect === 'object') {\n if (adapter.tables[arrayTableName]._locale) {\n withArray.columns._locale = true\n }\n\n if (adapter.tables[arrayTableName]._uuid) {\n withArray.columns._uuid = true\n }\n }\n\n const arrayTableNameWithLocales = `${arrayTableName}${adapter.localesSuffix}`\n\n if (adapter.tables[arrayTableNameWithLocales]) {\n withArray.with._locales = {\n columns:\n typeof arraySelect === 'object'\n ? {\n _locale: true,\n }\n : {\n id: false,\n _parentID: false,\n },\n with: {},\n }\n }\n\n const relationName = getArrayRelationName({\n field,\n path: `${path}${field.name}`,\n tableName: arrayTableName,\n })\n\n currentArgs.with[relationName] = withArray\n\n traverseFields({\n _locales: withArray.with._locales,\n adapter,\n currentArgs: withArray,\n currentTableName: arrayTableName,\n depth,\n draftsEnabled,\n fields: field.flattenedFields,\n joinQuery,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: '',\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withTabledFields,\n })\n\n if (\n typeof arraySelect === 'object' &&\n withArray.with._locales &&\n Object.keys(withArray.with._locales).length === 1\n ) {\n delete withArray.with._locales\n }\n\n break\n }\n\n case 'blocks': {\n const blocksSelect = selectAllOnCurrentLevel ? true : select?.[field.name]\n\n if (select) {\n if (\n (selectMode === 'include' && !blocksSelect) ||\n (selectMode === 'exclude' && blocksSelect === false)\n ) {\n break\n }\n }\n\n if (adapter.blocksAsJSON) {\n if (select || selectAllOnCurrentLevel) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || parentIsLocalized) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n }\n\n break\n }\n\n ;(field.blockReferences ?? field.blocks).forEach((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n const blockKey = `_blocks_${block.slug}${!block[InternalBlockTableNameIndex] ? '' : `_${block[InternalBlockTableNameIndex]}`}`\n\n let blockSelect: boolean | SelectType | undefined\n\n let blockSelectMode = selectMode\n\n if (selectMode === 'include' && blocksSelect === true) {\n blockSelect = true\n }\n\n if (typeof blocksSelect === 'object') {\n if (typeof blocksSelect[block.slug] === 'object') {\n blockSelect = blocksSelect[block.slug]\n } else if (\n (selectMode === 'include' && typeof blocksSelect[block.slug] === 'undefined') ||\n (selectMode === 'exclude' && blocksSelect[block.slug] === false)\n ) {\n blockSelect = {}\n blockSelectMode = 'include'\n } else if (selectMode === 'include' && Boolean(blocksSelect[block.slug])) {\n blockSelect = true\n }\n }\n\n if (!topLevelArgs[blockKey]) {\n const withBlock: Result = {\n columns:\n typeof blockSelect === 'object'\n ? {\n id: true,\n _order: true,\n _path: true,\n }\n : {\n _parentID: false,\n },\n orderBy: ({ _order }, { asc }) => [asc(_order)],\n with: {},\n }\n\n const tableName = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`),\n )\n\n if (typeof blockSelect === 'object') {\n if (adapter.tables[tableName]._locale) {\n withBlock.columns._locale = true\n }\n\n if (adapter.tables[tableName]._uuid) {\n withBlock.columns._uuid = true\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.localesSuffix}`]) {\n withBlock.with._locales = {\n with: {},\n }\n\n if (typeof blockSelect === 'object') {\n withBlock.with._locales.columns = {\n _locale: true,\n }\n }\n }\n topLevelArgs.with[blockKey] = withBlock\n\n traverseFields({\n _locales: withBlock.with._locales,\n adapter,\n currentArgs: withBlock,\n currentTableName: tableName,\n depth,\n draftsEnabled,\n fields: block.flattenedFields,\n joinQuery,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: '',\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n tablePath: '',\n topLevelArgs,\n topLevelTableName,\n withTabledFields,\n })\n\n if (\n typeof blockSelect === 'object' &&\n withBlock.with._locales &&\n Object.keys(withBlock.with._locales.columns).length === 1\n ) {\n delete withBlock.with._locales\n }\n }\n })\n\n break\n }\n\n case 'group':\n case 'tab': {\n const fieldSelect = select?.[field.name]\n\n if (fieldSelect === false) {\n break\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs,\n currentTableName,\n depth,\n draftsEnabled,\n fields: field.flattenedFields,\n joinQuery,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${path}${field.name}_`,\n select: typeof fieldSelect === 'object' ? fieldSelect : undefined,\n selectAllOnCurrentLevel:\n selectAllOnCurrentLevel ||\n fieldSelect === true ||\n (selectMode === 'exclude' && typeof fieldSelect === 'undefined'),\n selectMode,\n tablePath: `${tablePath}${toSnakeCase(field.name)}_`,\n topLevelArgs,\n topLevelTableName,\n versions,\n withTabledFields,\n })\n\n break\n }\n case 'join': {\n // when `joinsQuery` is false, do not join\n if (joinQuery === false) {\n break\n }\n\n if (\n (select && selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n\n const joinSchemaPath = `${path.replaceAll('_', '.')}${field.name}`\n\n if (joinQuery[joinSchemaPath] === false) {\n break\n }\n\n const {\n count: shouldCount = false,\n limit: limitArg = field.defaultLimit ?? 10,\n page,\n sort = field.defaultSort,\n where,\n } = joinQuery[joinSchemaPath] || {}\n let limit = limitArg\n\n if (limit !== 0) {\n // get an additional document and slice it later to determine if there is a next page\n limit += 1\n }\n\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n\n const db = adapter.drizzle as LibSQLDatabase\n\n if (Array.isArray(field.collection)) {\n let currentQuery: null | SQLSelect = null\n const onPath = field.on.split('.').join('_')\n\n if (Array.isArray(sort)) {\n throw new Error('Not implemented')\n }\n\n let sanitizedSort = sort\n\n if (!sanitizedSort) {\n if (\n field.collection.some((collection) =>\n adapter.payload.collections[collection].config.fields.some(\n (f) => f.type === 'date' && f.name === 'createdAt',\n ),\n )\n ) {\n sanitizedSort = '-createdAt'\n } else {\n sanitizedSort = 'id'\n }\n }\n\n const sortOrder = sanitizedSort.startsWith('-') ? desc : asc\n sanitizedSort = sanitizedSort.replace('-', '')\n\n const sortPath = sanitizedSort.split('.').join('_')\n\n const wherePaths: { path: string; ref: any }[] = []\n\n if (where) {\n flattenAllWherePaths(where, wherePaths)\n }\n\n for (const collection of field.collection) {\n const joinCollectionTableName = adapter.tableNameMap.get(toSnakeCase(collection))\n\n const table = adapter.tables[joinCollectionTableName]\n\n const sortColumn = table[sortPath]\n\n const selectFields = {\n id: adapter.tables[joinCollectionTableName].id,\n parent: sql`${adapter.tables[joinCollectionTableName][onPath]}`.as(onPath),\n relationTo: sql`${collection}`.as('relationTo'),\n sortPath: sql`${sortColumn ? sortColumn : null}`.as('sortPath'),\n }\n\n const collectionQueryWhere: any[] = []\n // Select for WHERE and Fallback NULL\n for (const { path, ref } of wherePaths) {\n const collectioConfig = adapter.payload.collections[collection].config\n const field = getFieldByPath({ fields: collectioConfig.flattenedFields, path })\n\n if (field && field.field.type === 'select' && field.field.hasMany) {\n let tableName = adapter.tableNameMap.get(\n `${toSnakeCase(collection)}_${toSnakeCase(path)}`,\n )\n let parentTable = getTableName(table)\n\n if (adapter.schemaName) {\n tableName = `\"${adapter.schemaName}\".\"${tableName}\"`\n parentTable = `\"${adapter.schemaName}\".\"${parentTable}\"`\n }\n\n if (adapter.name === 'postgres') {\n selectFields[path] = sql\n .raw(\n `(select jsonb_agg(${tableName}.value) from ${tableName} where ${tableName}.parent_id = ${parentTable}.id)`,\n )\n .as(path)\n } else {\n selectFields[path] = sql\n .raw(\n `(select json_group_array(${tableName}.value) from ${tableName} where ${tableName}.parent_id = ${parentTable}.id)`,\n )\n .as(path)\n }\n\n const constraint = ref[path]\n const operator = Object.keys(constraint)[0]\n const value: any = Object.values(constraint)[0]\n\n const query = adapter.createJSONQuery({\n column: `\"${path}\"`,\n operator,\n pathSegments: [field.field.name],\n table: parentTable,\n value,\n })\n ref[path] = { $raw: query }\n } else if (adapter.tables[joinCollectionTableName][path]) {\n selectFields[path] = sql`${adapter.tables[joinCollectionTableName][path]}`.as(path)\n // Allow to filter by collectionSlug\n } else if (path !== 'relationTo') {\n selectFields[path] = sql`null`.as(path)\n }\n }\n\n let query: any = db.select(selectFields).from(adapter.tables[joinCollectionTableName])\n if (collectionQueryWhere.length) {\n query = query.where(and(...collectionQueryWhere))\n }\n if (currentQuery === null) {\n currentQuery = query as unknown as SQLSelect\n } else {\n currentQuery = currentQuery.unionAll(query) as SQLSelect\n }\n }\n\n const subQueryAlias = `${columnName}_subquery`\n\n let sqlWhere = eq(\n sql.raw(`\"${currentTableName}\".\"id\"`),\n sql.raw(`\"${subQueryAlias}\".\"${onPath}\"`),\n )\n\n if (where && Object.keys(where).length > 0) {\n sqlWhere = and(sqlWhere, buildSQLWhere(where, subQueryAlias))\n }\n\n if (shouldCount) {\n currentArgs.extras[`${columnName}_count`] = sql`${db\n .select({ count: count() })\n .from(sql`${currentQuery.as(subQueryAlias)}`)\n .where(sqlWhere)}`.as(`${columnName}_count`)\n }\n\n currentQuery = currentQuery.orderBy(sortOrder(sql`\"sortPath\"`)) as SQLSelect\n\n if (page && limit !== 0) {\n const offset = (page - 1) * limit\n if (offset > 0) {\n currentQuery = currentQuery.offset(offset) as SQLSelect\n }\n }\n\n if (limit) {\n currentQuery = currentQuery.limit(limit) as SQLSelect\n }\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n id: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".\"id\"`),\n relationTo: sql.raw(`\"${subQueryAlias}\".\"relationTo\"`),\n }),\n })\n .from(sql`${currentQuery.as(subQueryAlias)}`)\n .where(sqlWhere)}`.as(columnName)\n } else {\n const useDrafts =\n (versions || draftsEnabled) &&\n Boolean(adapter.payload.collections[field.collection].config.versions.drafts)\n\n const fields = useDrafts\n ? buildVersionCollectionFields(\n adapter.payload.config,\n adapter.payload.collections[field.collection].config,\n true,\n )\n : adapter.payload.collections[field.collection].config.flattenedFields\n\n const joinCollectionTableName = adapter.tableNameMap.get(\n useDrafts\n ? `_${toSnakeCase(field.collection)}${adapter.versionsSuffix}`\n : toSnakeCase(field.collection),\n )\n\n const joins: BuildQueryJoinAliases = []\n\n const currentIDColumn = versions\n ? adapter.tables[currentTableName].parent\n : adapter.tables[currentTableName].id\n\n let joinQueryWhere: Where\n\n const currentIDRaw = sql.raw(\n `\"${getNameFromDrizzleTable(currentIDColumn.table)}\".\"${currentIDColumn.name}\"`,\n )\n\n if (Array.isArray(field.targetField.relationTo)) {\n joinQueryWhere = {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: rawConstraint(currentIDRaw),\n },\n },\n }\n } else {\n joinQueryWhere = {\n [field.on]: {\n equals: rawConstraint(currentIDRaw),\n },\n }\n }\n\n if (where && Object.keys(where).length) {\n joinQueryWhere = {\n and: [joinQueryWhere, where],\n }\n }\n\n if (useDrafts) {\n joinQueryWhere = combineQueries(appendVersionToQueryKey(joinQueryWhere), {\n latest: { equals: true },\n })\n }\n\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n\n const subQueryAlias = `${columnName}_alias`\n\n const { newAliasTable } = getTableAlias({\n adapter,\n tableName: joinCollectionTableName,\n })\n\n const {\n orderBy,\n selectFields,\n where: subQueryWhere,\n } = buildQuery({\n adapter,\n aliasTable: newAliasTable,\n fields,\n joins,\n locale,\n parentIsLocalized,\n selectLocale: true,\n sort: useDrafts\n ? getQueryDraftsSort({\n collectionConfig: adapter.payload.collections[field.collection].config,\n sort,\n })\n : sort,\n tableName: joinCollectionTableName,\n where: joinQueryWhere,\n })\n\n for (let key in selectFields) {\n const val = selectFields[key]\n\n if (val.table && getNameFromDrizzleTable(val.table) === joinCollectionTableName) {\n delete selectFields[key]\n key = key.split('.').pop()\n selectFields[key] = newAliasTable[key]\n }\n }\n\n if (useDrafts) {\n selectFields.parent = newAliasTable.parent\n }\n\n let query: SQLiteSelect = db\n .select(selectFields as any)\n .from(newAliasTable)\n .where(subQueryWhere)\n .orderBy(() => orderBy.map(({ column, order }) => order(column)))\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n query = query[type ?? 'leftJoin'](table, condition)\n })\n\n if (page && limit !== 0) {\n const offset = (page - 1) * limit - 1\n if (offset > 0) {\n query = query.offset(offset)\n }\n }\n\n if (limit !== 0) {\n query = query.limit(limit)\n }\n\n const subQuery = query.as(subQueryAlias)\n\n if (shouldCount) {\n let countSubquery: SQLiteSelect = db\n .select(selectFields as any)\n\n .from(newAliasTable)\n .where(subQueryWhere)\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n countSubquery = countSubquery[type ?? 'leftJoin'](table, condition)\n })\n\n currentArgs.extras[`${columnName}_count`] = sql`${db\n .select({\n count: count(),\n })\n .from(sql`${countSubquery.as(`${subQueryAlias}_count_subquery`)}`)}`.as(\n `${subQueryAlias}_count`,\n )\n }\n\n currentArgs.extras[columnName] = sql`${db\n .select({\n result: jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".${useDrafts ? 'parent_id' : 'id'}`),\n ...(selectFields._locale && {\n locale: sql.raw(`\"${subQueryAlias}\".${selectFields._locale.name}`),\n }),\n }),\n })\n .from(sql`${subQuery}`)}`.as(subQueryAlias)\n }\n\n break\n }\n\n case 'point': {\n if (adapter.name === 'sqlite') {\n break\n }\n\n const args = isFieldLocalized ? _locales : currentArgs\n if (!args.columns) {\n args.columns = {}\n }\n\n if (!args.extras) {\n args.extras = {}\n }\n\n const name = `${path}${field.name}`\n\n // Drizzle handles that poorly. See https://github.com/drizzle-team/drizzle-orm/issues/2526\n // Additionally, this way we format the column value straight in the database using ST_AsGeoJSON\n args.columns[name] = false\n\n let shouldSelect = false\n\n if (select || selectAllOnCurrentLevel) {\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && Boolean(select[field.name])) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n shouldSelect = true\n }\n } else {\n shouldSelect = true\n }\n const tableName = fieldShouldBeLocalized({ field, parentIsLocalized })\n ? `${currentTableName}${adapter.localesSuffix}`\n : currentTableName\n\n if (shouldSelect) {\n args.extras[name] = sql\n .raw(`ST_AsGeoJSON(\"${adapter.tables[tableName][name].name}\")::jsonb`)\n .as(name)\n }\n break\n }\n\n case 'select': {\n if (select && !selectAllOnCurrentLevel) {\n if (\n (selectMode === 'include' && !select[field.name]) ||\n (selectMode === 'exclude' && select[field.name] === false)\n ) {\n break\n }\n }\n\n if (field.hasMany) {\n const withSelect: Result = {\n columns: {\n id: false,\n order: false,\n parent: false,\n },\n orderBy: ({ order }, { asc }) => [asc(order)],\n }\n\n currentArgs.with[`${path}${field.name}`] = withSelect\n break\n }\n\n if (select || selectAllOnCurrentLevel) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || parentIsLocalized) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n }\n\n break\n }\n\n default: {\n if (!select && !selectAllOnCurrentLevel) {\n break\n }\n\n if (\n selectAllOnCurrentLevel ||\n (selectMode === 'include' && Boolean(select[field.name])) ||\n (selectMode === 'exclude' && typeof select[field.name] === 'undefined')\n ) {\n const fieldPath = `${path}${field.name}`\n\n if ((isFieldLocalized || parentIsLocalized) && _locales) {\n _locales.columns[fieldPath] = true\n } else if (adapter.tables[currentTableName]?.[fieldPath]) {\n currentArgs.columns[fieldPath] = true\n }\n\n if (\n !withTabledFields.rels &&\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (!withTabledFields.numbers && field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (!withTabledFields.texts && field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\n break\n }\n }\n })\n\n return topLevelArgs\n}\n"],"names":["and","asc","count","desc","eq","getTableName","or","sql","appendVersionToQueryKey","buildVersionCollectionFields","combineQueries","getFieldByPath","getQueryDraftsSort","fieldIsVirtual","fieldShouldBeLocalized","toSnakeCase","buildQuery","getTableAlias","operatorMap","getArrayRelationName","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","InternalBlockTableNameIndex","resolveBlockTableName","flattenAllWherePaths","where","paths","k","includes","toUpperCase","Array","isArray","whereField","push","path","split","join","ref","buildSQLWhere","alias","op","accumulated","payloadOperator","Object","keys","value","raw","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","draftsEnabled","fields","joinQuery","joins","locale","parentIsLocalized","select","selectAllOnCurrentLevel","selectMode","tablePath","topLevelArgs","topLevelTableName","versions","withTabledFields","forEach","field","isFieldLocalized","type","hasMany","relationTo","with","name","arraySelect","withArray","columns","id","_order","_parentID","orderBy","arrayTableName","tableNameMap","get","tables","_locale","_uuid","arrayTableNameWithLocales","localesSuffix","relationName","tableName","flattenedFields","localized","undefined","length","blocksSelect","blocksAsJSON","fieldPath","blockReferences","blocks","_block","block","payload","blockKey","slug","blockSelect","blockSelectMode","Boolean","withBlock","_path","fieldSelect","joinSchemaPath","replaceAll","shouldCount","limit","limitArg","defaultLimit","page","sort","defaultSort","columnName","db","drizzle","collection","currentQuery","onPath","on","Error","sanitizedSort","some","collections","config","f","sortOrder","startsWith","replace","sortPath","wherePaths","joinCollectionTableName","table","sortColumn","selectFields","parent","as","collectionQueryWhere","collectioConfig","parentTable","schemaName","constraint","operator","values","query","createJSONQuery","column","pathSegments","$raw","from","unionAll","subQueryAlias","sqlWhere","extras","offset","useDrafts","drafts","versionsSuffix","currentIDColumn","joinQueryWhere","currentIDRaw","targetField","equals","latest","newAliasTable","subQueryWhere","aliasTable","selectLocale","collectionConfig","key","val","pop","map","order","$dynamic","condition","subQuery","countSubquery","result","args","shouldSelect","withSelect","rels","numbers","texts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,SAAS,CAAA;AAU3F,eAAO,MAAM,YAAY,EAAE,YAoH1B,CAAA"}
1
+ {"version":3,"file":"findDistinct.d.ts","sourceRoot":"","sources":["../src/findDistinct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAkD,MAAM,SAAS,CAAA;AAU3F,eAAO,MAAM,YAAY,EAAE,YAsH1B,CAAA"}
@@ -53,7 +53,9 @@ export const findDistinct = async function(args) {
53
53
  where
54
54
  });
55
55
  const field = getFieldByPath({
56
+ config: this.payload.config,
56
57
  fields: collectionConfig.flattenedFields,
58
+ includeRelationships: true,
57
59
  path: args.field
58
60
  })?.field;
59
61
  if (field && 'relationTo' in field && Array.isArray(field.relationTo)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/findDistinct.ts"],"sourcesContent":["import { type FindDistinct, getFieldByPath, type SanitizedCollectionConfig } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter, GenericColumn } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { DistinctSymbol } from './utilities/rawConstraint.js'\n\nexport const findDistinct: FindDistinct = async function (this: DrizzleAdapter, args) {\n const db = await getTransaction(this, args.req)\n const collectionConfig: SanitizedCollectionConfig =\n this.payload.collections[args.collection].config\n const page = args.page || 1\n const offset = args.limit ? (page - 1) * args.limit : undefined\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const { joins, orderBy, selectFields, where } = buildQuery({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n locale: args.locale,\n sort: args.sort ?? args.field,\n tableName,\n where: {\n and: [\n args.where ?? {},\n {\n [args.field]: {\n equals: DistinctSymbol,\n },\n },\n ],\n },\n })\n\n orderBy.pop()\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n forceRun: true,\n joins,\n query: ({ query }) => {\n query = query.orderBy(() => orderBy.map(({ column, order }) => order(column)))\n\n if (args.limit) {\n if (offset) {\n query = query.offset(offset)\n }\n\n query = query.limit(args.limit)\n }\n\n return query\n },\n selectFields: {\n _selected: selectFields['_selected'],\n ...(orderBy.length &&\n (orderBy[0].column === selectFields['_selected'] ? {} : { _order: orderBy[0]?.column })),\n } as Record<string, GenericColumn>,\n tableName,\n where,\n })\n\n const field = getFieldByPath({\n fields: collectionConfig.flattenedFields,\n path: args.field,\n })?.field\n\n if (field && 'relationTo' in field && Array.isArray(field.relationTo)) {\n for (const row of selectDistinctResult as any) {\n const json = JSON.parse(row._selected)\n const relationTo = Object.keys(json).find((each) => Boolean(json[each]))\n const value = json[relationTo]\n\n if (!value) {\n row._selected = null\n } else {\n row._selected = { relationTo, value }\n }\n }\n }\n\n const values = selectDistinctResult.map((each) => ({\n [args.field]: (each as Record<string, any>)._selected,\n }))\n\n if (args.limit) {\n const totalDocs = await this.countDistinct({\n column: selectFields['_selected'],\n db,\n joins,\n tableName,\n where,\n })\n\n const totalPages = Math.ceil(totalDocs / args.limit)\n const hasPrevPage = page > 1\n const hasNextPage = totalPages > page\n const pagingCounter = (page - 1) * args.limit + 1\n\n return {\n hasNextPage,\n hasPrevPage,\n limit: args.limit,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs,\n totalPages,\n values,\n }\n }\n\n return {\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n page: 1,\n pagingCounter: 1,\n totalDocs: values.length,\n totalPages: 1,\n values,\n }\n}\n"],"names":["getFieldByPath","toSnakeCase","buildQuery","selectDistinct","getTransaction","DistinctSymbol","findDistinct","args","db","req","collectionConfig","payload","collections","collection","config","page","offset","limit","undefined","tableName","tableNameMap","get","slug","joins","orderBy","selectFields","where","adapter","fields","flattenedFields","locale","sort","field","and","equals","pop","selectDistinctResult","forceRun","query","map","column","order","_selected","length","_order","path","Array","isArray","relationTo","row","json","JSON","parse","Object","keys","find","each","Boolean","value","values","totalDocs","countDistinct","totalPages","Math","ceil","hasPrevPage","hasNextPage","pagingCounter","nextPage","prevPage"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/findDistinct.ts"],"sourcesContent":["import { type FindDistinct, getFieldByPath, type SanitizedCollectionConfig } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter, GenericColumn } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { DistinctSymbol } from './utilities/rawConstraint.js'\n\nexport const findDistinct: FindDistinct = async function (this: DrizzleAdapter, args) {\n const db = await getTransaction(this, args.req)\n const collectionConfig: SanitizedCollectionConfig =\n this.payload.collections[args.collection].config\n const page = args.page || 1\n const offset = args.limit ? (page - 1) * args.limit : undefined\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const { joins, orderBy, selectFields, where } = buildQuery({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n locale: args.locale,\n sort: args.sort ?? args.field,\n tableName,\n where: {\n and: [\n args.where ?? {},\n {\n [args.field]: {\n equals: DistinctSymbol,\n },\n },\n ],\n },\n })\n\n orderBy.pop()\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n forceRun: true,\n joins,\n query: ({ query }) => {\n query = query.orderBy(() => orderBy.map(({ column, order }) => order(column)))\n\n if (args.limit) {\n if (offset) {\n query = query.offset(offset)\n }\n\n query = query.limit(args.limit)\n }\n\n return query\n },\n selectFields: {\n _selected: selectFields['_selected'],\n ...(orderBy.length &&\n (orderBy[0].column === selectFields['_selected'] ? {} : { _order: orderBy[0]?.column })),\n } as Record<string, GenericColumn>,\n tableName,\n where,\n })\n\n const field = getFieldByPath({\n config: this.payload.config,\n fields: collectionConfig.flattenedFields,\n includeRelationships: true,\n path: args.field,\n })?.field\n\n if (field && 'relationTo' in field && Array.isArray(field.relationTo)) {\n for (const row of selectDistinctResult as any) {\n const json = JSON.parse(row._selected)\n const relationTo = Object.keys(json).find((each) => Boolean(json[each]))\n const value = json[relationTo]\n\n if (!value) {\n row._selected = null\n } else {\n row._selected = { relationTo, value }\n }\n }\n }\n\n const values = selectDistinctResult.map((each) => ({\n [args.field]: (each as Record<string, any>)._selected,\n }))\n\n if (args.limit) {\n const totalDocs = await this.countDistinct({\n column: selectFields['_selected'],\n db,\n joins,\n tableName,\n where,\n })\n\n const totalPages = Math.ceil(totalDocs / args.limit)\n const hasPrevPage = page > 1\n const hasNextPage = totalPages > page\n const pagingCounter = (page - 1) * args.limit + 1\n\n return {\n hasNextPage,\n hasPrevPage,\n limit: args.limit,\n nextPage: hasNextPage ? page + 1 : null,\n page,\n pagingCounter,\n prevPage: hasPrevPage ? page - 1 : null,\n totalDocs,\n totalPages,\n values,\n }\n }\n\n return {\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n page: 1,\n pagingCounter: 1,\n totalDocs: values.length,\n totalPages: 1,\n values,\n }\n}\n"],"names":["getFieldByPath","toSnakeCase","buildQuery","selectDistinct","getTransaction","DistinctSymbol","findDistinct","args","db","req","collectionConfig","payload","collections","collection","config","page","offset","limit","undefined","tableName","tableNameMap","get","slug","joins","orderBy","selectFields","where","adapter","fields","flattenedFields","locale","sort","field","and","equals","pop","selectDistinctResult","forceRun","query","map","column","order","_selected","length","_order","includeRelationships","path","Array","isArray","relationTo","row","json","JSON","parse","Object","keys","find","each","Boolean","value","values","totalDocs","countDistinct","totalPages","Math","ceil","hasPrevPage","hasNextPage","pagingCounter","nextPage","prevPage"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseParams.d.ts","sourceRoot":"","sources":["../../src/queries/parseParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAY,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOpE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAQ5D,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAA;AAExD,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE,IAAI,GAAG,GAAG,CAoXZ"}
1
+ {"version":3,"file":"parseParams.d.ts","sourceRoot":"","sources":["../../src/queries/parseParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAY,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOpE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAS5D,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAA;AAExD,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE,IAAI,GAAG,GAAG,CAqaZ"}
@@ -1,8 +1,9 @@
1
1
  import { and, isNotNull, isNull, ne, notInArray, or, sql } from 'drizzle-orm';
2
2
  import { PgUUID } from 'drizzle-orm/pg-core';
3
- import { QueryError } from 'payload';
3
+ import { APIError, QueryError } from 'payload';
4
4
  import { validOperatorSet } from 'payload/shared';
5
5
  import { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js';
6
+ import { isValidStringID } from '../utilities/isValidStringID.js';
6
7
  import { DistinctSymbol } from '../utilities/rawConstraint.js';
7
8
  import { buildAndOrConditions } from './buildAndOrConditions.js';
8
9
  import { getTableColumnFromPath } from './getTableColumnFromPath.js';
@@ -280,6 +281,37 @@ export function parseParams({ adapter, aliasTable, context, fields, joins, local
280
281
  resolvedQueryValue = queryValue.filter((v)=>v !== null);
281
282
  }
282
283
  let constraint = adapter.operators[queryOperator](resolvedColumn, resolvedQueryValue);
284
+ if (adapter.limitedBoundParameters && (operator === 'in' || operator === 'not_in') && relationOrPath === 'id' && Array.isArray(queryValue)) {
285
+ let isInvalid = false;
286
+ for (const val of queryValue){
287
+ if (typeof val === 'number' || val === null) {
288
+ continue;
289
+ }
290
+ if (typeof val === 'string') {
291
+ if (!isValidStringID(val)) {
292
+ isInvalid = true;
293
+ break;
294
+ } else {
295
+ continue;
296
+ }
297
+ }
298
+ isInvalid = true;
299
+ break;
300
+ }
301
+ if (isInvalid) {
302
+ throw new APIError(`Invalid ID value in ${JSON.stringify(queryValue)}`);
303
+ }
304
+ constraints.push(sql.raw(`${resolvedColumn.name} ${operator === 'in' ? 'IN' : 'NOT IN'} (${queryValue.map((e)=>{
305
+ if (e === null) {
306
+ return `NULL`;
307
+ }
308
+ if (typeof e === 'number') {
309
+ return e;
310
+ }
311
+ return `'${e}'`;
312
+ }).join(',')})`));
313
+ break;
314
+ }
283
315
  if (orConditions.length) {
284
316
  orConditions.push(constraint);
285
317
  constraint = or(...orConditions);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/queries/parseParams.ts"],"sourcesContent":["import type { SQL, Table } from 'drizzle-orm'\nimport type { FlattenedField, Operator, Sort, Where } from 'payload'\n\nimport { and, isNotNull, isNull, ne, notInArray, or, sql } from 'drizzle-orm'\nimport { PgUUID } from 'drizzle-orm/pg-core'\nimport { QueryError } from 'payload'\nimport { validOperatorSet } from 'payload/shared'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases } from './buildQuery.js'\n\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { DistinctSymbol } from '../utilities/rawConstraint.js'\nimport { buildAndOrConditions } from './buildAndOrConditions.js'\nimport { getTableColumnFromPath } from './getTableColumnFromPath.js'\nimport { sanitizeQueryValue } from './sanitizeQueryValue.js'\n\nexport type QueryContext = { rawSort?: SQL; sort: Sort }\n\ntype Args = {\n adapter: DrizzleAdapter\n aliasTable?: Table\n context: QueryContext\n fields: FlattenedField[]\n joins: BuildQueryJoinAliases\n locale?: string\n parentIsLocalized: boolean\n selectFields: Record<string, GenericColumn>\n selectLocale?: boolean\n tableName: string\n where: Where\n}\n\nexport function parseParams({\n adapter,\n aliasTable,\n context,\n fields,\n joins,\n locale,\n parentIsLocalized,\n selectFields,\n selectLocale,\n tableName,\n where,\n}: Args): SQL {\n let result: SQL\n const constraints: SQL[] = []\n\n if (typeof where === 'object' && Object.keys(where).length > 0) {\n // We need to determine if the whereKey is an AND, OR, or a schema path\n for (const relationOrPath of Object.keys(where)) {\n if (relationOrPath) {\n const condition = where[relationOrPath]\n let conditionOperator: typeof and | typeof or\n if (relationOrPath.toLowerCase() === 'and') {\n conditionOperator = and\n } else if (relationOrPath.toLowerCase() === 'or') {\n conditionOperator = or\n }\n if (Array.isArray(condition)) {\n const builtConditions = buildAndOrConditions({\n adapter,\n aliasTable,\n context,\n fields,\n joins,\n locale,\n parentIsLocalized,\n selectFields,\n selectLocale,\n tableName,\n where: condition,\n })\n if (builtConditions.length > 0) {\n result = conditionOperator(...builtConditions)\n }\n } else {\n // It's a path - and there can be multiple comparisons on a single path.\n // For example - title like 'test' and title not equal to 'tester'\n // So we need to loop on keys again here to handle each operator independently\n const pathOperators = where[relationOrPath]\n if (typeof pathOperators === 'object') {\n for (let operator of Object.keys(pathOperators)) {\n if (validOperatorSet.has(operator as Operator)) {\n const val = where[relationOrPath][operator]\n\n const {\n columnName,\n columns,\n constraints: queryConstraints,\n field,\n getNotNullColumnByValue,\n pathSegments,\n rawColumn,\n table,\n } = getTableColumnFromPath({\n adapter,\n aliasTable,\n collectionPath: relationOrPath,\n fields,\n joins,\n locale,\n parentIsLocalized,\n pathSegments: relationOrPath.replace(/__/g, '.').split('.'),\n selectFields,\n selectLocale,\n tableName,\n value: val,\n })\n\n const resolvedColumn =\n rawColumn ||\n (aliasTable && tableName === getNameFromDrizzleTable(table)\n ? aliasTable[columnName]\n : table[columnName])\n\n if (val === DistinctSymbol) {\n selectFields['_selected'] = resolvedColumn\n break\n }\n\n queryConstraints.forEach(({ columnName: col, table: constraintTable, value }) => {\n if (typeof value === 'string' && value.indexOf('%') > -1) {\n constraints.push(adapter.operators.like(constraintTable[col], value))\n } else {\n constraints.push(adapter.operators.equals(constraintTable[col], value))\n }\n })\n\n if (\n (['json', 'richText'].includes(field.type) ||\n (field.type === 'blocks' && adapter.blocksAsJSON)) &&\n Array.isArray(pathSegments) &&\n pathSegments.length > 1\n ) {\n if (adapter.name === 'postgres') {\n const constraint = adapter.createJSONQuery({\n column: rawColumn || table[columnName],\n operator,\n pathSegments,\n value: val,\n })\n\n constraints.push(sql.raw(constraint))\n break\n }\n\n const segments = pathSegments.slice(1)\n segments.unshift(table[columnName].name)\n\n if (field.type === 'richText') {\n // use the table name from the nearest join to handle blocks, arrays, etc. or use the tableName arg\n const jsonTable =\n joins.length === 0\n ? tableName\n : joins[joins.length - 1].table[\n Object.getOwnPropertySymbols(joins[joins.length - 1].table)[0]\n ]\n const jsonQuery = adapter.createJSONQuery({\n operator,\n pathSegments: segments,\n table: jsonTable,\n treatAsArray: ['children'],\n treatRootAsArray: true,\n value: val,\n })\n\n constraints.push(sql.raw(jsonQuery))\n break\n }\n\n const jsonQuery = adapter.convertPathToJSONTraversal(pathSegments)\n const operatorKeys: Record<string, { operator: string; wildcard: string }> = {\n contains: { operator: 'like', wildcard: '%' },\n equals: { operator: '=', wildcard: '' },\n exists: { operator: val === true ? 'is not null' : 'is null', wildcard: '' },\n in: { operator: 'in', wildcard: '' },\n like: { operator: 'like', wildcard: '%' },\n not_equals: { operator: '<>', wildcard: '' },\n not_in: { operator: 'not in', wildcard: '' },\n not_like: { operator: 'not like', wildcard: '%' },\n }\n\n let formattedValue = val\n if (adapter.name === 'sqlite' && operator === 'equals' && !isNaN(val)) {\n formattedValue = val\n } else if (['in', 'not_in'].includes(operator) && Array.isArray(val)) {\n formattedValue = `(${val.map((v) => `${v}`).join(',')})`\n } else {\n formattedValue = `'${operatorKeys[operator].wildcard}${val}${operatorKeys[operator].wildcard}'`\n }\n if (operator === 'exists') {\n formattedValue = ''\n }\n\n let jsonQuerySelector = `${table[columnName].name}${jsonQuery}`\n\n if (adapter.name === 'sqlite' && operator === 'not_like') {\n jsonQuerySelector = `COALESCE(${table[columnName].name}${jsonQuery}, '')`\n }\n\n const rawSQLQuery = `${jsonQuerySelector} ${operatorKeys[operator].operator} ${formattedValue}`\n\n constraints.push(sql.raw(rawSQLQuery))\n\n break\n }\n\n if (getNotNullColumnByValue) {\n const columnName = getNotNullColumnByValue(val)\n if (columnName) {\n constraints.push(isNotNull(table[columnName]))\n } else {\n throw new QueryError([{ path: relationOrPath }])\n }\n break\n }\n\n if (\n operator === 'like' &&\n (field.type === 'number' ||\n field.type === 'relationship' ||\n field.type === 'upload' ||\n table[columnName].columnType === 'PgUUID')\n ) {\n operator = 'equals'\n }\n\n if (operator === 'like') {\n constraints.push(\n and(\n ...val\n .split(' ')\n .map((word) => adapter.operators.like(table[columnName], `%${word}%`)),\n ),\n )\n break\n }\n\n const sanitizedQueryValue = sanitizeQueryValue({\n adapter,\n columns,\n field,\n isUUID: table?.[columnName] instanceof PgUUID,\n operator,\n relationOrPath,\n val,\n })\n\n if (sanitizedQueryValue === null) {\n break\n }\n\n const {\n columns: queryColumns,\n operator: queryOperator,\n value: queryValue,\n } = sanitizedQueryValue\n\n // Handle polymorphic relationships by value\n if (queryColumns) {\n if (!queryColumns.length) {\n break\n }\n\n let wrapOperator = or\n\n if (queryValue === null && ['equals', 'not_equals'].includes(operator)) {\n if (operator === 'equals') {\n wrapOperator = and\n }\n\n constraints.push(\n wrapOperator(\n ...queryColumns.map(({ rawColumn }) =>\n operator === 'equals' ? isNull(rawColumn) : isNotNull(rawColumn),\n ),\n ),\n )\n break\n }\n\n if (['not_equals', 'not_in'].includes(operator)) {\n wrapOperator = and\n }\n\n constraints.push(\n wrapOperator(\n ...queryColumns.map(({ rawColumn, value }) =>\n adapter.operators[queryOperator](rawColumn, value),\n ),\n ),\n )\n\n break\n }\n\n if (queryOperator === 'not_equals' && queryValue !== null) {\n constraints.push(\n or(\n isNull(resolvedColumn),\n /* eslint-disable @typescript-eslint/no-explicit-any */\n ne<any>(resolvedColumn, queryValue),\n ),\n )\n break\n }\n\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n Array.isArray(queryValue) &&\n operator === 'not_in'\n ) {\n constraints.push(\n sql`(${notInArray(table[columnName], queryValue)} OR\n ${table[columnName]}\n IS\n NULL)`,\n )\n\n break\n }\n\n if (operator === 'equals' && queryValue === null) {\n constraints.push(isNull(resolvedColumn))\n break\n }\n\n if (operator === 'not_equals' && queryValue === null) {\n constraints.push(isNotNull(resolvedColumn))\n break\n }\n\n if (field.type === 'point' && adapter.name === 'postgres') {\n switch (operator) {\n case 'intersects': {\n constraints.push(\n sql`ST_Intersects(${table[columnName]}, ST_GeomFromGeoJSON(${JSON.stringify(queryValue)}))`,\n )\n break\n }\n\n case 'near': {\n const [lng, lat, maxDistance, minDistance] = queryValue as number[]\n const geoConstraints: SQL[] = []\n\n if (typeof maxDistance === 'number' && !Number.isNaN(maxDistance)) {\n geoConstraints.push(\n sql`ST_DWithin(ST_Transform(${table[columnName]}, 3857), ST_Transform(ST_SetSRID(ST_MakePoint(${lng}, ${lat}), 4326), 3857), ${maxDistance})`,\n )\n }\n\n if (typeof minDistance === 'number' && !Number.isNaN(minDistance)) {\n geoConstraints.push(\n sql`ST_Distance(ST_Transform(${table[columnName]}, 3857), ST_Transform(ST_SetSRID(ST_MakePoint(${lng}, ${lat}), 4326), 3857)) >= ${minDistance}`,\n )\n }\n if (geoConstraints.length) {\n context.sort = relationOrPath\n context.rawSort = sql`${table[columnName]} <-> ST_SetSRID(ST_MakePoint(${lng}, ${lat}), 4326)`\n constraints.push(and(...geoConstraints))\n }\n break\n }\n\n case 'within': {\n constraints.push(\n sql`ST_Within(${table[columnName]}, ST_GeomFromGeoJSON(${JSON.stringify(queryValue)}))`,\n )\n break\n }\n\n default:\n break\n }\n break\n }\n\n const orConditions: SQL<unknown>[] = []\n let resolvedQueryValue = queryValue\n if (\n operator === 'in' &&\n Array.isArray(queryValue) &&\n queryValue.some((v) => v === null)\n ) {\n orConditions.push(isNull(resolvedColumn))\n resolvedQueryValue = queryValue.filter((v) => v !== null)\n }\n let constraint = adapter.operators[queryOperator](\n resolvedColumn,\n resolvedQueryValue,\n )\n if (orConditions.length) {\n orConditions.push(constraint)\n constraint = or(...orConditions)\n }\n constraints.push(constraint)\n }\n }\n }\n }\n }\n }\n }\n if (constraints.length > 0) {\n if (result) {\n result = and(result, ...constraints)\n } else {\n result = and(...constraints)\n }\n }\n if (constraints.length === 1 && !result) {\n ;[result] = constraints\n }\n\n return result\n}\n"],"names":["and","isNotNull","isNull","ne","notInArray","or","sql","PgUUID","QueryError","validOperatorSet","getNameFromDrizzleTable","DistinctSymbol","buildAndOrConditions","getTableColumnFromPath","sanitizeQueryValue","parseParams","adapter","aliasTable","context","fields","joins","locale","parentIsLocalized","selectFields","selectLocale","tableName","where","result","constraints","Object","keys","length","relationOrPath","condition","conditionOperator","toLowerCase","Array","isArray","builtConditions","pathOperators","operator","has","val","columnName","columns","queryConstraints","field","getNotNullColumnByValue","pathSegments","rawColumn","table","collectionPath","replace","split","value","resolvedColumn","forEach","col","constraintTable","indexOf","push","operators","like","equals","includes","type","blocksAsJSON","name","constraint","createJSONQuery","column","raw","segments","slice","unshift","jsonTable","getOwnPropertySymbols","jsonQuery","treatAsArray","treatRootAsArray","convertPathToJSONTraversal","operatorKeys","contains","wildcard","exists","in","not_equals","not_in","not_like","formattedValue","isNaN","map","v","join","jsonQuerySelector","rawSQLQuery","path","columnType","word","sanitizedQueryValue","isUUID","queryColumns","queryOperator","queryValue","wrapOperator","JSON","stringify","lng","lat","maxDistance","minDistance","geoConstraints","Number","sort","rawSort","orConditions","resolvedQueryValue","some","filter"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/queries/parseParams.ts"],"sourcesContent":["import type { SQL, Table } from 'drizzle-orm'\nimport type { FlattenedField, Operator, Sort, Where } from 'payload'\n\nimport { and, isNotNull, isNull, ne, notInArray, or, sql } from 'drizzle-orm'\nimport { PgUUID } from 'drizzle-orm/pg-core'\nimport { APIError, QueryError } from 'payload'\nimport { validOperatorSet } from 'payload/shared'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases } from './buildQuery.js'\n\nimport { getNameFromDrizzleTable } from '../utilities/getNameFromDrizzleTable.js'\nimport { isValidStringID } from '../utilities/isValidStringID.js'\nimport { DistinctSymbol } from '../utilities/rawConstraint.js'\nimport { buildAndOrConditions } from './buildAndOrConditions.js'\nimport { getTableColumnFromPath } from './getTableColumnFromPath.js'\nimport { sanitizeQueryValue } from './sanitizeQueryValue.js'\n\nexport type QueryContext = { rawSort?: SQL; sort: Sort }\n\ntype Args = {\n adapter: DrizzleAdapter\n aliasTable?: Table\n context: QueryContext\n fields: FlattenedField[]\n joins: BuildQueryJoinAliases\n locale?: string\n parentIsLocalized: boolean\n selectFields: Record<string, GenericColumn>\n selectLocale?: boolean\n tableName: string\n where: Where\n}\n\nexport function parseParams({\n adapter,\n aliasTable,\n context,\n fields,\n joins,\n locale,\n parentIsLocalized,\n selectFields,\n selectLocale,\n tableName,\n where,\n}: Args): SQL {\n let result: SQL\n const constraints: SQL[] = []\n\n if (typeof where === 'object' && Object.keys(where).length > 0) {\n // We need to determine if the whereKey is an AND, OR, or a schema path\n for (const relationOrPath of Object.keys(where)) {\n if (relationOrPath) {\n const condition = where[relationOrPath]\n let conditionOperator: typeof and | typeof or\n if (relationOrPath.toLowerCase() === 'and') {\n conditionOperator = and\n } else if (relationOrPath.toLowerCase() === 'or') {\n conditionOperator = or\n }\n if (Array.isArray(condition)) {\n const builtConditions = buildAndOrConditions({\n adapter,\n aliasTable,\n context,\n fields,\n joins,\n locale,\n parentIsLocalized,\n selectFields,\n selectLocale,\n tableName,\n where: condition,\n })\n if (builtConditions.length > 0) {\n result = conditionOperator(...builtConditions)\n }\n } else {\n // It's a path - and there can be multiple comparisons on a single path.\n // For example - title like 'test' and title not equal to 'tester'\n // So we need to loop on keys again here to handle each operator independently\n const pathOperators = where[relationOrPath]\n if (typeof pathOperators === 'object') {\n for (let operator of Object.keys(pathOperators)) {\n if (validOperatorSet.has(operator as Operator)) {\n const val = where[relationOrPath][operator]\n\n const {\n columnName,\n columns,\n constraints: queryConstraints,\n field,\n getNotNullColumnByValue,\n pathSegments,\n rawColumn,\n table,\n } = getTableColumnFromPath({\n adapter,\n aliasTable,\n collectionPath: relationOrPath,\n fields,\n joins,\n locale,\n parentIsLocalized,\n pathSegments: relationOrPath.replace(/__/g, '.').split('.'),\n selectFields,\n selectLocale,\n tableName,\n value: val,\n })\n\n const resolvedColumn =\n rawColumn ||\n (aliasTable && tableName === getNameFromDrizzleTable(table)\n ? aliasTable[columnName]\n : table[columnName])\n\n if (val === DistinctSymbol) {\n selectFields['_selected'] = resolvedColumn\n break\n }\n\n queryConstraints.forEach(({ columnName: col, table: constraintTable, value }) => {\n if (typeof value === 'string' && value.indexOf('%') > -1) {\n constraints.push(adapter.operators.like(constraintTable[col], value))\n } else {\n constraints.push(adapter.operators.equals(constraintTable[col], value))\n }\n })\n\n if (\n (['json', 'richText'].includes(field.type) ||\n (field.type === 'blocks' && adapter.blocksAsJSON)) &&\n Array.isArray(pathSegments) &&\n pathSegments.length > 1\n ) {\n if (adapter.name === 'postgres') {\n const constraint = adapter.createJSONQuery({\n column: rawColumn || table[columnName],\n operator,\n pathSegments,\n value: val,\n })\n\n constraints.push(sql.raw(constraint))\n break\n }\n\n const segments = pathSegments.slice(1)\n segments.unshift(table[columnName].name)\n\n if (field.type === 'richText') {\n // use the table name from the nearest join to handle blocks, arrays, etc. or use the tableName arg\n const jsonTable =\n joins.length === 0\n ? tableName\n : joins[joins.length - 1].table[\n Object.getOwnPropertySymbols(joins[joins.length - 1].table)[0]\n ]\n const jsonQuery = adapter.createJSONQuery({\n operator,\n pathSegments: segments,\n table: jsonTable,\n treatAsArray: ['children'],\n treatRootAsArray: true,\n value: val,\n })\n\n constraints.push(sql.raw(jsonQuery))\n break\n }\n\n const jsonQuery = adapter.convertPathToJSONTraversal(pathSegments)\n const operatorKeys: Record<string, { operator: string; wildcard: string }> = {\n contains: { operator: 'like', wildcard: '%' },\n equals: { operator: '=', wildcard: '' },\n exists: { operator: val === true ? 'is not null' : 'is null', wildcard: '' },\n in: { operator: 'in', wildcard: '' },\n like: { operator: 'like', wildcard: '%' },\n not_equals: { operator: '<>', wildcard: '' },\n not_in: { operator: 'not in', wildcard: '' },\n not_like: { operator: 'not like', wildcard: '%' },\n }\n\n let formattedValue = val\n if (adapter.name === 'sqlite' && operator === 'equals' && !isNaN(val)) {\n formattedValue = val\n } else if (['in', 'not_in'].includes(operator) && Array.isArray(val)) {\n formattedValue = `(${val.map((v) => `${v}`).join(',')})`\n } else {\n formattedValue = `'${operatorKeys[operator].wildcard}${val}${operatorKeys[operator].wildcard}'`\n }\n if (operator === 'exists') {\n formattedValue = ''\n }\n\n let jsonQuerySelector = `${table[columnName].name}${jsonQuery}`\n\n if (adapter.name === 'sqlite' && operator === 'not_like') {\n jsonQuerySelector = `COALESCE(${table[columnName].name}${jsonQuery}, '')`\n }\n\n const rawSQLQuery = `${jsonQuerySelector} ${operatorKeys[operator].operator} ${formattedValue}`\n\n constraints.push(sql.raw(rawSQLQuery))\n\n break\n }\n\n if (getNotNullColumnByValue) {\n const columnName = getNotNullColumnByValue(val)\n if (columnName) {\n constraints.push(isNotNull(table[columnName]))\n } else {\n throw new QueryError([{ path: relationOrPath }])\n }\n break\n }\n\n if (\n operator === 'like' &&\n (field.type === 'number' ||\n field.type === 'relationship' ||\n field.type === 'upload' ||\n table[columnName].columnType === 'PgUUID')\n ) {\n operator = 'equals'\n }\n\n if (operator === 'like') {\n constraints.push(\n and(\n ...val\n .split(' ')\n .map((word) => adapter.operators.like(table[columnName], `%${word}%`)),\n ),\n )\n break\n }\n\n const sanitizedQueryValue = sanitizeQueryValue({\n adapter,\n columns,\n field,\n isUUID: table?.[columnName] instanceof PgUUID,\n operator,\n relationOrPath,\n val,\n })\n\n if (sanitizedQueryValue === null) {\n break\n }\n\n const {\n columns: queryColumns,\n operator: queryOperator,\n value: queryValue,\n } = sanitizedQueryValue\n\n // Handle polymorphic relationships by value\n if (queryColumns) {\n if (!queryColumns.length) {\n break\n }\n\n let wrapOperator = or\n\n if (queryValue === null && ['equals', 'not_equals'].includes(operator)) {\n if (operator === 'equals') {\n wrapOperator = and\n }\n\n constraints.push(\n wrapOperator(\n ...queryColumns.map(({ rawColumn }) =>\n operator === 'equals' ? isNull(rawColumn) : isNotNull(rawColumn),\n ),\n ),\n )\n break\n }\n\n if (['not_equals', 'not_in'].includes(operator)) {\n wrapOperator = and\n }\n\n constraints.push(\n wrapOperator(\n ...queryColumns.map(({ rawColumn, value }) =>\n adapter.operators[queryOperator](rawColumn, value),\n ),\n ),\n )\n\n break\n }\n\n if (queryOperator === 'not_equals' && queryValue !== null) {\n constraints.push(\n or(\n isNull(resolvedColumn),\n /* eslint-disable @typescript-eslint/no-explicit-any */\n ne<any>(resolvedColumn, queryValue),\n ),\n )\n break\n }\n\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n Array.isArray(queryValue) &&\n operator === 'not_in'\n ) {\n constraints.push(\n sql`(${notInArray(table[columnName], queryValue)} OR\n ${table[columnName]}\n IS\n NULL)`,\n )\n\n break\n }\n\n if (operator === 'equals' && queryValue === null) {\n constraints.push(isNull(resolvedColumn))\n break\n }\n\n if (operator === 'not_equals' && queryValue === null) {\n constraints.push(isNotNull(resolvedColumn))\n break\n }\n\n if (field.type === 'point' && adapter.name === 'postgres') {\n switch (operator) {\n case 'intersects': {\n constraints.push(\n sql`ST_Intersects(${table[columnName]}, ST_GeomFromGeoJSON(${JSON.stringify(queryValue)}))`,\n )\n break\n }\n\n case 'near': {\n const [lng, lat, maxDistance, minDistance] = queryValue as number[]\n const geoConstraints: SQL[] = []\n\n if (typeof maxDistance === 'number' && !Number.isNaN(maxDistance)) {\n geoConstraints.push(\n sql`ST_DWithin(ST_Transform(${table[columnName]}, 3857), ST_Transform(ST_SetSRID(ST_MakePoint(${lng}, ${lat}), 4326), 3857), ${maxDistance})`,\n )\n }\n\n if (typeof minDistance === 'number' && !Number.isNaN(minDistance)) {\n geoConstraints.push(\n sql`ST_Distance(ST_Transform(${table[columnName]}, 3857), ST_Transform(ST_SetSRID(ST_MakePoint(${lng}, ${lat}), 4326), 3857)) >= ${minDistance}`,\n )\n }\n if (geoConstraints.length) {\n context.sort = relationOrPath\n context.rawSort = sql`${table[columnName]} <-> ST_SetSRID(ST_MakePoint(${lng}, ${lat}), 4326)`\n constraints.push(and(...geoConstraints))\n }\n break\n }\n\n case 'within': {\n constraints.push(\n sql`ST_Within(${table[columnName]}, ST_GeomFromGeoJSON(${JSON.stringify(queryValue)}))`,\n )\n break\n }\n\n default:\n break\n }\n break\n }\n\n const orConditions: SQL<unknown>[] = []\n let resolvedQueryValue = queryValue\n if (\n operator === 'in' &&\n Array.isArray(queryValue) &&\n queryValue.some((v) => v === null)\n ) {\n orConditions.push(isNull(resolvedColumn))\n resolvedQueryValue = queryValue.filter((v) => v !== null)\n }\n\n let constraint = adapter.operators[queryOperator](\n resolvedColumn,\n resolvedQueryValue,\n )\n\n if (\n adapter.limitedBoundParameters &&\n (operator === 'in' || operator === 'not_in') &&\n relationOrPath === 'id' &&\n Array.isArray(queryValue)\n ) {\n let isInvalid = false\n for (const val of queryValue) {\n if (typeof val === 'number' || val === null) {\n continue\n }\n if (typeof val === 'string') {\n if (!isValidStringID(val)) {\n isInvalid = true\n break\n } else {\n continue\n }\n }\n isInvalid = true\n break\n }\n\n if (isInvalid) {\n throw new APIError(`Invalid ID value in ${JSON.stringify(queryValue)}`)\n }\n\n constraints.push(\n sql.raw(\n `${resolvedColumn.name} ${operator === 'in' ? 'IN' : 'NOT IN'} (${queryValue\n .map((e) => {\n if (e === null) {\n return `NULL`\n }\n\n if (typeof e === 'number') {\n return e\n }\n\n return `'${e}'`\n })\n .join(',')})`,\n ),\n )\n break\n }\n\n if (orConditions.length) {\n orConditions.push(constraint)\n constraint = or(...orConditions)\n }\n constraints.push(constraint)\n }\n }\n }\n }\n }\n }\n }\n if (constraints.length > 0) {\n if (result) {\n result = and(result, ...constraints)\n } else {\n result = and(...constraints)\n }\n }\n if (constraints.length === 1 && !result) {\n ;[result] = constraints\n }\n\n return result\n}\n"],"names":["and","isNotNull","isNull","ne","notInArray","or","sql","PgUUID","APIError","QueryError","validOperatorSet","getNameFromDrizzleTable","isValidStringID","DistinctSymbol","buildAndOrConditions","getTableColumnFromPath","sanitizeQueryValue","parseParams","adapter","aliasTable","context","fields","joins","locale","parentIsLocalized","selectFields","selectLocale","tableName","where","result","constraints","Object","keys","length","relationOrPath","condition","conditionOperator","toLowerCase","Array","isArray","builtConditions","pathOperators","operator","has","val","columnName","columns","queryConstraints","field","getNotNullColumnByValue","pathSegments","rawColumn","table","collectionPath","replace","split","value","resolvedColumn","forEach","col","constraintTable","indexOf","push","operators","like","equals","includes","type","blocksAsJSON","name","constraint","createJSONQuery","column","raw","segments","slice","unshift","jsonTable","getOwnPropertySymbols","jsonQuery","treatAsArray","treatRootAsArray","convertPathToJSONTraversal","operatorKeys","contains","wildcard","exists","in","not_equals","not_in","not_like","formattedValue","isNaN","map","v","join","jsonQuerySelector","rawSQLQuery","path","columnType","word","sanitizedQueryValue","isUUID","queryColumns","queryOperator","queryValue","wrapOperator","JSON","stringify","lng","lat","maxDistance","minDistance","geoConstraints","Number","sort","rawSort","orConditions","resolvedQueryValue","some","filter","limitedBoundParameters","isInvalid","e"],"mappings":"AAGA,SAASA,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,EAAE,EAAEC,UAAU,EAAEC,EAAE,EAAEC,GAAG,QAAQ,cAAa;AAC7E,SAASC,MAAM,QAAQ,sBAAqB;AAC5C,SAASC,QAAQ,EAAEC,UAAU,QAAQ,UAAS;AAC9C,SAASC,gBAAgB,QAAQ,iBAAgB;AAKjD,SAASC,uBAAuB,QAAQ,0CAAyC;AACjF,SAASC,eAAe,QAAQ,kCAAiC;AACjE,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,sBAAsB,QAAQ,8BAA6B;AACpE,SAASC,kBAAkB,QAAQ,0BAAyB;AAkB5D,OAAO,SAASC,YAAY,EAC1BC,OAAO,EACPC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,iBAAiB,EACjBC,YAAY,EACZC,YAAY,EACZC,SAAS,EACTC,KAAK,EACA;IACL,IAAIC;IACJ,MAAMC,cAAqB,EAAE;IAE7B,IAAI,OAAOF,UAAU,YAAYG,OAAOC,IAAI,CAACJ,OAAOK,MAAM,GAAG,GAAG;QAC9D,uEAAuE;QACvE,KAAK,MAAMC,kBAAkBH,OAAOC,IAAI,CAACJ,OAAQ;YAC/C,IAAIM,gBAAgB;gBAClB,MAAMC,YAAYP,KAAK,CAACM,eAAe;gBACvC,IAAIE;gBACJ,IAAIF,eAAeG,WAAW,OAAO,OAAO;oBAC1CD,oBAAoBpC;gBACtB,OAAO,IAAIkC,eAAeG,WAAW,OAAO,MAAM;oBAChDD,oBAAoB/B;gBACtB;gBACA,IAAIiC,MAAMC,OAAO,CAACJ,YAAY;oBAC5B,MAAMK,kBAAkB1B,qBAAqB;wBAC3CI;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC,OAAOO;oBACT;oBACA,IAAIK,gBAAgBP,MAAM,GAAG,GAAG;wBAC9BJ,SAASO,qBAAqBI;oBAChC;gBACF,OAAO;oBACL,wEAAwE;oBACxE,kEAAkE;oBAClE,8EAA8E;oBAC9E,MAAMC,gBAAgBb,KAAK,CAACM,eAAe;oBAC3C,IAAI,OAAOO,kBAAkB,UAAU;wBACrC,KAAK,IAAIC,YAAYX,OAAOC,IAAI,CAACS,eAAgB;4BAC/C,IAAI/B,iBAAiBiC,GAAG,CAACD,WAAuB;gCAC9C,MAAME,MAAMhB,KAAK,CAACM,eAAe,CAACQ,SAAS;gCAE3C,MAAM,EACJG,UAAU,EACVC,OAAO,EACPhB,aAAaiB,gBAAgB,EAC7BC,KAAK,EACLC,uBAAuB,EACvBC,YAAY,EACZC,SAAS,EACTC,KAAK,EACN,GAAGrC,uBAAuB;oCACzBG;oCACAC;oCACAkC,gBAAgBnB;oCAChBb;oCACAC;oCACAC;oCACAC;oCACA0B,cAAchB,eAAeoB,OAAO,CAAC,OAAO,KAAKC,KAAK,CAAC;oCACvD9B;oCACAC;oCACAC;oCACA6B,OAAOZ;gCACT;gCAEA,MAAMa,iBACJN,aACChC,CAAAA,cAAcQ,cAAchB,wBAAwByC,SACjDjC,UAAU,CAAC0B,WAAW,GACtBO,KAAK,CAACP,WAAW,AAAD;gCAEtB,IAAID,QAAQ/B,gBAAgB;oCAC1BY,YAAY,CAAC,YAAY,GAAGgC;oCAC5B;gCACF;gCAEAV,iBAAiBW,OAAO,CAAC,CAAC,EAAEb,YAAYc,GAAG,EAAEP,OAAOQ,eAAe,EAAEJ,KAAK,EAAE;oCAC1E,IAAI,OAAOA,UAAU,YAAYA,MAAMK,OAAO,CAAC,OAAO,CAAC,GAAG;wCACxD/B,YAAYgC,IAAI,CAAC5C,QAAQ6C,SAAS,CAACC,IAAI,CAACJ,eAAe,CAACD,IAAI,EAAEH;oCAChE,OAAO;wCACL1B,YAAYgC,IAAI,CAAC5C,QAAQ6C,SAAS,CAACE,MAAM,CAACL,eAAe,CAACD,IAAI,EAAEH;oCAClE;gCACF;gCAEA,IACE,AAAC,CAAA;oCAAC;oCAAQ;iCAAW,CAACU,QAAQ,CAAClB,MAAMmB,IAAI,KACtCnB,MAAMmB,IAAI,KAAK,YAAYjD,QAAQkD,YAAY,KAClD9B,MAAMC,OAAO,CAACW,iBACdA,aAAajB,MAAM,GAAG,GACtB;oCACA,IAAIf,QAAQmD,IAAI,KAAK,YAAY;wCAC/B,MAAMC,aAAapD,QAAQqD,eAAe,CAAC;4CACzCC,QAAQrB,aAAaC,KAAK,CAACP,WAAW;4CACtCH;4CACAQ;4CACAM,OAAOZ;wCACT;wCAEAd,YAAYgC,IAAI,CAACxD,IAAImE,GAAG,CAACH;wCACzB;oCACF;oCAEA,MAAMI,WAAWxB,aAAayB,KAAK,CAAC;oCACpCD,SAASE,OAAO,CAACxB,KAAK,CAACP,WAAW,CAACwB,IAAI;oCAEvC,IAAIrB,MAAMmB,IAAI,KAAK,YAAY;wCAC7B,mGAAmG;wCACnG,MAAMU,YACJvD,MAAMW,MAAM,KAAK,IACbN,YACAL,KAAK,CAACA,MAAMW,MAAM,GAAG,EAAE,CAACmB,KAAK,CAC3BrB,OAAO+C,qBAAqB,CAACxD,KAAK,CAACA,MAAMW,MAAM,GAAG,EAAE,CAACmB,KAAK,CAAC,CAAC,EAAE,CAC/D;wCACP,MAAM2B,YAAY7D,QAAQqD,eAAe,CAAC;4CACxC7B;4CACAQ,cAAcwB;4CACdtB,OAAOyB;4CACPG,cAAc;gDAAC;6CAAW;4CAC1BC,kBAAkB;4CAClBzB,OAAOZ;wCACT;wCAEAd,YAAYgC,IAAI,CAACxD,IAAImE,GAAG,CAACM;wCACzB;oCACF;oCAEA,MAAMA,YAAY7D,QAAQgE,0BAA0B,CAAChC;oCACrD,MAAMiC,eAAuE;wCAC3EC,UAAU;4CAAE1C,UAAU;4CAAQ2C,UAAU;wCAAI;wCAC5CpB,QAAQ;4CAAEvB,UAAU;4CAAK2C,UAAU;wCAAG;wCACtCC,QAAQ;4CAAE5C,UAAUE,QAAQ,OAAO,gBAAgB;4CAAWyC,UAAU;wCAAG;wCAC3EE,IAAI;4CAAE7C,UAAU;4CAAM2C,UAAU;wCAAG;wCACnCrB,MAAM;4CAAEtB,UAAU;4CAAQ2C,UAAU;wCAAI;wCACxCG,YAAY;4CAAE9C,UAAU;4CAAM2C,UAAU;wCAAG;wCAC3CI,QAAQ;4CAAE/C,UAAU;4CAAU2C,UAAU;wCAAG;wCAC3CK,UAAU;4CAAEhD,UAAU;4CAAY2C,UAAU;wCAAI;oCAClD;oCAEA,IAAIM,iBAAiB/C;oCACrB,IAAI1B,QAAQmD,IAAI,KAAK,YAAY3B,aAAa,YAAY,CAACkD,MAAMhD,MAAM;wCACrE+C,iBAAiB/C;oCACnB,OAAO,IAAI;wCAAC;wCAAM;qCAAS,CAACsB,QAAQ,CAACxB,aAAaJ,MAAMC,OAAO,CAACK,MAAM;wCACpE+C,iBAAiB,CAAC,CAAC,EAAE/C,IAAIiD,GAAG,CAAC,CAACC,IAAM,GAAGA,GAAG,EAAEC,IAAI,CAAC,KAAK,CAAC,CAAC;oCAC1D,OAAO;wCACLJ,iBAAiB,CAAC,CAAC,EAAER,YAAY,CAACzC,SAAS,CAAC2C,QAAQ,GAAGzC,MAAMuC,YAAY,CAACzC,SAAS,CAAC2C,QAAQ,CAAC,CAAC,CAAC;oCACjG;oCACA,IAAI3C,aAAa,UAAU;wCACzBiD,iBAAiB;oCACnB;oCAEA,IAAIK,oBAAoB,GAAG5C,KAAK,CAACP,WAAW,CAACwB,IAAI,GAAGU,WAAW;oCAE/D,IAAI7D,QAAQmD,IAAI,KAAK,YAAY3B,aAAa,YAAY;wCACxDsD,oBAAoB,CAAC,SAAS,EAAE5C,KAAK,CAACP,WAAW,CAACwB,IAAI,GAAGU,UAAU,KAAK,CAAC;oCAC3E;oCAEA,MAAMkB,cAAc,GAAGD,kBAAkB,CAAC,EAAEb,YAAY,CAACzC,SAAS,CAACA,QAAQ,CAAC,CAAC,EAAEiD,gBAAgB;oCAE/F7D,YAAYgC,IAAI,CAACxD,IAAImE,GAAG,CAACwB;oCAEzB;gCACF;gCAEA,IAAIhD,yBAAyB;oCAC3B,MAAMJ,aAAaI,wBAAwBL;oCAC3C,IAAIC,YAAY;wCACdf,YAAYgC,IAAI,CAAC7D,UAAUmD,KAAK,CAACP,WAAW;oCAC9C,OAAO;wCACL,MAAM,IAAIpC,WAAW;4CAAC;gDAAEyF,MAAMhE;4CAAe;yCAAE;oCACjD;oCACA;gCACF;gCAEA,IACEQ,aAAa,UACZM,CAAAA,MAAMmB,IAAI,KAAK,YACdnB,MAAMmB,IAAI,KAAK,kBACfnB,MAAMmB,IAAI,KAAK,YACff,KAAK,CAACP,WAAW,CAACsD,UAAU,KAAK,QAAO,GAC1C;oCACAzD,WAAW;gCACb;gCAEA,IAAIA,aAAa,QAAQ;oCACvBZ,YAAYgC,IAAI,CACd9D,OACK4C,IACAW,KAAK,CAAC,KACNsC,GAAG,CAAC,CAACO,OAASlF,QAAQ6C,SAAS,CAACC,IAAI,CAACZ,KAAK,CAACP,WAAW,EAAE,CAAC,CAAC,EAAEuD,KAAK,CAAC,CAAC;oCAG1E;gCACF;gCAEA,MAAMC,sBAAsBrF,mBAAmB;oCAC7CE;oCACA4B;oCACAE;oCACAsD,QAAQlD,OAAO,CAACP,WAAW,YAAYtC;oCACvCmC;oCACAR;oCACAU;gCACF;gCAEA,IAAIyD,wBAAwB,MAAM;oCAChC;gCACF;gCAEA,MAAM,EACJvD,SAASyD,YAAY,EACrB7D,UAAU8D,aAAa,EACvBhD,OAAOiD,UAAU,EAClB,GAAGJ;gCAEJ,4CAA4C;gCAC5C,IAAIE,cAAc;oCAChB,IAAI,CAACA,aAAatE,MAAM,EAAE;wCACxB;oCACF;oCAEA,IAAIyE,eAAerG;oCAEnB,IAAIoG,eAAe,QAAQ;wCAAC;wCAAU;qCAAa,CAACvC,QAAQ,CAACxB,WAAW;wCACtE,IAAIA,aAAa,UAAU;4CACzBgE,eAAe1G;wCACjB;wCAEA8B,YAAYgC,IAAI,CACd4C,gBACKH,aAAaV,GAAG,CAAC,CAAC,EAAE1C,SAAS,EAAE,GAChCT,aAAa,WAAWxC,OAAOiD,aAAalD,UAAUkD;wCAI5D;oCACF;oCAEA,IAAI;wCAAC;wCAAc;qCAAS,CAACe,QAAQ,CAACxB,WAAW;wCAC/CgE,eAAe1G;oCACjB;oCAEA8B,YAAYgC,IAAI,CACd4C,gBACKH,aAAaV,GAAG,CAAC,CAAC,EAAE1C,SAAS,EAAEK,KAAK,EAAE,GACvCtC,QAAQ6C,SAAS,CAACyC,cAAc,CAACrD,WAAWK;oCAKlD;gCACF;gCAEA,IAAIgD,kBAAkB,gBAAgBC,eAAe,MAAM;oCACzD3E,YAAYgC,IAAI,CACdzD,GACEH,OAAOuD,iBACP,qDAAqD,GACrDtD,GAAQsD,gBAAgBgD;oCAG5B;gCACF;gCAEA,IACE,AAACzD,CAAAA,MAAMmB,IAAI,KAAK,kBAAkBnB,MAAMmB,IAAI,KAAK,QAAO,KACxD7B,MAAMC,OAAO,CAACkE,eACd/D,aAAa,UACb;oCACAZ,YAAYgC,IAAI,CACdxD,GAAG,CAAC,CAAC,EAAEF,WAAWgD,KAAK,CAACP,WAAW,EAAE4D,YAAY;oBACjD,EAAErD,KAAK,CAACP,WAAW,CAAC;;yBAEf,CAAC;oCAGR;gCACF;gCAEA,IAAIH,aAAa,YAAY+D,eAAe,MAAM;oCAChD3E,YAAYgC,IAAI,CAAC5D,OAAOuD;oCACxB;gCACF;gCAEA,IAAIf,aAAa,gBAAgB+D,eAAe,MAAM;oCACpD3E,YAAYgC,IAAI,CAAC7D,UAAUwD;oCAC3B;gCACF;gCAEA,IAAIT,MAAMmB,IAAI,KAAK,WAAWjD,QAAQmD,IAAI,KAAK,YAAY;oCACzD,OAAQ3B;wCACN,KAAK;4CAAc;gDACjBZ,YAAYgC,IAAI,CACdxD,GAAG,CAAC,cAAc,EAAE8C,KAAK,CAACP,WAAW,CAAC,qBAAqB,EAAE8D,KAAKC,SAAS,CAACH,YAAY,EAAE,CAAC;gDAE7F;4CACF;wCAEA,KAAK;4CAAQ;gDACX,MAAM,CAACI,KAAKC,KAAKC,aAAaC,YAAY,GAAGP;gDAC7C,MAAMQ,iBAAwB,EAAE;gDAEhC,IAAI,OAAOF,gBAAgB,YAAY,CAACG,OAAOtB,KAAK,CAACmB,cAAc;oDACjEE,eAAenD,IAAI,CACjBxD,GAAG,CAAC,wBAAwB,EAAE8C,KAAK,CAACP,WAAW,CAAC,8CAA8C,EAAEgE,IAAI,EAAE,EAAEC,IAAI,iBAAiB,EAAEC,YAAY,CAAC,CAAC;gDAEjJ;gDAEA,IAAI,OAAOC,gBAAgB,YAAY,CAACE,OAAOtB,KAAK,CAACoB,cAAc;oDACjEC,eAAenD,IAAI,CACjBxD,GAAG,CAAC,yBAAyB,EAAE8C,KAAK,CAACP,WAAW,CAAC,8CAA8C,EAAEgE,IAAI,EAAE,EAAEC,IAAI,oBAAoB,EAAEE,YAAY,CAAC;gDAEpJ;gDACA,IAAIC,eAAehF,MAAM,EAAE;oDACzBb,QAAQ+F,IAAI,GAAGjF;oDACfd,QAAQgG,OAAO,GAAG9G,GAAG,CAAC,EAAE8C,KAAK,CAACP,WAAW,CAAC,6BAA6B,EAAEgE,IAAI,EAAE,EAAEC,IAAI,QAAQ,CAAC;oDAC9FhF,YAAYgC,IAAI,CAAC9D,OAAOiH;gDAC1B;gDACA;4CACF;wCAEA,KAAK;4CAAU;gDACbnF,YAAYgC,IAAI,CACdxD,GAAG,CAAC,UAAU,EAAE8C,KAAK,CAACP,WAAW,CAAC,qBAAqB,EAAE8D,KAAKC,SAAS,CAACH,YAAY,EAAE,CAAC;gDAEzF;4CACF;wCAEA;4CACE;oCACJ;oCACA;gCACF;gCAEA,MAAMY,eAA+B,EAAE;gCACvC,IAAIC,qBAAqBb;gCACzB,IACE/D,aAAa,QACbJ,MAAMC,OAAO,CAACkE,eACdA,WAAWc,IAAI,CAAC,CAACzB,IAAMA,MAAM,OAC7B;oCACAuB,aAAavD,IAAI,CAAC5D,OAAOuD;oCACzB6D,qBAAqBb,WAAWe,MAAM,CAAC,CAAC1B,IAAMA,MAAM;gCACtD;gCAEA,IAAIxB,aAAapD,QAAQ6C,SAAS,CAACyC,cAAc,CAC/C/C,gBACA6D;gCAGF,IACEpG,QAAQuG,sBAAsB,IAC7B/E,CAAAA,aAAa,QAAQA,aAAa,QAAO,KAC1CR,mBAAmB,QACnBI,MAAMC,OAAO,CAACkE,aACd;oCACA,IAAIiB,YAAY;oCAChB,KAAK,MAAM9E,OAAO6D,WAAY;wCAC5B,IAAI,OAAO7D,QAAQ,YAAYA,QAAQ,MAAM;4CAC3C;wCACF;wCACA,IAAI,OAAOA,QAAQ,UAAU;4CAC3B,IAAI,CAAChC,gBAAgBgC,MAAM;gDACzB8E,YAAY;gDACZ;4CACF,OAAO;gDACL;4CACF;wCACF;wCACAA,YAAY;wCACZ;oCACF;oCAEA,IAAIA,WAAW;wCACb,MAAM,IAAIlH,SAAS,CAAC,oBAAoB,EAAEmG,KAAKC,SAAS,CAACH,aAAa;oCACxE;oCAEA3E,YAAYgC,IAAI,CACdxD,IAAImE,GAAG,CACL,GAAGhB,eAAeY,IAAI,CAAC,CAAC,EAAE3B,aAAa,OAAO,OAAO,SAAS,EAAE,EAAE+D,WAC/DZ,GAAG,CAAC,CAAC8B;wCACJ,IAAIA,MAAM,MAAM;4CACd,OAAO,CAAC,IAAI,CAAC;wCACf;wCAEA,IAAI,OAAOA,MAAM,UAAU;4CACzB,OAAOA;wCACT;wCAEA,OAAO,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC;oCACjB,GACC5B,IAAI,CAAC,KAAK,CAAC,CAAC;oCAGnB;gCACF;gCAEA,IAAIsB,aAAapF,MAAM,EAAE;oCACvBoF,aAAavD,IAAI,CAACQ;oCAClBA,aAAajE,MAAMgH;gCACrB;gCACAvF,YAAYgC,IAAI,CAACQ;4BACnB;wBACF;oBACF;gBACF;YACF;QACF;IACF;IACA,IAAIxC,YAAYG,MAAM,GAAG,GAAG;QAC1B,IAAIJ,QAAQ;YACVA,SAAS7B,IAAI6B,WAAWC;QAC1B,OAAO;YACLD,SAAS7B,OAAO8B;QAClB;IACF;IACA,IAAIA,YAAYG,MAAM,KAAK,KAAK,CAACJ,QAAQ;;QACtC,CAACA,OAAO,GAAGC;IACd;IAEA,OAAOD;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../src/sqlite/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,MAAM,EAAE,MAAM,YAAY,CAAA;AAE3D,eAAO,MAAM,MAAM,EAAE,MAcpB,CAAA"}
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../src/sqlite/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,MAAM,EAAE,MAAM,YAAY,CAAA;AAE3D,eAAO,MAAM,MAAM,EAAE,MAkCpB,CAAA"}
@@ -1,5 +1,18 @@
1
1
  export const insert = async function({ db, onConflictDoUpdate, tableName, values }) {
2
2
  const table = this.tables[tableName];
3
+ // Batch insert if limitedBoundParameters: true
4
+ if (this.limitedBoundParameters && Array.isArray(values)) {
5
+ const results = [];
6
+ const colsPerRow = Object.keys(values[0]).length;
7
+ const maxParams = 100;
8
+ const maxRowsPerBatch = Math.max(1, Math.floor(maxParams / colsPerRow));
9
+ for(let i = 0; i < values.length; i += maxRowsPerBatch){
10
+ const batch = values.slice(i, i + maxRowsPerBatch);
11
+ const batchResult = onConflictDoUpdate ? await db.insert(table).values(batch).onConflictDoUpdate(onConflictDoUpdate).returning() : await db.insert(table).values(batch).returning();
12
+ results.push(...batchResult);
13
+ }
14
+ return results;
15
+ }
3
16
  const result = onConflictDoUpdate ? await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning() : await db.insert(table).values(values).returning();
4
17
  // See https://github.com/payloadcms/payload/pull/11831#discussion_r2010431908
5
18
  return result;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sqlite/insert.ts"],"sourcesContent":["import type { BaseSQLiteAdapter, Insert } from './types.js'\n\nexport const insert: Insert = async function (\n // Here 'this' is not a parameter. See:\n // https://www.typescriptlang.org/docs/handbook/2/classes.html#this-parameters\n this: BaseSQLiteAdapter,\n { db, onConflictDoUpdate, tableName, values },\n): Promise<Record<string, unknown>[]> {\n const table = this.tables[tableName]\n\n const result = onConflictDoUpdate\n ? await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning()\n : await db.insert(table).values(values).returning()\n\n // See https://github.com/payloadcms/payload/pull/11831#discussion_r2010431908\n return result as Record<string, unknown>[]\n}\n"],"names":["insert","db","onConflictDoUpdate","tableName","values","table","tables","result","returning"],"mappings":"AAEA,OAAO,MAAMA,SAAiB,eAI5B,EAAEC,EAAE,EAAEC,kBAAkB,EAAEC,SAAS,EAAEC,MAAM,EAAE;IAE7C,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IAEpC,MAAMI,SAASL,qBACX,MAAMD,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQF,kBAAkB,CAACA,oBAAoBM,SAAS,KACtF,MAAMP,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQI,SAAS;IAEnD,8EAA8E;IAC9E,OAAOD;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/sqlite/insert.ts"],"sourcesContent":["import type { BaseSQLiteAdapter, Insert } from './types.js'\n\nexport const insert: Insert = async function (\n // Here 'this' is not a parameter. See:\n // https://www.typescriptlang.org/docs/handbook/2/classes.html#this-parameters\n this: BaseSQLiteAdapter,\n { db, onConflictDoUpdate, tableName, values },\n): Promise<Record<string, unknown>[]> {\n const table = this.tables[tableName]\n\n // Batch insert if limitedBoundParameters: true\n if (this.limitedBoundParameters && Array.isArray(values)) {\n const results: Record<string, unknown>[] = []\n const colsPerRow = Object.keys(values[0]).length\n const maxParams = 100\n const maxRowsPerBatch = Math.max(1, Math.floor(maxParams / colsPerRow))\n\n for (let i = 0; i < values.length; i += maxRowsPerBatch) {\n const batch = values.slice(i, i + maxRowsPerBatch)\n\n const batchResult = onConflictDoUpdate\n ? await db.insert(table).values(batch).onConflictDoUpdate(onConflictDoUpdate).returning()\n : await db.insert(table).values(batch).returning()\n\n results.push(...(batchResult as Record<string, unknown>[]))\n }\n\n return results\n }\n\n const result = onConflictDoUpdate\n ? await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning()\n : await db.insert(table).values(values).returning()\n\n // See https://github.com/payloadcms/payload/pull/11831#discussion_r2010431908\n return result as Record<string, unknown>[]\n}\n"],"names":["insert","db","onConflictDoUpdate","tableName","values","table","tables","limitedBoundParameters","Array","isArray","results","colsPerRow","Object","keys","length","maxParams","maxRowsPerBatch","Math","max","floor","i","batch","slice","batchResult","returning","push","result"],"mappings":"AAEA,OAAO,MAAMA,SAAiB,eAI5B,EAAEC,EAAE,EAAEC,kBAAkB,EAAEC,SAAS,EAAEC,MAAM,EAAE;IAE7C,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IAEpC,+CAA+C;IAC/C,IAAI,IAAI,CAACI,sBAAsB,IAAIC,MAAMC,OAAO,CAACL,SAAS;QACxD,MAAMM,UAAqC,EAAE;QAC7C,MAAMC,aAAaC,OAAOC,IAAI,CAACT,MAAM,CAAC,EAAE,EAAEU,MAAM;QAChD,MAAMC,YAAY;QAClB,MAAMC,kBAAkBC,KAAKC,GAAG,CAAC,GAAGD,KAAKE,KAAK,CAACJ,YAAYJ;QAE3D,IAAK,IAAIS,IAAI,GAAGA,IAAIhB,OAAOU,MAAM,EAAEM,KAAKJ,gBAAiB;YACvD,MAAMK,QAAQjB,OAAOkB,KAAK,CAACF,GAAGA,IAAIJ;YAElC,MAAMO,cAAcrB,qBAChB,MAAMD,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACiB,OAAOnB,kBAAkB,CAACA,oBAAoBsB,SAAS,KACrF,MAAMvB,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACiB,OAAOG,SAAS;YAElDd,QAAQe,IAAI,IAAKF;QACnB;QAEA,OAAOb;IACT;IAEA,MAAMgB,SAASxB,qBACX,MAAMD,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQF,kBAAkB,CAACA,oBAAoBsB,SAAS,KACtF,MAAMvB,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQoB,SAAS;IAEnD,8EAA8E;IAC9E,OAAOE;AACT,EAAC"}
package/dist/types.d.ts CHANGED
@@ -261,6 +261,7 @@ export interface DrizzleAdapter extends BaseDatabaseAdapter {
261
261
  indexes: Set<string>;
262
262
  initializing: Promise<void>;
263
263
  insert: Insert;
264
+ limitedBoundParameters?: boolean;
264
265
  localesSuffix?: string;
265
266
  logger: DrizzleConfig['logger'];
266
267
  operators: Operators;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n Column,\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n ExtractTablesWithRelations,\n Relation,\n Relations,\n SQL,\n TableRelationalConfig,\n} from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres'\nimport type {\n PgColumn,\n PgTable,\n PgTransaction,\n Precision,\n UpdateDeleteAction,\n} from 'drizzle-orm/pg-core'\nimport type { SQLiteColumn, SQLiteTable, SQLiteTransaction } from 'drizzle-orm/sqlite-core'\nimport type { Result } from 'drizzle-orm/sqlite-core/session'\nimport type {\n BaseDatabaseAdapter,\n FlattenedField,\n MigrationData,\n Payload,\n PayloadRequest,\n} from 'payload'\n\nimport type { BuildQueryJoinAliases } from './queries/buildQuery.js'\n\nexport { BuildQueryJoinAliases }\n\nimport type { ResultSet } from '@libsql/client'\nimport type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { QueryResult } from 'pg'\n\nimport type { Operators } from './queries/operatorMap.js'\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type SQLiteDB = LibSQLDatabase<\n Record<string, GenericRelation | GenericTable> & Record<string, unknown>\n>\n\nexport type GenericPgColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns<T> = {\n [x: string]: T\n}\n\ntype GenericPgTable = PgTable<{\n columns: GenericColumns<GenericPgColumn>\n dialect: string\n name: string\n schema: undefined\n}>\n\ntype GenericSQLiteTable = SQLiteTable<{\n columns: GenericColumns<SQLiteColumn>\n dialect: string\n name: string\n schema: undefined\n}>\n\nexport type GenericColumn = GenericPgColumn | SQLiteColumn\n\nexport type GenericTable = GenericPgTable | GenericSQLiteTable\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type TransactionSQLite = SQLiteTransaction<\n 'async',\n Result<'async', unknown>,\n Record<string, unknown>,\n { tsName: TableRelationalConfig }\n>\nexport type TransactionPg = PgTransaction<\n NodePgQueryResultHKT,\n Record<string, unknown>,\n ExtractTablesWithRelations<Record<string, unknown>>\n>\n\nexport type DrizzleTransaction = TransactionPg | TransactionSQLite\n\nexport type CountDistinct = (args: {\n column?: PgColumn<any> | SQLiteColumn<any>\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: DrizzleAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: DrizzleTransaction | LibSQLDatabase | PostgresDB\n drizzle?: LibSQLDatabase | PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) =>\n | Promise<QueryResult<Record<string, T>>>\n | SQLiteRaw<Promise<{ rows: T[] }>>\n | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n onConflictDoUpdate?: unknown\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\nexport type RequireDrizzleKit = () => {\n generateDrizzleJson: (\n args: Record<string, unknown>,\n ) => DrizzleSnapshotJSON | Promise<DrizzleSnapshotJSON>\n generateMigration: (prev: DrizzleSnapshotJSON, cur: DrizzleSnapshotJSON) => Promise<string[]>\n pushSchema: (\n schema: Record<string, unknown>,\n drizzle: DrizzleAdapter['drizzle'],\n filterSchema?: string[],\n tablesFilter?: string[],\n extensionsFilter?: string[],\n ) => Promise<{ apply; hasDataLoss; warnings }>\n upSnapshot?: (snapshot: Record<string, unknown>) => DrizzleSnapshotJSON\n}\n\nexport type Migration = {\n down: ({\n db,\n payload,\n req,\n }: {\n db?: DrizzleTransaction | LibSQLDatabase<Record<string, never>> | PostgresDB\n payload: Payload\n req: PayloadRequest\n }) => Promise<void>\n up: ({\n db,\n payload,\n req,\n }: {\n db?: DrizzleTransaction | LibSQLDatabase | PostgresDB\n payload: Payload\n req: PayloadRequest\n }) => Promise<void>\n} & MigrationData\n\nexport type CreateJSONQueryArgs = {\n column?: Column | string\n operator: string\n pathSegments: string[]\n rawColumn?: SQL<unknown>\n table?: string\n treatAsArray?: string[]\n treatRootAsArray?: boolean\n value: boolean | number | number[] | string | string[]\n}\n\n/**\n * Abstract relation link\n */\nexport type RawRelation =\n | {\n fields: { name: string; table: string }[]\n references: string[]\n relationName?: string\n to: string\n type: 'one'\n }\n | {\n relationName?: string\n to: string\n type: 'many'\n }\n\n/**\n * Abstract SQL table that later gets converted by database specific implementation to Drizzle\n */\nexport type RawTable = {\n columns: Record<string, RawColumn>\n foreignKeys?: Record<string, RawForeignKey>\n indexes?: Record<string, RawIndex>\n name: string\n}\n\n/**\n * Abstract SQL foreign key that later gets converted by database specific implementation to Drizzle\n */\nexport type RawForeignKey = {\n columns: string[]\n foreignColumns: { name: string; table: string }[]\n name: string\n onDelete?: UpdateDeleteAction\n onUpdate?: UpdateDeleteAction\n}\n\n/**\n * Abstract SQL index that later gets converted by database specific implementation to Drizzle\n */\nexport type RawIndex = {\n name: string\n on: string | string[]\n unique?: boolean\n}\n\n/**\n * Abstract SQL column that later gets converted by database specific implementation to Drizzle\n */\nexport type BaseRawColumn = {\n default?: any\n name: string\n notNull?: boolean\n primaryKey?: boolean\n reference?: {\n name: string\n onDelete: UpdateDeleteAction\n table: string\n }\n}\n\n/**\n * Postgres: native timestamp type\n * SQLite: text column, defaultNow achieved through strftime('%Y-%m-%dT%H:%M:%fZ', 'now'). withTimezone/precision have no any effect.\n */\nexport type TimestampRawColumn = {\n defaultNow?: boolean\n mode: 'date' | 'string'\n precision: Precision\n type: 'timestamp'\n withTimezone?: boolean\n} & BaseRawColumn\n\n/**\n * Postgres: native UUID type and db lavel defaultRandom\n * SQLite: text type and defaultRandom in the app level\n */\nexport type UUIDRawColumn = {\n defaultRandom?: boolean\n type: 'uuid'\n} & BaseRawColumn\n\n/**\n * Accepts either `locale: true` to have options from locales or `options` string array\n * Postgres: native enums\n * SQLite: text column with checks.\n */\nexport type EnumRawColumn = (\n | {\n enumName: string\n options: string[]\n type: 'enum'\n }\n | {\n locale: true\n type: 'enum'\n }\n) &\n BaseRawColumn\n\nexport type IntegerRawColumn = {\n /**\n * SQLite only.\n * Enable [AUTOINCREMENT](https://www.sqlite.org/autoinc.html) for primary key to ensure that the same ID cannot be reused from previously deleted rows.\n */\n autoIncrement?: boolean\n type: 'integer'\n} & BaseRawColumn\n\nexport type VectorRawColumn = {\n dimensions?: number\n type: 'vector'\n} & BaseRawColumn\n\nexport type HalfVecRawColumn = {\n dimensions?: number\n type: 'halfvec'\n} & BaseRawColumn\n\nexport type SparseVecRawColumn = {\n dimensions?: number\n type: 'sparsevec'\n} & BaseRawColumn\n\nexport type BinaryVecRawColumn = {\n dimensions?: number\n type: 'bit'\n} & BaseRawColumn\n\nexport type RawColumn =\n | ({\n type: 'boolean' | 'geometry' | 'jsonb' | 'numeric' | 'serial' | 'text' | 'varchar'\n } & BaseRawColumn)\n | BinaryVecRawColumn\n | EnumRawColumn\n | HalfVecRawColumn\n | IntegerRawColumn\n | SparseVecRawColumn\n | TimestampRawColumn\n | UUIDRawColumn\n | VectorRawColumn\n\nexport type IDType = 'integer' | 'numeric' | 'text' | 'uuid' | 'varchar'\n\nexport type SetColumnID = (args: {\n adapter: DrizzleAdapter\n columns: Record<string, RawColumn>\n fields: FlattenedField[]\n}) => IDType\n\nexport type ColumnToCodeConverter = (args: {\n adapter: DrizzleAdapter\n addEnum: (name: string, options: string[]) => void\n addImport: (from: string, name: string) => void\n column: RawColumn\n locales?: string[]\n tableKey: string\n}) => string\n\nexport type BuildDrizzleTable<T extends DrizzleAdapter = DrizzleAdapter> = (args: {\n adapter: T\n locales: string[]\n rawTable: RawTable\n}) => void\n\nexport interface DrizzleAdapter extends BaseDatabaseAdapter {\n blocksAsJSON?: boolean\n convertPathToJSONTraversal?: (incomingSegments: string[]) => string\n countDistinct: CountDistinct\n createJSONQuery: (args: CreateJSONQueryArgs) => string\n defaultDrizzleSnapshot: Record<string, unknown>\n deleteWhere: DeleteWhere\n drizzle: LibSQLDatabase | PostgresDB\n dropDatabase: DropDatabase\n enums?: never | Record<string, unknown>\n\n execute: Execute<unknown>\n features: {\n json?: boolean\n }\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: 'serial' | 'uuid'\n indexes: Set<string>\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n push: boolean\n rawRelations: Record<string, Record<string, RawRelation>>\n rawTables: Record<string, RawTable>\n rejectInitializing: () => void\n\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n requireDrizzleKit: RequireDrizzleKit\n resolveInitializing: () => void\n schema: Record<string, unknown>\n\n schemaName?: string\n sessions: {\n [id: string]: {\n db: DrizzleTransaction\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, any>\n transactionOptions: unknown\n versionsSuffix?: string\n}\n\nexport type RelationMap = Map<\n string,\n {\n localized: boolean\n relationName?: string\n target: string\n type: 'many' | 'one'\n }\n>\n\n/**\n * @deprecated - will be removed in 4.0. Use query + $dynamic() instead: https://orm.drizzle.team/docs/dynamic-query-building\n */\nexport type { ChainedMethods } from './find/chainMethods.js'\n"],"names":[],"mappings":"AA8YA;;CAEC,GACD,WAA4D"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n Column,\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n ExtractTablesWithRelations,\n Relation,\n Relations,\n SQL,\n TableRelationalConfig,\n} from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { NodePgDatabase, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres'\nimport type {\n PgColumn,\n PgTable,\n PgTransaction,\n Precision,\n UpdateDeleteAction,\n} from 'drizzle-orm/pg-core'\nimport type { SQLiteColumn, SQLiteTable, SQLiteTransaction } from 'drizzle-orm/sqlite-core'\nimport type { Result } from 'drizzle-orm/sqlite-core/session'\nimport type {\n BaseDatabaseAdapter,\n FlattenedField,\n MigrationData,\n Payload,\n PayloadRequest,\n} from 'payload'\n\nimport type { BuildQueryJoinAliases } from './queries/buildQuery.js'\n\nexport { BuildQueryJoinAliases }\n\nimport type { ResultSet } from '@libsql/client'\nimport type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { QueryResult } from 'pg'\n\nimport type { Operators } from './queries/operatorMap.js'\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type SQLiteDB = LibSQLDatabase<\n Record<string, GenericRelation | GenericTable> & Record<string, unknown>\n>\n\nexport type GenericPgColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns<T> = {\n [x: string]: T\n}\n\ntype GenericPgTable = PgTable<{\n columns: GenericColumns<GenericPgColumn>\n dialect: string\n name: string\n schema: undefined\n}>\n\ntype GenericSQLiteTable = SQLiteTable<{\n columns: GenericColumns<SQLiteColumn>\n dialect: string\n name: string\n schema: undefined\n}>\n\nexport type GenericColumn = GenericPgColumn | SQLiteColumn\n\nexport type GenericTable = GenericPgTable | GenericSQLiteTable\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type TransactionSQLite = SQLiteTransaction<\n 'async',\n Result<'async', unknown>,\n Record<string, unknown>,\n { tsName: TableRelationalConfig }\n>\nexport type TransactionPg = PgTransaction<\n NodePgQueryResultHKT,\n Record<string, unknown>,\n ExtractTablesWithRelations<Record<string, unknown>>\n>\n\nexport type DrizzleTransaction = TransactionPg | TransactionSQLite\n\nexport type CountDistinct = (args: {\n column?: PgColumn<any> | SQLiteColumn<any>\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: DrizzleAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: DrizzleTransaction | LibSQLDatabase | PostgresDB\n drizzle?: LibSQLDatabase | PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) =>\n | Promise<QueryResult<Record<string, T>>>\n | SQLiteRaw<Promise<{ rows: T[] }>>\n | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: DrizzleTransaction | LibSQLDatabase | PostgresDB\n onConflictDoUpdate?: unknown\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\nexport type RequireDrizzleKit = () => {\n generateDrizzleJson: (\n args: Record<string, unknown>,\n ) => DrizzleSnapshotJSON | Promise<DrizzleSnapshotJSON>\n generateMigration: (prev: DrizzleSnapshotJSON, cur: DrizzleSnapshotJSON) => Promise<string[]>\n pushSchema: (\n schema: Record<string, unknown>,\n drizzle: DrizzleAdapter['drizzle'],\n filterSchema?: string[],\n tablesFilter?: string[],\n extensionsFilter?: string[],\n ) => Promise<{ apply; hasDataLoss; warnings }>\n upSnapshot?: (snapshot: Record<string, unknown>) => DrizzleSnapshotJSON\n}\n\nexport type Migration = {\n down: ({\n db,\n payload,\n req,\n }: {\n db?: DrizzleTransaction | LibSQLDatabase<Record<string, never>> | PostgresDB\n payload: Payload\n req: PayloadRequest\n }) => Promise<void>\n up: ({\n db,\n payload,\n req,\n }: {\n db?: DrizzleTransaction | LibSQLDatabase | PostgresDB\n payload: Payload\n req: PayloadRequest\n }) => Promise<void>\n} & MigrationData\n\nexport type CreateJSONQueryArgs = {\n column?: Column | string\n operator: string\n pathSegments: string[]\n rawColumn?: SQL<unknown>\n table?: string\n treatAsArray?: string[]\n treatRootAsArray?: boolean\n value: boolean | number | number[] | string | string[]\n}\n\n/**\n * Abstract relation link\n */\nexport type RawRelation =\n | {\n fields: { name: string; table: string }[]\n references: string[]\n relationName?: string\n to: string\n type: 'one'\n }\n | {\n relationName?: string\n to: string\n type: 'many'\n }\n\n/**\n * Abstract SQL table that later gets converted by database specific implementation to Drizzle\n */\nexport type RawTable = {\n columns: Record<string, RawColumn>\n foreignKeys?: Record<string, RawForeignKey>\n indexes?: Record<string, RawIndex>\n name: string\n}\n\n/**\n * Abstract SQL foreign key that later gets converted by database specific implementation to Drizzle\n */\nexport type RawForeignKey = {\n columns: string[]\n foreignColumns: { name: string; table: string }[]\n name: string\n onDelete?: UpdateDeleteAction\n onUpdate?: UpdateDeleteAction\n}\n\n/**\n * Abstract SQL index that later gets converted by database specific implementation to Drizzle\n */\nexport type RawIndex = {\n name: string\n on: string | string[]\n unique?: boolean\n}\n\n/**\n * Abstract SQL column that later gets converted by database specific implementation to Drizzle\n */\nexport type BaseRawColumn = {\n default?: any\n name: string\n notNull?: boolean\n primaryKey?: boolean\n reference?: {\n name: string\n onDelete: UpdateDeleteAction\n table: string\n }\n}\n\n/**\n * Postgres: native timestamp type\n * SQLite: text column, defaultNow achieved through strftime('%Y-%m-%dT%H:%M:%fZ', 'now'). withTimezone/precision have no any effect.\n */\nexport type TimestampRawColumn = {\n defaultNow?: boolean\n mode: 'date' | 'string'\n precision: Precision\n type: 'timestamp'\n withTimezone?: boolean\n} & BaseRawColumn\n\n/**\n * Postgres: native UUID type and db lavel defaultRandom\n * SQLite: text type and defaultRandom in the app level\n */\nexport type UUIDRawColumn = {\n defaultRandom?: boolean\n type: 'uuid'\n} & BaseRawColumn\n\n/**\n * Accepts either `locale: true` to have options from locales or `options` string array\n * Postgres: native enums\n * SQLite: text column with checks.\n */\nexport type EnumRawColumn = (\n | {\n enumName: string\n options: string[]\n type: 'enum'\n }\n | {\n locale: true\n type: 'enum'\n }\n) &\n BaseRawColumn\n\nexport type IntegerRawColumn = {\n /**\n * SQLite only.\n * Enable [AUTOINCREMENT](https://www.sqlite.org/autoinc.html) for primary key to ensure that the same ID cannot be reused from previously deleted rows.\n */\n autoIncrement?: boolean\n type: 'integer'\n} & BaseRawColumn\n\nexport type VectorRawColumn = {\n dimensions?: number\n type: 'vector'\n} & BaseRawColumn\n\nexport type HalfVecRawColumn = {\n dimensions?: number\n type: 'halfvec'\n} & BaseRawColumn\n\nexport type SparseVecRawColumn = {\n dimensions?: number\n type: 'sparsevec'\n} & BaseRawColumn\n\nexport type BinaryVecRawColumn = {\n dimensions?: number\n type: 'bit'\n} & BaseRawColumn\n\nexport type RawColumn =\n | ({\n type: 'boolean' | 'geometry' | 'jsonb' | 'numeric' | 'serial' | 'text' | 'varchar'\n } & BaseRawColumn)\n | BinaryVecRawColumn\n | EnumRawColumn\n | HalfVecRawColumn\n | IntegerRawColumn\n | SparseVecRawColumn\n | TimestampRawColumn\n | UUIDRawColumn\n | VectorRawColumn\n\nexport type IDType = 'integer' | 'numeric' | 'text' | 'uuid' | 'varchar'\n\nexport type SetColumnID = (args: {\n adapter: DrizzleAdapter\n columns: Record<string, RawColumn>\n fields: FlattenedField[]\n}) => IDType\n\nexport type ColumnToCodeConverter = (args: {\n adapter: DrizzleAdapter\n addEnum: (name: string, options: string[]) => void\n addImport: (from: string, name: string) => void\n column: RawColumn\n locales?: string[]\n tableKey: string\n}) => string\n\nexport type BuildDrizzleTable<T extends DrizzleAdapter = DrizzleAdapter> = (args: {\n adapter: T\n locales: string[]\n rawTable: RawTable\n}) => void\n\nexport interface DrizzleAdapter extends BaseDatabaseAdapter {\n blocksAsJSON?: boolean\n convertPathToJSONTraversal?: (incomingSegments: string[]) => string\n countDistinct: CountDistinct\n createJSONQuery: (args: CreateJSONQueryArgs) => string\n defaultDrizzleSnapshot: Record<string, unknown>\n deleteWhere: DeleteWhere\n drizzle: LibSQLDatabase | PostgresDB\n dropDatabase: DropDatabase\n enums?: never | Record<string, unknown>\n execute: Execute<unknown>\n\n features: {\n json?: boolean\n }\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: 'serial' | 'uuid'\n indexes: Set<string>\n initializing: Promise<void>\n insert: Insert\n limitedBoundParameters?: boolean\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n push: boolean\n rawRelations: Record<string, Record<string, RawRelation>>\n rawTables: Record<string, RawTable>\n rejectInitializing: () => void\n\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n requireDrizzleKit: RequireDrizzleKit\n resolveInitializing: () => void\n schema: Record<string, unknown>\n\n schemaName?: string\n sessions: {\n [id: string]: {\n db: DrizzleTransaction\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, any>\n transactionOptions: unknown\n versionsSuffix?: string\n}\n\nexport type RelationMap = Map<\n string,\n {\n localized: boolean\n relationName?: string\n target: string\n type: 'many' | 'one'\n }\n>\n\n/**\n * @deprecated - will be removed in 4.0. Use query + $dynamic() instead: https://orm.drizzle.team/docs/dynamic-query-building\n */\nexport type { ChainedMethods } from './find/chainMethods.js'\n"],"names":[],"mappings":"AA+YA;;CAEC,GACD,WAA4D"}
@@ -0,0 +1,2 @@
1
+ export declare function isValidStringID(value: string): boolean;
2
+ //# sourceMappingURL=isValidStringID.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isValidStringID.d.ts","sourceRoot":"","sources":["../../src/utilities/isValidStringID.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,WAE5C"}
@@ -0,0 +1,5 @@
1
+ export function isValidStringID(value) {
2
+ return /^[\w-]+$/.test(value);
3
+ }
4
+
5
+ //# sourceMappingURL=isValidStringID.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/isValidStringID.ts"],"sourcesContent":["export function isValidStringID(value: string) {\n return /^[\\w-]+$/.test(value)\n}\n"],"names":["isValidStringID","value","test"],"mappings":"AAAA,OAAO,SAASA,gBAAgBC,KAAa;IAC3C,OAAO,WAAWC,IAAI,CAACD;AACzB"}
@@ -0,0 +1,14 @@
1
+ import { isValidStringID } from './isValidStringID.js';
2
+ describe('isValidStringID', ()=>{
3
+ it('should pass', ()=>{
4
+ expect(isValidStringID('1')).toBe(true);
5
+ expect(isValidStringID('a_b_c')).toBe(true);
6
+ expect(isValidStringID('8cc2df6d-6e07-4da4-be48-5fa747c3b92b')).toBe(true);
7
+ });
8
+ it('should not pass', ()=>{
9
+ expect(isValidStringID('1 2 3')).toBe(false);
10
+ expect(isValidStringID('1@')).toBe(false);
11
+ });
12
+ });
13
+
14
+ //# sourceMappingURL=isValidStringID.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/isValidStringID.spec.ts"],"sourcesContent":["import { isValidStringID } from './isValidStringID.js'\n\ndescribe('isValidStringID', () => {\n it('should pass', () => {\n expect(isValidStringID('1')).toBe(true)\n expect(isValidStringID('a_b_c')).toBe(true)\n expect(isValidStringID('8cc2df6d-6e07-4da4-be48-5fa747c3b92b')).toBe(true)\n })\n\n it('should not pass', () => {\n expect(isValidStringID('1 2 3')).toBe(false)\n expect(isValidStringID('1@')).toBe(false)\n })\n})\n"],"names":["isValidStringID","describe","it","expect","toBe"],"mappings":"AAAA,SAASA,eAAe,QAAQ,uBAAsB;AAEtDC,SAAS,mBAAmB;IAC1BC,GAAG,eAAe;QAChBC,OAAOH,gBAAgB,MAAMI,IAAI,CAAC;QAClCD,OAAOH,gBAAgB,UAAUI,IAAI,CAAC;QACtCD,OAAOH,gBAAgB,yCAAyCI,IAAI,CAAC;IACvE;IAEAF,GAAG,mBAAmB;QACpBC,OAAOH,gBAAgB,UAAUI,IAAI,CAAC;QACtCD,OAAOH,gBAAgB,OAAOI,IAAI,CAAC;IACrC;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/drizzle",
3
- "version": "3.59.0-internal.ff6711a",
3
+ "version": "3.59.0",
4
4
  "description": "A library of shared functions used by different payload database adapters",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -50,7 +50,7 @@
50
50
  "dependencies": {
51
51
  "console-table-printer": "2.12.1",
52
52
  "dequal": "2.0.3",
53
- "drizzle-orm": "0.44.2",
53
+ "drizzle-orm": "0.44.6",
54
54
  "prompts": "2.4.2",
55
55
  "to-snake-case": "1.0.0",
56
56
  "uuid": "9.0.0"
@@ -60,10 +60,10 @@
60
60
  "@types/pg": "8.10.2",
61
61
  "@types/to-snake-case": "1.0.0",
62
62
  "@payloadcms/eslint-config": "3.28.0",
63
- "payload": "3.59.0-internal.ff6711a"
63
+ "payload": "3.59.0"
64
64
  },
65
65
  "peerDependencies": {
66
- "payload": "3.59.0-internal.ff6711a"
66
+ "payload": "3.59.0"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "pnpm build:swc && pnpm build:types",