payload 3.0.1 → 3.0.2-canary.f4f29e6

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":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAkB,MAAM,YAAY,CAAA;AAgB7F,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/E,OAAO,CAAC,yBAAyB,CAkLnC,CAAA"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAkB,MAAM,YAAY,CAAA;AAgB7F,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/E,OAAO,CAAC,yBAAyB,CAwLnC,CAAA"}
@@ -22,7 +22,12 @@ export const sanitizeCollection = async (config, collection, /**
22
22
  // /////////////////////////////////
23
23
  // Sanitize fields
24
24
  // /////////////////////////////////
25
- const validRelationships = config.collections.map((c)=>c.slug) || [];
25
+ const validRelationships = config.collections.reduce((acc, c)=>{
26
+ acc.push(c.slug);
27
+ return acc;
28
+ }, [
29
+ collection.slug
30
+ ]);
26
31
  const joins = {};
27
32
  sanitized.fields = await sanitizeFields({
28
33
  collectionConfig: sanitized,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import type { LoginWithUsernameOptions } from '../../auth/types.js'\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { CollectionConfig, SanitizedCollectionConfig, SanitizedJoins } from './types.js'\n\nimport { getBaseAuthFields } from '../../auth/getAuthFields.js'\nimport { TimestampsRequired } from '../../errors/TimestampsRequired.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport mergeBaseFields from '../../fields/mergeBaseFields.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.js'\nimport { deepMergeWithReactComponents } from '../../utilities/deepMerge.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { authDefaults, defaults, loginWithUsernameDefaults } from './defaults.js'\nimport { sanitizeAuthFields, sanitizeUploadFields } from './reservedFieldNames.js'\nimport { validateUseAsTitle } from './useAsTitle.js'\n\nexport const sanitizeCollection = async (\n config: Config,\n collection: CollectionConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n): Promise<SanitizedCollectionConfig> => {\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = deepMergeWithReactComponents(defaults, collection)\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = config.collections.map((c) => c.slug) || []\n const joins: SanitizedJoins = {}\n sanitized.fields = await sanitizeFields({\n collectionConfig: sanitized,\n config,\n fields: sanitized.fields,\n joinPath: '',\n joins,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt = null\n let hasCreatedAt = null\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n index: true,\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n sanitized.fields.push({\n name: 'createdAt',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n // The default sort for list view is createdAt. Thus, enabling indexing by default, is a major performance improvement, especially for large or a large amount of collections.\n type: 'date',\n index: true,\n label: ({ t }) => t('general:createdAt'),\n })\n }\n }\n\n sanitized.labels = sanitized.labels || formatLabels(sanitized.slug)\n\n if (sanitized.versions) {\n if (sanitized.versions === true) {\n sanitized.versions = { drafts: false, maxPerDoc: 100 }\n }\n\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n sanitized.versions.maxPerDoc =\n typeof sanitized.versions.maxPerDoc === 'number' ? sanitized.versions.maxPerDoc : 100\n\n if (sanitized.versions.drafts) {\n if (sanitized.versions.drafts === true) {\n sanitized.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n if (sanitized.versions.drafts.autosave === true) {\n sanitized.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (sanitized.versions.drafts.validate === undefined) {\n sanitized.versions.drafts.validate = false\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, baseVersionFields)\n }\n }\n\n if (sanitized.upload) {\n if (sanitized.upload === true) {\n sanitized.upload = {}\n }\n\n // sanitize fields for reserved names\n sanitizeUploadFields(sanitized.fields, sanitized)\n\n sanitized.upload.bulkUpload = sanitized.upload?.bulkUpload ?? true\n sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug\n sanitized.admin.useAsTitle =\n sanitized.admin.useAsTitle && sanitized.admin.useAsTitle !== 'id'\n ? sanitized.admin.useAsTitle\n : 'filename'\n\n const uploadFields = getBaseUploadFields({\n collection: sanitized,\n config,\n })\n\n sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields)\n }\n\n if (sanitized.auth) {\n // sanitize fields for reserved names\n sanitizeAuthFields(sanitized.fields, sanitized)\n\n sanitized.auth = deepMergeWithReactComponents(\n authDefaults,\n typeof sanitized.auth === 'object' ? sanitized.auth : {},\n )\n\n if (!sanitized.auth.disableLocalStrategy && sanitized.auth.verify === true) {\n sanitized.auth.verify = {}\n }\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate ?? true\n\n if (!sanitized.auth.strategies) {\n sanitized.auth.strategies = []\n }\n\n if (sanitized.auth.loginWithUsername) {\n if (sanitized.auth.loginWithUsername === true) {\n sanitized.auth.loginWithUsername = loginWithUsernameDefaults\n } else {\n const loginWithUsernameWithDefaults = {\n ...loginWithUsernameDefaults,\n ...sanitized.auth.loginWithUsername,\n } as LoginWithUsernameOptions\n\n // if allowEmailLogin is false, requireUsername must be true\n if (loginWithUsernameWithDefaults.allowEmailLogin === false) {\n loginWithUsernameWithDefaults.requireUsername = true\n }\n sanitized.auth.loginWithUsername = loginWithUsernameWithDefaults\n }\n } else {\n sanitized.auth.loginWithUsername = false\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, getBaseAuthFields(sanitized.auth))\n }\n\n if (collection?.admin?.pagination?.limits?.length) {\n sanitized.admin.pagination.limits = collection.admin.pagination.limits\n }\n\n validateUseAsTitle(sanitized)\n\n const sanitizedConfig = sanitized as SanitizedCollectionConfig\n\n sanitizedConfig.joins = joins\n\n return sanitizedConfig\n}\n"],"names":["getBaseAuthFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","getBaseUploadFields","deepMergeWithReactComponents","formatLabels","baseVersionFields","versionDefaults","authDefaults","defaults","loginWithUsernameDefaults","sanitizeAuthFields","sanitizeUploadFields","validateUseAsTitle","sanitizeCollection","config","collection","richTextSanitizationPromises","sanitized","validRelationships","collections","map","c","slug","joins","fields","collectionConfig","joinPath","parentIsLocalized","timestamps","hasUpdatedAt","hasCreatedAt","some","field","name","push","type","admin","disableBulkEdit","hidden","index","label","t","labels","versions","drafts","maxPerDoc","autosave","validate","interval","autosaveInterval","undefined","upload","bulkUpload","staticDir","useAsTitle","uploadFields","auth","disableLocalStrategy","verify","disableDuplicate","strategies","loginWithUsername","loginWithUsernameWithDefaults","allowEmailLogin","requireUsername","pagination","limits","length","sanitizedConfig"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import type { LoginWithUsernameOptions } from '../../auth/types.js'\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { CollectionConfig, SanitizedCollectionConfig, SanitizedJoins } from './types.js'\n\nimport { getBaseAuthFields } from '../../auth/getAuthFields.js'\nimport { TimestampsRequired } from '../../errors/TimestampsRequired.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport mergeBaseFields from '../../fields/mergeBaseFields.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.js'\nimport { deepMergeWithReactComponents } from '../../utilities/deepMerge.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { authDefaults, defaults, loginWithUsernameDefaults } from './defaults.js'\nimport { sanitizeAuthFields, sanitizeUploadFields } from './reservedFieldNames.js'\nimport { validateUseAsTitle } from './useAsTitle.js'\n\nexport const sanitizeCollection = async (\n config: Config,\n collection: CollectionConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n): Promise<SanitizedCollectionConfig> => {\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = deepMergeWithReactComponents(defaults, collection)\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = config.collections.reduce(\n (acc, c) => {\n acc.push(c.slug)\n return acc\n },\n [collection.slug],\n )\n const joins: SanitizedJoins = {}\n sanitized.fields = await sanitizeFields({\n collectionConfig: sanitized,\n config,\n fields: sanitized.fields,\n joinPath: '',\n joins,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt = null\n let hasCreatedAt = null\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n index: true,\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n sanitized.fields.push({\n name: 'createdAt',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n // The default sort for list view is createdAt. Thus, enabling indexing by default, is a major performance improvement, especially for large or a large amount of collections.\n type: 'date',\n index: true,\n label: ({ t }) => t('general:createdAt'),\n })\n }\n }\n\n sanitized.labels = sanitized.labels || formatLabels(sanitized.slug)\n\n if (sanitized.versions) {\n if (sanitized.versions === true) {\n sanitized.versions = { drafts: false, maxPerDoc: 100 }\n }\n\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n sanitized.versions.maxPerDoc =\n typeof sanitized.versions.maxPerDoc === 'number' ? sanitized.versions.maxPerDoc : 100\n\n if (sanitized.versions.drafts) {\n if (sanitized.versions.drafts === true) {\n sanitized.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n if (sanitized.versions.drafts.autosave === true) {\n sanitized.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (sanitized.versions.drafts.validate === undefined) {\n sanitized.versions.drafts.validate = false\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, baseVersionFields)\n }\n }\n\n if (sanitized.upload) {\n if (sanitized.upload === true) {\n sanitized.upload = {}\n }\n\n // sanitize fields for reserved names\n sanitizeUploadFields(sanitized.fields, sanitized)\n\n sanitized.upload.bulkUpload = sanitized.upload?.bulkUpload ?? true\n sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug\n sanitized.admin.useAsTitle =\n sanitized.admin.useAsTitle && sanitized.admin.useAsTitle !== 'id'\n ? sanitized.admin.useAsTitle\n : 'filename'\n\n const uploadFields = getBaseUploadFields({\n collection: sanitized,\n config,\n })\n\n sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields)\n }\n\n if (sanitized.auth) {\n // sanitize fields for reserved names\n sanitizeAuthFields(sanitized.fields, sanitized)\n\n sanitized.auth = deepMergeWithReactComponents(\n authDefaults,\n typeof sanitized.auth === 'object' ? sanitized.auth : {},\n )\n\n if (!sanitized.auth.disableLocalStrategy && sanitized.auth.verify === true) {\n sanitized.auth.verify = {}\n }\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate ?? true\n\n if (!sanitized.auth.strategies) {\n sanitized.auth.strategies = []\n }\n\n if (sanitized.auth.loginWithUsername) {\n if (sanitized.auth.loginWithUsername === true) {\n sanitized.auth.loginWithUsername = loginWithUsernameDefaults\n } else {\n const loginWithUsernameWithDefaults = {\n ...loginWithUsernameDefaults,\n ...sanitized.auth.loginWithUsername,\n } as LoginWithUsernameOptions\n\n // if allowEmailLogin is false, requireUsername must be true\n if (loginWithUsernameWithDefaults.allowEmailLogin === false) {\n loginWithUsernameWithDefaults.requireUsername = true\n }\n sanitized.auth.loginWithUsername = loginWithUsernameWithDefaults\n }\n } else {\n sanitized.auth.loginWithUsername = false\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, getBaseAuthFields(sanitized.auth))\n }\n\n if (collection?.admin?.pagination?.limits?.length) {\n sanitized.admin.pagination.limits = collection.admin.pagination.limits\n }\n\n validateUseAsTitle(sanitized)\n\n const sanitizedConfig = sanitized as SanitizedCollectionConfig\n\n sanitizedConfig.joins = joins\n\n return sanitizedConfig\n}\n"],"names":["getBaseAuthFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","getBaseUploadFields","deepMergeWithReactComponents","formatLabels","baseVersionFields","versionDefaults","authDefaults","defaults","loginWithUsernameDefaults","sanitizeAuthFields","sanitizeUploadFields","validateUseAsTitle","sanitizeCollection","config","collection","richTextSanitizationPromises","sanitized","validRelationships","collections","reduce","acc","c","push","slug","joins","fields","collectionConfig","joinPath","parentIsLocalized","timestamps","hasUpdatedAt","hasCreatedAt","some","field","name","type","admin","disableBulkEdit","hidden","index","label","t","labels","versions","drafts","maxPerDoc","autosave","validate","interval","autosaveInterval","undefined","upload","bulkUpload","staticDir","useAsTitle","uploadFields","auth","disableLocalStrategy","verify","disableDuplicate","strategies","loginWithUsername","loginWithUsernameWithDefaults","allowEmailLogin","requireUsername","pagination","limits","length","sanitizedConfig"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "3.0.1",
3
+ "version": "3.0.2-canary.f4f29e6",
4
4
  "description": "Node, React, Headless CMS and Application Framework built on Next.js",
5
5
  "keywords": [
6
6
  "admin panel",
@@ -97,7 +97,7 @@
97
97
  "tsx": "4.19.2",
98
98
  "uuid": "10.0.0",
99
99
  "ws": "^8.16.0",
100
- "@payloadcms/translations": "3.0.1"
100
+ "@payloadcms/translations": "3.0.2-canary.f4f29e6"
101
101
  },
102
102
  "devDependencies": {
103
103
  "@hyrious/esbuild-plugin-commonjs": "^0.2.4",