chore: moves dev folder to top, establishes new test pattern
This commit is contained in:
1
.vscode/launch.json
vendored
1
.vscode/launch.json
vendored
@@ -5,7 +5,6 @@
|
||||
{
|
||||
"command": "pnpm dev",
|
||||
"name": "Run Dev 3.0",
|
||||
"cwd": "${workspaceFolder}/packages/dev",
|
||||
"request": "launch",
|
||||
"type": "node-terminal"
|
||||
},
|
||||
|
||||
12
app/layouter.tsx
Normal file
12
app/layouter.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import React from 'react'
|
||||
|
||||
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body>
|
||||
{/* Layout UI */}
|
||||
<main>{children}</main>
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
10
app/my-route/route.ts
Normal file
10
app/my-route/route.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export const GET = async () => {
|
||||
console.log('1')
|
||||
console.log('1')
|
||||
console.log('1')
|
||||
console.log('1')
|
||||
console.log('1')
|
||||
return Response.json({
|
||||
hello: 'elliot',
|
||||
})
|
||||
}
|
||||
@@ -1,18 +1,24 @@
|
||||
const nextJest = require('next/jest.js')
|
||||
|
||||
const createJestConfig = nextJest({
|
||||
// Provide the path to your Next.js app to load next.config.js and .env files in your test environment
|
||||
dir: './',
|
||||
})
|
||||
|
||||
const customJestConfig = {
|
||||
globalSetup: './test/jest.setup.ts',
|
||||
moduleNameMapper: {
|
||||
'\\.(css|scss)$': '<rootDir>/packages/payload/src/bundlers/mocks/emptyModule.js',
|
||||
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
|
||||
'<rootDir>/packages/payload/src/bundlers/mocks/fileMock.js',
|
||||
'payload-config': '<rootDir>/__mocks__/payload-config.ts',
|
||||
},
|
||||
testEnvironment: 'node',
|
||||
// testEnvironment: 'node',
|
||||
testMatch: ['<rootDir>/packages/payload/src/**/*.spec.ts', '<rootDir>/test/**/*int.spec.ts'],
|
||||
testTimeout: 90000,
|
||||
transform: {
|
||||
'^.+\\.(t|j)sx?$': ['@swc/jest'],
|
||||
},
|
||||
// transform: {
|
||||
// '^.+\\.(t|j)sx?$': ['@swc/jest'],
|
||||
// },
|
||||
verbose: true,
|
||||
}
|
||||
|
||||
module.exports = customJestConfig
|
||||
module.exports = createJestConfig(customJestConfig)
|
||||
|
||||
5
next-env.d.ts
vendored
Normal file
5
next-env.d.ts
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
/// <reference types="next" />
|
||||
/// <reference types="next/image-types/global" />
|
||||
|
||||
// NOTE: This file should not be edited
|
||||
// see https://nextjs.org/docs/basic-features/typescript for more information.
|
||||
50
next.config.js
Normal file
50
next.config.js
Normal file
@@ -0,0 +1,50 @@
|
||||
const path = require('path')
|
||||
|
||||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
experimental: {
|
||||
outputFileTracingExcludes: {
|
||||
'**/*': ['drizzle-kit', 'drizzle-kit/utils'],
|
||||
},
|
||||
serverComponentsExternalPackages: ['drizzle-kit', 'drizzle-kit/utils', 'pino', 'pino-pretty'],
|
||||
},
|
||||
webpack: (config) => {
|
||||
return {
|
||||
...config,
|
||||
externals: [
|
||||
...config.externals,
|
||||
'drizzle-kit',
|
||||
'drizzle-kit/utils',
|
||||
'pino',
|
||||
'pino-pretty',
|
||||
'sharp',
|
||||
'mongodb-memory-server',
|
||||
],
|
||||
ignoreWarnings: [
|
||||
...(config.ignoreWarnings || []),
|
||||
{ module: /node_modules\/mongodb\/lib\/utils\.js/ },
|
||||
{ file: /node_modules\/mongodb\/lib\/utils\.js/ },
|
||||
],
|
||||
resolve: {
|
||||
...config.resolve,
|
||||
alias: {
|
||||
...config.resolve.alias,
|
||||
'payload-config': process.env.PAYLOAD_CONFIG_PATH,
|
||||
},
|
||||
fallback: {
|
||||
...config.resolve.fallback,
|
||||
'@aws-sdk/credential-providers': false,
|
||||
'@mongodb-js/zstd': false,
|
||||
aws4: false,
|
||||
kerberos: false,
|
||||
'mongodb-client-encryption': false,
|
||||
snappy: false,
|
||||
'supports-color': false,
|
||||
'yocto-queue': false,
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
module.exports = nextConfig
|
||||
@@ -7,11 +7,12 @@
|
||||
],
|
||||
"scripts": {
|
||||
"build": "pnpm --filter payload run build",
|
||||
"build:next": "next build",
|
||||
"build:all": "turbo build",
|
||||
"clean": "rimraf dist && rimraf packages/payload/dist",
|
||||
"clean:cache": "rimraf node_modules/.cache && rimraf packages/payload/node_modules/.cache",
|
||||
"clean:unix": "find . \\( -type d \\( -name node_modules -o -name dist -o -name .cache \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} +",
|
||||
"dev": "nodemon",
|
||||
"dev": "next dev",
|
||||
"dev:generate-graphql-schema": "ts-node -T ./test/generateGraphQLSchema.ts",
|
||||
"dev:generate-types": "ts-node -T ./test/generateTypes.ts",
|
||||
"dev:postgres": "pnpm --filter payload run dev:postgres",
|
||||
@@ -82,12 +83,15 @@
|
||||
"minimist": "1.2.8",
|
||||
"next": "14.1.1-canary.26",
|
||||
"node-fetch": "2.6.12",
|
||||
"node-mocks-http": "^1.14.1",
|
||||
"nodemon": "3.0.2",
|
||||
"pino": "8.15.0",
|
||||
"pino-pretty": "10.2.0",
|
||||
"prettier": "^3.0.3",
|
||||
"prompts": "2.4.2",
|
||||
"qs": "6.11.2",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"read-stream": "^2.1.1",
|
||||
"rimraf": "3.0.2",
|
||||
"semver": "^7.5.4",
|
||||
@@ -100,7 +104,8 @@
|
||||
"ts-node": "10.9.1",
|
||||
"turbo": "^1.11.1",
|
||||
"typescript": "5.2.2",
|
||||
"uuid": "^9.0.1"
|
||||
"uuid": "^9.0.1",
|
||||
"yocto-queue": "^1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "18.2.0",
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
"payload": "workspace:*",
|
||||
"postcss": "^8.4.35",
|
||||
"react": "18.3.0-canary-b36ae8d7a-20231207",
|
||||
"react-dom": "18.3.0-canary-b36ae8d7a-20231207"
|
||||
"react-dom": "18.3.0-canary-b36ae8d7a-20231207",
|
||||
"tailwindcss": "^3.4.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20",
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
export const GET = (request) => {
|
||||
return Response.json({
|
||||
hello: 'elliot',
|
||||
})
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
import { CollectionConfig } from 'payload/types'
|
||||
import { BeforeInput } from './Pages/BeforeInput'
|
||||
|
||||
export const Media: CollectionConfig = {
|
||||
slug: 'media',
|
||||
upload: {
|
||||
staticDir: 'media',
|
||||
},
|
||||
access: {
|
||||
read: () => true,
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'title',
|
||||
type: 'text',
|
||||
label: 'Title',
|
||||
required: true,
|
||||
admin: {
|
||||
components: {
|
||||
beforeInput: [BeforeInput],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react'
|
||||
|
||||
export const AfterInput: React.FC = () => {
|
||||
return <div>This is a custom `AfterInput` component</div>
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react'
|
||||
|
||||
export const BeforeInput: React.FC = () => {
|
||||
return <div>This is a custom `BeforeInput` component</div>
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react'
|
||||
|
||||
export const CustomCell: React.FC = () => {
|
||||
return <div>This is a custom `Cell` component</div>
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react'
|
||||
|
||||
export const CustomDescription: React.FC = () => {
|
||||
return <div>This is a custom `Description` component</div>
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react'
|
||||
|
||||
export const CustomField: React.FC = () => {
|
||||
return <div>This is a custom `Field` component</div>
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react'
|
||||
|
||||
export const CustomLabel: React.FC = () => {
|
||||
return <div>This is a custom `Label` component</div>
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react'
|
||||
|
||||
export const CustomView: React.FC = async (props) => {
|
||||
return <div>CustomView</div>
|
||||
}
|
||||
@@ -1,324 +0,0 @@
|
||||
import { CollectionConfig } from 'payload/types'
|
||||
import { CustomView } from './CustomView'
|
||||
import { BeforeInput } from './BeforeInput'
|
||||
import { AfterInput } from './AfterInput'
|
||||
import { CustomField } from './CustomField'
|
||||
import { CustomDescription } from './CustomDescription'
|
||||
import { CustomLabel } from './CustomLabel'
|
||||
import { CustomCell } from './CustomCell'
|
||||
|
||||
export const Pages: CollectionConfig = {
|
||||
slug: 'pages',
|
||||
admin: {
|
||||
// useAsTitle: 'title',
|
||||
// defaultColumns: ['title', 'id'],
|
||||
components: {
|
||||
views: {
|
||||
Edit: {
|
||||
Custom: {
|
||||
path: '/custom',
|
||||
Component: CustomView,
|
||||
Tab: {
|
||||
label: 'Custom View',
|
||||
href: '/custom',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
versions: {
|
||||
drafts: true,
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'titleWithCustomComponents',
|
||||
label: 'Title With Custom Components',
|
||||
type: 'text',
|
||||
required: true,
|
||||
admin: {
|
||||
description: CustomDescription,
|
||||
components: {
|
||||
beforeInput: [BeforeInput],
|
||||
afterInput: [AfterInput],
|
||||
Label: CustomLabel,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'title',
|
||||
label: 'Title',
|
||||
type: 'text',
|
||||
required: true,
|
||||
defaultValue: 'This is a default value',
|
||||
admin: {
|
||||
description: 'This is a description',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'titleWithCustomField',
|
||||
label: 'Title With Custom Field',
|
||||
type: 'text',
|
||||
admin: {
|
||||
components: {
|
||||
Field: CustomField,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'sidebarTitle',
|
||||
label: 'Sidebar Title',
|
||||
type: 'text',
|
||||
required: true,
|
||||
admin: {
|
||||
position: 'sidebar',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'enableConditionalField',
|
||||
label: 'Enable Conditional Field',
|
||||
type: 'checkbox',
|
||||
},
|
||||
{
|
||||
name: 'conditionalField',
|
||||
label: 'Conditional Field',
|
||||
type: 'text',
|
||||
admin: {
|
||||
condition: (data) => data.enableConditionalField,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'number',
|
||||
label: 'Number',
|
||||
type: 'number',
|
||||
required: true,
|
||||
defaultValue: 4,
|
||||
admin: {
|
||||
description: 'Defaults to 4',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'select',
|
||||
label: 'Select',
|
||||
type: 'select',
|
||||
required: true,
|
||||
defaultValue: 'option-2',
|
||||
options: [
|
||||
{
|
||||
label: 'Option 1',
|
||||
value: 'option-1',
|
||||
},
|
||||
{
|
||||
label: 'Option 2 (This is a default value)',
|
||||
value: 'option-2',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'textarea',
|
||||
name: 'textarea',
|
||||
label: 'Textarea',
|
||||
required: true,
|
||||
defaultValue: 'This is a default value',
|
||||
admin: {
|
||||
rows: 10,
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'point',
|
||||
name: 'point',
|
||||
label: 'Point',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
type: 'radio',
|
||||
name: 'radio',
|
||||
label: 'Radio',
|
||||
required: true,
|
||||
options: [
|
||||
{
|
||||
label: 'Option 1',
|
||||
value: 'option-1',
|
||||
},
|
||||
{
|
||||
label: 'Option 2',
|
||||
value: 'option-2',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
// TODO: fix this
|
||||
// label: ({ data }) => `This is ${data?.title || 'Untitled'}`,
|
||||
label: 'Hello',
|
||||
type: 'collapsible',
|
||||
admin: {
|
||||
initCollapsed: true,
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'collapsibleText',
|
||||
label: 'Collapsible Text',
|
||||
type: 'text',
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'group',
|
||||
label: 'Group',
|
||||
type: 'group',
|
||||
fields: [
|
||||
{
|
||||
name: 'groupText',
|
||||
label: 'Group Text',
|
||||
type: 'text',
|
||||
required: true,
|
||||
defaultValue: 'This is a default value',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'upload',
|
||||
label: 'Upload',
|
||||
type: 'upload',
|
||||
relationTo: 'media',
|
||||
},
|
||||
{
|
||||
name: 'array',
|
||||
label: 'Array',
|
||||
type: 'array',
|
||||
required: true,
|
||||
fields: [
|
||||
{
|
||||
name: 'arrayText',
|
||||
label: 'Array Text',
|
||||
type: 'text',
|
||||
required: true,
|
||||
defaultValue: 'This is a default value',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'blocks',
|
||||
label: 'Blocks',
|
||||
type: 'blocks',
|
||||
required: true,
|
||||
minRows: 1,
|
||||
maxRows: 2,
|
||||
blocks: [
|
||||
{
|
||||
slug: 'text',
|
||||
labels: {
|
||||
singular: 'Text Block',
|
||||
plural: 'Text Blocks',
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'text',
|
||||
label: 'Text',
|
||||
type: 'text',
|
||||
required: true,
|
||||
admin: {
|
||||
components: {
|
||||
beforeInput: [BeforeInput],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
slug: 'textarea',
|
||||
labels: {
|
||||
singular: 'Textarea Block',
|
||||
plural: 'Textarea Blocks',
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'textarea',
|
||||
label: 'Textarea',
|
||||
type: 'textarea',
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Tabs',
|
||||
type: 'tabs',
|
||||
tabs: [
|
||||
{
|
||||
name: 'tab1',
|
||||
label: 'Tab 1 (Named)',
|
||||
validate: (value) => true,
|
||||
fields: [
|
||||
{
|
||||
name: 'tab1Text',
|
||||
label: 'Tab 1 Text',
|
||||
type: 'text',
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Tab 2 (Unnamed)',
|
||||
fields: [
|
||||
{
|
||||
name: 'tab2Text',
|
||||
label: 'Tab 2 Text',
|
||||
type: 'text',
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'row',
|
||||
fields: [
|
||||
{
|
||||
name: 'rowText1',
|
||||
label: 'Row Text',
|
||||
type: 'text',
|
||||
admin: {
|
||||
width: '50%',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'rowText2',
|
||||
label: 'Row Text',
|
||||
type: 'text',
|
||||
admin: {
|
||||
width: '50%',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'json',
|
||||
label: 'JSON',
|
||||
type: 'json',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'code',
|
||||
label: 'Code',
|
||||
type: 'code',
|
||||
required: true,
|
||||
admin: {
|
||||
components: {
|
||||
Cell: CustomCell,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'hidden',
|
||||
label: 'Hidden',
|
||||
type: 'text',
|
||||
required: true,
|
||||
admin: {
|
||||
hidden: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
import { CollectionConfig } from 'payload/types'
|
||||
|
||||
export const Users: CollectionConfig = {
|
||||
slug: 'users',
|
||||
auth: true,
|
||||
admin: {
|
||||
useAsTitle: 'email',
|
||||
},
|
||||
fields: [],
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
import { GlobalConfig } from 'payload/types'
|
||||
|
||||
export const Settings: GlobalConfig = {
|
||||
slug: 'settings',
|
||||
fields: [
|
||||
{
|
||||
name: 'title',
|
||||
type: 'text',
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
import { mongooseAdapter } from '@payloadcms/db-mongodb'
|
||||
// import { postgresAdapter } from '@payloadcms/db-postgres'
|
||||
// import { lexicalEditor } from '@payloadcms/richtext-lexical'
|
||||
import { buildConfig } from 'payload/config'
|
||||
import { Users } from './collections/Users'
|
||||
import { Settings } from './globals/Settings'
|
||||
import { Pages } from './collections/Pages'
|
||||
import { lexicalEditor } from '@payloadcms/richtext-lexical'
|
||||
import { Media } from './collections/Media'
|
||||
import path from 'path'
|
||||
|
||||
export default buildConfig({
|
||||
db: mongooseAdapter({
|
||||
url: process.env.DATABASE_URI,
|
||||
}),
|
||||
// db: postgresAdapter({
|
||||
// pool: {
|
||||
// connectionString: 'postgres://127.0.0.1:5432/payloadtests',
|
||||
// },
|
||||
// }),
|
||||
secret: process.env.PAYLOAD_SECRET,
|
||||
collections: [Users, Pages, Media],
|
||||
globals: [Settings],
|
||||
editor: lexicalEditor({}),
|
||||
onInit: async (payload) => {
|
||||
// await payload.create({
|
||||
// collection: 'users',
|
||||
// data: {
|
||||
// email: 'dev@payloadcms.com',
|
||||
// password: 'test',
|
||||
// },
|
||||
// })
|
||||
// const page = await payload.create({
|
||||
// collection: 'pages',
|
||||
// data: {
|
||||
// title: 'Test Page',
|
||||
// },
|
||||
// })
|
||||
// await payload.update({
|
||||
// collection: 'pages',
|
||||
// id: page.id,
|
||||
// data: {
|
||||
// title: 'Test Page (Updated)',
|
||||
// },
|
||||
// })
|
||||
},
|
||||
upload: {
|
||||
useTempFiles: true,
|
||||
tempFileDir: path.join(__dirname, '../temp'),
|
||||
limits: { fileSize: 200 * 1024 },
|
||||
abortOnLimit: true,
|
||||
},
|
||||
})
|
||||
@@ -30,19 +30,40 @@
|
||||
"@payloadcms/translations/client": ["../translations/src/all"],
|
||||
"@payloadcms/translations/api": ["../translations/src/all"],
|
||||
"@payloadcms/next/*": ["../next/src/*"],
|
||||
"payload-config": ["./src/payload.config.ts"]
|
||||
"payload-config": ["../../src/payload.config.ts"]
|
||||
}
|
||||
},
|
||||
"include": ["next-env.d.ts", ".next/types/**/*.ts", "**/*.ts", "**/*.tsx"],
|
||||
// "include": ["next-env.d.ts", ".next/types/**/*.ts", "**/*.ts", "**/*.tsx"],
|
||||
"exclude": ["node_modules"],
|
||||
"composite": true, // Make sure typescript knows that this module depends on their references
|
||||
"references": [
|
||||
{ "path": "../payload" },
|
||||
{ "path": "../next" },
|
||||
{ "path": "../ui" },
|
||||
{ "path": "../translations" },
|
||||
{ "path": "../db-mongodb" },
|
||||
{ "path": "../db-postgres" },
|
||||
{ "path": "../richtext-lexical" }
|
||||
{
|
||||
"path": "../payload"
|
||||
},
|
||||
{
|
||||
"path": "../next"
|
||||
},
|
||||
{
|
||||
"path": "../ui"
|
||||
},
|
||||
{
|
||||
"path": "../translations"
|
||||
},
|
||||
{
|
||||
"path": "../db-mongodb"
|
||||
},
|
||||
{
|
||||
"path": "../db-postgres"
|
||||
},
|
||||
{
|
||||
"path": "../richtext-lexical"
|
||||
}
|
||||
],
|
||||
"include": [
|
||||
"next-env.d.ts",
|
||||
".next/types/**/*.ts",
|
||||
"**/*.ts",
|
||||
"**/*.tsx",
|
||||
"../../src/payload.config.ts"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -66,42 +66,44 @@ export const RouteError = async ({
|
||||
err: APIError
|
||||
collection?: Collection
|
||||
}) => {
|
||||
const { config, logger } = req.payload
|
||||
let response = formatErrors(err)
|
||||
let status = err.status || httpStatus.INTERNAL_SERVER_ERROR
|
||||
return Response.json(err, { status: 500 })
|
||||
|
||||
logger.error(err.stack)
|
||||
// const { config, logger } = req.payload
|
||||
// let response = formatErrors(err)
|
||||
// let status = err.status || httpStatus.INTERNAL_SERVER_ERROR
|
||||
|
||||
// Internal server errors can contain anything, including potentially sensitive data.
|
||||
// Therefore, error details will be hidden from the response unless `config.debug` is `true`
|
||||
if (!config.debug && status === httpStatus.INTERNAL_SERVER_ERROR) {
|
||||
response = formatErrors(new APIError('Something went wrong.'))
|
||||
}
|
||||
|
||||
if (config.debug && config.debug === true) {
|
||||
response.stack = err.stack
|
||||
}
|
||||
|
||||
if (collection && typeof collection.config.hooks.afterError === 'function') {
|
||||
;({ response, status } = (await collection.config.hooks.afterError(
|
||||
err,
|
||||
response,
|
||||
req.context,
|
||||
collection.config,
|
||||
)) || { response, status })
|
||||
}
|
||||
|
||||
if (typeof config.hooks.afterError === 'function') {
|
||||
;({ response, status } = (await config.hooks.afterError(
|
||||
err,
|
||||
response,
|
||||
req.context,
|
||||
collection?.config,
|
||||
)) || {
|
||||
response,
|
||||
status,
|
||||
})
|
||||
}
|
||||
|
||||
return Response.json(response, { status })
|
||||
// logger.error(err.stack)
|
||||
|
||||
// // Internal server errors can contain anything, including potentially sensitive data.
|
||||
// // Therefore, error details will be hidden from the response unless `config.debug` is `true`
|
||||
// if (!config.debug && status === httpStatus.INTERNAL_SERVER_ERROR) {
|
||||
// response = formatErrors(new APIError('Something went wrong.'))
|
||||
// }
|
||||
|
||||
// if (config.debug && config.debug === true) {
|
||||
// response.stack = err.stack
|
||||
// }
|
||||
|
||||
// if (collection && typeof collection.config.hooks.afterError === 'function') {
|
||||
// ;({ response, status } = (await collection.config.hooks.afterError(
|
||||
// err,
|
||||
// response,
|
||||
// req.context,
|
||||
// collection.config,
|
||||
// )) || { response, status })
|
||||
// }
|
||||
|
||||
// if (typeof config.hooks.afterError === 'function') {
|
||||
// ;({ response, status } = (await config.hooks.afterError(
|
||||
// err,
|
||||
// response,
|
||||
// req.context,
|
||||
// collection?.config,
|
||||
// )) || {
|
||||
// response,
|
||||
// status,
|
||||
// })
|
||||
// }
|
||||
|
||||
// return Response.json(response, { status })
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import path from 'path'
|
||||
import { streamFile } from '../../../../../next-stream-file'
|
||||
import fsPromises from 'fs/promises'
|
||||
import type { Collection, PayloadRequest, SanitizedConfig, Where } from 'payload/types'
|
||||
import executeAccess from 'payload/dist/auth/executeAccess'
|
||||
import { executeAccess } from 'payload/auth'
|
||||
import { APIError, Forbidden } from 'payload/errors'
|
||||
import { RouteError } from '../../../RouteError'
|
||||
import { createPayloadRequest } from '../../../../../utilities/createPayloadRequest'
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
"emitDeclarationOnly": true,
|
||||
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
|
||||
"rootDir": "./src" /* Specify the root folder within your source files. */,
|
||||
"sourceMap": true,
|
||||
"paths": {
|
||||
"@payloadcms/graphql": ["../graphql/dist/index.ts"],
|
||||
"@payloadcms/graphql": ["../graphql/src"],
|
||||
"@payloadcms/ui": ["../ui/src/exports/index.ts"],
|
||||
"@payloadcms/translations/*": ["../translations/dist/*"]
|
||||
},
|
||||
@@ -32,7 +33,7 @@
|
||||
"src/**/*.d.ts",
|
||||
"src/**/*.json",
|
||||
"../ui/src/createClientConfig.ts",
|
||||
"../dev/src/app/(payload)/admin/login/action.ts",
|
||||
"../../app/(payload)/admin/login/action.ts",
|
||||
"../payload/src/auth/cookies.ts"
|
||||
],
|
||||
"references": [
|
||||
|
||||
@@ -35,7 +35,7 @@ export const readMigrationFiles = async ({
|
||||
|
||||
return Promise.all(
|
||||
files.map(async (filePath) => {
|
||||
const migration = (await import(`${filePath}`)) as Migration
|
||||
const migration = eval(`(await import(${filePath}))`) as Migration
|
||||
migration.name = path.basename(filePath).split('.')?.[0]
|
||||
return migration
|
||||
}),
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
export * from '../auth'
|
||||
export { default as executeAccess } from '../auth/executeAccess'
|
||||
export { getAccessResults } from '../auth/getAccessResults'
|
||||
export { getAuthenticatedUser } from '../auth/getAuthenticatedUser'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@import 'payload-styles';
|
||||
@import '../../scss/styles.scss';
|
||||
|
||||
.icon--menu {
|
||||
.fill {
|
||||
|
||||
281
pnpm-lock.yaml
generated
281
pnpm-lock.yaml
generated
@@ -14,9 +14,6 @@ importers:
|
||||
'@sentry/react':
|
||||
specifier: ^7.77.0
|
||||
version: 7.77.0(react@18.2.0)
|
||||
react:
|
||||
specifier: 18.2.0
|
||||
version: 18.2.0
|
||||
react-router-dom:
|
||||
specifier: 5.3.4
|
||||
version: 5.3.4(react@18.2.0)
|
||||
@@ -168,6 +165,9 @@ importers:
|
||||
node-fetch:
|
||||
specifier: 2.6.12
|
||||
version: 2.6.12
|
||||
node-mocks-http:
|
||||
specifier: ^1.14.1
|
||||
version: 1.14.1
|
||||
nodemon:
|
||||
specifier: 3.0.2
|
||||
version: 3.0.2
|
||||
@@ -186,6 +186,12 @@ importers:
|
||||
qs:
|
||||
specifier: 6.11.2
|
||||
version: 6.11.2
|
||||
react:
|
||||
specifier: ^18.2.0
|
||||
version: 18.2.0
|
||||
react-dom:
|
||||
specifier: ^18.2.0
|
||||
version: 18.2.0(react@18.2.0)
|
||||
read-stream:
|
||||
specifier: ^2.1.1
|
||||
version: 2.1.1
|
||||
@@ -225,6 +231,9 @@ importers:
|
||||
uuid:
|
||||
specifier: ^9.0.1
|
||||
version: 9.0.1
|
||||
yocto-queue:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/create-payload-app:
|
||||
dependencies:
|
||||
@@ -387,6 +396,9 @@ importers:
|
||||
react-dom:
|
||||
specifier: 18.3.0-canary-b36ae8d7a-20231207
|
||||
version: 18.3.0-canary-b36ae8d7a-20231207(react@18.3.0-canary-b36ae8d7a-20231207)
|
||||
tailwindcss:
|
||||
specifier: ^3.4.1
|
||||
version: 3.4.1(ts-node@10.9.1)
|
||||
devDependencies:
|
||||
'@types/node':
|
||||
specifier: ^20
|
||||
@@ -1340,6 +1352,11 @@ packages:
|
||||
resolution: {integrity: sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==}
|
||||
dev: true
|
||||
|
||||
/@alloc/quick-lru@5.2.0:
|
||||
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
|
||||
/@ampproject/remapping@2.2.1:
|
||||
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
@@ -3271,6 +3288,18 @@ packages:
|
||||
resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
|
||||
dev: true
|
||||
|
||||
/@isaacs/cliui@8.0.2:
|
||||
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
string-width: 5.1.2
|
||||
string-width-cjs: /string-width@4.2.3
|
||||
strip-ansi: 7.1.0
|
||||
strip-ansi-cjs: /strip-ansi@6.0.1
|
||||
wrap-ansi: 8.1.0
|
||||
wrap-ansi-cjs: /wrap-ansi@7.0.0
|
||||
dev: false
|
||||
|
||||
/@istanbuljs/load-nyc-config@1.1.0:
|
||||
resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -4271,6 +4300,13 @@ packages:
|
||||
engines: {node: '>=8.0.0'}
|
||||
dev: true
|
||||
|
||||
/@pkgjs/parseargs@0.11.0:
|
||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||
engines: {node: '>=14'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@playwright/test@1.40.1:
|
||||
resolution: {integrity: sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -5770,6 +5806,12 @@ packages:
|
||||
resolution: {integrity: sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==}
|
||||
dev: true
|
||||
|
||||
/@types/node@20.11.17:
|
||||
resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==}
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
dev: true
|
||||
|
||||
/@types/node@20.5.7:
|
||||
resolution: {integrity: sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==}
|
||||
|
||||
@@ -6536,7 +6578,6 @@ packages:
|
||||
/ansi-regex@6.0.1:
|
||||
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
|
||||
engines: {node: '>=12'}
|
||||
dev: true
|
||||
|
||||
/ansi-styles@3.2.1:
|
||||
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
|
||||
@@ -6557,7 +6598,6 @@ packages:
|
||||
/ansi-styles@6.2.1:
|
||||
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
|
||||
engines: {node: '>=12'}
|
||||
dev: true
|
||||
|
||||
/any-promise@1.3.0:
|
||||
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
|
||||
@@ -7174,6 +7214,11 @@ packages:
|
||||
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
/camelcase-css@2.0.1:
|
||||
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
|
||||
engines: {node: '>= 6'}
|
||||
dev: false
|
||||
|
||||
/camelcase-keys@6.2.2:
|
||||
resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -7434,6 +7479,11 @@ packages:
|
||||
/commander@2.20.3:
|
||||
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
|
||||
|
||||
/commander@4.1.1:
|
||||
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
|
||||
engines: {node: '>= 6'}
|
||||
dev: false
|
||||
|
||||
/commander@7.2.0:
|
||||
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -7961,6 +8011,12 @@ packages:
|
||||
resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==}
|
||||
dev: true
|
||||
|
||||
/cssesc@3.0.0:
|
||||
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/cssfilter@0.0.10:
|
||||
resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==}
|
||||
dev: false
|
||||
@@ -8255,6 +8311,11 @@ packages:
|
||||
resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
|
||||
dev: false
|
||||
|
||||
/depd@1.1.2:
|
||||
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: true
|
||||
|
||||
/depd@2.0.0:
|
||||
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
@@ -8290,6 +8351,10 @@ packages:
|
||||
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/didyoumean@1.2.2:
|
||||
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
|
||||
dev: false
|
||||
|
||||
/diff-sequences@27.5.1:
|
||||
resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==}
|
||||
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
|
||||
@@ -8325,6 +8390,10 @@ packages:
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/dlv@1.1.3:
|
||||
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
|
||||
dev: false
|
||||
|
||||
/doctrine@2.1.0:
|
||||
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -8506,7 +8575,6 @@ packages:
|
||||
|
||||
/eastasianwidth@0.2.0:
|
||||
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
|
||||
dev: true
|
||||
|
||||
/ecdsa-sig-formatter@1.0.11:
|
||||
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
|
||||
@@ -9646,6 +9714,14 @@ packages:
|
||||
dependencies:
|
||||
is-callable: 1.2.7
|
||||
|
||||
/foreground-child@3.1.1:
|
||||
resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
cross-spawn: 7.0.3
|
||||
signal-exit: 4.1.0
|
||||
dev: false
|
||||
|
||||
/form-data-encoder@2.1.4:
|
||||
resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
|
||||
engines: {node: '>= 14.17'}
|
||||
@@ -9968,6 +10044,18 @@ packages:
|
||||
/glob-to-regexp@0.4.1:
|
||||
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
|
||||
|
||||
/glob@10.3.10:
|
||||
resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
foreground-child: 3.1.1
|
||||
jackspeak: 2.3.6
|
||||
minimatch: 9.0.3
|
||||
minipass: 7.0.4
|
||||
path-scurry: 1.10.1
|
||||
dev: false
|
||||
|
||||
/glob@7.2.3:
|
||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||
dependencies:
|
||||
@@ -11045,6 +11133,15 @@ packages:
|
||||
set-function-name: 2.0.1
|
||||
dev: false
|
||||
|
||||
/jackspeak@2.3.6:
|
||||
resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
'@isaacs/cliui': 8.0.2
|
||||
optionalDependencies:
|
||||
'@pkgjs/parseargs': 0.11.0
|
||||
dev: false
|
||||
|
||||
/jest-changed-files@29.7.0:
|
||||
resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
@@ -11707,6 +11804,11 @@ packages:
|
||||
- supports-color
|
||||
- ts-node
|
||||
|
||||
/jiti@1.21.0:
|
||||
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/joi@17.12.1:
|
||||
resolution: {integrity: sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==}
|
||||
dependencies:
|
||||
@@ -12038,7 +12140,11 @@ packages:
|
||||
/lilconfig@2.1.0:
|
||||
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/lilconfig@3.0.0:
|
||||
resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==}
|
||||
engines: {node: '>=14'}
|
||||
dev: false
|
||||
|
||||
/lines-and-columns@1.2.4:
|
||||
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
|
||||
@@ -12241,7 +12347,6 @@ packages:
|
||||
/lru-cache@10.0.1:
|
||||
resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==}
|
||||
engines: {node: 14 || >=16.14}
|
||||
dev: true
|
||||
|
||||
/lru-cache@4.1.5:
|
||||
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
|
||||
@@ -12530,7 +12635,6 @@ packages:
|
||||
/minipass@7.0.4:
|
||||
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
dev: true
|
||||
|
||||
/mkdirp-classic@0.5.3:
|
||||
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
||||
@@ -12901,6 +13005,24 @@ packages:
|
||||
/node-int64@0.4.0:
|
||||
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
|
||||
|
||||
/node-mocks-http@1.14.1:
|
||||
resolution: {integrity: sha512-mfXuCGonz0A7uG1FEjnypjm34xegeN5+HI6xeGhYKecfgaZhjsmYoLE9LEFmT+53G1n8IuagPZmVnEL/xNsFaA==}
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
'@types/express': 4.17.21
|
||||
'@types/node': 20.11.17
|
||||
accepts: 1.3.8
|
||||
content-disposition: 0.5.4
|
||||
depd: 1.1.2
|
||||
fresh: 0.5.2
|
||||
merge-descriptors: 1.0.1
|
||||
methods: 1.1.2
|
||||
mime: 1.6.0
|
||||
parseurl: 1.3.3
|
||||
range-parser: 1.2.1
|
||||
type-is: 1.6.18
|
||||
dev: true
|
||||
|
||||
/node-releases@2.0.13:
|
||||
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
|
||||
|
||||
@@ -13068,6 +13190,11 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/object-hash@3.0.0:
|
||||
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
|
||||
engines: {node: '>= 6'}
|
||||
dev: false
|
||||
|
||||
/object-inspect@1.12.3:
|
||||
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
|
||||
|
||||
@@ -13473,7 +13600,6 @@ packages:
|
||||
dependencies:
|
||||
lru-cache: 10.0.1
|
||||
minipass: 7.0.4
|
||||
dev: true
|
||||
|
||||
/path-to-regexp@0.1.7:
|
||||
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
|
||||
@@ -13605,7 +13731,6 @@ packages:
|
||||
/pify@2.3.0:
|
||||
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/pify@3.0.0:
|
||||
resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
|
||||
@@ -13700,6 +13825,68 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/postcss-import@15.1.0(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
postcss: ^8.0.0
|
||||
dependencies:
|
||||
postcss: 8.4.35
|
||||
postcss-value-parser: 4.2.0
|
||||
read-cache: 1.0.0
|
||||
resolve: 1.22.6
|
||||
dev: false
|
||||
|
||||
/postcss-js@4.0.1(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
|
||||
engines: {node: ^12 || ^14 || >= 16}
|
||||
peerDependencies:
|
||||
postcss: ^8.4.21
|
||||
dependencies:
|
||||
camelcase-css: 2.0.1
|
||||
postcss: 8.4.35
|
||||
dev: false
|
||||
|
||||
/postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.1):
|
||||
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
|
||||
engines: {node: '>= 14'}
|
||||
peerDependencies:
|
||||
postcss: '>=8.0.9'
|
||||
ts-node: '>=9.0.0'
|
||||
peerDependenciesMeta:
|
||||
postcss:
|
||||
optional: true
|
||||
ts-node:
|
||||
optional: true
|
||||
dependencies:
|
||||
lilconfig: 3.0.0
|
||||
postcss: 8.4.35
|
||||
ts-node: 10.9.1(@swc/core@1.3.102)(@types/node@20.5.7)(typescript@5.2.2)
|
||||
yaml: 2.3.4
|
||||
dev: false
|
||||
|
||||
/postcss-nested@6.0.1(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
|
||||
engines: {node: '>=12.0'}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.14
|
||||
dependencies:
|
||||
postcss: 8.4.35
|
||||
postcss-selector-parser: 6.0.15
|
||||
dev: false
|
||||
|
||||
/postcss-selector-parser@6.0.15:
|
||||
resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
cssesc: 3.0.0
|
||||
util-deprecate: 1.0.2
|
||||
dev: false
|
||||
|
||||
/postcss-value-parser@4.2.0:
|
||||
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
|
||||
dev: false
|
||||
|
||||
/postcss@8.4.31:
|
||||
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
@@ -14251,6 +14438,12 @@ packages:
|
||||
loose-envify: 1.4.0
|
||||
dev: false
|
||||
|
||||
/read-cache@1.0.0:
|
||||
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
|
||||
dependencies:
|
||||
pify: 2.3.0
|
||||
dev: false
|
||||
|
||||
/read-pkg-up@10.1.0:
|
||||
resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -14916,6 +15109,11 @@ packages:
|
||||
/signal-exit@3.0.7:
|
||||
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
|
||||
|
||||
/signal-exit@4.1.0:
|
||||
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
||||
engines: {node: '>=14'}
|
||||
dev: false
|
||||
|
||||
/simple-concat@1.0.1:
|
||||
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
|
||||
|
||||
@@ -15252,7 +15450,6 @@ packages:
|
||||
eastasianwidth: 0.2.0
|
||||
emoji-regex: 9.2.2
|
||||
strip-ansi: 7.1.0
|
||||
dev: true
|
||||
|
||||
/string.prototype.matchall@4.0.10:
|
||||
resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
|
||||
@@ -15322,7 +15519,6 @@ packages:
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
ansi-regex: 6.0.1
|
||||
dev: true
|
||||
|
||||
/strip-bom@3.0.0:
|
||||
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
|
||||
@@ -15437,6 +15633,20 @@ packages:
|
||||
resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
|
||||
dev: false
|
||||
|
||||
/sucrase@3.35.0:
|
||||
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@jridgewell/gen-mapping': 0.3.3
|
||||
commander: 4.1.1
|
||||
glob: 10.3.10
|
||||
lines-and-columns: 1.2.4
|
||||
mz: 2.7.0
|
||||
pirates: 4.0.6
|
||||
ts-interface-checker: 0.1.13
|
||||
dev: false
|
||||
|
||||
/supports-color@5.5.0:
|
||||
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -15475,6 +15685,37 @@ packages:
|
||||
resolution: {integrity: sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==}
|
||||
dev: false
|
||||
|
||||
/tailwindcss@3.4.1(ts-node@10.9.1):
|
||||
resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@alloc/quick-lru': 5.2.0
|
||||
arg: 5.0.2
|
||||
chokidar: 3.5.3
|
||||
didyoumean: 1.2.2
|
||||
dlv: 1.1.3
|
||||
fast-glob: 3.3.1
|
||||
glob-parent: 6.0.2
|
||||
is-glob: 4.0.3
|
||||
jiti: 1.21.0
|
||||
lilconfig: 2.1.0
|
||||
micromatch: 4.0.5
|
||||
normalize-path: 3.0.0
|
||||
object-hash: 3.0.0
|
||||
picocolors: 1.0.0
|
||||
postcss: 8.4.35
|
||||
postcss-import: 15.1.0(postcss@8.4.35)
|
||||
postcss-js: 4.0.1(postcss@8.4.35)
|
||||
postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.1)
|
||||
postcss-nested: 6.0.1(postcss@8.4.35)
|
||||
postcss-selector-parser: 6.0.15
|
||||
resolve: 1.22.6
|
||||
sucrase: 3.35.0
|
||||
transitivePeerDependencies:
|
||||
- ts-node
|
||||
dev: false
|
||||
|
||||
/tapable@2.2.1:
|
||||
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -15777,6 +16018,10 @@ packages:
|
||||
dependencies:
|
||||
typescript: 5.2.2
|
||||
|
||||
/ts-interface-checker@0.1.13:
|
||||
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
||||
dev: false
|
||||
|
||||
/ts-jest@29.1.1(@babel/core@7.22.20)(jest@29.7.0)(typescript@5.2.2):
|
||||
resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==}
|
||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||
@@ -16123,6 +16368,10 @@ packages:
|
||||
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
|
||||
dev: true
|
||||
|
||||
/undici-types@5.26.5:
|
||||
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
|
||||
dev: true
|
||||
|
||||
/unfetch@4.2.0:
|
||||
resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==}
|
||||
dev: false
|
||||
@@ -16536,7 +16785,6 @@ packages:
|
||||
ansi-styles: 6.2.1
|
||||
string-width: 5.1.2
|
||||
strip-ansi: 7.1.0
|
||||
dev: true
|
||||
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||
@@ -16633,6 +16881,11 @@ packages:
|
||||
engines: {node: '>= 14'}
|
||||
dev: true
|
||||
|
||||
/yaml@2.3.4:
|
||||
resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
|
||||
engines: {node: '>= 14'}
|
||||
dev: false
|
||||
|
||||
/yargs-parser@20.2.9:
|
||||
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
import type { Payload } from '../../packages/payload/src'
|
||||
|
||||
import { GET as createGET, POST as createPOST } from '../../packages/next/src/routes/rest/index'
|
||||
import { getPayload } from '../../packages/payload/src'
|
||||
import { devUser } from '../credentials'
|
||||
import { initPayloadTest } from '../helpers/configHelpers'
|
||||
import { postsSlug } from './collections/Posts'
|
||||
|
||||
require('isomorphic-fetch')
|
||||
import config from './config'
|
||||
|
||||
let payload: Payload
|
||||
let apiURL: string
|
||||
let jwt
|
||||
|
||||
const GET = createGET(config)
|
||||
const POST = createPOST(config)
|
||||
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
@@ -20,27 +22,30 @@ describe('_Community Tests', () => {
|
||||
// Boilerplate test setup/teardown
|
||||
// --__--__--__--__--__--__--__--__--__
|
||||
beforeAll(async () => {
|
||||
const { payload: payloadClient, serverURL } = await initPayloadTest({
|
||||
__dirname,
|
||||
init: { local: false },
|
||||
})
|
||||
payload = await getPayload({ config })
|
||||
|
||||
apiURL = `${serverURL}/api`
|
||||
payload = payloadClient
|
||||
|
||||
const response = await fetch(`${apiURL}/users/login`, {
|
||||
const req = new Request('http://localhost:3000/api/users/login', {
|
||||
method: 'POST',
|
||||
headers: new Headers(headers),
|
||||
body: JSON.stringify({
|
||||
email,
|
||||
password,
|
||||
}),
|
||||
headers,
|
||||
method: 'post',
|
||||
})
|
||||
|
||||
const data = await response.json()
|
||||
const data = await POST(req, {
|
||||
params: {
|
||||
slug: ['users', 'login'],
|
||||
},
|
||||
}).then((res) => res.json())
|
||||
|
||||
jwt = data.token
|
||||
})
|
||||
|
||||
beforeEach(() => {
|
||||
jest.resetModules()
|
||||
})
|
||||
|
||||
afterAll(async () => {
|
||||
if (typeof payload.db.destroy === 'function') {
|
||||
await payload.db.destroy(payload)
|
||||
@@ -64,17 +69,23 @@ describe('_Community Tests', () => {
|
||||
})
|
||||
|
||||
it('rest API example', async () => {
|
||||
const newPost = await fetch(`${apiURL}/${postsSlug}`, {
|
||||
const req = new Request(`http://localhost:3000/posts`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
headers: new Headers({
|
||||
...headers,
|
||||
Authorization: `JWT ${jwt}`,
|
||||
},
|
||||
}),
|
||||
body: JSON.stringify({
|
||||
text: 'REST API EXAMPLE',
|
||||
}),
|
||||
})
|
||||
|
||||
const data = await POST(req, {
|
||||
params: {
|
||||
slug: ['posts'],
|
||||
},
|
||||
}).then((res) => res.json())
|
||||
|
||||
expect(newPost.doc.text).toEqual('REST API EXAMPLE')
|
||||
expect(data.doc.text).toEqual('REST API EXAMPLE')
|
||||
})
|
||||
})
|
||||
|
||||
@@ -49,7 +49,7 @@ export async function initPayloadTest(options: Options): Promise<InitializedPayl
|
||||
if (!initOptions?.local) {
|
||||
process.env.APP_ENV = 'test'
|
||||
process.env.__NEXT_TEST_MODE = 'jest'
|
||||
await bootAdminPanel({ port, appDir: path.resolve(__dirname, '../../packages/dev') })
|
||||
await bootAdminPanel({ port, appDir: path.resolve(__dirname, '../../') })
|
||||
jest.resetModules()
|
||||
}
|
||||
|
||||
|
||||
150
tsconfig.json
150
tsconfig.json
@@ -10,8 +10,12 @@
|
||||
"checkJs": false /* Report errors in .js files. */,
|
||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
||||
"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */,
|
||||
"jsx": "react" /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */,
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"jsx": "preserve" /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */,
|
||||
"lib": [
|
||||
"dom",
|
||||
"dom.iterable",
|
||||
"esnext"
|
||||
],
|
||||
"noEmit": true /* Do not emit outputs. */,
|
||||
/* Concatenate and emit output to single file. */
|
||||
"outDir": "./dist" /* Redirect output structure to the directory. */,
|
||||
@@ -20,36 +24,126 @@
|
||||
"skipLibCheck": true /* Skip type checking of declaration files. */,
|
||||
"sourceMap": true,
|
||||
"strict": false /* Enable all strict type-checking options. */,
|
||||
"types": ["jest", "node", "@types/jest"]
|
||||
"types": [
|
||||
"jest",
|
||||
"node",
|
||||
"@types/jest"
|
||||
],
|
||||
"incremental": true,
|
||||
"isolatedModules": true,
|
||||
"plugins": [
|
||||
{
|
||||
"name": "next"
|
||||
}
|
||||
],
|
||||
"paths": {
|
||||
"payload": [
|
||||
"./packages/payload/src"
|
||||
],
|
||||
"payload/*": [
|
||||
"./packages/payload/src/exports/*"
|
||||
],
|
||||
"@payloadcms/db-mongodb": [
|
||||
"./packages/db-mongodb/src"
|
||||
],
|
||||
"@payloadcms/richtext-lexical": [
|
||||
"./packages/richtext-lexical/src"
|
||||
],
|
||||
"@payloadcms/ui/*": [
|
||||
"./packages/ui/src/exports/*"
|
||||
],
|
||||
"@payloadcms/translations": [
|
||||
"./packages/translations/src/exports/index.ts"
|
||||
],
|
||||
"@payloadcms/translations/client": [
|
||||
"./packages/translations/src/all"
|
||||
],
|
||||
"@payloadcms/translations/api": [
|
||||
"./packages/translations/src/all"
|
||||
],
|
||||
"@payloadcms/next/*": [
|
||||
"./packages/next/src/*"
|
||||
],
|
||||
"@payloadcms/graphql": [
|
||||
"./packages/graphql/src"
|
||||
],
|
||||
"payload-config": [
|
||||
"./test/_community/config.ts"
|
||||
]
|
||||
}
|
||||
},
|
||||
"exclude": ["dist", "build", "temp", "node_modules"],
|
||||
"exclude": [
|
||||
"dist",
|
||||
"build",
|
||||
"temp",
|
||||
"node_modules"
|
||||
],
|
||||
/* Like tsconfig.build.json, but includes test directory and doesnt emit anything */
|
||||
"include": [],
|
||||
"files": [],
|
||||
"ts-node": {
|
||||
"swc": true
|
||||
},
|
||||
"composite": true, // Required for references to work
|
||||
"references": [
|
||||
// if your tsconfig is something different
|
||||
{ "path": "./packages/db-mongodb" },
|
||||
{ "path": "./packages/db-postgres" },
|
||||
{ "path": "./packages/graphql" },
|
||||
{ "path": "./packages/live-preview" },
|
||||
{ "path": "./packages/live-preview-react" },
|
||||
{ "path": "./packages/next" },
|
||||
{ "path": "./packages/payload" },
|
||||
{ "path": "./packages/plugin-cloud-storage" },
|
||||
{ "path": "./packages/plugin-cloud" },
|
||||
{ "path": "./packages/plugin-form-builder" },
|
||||
{ "path": "./packages/plugin-nested-docs" },
|
||||
{ "path": "./packages/plugin-redirects" },
|
||||
{ "path": "./packages/plugin-search" },
|
||||
{ "path": "./packages/plugin-seo" },
|
||||
{ "path": "./packages/plugin-stripe" },
|
||||
{ "path": "./packages/richtext-slate" },
|
||||
{ "path": "./packages/richtext-lexical" },
|
||||
{ "path": "./packages/translations" },
|
||||
{ "path": "./packages/ui" }
|
||||
{
|
||||
"path": "./packages/db-mongodb"
|
||||
},
|
||||
{
|
||||
"path": "./packages/db-postgres"
|
||||
},
|
||||
{
|
||||
"path": "./packages/graphql"
|
||||
},
|
||||
{
|
||||
"path": "./packages/live-preview"
|
||||
},
|
||||
{
|
||||
"path": "./packages/live-preview-react"
|
||||
},
|
||||
{
|
||||
"path": "./packages/next"
|
||||
},
|
||||
{
|
||||
"path": "./packages/payload"
|
||||
},
|
||||
{
|
||||
"path": "./packages/plugin-cloud-storage"
|
||||
},
|
||||
{
|
||||
"path": "./packages/plugin-cloud"
|
||||
},
|
||||
{
|
||||
"path": "./packages/plugin-form-builder"
|
||||
},
|
||||
{
|
||||
"path": "./packages/plugin-nested-docs"
|
||||
},
|
||||
{
|
||||
"path": "./packages/plugin-redirects"
|
||||
},
|
||||
{
|
||||
"path": "./packages/plugin-search"
|
||||
},
|
||||
{
|
||||
"path": "./packages/plugin-seo"
|
||||
},
|
||||
{
|
||||
"path": "./packages/plugin-stripe"
|
||||
},
|
||||
{
|
||||
"path": "./packages/richtext-slate"
|
||||
},
|
||||
{
|
||||
"path": "./packages/richtext-lexical"
|
||||
},
|
||||
{
|
||||
"path": "./packages/translations"
|
||||
},
|
||||
{
|
||||
"path": "./packages/ui"
|
||||
}
|
||||
],
|
||||
"include": [
|
||||
"next-env.d.ts",
|
||||
".next/types/**/*.ts",
|
||||
"**/*.ts",
|
||||
"**/*.tsx"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user