@payloadcms/drizzle 4.0.0-internal.b6f3b9a → 4.0.0-internal.b8a92d2
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.
- package/dist/exports/postgres.d.ts +2 -0
- package/dist/exports/postgres.d.ts.map +1 -1
- package/dist/exports/postgres.js +2 -0
- package/dist/exports/postgres.js.map +1 -1
- package/dist/find/buildPolymorphicJoinQuery.d.ts +38 -0
- package/dist/find/buildPolymorphicJoinQuery.d.ts.map +1 -0
- package/dist/find/buildPolymorphicJoinQuery.js +135 -0
- package/dist/find/buildPolymorphicJoinQuery.js.map +1 -0
- package/dist/find/buildPolymorphicJoinWhere.d.ts +20 -0
- package/dist/find/buildPolymorphicJoinWhere.d.ts.map +1 -0
- package/dist/find/buildPolymorphicJoinWhere.js +301 -0
- package/dist/find/buildPolymorphicJoinWhere.js.map +1 -0
- package/dist/find/createPolymorphicJoinWherePlan.d.ts +37 -0
- package/dist/find/createPolymorphicJoinWherePlan.d.ts.map +1 -0
- package/dist/find/createPolymorphicJoinWherePlan.js +191 -0
- package/dist/find/createPolymorphicJoinWherePlan.js.map +1 -0
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +19 -191
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +35 -13
- package/dist/migrate.js.map +1 -1
- package/dist/migrateDown.d.ts +2 -1
- package/dist/migrateDown.d.ts.map +1 -1
- package/dist/migrateDown.js +12 -2
- package/dist/migrateDown.js.map +1 -1
- package/dist/migrateFresh.d.ts +4 -2
- package/dist/migrateFresh.d.ts.map +1 -1
- package/dist/migrateFresh.js +21 -7
- package/dist/migrateFresh.js.map +1 -1
- package/dist/migrateRefresh.d.ts +2 -1
- package/dist/migrateRefresh.d.ts.map +1 -1
- package/dist/migrateRefresh.js +14 -3
- package/dist/migrateRefresh.js.map +1 -1
- package/dist/migrateReset.d.ts +2 -1
- package/dist/migrateReset.d.ts.map +1 -1
- package/dist/migrateReset.js +12 -2
- package/dist/migrateReset.js.map +1 -1
- package/dist/migrateStatus.d.ts +2 -1
- package/dist/migrateStatus.d.ts.map +1 -1
- package/dist/migrateStatus.js +11 -6
- package/dist/migrateStatus.js.map +1 -1
- package/dist/postgres/createJSONQuery/index.js +3 -3
- package/dist/postgres/createJSONQuery/index.js.map +1 -1
- package/dist/postgres/init.d.ts.map +1 -1
- package/dist/postgres/init.js +6 -0
- package/dist/postgres/init.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js.map +1 -1
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.d.ts +15 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.d.ts.map +1 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.js +25 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.js.map +1 -0
- package/dist/postgres/query/postgresUnaccent.d.ts +13 -0
- package/dist/postgres/query/postgresUnaccent.d.ts.map +1 -0
- package/dist/postgres/query/postgresUnaccent.js +40 -0
- package/dist/postgres/query/postgresUnaccent.js.map +1 -0
- package/dist/postgres/types.d.ts +13 -2
- package/dist/postgres/types.d.ts.map +1 -1
- package/dist/postgres/types.js.map +1 -1
- package/dist/queries/buildOperatorConstraint.d.ts +22 -0
- package/dist/queries/buildOperatorConstraint.d.ts.map +1 -0
- package/dist/queries/buildOperatorConstraint.js +63 -0
- package/dist/queries/buildOperatorConstraint.js.map +1 -0
- package/dist/queries/getTableColumnFromPath.d.ts +12 -3
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +59 -27
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/operatorMap.d.ts +7 -3
- package/dist/queries/operatorMap.d.ts.map +1 -1
- package/dist/queries/operatorMap.js.map +1 -1
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +262 -10
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queries/resolveRelationshipPath.d.ts +36 -0
- package/dist/queries/resolveRelationshipPath.d.ts.map +1 -0
- package/dist/queries/resolveRelationshipPath.js +66 -0
- package/dist/queries/resolveRelationshipPath.js.map +1 -0
- package/dist/queries/validateOperatorHandlers.d.ts +8 -0
- package/dist/queries/validateOperatorHandlers.d.ts.map +1 -0
- package/dist/queries/validateOperatorHandlers.js +30 -0
- package/dist/queries/validateOperatorHandlers.js.map +1 -0
- package/dist/schema/build.d.ts.map +1 -1
- package/dist/schema/build.js +4 -5
- package/dist/schema/build.js.map +1 -1
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js +3 -2
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js.map +1 -1
- package/dist/sqlite/createJSONQuery/index.d.ts.map +1 -1
- package/dist/sqlite/createJSONQuery/index.js +6 -5
- package/dist/sqlite/createJSONQuery/index.js.map +1 -1
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +8 -14
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/types.d.ts +50 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/updateOne.d.ts.map +1 -1
- package/dist/updateOne.js +41 -1
- package/dist/updateOne.js.map +1 -1
- package/dist/upsertRow/index.d.ts +1 -1
- package/dist/upsertRow/index.d.ts.map +1 -1
- package/dist/upsertRow/index.js +25 -5
- package/dist/upsertRow/index.js.map +1 -1
- package/dist/utilities/buildCreateMigration.d.ts.map +1 -1
- package/dist/utilities/buildCreateMigration.js +12 -8
- package/dist/utilities/buildCreateMigration.js.map +1 -1
- package/dist/utilities/buildForeignKeyName.d.ts.map +1 -1
- package/dist/utilities/buildForeignKeyName.js +3 -2
- package/dist/utilities/buildForeignKeyName.js.map +1 -1
- package/dist/utilities/buildIndexName.d.ts.map +1 -1
- package/dist/utilities/buildIndexName.js +3 -2
- package/dist/utilities/buildIndexName.js.map +1 -1
- package/dist/utilities/checkTruncatedIdentifiers.d.ts +13 -0
- package/dist/utilities/checkTruncatedIdentifiers.d.ts.map +1 -0
- package/dist/utilities/checkTruncatedIdentifiers.js +56 -0
- package/dist/utilities/checkTruncatedIdentifiers.js.map +1 -0
- package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
- package/dist/utilities/createSchemaGenerator.js +3 -0
- package/dist/utilities/createSchemaGenerator.js.map +1 -1
- package/dist/utilities/parseJSONPathSegment.d.ts +9 -0
- package/dist/utilities/parseJSONPathSegment.d.ts.map +1 -0
- package/dist/utilities/parseJSONPathSegment.js +17 -0
- package/dist/utilities/parseJSONPathSegment.js.map +1 -0
- package/dist/utilities/validateIdentifierLength.d.ts +5 -0
- package/dist/utilities/validateIdentifierLength.d.ts.map +1 -1
- package/dist/utilities/validateIdentifierLength.js +4 -0
- package/dist/utilities/validateIdentifierLength.js.map +1 -1
- package/package.json +3 -3
- package/dist/schema/buildRawSchema.spec.js +0 -230
- package/dist/schema/buildRawSchema.spec.js.map +0 -1
- package/dist/upsertRow/handleUpsertError.spec.js +0 -42
- package/dist/upsertRow/handleUpsertError.spec.js.map +0 -1
- package/dist/utilities/isValidStringID.spec.js +0 -15
- package/dist/utilities/isValidStringID.spec.js.map +0 -1
- package/dist/utilities/validateIdentifierLength.spec.js +0 -19
- package/dist/utilities/validateIdentifierLength.spec.js.map +0 -1
|
@@ -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, hasDraftsEnabled } 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 { sanitizePathSegment } from '../utilities/sanitizePathSegment.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 let payloadOperator = Object.keys(where[k])[0]\n\n const value = where[k][payloadOperator]\n if (payloadOperator === '$raw') {\n if (typeof value !== 'string') {\n return undefined\n }\n return sql.raw(value)\n }\n\n // Handle exists: false -> use isNull instead of isNotNull\n\n // This logic is duplicated from sanitizeQueryValue.ts because buildSQLWhere\n // is a simplified WHERE builder for polymorphic joins that doesn't have access\n // to field definitions needed by sanitizeQueryValue\n if (payloadOperator === 'exists' && value === false) {\n payloadOperator = 'isNull'\n }\n\n if (!(payloadOperator in operatorMap)) {\n return undefined\n }\n\n const sanitizedColumnName = k\n .split('.')\n .map((s) => sanitizePathSegment(s))\n .join('_')\n\n return operatorMap[payloadOperator](sql.raw(`\"${alias}\".\"${sanitizedColumnName}\"`), 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 forceWithFields?: boolean\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 forceWithFields,\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 forceWithFields,\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.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 forceWithFields: blockSelect === true,\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 forceWithFields,\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 // For timestamp fields like deletedAt, we need to cast to timestamp in Postgres\n // SQLite doesn't require explicit type casting for UNION queries\n if (path === 'deletedAt' && adapter.name === 'postgres') {\n selectFields[path] = sql`null::timestamp with time zone`.as(path)\n } else {\n selectFields[path] = sql`null`.as(path)\n }\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 const sortedUnionAlias = `${columnName}_sorted`\n\n let limitOffsetSQL = sql.empty()\n if (limit) {\n limitOffsetSQL = sql` LIMIT ${limit}`\n }\n if (page && limit !== 0) {\n const offset = (page - 1) * limit\n if (offset > 0) {\n limitOffsetSQL = sql`${limitOffsetSQL} OFFSET ${offset}`\n }\n }\n\n // Correlate to parent row + apply any join where filters\n let innerWhere = sql.raw(`\"${sortedUnionAlias}\".\"${onPath}\" = \"${currentTableName}\".\"id\"`)\n if (where && Object.keys(where).length > 0) {\n const additionalWhere = buildSQLWhere(where, sortedUnionAlias)\n innerWhere = sql`${innerWhere} AND ${additionalWhere}`\n }\n\n // IMPORTANT: For polymorphic joins, LIMIT must be applied AFTER correlating to the parent row.\n // Otherwise, the limit applies globally across ALL parents, not per-parent.\n currentArgs.extras[columnName] = sql`(\n SELECT ${jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".\"id\"`),\n relationTo: sql.raw(`\"${subQueryAlias}\".\"relationTo\"`),\n })}\n FROM (\n SELECT * FROM ${sql`${currentQuery.as(sortedUnionAlias)}`}\n WHERE ${innerWhere}${limitOffsetSQL}\n ) AS ${sql.raw(`\"${subQueryAlias}\"`)}\n )`.as(columnName)\n } else {\n const useDrafts =\n (versions || draftsEnabled) &&\n hasDraftsEnabled(adapter.payload.collections[field.collection].config)\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 (forceWithFields) {\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\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","hasDraftsEnabled","toSnakeCase","buildQuery","getTableAlias","operatorMap","getArrayRelationName","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","sanitizePathSegment","InternalBlockTableNameIndex","resolveBlockTableName","flattenAllWherePaths","where","paths","k","includes","toUpperCase","Array","isArray","whereField","push","path","split","join","ref","buildSQLWhere","alias","op","accumulated","payloadOperator","Object","keys","value","undefined","raw","sanitizedColumnName","map","s","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","draftsEnabled","fields","forceWithFields","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","length","blocksSelect","blocksAsJSON","fieldPath","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","sortedUnionAlias","limitOffsetSQL","empty","offset","innerWhere","additionalWhere","useDrafts","versionsSuffix","currentIDColumn","joinQueryWhere","currentIDRaw","targetField","equals","latest","newAliasTable","subQueryWhere","aliasTable","selectLocale","collectionConfig","key","val","pop","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 } from 'drizzle-orm/sqlite-core'\n\nimport { count, sql } from 'drizzle-orm'\nimport {\n appendVersionToQueryKey,\n buildVersionCollectionFields,\n combineQueries,\n type FlattenedField,\n getQueryDraftsSort,\n type JoinQuery,\n type SelectMode,\n type SelectType,\n type Where,\n} from 'payload'\nimport { fieldIsVirtual, fieldShouldBeLocalized, hasDraftsEnabled } 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 { 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'\nimport { buildPolymorphicJoinQuery } from './buildPolymorphicJoinQuery.js'\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 forceWithFields?: boolean\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 forceWithFields,\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 forceWithFields,\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.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 forceWithFields: blockSelect === true,\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 forceWithFields,\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 if (Array.isArray(field.collection)) {\n const polymorphicJoinQuery = buildPolymorphicJoinQuery({\n adapter,\n currentTableName,\n field,\n limit,\n locale,\n page,\n path,\n shouldCount,\n sort,\n where,\n })\n\n currentArgs.extras[polymorphicJoinQuery.columnName] = polymorphicJoinQuery.documents\n\n if (polymorphicJoinQuery.count) {\n currentArgs.extras[`${polymorphicJoinQuery.columnName}_count`] =\n polymorphicJoinQuery.count\n }\n } else {\n const db = adapter.drizzle as LibSQLDatabase\n const useDrafts =\n (versions || draftsEnabled) &&\n hasDraftsEnabled(adapter.payload.collections[field.collection].config)\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 (forceWithFields) {\n if (\n (field.type === 'relationship' || field.type === 'upload') &&\n (field.hasMany || Array.isArray(field.relationTo))\n ) {\n withTabledFields.rels = true\n }\n\n if (field.type === 'number' && field.hasMany) {\n withTabledFields.numbers = true\n }\n\n if (field.type === 'text' && field.hasMany) {\n withTabledFields.texts = true\n }\n }\n\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":["count","sql","appendVersionToQueryKey","buildVersionCollectionFields","combineQueries","getQueryDraftsSort","fieldIsVirtual","fieldShouldBeLocalized","hasDraftsEnabled","toSnakeCase","buildQuery","getTableAlias","getArrayRelationName","getNameFromDrizzleTable","jsonAggBuildObject","rawConstraint","InternalBlockTableNameIndex","resolveBlockTableName","buildPolymorphicJoinQuery","traverseFields","_locales","adapter","collectionSlug","currentArgs","currentTableName","depth","draftsEnabled","fields","forceWithFields","joinQuery","joins","locale","parentIsLocalized","path","select","selectAllOnCurrentLevel","selectMode","tablePath","topLevelArgs","topLevelTableName","versions","withTabledFields","forEach","field","isFieldLocalized","type","hasMany","relationTo","with","name","arraySelect","withArray","columns","id","_order","_parentID","orderBy","asc","arrayTableName","tableNameMap","get","tables","_locale","_uuid","arrayTableNameWithLocales","localesSuffix","relationName","tableName","flattenedFields","localized","undefined","Object","keys","length","blocksSelect","blocksAsJSON","fieldPath","blocks","_block","block","payload","blockKey","slug","blockSelect","blockSelectMode","Boolean","withBlock","_path","fieldSelect","joinSchemaPath","replaceAll","shouldCount","limit","limitArg","defaultLimit","page","sort","defaultSort","where","Array","isArray","collection","polymorphicJoinQuery","extras","columnName","documents","db","drizzle","useDrafts","collections","config","joinCollectionTableName","versionsSuffix","currentIDColumn","parent","joinQueryWhere","currentIDRaw","raw","table","targetField","on","equals","value","and","latest","subQueryAlias","newAliasTable","selectFields","subQueryWhere","aliasTable","selectLocale","collectionConfig","key","val","split","pop","query","from","map","column","order","$dynamic","condition","offset","subQuery","as","countSubquery","result","args","shouldSelect","withSelect","rels","numbers","texts"],"mappings":"AAGA,SAASA,KAAK,EAAEC,GAAG,QAAQ,cAAa;AACxC,SACEC,uBAAuB,EACvBC,4BAA4B,EAC5BC,cAAc,EAEdC,kBAAkB,QAKb,UAAS;AAChB,SAASC,cAAc,EAAEC,sBAAsB,EAAEC,gBAAgB,QAAQ,iBAAgB;AACzF,OAAOC,iBAAiB,gBAAe;AAKvC,SAASC,UAAU,QAAQ,2BAA0B;AACrD,SAASC,aAAa,QAAQ,8BAA6B;AAC3D,SAASC,oBAAoB,QAAQ,uCAAsC;AAC3E,SAASC,uBAAuB,QAAQ,0CAAyC;AACjF,SAASC,kBAAkB,QAAQ,uBAAsB;AACzD,SAASC,aAAa,QAAQ,gCAA+B;AAC7D,SACEC,2BAA2B,EAC3BC,qBAAqB,QAChB,mDAAkD;AACzD,SAASC,yBAAyB,QAAQ,iCAAgC;AA+B1E,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,QAAQ,EACRC,OAAO,EACPC,cAAc,EACdC,WAAW,EACXC,gBAAgB,EAChBC,KAAK,EACLC,aAAa,EACbC,MAAM,EACNC,eAAe,EACfC,YAAY,CAAC,CAAC,EACdC,KAAK,EACLC,MAAM,EACNC,oBAAoB,KAAK,EACzBC,IAAI,EACJC,MAAM,EACNC,0BAA0B,KAAK,EAC/BC,UAAU,EACVC,SAAS,EACTC,YAAY,EACZC,iBAAiB,EACjBC,QAAQ,EACRC,gBAAgB,EACE;IAClBd,OAAOe,OAAO,CAAC,CAACC;QACd,IAAIrC,eAAeqC,QAAQ;YACzB;QACF;QAEA,MAAMC,mBAAmBrC,uBAAuB;YAC9CoC;YACAX;QACF;QAEA,6BAA6B;QAC7B,IACEP,QAAQ,KACPkB,CAAAA,MAAME,IAAI,KAAK,YAAYF,MAAME,IAAI,KAAK,cAAa,KACxD,CAACF,MAAMG,OAAO,IACd,OAAOH,MAAMI,UAAU,KAAK,UAC5B;YACA,IAAIH,kBAAkB;gBACpBxB,SAAS4B,IAAI,CAAC,GAAGf,OAAOU,MAAMM,IAAI,EAAE,CAAC,GAAG;YAC1C,OAAO;gBACL1B,YAAYyB,IAAI,CAAC,GAAGf,OAAOU,MAAMM,IAAI,EAAE,CAAC,GAAG;YAC7C;QACF;QAEA,OAAQN,MAAME,IAAI;YAChB,KAAK;gBAAS;oBACZ,MAAMK,cAAcf,0BAA0B,OAAOD,QAAQ,CAACS,MAAMM,IAAI,CAAC;oBAEzE,IAAIf,QAAQ;wBACV,IACE,AAACE,eAAe,aAAa,OAAOc,gBAAgB,eACnDd,eAAe,aAAac,gBAAgB,OAC7C;4BACA;wBACF;oBACF;oBAEA,MAAMC,YAAoB;wBACxBC,SACE,OAAOF,gBAAgB,WACnB;4BACEG,IAAI;4BACJC,QAAQ;wBACV,IACA;4BACEC,WAAW;wBACb;wBACNC,SAAS,CAAC,EAAEF,MAAM,EAAE,EAAE,EAAEG,GAAG,EAAE,GAAK;gCAACA,IAAIH;6BAAQ;wBAC/CN,MAAM,CAAC;oBACT;oBAEA,MAAMU,iBAAiBrC,QAAQsC,YAAY,CAACC,GAAG,CAC7C,GAAGpC,iBAAiB,CAAC,EAAEa,YAAY5B,YAAYkC,MAAMM,IAAI,GAAG;oBAG9D,IAAI,OAAOC,gBAAgB,UAAU;wBACnC,IAAI7B,QAAQwC,MAAM,CAACH,eAAe,CAACI,OAAO,EAAE;4BAC1CX,UAAUC,OAAO,CAACU,OAAO,GAAG;wBAC9B;wBAEA,IAAIzC,QAAQwC,MAAM,CAACH,eAAe,CAACK,KAAK,EAAE;4BACxCZ,UAAUC,OAAO,CAACW,KAAK,GAAG;wBAC5B;oBACF;oBAEA,MAAMC,4BAA4B,GAAGN,iBAAiBrC,QAAQ4C,aAAa,EAAE;oBAE7E,IAAI5C,QAAQwC,MAAM,CAACG,0BAA0B,EAAE;wBAC7Cb,UAAUH,IAAI,CAAC5B,QAAQ,GAAG;4BACxBgC,SACE,OAAOF,gBAAgB,WACnB;gCACEY,SAAS;4BACX,IACA;gCACET,IAAI;gCACJE,WAAW;4BACb;4BACNP,MAAM,CAAC;wBACT;oBACF;oBAEA,MAAMkB,eAAetD,qBAAqB;wBACxC+B;wBACAV,MAAM,GAAGA,OAAOU,MAAMM,IAAI,EAAE;wBAC5BkB,WAAWT;oBACb;oBAEAnC,YAAYyB,IAAI,CAACkB,aAAa,GAAGf;oBAEjChC,eAAe;wBACbC,UAAU+B,UAAUH,IAAI,CAAC5B,QAAQ;wBACjCC;wBACAE,aAAa4B;wBACb3B,kBAAkBkC;wBAClBjC;wBACAC;wBACAC,QAAQgB,MAAMyB,eAAe;wBAC7BxC;wBACAC;wBACAE;wBACAC,mBAAmBA,qBAAqBW,MAAM0B,SAAS;wBACvDpC,MAAM;wBACNC,QAAQ,OAAOgB,gBAAgB,WAAWA,cAAcoB;wBACxDlC;wBACAC,WAAW;wBACXC;wBACAC;wBACAE;oBACF;oBAEA,IACE,OAAOS,gBAAgB,YACvBC,UAAUH,IAAI,CAAC5B,QAAQ,IACvBmD,OAAOC,IAAI,CAACrB,UAAUH,IAAI,CAAC5B,QAAQ,EAAEqD,MAAM,KAAK,GAChD;wBACA,OAAOtB,UAAUH,IAAI,CAAC5B,QAAQ;oBAChC;oBAEA;gBACF;YAEA,KAAK;gBAAU;oBACb,MAAMsD,eAAevC,0BAA0B,OAAOD,QAAQ,CAACS,MAAMM,IAAI,CAAC;oBAE1E,IAAIf,QAAQ;wBACV,IACE,AAACE,eAAe,aAAa,CAACsC,gBAC7BtC,eAAe,aAAasC,iBAAiB,OAC9C;4BACA;wBACF;oBACF;oBAEA,IAAIrD,QAAQsD,YAAY,EAAE;wBACxB,IAAIzC,UAAUC,yBAAyB;4BACrC,MAAMyC,YAAY,GAAG3C,OAAOU,MAAMM,IAAI,EAAE;4BAExC,IAAI,AAACL,CAAAA,oBAAoBZ,iBAAgB,KAAMZ,UAAU;gCACvDA,SAASgC,OAAO,CAACwB,UAAU,GAAG;4BAChC,OAAO,IAAIvD,QAAQwC,MAAM,CAACrC,iBAAiB,EAAE,CAACoD,UAAU,EAAE;gCACxDrD,YAAY6B,OAAO,CAACwB,UAAU,GAAG;4BACnC;wBACF;wBAEA;oBACF;oBAEAjC,MAAMkC,MAAM,CAACnC,OAAO,CAAC,CAACoC;wBACpB,MAAMC,QAAQ,OAAOD,WAAW,WAAWzD,QAAQ2D,OAAO,CAACH,MAAM,CAACC,OAAO,GAAGA;wBAC5E,MAAMG,WAAW,CAAC,QAAQ,EAAEF,MAAMG,IAAI,GAAG,CAACH,KAAK,CAAC/D,4BAA4B,GAAG,KAAK,CAAC,CAAC,EAAE+D,KAAK,CAAC/D,4BAA4B,EAAE,EAAE;wBAE9H,IAAImE;wBAEJ,IAAIC,kBAAkBhD;wBAEtB,IAAIA,eAAe,aAAasC,iBAAiB,MAAM;4BACrDS,cAAc;wBAChB;wBAEA,IAAI,OAAOT,iBAAiB,UAAU;4BACpC,IAAI,OAAOA,YAAY,CAACK,MAAMG,IAAI,CAAC,KAAK,UAAU;gCAChDC,cAAcT,YAAY,CAACK,MAAMG,IAAI,CAAC;4BACxC,OAAO,IACL,AAAC9C,eAAe,aAAa,OAAOsC,YAAY,CAACK,MAAMG,IAAI,CAAC,KAAK,eAChE9C,eAAe,aAAasC,YAAY,CAACK,MAAMG,IAAI,CAAC,KAAK,OAC1D;gCACAC,cAAc,CAAC;gCACfC,kBAAkB;4BACpB,OAAO,IAAIhD,eAAe,aAAaiD,QAAQX,YAAY,CAACK,MAAMG,IAAI,CAAC,GAAG;gCACxEC,cAAc;4BAChB;wBACF;wBAEA,IAAI,CAAC7C,YAAY,CAAC2C,SAAS,EAAE;4BAC3B,MAAMK,YAAoB;gCACxBlC,SACE,OAAO+B,gBAAgB,WACnB;oCACE9B,IAAI;oCACJC,QAAQ;oCACRiC,OAAO;gCACT,IACA;oCACEhC,WAAW;gCACb;gCACNC,SAAS,CAAC,EAAEF,MAAM,EAAE,EAAE,EAAEG,GAAG,EAAE,GAAK;wCAACA,IAAIH;qCAAQ;gCAC/CN,MAAM,CAAC;4BACT;4BAEA,MAAMmB,YAAYlD,sBAChB8D,OACA1D,QAAQsC,YAAY,CAACC,GAAG,CAAC,GAAGrB,kBAAkB,QAAQ,EAAE9B,YAAYsE,MAAMG,IAAI,GAAG;4BAGnF,IAAI,OAAOC,gBAAgB,UAAU;gCACnC,IAAI9D,QAAQwC,MAAM,CAACM,UAAU,CAACL,OAAO,EAAE;oCACrCwB,UAAUlC,OAAO,CAACU,OAAO,GAAG;gCAC9B;gCAEA,IAAIzC,QAAQwC,MAAM,CAACM,UAAU,CAACJ,KAAK,EAAE;oCACnCuB,UAAUlC,OAAO,CAACW,KAAK,GAAG;gCAC5B;4BACF;4BAEA,IAAI1C,QAAQwC,MAAM,CAAC,GAAGM,YAAY9C,QAAQ4C,aAAa,EAAE,CAAC,EAAE;gCAC1DqB,UAAUtC,IAAI,CAAC5B,QAAQ,GAAG;oCACxB4B,MAAM,CAAC;gCACT;gCAEA,IAAI,OAAOmC,gBAAgB,UAAU;oCACnCG,UAAUtC,IAAI,CAAC5B,QAAQ,CAACgC,OAAO,GAAG;wCAChCU,SAAS;oCACX;gCACF;4BACF;4BACAxB,aAAaU,IAAI,CAACiC,SAAS,GAAGK;4BAE9BnE,eAAe;gCACbC,UAAUkE,UAAUtC,IAAI,CAAC5B,QAAQ;gCACjCC;gCACAE,aAAa+D;gCACb9D,kBAAkB2C;gCAClB1C;gCACAC;gCACAC,QAAQoD,MAAMX,eAAe;gCAC7BxC,iBAAiBuD,gBAAgB;gCACjCtD;gCACAE;gCACAC,mBAAmBA,qBAAqBW,MAAM0B,SAAS;gCACvDpC,MAAM;gCACNC,QAAQ,OAAOiD,gBAAgB,WAAWA,cAAcb;gCACxDlC,YAAYgD;gCACZ/C,WAAW;gCACXC;gCACAC;gCACAE;4BACF;4BAEA,IACE,OAAO0C,gBAAgB,YACvBG,UAAUtC,IAAI,CAAC5B,QAAQ,IACvBmD,OAAOC,IAAI,CAACc,UAAUtC,IAAI,CAAC5B,QAAQ,CAACgC,OAAO,EAAEqB,MAAM,KAAK,GACxD;gCACA,OAAOa,UAAUtC,IAAI,CAAC5B,QAAQ;4BAChC;wBACF;oBACF;oBAEA;gBACF;YAEA,KAAK;YACL,KAAK;gBAAO;oBACV,MAAMoE,cAActD,QAAQ,CAACS,MAAMM,IAAI,CAAC;oBAExC,IAAIuC,gBAAgB,OAAO;wBACzB;oBACF;oBAEArE,eAAe;wBACbC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC,QAAQgB,MAAMyB,eAAe;wBAC7BxC;wBACAC;wBACAC;wBACAC;wBACAC,mBAAmBA,qBAAqBW,MAAM0B,SAAS;wBACvDpC,MAAM,GAAGA,OAAOU,MAAMM,IAAI,CAAC,CAAC,CAAC;wBAC7Bf,QAAQ,OAAOsD,gBAAgB,WAAWA,cAAclB;wBACxDnC,yBACEA,2BACAqD,gBAAgB,QACfpD,eAAe,aAAa,OAAOoD,gBAAgB;wBACtDpD;wBACAC,WAAW,GAAGA,YAAY5B,YAAYkC,MAAMM,IAAI,EAAE,CAAC,CAAC;wBACpDX;wBACAC;wBACAC;wBACAC;oBACF;oBAEA;gBACF;YACA,KAAK;gBAAQ;oBACX,0CAA0C;oBAC1C,IAAIZ,cAAc,OAAO;wBACvB;oBACF;oBAEA,IACE,AAACK,UAAUE,eAAe,aAAa,CAACF,MAAM,CAACS,MAAMM,IAAI,CAAC,IACzDb,eAAe,aAAaF,MAAM,CAACS,MAAMM,IAAI,CAAC,KAAK,OACpD;wBACA;oBACF;oBAEA,MAAMwC,iBAAiB,GAAGxD,KAAKyD,UAAU,CAAC,KAAK,OAAO/C,MAAMM,IAAI,EAAE;oBAElE,IAAIpB,SAAS,CAAC4D,eAAe,KAAK,OAAO;wBACvC;oBACF;oBAEA,MAAM,EACJzF,OAAO2F,cAAc,KAAK,EAC1BC,OAAOC,WAAWlD,MAAMmD,YAAY,IAAI,EAAE,EAC1CC,IAAI,EACJC,OAAOrD,MAAMsD,WAAW,EACxBC,KAAK,EACN,GAAGrE,SAAS,CAAC4D,eAAe,IAAI,CAAC;oBAClC,IAAIG,QAAQC;oBAEZ,IAAID,UAAU,GAAG;wBACf,qFAAqF;wBACrFA,SAAS;oBACX;oBAEA,IAAIO,MAAMC,OAAO,CAACzD,MAAM0D,UAAU,GAAG;wBACnC,MAAMC,uBAAuBpF,0BAA0B;4BACrDG;4BACAG;4BACAmB;4BACAiD;4BACA7D;4BACAgE;4BACA9D;4BACA0D;4BACAK;4BACAE;wBACF;wBAEA3E,YAAYgF,MAAM,CAACD,qBAAqBE,UAAU,CAAC,GAAGF,qBAAqBG,SAAS;wBAEpF,IAAIH,qBAAqBtG,KAAK,EAAE;4BAC9BuB,YAAYgF,MAAM,CAAC,GAAGD,qBAAqBE,UAAU,CAAC,MAAM,CAAC,CAAC,GAC5DF,qBAAqBtG,KAAK;wBAC9B;oBACF,OAAO;wBACL,MAAM0G,KAAKrF,QAAQsF,OAAO;wBAC1B,MAAMC,YACJ,AAACpE,CAAAA,YAAYd,aAAY,KACzBlB,iBAAiBa,QAAQ2D,OAAO,CAAC6B,WAAW,CAAClE,MAAM0D,UAAU,CAAC,CAACS,MAAM;wBAEvE,MAAMnF,SAASiF,YACXzG,6BACEkB,QAAQ2D,OAAO,CAAC8B,MAAM,EACtBzF,QAAQ2D,OAAO,CAAC6B,WAAW,CAAClE,MAAM0D,UAAU,CAAC,CAACS,MAAM,EACpD,QAEFzF,QAAQ2D,OAAO,CAAC6B,WAAW,CAAClE,MAAM0D,UAAU,CAAC,CAACS,MAAM,CAAC1C,eAAe;wBAExE,MAAM2C,0BAA0B1F,QAAQsC,YAAY,CAACC,GAAG,CACtDgD,YACI,CAAC,CAAC,EAAEnG,YAAYkC,MAAM0D,UAAU,IAAIhF,QAAQ2F,cAAc,EAAE,GAC5DvG,YAAYkC,MAAM0D,UAAU;wBAGlC,MAAMvE,QAA+B,EAAE;wBAEvC,MAAMmF,kBAAkBzE,WACpBnB,QAAQwC,MAAM,CAACrC,iBAAiB,CAAC0F,MAAM,GACvC7F,QAAQwC,MAAM,CAACrC,iBAAiB,CAAC6B,EAAE;wBAEvC,IAAI8D;wBAEJ,MAAMC,eAAenH,IAAIoH,GAAG,CAC1B,CAAC,CAAC,EAAExG,wBAAwBoG,gBAAgBK,KAAK,EAAE,GAAG,EAAEL,gBAAgBhE,IAAI,CAAC,CAAC,CAAC;wBAGjF,IAAIkD,MAAMC,OAAO,CAACzD,MAAM4E,WAAW,CAACxE,UAAU,GAAG;4BAC/CoE,iBAAiB;gCACf,CAACxE,MAAM6E,EAAE,CAAC,EAAE;oCACVC,QAAQ;wCACN1E,YAAYzB;wCACZoG,OAAO3G,cAAcqG;oCACvB;gCACF;4BACF;wBACF,OAAO;4BACLD,iBAAiB;gCACf,CAACxE,MAAM6E,EAAE,CAAC,EAAE;oCACVC,QAAQ1G,cAAcqG;gCACxB;4BACF;wBACF;wBAEA,IAAIlB,SAAS3B,OAAOC,IAAI,CAAC0B,OAAOzB,MAAM,EAAE;4BACtC0C,iBAAiB;gCACfQ,KAAK;oCAACR;oCAAgBjB;iCAAM;4BAC9B;wBACF;wBAEA,IAAIU,WAAW;4BACbO,iBAAiB/G,eAAeF,wBAAwBiH,iBAAiB;gCACvES,QAAQ;oCAAEH,QAAQ;gCAAK;4BACzB;wBACF;wBAEA,MAAMjB,aAAa,GAAGvE,KAAKyD,UAAU,CAAC,KAAK,OAAO/C,MAAMM,IAAI,EAAE;wBAE9D,MAAM4E,gBAAgB,GAAGrB,WAAW,MAAM,CAAC;wBAE3C,MAAM,EAAEsB,aAAa,EAAE,GAAGnH,cAAc;4BACtCU;4BACA8C,WAAW4C;wBACb;wBAEA,MAAM,EACJvD,OAAO,EACPuE,YAAY,EACZ7B,OAAO8B,aAAa,EACrB,GAAGtH,WAAW;4BACbW;4BACA4G,YAAYH;4BACZnG;4BACAG;4BACAC;4BACAC;4BACAkG,cAAc;4BACdlC,MAAMY,YACFvG,mBAAmB;gCACjB8H,kBAAkB9G,QAAQ2D,OAAO,CAAC6B,WAAW,CAAClE,MAAM0D,UAAU,CAAC,CAACS,MAAM;gCACtEd;4BACF,KACAA;4BACJ7B,WAAW4C;4BACXb,OAAOiB;wBACT;wBAEA,IAAK,IAAIiB,OAAOL,aAAc;4BAC5B,MAAMM,MAAMN,YAAY,CAACK,IAAI;4BAE7B,IAAIC,IAAIf,KAAK,IAAIzG,wBAAwBwH,IAAIf,KAAK,MAAMP,yBAAyB;gCAC/E,OAAOgB,YAAY,CAACK,IAAI;gCACxBA,MAAMA,IAAIE,KAAK,CAAC,KAAKC,GAAG;gCACxBR,YAAY,CAACK,IAAI,GAAGN,aAAa,CAACM,IAAI;4BACxC;wBACF;wBAEA,IAAIxB,WAAW;4BACbmB,aAAab,MAAM,GAAGY,cAAcZ,MAAM;wBAC5C;wBAEA,IAAIsB,QAAsB9B,GACvBxE,MAAM,CAAC6F,cACPU,IAAI,CAACX,eACL5B,KAAK,CAAC8B,eACNxE,OAAO,CAAC,IAAMA,QAAQkF,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAKA,MAAMD,UACvDE,QAAQ;wBAEX/G,MAAMY,OAAO,CAAC,CAAC,EAAEG,IAAI,EAAEiG,SAAS,EAAExB,KAAK,EAAE;4BACvCkB,QAAQA,KAAK,CAAC3F,QAAQ,WAAW,CAACyE,OAAOwB;wBAC3C;wBAEA,IAAI/C,QAAQH,UAAU,GAAG;4BACvB,MAAMmD,SAAS,AAAChD,CAAAA,OAAO,CAAA,IAAKH,QAAQ;4BACpC,IAAImD,SAAS,GAAG;gCACdP,QAAQA,MAAMO,MAAM,CAACA;4BACvB;wBACF;wBAEA,IAAInD,UAAU,GAAG;4BACf4C,QAAQA,MAAM5C,KAAK,CAACA;wBACtB;wBAEA,MAAMoD,WAAWR,MAAMS,EAAE,CAACpB;wBAE1B,IAAIlC,aAAa;4BACf,IAAIuD,gBAA8BxC,GAC/BxE,MAAM,CAAC6F,cAEPU,IAAI,CAACX,eACL5B,KAAK,CAAC8B,eACNa,QAAQ;4BAEX/G,MAAMY,OAAO,CAAC,CAAC,EAAEG,IAAI,EAAEiG,SAAS,EAAExB,KAAK,EAAE;gCACvC4B,gBAAgBA,aAAa,CAACrG,QAAQ,WAAW,CAACyE,OAAOwB;4BAC3D;4BAEAvH,YAAYgF,MAAM,CAAC,GAAGC,WAAW,MAAM,CAAC,CAAC,GAAGvG,GAAG,CAAC,EAAEyG,GAC/CxE,MAAM,CAAC;gCACNlC,OAAOA;4BACT,GACCyI,IAAI,CAACxI,GAAG,CAAC,EAAEiJ,cAAcD,EAAE,CAAC,GAAGpB,cAAc,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,CAACoB,EAAE,CACvE,GAAGpB,cAAc,MAAM,CAAC;wBAE5B;wBAEAtG,YAAYgF,MAAM,CAACC,WAAW,GAAGvG,GAAG,CAAC,EAAEyG,GACpCxE,MAAM,CAAC;4BACNiH,QAAQrI,mBAAmBO,SAAS;gCAClCgC,IAAIpD,IAAIoH,GAAG,CAAC,CAAC,CAAC,EAAEQ,cAAc,EAAE,EAAEjB,YAAY,cAAc,MAAM;gCAClE,GAAImB,aAAajE,OAAO,IAAI;oCAC1B/B,QAAQ9B,IAAIoH,GAAG,CAAC,CAAC,CAAC,EAAEQ,cAAc,EAAE,EAAEE,aAAajE,OAAO,CAACb,IAAI,EAAE;gCACnE,CAAC;4BACH;wBACF,GACCwF,IAAI,CAACxI,GAAG,CAAC,EAAE+I,SAAS,CAAC,EAAE,CAAC,CAACC,EAAE,CAACpB;oBACjC;oBAEA;gBACF;YAEA,KAAK;gBAAS;oBACZ,IAAIxG,QAAQ4B,IAAI,KAAK,UAAU;wBAC7B;oBACF;oBAEA,MAAMmG,OAAOxG,mBAAmBxB,WAAWG;oBAC3C,IAAI,CAAC6H,KAAKhG,OAAO,EAAE;wBACjBgG,KAAKhG,OAAO,GAAG,CAAC;oBAClB;oBAEA,IAAI,CAACgG,KAAK7C,MAAM,EAAE;wBAChB6C,KAAK7C,MAAM,GAAG,CAAC;oBACjB;oBAEA,MAAMtD,OAAO,GAAGhB,OAAOU,MAAMM,IAAI,EAAE;oBAEnC,2FAA2F;oBAC3F,gGAAgG;oBAChGmG,KAAKhG,OAAO,CAACH,KAAK,GAAG;oBAErB,IAAIoG,eAAe;oBAEnB,IAAInH,UAAUC,yBAAyB;wBACrC,IACEA,2BACCC,eAAe,aAAaiD,QAAQnD,MAAM,CAACS,MAAMM,IAAI,CAAC,KACtDb,eAAe,aAAa,OAAOF,MAAM,CAACS,MAAMM,IAAI,CAAC,KAAK,aAC3D;4BACAoG,eAAe;wBACjB;oBACF,OAAO;wBACLA,eAAe;oBACjB;oBACA,MAAMlF,YAAY5D,uBAAuB;wBAAEoC;wBAAOX;oBAAkB,KAChE,GAAGR,mBAAmBH,QAAQ4C,aAAa,EAAE,GAC7CzC;oBAEJ,IAAI6H,cAAc;wBAChBD,KAAK7C,MAAM,CAACtD,KAAK,GAAGhD,IACjBoH,GAAG,CAAC,CAAC,cAAc,EAAEhG,QAAQwC,MAAM,CAACM,UAAU,CAAClB,KAAK,CAACA,IAAI,CAAC,SAAS,CAAC,EACpEgG,EAAE,CAAChG;oBACR;oBACA;gBACF;YAEA,KAAK;gBAAU;oBACb,IAAIf,UAAU,CAACC,yBAAyB;wBACtC,IACE,AAACC,eAAe,aAAa,CAACF,MAAM,CAACS,MAAMM,IAAI,CAAC,IAC/Cb,eAAe,aAAaF,MAAM,CAACS,MAAMM,IAAI,CAAC,KAAK,OACpD;4BACA;wBACF;oBACF;oBAEA,IAAIN,MAAMG,OAAO,EAAE;wBACjB,MAAMwG,aAAqB;4BACzBlG,SAAS;gCACPC,IAAI;gCACJuF,OAAO;gCACP1B,QAAQ;4BACV;4BACA1D,SAAS,CAAC,EAAEoF,KAAK,EAAE,EAAE,EAAEnF,GAAG,EAAE,GAAK;oCAACA,IAAImF;iCAAO;wBAC/C;wBAEArH,YAAYyB,IAAI,CAAC,GAAGf,OAAOU,MAAMM,IAAI,EAAE,CAAC,GAAGqG;wBAC3C;oBACF;oBAEA,IAAIpH,UAAUC,yBAAyB;wBACrC,MAAMyC,YAAY,GAAG3C,OAAOU,MAAMM,IAAI,EAAE;wBAExC,IAAI,AAACL,CAAAA,oBAAoBZ,iBAAgB,KAAMZ,UAAU;4BACvDA,SAASgC,OAAO,CAACwB,UAAU,GAAG;wBAChC,OAAO,IAAIvD,QAAQwC,MAAM,CAACrC,iBAAiB,EAAE,CAACoD,UAAU,EAAE;4BACxDrD,YAAY6B,OAAO,CAACwB,UAAU,GAAG;wBACnC;oBACF;oBAEA;gBACF;YAEA;gBAAS;oBACP,IAAIhD,iBAAiB;wBACnB,IACE,AAACe,CAAAA,MAAME,IAAI,KAAK,kBAAkBF,MAAME,IAAI,KAAK,QAAO,KACvDF,CAAAA,MAAMG,OAAO,IAAIqD,MAAMC,OAAO,CAACzD,MAAMI,UAAU,CAAA,GAChD;4BACAN,iBAAiB8G,IAAI,GAAG;wBAC1B;wBAEA,IAAI5G,MAAME,IAAI,KAAK,YAAYF,MAAMG,OAAO,EAAE;4BAC5CL,iBAAiB+G,OAAO,GAAG;wBAC7B;wBAEA,IAAI7G,MAAME,IAAI,KAAK,UAAUF,MAAMG,OAAO,EAAE;4BAC1CL,iBAAiBgH,KAAK,GAAG;wBAC3B;oBACF;oBAEA,IAAI,CAACvH,UAAU,CAACC,yBAAyB;wBACvC;oBACF;oBAEA,IACEA,2BACCC,eAAe,aAAaiD,QAAQnD,MAAM,CAACS,MAAMM,IAAI,CAAC,KACtDb,eAAe,aAAa,OAAOF,MAAM,CAACS,MAAMM,IAAI,CAAC,KAAK,aAC3D;wBACA,MAAM2B,YAAY,GAAG3C,OAAOU,MAAMM,IAAI,EAAE;wBAExC,IAAI,AAACL,CAAAA,oBAAoBZ,iBAAgB,KAAMZ,UAAU;4BACvDA,SAASgC,OAAO,CAACwB,UAAU,GAAG;wBAChC,OAAO,IAAIvD,QAAQwC,MAAM,CAACrC,iBAAiB,EAAE,CAACoD,UAAU,EAAE;4BACxDrD,YAAY6B,OAAO,CAACwB,UAAU,GAAG;wBACnC;wBAEA,IACE,CAACnC,iBAAiB8G,IAAI,IACrB5G,CAAAA,MAAME,IAAI,KAAK,kBAAkBF,MAAME,IAAI,KAAK,QAAO,KACvDF,CAAAA,MAAMG,OAAO,IAAIqD,MAAMC,OAAO,CAACzD,MAAMI,UAAU,CAAA,GAChD;4BACAN,iBAAiB8G,IAAI,GAAG;wBAC1B;wBAEA,IAAI,CAAC9G,iBAAiB+G,OAAO,IAAI7G,MAAME,IAAI,KAAK,YAAYF,MAAMG,OAAO,EAAE;4BACzEL,iBAAiB+G,OAAO,GAAG;wBAC7B;wBAEA,IAAI,CAAC/G,iBAAiBgH,KAAK,IAAI9G,MAAME,IAAI,KAAK,UAAUF,MAAMG,OAAO,EAAE;4BACrEL,iBAAiBgH,KAAK,GAAG;wBAC3B;oBACF;oBAEA;gBACF;QACF;IACF;IAEA,OAAOnH;AACT,EAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -24,15 +24,16 @@ export { migrateReset } from './migrateReset.js';
|
|
|
24
24
|
export { migrateStatus } from './migrateStatus.js';
|
|
25
25
|
export { buildQuery } from './queries/buildQuery.js';
|
|
26
26
|
export { operatorMap } from './queries/operatorMap.js';
|
|
27
|
-
export type { Operators } from './queries/operatorMap.js';
|
|
27
|
+
export type { DrizzleResolvedOperator, Operators } from './queries/operatorMap.js';
|
|
28
28
|
export { parseParams } from './queries/parseParams.js';
|
|
29
|
+
export { validateOperatorHandlers } from './queries/validateOperatorHandlers.js';
|
|
29
30
|
export { queryDrafts } from './queryDrafts.js';
|
|
30
31
|
export { buildDrizzleRelations } from './schema/buildDrizzleRelations.js';
|
|
31
32
|
export { buildRawSchema } from './schema/buildRawSchema.js';
|
|
32
33
|
export { beginTransaction } from './transactions/beginTransaction.js';
|
|
33
34
|
export { commitTransaction } from './transactions/commitTransaction.js';
|
|
34
35
|
export { rollbackTransaction } from './transactions/rollbackTransaction.js';
|
|
35
|
-
export type { BaseRawColumn, BlocksToJsonMigrator, BuildDrizzleTable, BuildQueryJoinAliases, ColumnToCodeConverter, CountDistinct, CreateJSONQueryArgs, DeleteWhere, DrizzleAdapter, DrizzleTransaction, DropDatabase, EnumRawColumn, Execute, GenericColumn, GenericColumns, GenericPgColumn, GenericRelation, GenericTable, IDType, Insert, IntegerRawColumn, Migration, PostgresDB, RawColumn, RawForeignKey, RawIndex, RawRelation, RawTable, RelationMap, RequireDrizzleKit, SetColumnID, SQLiteDB, TimestampRawColumn, TransactionPg, TransactionSQLite, UUIDRawColumn, VectorRawColumn, } from './types.js';
|
|
36
|
+
export type { BaseRawColumn, BlocksToJsonMigrator, BuildDrizzleTable, BuildQueryJoinAliases, ColumnToCodeConverter, CountDistinct, CreateJSONQueryArgs, DeleteWhere, DrizzleAdapter, DrizzleOperandTransformHandler, DrizzleOperatorHandler, DrizzleOperatorHandlerContext, DrizzleOperatorReplacementHandler, DrizzleQueryConfig, DrizzleTransaction, DropDatabase, EnumRawColumn, Execute, GenericColumn, GenericColumns, GenericPgColumn, GenericRelation, GenericTable, IDType, Insert, IntegerRawColumn, Migration, PostgresDB, RawColumn, RawForeignKey, RawIndex, RawRelation, RawTable, RelationMap, RequireDrizzleKit, SetColumnID, SQLiteDB, TimestampRawColumn, TransactionPg, TransactionSQLite, UUIDRawColumn, VectorRawColumn, } from './types.js';
|
|
36
37
|
export { updateGlobal } from './updateGlobal.js';
|
|
37
38
|
export { updateGlobalVersion } from './updateGlobalVersion.js';
|
|
38
39
|
export { updateJobs } from './updateJobs.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -25,6 +25,7 @@ export { migrateStatus } from './migrateStatus.js';
|
|
|
25
25
|
export { buildQuery } from './queries/buildQuery.js';
|
|
26
26
|
export { operatorMap } from './queries/operatorMap.js';
|
|
27
27
|
export { parseParams } from './queries/parseParams.js';
|
|
28
|
+
export { validateOperatorHandlers } from './queries/validateOperatorHandlers.js';
|
|
28
29
|
export { queryDrafts } from './queryDrafts.js';
|
|
29
30
|
export { buildDrizzleRelations } from './schema/buildDrizzleRelations.js';
|
|
30
31
|
export { buildRawSchema } from './schema/buildRawSchema.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { count } from './count.js'\nexport { countGlobalVersions } from './countGlobalVersions.js'\nexport { countVersions } from './countVersions.js'\nexport { create } from './create.js'\nexport { createGlobal } from './createGlobal.js'\nexport { createGlobalVersion } from './createGlobalVersion.js'\nexport { createTableName } from './createTableName.js'\nexport { createVersion } from './createVersion.js'\nexport { deleteMany } from './deleteMany.js'\nexport { deleteOne } from './deleteOne.js'\nexport { deleteVersions } from './deleteVersions.js'\nexport { destroy } from './destroy.js'\nexport { find } from './find.js'\nexport { findDistinct } from './findDistinct.js'\nexport { findGlobal } from './findGlobal.js'\nexport { findGlobalVersions } from './findGlobalVersions.js'\nexport { findOne } from './findOne.js'\nexport { findVersions } from './findVersions.js'\nexport { migrate } from './migrate.js'\nexport { migrateDown } from './migrateDown.js'\nexport { migrateFresh } from './migrateFresh.js'\nexport { migrateRefresh } from './migrateRefresh.js'\nexport { migrateReset } from './migrateReset.js'\nexport { migrateStatus } from './migrateStatus.js'\nexport { buildQuery } from './queries/buildQuery.js'\nexport { operatorMap } from './queries/operatorMap.js'\nexport type { Operators } from './queries/operatorMap.js'\nexport { parseParams } from './queries/parseParams.js'\nexport { queryDrafts } from './queryDrafts.js'\nexport { buildDrizzleRelations } from './schema/buildDrizzleRelations.js'\nexport { buildRawSchema } from './schema/buildRawSchema.js'\nexport { beginTransaction } from './transactions/beginTransaction.js'\nexport { commitTransaction } from './transactions/commitTransaction.js'\nexport { rollbackTransaction } from './transactions/rollbackTransaction.js'\nexport type {\n BaseRawColumn,\n BlocksToJsonMigrator,\n BuildDrizzleTable,\n BuildQueryJoinAliases,\n ColumnToCodeConverter,\n CountDistinct,\n CreateJSONQueryArgs,\n DeleteWhere,\n DrizzleAdapter,\n DrizzleTransaction,\n DropDatabase,\n EnumRawColumn,\n Execute,\n GenericColumn,\n GenericColumns,\n GenericPgColumn,\n GenericRelation,\n GenericTable,\n IDType,\n Insert,\n IntegerRawColumn,\n Migration,\n PostgresDB,\n RawColumn,\n RawForeignKey,\n RawIndex,\n RawRelation,\n RawTable,\n RelationMap,\n RequireDrizzleKit,\n SetColumnID,\n SQLiteDB,\n TimestampRawColumn,\n TransactionPg,\n TransactionSQLite,\n UUIDRawColumn,\n VectorRawColumn,\n} from './types.js'\nexport { updateGlobal } from './updateGlobal.js'\nexport { updateGlobalVersion } from './updateGlobalVersion.js'\nexport { updateJobs } from './updateJobs.js'\nexport { updateMany } from './updateMany.js'\nexport { updateOne } from './updateOne.js'\nexport { updateVersion } from './updateVersion.js'\nexport { upsert } from './upsert.js'\nexport { upsertRow } from './upsertRow/index.js'\nexport {\n buildDynamicPredefinedBlocksToJsonMigration,\n createBlocksToJsonMigrator,\n getBlocksToJsonMigrator,\n} from './utilities/blocksToJsonMigrator.js'\nexport { buildCreateMigration } from './utilities/buildCreateMigration.js'\nexport { buildIndexName } from './utilities/buildIndexName.js'\nexport { createSchemaGenerator } from './utilities/createSchemaGenerator.js'\nexport { executeSchemaHooks } from './utilities/executeSchemaHooks.js'\nexport { extendDrizzleTable } from './utilities/extendDrizzleTable.js'\nexport { hasLocalesTable } from './utilities/hasLocalesTable.js'\nexport { pushDevSchema } from './utilities/pushDevSchema.js'\nexport { validateExistingBlockIsIdentical } from './utilities/validateExistingBlockIsIdentical.js'\nimport { findMigrationDir as payloadFindMigrationDir } from 'payload'\n\n/**\n * @deprecated remove in 4.0\n * use\n * ```ts\n * import { findMigrationDir } from 'payload'\n * ```\n */\nexport const findMigrationDir = payloadFindMigrationDir\n"],"names":["count","countGlobalVersions","countVersions","create","createGlobal","createGlobalVersion","createTableName","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findDistinct","findGlobal","findGlobalVersions","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","buildQuery","operatorMap","parseParams","queryDrafts","buildDrizzleRelations","buildRawSchema","beginTransaction","commitTransaction","rollbackTransaction","updateGlobal","updateGlobalVersion","updateJobs","updateMany","updateOne","updateVersion","upsert","upsertRow","buildDynamicPredefinedBlocksToJsonMigration","createBlocksToJsonMigrator","getBlocksToJsonMigrator","buildCreateMigration","buildIndexName","createSchemaGenerator","executeSchemaHooks","extendDrizzleTable","hasLocalesTable","pushDevSchema","validateExistingBlockIsIdentical","findMigrationDir","payloadFindMigrationDir"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAY;AAClC,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,MAAM,QAAQ,cAAa;AACpC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,IAAI,QAAQ,YAAW;AAChC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,kBAAkB,QAAQ,0BAAyB;AAC5D,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,WAAW,QAAQ,2BAA0B;AAEtD,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,qBAAqB,QAAQ,oCAAmC;AACzE,SAASC,cAAc,QAAQ,6BAA4B;AAC3D,SAASC,gBAAgB,QAAQ,qCAAoC;AACrE,SAASC,iBAAiB,QAAQ,sCAAqC;AACvE,SAASC,mBAAmB,QAAQ,wCAAuC;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { count } from './count.js'\nexport { countGlobalVersions } from './countGlobalVersions.js'\nexport { countVersions } from './countVersions.js'\nexport { create } from './create.js'\nexport { createGlobal } from './createGlobal.js'\nexport { createGlobalVersion } from './createGlobalVersion.js'\nexport { createTableName } from './createTableName.js'\nexport { createVersion } from './createVersion.js'\nexport { deleteMany } from './deleteMany.js'\nexport { deleteOne } from './deleteOne.js'\nexport { deleteVersions } from './deleteVersions.js'\nexport { destroy } from './destroy.js'\nexport { find } from './find.js'\nexport { findDistinct } from './findDistinct.js'\nexport { findGlobal } from './findGlobal.js'\nexport { findGlobalVersions } from './findGlobalVersions.js'\nexport { findOne } from './findOne.js'\nexport { findVersions } from './findVersions.js'\nexport { migrate } from './migrate.js'\nexport { migrateDown } from './migrateDown.js'\nexport { migrateFresh } from './migrateFresh.js'\nexport { migrateRefresh } from './migrateRefresh.js'\nexport { migrateReset } from './migrateReset.js'\nexport { migrateStatus } from './migrateStatus.js'\nexport { buildQuery } from './queries/buildQuery.js'\nexport { operatorMap } from './queries/operatorMap.js'\nexport type { DrizzleResolvedOperator, Operators } from './queries/operatorMap.js'\nexport { parseParams } from './queries/parseParams.js'\nexport { validateOperatorHandlers } from './queries/validateOperatorHandlers.js'\nexport { queryDrafts } from './queryDrafts.js'\nexport { buildDrizzleRelations } from './schema/buildDrizzleRelations.js'\nexport { buildRawSchema } from './schema/buildRawSchema.js'\nexport { beginTransaction } from './transactions/beginTransaction.js'\nexport { commitTransaction } from './transactions/commitTransaction.js'\nexport { rollbackTransaction } from './transactions/rollbackTransaction.js'\nexport type {\n BaseRawColumn,\n BlocksToJsonMigrator,\n BuildDrizzleTable,\n BuildQueryJoinAliases,\n ColumnToCodeConverter,\n CountDistinct,\n CreateJSONQueryArgs,\n DeleteWhere,\n DrizzleAdapter,\n DrizzleOperandTransformHandler,\n DrizzleOperatorHandler,\n DrizzleOperatorHandlerContext,\n DrizzleOperatorReplacementHandler,\n DrizzleQueryConfig,\n DrizzleTransaction,\n DropDatabase,\n EnumRawColumn,\n Execute,\n GenericColumn,\n GenericColumns,\n GenericPgColumn,\n GenericRelation,\n GenericTable,\n IDType,\n Insert,\n IntegerRawColumn,\n Migration,\n PostgresDB,\n RawColumn,\n RawForeignKey,\n RawIndex,\n RawRelation,\n RawTable,\n RelationMap,\n RequireDrizzleKit,\n SetColumnID,\n SQLiteDB,\n TimestampRawColumn,\n TransactionPg,\n TransactionSQLite,\n UUIDRawColumn,\n VectorRawColumn,\n} from './types.js'\nexport { updateGlobal } from './updateGlobal.js'\nexport { updateGlobalVersion } from './updateGlobalVersion.js'\nexport { updateJobs } from './updateJobs.js'\nexport { updateMany } from './updateMany.js'\nexport { updateOne } from './updateOne.js'\nexport { updateVersion } from './updateVersion.js'\nexport { upsert } from './upsert.js'\nexport { upsertRow } from './upsertRow/index.js'\nexport {\n buildDynamicPredefinedBlocksToJsonMigration,\n createBlocksToJsonMigrator,\n getBlocksToJsonMigrator,\n} from './utilities/blocksToJsonMigrator.js'\nexport { buildCreateMigration } from './utilities/buildCreateMigration.js'\nexport { buildIndexName } from './utilities/buildIndexName.js'\nexport { createSchemaGenerator } from './utilities/createSchemaGenerator.js'\nexport { executeSchemaHooks } from './utilities/executeSchemaHooks.js'\nexport { extendDrizzleTable } from './utilities/extendDrizzleTable.js'\nexport { hasLocalesTable } from './utilities/hasLocalesTable.js'\nexport { pushDevSchema } from './utilities/pushDevSchema.js'\nexport { validateExistingBlockIsIdentical } from './utilities/validateExistingBlockIsIdentical.js'\nimport { findMigrationDir as payloadFindMigrationDir } from 'payload'\n\n/**\n * @deprecated remove in 4.0\n * use\n * ```ts\n * import { findMigrationDir } from 'payload'\n * ```\n */\nexport const findMigrationDir = payloadFindMigrationDir\n"],"names":["count","countGlobalVersions","countVersions","create","createGlobal","createGlobalVersion","createTableName","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findDistinct","findGlobal","findGlobalVersions","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","buildQuery","operatorMap","parseParams","validateOperatorHandlers","queryDrafts","buildDrizzleRelations","buildRawSchema","beginTransaction","commitTransaction","rollbackTransaction","updateGlobal","updateGlobalVersion","updateJobs","updateMany","updateOne","updateVersion","upsert","upsertRow","buildDynamicPredefinedBlocksToJsonMigration","createBlocksToJsonMigrator","getBlocksToJsonMigrator","buildCreateMigration","buildIndexName","createSchemaGenerator","executeSchemaHooks","extendDrizzleTable","hasLocalesTable","pushDevSchema","validateExistingBlockIsIdentical","findMigrationDir","payloadFindMigrationDir"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAY;AAClC,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,MAAM,QAAQ,cAAa;AACpC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,IAAI,QAAQ,YAAW;AAChC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,kBAAkB,QAAQ,0BAAyB;AAC5D,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,WAAW,QAAQ,2BAA0B;AAEtD,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,wBAAwB,QAAQ,wCAAuC;AAChF,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,qBAAqB,QAAQ,oCAAmC;AACzE,SAASC,cAAc,QAAQ,6BAA4B;AAC3D,SAASC,gBAAgB,QAAQ,qCAAoC;AACrE,SAASC,iBAAiB,QAAQ,sCAAqC;AACvE,SAASC,mBAAmB,QAAQ,wCAAuC;AA6C3E,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,MAAM,QAAQ,cAAa;AACpC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SACEC,2CAA2C,EAC3CC,0BAA0B,EAC1BC,uBAAuB,QAClB,sCAAqC;AAC5C,SAASC,oBAAoB,QAAQ,sCAAqC;AAC1E,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,qBAAqB,QAAQ,uCAAsC;AAC5E,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,aAAa,QAAQ,+BAA8B;AAC5D,SAASC,gCAAgC,QAAQ,kDAAiD;AAClG,SAASC,oBAAoBC,uBAAuB,QAAQ,UAAS;AAErE;;;;;;CAMC,GACD,OAAO,MAAMD,mBAAmBC,wBAAuB"}
|
package/dist/migrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,YAAY,CAAA;AAM3D,eAAO,MAAM,OAAO,EAAE,cAAc,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,YAAY,CAAA;AAM3D,eAAO,MAAM,OAAO,EAAE,cAAc,CAAC,SAAS,CA8E7C,CAAA"}
|
package/dist/migrate.js
CHANGED
|
@@ -5,6 +5,7 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
5
5
|
import { parseError } from './utilities/parseError.js';
|
|
6
6
|
export const migrate = async function migrate(args) {
|
|
7
7
|
const { payload } = this;
|
|
8
|
+
const { forceAcceptWarning = false, shouldPrompt = true } = args ?? {};
|
|
8
9
|
const migrationFiles = args?.migrations || await readMigrationFiles({
|
|
9
10
|
payload
|
|
10
11
|
});
|
|
@@ -12,7 +13,10 @@ export const migrate = async function migrate(args) {
|
|
|
12
13
|
payload.logger.info({
|
|
13
14
|
msg: 'No migrations to run.'
|
|
14
15
|
});
|
|
15
|
-
return
|
|
16
|
+
return {
|
|
17
|
+
migrated: [],
|
|
18
|
+
rolledBack: []
|
|
19
|
+
};
|
|
16
20
|
}
|
|
17
21
|
if ('createExtensions' in this && typeof this.createExtensions === 'function') {
|
|
18
22
|
await this.createExtensions();
|
|
@@ -28,18 +32,27 @@ export const migrate = async function migrate(args) {
|
|
|
28
32
|
sort: '-name'
|
|
29
33
|
}));
|
|
30
34
|
if (migrationsInDB.find((m)=>m.batch === -1)) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
if (!forceAcceptWarning) {
|
|
36
|
+
if (!shouldPrompt) {
|
|
37
|
+
return {
|
|
38
|
+
cancelled: true,
|
|
39
|
+
migrated: [],
|
|
40
|
+
rolledBack: []
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const { confirm: runMigrations } = await prompts({
|
|
44
|
+
name: 'confirm',
|
|
45
|
+
type: 'confirm',
|
|
46
|
+
initial: false,
|
|
47
|
+
message: "It looks like you've run Payload in dev mode, meaning you've dynamically pushed changes to your database.\n\n" + "If you'd like to run migrations, data loss will occur. Would you like to proceed?"
|
|
48
|
+
});
|
|
49
|
+
if (!runMigrations) {
|
|
50
|
+
return {
|
|
51
|
+
cancelled: true,
|
|
52
|
+
migrated: [],
|
|
53
|
+
rolledBack: []
|
|
54
|
+
};
|
|
39
55
|
}
|
|
40
|
-
});
|
|
41
|
-
if (!runMigrations) {
|
|
42
|
-
process.exit(0);
|
|
43
56
|
}
|
|
44
57
|
// ignore the dev migration so that the latest batch number increments correctly
|
|
45
58
|
migrationsInDB = migrationsInDB.filter((m)=>m.batch !== -1);
|
|
@@ -49,6 +62,7 @@ export const migrate = async function migrate(args) {
|
|
|
49
62
|
}
|
|
50
63
|
}
|
|
51
64
|
const newBatch = latestBatch + 1;
|
|
65
|
+
const migrated = [];
|
|
52
66
|
// Execute 'up' function for each migration sequentially
|
|
53
67
|
for (const migration of migrationFiles){
|
|
54
68
|
const alreadyRan = migrationsInDB.find((existing)=>existing.name === migration.name);
|
|
@@ -57,7 +71,15 @@ export const migrate = async function migrate(args) {
|
|
|
57
71
|
continue;
|
|
58
72
|
}
|
|
59
73
|
await runMigrationFile(payload, migration, newBatch);
|
|
74
|
+
migrated.push(migration.name);
|
|
60
75
|
}
|
|
76
|
+
return {
|
|
77
|
+
...migrated.length ? {
|
|
78
|
+
batch: newBatch
|
|
79
|
+
} : {},
|
|
80
|
+
migrated,
|
|
81
|
+
rolledBack: []
|
|
82
|
+
};
|
|
61
83
|
};
|
|
62
84
|
async function runMigrationFile(payload, migration, batch) {
|
|
63
85
|
const start = Date.now();
|
|
@@ -91,7 +113,7 @@ async function runMigrationFile(payload, migration, batch) {
|
|
|
91
113
|
err,
|
|
92
114
|
msg: parseError(err, `Error running migration ${migration.name}`)
|
|
93
115
|
});
|
|
94
|
-
|
|
116
|
+
throw err;
|
|
95
117
|
}
|
|
96
118
|
}
|
|
97
119
|
|
package/dist/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrate.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter, Migration } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\nexport const migrate: DrizzleAdapter['migrate'] = async function migrate(\n this: DrizzleAdapter,\n args,\n)
|
|
1
|
+
{"version":3,"sources":["../src/migrate.ts"],"sourcesContent":["import type { MigrationResult, Payload } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter, Migration } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\nexport const migrate: DrizzleAdapter['migrate'] = async function migrate(\n this: DrizzleAdapter,\n args,\n) {\n const { payload } = this\n const { forceAcceptWarning = false, shouldPrompt = true } = args ?? {}\n const migrationFiles = args?.migrations || (await readMigrationFiles({ payload }))\n\n if (!migrationFiles.length) {\n payload.logger.info({ msg: 'No migrations to run.' })\n return { migrated: [], rolledBack: [] }\n }\n\n if ('createExtensions' in this && typeof this.createExtensions === 'function') {\n await this.createExtensions()\n }\n\n let latestBatch = 0\n let migrationsInDB = []\n\n const hasMigrationTable = await migrationTableExists(this)\n\n if (hasMigrationTable) {\n ;({ docs: migrationsInDB } = await payload.find({\n collection: 'payload-migrations',\n limit: 0,\n sort: '-name',\n }))\n\n if (migrationsInDB.find((m) => m.batch === -1)) {\n if (!forceAcceptWarning) {\n if (!shouldPrompt) {\n return { cancelled: true, migrated: [], rolledBack: [] }\n }\n\n const { confirm: runMigrations } = await prompts({\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message:\n \"It looks like you've run Payload in dev mode, meaning you've dynamically pushed changes to your database.\\n\\n\" +\n \"If you'd like to run migrations, data loss will occur. Would you like to proceed?\",\n })\n\n if (!runMigrations) {\n return { cancelled: true, migrated: [], rolledBack: [] }\n }\n }\n // ignore the dev migration so that the latest batch number increments correctly\n migrationsInDB = migrationsInDB.filter((m) => m.batch !== -1)\n }\n\n if (Number(migrationsInDB?.[0]?.batch) > 0) {\n latestBatch = Number(migrationsInDB[0]?.batch)\n }\n }\n\n const newBatch = latestBatch + 1\n const migrated: string[] = []\n\n // Execute 'up' function for each migration sequentially\n for (const migration of migrationFiles) {\n const alreadyRan = migrationsInDB.find((existing) => existing.name === migration.name)\n\n // If already ran, skip\n if (alreadyRan) {\n continue\n }\n\n await runMigrationFile(payload, migration, newBatch)\n migrated.push(migration.name)\n }\n\n return {\n ...(migrated.length ? { batch: newBatch } : {}),\n migrated,\n rolledBack: [],\n } satisfies MigrationResult\n}\n\nasync function runMigrationFile(payload: Payload, migration: Migration, batch: number) {\n const start = Date.now()\n const req = await createLocalReq({}, payload)\n\n payload.logger.info({ msg: `Migrating: ${migration.name}` })\n\n try {\n await initTransaction(req)\n const db = await getTransaction(payload.db as DrizzleAdapter, req)\n await migration.up({ db, payload, req })\n payload.logger.info({ msg: `Migrated: ${migration.name} (${Date.now() - start}ms)` })\n await payload.create({\n collection: 'payload-migrations',\n data: {\n name: migration.name,\n batch,\n },\n req,\n })\n await commitTransaction(req)\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}`),\n })\n throw err\n }\n}\n"],"names":["commitTransaction","createLocalReq","initTransaction","killTransaction","readMigrationFiles","prompts","getTransaction","migrationTableExists","parseError","migrate","args","payload","forceAcceptWarning","shouldPrompt","migrationFiles","migrations","length","logger","info","msg","migrated","rolledBack","createExtensions","latestBatch","migrationsInDB","hasMigrationTable","docs","find","collection","limit","sort","m","batch","cancelled","confirm","runMigrations","name","type","initial","message","filter","Number","newBatch","migration","alreadyRan","existing","runMigrationFile","push","start","Date","now","req","db","up","create","data","err","error"],"mappings":"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"}
|
package/dist/migrateDown.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MigrationResult } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
|
-
export declare function migrateDown(this: DrizzleAdapter): Promise<
|
|
3
|
+
export declare function migrateDown(this: DrizzleAdapter): Promise<MigrationResult>;
|
|
3
4
|
//# sourceMappingURL=migrateDown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateDown.d.ts","sourceRoot":"","sources":["../src/migrateDown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateDown.d.ts","sourceRoot":"","sources":["../src/migrateDown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA8DhF"}
|
package/dist/migrateDown.js
CHANGED
|
@@ -14,12 +14,16 @@ export async function migrateDown() {
|
|
|
14
14
|
payload.logger.info({
|
|
15
15
|
msg: 'No migrations to rollback.'
|
|
16
16
|
});
|
|
17
|
-
return
|
|
17
|
+
return {
|
|
18
|
+
migrated: [],
|
|
19
|
+
rolledBack: []
|
|
20
|
+
};
|
|
18
21
|
}
|
|
19
22
|
payload.logger.info({
|
|
20
23
|
msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`
|
|
21
24
|
});
|
|
22
25
|
const latestBatchMigrations = existingMigrations.filter(({ batch })=>batch === latestBatch);
|
|
26
|
+
const rolledBack = [];
|
|
23
27
|
for (const migration of latestBatchMigrations){
|
|
24
28
|
const migrationFile = migrationFiles.find((m)=>m.name === migration.name);
|
|
25
29
|
if (!migrationFile) {
|
|
@@ -50,15 +54,21 @@ export async function migrateDown() {
|
|
|
50
54
|
});
|
|
51
55
|
}
|
|
52
56
|
await commitTransaction(req);
|
|
57
|
+
rolledBack.push(migrationFile.name);
|
|
53
58
|
} catch (err) {
|
|
54
59
|
await killTransaction(req);
|
|
55
60
|
payload.logger.error({
|
|
56
61
|
err,
|
|
57
62
|
msg: parseError(err, `Error migrating down ${migrationFile.name}. Rolling back.`)
|
|
58
63
|
});
|
|
59
|
-
|
|
64
|
+
throw err;
|
|
60
65
|
}
|
|
61
66
|
}
|
|
67
|
+
return {
|
|
68
|
+
batch: latestBatch,
|
|
69
|
+
migrated: [],
|
|
70
|
+
rolledBack
|
|
71
|
+
};
|
|
62
72
|
}
|
|
63
73
|
|
|
64
74
|
//# sourceMappingURL=migrateDown.js.map
|
package/dist/migrateDown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateDown.ts"],"sourcesContent":["import {\n commitTransaction,\n createLocalReq,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\nexport async function migrateDown(this: DrizzleAdapter): Promise<
|
|
1
|
+
{"version":3,"sources":["../src/migrateDown.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createLocalReq,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\nexport async function migrateDown(this: DrizzleAdapter): Promise<MigrationResult> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n const { existingMigrations, latestBatch } = await getMigrations({\n payload,\n })\n\n if (!existingMigrations?.length) {\n payload.logger.info({ msg: 'No migrations to rollback.' })\n return { migrated: [], rolledBack: [] }\n }\n\n payload.logger.info({\n msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`,\n })\n\n const latestBatchMigrations = existingMigrations.filter(({ batch }) => batch === latestBatch)\n const rolledBack: string[] = []\n\n for (const migration of latestBatchMigrations) {\n const migrationFile = migrationFiles.find((m) => m.name === migration.name)\n if (!migrationFile) {\n throw new Error(`Migration ${migration.name} not found locally.`)\n }\n\n const start = Date.now()\n const req = await createLocalReq({}, payload)\n\n try {\n payload.logger.info({ msg: `Migrating down: ${migrationFile.name}` })\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migrationFile.down({ db, payload, req })\n payload.logger.info({\n msg: `Migrated down: ${migrationFile.name} (${Date.now() - start}ms)`,\n })\n\n const tableExists = await migrationTableExists(this, db)\n\n if (tableExists) {\n await payload.delete({\n id: migration.id,\n collection: 'payload-migrations',\n req,\n })\n }\n\n await commitTransaction(req)\n rolledBack.push(migrationFile.name)\n } catch (err: unknown) {\n await killTransaction(req)\n\n payload.logger.error({\n err,\n msg: parseError(err, `Error migrating down ${migrationFile.name}. Rolling back.`),\n })\n throw err\n }\n }\n\n return { batch: latestBatch, migrated: [], rolledBack }\n}\n"],"names":["commitTransaction","createLocalReq","getMigrations","initTransaction","killTransaction","readMigrationFiles","getTransaction","migrationTableExists","parseError","migrateDown","payload","migrationFiles","existingMigrations","latestBatch","length","logger","info","msg","migrated","rolledBack","latestBatchMigrations","filter","batch","migration","migrationFile","find","m","name","Error","start","Date","now","req","db","down","tableExists","delete","id","collection","push","err","error"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,cAAc,EACdC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,kBAAkB,QACb,UAAS;AAIhB,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,oBAAoB,QAAQ,sCAAqC;AAC1E,SAASC,UAAU,QAAQ,4BAA2B;AAEtD,OAAO,eAAeC;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IACxB,MAAMC,iBAAiB,MAAMN,mBAAmB;QAAEK;IAAQ;IAE1D,MAAM,EAAEE,kBAAkB,EAAEC,WAAW,EAAE,GAAG,MAAMX,cAAc;QAC9DQ;IACF;IAEA,IAAI,CAACE,oBAAoBE,QAAQ;QAC/BJ,QAAQK,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK;QAA6B;QACxD,OAAO;YAAEC,UAAU,EAAE;YAAEC,YAAY,EAAE;QAAC;IACxC;IAEAT,QAAQK,MAAM,CAACC,IAAI,CAAC;QAClBC,KAAK,CAAC,mBAAmB,EAAEJ,YAAY,eAAe,EAAED,mBAAmBE,MAAM,CAAC,cAAc,CAAC;IACnG;IAEA,MAAMM,wBAAwBR,mBAAmBS,MAAM,CAAC,CAAC,EAAEC,KAAK,EAAE,GAAKA,UAAUT;IACjF,MAAMM,aAAuB,EAAE;IAE/B,KAAK,MAAMI,aAAaH,sBAAuB;QAC7C,MAAMI,gBAAgBb,eAAec,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ,UAAUI,IAAI;QAC1E,IAAI,CAACH,eAAe;YAClB,MAAM,IAAII,MAAM,CAAC,UAAU,EAAEL,UAAUI,IAAI,CAAC,mBAAmB,CAAC;QAClE;QAEA,MAAME,QAAQC,KAAKC,GAAG;QACtB,MAAMC,MAAM,MAAM/B,eAAe,CAAC,GAAGS;QAErC,IAAI;YACFA,QAAQK,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,gBAAgB,EAAEO,cAAcG,IAAI,EAAE;YAAC;YACnE,MAAMxB,gBAAgB6B;YACtB,MAAMC,KAAK,MAAM3B,eAAe,IAAI,EAAE0B;YACtC,MAAMR,cAAcU,IAAI,CAAC;gBAAED;gBAAIvB;gBAASsB;YAAI;YAC5CtB,QAAQK,MAAM,CAACC,IAAI,CAAC;gBAClBC,KAAK,CAAC,gBAAgB,EAAEO,cAAcG,IAAI,CAAC,EAAE,EAAEG,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YACxE;YAEA,MAAMM,cAAc,MAAM5B,qBAAqB,IAAI,EAAE0B;YAErD,IAAIE,aAAa;gBACf,MAAMzB,QAAQ0B,MAAM,CAAC;oBACnBC,IAAId,UAAUc,EAAE;oBAChBC,YAAY;oBACZN;gBACF;YACF;YAEA,MAAMhC,kBAAkBgC;YACxBb,WAAWoB,IAAI,CAACf,cAAcG,IAAI;QACpC,EAAE,OAAOa,KAAc;YACrB,MAAMpC,gBAAgB4B;YAEtBtB,QAAQK,MAAM,CAAC0B,KAAK,CAAC;gBACnBD;gBACAvB,KAAKT,WAAWgC,KAAK,CAAC,qBAAqB,EAAEhB,cAAcG,IAAI,CAAC,eAAe,CAAC;YAClF;YACA,MAAMa;QACR;IACF;IAEA,OAAO;QAAElB,OAAOT;QAAaK,UAAU,EAAE;QAAEC;IAAW;AACxD"}
|
package/dist/migrateFresh.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { MigrationResult } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Drop the current database and run all migrate up functions
|
|
4
5
|
*/
|
|
5
|
-
export declare function migrateFresh(this: DrizzleAdapter, { forceAcceptWarning }: {
|
|
6
|
+
export declare function migrateFresh(this: DrizzleAdapter, { forceAcceptWarning, shouldPrompt }: {
|
|
6
7
|
forceAcceptWarning?: boolean;
|
|
7
|
-
|
|
8
|
+
shouldPrompt?: boolean;
|
|
9
|
+
}): Promise<MigrationResult>;
|
|
8
10
|
//# sourceMappingURL=migrateFresh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateFresh.d.ts","sourceRoot":"","sources":["../src/migrateFresh.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateFresh.d.ts","sourceRoot":"","sources":["../src/migrateFresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,cAAc,EACpB,EAAE,kBAA0B,EAAE,YAAmB,EAAE;;;CAAA,GAClD,OAAO,CAAC,eAAe,CAAC,CAqE1B"}
|