@payloadcms/db-sqlite 3.0.0-canary.ff8c8fd → 3.0.1-canary.34c6cc0

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/traverseFields.ts"],"sourcesContent":["import type { Relation } from 'drizzle-orm'\nimport type { IndexBuilder, SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core'\nimport type { Field, TabAsField } from 'payload'\n\nimport {\n createTableName,\n hasLocalesTable,\n validateExistingBlockIsIdentical,\n} from '@payloadcms/drizzle'\nimport { relations } from 'drizzle-orm'\nimport {\n SQLiteIntegerBuilder,\n SQLiteNumericBuilder,\n SQLiteTextBuilder,\n foreignKey,\n index,\n integer,\n numeric,\n text,\n} from 'drizzle-orm/sqlite-core'\nimport { InvalidConfiguration } from 'payload'\nimport { fieldAffectsData, optionIsObject } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, IDType, SQLiteAdapter } from '../types.js'\nimport type { BaseExtraConfig, RelationMap } from './build.js'\n\nimport { buildTable } from './build.js'\nimport { createIndex } from './createIndex.js'\nimport { getIDColumn } from './getIDColumn.js'\nimport { idToUUID } from './idToUUID.js'\nimport { withDefault } from './withDefault.js'\n\ntype Args = {\n adapter: SQLiteAdapter\n columnPrefix?: string\n columns: Record<string, SQLiteColumnBuilder>\n disableNotNull: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: (Field | TabAsField)[]\n forceLocalized?: boolean\n indexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n locales: [string, ...string[]]\n localesColumns: Record<string, SQLiteColumnBuilder>\n localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n newTableName: string\n parentTableName: string\n relationsToBuild: RelationMap\n relationships: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: IDType\n rootTableName: string\n versions: boolean\n}\n\ntype Result = {\n hasLocalizedField: boolean\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n}\n\nexport const traverseFields = ({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n}: Args): Result => {\n let hasLocalizedField = false\n let hasLocalizedRelationshipField = false\n let hasManyTextField: 'index' | boolean = false\n let hasLocalizedManyTextField = false\n let hasManyNumberField: 'index' | boolean = false\n let hasLocalizedManyNumberField = false\n\n let parentIDColType: IDType = 'integer'\n if (columns.id instanceof SQLiteIntegerBuilder) parentIDColType = 'integer'\n if (columns.id instanceof SQLiteNumericBuilder) parentIDColType = 'numeric'\n if (columns.id instanceof SQLiteTextBuilder) parentIDColType = 'text'\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') return\n let columnName: string\n let fieldName: string\n\n let targetTable = columns\n let targetIndexes = indexes\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`\n\n // If field is localized,\n // add the column to the locale table instead of main table\n if (\n adapter.payload.config.localization &&\n (field.localized || forceLocalized) &&\n field.type !== 'array' &&\n field.type !== 'blocks' &&\n (('hasMany' in field && field.hasMany !== true) || !('hasMany' in field))\n ) {\n hasLocalizedField = true\n targetTable = localesColumns\n targetIndexes = localesIndexes\n }\n\n if (\n (field.unique || field.index) &&\n !['array', 'blocks', 'group', 'point', 'relationship', 'upload'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true)\n ) {\n const unique = disableUnique !== true && field.unique\n if (unique) {\n const constraintValue = `${fieldPrefix || ''}${field.name}`\n if (!adapter.fieldConstraints?.[rootTableName]) {\n adapter.fieldConstraints[rootTableName] = {}\n }\n adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue\n }\n targetIndexes[`${newTableName}_${field.name}Idx`] = createIndex({\n name: fieldName,\n columnName,\n tableName: newTableName,\n unique,\n })\n }\n }\n\n switch (field.type) {\n case 'text': {\n if (field.hasMany) {\n if (field.localized) {\n hasLocalizedManyTextField = true\n }\n\n if (field.index) {\n hasManyTextField = 'index'\n } else if (!hasManyTextField) {\n hasManyTextField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in SQLite for hasMany text fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(text(columnName), field)\n }\n break\n }\n case 'email':\n case 'code':\n case 'textarea': {\n targetTable[fieldName] = withDefault(text(columnName), field)\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n if (field.localized) {\n hasLocalizedManyNumberField = true\n }\n\n if (field.index) {\n hasManyNumberField = 'index'\n } else if (!hasManyNumberField) {\n hasManyNumberField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany number fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(numeric(columnName), field)\n }\n break\n }\n\n case 'richText':\n case 'json': {\n targetTable[fieldName] = withDefault(text(columnName, { mode: 'json' }), field)\n break\n }\n\n case 'date': {\n targetTable[fieldName] = withDefault(text(columnName), field)\n break\n }\n\n case 'point': {\n break\n }\n\n case 'radio':\n case 'select': {\n const options = field.options.map((option) => {\n if (optionIsObject(option)) {\n return option.value\n }\n\n return option\n }) as [string, ...string[]]\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n versionsCustomName: versions,\n })\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n order: integer('order').notNull(),\n parent: getIDColumn({\n name: 'parent_id',\n type: parentIDColType,\n notNull: true,\n primaryKey: false,\n }),\n value: text('value', { enum: options }),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n orderIdx: (cols) => index(`${selectTableName}_order_idx`).on(cols.order),\n parentFk: (cols) =>\n foreignKey({\n name: `${selectTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n parentIdx: (cols) => index(`${selectTableName}_parent_idx`).on(cols.parent),\n }\n\n if (field.localized) {\n baseColumns.locale = text('locale', { enum: locales }).notNull()\n baseExtraConfig.localeIdx = (cols) =>\n index(`${selectTableName}_locale_idx`).on(cols.locale)\n }\n\n if (field.index) {\n baseExtraConfig.value = (cols) => index(`${selectTableName}_value_idx`).on(cols.value)\n }\n\n buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull,\n disableUnique,\n fields: [],\n rootTableName,\n tableName: selectTableName,\n versions,\n })\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // selects have their own localized table, independent of the base table.\n localized: false,\n target: selectTableName,\n })\n\n adapter.relations[`relations_${selectTableName}`] = relations(\n adapter.tables[selectTableName],\n ({ one }) => ({\n parent: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[selectTableName].parent],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }),\n )\n } else {\n targetTable[fieldName] = withDefault(text(fieldName, { enum: options }), field)\n }\n break\n }\n\n case 'checkbox': {\n targetTable[fieldName] = withDefault(integer(columnName, { mode: 'boolean' }), field)\n break\n }\n\n case 'array': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const arrayTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: getIDColumn({\n name: '_parent_id',\n type: parentIDColType,\n notNull: true,\n primaryKey: false,\n }),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${arrayTableName}_order_idx`).on(cols._order),\n _parentIDFk: (cols) =>\n foreignKey({\n name: `${arrayTableName}_parent_id_fk`,\n columns: [cols['_parentID']],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${arrayTableName}_parent_id_idx`).on(cols._parentID),\n }\n\n if (field.localized && adapter.payload.config.localization) {\n baseColumns._locale = text('_locale', { enum: locales }).notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${arrayTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(field.fields) : field.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: arrayTableName,\n versions,\n })\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index')\n hasManyTextField = subHasManyTextField\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index')\n hasManyNumberField = subHasManyNumberField\n }\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // arrays have their own localized table, independent of the base table.\n localized: false,\n target: arrayTableName,\n })\n\n adapter.relations[`relations_${arrayTableName}`] = relations(\n adapter.tables[arrayTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[arrayTableName]._parentID],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }\n\n if (hasLocalesTable(field.fields)) {\n result._locales = many(adapter.tables[`${arrayTableName}${adapter.localesSuffix}`], {\n relationName: '_locales',\n })\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const arrayWithLocalized = localized\n ? `${arrayTableName}${adapter.localesSuffix}`\n : arrayTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[arrayWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n\n break\n }\n\n case 'blocks': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n field.blocks.forEach((block) => {\n const blockTableName = createTableName({\n adapter,\n config: block,\n parentTableName: rootTableName,\n prefix: `${rootTableName}_blocks_`,\n versionsCustomName: versions,\n })\n if (!adapter.tables[blockTableName]) {\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: getIDColumn({\n name: '_parent_id',\n type: rootTableIDColType,\n notNull: true,\n primaryKey: false,\n }),\n _path: text('_path').notNull(),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${blockTableName}_order_idx`).on(cols._order),\n _parentIDIdx: (cols) => index(`${blockTableName}_parent_id_idx`).on(cols._parentID),\n _parentIdFk: (cols) =>\n foreignKey({\n name: `${blockTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [adapter.tables[rootTableName].id],\n }).onDelete('cascade'),\n _pathIdx: (cols) => index(`${blockTableName}_path_idx`).on(cols._path),\n }\n\n if (field.localized && adapter.payload.config.localization) {\n baseColumns._locale = text('_locale', { enum: locales }).notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${blockTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(block.fields) : block.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: blockTableName,\n versions,\n })\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index')\n hasManyTextField = subHasManyTextField\n }\n\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index')\n hasManyNumberField = subHasManyNumberField\n }\n\n adapter.relations[`relations_${blockTableName}`] = relations(\n adapter.tables[blockTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[rootTableName], {\n fields: [adapter.tables[blockTableName]._parentID],\n references: [adapter.tables[rootTableName].id],\n relationName: `_blocks_${block.slug}`,\n }),\n }\n\n if (hasLocalesTable(block.fields)) {\n result._locales = many(\n adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n { relationName: '_locales' },\n )\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const blockWithLocalized = localized\n ? `${blockTableName}${adapter.localesSuffix}`\n : blockTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[blockWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n } else if (process.env.NODE_ENV !== 'production' && !versions) {\n validateExistingBlockIsIdentical({\n block,\n localized: field.localized,\n rootTableName,\n table: adapter.tables[blockTableName],\n tableLocales: adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n })\n }\n // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks\n rootRelationsToBuild.set(`_blocks_${block.slug}`, {\n type: 'many',\n // blocks are not localized on the parent table\n localized: false,\n target: blockTableName,\n })\n })\n\n break\n }\n\n case 'tab':\n case 'group': {\n if (!('name' in field)) {\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix: `${columnName}_`,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix: `${fieldName}.`,\n fields: field.fields,\n forceLocalized: field.localized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'tabs': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: tabHasLocalizedField,\n hasLocalizedManyNumberField: tabHasLocalizedManyNumberField,\n hasLocalizedManyTextField: tabHasLocalizedManyTextField,\n hasLocalizedRelationshipField: tabHasLocalizedRelationshipField,\n hasManyNumberField: tabHasManyNumberField,\n hasManyTextField: tabHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (tabHasLocalizedField) hasLocalizedField = true\n if (tabHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (tabHasManyTextField) hasManyTextField = true\n if (tabHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (tabHasManyNumberField) hasManyNumberField = true\n if (tabHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'row':\n case 'collapsible': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n const {\n hasLocalizedField: rowHasLocalizedField,\n hasLocalizedManyNumberField: rowHasLocalizedManyNumberField,\n hasLocalizedManyTextField: rowHasLocalizedManyTextField,\n hasLocalizedRelationshipField: rowHasLocalizedRelationshipField,\n hasManyNumberField: rowHasManyNumberField,\n hasManyTextField: rowHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (rowHasLocalizedField) hasLocalizedField = true\n if (rowHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (rowHasManyTextField) hasManyTextField = true\n if (rowHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (rowHasManyNumberField) hasManyNumberField = true\n if (rowHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => relationships.add(relation))\n } else if (field.hasMany) {\n relationships.add(field.relationTo)\n } else {\n // simple relationships get a column on the targetTable with a foreign key to the relationTo table\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo))\n\n // get the id type of the related collection\n let colType: IDType = 'integer'\n const relatedCollectionCustomID = relationshipConfig.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (relatedCollectionCustomID?.type === 'number') colType = 'numeric'\n if (relatedCollectionCustomID?.type === 'text') colType = 'text'\n\n // make the foreign key column for relationship using the correct id column type\n targetTable[fieldName] = getIDColumn({\n name: `${columnName}_id`,\n type: colType,\n primaryKey: false,\n }).references(() => adapter.tables[tableName].id, { onDelete: 'set null' })\n\n // add relationship to table\n relationsToBuild.set(fieldName, {\n type: 'one',\n localized: adapter.payload.config.localization && field.localized,\n target: tableName,\n })\n\n // add notNull when not required\n if (!disableNotNull && field.required && !field.admin?.condition) {\n targetTable[fieldName].notNull()\n }\n break\n }\n if (adapter.payload.config.localization && field.localized) {\n hasLocalizedRelationshipField = true\n }\n\n break\n\n default:\n break\n }\n\n const condition = field.admin && field.admin.condition\n\n if (\n !disableNotNull &&\n targetTable[fieldName] &&\n 'required' in field &&\n field.required &&\n !condition\n ) {\n targetTable[fieldName].notNull()\n }\n })\n\n return {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n }\n}\n"],"names":["createTableName","hasLocalesTable","validateExistingBlockIsIdentical","relations","SQLiteIntegerBuilder","SQLiteNumericBuilder","SQLiteTextBuilder","foreignKey","index","integer","numeric","text","InvalidConfiguration","fieldAffectsData","optionIsObject","toSnakeCase","buildTable","createIndex","getIDColumn","idToUUID","withDefault","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableUnique","fieldPrefix","fields","forceLocalized","indexes","locales","localesColumns","localesIndexes","newTableName","parentTableName","relationsToBuild","relationships","rootRelationsToBuild","rootTableIDColType","rootTableName","versions","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","id","forEach","field","name","columnName","fieldName","targetTable","targetIndexes","replace","payload","config","localization","localized","type","hasMany","unique","includes","constraintValue","fieldConstraints","tableName","mode","options","map","option","value","selectTableName","prefix","versionsCustomName","baseColumns","order","notNull","parent","primaryKey","enum","baseExtraConfig","orderIdx","cols","on","parentFk","foreignColumns","tables","onDelete","parentIdx","locale","localeIdx","set","target","one","references","relationName","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","_order","_parentID","_orderIdx","_parentIDFk","_parentIDIdx","_locale","_localeIdx","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","rootRelationships","many","result","_locales","localesSuffix","key","arrayWithLocalized","blocks","block","blockTableName","_path","_parentIdFk","_pathIdx","slug","blockWithLocalized","process","env","NODE_ENV","table","tableLocales","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","tabHasLocalizedField","tabHasLocalizedManyNumberField","tabHasLocalizedManyTextField","tabHasLocalizedRelationshipField","tabHasManyNumberField","tabHasManyTextField","tabs","tab","rowHasLocalizedField","rowHasLocalizedManyNumberField","rowHasLocalizedManyTextField","rowHasLocalizedRelationshipField","rowHasManyNumberField","rowHasManyTextField","Array","isArray","relationTo","relation","add","relationshipConfig","collections","tableNameMap","get","colType","relatedCollectionCustomID","find","required"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/traverseFields.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { Relation } from 'drizzle-orm'\nimport type { IndexBuilder, SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core'\nimport type { Field, TabAsField } from 'payload'\n\nimport {\n buildIndexName,\n createTableName,\n hasLocalesTable,\n validateExistingBlockIsIdentical,\n} from '@payloadcms/drizzle'\nimport { relations } from 'drizzle-orm'\nimport {\n foreignKey,\n index,\n integer,\n numeric,\n SQLiteIntegerBuilder,\n SQLiteNumericBuilder,\n SQLiteTextBuilder,\n text,\n} from 'drizzle-orm/sqlite-core'\nimport { InvalidConfiguration } from 'payload'\nimport { fieldAffectsData, fieldIsVirtual, optionIsObject } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, IDType, SQLiteAdapter } from '../types.js'\nimport type { BaseExtraConfig, RelationMap } from './build.js'\n\nimport { buildTable } from './build.js'\nimport { createIndex } from './createIndex.js'\nimport { getIDColumn } from './getIDColumn.js'\nimport { idToUUID } from './idToUUID.js'\nimport { withDefault } from './withDefault.js'\n\ntype Args = {\n adapter: SQLiteAdapter\n columnPrefix?: string\n columns: Record<string, SQLiteColumnBuilder>\n disableNotNull: boolean\n disableRelsTableUnique?: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: (Field | TabAsField)[]\n forceLocalized?: boolean\n indexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n locales: [string, ...string[]]\n localesColumns: Record<string, SQLiteColumnBuilder>\n localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n newTableName: string\n parentTableName: string\n relationships: Set<string>\n relationsToBuild: RelationMap\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: IDType\n rootTableName: string\n uniqueRelationships: Set<string>\n versions: boolean\n /**\n * Tracks whether or not this table is built\n * from the result of a localized array or block field at some point\n */\n withinLocalizedArrayOrBlock?: boolean\n}\n\ntype Result = {\n hasLocalizedField: boolean\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n}\n\nexport const traverseFields = ({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableRelsTableUnique,\n disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n let hasLocalizedField = false\n let hasLocalizedRelationshipField = false\n let hasManyTextField: 'index' | boolean = false\n let hasLocalizedManyTextField = false\n let hasManyNumberField: 'index' | boolean = false\n let hasLocalizedManyNumberField = false\n\n let parentIDColType: IDType = 'integer'\n if (columns.id instanceof SQLiteIntegerBuilder) {\n parentIDColType = 'integer'\n }\n if (columns.id instanceof SQLiteNumericBuilder) {\n parentIDColType = 'numeric'\n }\n if (columns.id instanceof SQLiteTextBuilder) {\n parentIDColType = 'text'\n }\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') {\n return\n }\n\n if (fieldIsVirtual(field)) {\n return\n }\n\n let columnName: string\n let fieldName: string\n\n let targetTable = columns\n let targetIndexes = indexes\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`\n\n // If field is localized,\n // add the column to the locale table instead of main table\n if (\n adapter.payload.config.localization &&\n (field.localized || forceLocalized) &&\n field.type !== 'array' &&\n field.type !== 'blocks' &&\n (('hasMany' in field && field.hasMany !== true) || !('hasMany' in field))\n ) {\n hasLocalizedField = true\n targetTable = localesColumns\n targetIndexes = localesIndexes\n }\n\n if (\n (field.unique || field.index || ['relationship', 'upload'].includes(field.type)) &&\n !['array', 'blocks', 'group', 'point'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true) &&\n !('relationTo' in field && Array.isArray(field.relationTo))\n ) {\n const unique = disableUnique !== true && field.unique\n if (unique) {\n const constraintValue = `${fieldPrefix || ''}${field.name}`\n if (!adapter.fieldConstraints?.[rootTableName]) {\n adapter.fieldConstraints[rootTableName] = {}\n }\n adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue\n }\n\n const indexName = buildIndexName({\n name: `${newTableName}_${columnName}`,\n adapter: adapter as unknown as DrizzleAdapter,\n })\n\n targetIndexes[indexName] = createIndex({\n name: field.localized ? [fieldName, '_locale'] : fieldName,\n indexName,\n unique,\n })\n }\n }\n\n switch (field.type) {\n case 'array': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const arrayTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: getIDColumn({\n name: '_parent_id',\n type: parentIDColType,\n notNull: true,\n primaryKey: false,\n }),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${arrayTableName}_order_idx`).on(cols._order),\n _parentIDFk: (cols) =>\n foreignKey({\n name: `${arrayTableName}_parent_id_fk`,\n columns: [cols['_parentID']],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${arrayTableName}_parent_id_idx`).on(cols._parentID),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns._locale = text('_locale', { enum: locales }).notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${arrayTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableRelsTableUnique: true,\n disableUnique,\n fields: disableUnique ? idToUUID(field.fields) : field.fields,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n rootUniqueRelationships: uniqueRelationships,\n tableName: arrayTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // arrays have their own localized table, independent of the base table.\n localized: false,\n target: arrayTableName,\n })\n\n adapter.relations[`relations_${arrayTableName}`] = relations(\n adapter.tables[arrayTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[arrayTableName]._parentID],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }\n\n if (hasLocalesTable(field.fields)) {\n result._locales = many(adapter.tables[`${arrayTableName}${adapter.localesSuffix}`], {\n relationName: '_locales',\n })\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const arrayWithLocalized = localized\n ? `${arrayTableName}${adapter.localesSuffix}`\n : arrayTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[arrayWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n\n break\n }\n case 'blocks': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n field.blocks.forEach((block) => {\n const blockTableName = createTableName({\n adapter,\n config: block,\n parentTableName: rootTableName,\n prefix: `${rootTableName}_blocks_`,\n versionsCustomName: versions,\n })\n if (!adapter.tables[blockTableName]) {\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: getIDColumn({\n name: '_parent_id',\n type: rootTableIDColType,\n notNull: true,\n primaryKey: false,\n }),\n _path: text('_path').notNull(),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${blockTableName}_order_idx`).on(cols._order),\n _parentIdFk: (cols) =>\n foreignKey({\n name: `${blockTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [adapter.tables[rootTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${blockTableName}_parent_id_idx`).on(cols._parentID),\n _pathIdx: (cols) => index(`${blockTableName}_path_idx`).on(cols._path),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns._locale = text('_locale', { enum: locales }).notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${blockTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableRelsTableUnique: true,\n disableUnique,\n fields: disableUnique ? idToUUID(block.fields) : block.fields,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n rootUniqueRelationships: uniqueRelationships,\n tableName: blockTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n adapter.relations[`relations_${blockTableName}`] = relations(\n adapter.tables[blockTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[rootTableName], {\n fields: [adapter.tables[blockTableName]._parentID],\n references: [adapter.tables[rootTableName].id],\n relationName: `_blocks_${block.slug}`,\n }),\n }\n\n if (hasLocalesTable(block.fields)) {\n result._locales = many(\n adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n { relationName: '_locales' },\n )\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const blockWithLocalized = localized\n ? `${blockTableName}${adapter.localesSuffix}`\n : blockTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[blockWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n } else if (process.env.NODE_ENV !== 'production' && !versions) {\n validateExistingBlockIsIdentical({\n block,\n localized: field.localized,\n rootTableName,\n table: adapter.tables[blockTableName],\n tableLocales: adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n })\n }\n // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks\n rootRelationsToBuild.set(`_blocks_${block.slug}`, {\n type: 'many',\n // blocks are not localized on the parent table\n localized: false,\n target: blockTableName,\n })\n })\n\n break\n }\n case 'checkbox': {\n targetTable[fieldName] = withDefault(integer(columnName, { mode: 'boolean' }), field)\n break\n }\n\n case 'code':\n case 'email':\n case 'textarea': {\n targetTable[fieldName] = withDefault(text(columnName), field)\n break\n }\n\n case 'collapsible':\n case 'row': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n const {\n hasLocalizedField: rowHasLocalizedField,\n hasLocalizedManyNumberField: rowHasLocalizedManyNumberField,\n hasLocalizedManyTextField: rowHasLocalizedManyTextField,\n hasLocalizedRelationshipField: rowHasLocalizedRelationshipField,\n hasManyNumberField: rowHasManyNumberField,\n hasManyTextField: rowHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n if (rowHasLocalizedField) {\n hasLocalizedField = true\n }\n if (rowHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (rowHasManyTextField) {\n hasManyTextField = true\n }\n if (rowHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (rowHasManyNumberField) {\n hasManyNumberField = true\n }\n if (rowHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n case 'date': {\n targetTable[fieldName] = withDefault(text(columnName), field)\n break\n }\n\n case 'group':\n case 'tab': {\n if (!('name' in field)) {\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n if (groupHasLocalizedField) {\n hasLocalizedField = true\n }\n if (groupHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (groupHasManyTextField) {\n hasManyTextField = true\n }\n if (groupHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (groupHasManyNumberField) {\n hasManyNumberField = true\n }\n if (groupHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix: `${columnName}_`,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix: `${fieldName}.`,\n fields: field.fields,\n forceLocalized: field.localized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock: withinLocalizedArrayOrBlock || field.localized,\n })\n\n if (groupHasLocalizedField) {\n hasLocalizedField = true\n }\n if (groupHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (groupHasManyTextField) {\n hasManyTextField = true\n }\n if (groupHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (groupHasManyNumberField) {\n hasManyNumberField = true\n }\n if (groupHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n case 'json':\n case 'richText': {\n targetTable[fieldName] = withDefault(text(columnName, { mode: 'json' }), field)\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n hasLocalizedManyNumberField = true\n }\n\n if (field.index) {\n hasManyNumberField = 'index'\n } else if (!hasManyNumberField) {\n hasManyNumberField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany number fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(numeric(columnName), field)\n }\n break\n }\n\n case 'point': {\n break\n }\n\n case 'radio':\n case 'select': {\n const options = field.options.map((option) => {\n if (optionIsObject(option)) {\n return option.value\n }\n\n return option\n }) as [string, ...string[]]\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n versionsCustomName: versions,\n })\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n order: integer('order').notNull(),\n parent: getIDColumn({\n name: 'parent_id',\n type: parentIDColType,\n notNull: true,\n primaryKey: false,\n }),\n value: text('value', { enum: options }),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n orderIdx: (cols) => index(`${selectTableName}_order_idx`).on(cols.order),\n parentFk: (cols) =>\n foreignKey({\n name: `${selectTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n parentIdx: (cols) => index(`${selectTableName}_parent_idx`).on(cols.parent),\n }\n\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns.locale = text('locale', { enum: locales }).notNull()\n baseExtraConfig.localeIdx = (cols) =>\n index(`${selectTableName}_locale_idx`).on(cols.locale)\n }\n\n if (field.index) {\n baseExtraConfig.value = (cols) => index(`${selectTableName}_value_idx`).on(cols.value)\n }\n\n buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull,\n disableUnique,\n fields: [],\n rootTableName,\n tableName: selectTableName,\n versions,\n })\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // selects have their own localized table, independent of the base table.\n localized: false,\n target: selectTableName,\n })\n\n adapter.relations[`relations_${selectTableName}`] = relations(\n adapter.tables[selectTableName],\n ({ one }) => ({\n parent: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[selectTableName].parent],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }),\n )\n } else {\n targetTable[fieldName] = withDefault(\n text(columnName, {\n enum: options,\n }),\n field,\n )\n }\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => {\n relationships.add(relation)\n if (field.unique && !disableUnique && !disableRelsTableUnique) {\n uniqueRelationships.add(relation)\n }\n })\n } else if (field.hasMany) {\n relationships.add(field.relationTo)\n if (field.unique && !disableUnique && !disableRelsTableUnique) {\n uniqueRelationships.add(field.relationTo)\n }\n } else {\n // simple relationships get a column on the targetTable with a foreign key to the relationTo table\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo))\n\n // get the id type of the related collection\n let colType: IDType = 'integer'\n const relatedCollectionCustomID = relationshipConfig.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (relatedCollectionCustomID?.type === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomID?.type === 'text') {\n colType = 'text'\n }\n\n // make the foreign key column for relationship using the correct id column type\n targetTable[fieldName] = getIDColumn({\n name: `${columnName}_id`,\n type: colType,\n primaryKey: false,\n }).references(() => adapter.tables[tableName].id, { onDelete: 'set null' })\n\n // add relationship to table\n relationsToBuild.set(fieldName, {\n type: 'one',\n localized: adapter.payload.config.localization && (field.localized || forceLocalized),\n target: tableName,\n })\n\n // add notNull when not required\n if (!disableNotNull && field.required && !field.admin?.condition) {\n targetTable[fieldName].notNull()\n }\n break\n }\n if (\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n ) {\n hasLocalizedRelationshipField = true\n }\n\n break\n\n case 'tabs': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: tabHasLocalizedField,\n hasLocalizedManyNumberField: tabHasLocalizedManyNumberField,\n hasLocalizedManyTextField: tabHasLocalizedManyTextField,\n hasLocalizedRelationshipField: tabHasLocalizedRelationshipField,\n hasManyNumberField: tabHasManyNumberField,\n hasManyTextField: tabHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n if (tabHasLocalizedField) {\n hasLocalizedField = true\n }\n if (tabHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (tabHasManyTextField) {\n hasManyTextField = true\n }\n if (tabHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (tabHasManyNumberField) {\n hasManyNumberField = true\n }\n if (tabHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n case 'text': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(field.localized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n hasLocalizedManyTextField = true\n }\n\n if (field.index) {\n hasManyTextField = 'index'\n } else if (!hasManyTextField) {\n hasManyTextField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in SQLite for hasMany text fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(text(columnName), field)\n }\n break\n }\n\n default:\n break\n }\n\n const condition = field.admin && field.admin.condition\n\n if (\n !disableNotNull &&\n targetTable[fieldName] &&\n 'required' in field &&\n field.required &&\n !condition\n ) {\n targetTable[fieldName].notNull()\n }\n })\n\n return {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n }\n}\n"],"names":["buildIndexName","createTableName","hasLocalesTable","validateExistingBlockIsIdentical","relations","foreignKey","index","integer","numeric","SQLiteIntegerBuilder","SQLiteNumericBuilder","SQLiteTextBuilder","text","InvalidConfiguration","fieldAffectsData","fieldIsVirtual","optionIsObject","toSnakeCase","buildTable","createIndex","getIDColumn","idToUUID","withDefault","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableRelsTableUnique","disableUnique","fieldPrefix","fields","forceLocalized","indexes","locales","localesColumns","localesIndexes","newTableName","parentTableName","relationships","relationsToBuild","rootRelationsToBuild","rootTableIDColType","rootTableName","uniqueRelationships","versions","withinLocalizedArrayOrBlock","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","id","forEach","field","name","columnName","fieldName","targetTable","targetIndexes","replace","payload","config","localization","localized","type","hasMany","unique","includes","Array","isArray","relationTo","constraintValue","fieldConstraints","indexName","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","prefix","versionsCustomName","baseColumns","_order","notNull","_parentID","primaryKey","baseExtraConfig","_orderIdx","cols","on","_parentIDFk","foreignColumns","tables","onDelete","_parentIDIdx","isLocalized","_locale","enum","_localeIdx","subHasLocalizedManyNumberField","subHasLocalizedManyTextField","subHasLocalizedRelationshipField","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","rootRelationships","rootUniqueRelationships","tableName","set","target","many","one","result","references","relationName","_locales","localesSuffix","key","arrayWithLocalized","blocks","block","blockTableName","_path","_parentIdFk","_pathIdx","slug","blockWithLocalized","process","env","NODE_ENV","table","tableLocales","mode","rowHasLocalizedField","rowHasLocalizedManyNumberField","rowHasLocalizedManyTextField","rowHasLocalizedRelationshipField","rowHasManyNumberField","rowHasManyTextField","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","options","map","option","value","selectTableName","order","parent","orderIdx","parentFk","parentIdx","locale","localeIdx","relation","add","relationshipConfig","collections","tableNameMap","get","colType","relatedCollectionCustomID","find","required","tabHasLocalizedField","tabHasLocalizedManyNumberField","tabHasLocalizedManyTextField","tabHasLocalizedRelationshipField","tabHasManyNumberField","tabHasManyTextField","tabs","tab"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withDefault.d.ts","sourceRoot":"","sources":["../../src/schema/withDefault.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,WAAW,WACd,mBAAmB,SACpB,kBAAkB,KACxB,mBAUF,CAAA"}
1
+ {"version":3,"file":"withDefault.d.ts","sourceRoot":"","sources":["../../src/schema/withDefault.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,WAAW,WACd,mBAAmB,SACpB,kBAAkB,KACxB,mBAWF,CAAA"}
@@ -1,5 +1,7 @@
1
1
  export const withDefault = (column, field)=>{
2
- if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') return column;
2
+ if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') {
3
+ return column;
4
+ }
3
5
  if (typeof field.defaultValue === 'string' && field.defaultValue.includes("'")) {
4
6
  const escapedString = field.defaultValue.replaceAll("'", "''");
5
7
  return column.default(escapedString);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/withDefault.ts"],"sourcesContent":["import type { SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core'\nimport type { FieldAffectingData } from 'payload'\n\nexport const withDefault = (\n column: SQLiteColumnBuilder,\n field: FieldAffectingData,\n): SQLiteColumnBuilder => {\n if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function')\n return column\n\n if (typeof field.defaultValue === 'string' && field.defaultValue.includes(\"'\")) {\n const escapedString = field.defaultValue.replaceAll(\"'\", \"''\")\n return column.default(escapedString)\n }\n\n return column.default(field.defaultValue)\n}\n"],"names":["withDefault","column","field","defaultValue","includes","escapedString","replaceAll","default"],"mappings":"AAGA,OAAO,MAAMA,cAAc,CACzBC,QACAC;IAEA,IAAI,OAAOA,MAAMC,YAAY,KAAK,eAAe,OAAOD,MAAMC,YAAY,KAAK,YAC7E,OAAOF;IAET,IAAI,OAAOC,MAAMC,YAAY,KAAK,YAAYD,MAAMC,YAAY,CAACC,QAAQ,CAAC,MAAM;QAC9E,MAAMC,gBAAgBH,MAAMC,YAAY,CAACG,UAAU,CAAC,KAAK;QACzD,OAAOL,OAAOM,OAAO,CAACF;IACxB;IAEA,OAAOJ,OAAOM,OAAO,CAACL,MAAMC,YAAY;AAC1C,EAAC"}
1
+ {"version":3,"sources":["../../src/schema/withDefault.ts"],"sourcesContent":["import type { SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core'\nimport type { FieldAffectingData } from 'payload'\n\nexport const withDefault = (\n column: SQLiteColumnBuilder,\n field: FieldAffectingData,\n): SQLiteColumnBuilder => {\n if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') {\n return column\n }\n\n if (typeof field.defaultValue === 'string' && field.defaultValue.includes(\"'\")) {\n const escapedString = field.defaultValue.replaceAll(\"'\", \"''\")\n return column.default(escapedString)\n }\n\n return column.default(field.defaultValue)\n}\n"],"names":["withDefault","column","field","defaultValue","includes","escapedString","replaceAll","default"],"mappings":"AAGA,OAAO,MAAMA,cAAc,CACzBC,QACAC;IAEA,IAAI,OAAOA,MAAMC,YAAY,KAAK,eAAe,OAAOD,MAAMC,YAAY,KAAK,YAAY;QACzF,OAAOF;IACT;IAEA,IAAI,OAAOC,MAAMC,YAAY,KAAK,YAAYD,MAAMC,YAAY,CAACC,QAAQ,CAAC,MAAM;QAC9E,MAAMC,gBAAgBH,MAAMC,YAAY,CAACG,UAAU,CAAC,KAAK;QACzD,OAAOL,OAAOM,OAAO,CAACF;IACxB;IAEA,OAAOJ,OAAOM,OAAO,CAACL,MAAMC,YAAY;AAC1C,EAAC"}
package/dist/types.d.ts CHANGED
@@ -1,12 +1,33 @@
1
1
  import type { Client, Config, ResultSet } from '@libsql/client';
2
- import type { Operators } from '@payloadcms/drizzle';
2
+ import type { extendDrizzleTable, Operators } from '@payloadcms/drizzle';
3
3
  import type { BuildQueryJoinAliases, DrizzleAdapter } from '@payloadcms/drizzle/types';
4
4
  import type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm';
5
5
  import type { LibSQLDatabase } from 'drizzle-orm/libsql';
6
6
  import type { AnySQLiteColumn, SQLiteInsertOnConflictDoUpdateConfig, SQLiteTableWithColumns, SQLiteTransactionConfig } from 'drizzle-orm/sqlite-core';
7
7
  import type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw';
8
8
  import type { Payload, PayloadRequest } from 'payload';
9
+ type SQLiteSchema = {
10
+ relations: Record<string, GenericRelation>;
11
+ tables: Record<string, SQLiteTableWithColumns<any>>;
12
+ };
13
+ type SQLiteSchemaHookArgs = {
14
+ extendTable: typeof extendDrizzleTable;
15
+ schema: SQLiteSchema;
16
+ };
17
+ export type SQLiteSchemaHook = (args: SQLiteSchemaHookArgs) => Promise<SQLiteSchema> | SQLiteSchema;
9
18
  export type Args = {
19
+ /**
20
+ * Transform the schema after it's built.
21
+ * You can use it to customize the schema with features that aren't supported by Payload.
22
+ * Examples may include: composite indices, generated columns, vectors
23
+ */
24
+ afterSchemaInit?: SQLiteSchemaHook[];
25
+ /**
26
+ * Transform the schema before it's built.
27
+ * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.
28
+ * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)
29
+ */
30
+ beforeSchemaInit?: SQLiteSchemaHook[];
10
31
  client: Config;
11
32
  idType?: 'serial' | 'uuid';
12
33
  localesSuffix?: string;
@@ -20,7 +41,7 @@ export type Args = {
20
41
  push?: boolean;
21
42
  relationshipsSuffix?: string;
22
43
  schemaName?: string;
23
- transactionOptions?: SQLiteTransactionConfig | false;
44
+ transactionOptions?: false | SQLiteTransactionConfig;
24
45
  versionsSuffix?: string;
25
46
  };
26
47
  export type GenericColumns = {
@@ -61,12 +82,16 @@ export type Insert = (args: {
61
82
  }) => Promise<Record<string, unknown>[]>;
62
83
  type SQLiteDrizzleAdapter = Omit<DrizzleAdapter, 'countDistinct' | 'deleteWhere' | 'drizzle' | 'dropDatabase' | 'execute' | 'insert' | 'operators' | 'relations'>;
63
84
  export type SQLiteAdapter = {
85
+ afterSchemaInit: SQLiteSchemaHook[];
86
+ beforeSchemaInit: SQLiteSchemaHook[];
64
87
  client: Client;
65
88
  clientConfig: Args['client'];
66
89
  countDistinct: CountDistinct;
67
90
  defaultDrizzleSnapshot: any;
68
91
  deleteWhere: DeleteWhere;
69
- drizzle: LibSQLDatabase;
92
+ drizzle: {
93
+ $client: Client;
94
+ } & LibSQLDatabase<Record<string, GenericRelation | GenericTable> & Record<string, unknown>>;
70
95
  dropDatabase: DropDatabase;
71
96
  execute: Execute<unknown>;
72
97
  /**
@@ -100,11 +125,11 @@ export type SQLiteAdapter = {
100
125
  export type IDType = 'integer' | 'numeric' | 'text';
101
126
  export type MigrateUpArgs = {
102
127
  payload: Payload;
103
- req?: Partial<PayloadRequest>;
128
+ req: PayloadRequest;
104
129
  };
105
130
  export type MigrateDownArgs = {
106
131
  payload: Payload;
107
- req?: Partial<PayloadRequest>;
132
+ req: PayloadRequest;
108
133
  };
109
134
  declare module 'payload' {
110
135
  interface DatabaseAdapter extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>, DrizzleAdapter {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Client, Config, ResultSet } from '@libsql/client'\nimport type { Operators } from '@payloadcms/drizzle'\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type {\n AnySQLiteColumn,\n SQLiteInsertOnConflictDoUpdateConfig,\n SQLiteTableWithColumns,\n SQLiteTransactionConfig,\n} from 'drizzle-orm/sqlite-core'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { Payload, PayloadRequest } from 'payload'\n\nexport type Args = {\n client: Config\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n relationshipsSuffix?: string\n schemaName?: string\n transactionOptions?: SQLiteTransactionConfig | false\n versionsSuffix?: string\n}\n\nexport type GenericColumns = {\n [x: string]: AnySQLiteColumn\n}\n\nexport type GenericTable = SQLiteTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type CountDistinct = (args: {\n db: LibSQLDatabase\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: LibSQLDatabase\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: SQLiteAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: LibSQLDatabase\n drizzle?: LibSQLDatabase\n raw?: string\n sql?: SQL<unknown>\n}) => SQLiteRaw<Promise<T>> | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: LibSQLDatabase\n onConflictDoUpdate?: SQLiteInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\n// Explicitly omit drizzle property for complete override in SQLiteAdapter, required in ts 5.5\ntype SQLiteDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport type SQLiteAdapter = {\n client: Client\n clientConfig: Args['client']\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: any\n deleteWhere: DeleteWhere\n drizzle: LibSQLDatabase\n dropDatabase: DropDatabase\n execute: Execute<unknown>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n} & SQLiteDrizzleAdapter\n\nexport type IDType = 'integer' | 'numeric' | 'text'\n\nexport type MigrateUpArgs = {\n payload: Payload\n req?: Partial<PayloadRequest>\n}\nexport type MigrateDownArgs = {\n payload: Payload\n req?: Partial<PayloadRequest>\n}\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n beginTransaction: (options?: SQLiteTransactionConfig) => Promise<null | number | string>\n drizzle: LibSQLDatabase\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n tableNameMap: Map<string, string>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AAmIA,WAGC"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Client, Config, ResultSet } from '@libsql/client'\nimport type { extendDrizzleTable, Operators } from '@payloadcms/drizzle'\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type {\n AnySQLiteColumn,\n SQLiteInsertOnConflictDoUpdateConfig,\n SQLiteTableWithColumns,\n SQLiteTransactionConfig,\n} from 'drizzle-orm/sqlite-core'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { Payload, PayloadRequest } from 'payload'\n\ntype SQLiteSchema = {\n relations: Record<string, GenericRelation>\n tables: Record<string, SQLiteTableWithColumns<any>>\n}\n\ntype SQLiteSchemaHookArgs = {\n extendTable: typeof extendDrizzleTable\n schema: SQLiteSchema\n}\n\nexport type SQLiteSchemaHook = (args: SQLiteSchemaHookArgs) => Promise<SQLiteSchema> | SQLiteSchema\n\nexport type Args = {\n /**\n * Transform the schema after it's built.\n * You can use it to customize the schema with features that aren't supported by Payload.\n * Examples may include: composite indices, generated columns, vectors\n */\n afterSchemaInit?: SQLiteSchemaHook[]\n /**\n * Transform the schema before it's built.\n * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.\n * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)\n */\n beforeSchemaInit?: SQLiteSchemaHook[]\n client: Config\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n relationshipsSuffix?: string\n schemaName?: string\n transactionOptions?: false | SQLiteTransactionConfig\n versionsSuffix?: string\n}\n\nexport type GenericColumns = {\n [x: string]: AnySQLiteColumn\n}\n\nexport type GenericTable = SQLiteTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type CountDistinct = (args: {\n db: LibSQLDatabase\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: LibSQLDatabase\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: SQLiteAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: LibSQLDatabase\n drizzle?: LibSQLDatabase\n raw?: string\n sql?: SQL<unknown>\n}) => SQLiteRaw<Promise<T>> | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: LibSQLDatabase\n onConflictDoUpdate?: SQLiteInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\n// Explicitly omit drizzle property for complete override in SQLiteAdapter, required in ts 5.5\ntype SQLiteDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport type SQLiteAdapter = {\n afterSchemaInit: SQLiteSchemaHook[]\n beforeSchemaInit: SQLiteSchemaHook[]\n client: Client\n clientConfig: Args['client']\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: any\n deleteWhere: DeleteWhere\n drizzle: { $client: Client } & LibSQLDatabase<\n Record<string, GenericRelation | GenericTable> & Record<string, unknown>\n >\n dropDatabase: DropDatabase\n execute: Execute<unknown>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n} & SQLiteDrizzleAdapter\n\nexport type IDType = 'integer' | 'numeric' | 'text'\n\nexport type MigrateUpArgs = {\n payload: Payload\n req: PayloadRequest\n}\nexport type MigrateDownArgs = {\n payload: Payload\n req: PayloadRequest\n}\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n beginTransaction: (options?: SQLiteTransactionConfig) => Promise<null | number | string>\n drizzle: LibSQLDatabase\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n tableNameMap: Map<string, string>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AA+JA,WAGC"}
package/license.md ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018-2024 Payload CMS, Inc. <info@payloadcms.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ 'Software'), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-sqlite",
3
- "version": "3.0.0-canary.ff8c8fd",
3
+ "version": "3.0.1-canary.34c6cc0",
4
4
  "description": "The officially supported SQLite database adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -10,6 +10,13 @@
10
10
  },
11
11
  "license": "MIT",
12
12
  "author": "Payload <dev@payloadcms.com> (https://payloadcms.com)",
13
+ "maintainers": [
14
+ {
15
+ "name": "Payload",
16
+ "email": "info@payloadcms.com",
17
+ "url": "https://payloadcms.com"
18
+ }
19
+ ],
13
20
  "type": "module",
14
21
  "exports": {
15
22
  ".": {
@@ -35,28 +42,30 @@
35
42
  "mock.js"
36
43
  ],
37
44
  "dependencies": {
38
- "@libsql/client": "^0.6.2",
39
- "console-table-printer": "2.11.2",
40
- "drizzle-kit": "0.23.2-df9e596",
41
- "drizzle-orm": "0.32.1",
45
+ "@libsql/client": "0.14.0",
46
+ "console-table-printer": "2.12.1",
47
+ "drizzle-kit": "0.28.0",
48
+ "drizzle-orm": "0.36.1",
42
49
  "prompts": "2.4.2",
43
50
  "to-snake-case": "1.0.0",
44
51
  "uuid": "9.0.0",
45
- "@payloadcms/drizzle": "3.0.0-canary.ff8c8fd"
52
+ "@payloadcms/drizzle": "3.0.1-canary.34c6cc0"
46
53
  },
47
54
  "devDependencies": {
48
55
  "@types/pg": "8.10.2",
49
56
  "@types/to-snake-case": "1.0.0",
50
- "payload": "3.0.0-canary.ff8c8fd",
51
- "@payloadcms/eslint-config": "3.0.0-beta.59"
57
+ "@payloadcms/eslint-config": "3.0.0-beta.112",
58
+ "payload": "3.0.1-canary.34c6cc0"
52
59
  },
53
60
  "peerDependencies": {
54
- "payload": "3.0.0-canary.ff8c8fd"
61
+ "payload": "3.0.1-canary.34c6cc0"
55
62
  },
56
63
  "scripts": {
57
64
  "build": "pnpm build:swc && pnpm build:types",
58
65
  "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
59
66
  "build:types": "tsc --emitDeclarationOnly --outDir dist",
60
- "clean": "rimraf {dist,*.tsbuildinfo}"
67
+ "clean": "rimraf {dist,*.tsbuildinfo}",
68
+ "lint": "eslint .",
69
+ "lint:fix": "eslint . --fix"
61
70
  }
62
71
  }