@payloadcms/plugin-import-export 3.65.0-internal.ef3958a → 3.66.0-canary.0
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.
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ declare module 'payload' {
|
|
|
6
6
|
'plugin-import-export'?: {
|
|
7
7
|
/**
|
|
8
8
|
* When `true` the field is **completely excluded** from the import-export plugin:
|
|
9
|
-
* - It will not appear in the
|
|
9
|
+
* - It will not appear in the "Fields to export" selector.
|
|
10
10
|
* - It is hidden from the preview list when no specific fields are chosen.
|
|
11
11
|
* - Its data is omitted from the final CSV / JSON export.
|
|
12
12
|
* @default false
|
|
@@ -18,5 +18,14 @@ declare module 'payload' {
|
|
|
18
18
|
toCSV?: ToCSVFunction;
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
+
interface CollectionAdminCustom {
|
|
22
|
+
'plugin-import-export'?: {
|
|
23
|
+
/**
|
|
24
|
+
* Array of field paths that are disabled for import/export.
|
|
25
|
+
* These paths are collected from fields marked with `custom['plugin-import-export'].disabled = true`.
|
|
26
|
+
*/
|
|
27
|
+
disabledFields?: string[];
|
|
28
|
+
};
|
|
29
|
+
}
|
|
21
30
|
}
|
|
22
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAczE,eAAO,MAAM,kBAAkB,iBACd,wBAAwB,cAC9B,MAAM,KAAG,MA0LjB,CAAA;AAEH,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAiB,WAAW;QAC1B,sBAAsB,CAAC,EAAE;YACvB;;;;;;eAMG;YACH,QAAQ,CAAC,EAAE,OAAO,CAAA;YAClB;;eAEG;YACH,KAAK,CAAC,EAAE,aAAa,CAAA;SACtB,CAAA;KACF;CACF"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAczE,eAAO,MAAM,kBAAkB,iBACd,wBAAwB,cAC9B,MAAM,KAAG,MA0LjB,CAAA;AAEH,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAiB,WAAW;QAC1B,sBAAsB,CAAC,EAAE;YACvB;;;;;;eAMG;YACH,QAAQ,CAAC,EAAE,OAAO,CAAA;YAClB;;eAEG;YACH,KAAK,CAAC,EAAE,aAAa,CAAA;SACtB,CAAA;KACF;IAED,UAAiB,qBAAqB;QACpC,sBAAsB,CAAC,EAAE;YACvB;;;eAGG;YACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;SAC1B,CAAA;KACF;CACF"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config, FlattenedField } from 'payload'\n\nimport { addDataAndFileToRequest, deepMergeSimple } from 'payload'\n\nimport type { PluginDefaultTranslationsObject } from './translations/types.js'\nimport type { ImportExportPluginConfig, ToCSVFunction } from './types.js'\n\nimport { flattenObject } from './export/flattenObject.js'\nimport { getCreateCollectionExportTask } from './export/getCreateExportCollectionTask.js'\nimport { getCustomFieldFunctions } from './export/getCustomFieldFunctions.js'\nimport { getSelect } from './export/getSelect.js'\nimport { getExportCollection } from './getExportCollection.js'\nimport { translations } from './translations/index.js'\nimport { collectDisabledFieldPaths } from './utilities/collectDisabledFieldPaths.js'\nimport { getFlattenedFieldKeys } from './utilities/getFlattenedFieldKeys.js'\nimport { getValueAtPath } from './utilities/getvalueAtPath.js'\nimport { removeDisabledFields } from './utilities/removeDisabledFields.js'\nimport { setNestedValue } from './utilities/setNestedValue.js'\n\nexport const importExportPlugin =\n (pluginConfig: ImportExportPluginConfig) =>\n (config: Config): Config => {\n const exportCollection = getExportCollection({ config, pluginConfig })\n if (config.collections) {\n config.collections.push(exportCollection)\n } else {\n config.collections = [exportCollection]\n }\n\n // inject custom import export provider\n config.admin = config.admin || {}\n config.admin.components = config.admin.components || {}\n config.admin.components.providers = config.admin.components.providers || []\n config.admin.components.providers.push(\n '@payloadcms/plugin-import-export/rsc#ImportExportProvider',\n )\n\n // inject the createExport job into the config\n ;((config.jobs ??= {}).tasks ??= []).push(getCreateCollectionExportTask(config, pluginConfig))\n\n let collectionsToUpdate = config.collections\n\n const usePluginCollections = pluginConfig.collections && pluginConfig.collections?.length > 0\n\n if (usePluginCollections) {\n collectionsToUpdate = config.collections?.filter((collection) => {\n return pluginConfig.collections?.includes(collection.slug)\n })\n }\n\n collectionsToUpdate.forEach((collection) => {\n if (!collection.admin) {\n collection.admin = { components: { listMenuItems: [] } }\n }\n const components = collection.admin.components || {}\n if (!components.listMenuItems) {\n components.listMenuItems = []\n }\n components.listMenuItems.push({\n clientProps: {\n exportCollectionSlug: exportCollection.slug,\n },\n path: '@payloadcms/plugin-import-export/rsc#ExportListMenuItem',\n })\n\n // Find fields explicitly marked as disabled for import/export\n const disabledFieldAccessors = collectDisabledFieldPaths(collection.fields)\n\n // Store disabled field accessors in the admin config for use in the UI\n collection.admin.custom = {\n ...(collection.admin.custom || {}),\n 'plugin-import-export': {\n ...(collection.admin.custom?.['plugin-import-export'] || {}),\n disabledFields: disabledFieldAccessors,\n },\n }\n\n collection.admin.components = components\n })\n\n if (!config.i18n) {\n config.i18n = {}\n }\n\n // config.i18n.translations = deepMergeSimple(translations, config.i18n?.translations ?? {})\n\n // Inject custom REST endpoints into the config\n config.endpoints = config.endpoints || []\n config.endpoints.push({\n handler: async (req) => {\n await addDataAndFileToRequest(req)\n\n const { collectionSlug, draft, fields, limit, locale, page, sort, where } = req.data as {\n collectionSlug: string\n draft?: 'no' | 'yes'\n fields?: string[]\n format?: 'csv' | 'json'\n limit?: number\n locale?: string\n page?: number\n sort?: any\n where?: any\n }\n\n const collection = req.payload.collections[collectionSlug]\n if (!collection) {\n return Response.json(\n { error: `Collection with slug ${collectionSlug} not found` },\n { status: 400 },\n )\n }\n\n const select = Array.isArray(fields) && fields.length > 0 ? getSelect(fields) : undefined\n\n const result = await req.payload.find({\n collection: collectionSlug,\n depth: 1,\n draft: draft === 'yes',\n limit: limit && limit > 10 ? 10 : limit,\n locale,\n overrideAccess: false,\n page,\n req,\n select,\n sort,\n where,\n })\n\n const isCSV = req?.data?.format === 'csv'\n const docs = result.docs\n\n let transformed: Record<string, unknown>[] = []\n\n if (isCSV) {\n const toCSVFunctions = getCustomFieldFunctions({\n fields: collection.config.fields as FlattenedField[],\n })\n\n const possibleKeys = getFlattenedFieldKeys(collection.config.fields as FlattenedField[])\n\n transformed = docs.map((doc) => {\n const row = flattenObject({\n doc,\n fields,\n toCSVFunctions,\n })\n\n for (const key of possibleKeys) {\n if (!(key in row)) {\n row[key] = null\n }\n }\n\n return row\n })\n } else {\n const disabledFields =\n collection.config.admin.custom?.['plugin-import-export']?.disabledFields\n\n transformed = docs.map((doc) => {\n let output: Record<string, unknown> = { ...doc }\n\n // Remove disabled fields first\n output = removeDisabledFields(output, disabledFields)\n\n // Then trim to selected fields only (if fields are provided)\n if (Array.isArray(fields) && fields.length > 0) {\n const trimmed: Record<string, unknown> = {}\n\n for (const key of fields) {\n const value = getValueAtPath(output, key)\n setNestedValue(trimmed, key, value ?? null)\n }\n\n output = trimmed\n }\n\n return output\n })\n }\n\n return Response.json({\n docs: transformed,\n totalDocs: result.totalDocs,\n })\n },\n method: 'post',\n path: '/preview-data',\n })\n\n /**\n * Merge plugin translations\n */\n const simplifiedTranslations = Object.entries(translations).reduce(\n (acc, [key, value]) => {\n acc[key] = value.translations\n return acc\n },\n {} as Record<string, PluginDefaultTranslationsObject>,\n )\n\n config.i18n = {\n ...config.i18n,\n translations: deepMergeSimple(simplifiedTranslations, config.i18n?.translations ?? {}),\n }\n\n return config\n }\n\ndeclare module 'payload' {\n export interface FieldCustom {\n 'plugin-import-export'?: {\n /**\n * When `true` the field is **completely excluded** from the import-export plugin:\n * - It will not appear in the “Fields to export” selector.\n * - It is hidden from the preview list when no specific fields are chosen.\n * - Its data is omitted from the final CSV / JSON export.\n * @default false\n */\n disabled?: boolean\n /**\n * Custom function used to modify the outgoing csv data by manipulating the data, siblingData or by returning the desired value\n */\n toCSV?: ToCSVFunction\n }\n }\n}\n"],"names":["addDataAndFileToRequest","deepMergeSimple","flattenObject","getCreateCollectionExportTask","getCustomFieldFunctions","getSelect","getExportCollection","translations","collectDisabledFieldPaths","getFlattenedFieldKeys","getValueAtPath","removeDisabledFields","setNestedValue","importExportPlugin","pluginConfig","config","exportCollection","collections","push","admin","components","providers","jobs","tasks","collectionsToUpdate","usePluginCollections","length","filter","collection","includes","slug","forEach","listMenuItems","clientProps","exportCollectionSlug","path","disabledFieldAccessors","fields","custom","disabledFields","i18n","endpoints","handler","req","collectionSlug","draft","limit","locale","page","sort","where","data","payload","Response","json","error","status","select","Array","isArray","undefined","result","find","depth","overrideAccess","isCSV","format","docs","transformed","toCSVFunctions","possibleKeys","map","doc","row","key","output","trimmed","value","totalDocs","method","simplifiedTranslations","Object","entries","reduce","acc"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config, FlattenedField } from 'payload'\n\nimport { addDataAndFileToRequest, deepMergeSimple } from 'payload'\n\nimport type { PluginDefaultTranslationsObject } from './translations/types.js'\nimport type { ImportExportPluginConfig, ToCSVFunction } from './types.js'\n\nimport { flattenObject } from './export/flattenObject.js'\nimport { getCreateCollectionExportTask } from './export/getCreateExportCollectionTask.js'\nimport { getCustomFieldFunctions } from './export/getCustomFieldFunctions.js'\nimport { getSelect } from './export/getSelect.js'\nimport { getExportCollection } from './getExportCollection.js'\nimport { translations } from './translations/index.js'\nimport { collectDisabledFieldPaths } from './utilities/collectDisabledFieldPaths.js'\nimport { getFlattenedFieldKeys } from './utilities/getFlattenedFieldKeys.js'\nimport { getValueAtPath } from './utilities/getvalueAtPath.js'\nimport { removeDisabledFields } from './utilities/removeDisabledFields.js'\nimport { setNestedValue } from './utilities/setNestedValue.js'\n\nexport const importExportPlugin =\n (pluginConfig: ImportExportPluginConfig) =>\n (config: Config): Config => {\n const exportCollection = getExportCollection({ config, pluginConfig })\n if (config.collections) {\n config.collections.push(exportCollection)\n } else {\n config.collections = [exportCollection]\n }\n\n // inject custom import export provider\n config.admin = config.admin || {}\n config.admin.components = config.admin.components || {}\n config.admin.components.providers = config.admin.components.providers || []\n config.admin.components.providers.push(\n '@payloadcms/plugin-import-export/rsc#ImportExportProvider',\n )\n\n // inject the createExport job into the config\n ;((config.jobs ??= {}).tasks ??= []).push(getCreateCollectionExportTask(config, pluginConfig))\n\n let collectionsToUpdate = config.collections\n\n const usePluginCollections = pluginConfig.collections && pluginConfig.collections?.length > 0\n\n if (usePluginCollections) {\n collectionsToUpdate = config.collections?.filter((collection) => {\n return pluginConfig.collections?.includes(collection.slug)\n })\n }\n\n collectionsToUpdate.forEach((collection) => {\n if (!collection.admin) {\n collection.admin = { components: { listMenuItems: [] } }\n }\n const components = collection.admin.components || {}\n if (!components.listMenuItems) {\n components.listMenuItems = []\n }\n components.listMenuItems.push({\n clientProps: {\n exportCollectionSlug: exportCollection.slug,\n },\n path: '@payloadcms/plugin-import-export/rsc#ExportListMenuItem',\n })\n\n // Find fields explicitly marked as disabled for import/export\n const disabledFieldAccessors = collectDisabledFieldPaths(collection.fields)\n\n // Store disabled field accessors in the admin config for use in the UI\n collection.admin.custom = {\n ...(collection.admin.custom || {}),\n 'plugin-import-export': {\n ...(collection.admin.custom?.['plugin-import-export'] || {}),\n disabledFields: disabledFieldAccessors,\n },\n }\n\n collection.admin.components = components\n })\n\n if (!config.i18n) {\n config.i18n = {}\n }\n\n // config.i18n.translations = deepMergeSimple(translations, config.i18n?.translations ?? {})\n\n // Inject custom REST endpoints into the config\n config.endpoints = config.endpoints || []\n config.endpoints.push({\n handler: async (req) => {\n await addDataAndFileToRequest(req)\n\n const { collectionSlug, draft, fields, limit, locale, page, sort, where } = req.data as {\n collectionSlug: string\n draft?: 'no' | 'yes'\n fields?: string[]\n format?: 'csv' | 'json'\n limit?: number\n locale?: string\n page?: number\n sort?: any\n where?: any\n }\n\n const collection = req.payload.collections[collectionSlug]\n if (!collection) {\n return Response.json(\n { error: `Collection with slug ${collectionSlug} not found` },\n { status: 400 },\n )\n }\n\n const select = Array.isArray(fields) && fields.length > 0 ? getSelect(fields) : undefined\n\n const result = await req.payload.find({\n collection: collectionSlug,\n depth: 1,\n draft: draft === 'yes',\n limit: limit && limit > 10 ? 10 : limit,\n locale,\n overrideAccess: false,\n page,\n req,\n select,\n sort,\n where,\n })\n\n const isCSV = req?.data?.format === 'csv'\n const docs = result.docs\n\n let transformed: Record<string, unknown>[] = []\n\n if (isCSV) {\n const toCSVFunctions = getCustomFieldFunctions({\n fields: collection.config.fields as FlattenedField[],\n })\n\n const possibleKeys = getFlattenedFieldKeys(collection.config.fields as FlattenedField[])\n\n transformed = docs.map((doc) => {\n const row = flattenObject({\n doc,\n fields,\n toCSVFunctions,\n })\n\n for (const key of possibleKeys) {\n if (!(key in row)) {\n row[key] = null\n }\n }\n\n return row\n })\n } else {\n const disabledFields =\n collection.config.admin.custom?.['plugin-import-export']?.disabledFields\n\n transformed = docs.map((doc) => {\n let output: Record<string, unknown> = { ...doc }\n\n // Remove disabled fields first\n output = removeDisabledFields(output, disabledFields)\n\n // Then trim to selected fields only (if fields are provided)\n if (Array.isArray(fields) && fields.length > 0) {\n const trimmed: Record<string, unknown> = {}\n\n for (const key of fields) {\n const value = getValueAtPath(output, key)\n setNestedValue(trimmed, key, value ?? null)\n }\n\n output = trimmed\n }\n\n return output\n })\n }\n\n return Response.json({\n docs: transformed,\n totalDocs: result.totalDocs,\n })\n },\n method: 'post',\n path: '/preview-data',\n })\n\n /**\n * Merge plugin translations\n */\n const simplifiedTranslations = Object.entries(translations).reduce(\n (acc, [key, value]) => {\n acc[key] = value.translations\n return acc\n },\n {} as Record<string, PluginDefaultTranslationsObject>,\n )\n\n config.i18n = {\n ...config.i18n,\n translations: deepMergeSimple(simplifiedTranslations, config.i18n?.translations ?? {}),\n }\n\n return config\n }\n\ndeclare module 'payload' {\n export interface FieldCustom {\n 'plugin-import-export'?: {\n /**\n * When `true` the field is **completely excluded** from the import-export plugin:\n * - It will not appear in the \"Fields to export\" selector.\n * - It is hidden from the preview list when no specific fields are chosen.\n * - Its data is omitted from the final CSV / JSON export.\n * @default false\n */\n disabled?: boolean\n /**\n * Custom function used to modify the outgoing csv data by manipulating the data, siblingData or by returning the desired value\n */\n toCSV?: ToCSVFunction\n }\n }\n\n export interface CollectionAdminCustom {\n 'plugin-import-export'?: {\n /**\n * Array of field paths that are disabled for import/export.\n * These paths are collected from fields marked with `custom['plugin-import-export'].disabled = true`.\n */\n disabledFields?: string[]\n }\n }\n}\n"],"names":["addDataAndFileToRequest","deepMergeSimple","flattenObject","getCreateCollectionExportTask","getCustomFieldFunctions","getSelect","getExportCollection","translations","collectDisabledFieldPaths","getFlattenedFieldKeys","getValueAtPath","removeDisabledFields","setNestedValue","importExportPlugin","pluginConfig","config","exportCollection","collections","push","admin","components","providers","jobs","tasks","collectionsToUpdate","usePluginCollections","length","filter","collection","includes","slug","forEach","listMenuItems","clientProps","exportCollectionSlug","path","disabledFieldAccessors","fields","custom","disabledFields","i18n","endpoints","handler","req","collectionSlug","draft","limit","locale","page","sort","where","data","payload","Response","json","error","status","select","Array","isArray","undefined","result","find","depth","overrideAccess","isCSV","format","docs","transformed","toCSVFunctions","possibleKeys","map","doc","row","key","output","trimmed","value","totalDocs","method","simplifiedTranslations","Object","entries","reduce","acc"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-import-export",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.66.0-canary.0",
|
|
4
4
|
"description": "Import-Export plugin for Payload",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"payload",
|
|
@@ -64,17 +64,17 @@
|
|
|
64
64
|
"csv-parse": "^5.6.0",
|
|
65
65
|
"csv-stringify": "^6.5.2",
|
|
66
66
|
"qs-esm": "7.0.2",
|
|
67
|
-
"@payloadcms/translations": "3.
|
|
68
|
-
"@payloadcms/ui": "3.
|
|
67
|
+
"@payloadcms/translations": "3.66.0-canary.0",
|
|
68
|
+
"@payloadcms/ui": "3.66.0-canary.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@payloadcms/
|
|
72
|
-
"
|
|
73
|
-
"
|
|
71
|
+
"@payloadcms/ui": "3.66.0-canary.0",
|
|
72
|
+
"payload": "3.66.0-canary.0",
|
|
73
|
+
"@payloadcms/eslint-config": "3.28.0"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
|
-
"
|
|
77
|
-
"
|
|
76
|
+
"payload": "3.66.0-canary.0",
|
|
77
|
+
"@payloadcms/ui": "3.66.0-canary.0"
|
|
78
78
|
},
|
|
79
79
|
"homepage:": "https://payloadcms.com",
|
|
80
80
|
"scripts": {
|