@payloadcms/plugin-import-export 3.29.0-internal.3471e81 → 3.29.0-internal.9400be9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Preview/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,OAAO,yBA8FnB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Preview/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,OAAO,yBA+FnB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Table, useConfig, useField } from '@payloadcms/ui';
3
+ import { getTranslation } from '@payloadcms/translations';
4
+ import { Table, useConfig, useField, useTranslation } from '@payloadcms/ui';
4
5
  import { fieldAffectsData } from 'payload/shared';
5
6
  import * as qs from 'qs-esm';
6
7
  import React from 'react';
@@ -28,6 +29,7 @@ export const Preview = ()=>{
28
29
  const [dataToRender, setDataToRender] = React.useState([]);
29
30
  const [resultCount, setResultCount] = React.useState('');
30
31
  const [columns, setColumns] = React.useState([]);
32
+ const { i18n } = useTranslation();
31
33
  const collectionSlug = typeof collection === 'string' && collection;
32
34
  const collectionConfig = config.collections.find((collection)=>collection.slug === collectionSlug);
33
35
  React.useEffect(()=>{
@@ -68,7 +70,7 @@ export const Preview = ()=>{
68
70
  accessor: field.name || '',
69
71
  active: true,
70
72
  field: field,
71
- Heading: field?.label || field.name,
73
+ Heading: getTranslation(field?.label || field.name, i18n),
72
74
  renderedCells: data.docs.map((doc)=>{
73
75
  if (!field.name || !doc[field.name]) {
74
76
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Preview/index.tsx"],"sourcesContent":["'use client'\nimport type { Column } from '@payloadcms/ui'\nimport type { ClientField, FieldAffectingDataClient } from 'payload'\n\nimport { Table, useConfig, useField } from '@payloadcms/ui'\nimport { fieldAffectsData } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\n\nimport { useImportExport } from '../ImportExportProvider/index.js'\nimport './index.scss'\n\nconst baseClass = 'preview'\n\nexport const Preview = () => {\n const { collection } = useImportExport()\n const { config } = useConfig()\n const { value: where } = useField({ path: 'where' })\n const { value: limit } = useField<number>({ path: 'limit' })\n const { value: fields } = useField<string[]>({ path: 'fields' })\n const { value: sort } = useField({ path: 'sort' })\n const { value: draft } = useField({ path: 'draft' })\n const [dataToRender, setDataToRender] = React.useState<any[]>([])\n const [resultCount, setResultCount] = React.useState<any>('')\n const [columns, setColumns] = React.useState<Column[]>([])\n\n const collectionSlug = typeof collection === 'string' && collection\n const collectionConfig = config.collections.find(\n (collection) => collection.slug === collectionSlug,\n )\n\n React.useEffect(() => {\n const fetchData = async () => {\n if (!collectionSlug) {\n return\n }\n\n try {\n const whereQuery = qs.stringify(\n {\n depth: 0,\n draft,\n limit: limit > 10 ? 10 : limit,\n sort,\n where,\n },\n {\n addQueryPrefix: true,\n },\n )\n const response = await fetch(`/api/${collectionSlug}${whereQuery}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })\n\n if (response.ok) {\n const data = await response.json()\n setResultCount(limit && limit < data.totalDocs ? limit : data.totalDocs)\n // TODO: check if this data is in the correct format for the table\n\n const filteredFields = (collectionConfig?.fields?.filter((field) => {\n if (!fieldAffectsData(field)) {\n return false\n }\n if (fields?.length > 0) {\n return fields.includes(field.name)\n }\n return true\n }) ?? []) as FieldAffectingDataClient[]\n\n setColumns(\n filteredFields.map((field) => ({\n accessor: field.name || '',\n active: true,\n field: field as ClientField,\n Heading: field?.label || field.name,\n renderedCells: data.docs.map((doc: Record<string, unknown>) => {\n if (!field.name || !doc[field.name]) {\n return null\n }\n if (typeof doc[field.name] === 'object') {\n return JSON.stringify(doc[field.name])\n }\n return String(doc[field.name])\n }),\n })) as Column[],\n )\n setDataToRender(data.docs)\n }\n } catch (error) {\n console.error('Error fetching data:', error)\n }\n }\n\n void fetchData()\n }, [collectionConfig?.fields, collectionSlug, draft, fields, limit, sort, where])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n <h3>Preview</h3>\n {resultCount && <span>{resultCount} total documents</span>}\n </div>\n {dataToRender && <Table columns={columns} data={dataToRender} />}\n </div>\n )\n}\n"],"names":["Table","useConfig","useField","fieldAffectsData","qs","React","useImportExport","baseClass","Preview","collection","config","value","where","path","limit","fields","sort","draft","dataToRender","setDataToRender","useState","resultCount","setResultCount","columns","setColumns","collectionSlug","collectionConfig","collections","find","slug","useEffect","fetchData","whereQuery","stringify","depth","addQueryPrefix","response","fetch","headers","method","ok","data","json","totalDocs","filteredFields","filter","field","length","includes","name","map","accessor","active","Heading","label","renderedCells","docs","doc","JSON","String","error","console","div","className","h3","span"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Preview/index.tsx"],"sourcesContent":["'use client'\nimport type { Column } from '@payloadcms/ui'\nimport type { ClientField, FieldAffectingDataClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Table, useConfig, useField, useTranslation } from '@payloadcms/ui'\nimport { fieldAffectsData } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\n\nimport { useImportExport } from '../ImportExportProvider/index.js'\nimport './index.scss'\n\nconst baseClass = 'preview'\n\nexport const Preview = () => {\n const { collection } = useImportExport()\n const { config } = useConfig()\n const { value: where } = useField({ path: 'where' })\n const { value: limit } = useField<number>({ path: 'limit' })\n const { value: fields } = useField<string[]>({ path: 'fields' })\n const { value: sort } = useField({ path: 'sort' })\n const { value: draft } = useField({ path: 'draft' })\n const [dataToRender, setDataToRender] = React.useState<any[]>([])\n const [resultCount, setResultCount] = React.useState<any>('')\n const [columns, setColumns] = React.useState<Column[]>([])\n const { i18n } = useTranslation()\n\n const collectionSlug = typeof collection === 'string' && collection\n const collectionConfig = config.collections.find(\n (collection) => collection.slug === collectionSlug,\n )\n\n React.useEffect(() => {\n const fetchData = async () => {\n if (!collectionSlug) {\n return\n }\n\n try {\n const whereQuery = qs.stringify(\n {\n depth: 0,\n draft,\n limit: limit > 10 ? 10 : limit,\n sort,\n where,\n },\n {\n addQueryPrefix: true,\n },\n )\n const response = await fetch(`/api/${collectionSlug}${whereQuery}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })\n\n if (response.ok) {\n const data = await response.json()\n setResultCount(limit && limit < data.totalDocs ? limit : data.totalDocs)\n // TODO: check if this data is in the correct format for the table\n\n const filteredFields = (collectionConfig?.fields?.filter((field) => {\n if (!fieldAffectsData(field)) {\n return false\n }\n if (fields?.length > 0) {\n return fields.includes(field.name)\n }\n return true\n }) ?? []) as FieldAffectingDataClient[]\n\n setColumns(\n filteredFields.map((field) => ({\n accessor: field.name || '',\n active: true,\n field: field as ClientField,\n Heading: getTranslation(field?.label || (field.name as string), i18n),\n renderedCells: data.docs.map((doc: Record<string, unknown>) => {\n if (!field.name || !doc[field.name]) {\n return null\n }\n if (typeof doc[field.name] === 'object') {\n return JSON.stringify(doc[field.name])\n }\n return String(doc[field.name])\n }),\n })) as Column[],\n )\n setDataToRender(data.docs)\n }\n } catch (error) {\n console.error('Error fetching data:', error)\n }\n }\n\n void fetchData()\n }, [collectionConfig?.fields, collectionSlug, draft, fields, limit, sort, where])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n <h3>Preview</h3>\n {resultCount && <span>{resultCount} total documents</span>}\n </div>\n {dataToRender && <Table columns={columns} data={dataToRender} />}\n </div>\n )\n}\n"],"names":["getTranslation","Table","useConfig","useField","useTranslation","fieldAffectsData","qs","React","useImportExport","baseClass","Preview","collection","config","value","where","path","limit","fields","sort","draft","dataToRender","setDataToRender","useState","resultCount","setResultCount","columns","setColumns","i18n","collectionSlug","collectionConfig","collections","find","slug","useEffect","fetchData","whereQuery","stringify","depth","addQueryPrefix","response","fetch","headers","method","ok","data","json","totalDocs","filteredFields","filter","field","length","includes","name","map","accessor","active","Heading","label","renderedCells","docs","doc","JSON","String","error","console","div","className","h3","span"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { PayloadRequest, Sort, User, Where } from 'payload';
2
2
  type Export = {
3
3
  collectionSlug: string;
4
+ drafts?: 'no' | 'yes';
4
5
  exportsCollection: string;
5
6
  fields?: string[];
6
7
  format: 'csv' | 'json';
@@ -1 +1 @@
1
- {"version":3,"file":"createExport.d.ts","sourceRoot":"","sources":["../../src/export/createExport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAU/E,KAAK,MAAM,GAAG;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,eAAO,MAAM,YAAY,SAAgB,gBAAgB,kCAkHxD,CAAA"}
1
+ {"version":3,"file":"createExport.d.ts","sourceRoot":"","sources":["../../src/export/createExport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAU/E,KAAK,MAAM,GAAG;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,eAAO,MAAM,YAAY,SAAgB,gBAAgB,kCAoHxD,CAAA"}
@@ -5,7 +5,7 @@ import { flattenObject } from './flattenObject.js';
5
5
  import { getFilename } from './getFilename.js';
6
6
  import { getSelect } from './getSelect.js';
7
7
  export const createExport = async (args)=>{
8
- const { download, input: { id, name: nameArg, collectionSlug, exportsCollection, fields, format, locale: localeInput, sort, user, where }, req: { locale: localeArg, payload }, req } = args;
8
+ const { download, input: { id, name: nameArg, collectionSlug, drafts, exportsCollection, fields, format, locale: localeInput, sort, user, where }, req: { locale: localeArg, payload }, req } = args;
9
9
  const locale = localeInput ?? localeArg;
10
10
  const collectionConfig = payload.config.collections.find(({ slug })=>slug === collectionSlug);
11
11
  if (!collectionConfig) {
@@ -16,11 +16,12 @@ export const createExport = async (args)=>{
16
16
  const findArgs = {
17
17
  collection: collectionSlug,
18
18
  depth: 0,
19
+ draft: drafts === 'yes',
19
20
  limit: 100,
20
21
  locale,
21
22
  overrideAccess: false,
22
23
  page: 0,
23
- select: fields ? getSelect(fields) : undefined,
24
+ select: Array.isArray(fields) && fields.length > 0 ? getSelect(fields) : undefined,
24
25
  sort,
25
26
  user,
26
27
  where
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/export/createExport.ts"],"sourcesContent":["import type { PaginatedDocs, PayloadRequest, Sort, User, Where } from 'payload'\n\nimport { stringify } from 'csv-stringify/sync'\nimport { APIError } from 'payload'\nimport { Readable } from 'stream'\n\nimport { flattenObject } from './flattenObject.js'\nimport { getFilename } from './getFilename.js'\nimport { getSelect } from './getSelect.js'\n\ntype Export = {\n collectionSlug: string\n exportsCollection: string\n fields?: string[]\n format: 'csv' | 'json'\n globals?: string[]\n id: number | string\n locale?: string\n name: string\n slug: string\n sort: Sort\n user: string\n userCollection: string\n where?: Where\n}\n\nexport type CreateExportArgs = {\n /**\n * If true, stream the file instead of saving it\n */\n download?: boolean\n input: Export\n req: PayloadRequest\n user?: User\n}\n\nexport const createExport = async (args: CreateExportArgs) => {\n const {\n download,\n input: {\n id,\n name: nameArg,\n collectionSlug,\n exportsCollection,\n fields,\n format,\n locale: localeInput,\n sort,\n user,\n where,\n },\n req: { locale: localeArg, payload },\n req,\n } = args\n const locale = localeInput ?? localeArg\n const collectionConfig = payload.config.collections.find(({ slug }) => slug === collectionSlug)\n if (!collectionConfig) {\n throw new APIError(`Collection with slug ${collectionSlug} not found`)\n }\n\n const name = `${nameArg ?? `${getFilename()}-${collectionSlug}`}.${format}`\n const isCSV = format === 'csv'\n\n const findArgs = {\n collection: collectionSlug,\n depth: 0,\n limit: 100,\n locale,\n overrideAccess: false,\n page: 0,\n select: fields ? getSelect(fields) : undefined,\n sort,\n user,\n where,\n }\n\n let result: PaginatedDocs = { hasNextPage: true } as PaginatedDocs\n\n if (download) {\n const encoder = new TextEncoder()\n const stream = new Readable({\n async read() {\n let result = await payload.find(findArgs)\n let isFirstBatch = true\n\n while (result.docs.length > 0) {\n const csvInput = result.docs.map((doc) => flattenObject(doc))\n const csvString = stringify(csvInput, { header: isFirstBatch })\n this.push(encoder.encode(csvString))\n isFirstBatch = false\n\n if (!result.hasNextPage) {\n this.push(null) // End the stream\n break\n }\n\n findArgs.page += 1\n result = await payload.find(findArgs)\n }\n },\n })\n\n return new Response(stream as any, {\n headers: {\n 'Content-Disposition': `attachment; filename=\"${name}\"`,\n 'Content-Type': isCSV ? 'text/csv' : 'application/json',\n },\n })\n }\n\n const outputData: string[] = []\n let isFirstBatch = true\n\n while (result.hasNextPage) {\n findArgs.page += 1\n result = await payload.find(findArgs)\n\n if (isCSV) {\n const csvInput = result.docs.map((doc) => flattenObject(doc))\n outputData.push(stringify(csvInput, { header: isFirstBatch }))\n isFirstBatch = false\n } else {\n const jsonInput = result.docs.map((doc) => JSON.stringify(doc))\n outputData.push(jsonInput.join(',\\n'))\n }\n }\n\n const buffer = Buffer.from(format === 'json' ? `[${outputData.join(',')}]` : outputData.join(''))\n\n if (!id) {\n req.file = {\n name,\n data: buffer,\n mimetype: isCSV ? 'text/csv' : 'application/json',\n size: buffer.length,\n }\n } else {\n await req.payload.update({\n id,\n collection: exportsCollection,\n data: {},\n file: {\n name,\n data: buffer,\n mimetype: isCSV ? 'text/csv' : 'application/json',\n size: buffer.length,\n },\n user,\n })\n }\n}\n"],"names":["stringify","APIError","Readable","flattenObject","getFilename","getSelect","createExport","args","download","input","id","name","nameArg","collectionSlug","exportsCollection","fields","format","locale","localeInput","sort","user","where","req","localeArg","payload","collectionConfig","config","collections","find","slug","isCSV","findArgs","collection","depth","limit","overrideAccess","page","select","undefined","result","hasNextPage","encoder","TextEncoder","stream","read","isFirstBatch","docs","length","csvInput","map","doc","csvString","header","push","encode","Response","headers","outputData","jsonInput","JSON","join","buffer","Buffer","from","file","data","mimetype","size","update"],"mappings":"AAEA,SAASA,SAAS,QAAQ,qBAAoB;AAC9C,SAASC,QAAQ,QAAQ,UAAS;AAClC,SAASC,QAAQ,QAAQ,SAAQ;AAEjC,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,SAAS,QAAQ,iBAAgB;AA4B1C,OAAO,MAAMC,eAAe,OAAOC;IACjC,MAAM,EACJC,QAAQ,EACRC,OAAO,EACLC,EAAE,EACFC,MAAMC,OAAO,EACbC,cAAc,EACdC,iBAAiB,EACjBC,MAAM,EACNC,MAAM,EACNC,QAAQC,WAAW,EACnBC,IAAI,EACJC,IAAI,EACJC,KAAK,EACN,EACDC,KAAK,EAAEL,QAAQM,SAAS,EAAEC,OAAO,EAAE,EACnCF,GAAG,EACJ,GAAGf;IACJ,MAAMU,SAASC,eAAeK;IAC9B,MAAME,mBAAmBD,QAAQE,MAAM,CAACC,WAAW,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAAShB;IAChF,IAAI,CAACY,kBAAkB;QACrB,MAAM,IAAIxB,SAAS,CAAC,qBAAqB,EAAEY,eAAe,UAAU,CAAC;IACvE;IAEA,MAAMF,OAAO,GAAGC,WAAW,GAAGR,cAAc,CAAC,EAAES,gBAAgB,CAAC,CAAC,EAAEG,QAAQ;IAC3E,MAAMc,QAAQd,WAAW;IAEzB,MAAMe,WAAW;QACfC,YAAYnB;QACZoB,OAAO;QACPC,OAAO;QACPjB;QACAkB,gBAAgB;QAChBC,MAAM;QACNC,QAAQtB,SAASV,UAAUU,UAAUuB;QACrCnB;QACAC;QACAC;IACF;IAEA,IAAIkB,SAAwB;QAAEC,aAAa;IAAK;IAEhD,IAAIhC,UAAU;QACZ,MAAMiC,UAAU,IAAIC;QACpB,MAAMC,SAAS,IAAIzC,SAAS;YAC1B,MAAM0C;gBACJ,IAAIL,SAAS,MAAMf,QAAQI,IAAI,CAACG;gBAChC,IAAIc,eAAe;gBAEnB,MAAON,OAAOO,IAAI,CAACC,MAAM,GAAG,EAAG;oBAC7B,MAAMC,WAAWT,OAAOO,IAAI,CAACG,GAAG,CAAC,CAACC,MAAQ/C,cAAc+C;oBACxD,MAAMC,YAAYnD,UAAUgD,UAAU;wBAAEI,QAAQP;oBAAa;oBAC7D,IAAI,CAACQ,IAAI,CAACZ,QAAQa,MAAM,CAACH;oBACzBN,eAAe;oBAEf,IAAI,CAACN,OAAOC,WAAW,EAAE;wBACvB,IAAI,CAACa,IAAI,CAAC,MAAM,iBAAiB;;wBACjC;oBACF;oBAEAtB,SAASK,IAAI,IAAI;oBACjBG,SAAS,MAAMf,QAAQI,IAAI,CAACG;gBAC9B;YACF;QACF;QAEA,OAAO,IAAIwB,SAASZ,QAAe;YACjCa,SAAS;gBACP,uBAAuB,CAAC,sBAAsB,EAAE7C,KAAK,CAAC,CAAC;gBACvD,gBAAgBmB,QAAQ,aAAa;YACvC;QACF;IACF;IAEA,MAAM2B,aAAuB,EAAE;IAC/B,IAAIZ,eAAe;IAEnB,MAAON,OAAOC,WAAW,CAAE;QACzBT,SAASK,IAAI,IAAI;QACjBG,SAAS,MAAMf,QAAQI,IAAI,CAACG;QAE5B,IAAID,OAAO;YACT,MAAMkB,WAAWT,OAAOO,IAAI,CAACG,GAAG,CAAC,CAACC,MAAQ/C,cAAc+C;YACxDO,WAAWJ,IAAI,CAACrD,UAAUgD,UAAU;gBAAEI,QAAQP;YAAa;YAC3DA,eAAe;QACjB,OAAO;YACL,MAAMa,YAAYnB,OAAOO,IAAI,CAACG,GAAG,CAAC,CAACC,MAAQS,KAAK3D,SAAS,CAACkD;YAC1DO,WAAWJ,IAAI,CAACK,UAAUE,IAAI,CAAC;QACjC;IACF;IAEA,MAAMC,SAASC,OAAOC,IAAI,CAAC/C,WAAW,SAAS,CAAC,CAAC,EAAEyC,WAAWG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAGH,WAAWG,IAAI,CAAC;IAE7F,IAAI,CAAClD,IAAI;QACPY,IAAI0C,IAAI,GAAG;YACTrD;YACAsD,MAAMJ;YACNK,UAAUpC,QAAQ,aAAa;YAC/BqC,MAAMN,OAAOd,MAAM;QACrB;IACF,OAAO;QACL,MAAMzB,IAAIE,OAAO,CAAC4C,MAAM,CAAC;YACvB1D;YACAsB,YAAYlB;YACZmD,MAAM,CAAC;YACPD,MAAM;gBACJrD;gBACAsD,MAAMJ;gBACNK,UAAUpC,QAAQ,aAAa;gBAC/BqC,MAAMN,OAAOd,MAAM;YACrB;YACA3B;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/export/createExport.ts"],"sourcesContent":["import type { PaginatedDocs, PayloadRequest, Sort, User, Where } from 'payload'\n\nimport { stringify } from 'csv-stringify/sync'\nimport { APIError } from 'payload'\nimport { Readable } from 'stream'\n\nimport { flattenObject } from './flattenObject.js'\nimport { getFilename } from './getFilename.js'\nimport { getSelect } from './getSelect.js'\n\ntype Export = {\n collectionSlug: string\n drafts?: 'no' | 'yes'\n exportsCollection: string\n fields?: string[]\n format: 'csv' | 'json'\n globals?: string[]\n id: number | string\n locale?: string\n name: string\n slug: string\n sort: Sort\n user: string\n userCollection: string\n where?: Where\n}\n\nexport type CreateExportArgs = {\n /**\n * If true, stream the file instead of saving it\n */\n download?: boolean\n input: Export\n req: PayloadRequest\n user?: User\n}\n\nexport const createExport = async (args: CreateExportArgs) => {\n const {\n download,\n input: {\n id,\n name: nameArg,\n collectionSlug,\n drafts,\n exportsCollection,\n fields,\n format,\n locale: localeInput,\n sort,\n user,\n where,\n },\n req: { locale: localeArg, payload },\n req,\n } = args\n const locale = localeInput ?? localeArg\n const collectionConfig = payload.config.collections.find(({ slug }) => slug === collectionSlug)\n if (!collectionConfig) {\n throw new APIError(`Collection with slug ${collectionSlug} not found`)\n }\n\n const name = `${nameArg ?? `${getFilename()}-${collectionSlug}`}.${format}`\n const isCSV = format === 'csv'\n\n const findArgs = {\n collection: collectionSlug,\n depth: 0,\n draft: drafts === 'yes',\n limit: 100,\n locale,\n overrideAccess: false,\n page: 0,\n select: Array.isArray(fields) && fields.length > 0 ? getSelect(fields) : undefined,\n sort,\n user,\n where,\n }\n\n let result: PaginatedDocs = { hasNextPage: true } as PaginatedDocs\n\n if (download) {\n const encoder = new TextEncoder()\n const stream = new Readable({\n async read() {\n let result = await payload.find(findArgs)\n let isFirstBatch = true\n\n while (result.docs.length > 0) {\n const csvInput = result.docs.map((doc) => flattenObject(doc))\n const csvString = stringify(csvInput, { header: isFirstBatch })\n this.push(encoder.encode(csvString))\n isFirstBatch = false\n\n if (!result.hasNextPage) {\n this.push(null) // End the stream\n break\n }\n\n findArgs.page += 1\n result = await payload.find(findArgs)\n }\n },\n })\n\n return new Response(stream as any, {\n headers: {\n 'Content-Disposition': `attachment; filename=\"${name}\"`,\n 'Content-Type': isCSV ? 'text/csv' : 'application/json',\n },\n })\n }\n\n const outputData: string[] = []\n let isFirstBatch = true\n\n while (result.hasNextPage) {\n findArgs.page += 1\n result = await payload.find(findArgs)\n\n if (isCSV) {\n const csvInput = result.docs.map((doc) => flattenObject(doc))\n outputData.push(stringify(csvInput, { header: isFirstBatch }))\n isFirstBatch = false\n } else {\n const jsonInput = result.docs.map((doc) => JSON.stringify(doc))\n outputData.push(jsonInput.join(',\\n'))\n }\n }\n\n const buffer = Buffer.from(format === 'json' ? `[${outputData.join(',')}]` : outputData.join(''))\n\n if (!id) {\n req.file = {\n name,\n data: buffer,\n mimetype: isCSV ? 'text/csv' : 'application/json',\n size: buffer.length,\n }\n } else {\n await req.payload.update({\n id,\n collection: exportsCollection,\n data: {},\n file: {\n name,\n data: buffer,\n mimetype: isCSV ? 'text/csv' : 'application/json',\n size: buffer.length,\n },\n user,\n })\n }\n}\n"],"names":["stringify","APIError","Readable","flattenObject","getFilename","getSelect","createExport","args","download","input","id","name","nameArg","collectionSlug","drafts","exportsCollection","fields","format","locale","localeInput","sort","user","where","req","localeArg","payload","collectionConfig","config","collections","find","slug","isCSV","findArgs","collection","depth","draft","limit","overrideAccess","page","select","Array","isArray","length","undefined","result","hasNextPage","encoder","TextEncoder","stream","read","isFirstBatch","docs","csvInput","map","doc","csvString","header","push","encode","Response","headers","outputData","jsonInput","JSON","join","buffer","Buffer","from","file","data","mimetype","size","update"],"mappings":"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"}
@@ -90,16 +90,16 @@ export const getFields = (config)=>{
90
90
  },
91
91
  width: '33%'
92
92
  },
93
- defaultValue: 'true',
93
+ defaultValue: 'yes',
94
94
  label: 'Drafts',
95
95
  options: [
96
96
  {
97
- label: 'True',
98
- value: 'true'
97
+ label: 'Yes',
98
+ value: 'yes'
99
99
  },
100
100
  {
101
- label: 'False',
102
- value: 'false'
101
+ label: 'No',
102
+ value: 'no'
103
103
  }
104
104
  ]
105
105
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/export/getFields.ts"],"sourcesContent":["import type { Config, Field, SelectField } from 'payload'\n\nimport { getFilename } from './getFilename.js'\n\nexport const getFields = (config: Config): Field[] => {\n let localeField: SelectField | undefined\n if (config.localization) {\n localeField = {\n name: 'locale',\n type: 'select',\n admin: {\n width: '33%',\n },\n defaultValue: 'all',\n label: 'Locale',\n options: [\n {\n label: 'All Locales',\n value: 'all',\n },\n ...config.localization.locales.map((locale) => ({\n label: typeof locale === 'string' ? locale : locale.label,\n value: typeof locale === 'string' ? locale : locale.code,\n })),\n ],\n }\n }\n\n return [\n {\n type: 'collapsible',\n fields: [\n {\n name: 'name',\n type: 'text',\n defaultValue: () => getFilename(),\n label: 'File Name',\n },\n {\n type: 'row',\n fields: [\n {\n name: 'format',\n type: 'select',\n admin: {\n width: '33%',\n },\n defaultValue: 'csv',\n label: 'Export Format',\n options: [\n {\n label: 'CSV',\n value: 'csv',\n },\n {\n label: 'JSON',\n value: 'json',\n },\n ],\n required: true,\n },\n {\n name: 'limit',\n type: 'number',\n admin: {\n placeholder: 'No limit',\n width: '33%',\n },\n },\n {\n name: 'sort',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#SortBy',\n },\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n ...(localeField ? [localeField] : []),\n {\n name: 'drafts',\n type: 'select',\n admin: {\n condition: (data) => {\n const collectionConfig = (config.collections ?? []).find(\n (collection) => collection.slug === data.collectionSlug,\n )\n return Boolean(\n typeof collectionConfig?.versions === 'object' &&\n collectionConfig?.versions?.drafts,\n )\n },\n width: '33%',\n },\n defaultValue: 'true',\n label: 'Drafts',\n options: [\n {\n label: 'True',\n value: 'true',\n },\n {\n label: 'False',\n value: 'false',\n },\n ],\n },\n // {\n // name: 'depth',\n // type: 'number',\n // admin: {\n // width: '33%',\n // },\n // defaultValue: 1,\n // required: true,\n // },\n ],\n },\n {\n // virtual field for the UI component to modify the hidden `where` field\n name: 'selectionToUse',\n type: 'radio',\n defaultValue: 'all',\n options: [\n {\n label: 'Use current selection',\n value: 'currentSelection',\n },\n {\n label: 'Use current filters',\n value: 'currentFilters',\n },\n {\n label: 'Use all documents',\n value: 'all',\n },\n ],\n virtual: true,\n },\n {\n name: 'fields',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#FieldsToExport',\n },\n },\n hasMany: true,\n },\n {\n name: 'collectionSlug',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#CollectionField',\n },\n hidden: true,\n },\n required: true,\n },\n {\n name: 'where',\n type: 'json',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#WhereField',\n },\n },\n defaultValue: {},\n },\n ],\n label: 'Export Options',\n },\n {\n name: 'preview',\n type: 'ui',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#Preview',\n },\n },\n },\n ]\n}\n"],"names":["getFilename","getFields","config","localeField","localization","name","type","admin","width","defaultValue","label","options","value","locales","map","locale","code","fields","required","placeholder","components","Field","condition","data","collectionConfig","collections","find","collection","slug","collectionSlug","Boolean","versions","drafts","virtual","hasMany","hidden"],"mappings":"AAEA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,YAAY,CAACC;IACxB,IAAIC;IACJ,IAAID,OAAOE,YAAY,EAAE;QACvBD,cAAc;YACZE,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLC,OAAO;YACT;YACAC,cAAc;YACdC,OAAO;YACPC,SAAS;gBACP;oBACED,OAAO;oBACPE,OAAO;gBACT;mBACGV,OAAOE,YAAY,CAACS,OAAO,CAACC,GAAG,CAAC,CAACC,SAAY,CAAA;wBAC9CL,OAAO,OAAOK,WAAW,WAAWA,SAASA,OAAOL,KAAK;wBACzDE,OAAO,OAAOG,WAAW,WAAWA,SAASA,OAAOC,IAAI;oBAC1D,CAAA;aACD;QACH;IACF;IAEA,OAAO;QACL;YACEV,MAAM;YACNW,QAAQ;gBACN;oBACEZ,MAAM;oBACNC,MAAM;oBACNG,cAAc,IAAMT;oBACpBU,OAAO;gBACT;gBACA;oBACEJ,MAAM;oBACNW,QAAQ;wBACN;4BACEZ,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLC,OAAO;4BACT;4BACAC,cAAc;4BACdC,OAAO;4BACPC,SAAS;gCACP;oCACED,OAAO;oCACPE,OAAO;gCACT;gCACA;oCACEF,OAAO;oCACPE,OAAO;gCACT;6BACD;4BACDM,UAAU;wBACZ;wBACA;4BACEb,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLY,aAAa;gCACbX,OAAO;4BACT;wBACF;wBACA;4BACEH,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLa,YAAY;oCACVC,OAAO;gCACT;4BACF;wBACF;qBACD;gBACH;gBACA;oBACEf,MAAM;oBACNW,QAAQ;2BACFd,cAAc;4BAACA;yBAAY,GAAG,EAAE;wBACpC;4BACEE,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLe,WAAW,CAACC;oCACV,MAAMC,mBAAmB,AAACtB,CAAAA,OAAOuB,WAAW,IAAI,EAAE,AAAD,EAAGC,IAAI,CACtD,CAACC,aAAeA,WAAWC,IAAI,KAAKL,KAAKM,cAAc;oCAEzD,OAAOC,QACL,OAAON,kBAAkBO,aAAa,YACpCP,kBAAkBO,UAAUC;gCAElC;gCACAxB,OAAO;4BACT;4BACAC,cAAc;4BACdC,OAAO;4BACPC,SAAS;gCACP;oCACED,OAAO;oCACPE,OAAO;gCACT;gCACA;oCACEF,OAAO;oCACPE,OAAO;gCACT;6BACD;wBACH;qBAUD;gBACH;gBACA;oBACE,wEAAwE;oBACxEP,MAAM;oBACNC,MAAM;oBACNG,cAAc;oBACdE,SAAS;wBACP;4BACED,OAAO;4BACPE,OAAO;wBACT;wBACA;4BACEF,OAAO;4BACPE,OAAO;wBACT;wBACA;4BACEF,OAAO;4BACPE,OAAO;wBACT;qBACD;oBACDqB,SAAS;gBACX;gBACA;oBACE5B,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;oBACF;oBACAa,SAAS;gBACX;gBACA;oBACE7B,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;wBACAc,QAAQ;oBACV;oBACAjB,UAAU;gBACZ;gBACA;oBACEb,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;oBACF;oBACAZ,cAAc,CAAC;gBACjB;aACD;YACDC,OAAO;QACT;QACA;YACEL,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLa,YAAY;oBACVC,OAAO;gBACT;YACF;QACF;KACD;AACH,EAAC"}
1
+ {"version":3,"sources":["../../src/export/getFields.ts"],"sourcesContent":["import type { Config, Field, SelectField } from 'payload'\n\nimport { getFilename } from './getFilename.js'\n\nexport const getFields = (config: Config): Field[] => {\n let localeField: SelectField | undefined\n if (config.localization) {\n localeField = {\n name: 'locale',\n type: 'select',\n admin: {\n width: '33%',\n },\n defaultValue: 'all',\n label: 'Locale',\n options: [\n {\n label: 'All Locales',\n value: 'all',\n },\n ...config.localization.locales.map((locale) => ({\n label: typeof locale === 'string' ? locale : locale.label,\n value: typeof locale === 'string' ? locale : locale.code,\n })),\n ],\n }\n }\n\n return [\n {\n type: 'collapsible',\n fields: [\n {\n name: 'name',\n type: 'text',\n defaultValue: () => getFilename(),\n label: 'File Name',\n },\n {\n type: 'row',\n fields: [\n {\n name: 'format',\n type: 'select',\n admin: {\n width: '33%',\n },\n defaultValue: 'csv',\n label: 'Export Format',\n options: [\n {\n label: 'CSV',\n value: 'csv',\n },\n {\n label: 'JSON',\n value: 'json',\n },\n ],\n required: true,\n },\n {\n name: 'limit',\n type: 'number',\n admin: {\n placeholder: 'No limit',\n width: '33%',\n },\n },\n {\n name: 'sort',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#SortBy',\n },\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n ...(localeField ? [localeField] : []),\n {\n name: 'drafts',\n type: 'select',\n admin: {\n condition: (data) => {\n const collectionConfig = (config.collections ?? []).find(\n (collection) => collection.slug === data.collectionSlug,\n )\n return Boolean(\n typeof collectionConfig?.versions === 'object' &&\n collectionConfig?.versions?.drafts,\n )\n },\n width: '33%',\n },\n defaultValue: 'yes',\n label: 'Drafts',\n options: [\n {\n label: 'Yes',\n value: 'yes',\n },\n {\n label: 'No',\n value: 'no',\n },\n ],\n },\n // {\n // name: 'depth',\n // type: 'number',\n // admin: {\n // width: '33%',\n // },\n // defaultValue: 1,\n // required: true,\n // },\n ],\n },\n {\n // virtual field for the UI component to modify the hidden `where` field\n name: 'selectionToUse',\n type: 'radio',\n defaultValue: 'all',\n options: [\n {\n label: 'Use current selection',\n value: 'currentSelection',\n },\n {\n label: 'Use current filters',\n value: 'currentFilters',\n },\n {\n label: 'Use all documents',\n value: 'all',\n },\n ],\n virtual: true,\n },\n {\n name: 'fields',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#FieldsToExport',\n },\n },\n hasMany: true,\n },\n {\n name: 'collectionSlug',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#CollectionField',\n },\n hidden: true,\n },\n required: true,\n },\n {\n name: 'where',\n type: 'json',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#WhereField',\n },\n },\n defaultValue: {},\n },\n ],\n label: 'Export Options',\n },\n {\n name: 'preview',\n type: 'ui',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#Preview',\n },\n },\n },\n ]\n}\n"],"names":["getFilename","getFields","config","localeField","localization","name","type","admin","width","defaultValue","label","options","value","locales","map","locale","code","fields","required","placeholder","components","Field","condition","data","collectionConfig","collections","find","collection","slug","collectionSlug","Boolean","versions","drafts","virtual","hasMany","hidden"],"mappings":"AAEA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,YAAY,CAACC;IACxB,IAAIC;IACJ,IAAID,OAAOE,YAAY,EAAE;QACvBD,cAAc;YACZE,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLC,OAAO;YACT;YACAC,cAAc;YACdC,OAAO;YACPC,SAAS;gBACP;oBACED,OAAO;oBACPE,OAAO;gBACT;mBACGV,OAAOE,YAAY,CAACS,OAAO,CAACC,GAAG,CAAC,CAACC,SAAY,CAAA;wBAC9CL,OAAO,OAAOK,WAAW,WAAWA,SAASA,OAAOL,KAAK;wBACzDE,OAAO,OAAOG,WAAW,WAAWA,SAASA,OAAOC,IAAI;oBAC1D,CAAA;aACD;QACH;IACF;IAEA,OAAO;QACL;YACEV,MAAM;YACNW,QAAQ;gBACN;oBACEZ,MAAM;oBACNC,MAAM;oBACNG,cAAc,IAAMT;oBACpBU,OAAO;gBACT;gBACA;oBACEJ,MAAM;oBACNW,QAAQ;wBACN;4BACEZ,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLC,OAAO;4BACT;4BACAC,cAAc;4BACdC,OAAO;4BACPC,SAAS;gCACP;oCACED,OAAO;oCACPE,OAAO;gCACT;gCACA;oCACEF,OAAO;oCACPE,OAAO;gCACT;6BACD;4BACDM,UAAU;wBACZ;wBACA;4BACEb,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLY,aAAa;gCACbX,OAAO;4BACT;wBACF;wBACA;4BACEH,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLa,YAAY;oCACVC,OAAO;gCACT;4BACF;wBACF;qBACD;gBACH;gBACA;oBACEf,MAAM;oBACNW,QAAQ;2BACFd,cAAc;4BAACA;yBAAY,GAAG,EAAE;wBACpC;4BACEE,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLe,WAAW,CAACC;oCACV,MAAMC,mBAAmB,AAACtB,CAAAA,OAAOuB,WAAW,IAAI,EAAE,AAAD,EAAGC,IAAI,CACtD,CAACC,aAAeA,WAAWC,IAAI,KAAKL,KAAKM,cAAc;oCAEzD,OAAOC,QACL,OAAON,kBAAkBO,aAAa,YACpCP,kBAAkBO,UAAUC;gCAElC;gCACAxB,OAAO;4BACT;4BACAC,cAAc;4BACdC,OAAO;4BACPC,SAAS;gCACP;oCACED,OAAO;oCACPE,OAAO;gCACT;gCACA;oCACEF,OAAO;oCACPE,OAAO;gCACT;6BACD;wBACH;qBAUD;gBACH;gBACA;oBACE,wEAAwE;oBACxEP,MAAM;oBACNC,MAAM;oBACNG,cAAc;oBACdE,SAAS;wBACP;4BACED,OAAO;4BACPE,OAAO;wBACT;wBACA;4BACEF,OAAO;4BACPE,OAAO;wBACT;wBACA;4BACEF,OAAO;4BACPE,OAAO;wBACT;qBACD;oBACDqB,SAAS;gBACX;gBACA;oBACE5B,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;oBACF;oBACAa,SAAS;gBACX;gBACA;oBACE7B,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;wBACAc,QAAQ;oBACV;oBACAjB,UAAU;gBACZ;gBACA;oBACEb,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;oBACF;oBACAZ,cAAc,CAAC;gBACjB;aACD;YACDC,OAAO;QACT;QACA;YACEL,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLa,YAAY;oBACVC,OAAO;gBACT;YACF;QACF;KACD;AACH,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/plugin-import-export",
3
- "version": "3.29.0-internal.3471e81",
3
+ "version": "3.29.0-internal.9400be9",
4
4
  "description": "Import-Export plugin for Payload",
5
5
  "keywords": [
6
6
  "payload",
@@ -54,17 +54,17 @@
54
54
  "csv-parse": "^5.6.0",
55
55
  "csv-stringify": "^6.5.2",
56
56
  "qs-esm": "7.0.2",
57
- "@payloadcms/ui": "3.29.0-internal.3471e81",
58
- "@payloadcms/translations": "3.29.0-internal.3471e81"
57
+ "@payloadcms/translations": "3.29.0-internal.9400be9",
58
+ "@payloadcms/ui": "3.29.0-internal.9400be9"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@payloadcms/eslint-config": "3.28.0",
62
- "@payloadcms/ui": "3.29.0-internal.3471e81",
63
- "payload": "3.29.0-internal.3471e81"
62
+ "@payloadcms/ui": "3.29.0-internal.9400be9",
63
+ "payload": "3.29.0-internal.9400be9"
64
64
  },
65
65
  "peerDependencies": {
66
- "@payloadcms/ui": "3.29.0-internal.3471e81",
67
- "payload": "3.29.0-internal.3471e81"
66
+ "@payloadcms/ui": "3.29.0-internal.9400be9",
67
+ "payload": "3.29.0-internal.9400be9"
68
68
  },
69
69
  "homepage:": "https://payloadcms.com",
70
70
  "scripts": {