diff --git a/package.json b/package.json index 318b868a2..344f7cf5e 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "clean:cache": "rimraf node_modules/.cache && rimraf packages/payload/node_modules/.cache && rimraf .next", "clean:build": "find . \\( -type d \\( -name dist -o -name .cache -o -name .next -o -name .turbo \\) -o -type f -name tsconfig.tsbuildinfo \\) -not -path '*/node_modules/*' -exec rm -rf {} +", "clean:all": "find . \\( -type d \\( -name node_modules -o -name dist -o -name .cache -o -name .next -o -name .turbo \\) -o -type f -name tsconfig.tsbuildinfo \\) -exec rm -rf {} +", - "dev": "cross-env NODE_OPTIONS=--no-deprecation tsx ./test/dev.ts", + "dev": "cross-env NODE_OPTIONS=--no-deprecation node ./test/dev.js", "devsafe": "rimraf .next && pnpm dev", "dev:generate-graphql-schema": "cross-env NODE_OPTIONS=--no-deprecation tsx ./test/generateGraphQLSchema.ts", "dev:generate-types": "cross-env NODE_OPTIONS=--no-deprecation tsx ./test/generateTypes.ts", diff --git a/packages/live-preview/src/handleMessage.d.ts b/packages/live-preview/src/handleMessage.d.ts new file mode 100644 index 000000000..85c68a0d6 --- /dev/null +++ b/packages/live-preview/src/handleMessage.d.ts @@ -0,0 +1,8 @@ +export declare const handleMessage: (args: { + apiRoute?: string + depth?: number + event: MessageEvent + initialData: T + serverURL: string +}) => Promise +//# sourceMappingURL=handleMessage.d.ts.map diff --git a/packages/live-preview/src/handleMessage.d.ts.map b/packages/live-preview/src/handleMessage.d.ts.map new file mode 100644 index 000000000..b9436b60f --- /dev/null +++ b/packages/live-preview/src/handleMessage.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"handleMessage.d.ts","sourceRoot":"","sources":["handleMessage.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,aAAa;eACb,MAAM;YACT,MAAM;WACP,YAAY;;eAER,MAAM;gBAyClB,CAAA"} \ No newline at end of file diff --git a/packages/live-preview/src/index.d.ts b/packages/live-preview/src/index.d.ts new file mode 100644 index 000000000..28d7623a7 --- /dev/null +++ b/packages/live-preview/src/index.d.ts @@ -0,0 +1,6 @@ +export { handleMessage } from './handleMessage.js' +export { mergeData } from './mergeData.js' +export { ready } from './ready.js' +export { subscribe } from './subscribe.js' +export { unsubscribe } from './unsubscribe.js' +//# sourceMappingURL=index.d.ts.map diff --git a/packages/live-preview/src/index.d.ts.map b/packages/live-preview/src/index.d.ts.map new file mode 100644 index 000000000..9040a8fb2 --- /dev/null +++ b/packages/live-preview/src/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"} \ No newline at end of file diff --git a/packages/live-preview/src/mergeData.d.ts b/packages/live-preview/src/mergeData.d.ts new file mode 100644 index 000000000..881b9be9f --- /dev/null +++ b/packages/live-preview/src/mergeData.d.ts @@ -0,0 +1,26 @@ +import type { fieldSchemaToJSON } from 'payload/utilities' +import type { UpdatedDocument } from './types.js' +export declare const mergeData: (args: { + apiRoute?: string + collectionPopulationRequestHandler?: ({ + apiPath, + endpoint, + serverURL, + }: { + apiPath: string + endpoint: string + serverURL: string + }) => Promise + depth?: number + externallyUpdatedRelationship?: UpdatedDocument + fieldSchema: ReturnType + incomingData: Partial + initialData: T + returnNumberOfRequests?: boolean + serverURL: string +}) => Promise< + T & { + _numberOfRequests?: number + } +> +//# sourceMappingURL=mergeData.d.ts.map diff --git a/packages/live-preview/src/mergeData.d.ts.map b/packages/live-preview/src/mergeData.d.ts.map new file mode 100644 index 000000000..16aba4761 --- /dev/null +++ b/packages/live-preview/src/mergeData.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeData.d.ts","sourceRoot":"","sources":["mergeData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAA2B,eAAe,EAAE,MAAM,YAAY,CAAA;AAc1E,eAAO,MAAM,SAAS;eACT,MAAM;;iBAMN,MAAM;kBACL,MAAM;mBACL,MAAM;UACb,QAAQ,QAAQ,CAAC;YACf,MAAM;oCACkB,eAAe;iBAClC,WAAW,wBAAwB,CAAC;;;6BAGxB,OAAO;eACrB,MAAM;;wBAGK,MAAM;EA6D7B,CAAA"} \ No newline at end of file diff --git a/packages/live-preview/src/subscribe.d.ts b/packages/live-preview/src/subscribe.d.ts new file mode 100644 index 000000000..b4f207ce8 --- /dev/null +++ b/packages/live-preview/src/subscribe.d.ts @@ -0,0 +1,8 @@ +export declare const subscribe: (args: { + apiRoute?: string + callback: (data: T) => void + depth?: number + initialData: T + serverURL: string +}) => (event: MessageEvent) => void +//# sourceMappingURL=subscribe.d.ts.map diff --git a/packages/live-preview/src/subscribe.d.ts.map b/packages/live-preview/src/subscribe.d.ts.map new file mode 100644 index 000000000..835927e2c --- /dev/null +++ b/packages/live-preview/src/subscribe.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["subscribe.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;eACT,MAAM;2BACM,IAAI;YACnB,MAAM;;eAEH,MAAM;cACN,YAAY,KAAK,IAa7B,CAAA"} \ No newline at end of file diff --git a/packages/live-preview/src/traverseFields.d.ts b/packages/live-preview/src/traverseFields.d.ts new file mode 100644 index 000000000..7eca67d89 --- /dev/null +++ b/packages/live-preview/src/traverseFields.d.ts @@ -0,0 +1,10 @@ +import type { fieldSchemaToJSON } from 'payload/utilities' +import type { PopulationsByCollection, UpdatedDocument } from './types.js' +export declare const traverseFields: (args: { + externallyUpdatedRelationship?: UpdatedDocument + fieldSchema: ReturnType + incomingData: T + populationsByCollection: PopulationsByCollection + result: T +}) => void +//# sourceMappingURL=traverseFields.d.ts.map diff --git a/packages/live-preview/src/traverseFields.d.ts.map b/packages/live-preview/src/traverseFields.d.ts.map new file mode 100644 index 000000000..772a3f880 --- /dev/null +++ b/packages/live-preview/src/traverseFields.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAI1E,eAAO,MAAM,cAAc;oCACO,eAAe;iBAClC,WAAW,wBAAwB,CAAC;;6BAExB,uBAAuB;;MAE9C,IA4QH,CAAA"} \ No newline at end of file diff --git a/packages/next/src/elements/LeaveWithoutSaving/index.tsx b/packages/next/src/elements/LeaveWithoutSaving/index.tsx index 8ce6ceee0..e5331b277 100644 --- a/packages/next/src/elements/LeaveWithoutSaving/index.tsx +++ b/packages/next/src/elements/LeaveWithoutSaving/index.tsx @@ -1,7 +1,7 @@ 'use client' -import { Modal, useModal } from '@payloadcms/ui' -import { Button } from '@payloadcms/ui/elements' +import { Button, Modal } from '@payloadcms/ui/elements' import { useFormModified } from '@payloadcms/ui/forms' +import { useModal } from '@payloadcms/ui/hooks' import { useAuth } from '@payloadcms/ui/providers' import { useTranslation } from '@payloadcms/ui/providers' import React, { useCallback, useEffect } from 'react' diff --git a/packages/next/src/exports/utilities.ts b/packages/next/src/exports/utilities.ts new file mode 100644 index 000000000..da58ed2d5 --- /dev/null +++ b/packages/next/src/exports/utilities.ts @@ -0,0 +1 @@ +export { getPayloadHMR } from '../utilities/getPayloadHMR.js' diff --git a/packages/next/src/layouts/Root/index.tsx b/packages/next/src/layouts/Root/index.tsx index 39abe6dc2..116212da2 100644 --- a/packages/next/src/layouts/Root/index.tsx +++ b/packages/next/src/layouts/Root/index.tsx @@ -1,8 +1,9 @@ import type { SanitizedConfig } from 'payload/types' import { translations } from '@payloadcms/translations/client' -import { RootProvider, buildComponentMap } from '@payloadcms/ui' +import { RootProvider } from '@payloadcms/ui/providers' import '@payloadcms/ui/scss/app.scss' +import { buildComponentMap } from '@payloadcms/ui/utilities' import { headers as getHeaders, cookies as nextCookies } from 'next/headers.js' import { parseCookies } from 'payload/auth' import { createClientConfig } from 'payload/config' diff --git a/packages/next/src/routes/rest/buildFormState.ts b/packages/next/src/routes/rest/buildFormState.ts index 7433395e6..4142e1be2 100644 --- a/packages/next/src/routes/rest/buildFormState.ts +++ b/packages/next/src/routes/rest/buildFormState.ts @@ -1,7 +1,9 @@ -import type { BuildFormStateArgs, FieldSchemaMap } from '@payloadcms/ui' +import type { BuildFormStateArgs } from '@payloadcms/ui/form-utilities' +import type { FieldSchemaMap } from '@payloadcms/ui/utilities' import type { Field, PayloadRequest, SanitizedConfig } from 'payload/types' -import { buildFieldSchemaMap, buildStateFromSchema, reduceFieldsToValues } from '@payloadcms/ui' +import { buildStateFromSchema, reduceFieldsToValues } from '@payloadcms/ui/form-utilities' +import { buildFieldSchemaMap } from '@payloadcms/ui/utilities' import httpStatus from 'http-status' let cached = global._payload_fieldSchemaMap diff --git a/packages/next/src/utilities/initPage.ts b/packages/next/src/utilities/initPage.ts index 940000bdd..1957b90e1 100644 --- a/packages/next/src/utilities/initPage.ts +++ b/packages/next/src/utilities/initPage.ts @@ -8,7 +8,7 @@ import type { import { initI18n } from '@payloadcms/translations' import { translations } from '@payloadcms/translations/client' -import { findLocaleFromCode } from '@payloadcms/ui' +import { findLocaleFromCode } from '@payloadcms/ui/utilities' import { headers as getHeaders } from 'next/headers.js' import { notFound, redirect } from 'next/navigation.js' import { createLocalReq } from 'payload/utilities' diff --git a/packages/next/src/views/API/index.client.tsx b/packages/next/src/views/API/index.client.tsx index e88dcd437..5ae500bfb 100644 --- a/packages/next/src/views/API/index.client.tsx +++ b/packages/next/src/views/API/index.client.tsx @@ -1,20 +1,15 @@ 'use client' +import { CopyToClipboard, Gutter, SetViewActions } from '@payloadcms/ui/elements' +import { Checkbox, Form, Number as NumberInput, Select } from '@payloadcms/ui/forms' +import { MinimizeMaximize } from '@payloadcms/ui/icons' import { - Checkbox, - CopyToClipboard, - Form, - Gutter, - MinimizeMaximize, - Number as NumberInput, - Select, - SetViewActions, useComponentMap, useConfig, useDocumentInfo, useLocale, useTranslation, -} from '@payloadcms/ui' +} from '@payloadcms/ui/providers' import { useSearchParams } from 'next/navigation.js' import qs from 'qs' import * as React from 'react' diff --git a/packages/next/src/views/Account/Settings/index.tsx b/packages/next/src/views/Account/Settings/index.tsx index 5a1d8812b..88502037d 100644 --- a/packages/next/src/views/Account/Settings/index.tsx +++ b/packages/next/src/views/Account/Settings/index.tsx @@ -1,5 +1,6 @@ 'use client' -import { Label, ReactSelect } from '@payloadcms/ui' +import { ReactSelect } from '@payloadcms/ui/elements' +import { Label } from '@payloadcms/ui/forms' import { useTranslation } from '@payloadcms/ui/providers' import React from 'react' diff --git a/packages/next/src/views/Account/ToggleTheme/index.tsx b/packages/next/src/views/Account/ToggleTheme/index.tsx index b6f38b250..400e95842 100644 --- a/packages/next/src/views/Account/ToggleTheme/index.tsx +++ b/packages/next/src/views/Account/ToggleTheme/index.tsx @@ -1,7 +1,9 @@ 'use client' -import type { OnChange, Theme } from '@payloadcms/ui' +import type { OnChange } from '@payloadcms/ui/forms' +import type { Theme } from '@payloadcms/ui/providers' -import { RadioGroupInput, useTheme, useTranslation } from '@payloadcms/ui' +import { RadioGroupInput } from '@payloadcms/ui/forms' +import { useTheme, useTranslation } from '@payloadcms/ui/providers' import React, { useCallback } from 'react' export const ToggleTheme: React.FC = () => { diff --git a/packages/next/src/views/Account/index.tsx b/packages/next/src/views/Account/index.tsx index 79e44b264..ba1c85644 100644 --- a/packages/next/src/views/Account/index.tsx +++ b/packages/next/src/views/Account/index.tsx @@ -1,16 +1,10 @@ import type { DocumentPreferences, ServerSideEditViewProps, TypeWithID } from 'payload/types' import type { AdminViewProps } from 'payload/types' -import { - DocumentHeader, - DocumentInfoProvider, - FormQueryParamsProvider, - HydrateClientUser, - RenderCustomComponent, - buildStateFromSchema, - formatDocTitle, - formatFields, -} from '@payloadcms/ui' +import { DocumentHeader, HydrateClientUser, RenderCustomComponent } from '@payloadcms/ui/elements' +import { buildStateFromSchema } from '@payloadcms/ui/form-utilities' +import { DocumentInfoProvider, FormQueryParamsProvider } from '@payloadcms/ui/providers' +import { formatDocTitle, formatFields } from '@payloadcms/ui/utilities' import { notFound } from 'next/navigation.js' import React from 'react' diff --git a/packages/payload/uploads.d.ts b/packages/payload/uploads.d.ts new file mode 100644 index 000000000..65a126c3f --- /dev/null +++ b/packages/payload/uploads.d.ts @@ -0,0 +1,2 @@ +export { default as getFileByPath } from './dist/uploads/getFileByPath.js' +//# sourceMappingURL=uploads.d.ts.map diff --git a/packages/payload/uploads.js b/packages/payload/uploads.js new file mode 100644 index 000000000..795f4aacc --- /dev/null +++ b/packages/payload/uploads.js @@ -0,0 +1,3 @@ +export { default as getFileByPath } from './dist/uploads/getFileByPath.js' + +//# sourceMappingURL=uploads.js.map diff --git a/packages/ui/src/exports/form-utilities.ts b/packages/ui/src/exports/form-utilities.ts new file mode 100644 index 000000000..6d4081b07 --- /dev/null +++ b/packages/ui/src/exports/form-utilities.ts @@ -0,0 +1,3 @@ +export { default as reduceFieldsToValues } from '../forms/Form/reduceFieldsToValues.js' +export { buildStateFromSchema } from '../forms/buildStateFromSchema/index.js' +export type { BuildFormStateArgs } from '../forms/buildStateFromSchema/index.js' diff --git a/packages/ui/src/exports/forms.ts b/packages/ui/src/exports/forms.ts index c64dd099c..a27f94b89 100644 --- a/packages/ui/src/exports/forms.ts +++ b/packages/ui/src/exports/forms.ts @@ -14,15 +14,13 @@ export { export { useFormModified } from '../forms/Form/context.js' export { createNestedFieldPath } from '../forms/Form/createNestedFieldPath.js' export { default as Form } from '../forms/Form/index.js' -export { default as reduceFieldsToValues } from '../forms/Form/reduceFieldsToValues.js' export type { Props as FormProps } from '../forms/Form/types.js' export { default as Label } from '../forms/Label/index.js' export { RenderFields } from '../forms/RenderFields/index.js' export { useRowLabel } from '../forms/RowLabel/Context/index.js' export { default as FormSubmit } from '../forms/Submit/index.js' export { default as Submit } from '../forms/Submit/index.js' -export { buildStateFromSchema } from '../forms/buildStateFromSchema/index.js' -export type { BuildFormStateArgs } from '../forms/buildStateFromSchema/index.js' + export type { ArrayFieldProps } from '../forms/fields/Array/types.js' export { default as SectionTitle } from '../forms/fields/Blocks/SectionTitle/index.js' export type { BlocksFieldProps } from '../forms/fields/Blocks/types.js' @@ -60,5 +58,3 @@ export { fieldBaseClass } from '../forms/fields/shared.js' export { useField } from '../forms/useField/index.js' export type { FieldType, Options } from '../forms/useField/types.js' export { withCondition } from '../forms/withCondition/index.js' -export { buildComponentMap } from '../utilities/buildComponentMap/index.js' -export type { ReducedBlock } from '../utilities/buildComponentMap/types.js' diff --git a/packages/ui/src/exports/index.ts b/packages/ui/src/exports/index.ts deleted file mode 100644 index 0acf83704..000000000 --- a/packages/ui/src/exports/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from './elements.js' -export * from './forms.js' -export * from './hooks.js' -export * from './providers.js' -export * from './utilities.js' -export * from './templates.js' -export * from './graphics.js' -export * from './icons.js' -export * from './types.js' diff --git a/packages/ui/src/exports/utilities.ts b/packages/ui/src/exports/utilities.ts index 49cadfeee..a3aaadff6 100644 --- a/packages/ui/src/exports/utilities.ts +++ b/packages/ui/src/exports/utilities.ts @@ -1,5 +1,7 @@ +export { buildComponentMap } from '../utilities/buildComponentMap/index.js' export { mapFields } from '../utilities/buildComponentMap/mapFields.js' export type { FieldMap, MappedField } from '../utilities/buildComponentMap/types.js' +export type { ReducedBlock } from '../utilities/buildComponentMap/types.js' export { buildFieldSchemaMap } from '../utilities/buildFieldSchemaMap/index.js' export type { FieldSchemaMap } from '../utilities/buildFieldSchemaMap/types.js' export { default as canUseDOM } from '../utilities/canUseDOM.js' diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts deleted file mode 100644 index 5da3f91f9..000000000 --- a/packages/ui/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './exports/index.js' diff --git a/test/dev.js b/test/dev.js index 8af524b9d..a87b5aaf1 100644 --- a/test/dev.js +++ b/test/dev.js @@ -24,8 +24,10 @@ process.env.PAYLOAD_DROP_DATABASE = 'true' const { afterTest, beforeTest } = await createTestHooks(testSuiteArg) await beforeTest() +const rootDir = resolve(_dirname, './') + // @ts-expect-error -await nextDev({ _: [resolve(_dirname, '..')], port: process.env.PORT || 3000 }) +await nextDev({ port: process.env.PORT || 3000, dirname: rootDir }, 'default', rootDir) // On cmd+c, clean up process.on('SIGINT', async () => { diff --git a/test/helpers/initPayloadE2E.ts b/test/helpers/initPayloadE2E.ts index 06efaa2b9..009da727d 100644 --- a/test/helpers/initPayloadE2E.ts +++ b/test/helpers/initPayloadE2E.ts @@ -1,12 +1,13 @@ import type { SanitizedConfig } from 'payload/config' +import { getPayloadHMR } from '@payloadcms/next/utilities' import { createServer } from 'http' import nextImport from 'next' +import path from 'path' import { type Payload } from 'payload' import { wait } from 'payload/utilities' import { parse } from 'url' -import { getPayloadHMR } from '../../packages/next/src/utilities/getPayloadHMR.js' import { startMemoryDB } from '../startMemoryDB.js' import { createTestHooks } from '../testHooks.js' @@ -39,7 +40,13 @@ export async function initPayloadE2E({ config, dirname }: Args): Promise const serverURL = `http://localhost:${port}` // @ts-expect-error - const app = nextImport({ dev: true, hostname: 'localhost', port }) + const app = nextImport({ + dev: true, + hostname: 'localhost', + port, + dir: path.resolve(dirname, '../'), + }) + const handle = app.getRequestHandler() let resolveServer diff --git a/test/tsconfig.json b/test/tsconfig.json index 67b704ce7..98aa0d5fb 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -49,8 +49,6 @@ ], "include": [ "./**/*.ts", - "../packages/**/*.ts", - "../packages/**/*.tsx", ".next/types/**/*.ts" ], "references": [] diff --git a/tsconfig.json b/tsconfig.json index f60454489..8350e3acf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -94,7 +94,7 @@ "./packages/graphql/src" ], "@payload-config": [ - "./test/auth/config.ts" + "./test/_community/config.ts" ] } },