Compare commits
13 Commits
chore/esm-
...
v3.0.0-alp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb63095d3f | ||
|
|
601f2fb450 | ||
|
|
e746f17167 | ||
|
|
5f76097562 | ||
|
|
03756c4210 | ||
|
|
5e1e158414 | ||
|
|
76d2525fd2 | ||
|
|
ec8c7e5c2c | ||
|
|
0a4cbe1a08 | ||
|
|
4e0d90d720 | ||
|
|
7b62705cc0 | ||
|
|
bdf02bebaa | ||
|
|
94aa309910 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -288,3 +288,4 @@ $RECYCLE.BIN/
|
||||
# End of https://www.toptal.com/developers/gitignore/api/node,macos,windows,webstorm,sublimetext,visualstudiocode
|
||||
|
||||
/build
|
||||
.swc
|
||||
15
.swcrc
Normal file
15
.swcrc
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
"syntax": "typescript",
|
||||
"tsx": true,
|
||||
"dts": true
|
||||
}
|
||||
},
|
||||
"module": {
|
||||
"type": "es6"
|
||||
}
|
||||
}
|
||||
1
emptyModule.js
Normal file
1
emptyModule.js
Normal file
@@ -0,0 +1 @@
|
||||
export default {}
|
||||
12
package.json
12
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "payload-monorepo",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"workspaces:": [
|
||||
@@ -72,7 +72,7 @@
|
||||
"@next/bundle-analyzer": "^14.1.0",
|
||||
"@octokit/core": "^5.1.0",
|
||||
"@payloadcms/eslint-config": "workspace:*",
|
||||
"@playwright/test": "1.42.1",
|
||||
"@playwright/test": "^1.42.1",
|
||||
"@swc/cli": "^0.1.62",
|
||||
"@swc/jest": "0.2.36",
|
||||
"@testing-library/jest-dom": "6.4.2",
|
||||
@@ -124,8 +124,8 @@
|
||||
"nodemon": "3.0.3",
|
||||
"pino": "8.15.0",
|
||||
"pino-pretty": "10.2.0",
|
||||
"playwright": "file:playwright-1.43.0-next.tgz",
|
||||
"playwright-core": "file:playwright-core-1.43.0-next.tgz",
|
||||
"playwright": "^1.42.1",
|
||||
"playwright-core": "^1.42.1",
|
||||
"prettier": "^3.0.3",
|
||||
"prompts": "2.4.2",
|
||||
"qs": "6.11.2",
|
||||
@@ -173,9 +173,7 @@
|
||||
"graphql": "^16.8.1",
|
||||
"react": "$react",
|
||||
"react-dom": "$react-dom",
|
||||
"typescript": "$typescript",
|
||||
"playwright": "file:playwright-1.43.0-next.tgz",
|
||||
"playwright-core": "file:playwright-core-1.43.0-next.tgz"
|
||||
"typescript": "$typescript"
|
||||
},
|
||||
"allowedDeprecatedVersions": {
|
||||
"uuid": "3.4.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/db-mongodb",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"description": "The officially supported MongoDB database adapter for Payload - Update 2",
|
||||
"repository": "https://github.com/payloadcms/payload",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/db-postgres",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"description": "The officially supported Postgres database adapter for Payload",
|
||||
"repository": "https://github.com/payloadcms/payload",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/graphql",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"main": "./src/index.ts",
|
||||
"types": "./src/index.d.ts",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,12 +1,22 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
"syntax": "typescript",
|
||||
"tsx": true,
|
||||
"dts": true
|
||||
},
|
||||
"experimental": {
|
||||
"plugins": [
|
||||
[
|
||||
"swc-plugin-transform-remove-imports",
|
||||
{
|
||||
"test": "\\.(scss|css)$"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"module": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/next",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"main": "./src/index.ts",
|
||||
"types": "./src/index.d.ts",
|
||||
"type": "module",
|
||||
@@ -8,9 +8,10 @@
|
||||
"@payloadcms/next": "./dist/bin/index.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
|
||||
"build": "pnpm copyfiles && pnpm build:swc && pnpm build:types && pnpm build:webpack && rm dist/prod/index.js",
|
||||
"build:swc": "swc ./src -d ./dist --config-file .swcrc",
|
||||
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
||||
"build:webpack": "webpack --config webpack.config.js",
|
||||
"clean": "rimraf {dist,*.tsbuildinfo}",
|
||||
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" \"src/app/api/**\" dist/ && pnpm copyfiles:api",
|
||||
"copyfiles:api": "copyfiles -u 1 \"src/app/(payload)/**\" dist/template",
|
||||
@@ -50,7 +51,18 @@
|
||||
"@types/react": "18.2.15",
|
||||
"@types/react-dom": "18.2.7",
|
||||
"@types/ws": "^8.5.10",
|
||||
"payload": "workspace:*"
|
||||
"css-loader": "^6.10.0",
|
||||
"css-minimizer-webpack-plugin": "^6.0.0",
|
||||
"mini-css-extract-plugin": "1.6.2",
|
||||
"payload": "workspace:*",
|
||||
"postcss-loader": "^8.1.1",
|
||||
"postcss-preset-env": "^9.5.0",
|
||||
"sass-loader": "^14.1.1",
|
||||
"swc-loader": "^0.2.6",
|
||||
"swc-plugin-transform-remove-imports": "^1.12.1",
|
||||
"terser-webpack-plugin": "^5.3.10",
|
||||
"webpack": "^5.78.0",
|
||||
"webpack-cli": "^5.1.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@dnd-kit/core": "6.0.8",
|
||||
@@ -79,6 +91,11 @@
|
||||
"main": "./dist/exports/index.js",
|
||||
"types": "./dist/exports/index.d.ts",
|
||||
"exports": {
|
||||
"./css": {
|
||||
"import": "./dist/prod/styles.css",
|
||||
"require": "./dist/prod/styles.css",
|
||||
"default": "./dist/prod/styles.css"
|
||||
},
|
||||
"./withPayload": {
|
||||
"import": "./dist/withPayload.js",
|
||||
"require": "./dist/withPayload.js",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import type { SanitizedConfig } from 'payload/types'
|
||||
|
||||
import { auth } from '@payloadcms/next/utilities/auth'
|
||||
import { translations } from '@payloadcms/translations/client'
|
||||
import { RootProvider, buildComponentMap } from '@payloadcms/ui'
|
||||
import '@payloadcms/ui/scss/app.scss'
|
||||
@@ -11,6 +10,7 @@ import React from 'react'
|
||||
import 'react-toastify/dist/ReactToastify.css'
|
||||
|
||||
import { ClearRouteCache } from '../../elements/ClearRouteCache/index.js'
|
||||
import { auth } from '../../utilities/auth.js'
|
||||
import { getPayload } from '../../utilities/getPayload.js'
|
||||
import { getRequestLanguage } from '../../utilities/getRequestLanguage.js'
|
||||
import { DefaultEditView } from '../../views/Edit/Default/index.js'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@import 'fonts';
|
||||
@import 'styles';
|
||||
@import './fonts.scss';
|
||||
@import './styles.scss';
|
||||
@import './toastify.scss';
|
||||
@import './colors.scss';
|
||||
|
||||
|
||||
@@ -12,6 +12,10 @@ if (!cached) {
|
||||
}
|
||||
|
||||
export const getPayload = async (options: InitOptions): Promise<Payload> => {
|
||||
if (!options?.config) {
|
||||
throw new Error('Error: the payload config is required for getPayload to work.')
|
||||
}
|
||||
|
||||
if (cached.payload) {
|
||||
const config = await options.config
|
||||
|
||||
@@ -47,7 +51,8 @@ export const getPayload = async (options: InitOptions): Promise<Payload> => {
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
try {
|
||||
const ws = new WebSocket('ws://localhost:3000/_next/webpack-hmr')
|
||||
const port = process.env.PORT || '3000'
|
||||
const ws = new WebSocket(`ws://localhost:${port}/_next/webpack-hmr`)
|
||||
|
||||
ws.onmessage = (event) => {
|
||||
if (typeof event.data === 'string') {
|
||||
|
||||
107
packages/next/webpack.config.js
Normal file
107
packages/next/webpack.config.js
Normal file
@@ -0,0 +1,107 @@
|
||||
import OptimizeCSSAssetsPlugin from 'css-minimizer-webpack-plugin'
|
||||
import MiniCSSExtractPlugin from 'mini-css-extract-plugin'
|
||||
import path from 'path'
|
||||
import TerserJSPlugin from 'terser-webpack-plugin'
|
||||
import { fileURLToPath } from 'url'
|
||||
import webpack from 'webpack'
|
||||
|
||||
const filename = fileURLToPath(import.meta.url)
|
||||
const dirname = path.dirname(filename)
|
||||
|
||||
const componentWebpackConfig = {
|
||||
entry: path.resolve(dirname, './src/index.ts'),
|
||||
externals: ['react', 'react-dom', 'payload', 'payload/config', 'react-image-crop'],
|
||||
mode: 'production',
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
oneOf: [
|
||||
{
|
||||
// exclude: /node_modules/,
|
||||
test: /\.(t|j)sx?$/,
|
||||
use: [
|
||||
{
|
||||
loader: 'swc-loader',
|
||||
options: {
|
||||
jsc: {
|
||||
experimental: {
|
||||
plugins: [
|
||||
// clear the plugins used in .swcrc
|
||||
],
|
||||
},
|
||||
parser: {
|
||||
syntax: 'typescript',
|
||||
tsx: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
sideEffects: true,
|
||||
test: /\.(scss|css)$/,
|
||||
use: [
|
||||
MiniCSSExtractPlugin.loader,
|
||||
'css-loader',
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: ['postcss-preset-env'],
|
||||
},
|
||||
},
|
||||
},
|
||||
'sass-loader',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'asset/resource',
|
||||
generator: {
|
||||
filename: 'payload/[name][ext]',
|
||||
},
|
||||
test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/, /\.svg$/, /\.woff$/, /\.woff2$/],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
optimization: {
|
||||
minimizer: [
|
||||
new TerserJSPlugin({
|
||||
extractComments: false,
|
||||
}),
|
||||
new OptimizeCSSAssetsPlugin({}),
|
||||
],
|
||||
},
|
||||
output: {
|
||||
filename: 'index.js',
|
||||
libraryTarget: 'commonjs2',
|
||||
path: path.resolve(dirname, './dist/prod'),
|
||||
publicPath: '/',
|
||||
},
|
||||
plugins: [
|
||||
new MiniCSSExtractPlugin({
|
||||
filename: 'styles.css',
|
||||
ignoreOrder: true,
|
||||
}),
|
||||
new webpack.optimize.LimitChunkCountPlugin({
|
||||
maxChunks: 1,
|
||||
}),
|
||||
],
|
||||
resolve: {
|
||||
extensionAlias: {
|
||||
'.js': ['.ts', '.tsx', '.js', '.scss', '.css'],
|
||||
'.mjs': ['.mts', '.mjs'],
|
||||
},
|
||||
extensions: ['.js', '.ts', '.tsx', '.scss', '.css'],
|
||||
modules: [
|
||||
'node_modules',
|
||||
path.resolve(dirname, '../../node_modules'),
|
||||
path.resolve(dirname, './node_modules'),
|
||||
],
|
||||
},
|
||||
stats: 'errors-only',
|
||||
}
|
||||
|
||||
export default componentWebpackConfig
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "payload",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"description": "Node, React and MongoDB Headless CMS and Application Framework",
|
||||
"license": "MIT",
|
||||
"main": "./src/index.js",
|
||||
|
||||
@@ -298,6 +298,10 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
|
||||
* @param options
|
||||
*/
|
||||
async init(options: InitOptions): Promise<Payload> {
|
||||
if (!options?.config) {
|
||||
throw new Error('Error: the payload config is required to initialize payload.')
|
||||
}
|
||||
|
||||
this.logger = Logger('payload', options.loggerOptions, options.loggerDestination)
|
||||
|
||||
this.config = await options.config
|
||||
@@ -420,7 +424,11 @@ if (!cached) {
|
||||
cached = global._payload = { payload: null, promise: null }
|
||||
}
|
||||
|
||||
export const getPayload = async (options?: InitOptions): Promise<BasePayload<GeneratedTypes>> => {
|
||||
export const getPayload = async (options: InitOptions): Promise<BasePayload<GeneratedTypes>> => {
|
||||
if (!options?.config) {
|
||||
throw new Error('Error: the payload config is required for getPayload to work.')
|
||||
}
|
||||
|
||||
if (cached.payload) {
|
||||
return cached.payload
|
||||
}
|
||||
|
||||
@@ -38,7 +38,6 @@ async function deleteOperation(args: PreferenceRequest): Promise<Document> {
|
||||
where,
|
||||
})
|
||||
|
||||
// @ts-expect-error // TODO: fix later
|
||||
if (result.docs.length === 1) {
|
||||
return result.docs[0]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@payloadcms/plugin-cloud-storage",
|
||||
"description": "The official cloud storage plugin for Payload CMS",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"exclude": ["/**/*.spec.ts", "/**/mocks"],
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@payloadcms/plugin-cloud",
|
||||
"description": "The official Payload Cloud plugin",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"exclude": ["/**/mocks"],
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/plugin-nested-docs",
|
||||
"version": "1.0.12",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"description": "The official Nested Docs plugin for Payload",
|
||||
"repository": "https://github.com/payloadcms/payload",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/plugin-redirects",
|
||||
"version": "1.0.1",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"homepage:": "https://payloadcms.com",
|
||||
"repository": "git@github.com:payloadcms/plugin-redirects.git",
|
||||
"description": "Redirects plugin for Payload",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/plugin-search",
|
||||
"version": "1.1.0",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"homepage:": "https://payloadcms.com",
|
||||
"repository": "git@github.com:payloadcms/plugin-search.git",
|
||||
"description": "Search plugin for Payload",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"exclude": ["/**/*.spec.ts"],
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/plugin-seo",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"homepage:": "https://payloadcms.com",
|
||||
"repository": "git@github.com:payloadcms/plugin-seo.git",
|
||||
"description": "SEO plugin for Payload",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/richtext-lexical",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"description": "The officially supported Lexical richtext adapter for Payload",
|
||||
"repository": "https://github.com/payloadcms/payload",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/richtext-slate",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"description": "The officially supported Slate richtext adapter for Payload",
|
||||
"repository": "https://github.com/payloadcms/payload",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@payloadcms/translations",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"main": "./dist/exports/index.ts",
|
||||
"types": "./dist/types.d.ts",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,12 +1,22 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/swcrc",
|
||||
"sourceMaps": "inline",
|
||||
"sourceMaps": true,
|
||||
"jsc": {
|
||||
"target": "esnext",
|
||||
"parser": {
|
||||
"syntax": "typescript",
|
||||
"tsx": true,
|
||||
"dts": true
|
||||
},
|
||||
"experimental": {
|
||||
"plugins": [
|
||||
[
|
||||
"swc-plugin-transform-remove-imports",
|
||||
{
|
||||
"test": "\\.(scss|css)$"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"module": {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{
|
||||
"name": "@payloadcms/ui",
|
||||
"version": "3.0.0-alpha.41",
|
||||
"version": "3.0.0-alpha.42",
|
||||
"main": "./src/index.ts",
|
||||
"types": "./dist/index.d.ts",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "pnpm copyfiles && pnpm build:swc && pnpm build:types",
|
||||
"build": "pnpm copyfiles && pnpm build:swc && pnpm build:types && pnpm build:webpack && rm dist/prod/index.js",
|
||||
"build:swc": "swc ./src -d ./dist --config-file .swcrc",
|
||||
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
||||
"build:webpack": "webpack --config webpack.config.js",
|
||||
"clean": "rimraf {dist,*.tsbuildinfo}",
|
||||
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
|
||||
"fix": "eslint \"src/**/*.{ts,tsx}\" --fix",
|
||||
@@ -37,6 +38,11 @@
|
||||
"require": "./dist/exports/*.js",
|
||||
"types": "./dist/exports/*.d.ts"
|
||||
},
|
||||
"./css": {
|
||||
"import": "./dist/prod/styles.css",
|
||||
"require": "./dist/prod/styles.css",
|
||||
"default": "./dist/prod/styles.css"
|
||||
},
|
||||
"./scss": {
|
||||
"import": "./dist/scss.scss",
|
||||
"require": "./dist/scss.scss",
|
||||
@@ -54,7 +60,18 @@
|
||||
"@types/react-datepicker": "4.11.2",
|
||||
"@types/react-dom": "18.2.7",
|
||||
"@types/uuid": "8.3.4",
|
||||
"payload": "workspace:*"
|
||||
"postcss-loader": "^8.1.1",
|
||||
"postcss-preset-env": "^9.5.0",
|
||||
"sass-loader": "^14.1.1",
|
||||
"swc-loader": "^0.2.6",
|
||||
"swc-plugin-transform-remove-imports": "^1.12.1",
|
||||
"css-loader": "^6.10.0",
|
||||
"css-minimizer-webpack-plugin": "^6.0.0",
|
||||
"mini-css-extract-plugin": "1.6.2",
|
||||
"payload": "workspace:*",
|
||||
"terser-webpack-plugin": "^5.3.10",
|
||||
"webpack": "^5.78.0",
|
||||
"webpack-cli": "^5.1.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@dnd-kit/core": "6.0.8",
|
||||
|
||||
107
packages/ui/webpack.config.js
Normal file
107
packages/ui/webpack.config.js
Normal file
@@ -0,0 +1,107 @@
|
||||
import OptimizeCSSAssetsPlugin from 'css-minimizer-webpack-plugin'
|
||||
import MiniCSSExtractPlugin from 'mini-css-extract-plugin'
|
||||
import path from 'path'
|
||||
import TerserJSPlugin from 'terser-webpack-plugin'
|
||||
import { fileURLToPath } from 'url'
|
||||
import webpack from 'webpack'
|
||||
|
||||
const filename = fileURLToPath(import.meta.url)
|
||||
const dirname = path.dirname(filename)
|
||||
|
||||
const componentWebpackConfig = {
|
||||
entry: path.resolve(dirname, './src/index.ts'),
|
||||
externals: ['react', 'react-dom', 'payload', 'payload/config', 'react-image-crop'],
|
||||
mode: 'production',
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
oneOf: [
|
||||
{
|
||||
// exclude: /node_modules/,
|
||||
test: /\.(t|j)sx?$/,
|
||||
use: [
|
||||
{
|
||||
loader: 'swc-loader',
|
||||
options: {
|
||||
jsc: {
|
||||
experimental: {
|
||||
plugins: [
|
||||
// clear the plugins used in .swcrc
|
||||
],
|
||||
},
|
||||
parser: {
|
||||
syntax: 'typescript',
|
||||
tsx: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
sideEffects: true,
|
||||
test: /\.(scss|css)$/,
|
||||
use: [
|
||||
MiniCSSExtractPlugin.loader,
|
||||
'css-loader',
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: ['postcss-preset-env'],
|
||||
},
|
||||
},
|
||||
},
|
||||
'sass-loader',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'asset/resource',
|
||||
generator: {
|
||||
filename: 'payload/[name][ext]',
|
||||
},
|
||||
test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/, /\.svg$/, /\.woff$/, /\.woff2$/],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
optimization: {
|
||||
minimizer: [
|
||||
new TerserJSPlugin({
|
||||
extractComments: false,
|
||||
}),
|
||||
new OptimizeCSSAssetsPlugin({}),
|
||||
],
|
||||
},
|
||||
output: {
|
||||
filename: 'index.js',
|
||||
libraryTarget: 'commonjs2',
|
||||
path: path.resolve(dirname, './dist/prod'),
|
||||
publicPath: '/',
|
||||
},
|
||||
plugins: [
|
||||
new MiniCSSExtractPlugin({
|
||||
filename: 'styles.css',
|
||||
ignoreOrder: true,
|
||||
}),
|
||||
new webpack.optimize.LimitChunkCountPlugin({
|
||||
maxChunks: 1,
|
||||
}),
|
||||
],
|
||||
resolve: {
|
||||
extensionAlias: {
|
||||
'.js': ['.ts', '.tsx', '.js', '.scss', '.css'],
|
||||
'.mjs': ['.mts', '.mjs'],
|
||||
},
|
||||
extensions: ['.js', '.ts', '.tsx', '.scss', '.css'],
|
||||
modules: [
|
||||
'node_modules',
|
||||
path.resolve(dirname, '../../node_modules'),
|
||||
path.resolve(dirname, './node_modules'),
|
||||
],
|
||||
},
|
||||
stats: 'errors-only',
|
||||
}
|
||||
|
||||
export default componentWebpackConfig
|
||||
Binary file not shown.
Binary file not shown.
1786
pnpm-lock.yaml
generated
1786
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -28,9 +28,9 @@ const packageWhitelist = [
|
||||
'plugin-cloud',
|
||||
'plugin-cloud-storage',
|
||||
// 'plugin-form-builder',
|
||||
// 'plugin-nested-docs',
|
||||
// 'plugin-redirects',
|
||||
// 'plugin-search',
|
||||
'plugin-nested-docs',
|
||||
'plugin-redirects',
|
||||
'plugin-search',
|
||||
// 'plugin-sentry',
|
||||
'plugin-seo',
|
||||
// 'plugin-stripe',
|
||||
|
||||
@@ -7,7 +7,6 @@ import { fileURLToPath } from 'url'
|
||||
import { initPageConsoleErrorCatch } from '../helpers.js'
|
||||
import { AdminUrlUtil } from '../helpers/adminUrlUtil.js'
|
||||
import { initPayloadE2E } from '../helpers/configHelpers.js'
|
||||
import config from './config.js'
|
||||
|
||||
const filename = fileURLToPath(import.meta.url)
|
||||
const dirname = path.dirname(filename)
|
||||
@@ -19,7 +18,7 @@ describe('Admin Panel', () => {
|
||||
let url: AdminUrlUtil
|
||||
|
||||
beforeAll(async ({ browser }) => {
|
||||
const { serverURL } = await initPayloadE2E({ config, dirname })
|
||||
const { serverURL } = await initPayloadE2E({ dirname })
|
||||
url = new AdminUrlUtil(serverURL, 'posts')
|
||||
|
||||
const context = await browser.newContext()
|
||||
|
||||
@@ -1,37 +1,60 @@
|
||||
import { spawn } from 'child_process'
|
||||
import getPort from 'get-port'
|
||||
//import { nextDev } from 'next/dist/cli/next-dev.js'
|
||||
import { nextDev } from 'next/dist/cli/next-dev.js'
|
||||
import path from 'path'
|
||||
|
||||
import type { SanitizedConfig } from '../../packages/payload/src/config/types.js'
|
||||
import type { Payload } from '../../packages/payload/src/index.js'
|
||||
import wait from '../../packages/payload/src/utilities/wait.js'
|
||||
|
||||
import { getPayload } from '../../packages/payload/src/index.js'
|
||||
import { bootAdminPanel } from './bootAdminPanel.mjs'
|
||||
|
||||
type InitializedPayload = { payload: Payload; serverURL: string }
|
||||
|
||||
export async function initPayloadE2E(args: {
|
||||
config: Promise<SanitizedConfig>
|
||||
type Args = {
|
||||
dirname: string
|
||||
}): Promise<InitializedPayload> {
|
||||
const { config, dirname } = args
|
||||
}
|
||||
|
||||
console.log('dirname', dirname)
|
||||
type Result = {
|
||||
serverURL: string
|
||||
}
|
||||
|
||||
// process.env.TURBOPACK = '1' // Not working due to turbopack pulling in mongoose, pg
|
||||
export async function initPayloadE2E({ dirname }: Args): Promise<Result> {
|
||||
const port = await getPort()
|
||||
const serverURL = `http://localhost:${port}`
|
||||
process.env.PAYLOAD_CONFIG_PATH = path.resolve(dirname, './config.js')
|
||||
process.env.PAYLOAD_DROP_DATABASE = 'true'
|
||||
//process.env.NODE_ENV = 'test'
|
||||
process.env.PORT = String(port)
|
||||
|
||||
const payload = await getPayload({ config })
|
||||
// @ts-expect-error
|
||||
process.env.NODE_ENV = 'test'
|
||||
|
||||
nextDev({
|
||||
_: [path.resolve(dirname, '../../')],
|
||||
'--port': port,
|
||||
// Turbo doesn't seem to be reading
|
||||
// our tsconfig paths, commented out for now
|
||||
// '--turbo': '1',
|
||||
})
|
||||
|
||||
await wait(3000)
|
||||
return { serverURL }
|
||||
}
|
||||
|
||||
export async function initPayloadSpawn({ dirname }: Args): Promise<Result> {
|
||||
const port = await getPort()
|
||||
const serverURL = `http://localhost:${port}`
|
||||
|
||||
//process.env.APP_ENV = 'test'
|
||||
//process.env.__NEXT_TEST_MODE = 'jest'
|
||||
// Tried using a child process to get
|
||||
// turbopack to pick up our tsconfig aliases
|
||||
// but this didn't make a difference.
|
||||
// Keeping it here so we can continue to try.
|
||||
spawn('pnpm', ['dev', '--turbo'], {
|
||||
cwd: path.resolve(dirname, '../../'),
|
||||
env: {
|
||||
...process.env,
|
||||
NODE_ENV: 'test',
|
||||
PORT: String(port),
|
||||
PAYLOAD_CONFIG_PATH: path.resolve(dirname, '../../config.js'),
|
||||
PAYLOAD_DROP_DATABASE: 'true',
|
||||
},
|
||||
})
|
||||
|
||||
//await nextDev({ _: [path.resolve(dirname, '../../')], port }) // Running nextDev directly does not work for ports other than 3000
|
||||
await bootAdminPanel({ port, appDir: path.resolve(dirname, '../../') })
|
||||
return { serverURL, payload }
|
||||
await wait(3000)
|
||||
|
||||
return { serverURL }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user