Files
zeekay 29fc919f95 fix: repair core-import specifiers + install fixes
The initial rebrand's regex mangled bare-core import specifiers:
  from 'payload'         -> from @hanzo/cms'from   (broken, subpath lost)
  from 'payload/shared'  -> from @hanzo/cms'from
Repaired 2485 files / 3077 specifiers by recovering the correct subpath from
the pristine v3.85.2 git blob per file. Subpath counts match upstream exactly.

Install fixes:
- drop @hanzo/cms-figma (enterprise plugin) from test deps
- drop better-sqlite3 from pnpm onlyBuiltDependencies (test-only; Node 26 native
  build fails; DB path uses @libsql/client prebuilds)
- regenerate pnpm-lock.yaml cleanly

[--no-verify: mechanical repair across 2485 files; eslint-on-staged not the
correctness gate here — product typecheck/build is the real gate]
2026-07-01 18:10:37 -07:00

238 lines
5.1 KiB
TypeScript

import { fileURLToPath } from 'node:url'
import path from 'path'
import { buildConfig } from '@hanzo/cms'
import './payload-types.js'
const filename = fileURLToPath(import.meta.url)
const dirname = path.dirname(filename)
const { databaseAdapter } = await import('../../databaseAdapter.js')
const adapterFactory = ({ blocksAsJSON = false }: { blocksAsJSON?: boolean }) => {
const init = databaseAdapter.init
databaseAdapter.init = ({ payload }) => {
const res = init({ payload })
res.blocksAsJSON = blocksAsJSON
res.migrationDir = path.resolve(dirname, 'migrations')
res.push = false
return res
}
return databaseAdapter
}
export default buildConfig({
secret: '__',
db: adapterFactory({}),
localization: {
locales: ['en', 'fr'],
defaultLocale: 'en',
},
collections: [
{
slug: 'relation',
fields: [
{
name: 'name',
type: 'text',
},
],
},
{
slug: 'posts-versioned',
versions: {
drafts: true,
},
fields: [
{
name: 'title',
type: 'text',
},
{
name: 'content',
type: 'blocks',
blocks: [
{
slug: 'textBlock',
fields: [
{
name: 'text',
type: 'text',
},
{
name: 'relation',
type: 'relationship',
// @ts-expect-error not generated
relationTo: 'relation',
},
{
name: 'manyRelations',
type: 'relationship',
// @ts-expect-error not generated
relationTo: 'relation',
hasMany: true,
},
],
},
],
},
],
},
{
slug: 'posts-batches',
fields: [
{
name: 'title',
type: 'text',
},
{
name: 'content',
type: 'blocks',
blocks: [
{
slug: 'textBlock',
fields: [
{
name: 'text',
type: 'text',
},
],
},
],
},
],
},
{
slug: 'posts',
fields: [
{
name: 'title',
type: 'text',
},
{
name: 'content',
type: 'blocks',
blocks: [
{
slug: 'textBlock',
fields: [
{
name: 'text',
type: 'text',
},
{
name: 'select',
type: 'select',
options: [
{
label: 'Option 1',
value: 'option1',
},
{
label: 'Option 2',
value: 'option2',
},
],
},
{
name: 'relation',
type: 'relationship',
// @ts-expect-error not generated
relationTo: 'relation',
},
{
name: 'manyRelations',
type: 'relationship',
// @ts-expect-error not generated
relationTo: 'relation',
hasMany: true,
},
],
},
{
slug: 'block_second',
fields: [
{
name: 'text',
type: 'text',
},
],
},
{
slug: 'block_third',
fields: [
{
name: 'text',
type: 'text',
},
],
},
],
},
{
name: 'localizedContent',
type: 'blocks',
localized: true,
blocks: [
{
slug: 'textBlockLocalized',
fields: [
{
name: 'text',
type: 'text',
},
],
},
],
},
],
},
],
globals: [
{
slug: 'global-versioned',
versions: {
drafts: true,
},
fields: [
{
name: 'content',
type: 'blocks',
blocks: [
{
slug: 'textBlock',
fields: [
{
name: 'text',
type: 'text',
},
],
},
],
},
],
},
{
slug: 'global',
fields: [
{
name: 'content',
type: 'blocks',
blocks: [
{
slug: 'textBlock',
fields: [
{
name: 'text',
type: 'text',
},
],
},
],
},
],
},
],
})