feat: replace qs with qs-esm (#6966)

qs-esm is a qs fork I created and doesn't add bloated polyfills, is
ESM-only, has a smaller bundle size and comes with types included.

qs:
https://bundlephobia.com/package/qs@6.12.1 (11kb)
https://npm.anvaka.com/#/view/2d/qs (15 dependencies)

qs-esm:
https://bundlephobia.com/package/qs-esm@7.0.0 (4.2kb)
https://npm.anvaka.com/#/view/2d/qs-esm (1 dependency)

I don't agree with the backwards philosophy of qs:
https://github.com/ljharb/qs/issues/404#issuecomment-806392831 ("more
deps is better", lower bundle size as opt-in, maximum environment
compatibility as opt-out)

qs imports waaay too many useless dependencies
This commit is contained in:
Alessio Gravili
2024-07-09 10:33:38 -04:00
committed by GitHub
parent a467ce94f7
commit 6c99326d59
32 changed files with 77 additions and 81 deletions

View File

@@ -154,7 +154,7 @@ This one isn't too bad, but more complex queries get unavoidably more difficult
**For example, using fetch:** **For example, using fetch:**
```js ```js
import qs from 'qs' import { stringify } from 'qs-esm'
const query = { const query = {
color: { color: {
@@ -165,7 +165,7 @@ const query = {
} }
const getPosts = async () => { const getPosts = async () => {
const stringifiedQuery = qs.stringify( const stringifiedQuery = stringify(
{ {
where: query, // ensure that `qs` adds the `where` property, too! where: query, // ensure that `qs` adds the `where` property, too!
}, },

View File

@@ -103,7 +103,6 @@
"@types/minimist": "1.2.5", "@types/minimist": "1.2.5",
"@types/node": "20.12.5", "@types/node": "20.12.5",
"@types/prompts": "^2.4.5", "@types/prompts": "^2.4.5",
"@types/qs": "6.9.14",
"@types/react": "npm:types-react@19.0.0-beta.2", "@types/react": "npm:types-react@19.0.0-beta.2",
"@types/react-dom": "npm:types-react-dom@19.0.0-beta.2", "@types/react-dom": "npm:types-react-dom@19.0.0-beta.2",
"@types/semver": "^7.5.3", "@types/semver": "^7.5.3",

View File

@@ -72,7 +72,7 @@
"graphql-playground-html": "1.6.30", "graphql-playground-html": "1.6.30",
"http-status": "1.6.2", "http-status": "1.6.2",
"path-to-regexp": "^6.2.1", "path-to-regexp": "^6.2.1",
"qs": "6.12.1", "qs-esm": "7.0.2",
"react-diff-viewer-continued": "3.2.6", "react-diff-viewer-continued": "3.2.6",
"sass": "1.77.4", "sass": "1.77.4",
"sonner": "^1.5.0", "sonner": "^1.5.0",

View File

@@ -2,7 +2,7 @@ import type { CustomPayloadRequestProperties, PayloadRequest, SanitizedConfig }
import { initI18n } from '@payloadcms/translations' import { initI18n } from '@payloadcms/translations'
import { executeAuthStrategies, getDataLoader, parseCookies } from 'payload' import { executeAuthStrategies, getDataLoader, parseCookies } from 'payload'
import qs from 'qs' import * as qs from 'qs-esm'
import { URL } from 'url' import { URL } from 'url'
import { sanitizeLocales } from './addLocalesToRequest.js' import { sanitizeLocales } from './addLocalesToRequest.js'

View File

@@ -1,5 +1,5 @@
import { redirect } from 'next/navigation.js' import { redirect } from 'next/navigation.js'
import qs from 'qs' import * as qs from 'qs-esm'
import { isAdminAuthRoute, isAdminRoute } from './shared.js' import { isAdminAuthRoute, isAdminRoute } from './shared.js'

View File

@@ -5,7 +5,7 @@ import { initI18n } from '@payloadcms/translations'
import { findLocaleFromCode } from '@payloadcms/ui/shared' import { findLocaleFromCode } from '@payloadcms/ui/shared'
import { headers as getHeaders } from 'next/headers.js' import { headers as getHeaders } from 'next/headers.js'
import { createLocalReq, isEntityHidden, parseCookies } from 'payload' import { createLocalReq, isEntityHidden, parseCookies } from 'payload'
import qs from 'qs' import * as qs from 'qs-esm'
import type { Args } from './types.js' import type { Args } from './types.js'

View File

@@ -3,7 +3,7 @@ import type { Icon } from 'next/dist/lib/metadata/types/metadata-types.js'
import type { MetaConfig } from 'payload' import type { MetaConfig } from 'payload'
import { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets' import { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'
import qs from 'qs' import * as qs from 'qs-esm'
const defaultOpenGraph = { const defaultOpenGraph = {
description: description:

View File

@@ -9,7 +9,7 @@ import {
useTranslation, useTranslation,
} from '@payloadcms/ui' } from '@payloadcms/ui'
import { formatDate } from '@payloadcms/ui/shared' import { formatDate } from '@payloadcms/ui/shared'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { useCallback, useEffect, useState } from 'react' import React, { useCallback, useEffect, useState } from 'react'
import type { Props } from './types.js' import type { Props } from './types.js'

View File

@@ -54,7 +54,7 @@ const resultClient = await esbuild
'*.scss', '*.scss',
'*.css', '*.css',
'*.svg', '*.svg',
'qs', 'qs-esm',
'@dnd-kit/core', '@dnd-kit/core',
'@payloadcms/graphql', '@payloadcms/graphql',
'@payloadcms/translations', '@payloadcms/translations',

View File

@@ -72,7 +72,7 @@
"payload": "workspace:*" "payload": "workspace:*"
}, },
"peerDependencies": { "peerDependencies": {
"@faceless-ui/modal": "3.0.0-beta.0", "@faceless-ui/modal": "3.0.0-beta.2",
"@faceless-ui/scroll-info": "2.0.0-beta.0", "@faceless-ui/scroll-info": "2.0.0-beta.0",
"@lexical/headless": "0.16.1", "@lexical/headless": "0.16.1",
"@lexical/link": "0.16.1", "@lexical/link": "0.16.1",

View File

@@ -113,7 +113,7 @@ function require(m) {
external: [ external: [
'*.scss', '*.scss',
'*.css', '*.css',
'qs', 'qs-esm',
'@dnd-kit/core', '@dnd-kit/core',
'@payloadcms/graphql', '@payloadcms/graphql',
'@payloadcms/translations', '@payloadcms/translations',
@@ -165,7 +165,7 @@ const resultShared = await esbuild
external: [ external: [
'*.scss', '*.scss',
'*.css', '*.css',
'qs', 'qs-esm',
'@dnd-kit/core', '@dnd-kit/core',
'@payloadcms/graphql', '@payloadcms/graphql',
'@payloadcms/translations', '@payloadcms/translations',

View File

@@ -73,7 +73,7 @@
"dependencies": { "dependencies": {
"@dnd-kit/core": "6.0.8", "@dnd-kit/core": "6.0.8",
"@dnd-kit/sortable": "7.0.2", "@dnd-kit/sortable": "7.0.2",
"@faceless-ui/modal": "3.0.0-beta.0", "@faceless-ui/modal": "3.0.0-beta.2",
"@faceless-ui/scroll-info": "2.0.0-beta.0", "@faceless-ui/scroll-info": "2.0.0-beta.0",
"@faceless-ui/window-info": "3.0.0-beta.0", "@faceless-ui/window-info": "3.0.0-beta.0",
"@monaco-editor/react": "4.5.1", "@monaco-editor/react": "4.5.1",
@@ -84,7 +84,7 @@
"dequal": "2.0.3", "dequal": "2.0.3",
"md5": "2.3.0", "md5": "2.3.0",
"object-to-formdata": "4.5.1", "object-to-formdata": "4.5.1",
"qs": "6.12.1", "qs-esm": "7.0.2",
"react-animate-height": "2.1.2", "react-animate-height": "2.1.2",
"react-datepicker": "6.9.0", "react-datepicker": "6.9.0",
"react-image-crop": "10.1.8", "react-image-crop": "10.1.8",
@@ -103,7 +103,6 @@
"@hyrious/esbuild-plugin-commonjs": "^0.2.4", "@hyrious/esbuild-plugin-commonjs": "^0.2.4",
"@payloadcms/eslint-config": "workspace:*", "@payloadcms/eslint-config": "workspace:*",
"@types/body-scroll-lock": "^3.1.0", "@types/body-scroll-lock": "^3.1.0",
"@types/qs": "6.9.7",
"@types/react": "npm:types-react@19.0.0-beta.2", "@types/react": "npm:types-react@19.0.0-beta.2",
"@types/react-datepicker": "6.2.0", "@types/react-datepicker": "6.2.0",
"@types/react-dom": "npm:types-react-dom@19.0.0-beta.2", "@types/react-dom": "npm:types-react-dom@19.0.0-beta.2",

View File

@@ -1,7 +1,7 @@
'use client' 'use client'
import { useModal } from '@faceless-ui/modal' import { useModal } from '@faceless-ui/modal'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { useCallback, useEffect, useState } from 'react' import React, { useCallback, useEffect, useState } from 'react'
import { toast } from 'sonner' import { toast } from 'sonner'

View File

@@ -6,7 +6,7 @@ import { getTranslation } from '@payloadcms/translations'
import { usePathname, useRouter } from 'next/navigation.js' import { usePathname, useRouter } from 'next/navigation.js'
import { sortableFieldTypes } from 'payload' import { sortableFieldTypes } from 'payload'
import { fieldAffectsData } from 'payload/shared' import { fieldAffectsData } from 'payload/shared'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { useEffect, useState } from 'react' import React, { useEffect, useState } from 'react'
export type SortComplexProps = { export type SortComplexProps = {

View File

@@ -1,7 +1,7 @@
'use client' 'use client'
import type { TypeWithID } from 'payload' import type { TypeWithID } from 'payload'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { createContext, useCallback, useContext, useEffect, useReducer, useRef } from 'react' import React, { createContext, useCallback, useContext, useEffect, useReducer, useRef } from 'react'
import { useDebounce } from '../../../hooks/useDebounce.js' import { useDebounce } from '../../../hooks/useDebounce.js'

View File

@@ -1,7 +1,7 @@
'use client' 'use client'
import type { PaginatedDocs, Where } from 'payload' import type { PaginatedDocs, Where } from 'payload'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { useCallback, useEffect, useReducer, useState } from 'react' import React, { useCallback, useEffect, useReducer, useState } from 'react'
import type { Option } from '../../../ReactSelect/types.js' import type { Option } from '../../../ReactSelect/types.js'

View File

@@ -2,7 +2,7 @@
import type { PaginatedDocs, Where } from 'payload' import type { PaginatedDocs, Where } from 'payload'
import { wordBoundariesRegex } from 'payload/shared' import { wordBoundariesRegex } from 'payload/shared'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { useCallback, useEffect, useReducer, useRef, useState } from 'react' import React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'
import type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js' import type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'

View File

@@ -11,7 +11,7 @@ import {
reduceFieldsToValues, reduceFieldsToValues,
wait, wait,
} from 'payload/shared' } from 'payload/shared'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { useCallback, useEffect, useReducer, useRef, useState } from 'react' import React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'
import { toast } from 'sonner' import { toast } from 'sonner'

View File

@@ -1,5 +1,5 @@
'use client' 'use client'
import qs from 'qs' import * as qs from 'qs-esm'
import { useEffect, useRef, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { useLocale } from '../providers/Locale/index.js' import { useLocale } from '../providers/Locale/index.js'

View File

@@ -3,7 +3,7 @@ import type { ClientUser, MeOperationResult, Permissions } from 'payload'
import { useModal } from '@faceless-ui/modal' import { useModal } from '@faceless-ui/modal'
import { usePathname, useRouter } from 'next/navigation.js' import { usePathname, useRouter } from 'next/navigation.js'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { createContext, useCallback, useContext, useEffect, useState } from 'react' import React, { createContext, useCallback, useContext, useEffect, useState } from 'react'
import { toast } from 'sonner' import { toast } from 'sonner'

View File

@@ -13,7 +13,7 @@ import type {
import { notFound } from 'next/navigation.js' import { notFound } from 'next/navigation.js'
import { reduceFieldsToValues } from 'payload/shared' import { reduceFieldsToValues } from 'payload/shared'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react' import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'
import type { DocumentInfoContext, DocumentInfoProps } from './types.js' import type { DocumentInfoContext, DocumentInfoProps } from './types.js'

View File

@@ -3,7 +3,7 @@ import type { PaginatedDocs, Where } from 'payload'
import { useRouter } from 'next/navigation.js' import { useRouter } from 'next/navigation.js'
import { isNumber } from 'payload/shared' import { isNumber } from 'payload/shared'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { createContext, useContext } from 'react' import React, { createContext, useContext } from 'react'
import type { Column } from '../../elements/Table/index.js' import type { Column } from '../../elements/Table/index.js'

View File

@@ -1,6 +1,6 @@
'use client' 'use client'
import { useSearchParams as useNextSearchParams } from 'next/navigation.js' import { useSearchParams as useNextSearchParams } from 'next/navigation.js'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { createContext, useContext } from 'react' import React, { createContext, useContext } from 'react'
export type SearchParamsContext = { export type SearchParamsContext = {

View File

@@ -1,7 +1,7 @@
'use client' 'use client'
import type { Where } from 'payload' import type { Where } from 'payload'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react' import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'
import { useLocale } from '../Locale/index.js' import { useLocale } from '../Locale/index.js'

View File

@@ -1,4 +1,4 @@
import qs from 'qs' import * as qs from 'qs-esm'
type GetOptions = RequestInit & { type GetOptions = RequestInit & {
params?: Record<string, unknown> params?: Record<string, unknown>

76
pnpm-lock.yaml generated
View File

@@ -65,9 +65,6 @@ importers:
'@types/prompts': '@types/prompts':
specifier: ^2.4.5 specifier: ^2.4.5
version: 2.4.9 version: 2.4.9
'@types/qs':
specifier: 6.9.14
version: 6.9.14
'@types/react': '@types/react':
specifier: npm:types-react@19.0.0-beta.2 specifier: npm:types-react@19.0.0-beta.2
version: /types-react@19.0.0-beta.2 version: /types-react@19.0.0-beta.2
@@ -618,9 +615,9 @@ importers:
path-to-regexp: path-to-regexp:
specifier: ^6.2.1 specifier: ^6.2.1
version: 6.2.2 version: 6.2.2
qs: qs-esm:
specifier: 6.12.1 specifier: 7.0.2
version: 6.12.1 version: 7.0.2
react-diff-viewer-continued: react-diff-viewer-continued:
specifier: 3.2.6 specifier: 3.2.6
version: 3.2.6(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522) version: 3.2.6(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
@@ -1166,8 +1163,8 @@ importers:
packages/richtext-lexical: packages/richtext-lexical:
dependencies: dependencies:
'@faceless-ui/modal': '@faceless-ui/modal':
specifier: 3.0.0-beta.0 specifier: 3.0.0-beta.2
version: 3.0.0-beta.0(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522) version: 3.0.0-beta.2(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
'@faceless-ui/scroll-info': '@faceless-ui/scroll-info':
specifier: 2.0.0-beta.0 specifier: 2.0.0-beta.0
version: 2.0.0-beta.0(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522) version: 2.0.0-beta.0(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
@@ -1423,8 +1420,8 @@ importers:
specifier: 7.0.2 specifier: 7.0.2
version: 7.0.2(@dnd-kit/core@6.0.8)(react@19.0.0-rc-f994737d14-20240522) version: 7.0.2(@dnd-kit/core@6.0.8)(react@19.0.0-rc-f994737d14-20240522)
'@faceless-ui/modal': '@faceless-ui/modal':
specifier: 3.0.0-beta.0 specifier: 3.0.0-beta.2
version: 3.0.0-beta.0(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522) version: 3.0.0-beta.2(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
'@faceless-ui/scroll-info': '@faceless-ui/scroll-info':
specifier: 2.0.0-beta.0 specifier: 2.0.0-beta.0
version: 2.0.0-beta.0(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522) version: 2.0.0-beta.0(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
@@ -1458,9 +1455,9 @@ importers:
object-to-formdata: object-to-formdata:
specifier: 4.5.1 specifier: 4.5.1
version: 4.5.1 version: 4.5.1
qs: qs-esm:
specifier: 6.12.1 specifier: 7.0.2
version: 6.12.1 version: 7.0.2
react: react:
specifier: ^19.0.0-rc-f994737d14-20240522 specifier: ^19.0.0-rc-f994737d14-20240522
version: 19.0.0-rc-f994737d14-20240522 version: 19.0.0-rc-f994737d14-20240522
@@ -1516,9 +1513,6 @@ importers:
'@types/body-scroll-lock': '@types/body-scroll-lock':
specifier: ^3.1.0 specifier: ^3.1.0
version: 3.1.2 version: 3.1.2
'@types/qs':
specifier: 6.9.7
version: 6.9.7
'@types/react': '@types/react':
specifier: npm:types-react@19.0.0-beta.2 specifier: npm:types-react@19.0.0-beta.2
version: /types-react@19.0.0-beta.2 version: /types-react@19.0.0-beta.2
@@ -1705,9 +1699,9 @@ importers:
payload: payload:
specifier: workspace:* specifier: workspace:*
version: link:../packages/payload version: link:../packages/payload
qs: qs-esm:
specifier: 6.12.1 specifier: 7.0.2
version: 6.12.1 version: 7.0.2
server-only: server-only:
specifier: ^0.0.1 specifier: ^0.0.1
version: 0.0.1 version: 0.0.1
@@ -5117,15 +5111,14 @@ packages:
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
/@faceless-ui/modal@3.0.0-beta.0(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522): /@faceless-ui/modal@3.0.0-beta.2(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522):
resolution: {integrity: sha512-gZboS0pLMO4THTqAHLmZuxLOE2KyYMN9QOUikd25WSrwPOqdtcgEiRlps/RcOivHA+sowtb1IBitiIWJ0L5Eow==} resolution: {integrity: sha512-UmXvz7Iw3KMO4Pm3llZczU4uc5pPQDb6rdqwoBvYDFgWvkraOAHKx0HxSZgwqQvqOhn8joEFBfFp6/Do2562ow==}
peerDependencies: peerDependencies:
react: ^19.0.0-rc-f994737d14-20240522 react: ^19.0.0-rc-f994737d14-20240522
react-dom: ^19.0.0-rc-f994737d14-20240522 react-dom: ^19.0.0-rc-f994737d14-20240522
dependencies: dependencies:
body-scroll-lock: 3.1.5 body-scroll-lock: 4.0.0-beta.0
focus-trap: 6.9.4 focus-trap: 7.5.4
qs: 6.12.1
react: 19.0.0-rc-f994737d14-20240522 react: 19.0.0-rc-f994737d14-20240522
react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522)
react-transition-group: 4.4.5(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522) react-transition-group: 4.4.5(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
@@ -7305,10 +7298,6 @@ packages:
resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==}
dev: true dev: true
/@types/qs@6.9.7:
resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==}
dev: true
/@types/range-parser@1.2.7: /@types/range-parser@1.2.7:
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
dev: true dev: true
@@ -8422,10 +8411,6 @@ packages:
- supports-color - supports-color
dev: false dev: false
/body-scroll-lock@3.1.5:
resolution: {integrity: sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg==}
dev: false
/body-scroll-lock@4.0.0-beta.0: /body-scroll-lock@4.0.0-beta.0:
resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==}
dev: false dev: false
@@ -8617,6 +8602,7 @@ packages:
function-bind: 1.1.2 function-bind: 1.1.2
get-intrinsic: 1.2.4 get-intrinsic: 1.2.4
set-function-length: 1.2.2 set-function-length: 1.2.2
dev: false
/call-me-maybe@1.0.2: /call-me-maybe@1.0.2:
resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
@@ -9545,6 +9531,7 @@ packages:
es-define-property: 1.0.0 es-define-property: 1.0.0
es-errors: 1.3.0 es-errors: 1.3.0
gopd: 1.0.1 gopd: 1.0.1
dev: false
/define-lazy-prop@3.0.0: /define-lazy-prop@3.0.0:
resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
@@ -9993,10 +9980,12 @@ packages:
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
get-intrinsic: 1.2.4 get-intrinsic: 1.2.4
dev: false
/es-errors@1.3.0: /es-errors@1.3.0:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dev: false
/es-get-iterator@1.1.3: /es-get-iterator@1.1.3:
resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
@@ -10968,10 +10957,10 @@ packages:
/flatted@3.3.1: /flatted@3.3.1:
resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
/focus-trap@6.9.4: /focus-trap@7.5.4:
resolution: {integrity: sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw==} resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==}
dependencies: dependencies:
tabbable: 5.3.3 tabbable: 6.2.0
dev: false dev: false
/follow-redirects@1.15.6(debug@4.3.4): /follow-redirects@1.15.6(debug@4.3.4):
@@ -11155,6 +11144,7 @@ packages:
has-proto: 1.0.3 has-proto: 1.0.3
has-symbols: 1.0.3 has-symbols: 1.0.3
hasown: 2.0.2 hasown: 2.0.2
dev: false
/get-package-type@0.1.0: /get-package-type@0.1.0:
resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
@@ -11382,6 +11372,7 @@ packages:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies: dependencies:
get-intrinsic: 1.2.4 get-intrinsic: 1.2.4
dev: false
/got@11.8.6: /got@11.8.6:
resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==}
@@ -11478,14 +11469,17 @@ packages:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies: dependencies:
es-define-property: 1.0.0 es-define-property: 1.0.0
dev: false
/has-proto@1.0.3: /has-proto@1.0.3:
resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dev: false
/has-symbols@1.0.3: /has-symbols@1.0.3:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dev: false
/has-tostringtag@1.0.2: /has-tostringtag@1.0.2:
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
@@ -13768,6 +13762,7 @@ packages:
/object-inspect@1.13.1: /object-inspect@1.13.1:
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
dev: false
/object-is@1.1.6: /object-is@1.1.6:
resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
@@ -15188,6 +15183,10 @@ packages:
/pure-rand@6.1.0: /pure-rand@6.1.0:
resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
/qs-esm@7.0.2:
resolution: {integrity: sha512-D8NAthKSD7SGn748v+GLaaO6k08Mvpoqroa35PqIQC4gtUa8/Pb/k+r0m0NnGBVbHDP1gKZ2nVywqfMisRhV5A==}
engines: {node: '>=18'}
/qs@6.11.0: /qs@6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
engines: {node: '>=0.6'} engines: {node: '>=0.6'}
@@ -15200,6 +15199,7 @@ packages:
engines: {node: '>=0.6'} engines: {node: '>=0.6'}
dependencies: dependencies:
side-channel: 1.0.6 side-channel: 1.0.6
dev: false
/querystringify@2.2.0: /querystringify@2.2.0:
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
@@ -16137,6 +16137,7 @@ packages:
get-intrinsic: 1.2.4 get-intrinsic: 1.2.4
gopd: 1.0.1 gopd: 1.0.1
has-property-descriptors: 1.0.2 has-property-descriptors: 1.0.2
dev: false
/set-function-name@2.0.2: /set-function-name@2.0.2:
resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
@@ -16244,6 +16245,7 @@ packages:
es-errors: 1.3.0 es-errors: 1.3.0
get-intrinsic: 1.2.4 get-intrinsic: 1.2.4
object-inspect: 1.13.1 object-inspect: 1.13.1
dev: false
/sift@16.0.1: /sift@16.0.1:
resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==} resolution: {integrity: sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==}
@@ -16808,10 +16810,6 @@ packages:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
dev: true dev: true
/tabbable@5.3.3:
resolution: {integrity: sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==}
dev: false
/tabbable@6.2.0: /tabbable@6.2.0:
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}

View File

@@ -3,7 +3,7 @@ import type { Page } from '@playwright/test'
import { expect, test } from '@playwright/test' import { expect, test } from '@playwright/test'
import { mapAsync } from 'payload' import { mapAsync } from 'payload'
import { wait } from 'payload/shared' import { wait } from 'payload/shared'
import qs from 'qs' import * as qs from 'qs-esm'
import type { Config, Geo, Post } from '../../payload-types.js' import type { Config, Geo, Post } from '../../payload-types.js'

View File

@@ -1,4 +1,4 @@
import type { SanitizedConfig, Config } from 'payload' import type { Config, SanitizedConfig } from 'payload'
import { mongooseAdapter } from '@payloadcms/db-mongodb' import { mongooseAdapter } from '@payloadcms/db-mongodb'
import { postgresAdapter } from '@payloadcms/db-postgres' import { postgresAdapter } from '@payloadcms/db-postgres'
@@ -163,12 +163,6 @@ export async function buildConfigWithDefaults(
...testConfig, ...testConfig,
typescript: {
declare: {
ignoreTSError: true,
},
...testConfig?.typescript,
},
i18n: { i18n: {
supportedLanguages: { supportedLanguages: {
de, de,
@@ -177,6 +171,12 @@ export async function buildConfigWithDefaults(
}, },
...(testConfig?.i18n || {}), ...(testConfig?.i18n || {}),
}, },
typescript: {
declare: {
ignoreTSError: true,
},
...testConfig?.typescript,
},
} }
config.admin = { config.admin = {

View File

@@ -1,5 +1,5 @@
import type { SanitizedConfig, Where } from 'payload' import type { SanitizedConfig, Where } from 'payload'
import type { ParsedQs } from 'qs' import type { ParsedQs } from 'qs-esm'
import { import {
REST_DELETE as createDELETE, REST_DELETE as createDELETE,
@@ -8,7 +8,7 @@ import {
REST_PATCH as createPATCH, REST_PATCH as createPATCH,
REST_POST as createPOST, REST_POST as createPOST,
} from '@payloadcms/next/routes' } from '@payloadcms/next/routes'
import qs from 'qs' import * as qs from 'qs-esm'
import { devUser } from '../credentials.js' import { devUser } from '../credentials.js'

View File

@@ -3,7 +3,7 @@ import type { Where } from 'payload'
import type { Config } from 'payload' import type { Config } from 'payload'
import type { PaginatedDocs } from 'payload' import type { PaginatedDocs } from 'payload'
import qs from 'qs' import * as qs from 'qs-esm'
import { devUser } from '../credentials.js' import { devUser } from '../credentials.js'

View File

@@ -1,6 +1,6 @@
'use client' 'use client'
import qs from 'qs' import * as qs from 'qs-esm'
import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react' import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'
import type { Post } from '../../../../../payload-types.js' import type { Post } from '../../../../../payload-types.js'

View File

@@ -58,7 +58,7 @@
"jwt-decode": "4.0.0", "jwt-decode": "4.0.0",
"lexical": "0.15.0", "lexical": "0.15.0",
"payload": "workspace:*", "payload": "workspace:*",
"qs": "6.12.1", "qs-esm": "7.0.2",
"server-only": "^0.0.1", "server-only": "^0.0.1",
"slate": "0.91.4", "slate": "0.91.4",
"tempy": "^1.0.1", "tempy": "^1.0.1",