payload 3.53.0 → 3.54.0-internal.84621da
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/admin/forms/Form.d.ts +1 -0
- package/dist/admin/forms/Form.d.ts.map +1 -1
- package/dist/admin/forms/Form.js.map +1 -1
- package/dist/auth/operations/logout.d.ts.map +1 -1
- package/dist/auth/operations/logout.js +3 -0
- package/dist/auth/operations/logout.js.map +1 -1
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js +2 -0
- package/dist/auth/operations/refresh.js.map +1 -1
- package/dist/auth/operations/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.js +2 -0
- package/dist/auth/operations/resetPassword.js.map +1 -1
- package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
- package/dist/auth/operations/verifyEmail.js +2 -0
- package/dist/auth/operations/verifyEmail.js.map +1 -1
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/sessions.js +2 -0
- package/dist/auth/sessions.js.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -0
- package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +73 -30
- package/dist/bin/index.js.map +1 -1
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/restoreVersion.js +2 -0
- package/dist/collections/operations/restoreVersion.js.map +1 -1
- package/dist/collections/operations/utilities/update.d.ts.map +1 -1
- package/dist/collections/operations/utilities/update.js +2 -0
- package/dist/collections/operations/utilities/update.js.map +1 -1
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/restoreVersion.js +2 -0
- package/dist/globals/operations/restoreVersion.js.map +1 -1
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +2 -0
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/queues/operations/handleSchedules/defaultAfterSchedule.d.ts.map +1 -1
- package/dist/queues/operations/handleSchedules/defaultAfterSchedule.js +2 -1
- package/dist/queues/operations/handleSchedules/defaultAfterSchedule.js.map +1 -1
- package/dist/queues/utilities/updateJob.d.ts.map +1 -1
- package/dist/queues/utilities/updateJob.js +2 -0
- package/dist/queues/utilities/updateJob.js.map +1 -1
- package/dist/uploads/types.d.ts +1 -1
- package/dist/uploads/types.js.map +1 -1
- package/package.json +2 -2
package/dist/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/index.ts"],"sourcesContent":["// @ts-strict-ignore\n/* eslint-disable no-console */\nimport { Cron } from 'croner'\nimport minimist from 'minimist'\nimport { pathToFileURL } from 'node:url'\nimport path from 'path'\n\nimport { findConfig } from '../config/find.js'\nimport payload, { getPayload } from '../index.js'\nimport { generateImportMap } from './generateImportMap/index.js'\nimport { generateTypes } from './generateTypes.js'\nimport { info } from './info.js'\nimport { loadEnv } from './loadEnv.js'\nimport { migrate, availableCommands as migrateCommands } from './migrate.js'\n\n// Note: this does not account for any user bin scripts\nconst availableScripts = [\n 'generate:db-schema',\n 'generate:importmap',\n 'generate:types',\n 'info',\n 'jobs:run',\n 'run',\n ...migrateCommands,\n] as const\n\nexport const bin = async () => {\n loadEnv()\n\n const args = minimist(process.argv.slice(2))\n const script = (typeof args._[0] === 'string' ? args._[0] : '').toLowerCase()\n\n if (script === 'info') {\n await info()\n return\n }\n\n if (script === 'run') {\n const scriptPath = args._[1]\n if (!scriptPath) {\n console.error('Please provide a script path to run.')\n process.exit(1)\n }\n\n const absoluteScriptPath = path.resolve(process.cwd(), scriptPath)\n\n // Modify process.argv to remove 'run' and the script path\n const originalArgv = process.argv\n process.argv = [process.argv[0]!, process.argv[1]!, ...args._.slice(2)]\n\n try {\n await import(pathToFileURL(absoluteScriptPath).toString())\n } catch (error) {\n console.error(`Error running script: ${absoluteScriptPath}`)\n console.error(error)\n process.exit(1)\n } finally {\n // Restore original process.argv\n process.argv = originalArgv\n }\n return\n }\n\n const configPath = findConfig()\n const configPromise = await import(pathToFileURL(configPath).toString())\n let config = await configPromise\n if (config.default) {\n config = await config.default\n }\n\n const userBinScript = Array.isArray(config.bin)\n ? config.bin.find(({ key }: { key: string }) => key === script)\n : false\n\n if (userBinScript) {\n try {\n const module = await import(pathToFileURL(userBinScript.scriptPath).toString())\n\n if (!module.script || typeof module.script !== 'function') {\n console.error(\n `Could not find \"script\" function export for script ${userBinScript.key} in ${userBinScript.scriptPath}`,\n )\n } else {\n await module.script(config).catch((err: unknown) => {\n console.log(`Script ${userBinScript.key} failed, details:`)\n console.error(err)\n })\n }\n } catch (err) {\n console.log(`Could not find associated bin script for the ${userBinScript.key} command`)\n console.error(err)\n }\n\n return\n }\n\n if (script.startsWith('migrate')) {\n return migrate({ config, parsedArgs: args }).then(() => process.exit(0))\n }\n\n if (script === 'generate:types') {\n return generateTypes(config)\n }\n\n if (script === 'generate:importmap') {\n return generateImportMap(config)\n }\n\n if (script === 'jobs:run') {\n const payload = await getPayload({ config }) // Do not setup crons here - this bin script can set up its own crons\n const limit = args.limit ? parseInt(args.limit, 10) : undefined\n const queue = args.queue ? args.queue : undefined\n const allQueues = !!args.allQueues\n\n if (args.cron) {\n new Cron(args.cron, async () => {\n await payload.jobs.run({\n allQueues,\n limit,\n queue,\n })\n })\n\n process.stdin.resume() // Keep the process alive\n\n return\n } else {\n await payload.jobs.run({\n allQueues,\n limit,\n queue,\n })\n\n await payload.destroy() // close database connections after running jobs so process can exit cleanly\n\n process.exit(0)\n }\n }\n\n if (script === 'generate:db-schema') {\n // Barebones instance to access database adapter, without connecting to the DB\n await payload.init({\n config,\n disableDBConnect: true,\n disableOnInit: true,\n })\n\n if (typeof payload.db.generateSchema !== 'function') {\n payload.logger.error({\n msg: `${payload.db.packageName} does not support database schema generation`,\n })\n\n process.exit(1)\n }\n\n await payload.db.generateSchema({\n log: args.log === 'false' ? false : true,\n prettify: args.prettify === 'false' ? false : true,\n })\n\n process.exit(0)\n }\n\n console.error(script ? `Unknown command: \"${script}\"` : 'Please provide a command to run')\n console.log(`\\nAvailable commands:\\n${availableScripts.map((c) => ` - ${c}`).join('\\n')}`)\n\n process.exit(1)\n}\n"],"names":["Cron","minimist","pathToFileURL","path","findConfig","payload","getPayload","generateImportMap","generateTypes","info","loadEnv","migrate","availableCommands","migrateCommands","availableScripts","bin","args","process","argv","slice","script","_","toLowerCase","scriptPath","console","error","exit","absoluteScriptPath","resolve","cwd","originalArgv","toString","configPath","configPromise","config","default","userBinScript","Array","isArray","find","key","module","catch","err","log","startsWith","parsedArgs","then","limit","parseInt","undefined","queue","allQueues","cron","jobs","run","stdin","resume","destroy","init","disableDBConnect","disableOnInit","db","generateSchema","logger","msg","packageName","prettify","map","c","join"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/bin/index.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { Cron } from 'croner'\nimport minimist from 'minimist'\nimport { pathToFileURL } from 'node:url'\nimport path from 'path'\n\nimport { findConfig } from '../config/find.js'\nimport { getPayload, type Payload } from '../index.js'\nimport { generateImportMap } from './generateImportMap/index.js'\nimport { generateTypes } from './generateTypes.js'\nimport { info } from './info.js'\nimport { loadEnv } from './loadEnv.js'\nimport { migrate, availableCommands as migrateCommands } from './migrate.js'\n\n// Note: this does not account for any user bin scripts\nconst availableScripts = [\n 'generate:db-schema',\n 'generate:importmap',\n 'generate:types',\n 'info',\n 'jobs:run',\n 'jobs:handle-schedules',\n 'run',\n ...migrateCommands,\n] as const\n\nexport const bin = async () => {\n loadEnv()\n process.env.DISABLE_PAYLOAD_HMR = 'true'\n\n const args = minimist(process.argv.slice(2))\n const script = (typeof args._[0] === 'string' ? args._[0] : '').toLowerCase()\n\n if (args.cron) {\n new Cron(args.cron, async () => {\n // If the bin script initializes payload (getPayload), this will only happen once, as getPayload\n // caches the payload instance on the module scope => no need to manually cache and manage getPayload initialization\n // outside the Cron here.\n await runBinScript({ args, script })\n })\n\n process.stdin.resume() // Keep the process alive\n\n return\n } else {\n const { payload } = await runBinScript({ args, script })\n if (payload) {\n await payload.destroy() // close database connections after running jobs so process can exit cleanly\n }\n process.exit(0)\n }\n}\n\nasync function runBinScript({\n args,\n script,\n}: {\n args: minimist.ParsedArgs\n script: string\n}): Promise<{\n /**\n * Scripts can return a payload instance if it exists. The bin script runner can then safely\n * shut off the instance, depending on if it's running in a cron job or not.\n */\n payload?: Payload\n}> {\n if (script === 'info') {\n await info()\n return {}\n }\n\n if (script === 'run') {\n const scriptPath = args._[1]\n if (!scriptPath) {\n console.error('Please provide a script path to run.')\n process.exit(1)\n }\n\n const absoluteScriptPath = path.resolve(process.cwd(), scriptPath)\n\n // Modify process.argv to remove 'run' and the script path\n const originalArgv = process.argv\n process.argv = [process.argv[0]!, process.argv[1]!, ...args._.slice(2)]\n\n try {\n await import(pathToFileURL(absoluteScriptPath).toString())\n } catch (error) {\n console.error(`Error running script: ${absoluteScriptPath}`)\n console.error(error)\n process.exit(1)\n } finally {\n // Restore original process.argv\n process.argv = originalArgv\n }\n return {}\n }\n\n const configPath = findConfig()\n const configPromise = await import(pathToFileURL(configPath).toString())\n let config = await configPromise\n if (config.default) {\n config = await config.default\n }\n\n const userBinScript = Array.isArray(config.bin)\n ? config.bin.find(({ key }: { key: string }) => key === script)\n : false\n\n if (userBinScript) {\n try {\n const module = await import(pathToFileURL(userBinScript.scriptPath).toString())\n\n if (!module.script || typeof module.script !== 'function') {\n console.error(\n `Could not find \"script\" function export for script ${userBinScript.key} in ${userBinScript.scriptPath}`,\n )\n } else {\n await module.script(config).catch((err: unknown) => {\n console.log(`Script ${userBinScript.key} failed, details:`)\n console.error(err)\n })\n }\n } catch (err) {\n console.log(`Could not find associated bin script for the ${userBinScript.key} command`)\n console.error(err)\n }\n\n return {}\n }\n\n if (script.startsWith('migrate')) {\n await migrate({ config, parsedArgs: args })\n return {}\n }\n\n if (script === 'generate:types') {\n await generateTypes(config)\n return {}\n }\n\n if (script === 'generate:importmap') {\n await generateImportMap(config)\n return {}\n }\n\n if (script === 'jobs:run') {\n const payload = await getPayload({ config }) // Do not setup crons here - this bin script can set up its own crons\n const limit = args.limit ? parseInt(args.limit, 10) : undefined\n const queue = args.queue ? args.queue : undefined\n const allQueues = !!args.allQueues\n const handleSchedules = !!args.handleSchedules\n\n if (handleSchedules) {\n await payload.jobs.handleSchedules({\n allQueues,\n queue,\n })\n }\n\n await payload.jobs.run({\n allQueues,\n limit,\n queue,\n })\n\n return { payload }\n }\n\n if (script === 'jobs:handle-schedules') {\n const payload = await getPayload({ config }) // Do not setup crons here - this bin script can set up its own crons\n const queue = args.queue ? args.queue : undefined\n const allQueues = !!args.allQueues\n\n await payload.jobs.handleSchedules({\n allQueues,\n queue,\n })\n\n return { payload }\n }\n\n if (script === 'generate:db-schema') {\n // Barebones instance to access database adapter, without connecting to the DB\n const payload = await getPayload({ config, disableDBConnect: true, disableOnInit: true }) // Do not setup crons here\n\n if (typeof payload.db.generateSchema !== 'function') {\n payload.logger.error({\n msg: `${payload.db.packageName} does not support database schema generation`,\n })\n\n await payload.destroy()\n process.exit(1)\n }\n\n await payload.db.generateSchema({\n log: args.log === 'false' ? false : true,\n prettify: args.prettify === 'false' ? false : true,\n })\n\n return { payload }\n }\n\n console.error(script ? `Unknown command: \"${script}\"` : 'Please provide a command to run')\n console.log(`\\nAvailable commands:\\n${availableScripts.map((c) => ` - ${c}`).join('\\n')}`)\n\n process.exit(1)\n}\n"],"names":["Cron","minimist","pathToFileURL","path","findConfig","getPayload","generateImportMap","generateTypes","info","loadEnv","migrate","availableCommands","migrateCommands","availableScripts","bin","process","env","DISABLE_PAYLOAD_HMR","args","argv","slice","script","_","toLowerCase","cron","runBinScript","stdin","resume","payload","destroy","exit","scriptPath","console","error","absoluteScriptPath","resolve","cwd","originalArgv","toString","configPath","configPromise","config","default","userBinScript","Array","isArray","find","key","module","catch","err","log","startsWith","parsedArgs","limit","parseInt","undefined","queue","allQueues","handleSchedules","jobs","run","disableDBConnect","disableOnInit","db","generateSchema","logger","msg","packageName","prettify","map","c","join"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/restoreVersion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAmBhE,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,KAAK,SAAS,UAAU,cAC9D,SAAS,KACd,OAAO,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/restoreVersion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAmBhE,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,KAAK,SAAS,UAAU,cAC9D,SAAS,KACd,OAAO,CAAC,KAAK,CAiVf,CAAA"}
|
|
@@ -198,6 +198,8 @@ export const restoreVersionOperation = async (args)=>{
|
|
|
198
198
|
forceSelect: collectionConfig.forceSelect,
|
|
199
199
|
select: incomingSelect
|
|
200
200
|
});
|
|
201
|
+
// Ensure updatedAt date is always updated
|
|
202
|
+
result.updatedAt = new Date().toISOString();
|
|
201
203
|
result = await req.payload.db.updateOne({
|
|
202
204
|
id: parentDocID,
|
|
203
205
|
collection: collectionConfig.slug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/operations/restoreVersion.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type { PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\nimport type { Collection, TypeWithID } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n disableTransaction?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n populate?: PopulateType\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n}\n\nexport const restoreVersionOperation = async <TData extends TypeWithID = any>(\n args: Arguments,\n): Promise<TData> => {\n const {\n id,\n collection: { config: collectionConfig },\n depth,\n draft: draftArg = false,\n overrideAccess = false,\n populate,\n req,\n req: { fallbackLocale, locale, payload },\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n if (args.collection.config.hooks?.beforeOperation?.length) {\n for (const hook of args.collection.config.hooks.beforeOperation) {\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'restoreVersion',\n req: args.req,\n })) || args\n }\n }\n\n if (!id) {\n throw new APIError('Missing ID of version to restore.', httpStatus.BAD_REQUEST)\n }\n\n // /////////////////////////////////////\n // Retrieve original raw version\n // /////////////////////////////////////\n\n const { docs: versionDocs } = await req.payload.db.findVersions({\n collection: collectionConfig.slug,\n limit: 1,\n locale: locale!,\n pagination: false,\n req,\n where: { id: { equals: id } },\n })\n\n const [rawVersion] = versionDocs\n\n if (!rawVersion) {\n throw new NotFound(req.t)\n }\n\n const { parent: parentDocID, version: versionToRestoreWithLocales } = rawVersion\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id: parentDocID, req }, collectionConfig.access.update)\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale: locale!,\n req,\n where: combineQueries({ id: { equals: parentDocID } }, accessResults),\n }\n\n // Get the document from the non versioned collection\n const doc = await req.payload.db.findOne(findOneArgs)\n\n if (!doc && !hasWherePolicy) {\n throw new NotFound(req.t)\n }\n if (!doc && hasWherePolicy) {\n throw new Forbidden(req.t)\n }\n\n if (collectionConfig.trash && doc?.deletedAt) {\n throw new APIError(\n `Cannot restore a version of a trashed document (ID: ${parentDocID}). Restore the document first.`,\n httpStatus.FORBIDDEN,\n )\n }\n\n // /////////////////////////////////////\n // fetch previousDoc\n // /////////////////////////////////////\n const prevDocWithLocales = await getLatestCollectionVersion({\n id: parentDocID,\n config: collectionConfig,\n payload,\n query: findOneArgs,\n req,\n })\n\n // originalDoc with hoisted localized data\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(prevDocWithLocales),\n draft: draftArg,\n fallbackLocale: null,\n global: null,\n locale: locale!,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n // version data with hoisted localized data\n const prevVersionDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(versionToRestoreWithLocales),\n draft: draftArg,\n fallbackLocale: null,\n global: null,\n locale: locale!,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n let data = deepCopyObjectSimple(prevVersionDoc)\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n id: parentDocID,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let result = await beforeChange({\n id: parentDocID,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id: parentDocID },\n doc: originalDoc,\n docWithLocales: versionToRestoreWithLocales,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n skipValidation:\n draftArg && collectionConfig.versions.drafts && !collectionConfig.versions.drafts.validate,\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n const select = sanitizeSelect({\n fields: collectionConfig.flattenedFields,\n forceSelect: collectionConfig.forceSelect,\n select: incomingSelect,\n })\n\n result = await req.payload.db.updateOne({\n id: parentDocID,\n collection: collectionConfig.slug,\n data: result,\n req,\n select,\n })\n\n // /////////////////////////////////////\n // Save `previousDoc` as a version after restoring\n // /////////////////////////////////////\n\n result = await saveVersion({\n id: parentDocID,\n autosave: false,\n collection: collectionConfig,\n docWithLocales: result,\n draft: draftArg,\n operation: 'restoreVersion',\n payload,\n req,\n select,\n })\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: depth!,\n doc: result,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n draft: undefined,\n fallbackLocale: fallbackLocale!,\n global: null,\n locale: locale!,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data: result,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: prevDocWithLocales,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data: result,\n doc: result,\n operation: 'update',\n previousDoc: prevDocWithLocales,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'restoreVersion',\n result,\n })\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["status","httpStatus","executeAccess","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","afterChange","afterRead","beforeChange","beforeValidate","commitTransaction","deepCopyObjectSimple","initTransaction","killTransaction","sanitizeSelect","getLatestCollectionVersion","saveVersion","buildAfterOperation","restoreVersionOperation","args","id","collection","config","collectionConfig","depth","draft","draftArg","overrideAccess","populate","req","fallbackLocale","locale","payload","select","incomingSelect","showHiddenFields","shouldCommit","disableTransaction","hooks","beforeOperation","length","hook","context","operation","BAD_REQUEST","docs","versionDocs","db","findVersions","slug","limit","pagination","where","equals","rawVersion","t","parent","parentDocID","version","versionToRestoreWithLocales","accessResults","access","update","hasWherePolicy","findOneArgs","doc","findOne","trash","deletedAt","FORBIDDEN","prevDocWithLocales","query","originalDoc","global","prevVersionDoc","data","result","docWithLocales","skipValidation","versions","drafts","validate","fields","flattenedFields","forceSelect","updateOne","autosave","undefined","previousDoc","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/operations/restoreVersion.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type { PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\nimport type { Collection, TypeWithID } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n disableTransaction?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n populate?: PopulateType\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n}\n\nexport const restoreVersionOperation = async <TData extends TypeWithID = any>(\n args: Arguments,\n): Promise<TData> => {\n const {\n id,\n collection: { config: collectionConfig },\n depth,\n draft: draftArg = false,\n overrideAccess = false,\n populate,\n req,\n req: { fallbackLocale, locale, payload },\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n if (args.collection.config.hooks?.beforeOperation?.length) {\n for (const hook of args.collection.config.hooks.beforeOperation) {\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'restoreVersion',\n req: args.req,\n })) || args\n }\n }\n\n if (!id) {\n throw new APIError('Missing ID of version to restore.', httpStatus.BAD_REQUEST)\n }\n\n // /////////////////////////////////////\n // Retrieve original raw version\n // /////////////////////////////////////\n\n const { docs: versionDocs } = await req.payload.db.findVersions({\n collection: collectionConfig.slug,\n limit: 1,\n locale: locale!,\n pagination: false,\n req,\n where: { id: { equals: id } },\n })\n\n const [rawVersion] = versionDocs\n\n if (!rawVersion) {\n throw new NotFound(req.t)\n }\n\n const { parent: parentDocID, version: versionToRestoreWithLocales } = rawVersion\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id: parentDocID, req }, collectionConfig.access.update)\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale: locale!,\n req,\n where: combineQueries({ id: { equals: parentDocID } }, accessResults),\n }\n\n // Get the document from the non versioned collection\n const doc = await req.payload.db.findOne(findOneArgs)\n\n if (!doc && !hasWherePolicy) {\n throw new NotFound(req.t)\n }\n if (!doc && hasWherePolicy) {\n throw new Forbidden(req.t)\n }\n\n if (collectionConfig.trash && doc?.deletedAt) {\n throw new APIError(\n `Cannot restore a version of a trashed document (ID: ${parentDocID}). Restore the document first.`,\n httpStatus.FORBIDDEN,\n )\n }\n\n // /////////////////////////////////////\n // fetch previousDoc\n // /////////////////////////////////////\n const prevDocWithLocales = await getLatestCollectionVersion({\n id: parentDocID,\n config: collectionConfig,\n payload,\n query: findOneArgs,\n req,\n })\n\n // originalDoc with hoisted localized data\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(prevDocWithLocales),\n draft: draftArg,\n fallbackLocale: null,\n global: null,\n locale: locale!,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n // version data with hoisted localized data\n const prevVersionDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(versionToRestoreWithLocales),\n draft: draftArg,\n fallbackLocale: null,\n global: null,\n locale: locale!,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n let data = deepCopyObjectSimple(prevVersionDoc)\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n id: parentDocID,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let result = await beforeChange({\n id: parentDocID,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id: parentDocID },\n doc: originalDoc,\n docWithLocales: versionToRestoreWithLocales,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n skipValidation:\n draftArg && collectionConfig.versions.drafts && !collectionConfig.versions.drafts.validate,\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n const select = sanitizeSelect({\n fields: collectionConfig.flattenedFields,\n forceSelect: collectionConfig.forceSelect,\n select: incomingSelect,\n })\n\n // Ensure updatedAt date is always updated\n result.updatedAt = new Date().toISOString()\n result = await req.payload.db.updateOne({\n id: parentDocID,\n collection: collectionConfig.slug,\n data: result,\n req,\n select,\n })\n\n // /////////////////////////////////////\n // Save `previousDoc` as a version after restoring\n // /////////////////////////////////////\n\n result = await saveVersion({\n id: parentDocID,\n autosave: false,\n collection: collectionConfig,\n docWithLocales: result,\n draft: draftArg,\n operation: 'restoreVersion',\n payload,\n req,\n select,\n })\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: depth!,\n doc: result,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n draft: undefined,\n fallbackLocale: fallbackLocale!,\n global: null,\n locale: locale!,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data: result,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: prevDocWithLocales,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data: result,\n doc: result,\n operation: 'update',\n previousDoc: prevDocWithLocales,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'restoreVersion',\n result,\n })\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["status","httpStatus","executeAccess","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","afterChange","afterRead","beforeChange","beforeValidate","commitTransaction","deepCopyObjectSimple","initTransaction","killTransaction","sanitizeSelect","getLatestCollectionVersion","saveVersion","buildAfterOperation","restoreVersionOperation","args","id","collection","config","collectionConfig","depth","draft","draftArg","overrideAccess","populate","req","fallbackLocale","locale","payload","select","incomingSelect","showHiddenFields","shouldCommit","disableTransaction","hooks","beforeOperation","length","hook","context","operation","BAD_REQUEST","docs","versionDocs","db","findVersions","slug","limit","pagination","where","equals","rawVersion","t","parent","parentDocID","version","versionToRestoreWithLocales","accessResults","access","update","hasWherePolicy","findOneArgs","doc","findOne","trash","deletedAt","FORBIDDEN","prevDocWithLocales","query","originalDoc","global","prevVersionDoc","data","result","docWithLocales","skipValidation","versions","drafts","validate","fields","flattenedFields","forceSelect","updatedAt","Date","toISOString","updateOne","autosave","undefined","previousDoc","error"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/utilities/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,uBAAuB,CAAA;AAS9B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAA;AAO1B,MAAM,MAAM,wBAAwB,CAAC,KAAK,SAAS,cAAc,IAAI;IACnE,aAAa,EAAE,YAAY,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,GAAG,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,UAAU,EAAE,CAAA;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,gQAsB9C,wBAAwB,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/utilities/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,uBAAuB,CAAA;AAS9B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAA;AAO1B,MAAM,MAAM,wBAAwB,CAAC,KAAK,SAAS,cAAc,IAAI;IACnE,aAAa,EAAE,YAAY,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,GAAG,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,UAAU,EAAE,CAAA;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,gQAsB9C,wBAAwB,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CA8SzF,CAAA"}
|
|
@@ -192,6 +192,8 @@ import { saveVersion } from '../../../versions/saveVersion.js';
|
|
|
192
192
|
// Update
|
|
193
193
|
// /////////////////////////////////////
|
|
194
194
|
if (!shouldSaveDraft) {
|
|
195
|
+
// Ensure updatedAt date is always updated
|
|
196
|
+
dataToUpdate.updatedAt = new Date().toISOString();
|
|
195
197
|
result = await req.payload.db.updateOne({
|
|
196
198
|
id,
|
|
197
199
|
collection: collectionConfig.slug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/collections/operations/utilities/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { Args } from '../../../fields/hooks/beforeChange/index.js'\nimport type {\n Payload,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../../types/index.js'\nimport type {\n DataFromCollectionSlug,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n} from '../../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js'\nimport { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { combineQueries } from '../../../database/combineQueries.js'\nimport { afterChange } from '../../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js'\nimport {\n type AccessResult,\n type CollectionSlug,\n deepCopyObjectSimple,\n type FileToSave,\n type SanitizedConfig,\n} from '../../../index.js'\nimport { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js'\nimport { uploadFiles } from '../../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js'\nimport { getLatestCollectionVersion } from '../../../versions/getLatestCollectionVersion.js'\nimport { saveVersion } from '../../../versions/saveVersion.js'\n\nexport type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {\n accessResults: AccessResult\n autosave: boolean\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n data: DeepPartial<DataFromCollectionSlug<TSlug>>\n depth: number\n docWithLocales: any\n draftArg: boolean\n fallbackLocale: string\n filesToUpload: FileToSave[]\n id: number | string\n locale: string\n overrideAccess: boolean\n overrideLock: boolean\n payload: Payload\n populate?: PopulateType\n publishSpecificLocale?: string\n req: PayloadRequest\n select: SelectType\n showHiddenFields: boolean\n}\n\n/**\n * This function is used to update a document in the DB and return the result.\n *\n * It runs the following hooks in order:\n * - beforeValidate - Fields\n * - beforeValidate - Collection\n * - beforeChange - Collection\n * - beforeChange - Fields\n * - afterRead - Fields\n * - afterRead - Collection\n * - afterChange - Fields\n * - afterChange - Collection\n */\nexport const updateDocument = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n id,\n accessResults,\n autosave,\n collectionConfig,\n config,\n data,\n depth,\n docWithLocales,\n draftArg,\n fallbackLocale,\n filesToUpload,\n locale,\n overrideAccess,\n overrideLock,\n payload,\n populate,\n publishSpecificLocale,\n req,\n select,\n showHiddenFields,\n}: SharedUpdateDocumentArgs<TSlug>): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const password = data?.password\n const shouldSaveDraft =\n Boolean(draftArg && collectionConfig.versions.drafts) && data._status !== 'published'\n const shouldSavePassword = Boolean(\n password &&\n collectionConfig.auth &&\n (!collectionConfig.auth.disableLocalStrategy ||\n (typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.enableFields)) &&\n !shouldSaveDraft,\n )\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(docWithLocales),\n draft: draftArg,\n fallbackLocale: id ? null : fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n if (collectionConfig.auth) {\n ensureUsernameOrEmail<TSlug>({\n authOptions: collectionConfig.auth,\n collectionSlug: collectionConfig.slug,\n data,\n operation: 'update',\n originalDoc,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Delete any associated files\n // /////////////////////////////////////\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let publishedDocWithLocales = docWithLocales\n let versionSnapshotResult\n\n const beforeChangeArgs: Args<DataFromCollectionSlug<TSlug>> = {\n id,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id },\n doc: originalDoc,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n docWithLocales: undefined,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate,\n }\n\n if (publishSpecificLocale) {\n versionSnapshotResult = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales,\n })\n\n const lastPublished = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n published: true,\n query: {\n collection: collectionConfig.slug,\n locale,\n req,\n where: combineQueries({ id: { equals: id } }, accessResults),\n },\n req,\n })\n\n publishedDocWithLocales = lastPublished ? lastPublished : {}\n }\n\n let result = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: publishedDocWithLocales,\n })\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n const dataToUpdate: Record<string, unknown> = { ...result }\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password,\n req,\n })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft) {\n result = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n select,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n draft: shouldSaveDraft,\n operation: 'update',\n payload,\n publishSpecificLocale,\n req,\n select,\n snapshot: versionSnapshotResult,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })) || result\n }\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n}\n"],"names":["ensureUsernameOrEmail","generatePasswordSaltHash","combineQueries","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","deleteAssociatedFiles","uploadFiles","checkDocumentLockStatus","getLatestCollectionVersion","saveVersion","updateDocument","id","accessResults","autosave","collectionConfig","config","data","depth","docWithLocales","draftArg","fallbackLocale","filesToUpload","locale","overrideAccess","overrideLock","payload","populate","publishSpecificLocale","req","select","showHiddenFields","password","shouldSaveDraft","Boolean","versions","drafts","_status","shouldSavePassword","auth","disableLocalStrategy","enableFields","collectionSlug","slug","lockErrorMessage","originalDoc","collection","context","doc","draft","global","authOptions","operation","files","overrideDelete","hooks","length","hook","upload","disableLocalStorage","publishedDocWithLocales","versionSnapshotResult","beforeChangeArgs","undefined","skipValidation","validate","lastPublished","published","query","where","equals","result","dataToUpdate","hash","salt","db","updateOne","snapshot","previousDoc"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/collections/operations/utilities/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { Args } from '../../../fields/hooks/beforeChange/index.js'\nimport type {\n Payload,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../../types/index.js'\nimport type {\n DataFromCollectionSlug,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n} from '../../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js'\nimport { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { combineQueries } from '../../../database/combineQueries.js'\nimport { afterChange } from '../../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js'\nimport {\n type AccessResult,\n type CollectionSlug,\n deepCopyObjectSimple,\n type FileToSave,\n type SanitizedConfig,\n} from '../../../index.js'\nimport { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js'\nimport { uploadFiles } from '../../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js'\nimport { getLatestCollectionVersion } from '../../../versions/getLatestCollectionVersion.js'\nimport { saveVersion } from '../../../versions/saveVersion.js'\n\nexport type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {\n accessResults: AccessResult\n autosave: boolean\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n data: DeepPartial<DataFromCollectionSlug<TSlug>>\n depth: number\n docWithLocales: any\n draftArg: boolean\n fallbackLocale: string\n filesToUpload: FileToSave[]\n id: number | string\n locale: string\n overrideAccess: boolean\n overrideLock: boolean\n payload: Payload\n populate?: PopulateType\n publishSpecificLocale?: string\n req: PayloadRequest\n select: SelectType\n showHiddenFields: boolean\n}\n\n/**\n * This function is used to update a document in the DB and return the result.\n *\n * It runs the following hooks in order:\n * - beforeValidate - Fields\n * - beforeValidate - Collection\n * - beforeChange - Collection\n * - beforeChange - Fields\n * - afterRead - Fields\n * - afterRead - Collection\n * - afterChange - Fields\n * - afterChange - Collection\n */\nexport const updateDocument = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n id,\n accessResults,\n autosave,\n collectionConfig,\n config,\n data,\n depth,\n docWithLocales,\n draftArg,\n fallbackLocale,\n filesToUpload,\n locale,\n overrideAccess,\n overrideLock,\n payload,\n populate,\n publishSpecificLocale,\n req,\n select,\n showHiddenFields,\n}: SharedUpdateDocumentArgs<TSlug>): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const password = data?.password\n const shouldSaveDraft =\n Boolean(draftArg && collectionConfig.versions.drafts) && data._status !== 'published'\n const shouldSavePassword = Boolean(\n password &&\n collectionConfig.auth &&\n (!collectionConfig.auth.disableLocalStrategy ||\n (typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.enableFields)) &&\n !shouldSaveDraft,\n )\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(docWithLocales),\n draft: draftArg,\n fallbackLocale: id ? null : fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n if (collectionConfig.auth) {\n ensureUsernameOrEmail<TSlug>({\n authOptions: collectionConfig.auth,\n collectionSlug: collectionConfig.slug,\n data,\n operation: 'update',\n originalDoc,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Delete any associated files\n // /////////////////////////////////////\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let publishedDocWithLocales = docWithLocales\n let versionSnapshotResult\n\n const beforeChangeArgs: Args<DataFromCollectionSlug<TSlug>> = {\n id,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id },\n doc: originalDoc,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n docWithLocales: undefined,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate,\n }\n\n if (publishSpecificLocale) {\n versionSnapshotResult = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales,\n })\n\n const lastPublished = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n published: true,\n query: {\n collection: collectionConfig.slug,\n locale,\n req,\n where: combineQueries({ id: { equals: id } }, accessResults),\n },\n req,\n })\n\n publishedDocWithLocales = lastPublished ? lastPublished : {}\n }\n\n let result = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: publishedDocWithLocales,\n })\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n const dataToUpdate: Record<string, unknown> = { ...result }\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password,\n req,\n })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft) {\n // Ensure updatedAt date is always updated\n dataToUpdate.updatedAt = new Date().toISOString()\n result = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n select,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n draft: shouldSaveDraft,\n operation: 'update',\n payload,\n publishSpecificLocale,\n req,\n select,\n snapshot: versionSnapshotResult,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })) || result\n }\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n}\n"],"names":["ensureUsernameOrEmail","generatePasswordSaltHash","combineQueries","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","deleteAssociatedFiles","uploadFiles","checkDocumentLockStatus","getLatestCollectionVersion","saveVersion","updateDocument","id","accessResults","autosave","collectionConfig","config","data","depth","docWithLocales","draftArg","fallbackLocale","filesToUpload","locale","overrideAccess","overrideLock","payload","populate","publishSpecificLocale","req","select","showHiddenFields","password","shouldSaveDraft","Boolean","versions","drafts","_status","shouldSavePassword","auth","disableLocalStrategy","enableFields","collectionSlug","slug","lockErrorMessage","originalDoc","collection","context","doc","draft","global","authOptions","operation","files","overrideDelete","hooks","length","hook","upload","disableLocalStorage","publishedDocWithLocales","versionSnapshotResult","beforeChangeArgs","undefined","skipValidation","validate","lastPublished","published","query","where","equals","result","dataToUpdate","hash","salt","updatedAt","Date","toISOString","db","updateOne","snapshot","previousDoc"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/restoreVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAU/D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,cAClE,SAAS,KACd,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/restoreVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAU/D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,cAClE,SAAS,KACd,OAAO,CAAC,CAAC,CAuKX,CAAA"}
|
|
@@ -59,6 +59,8 @@ export const restoreVersionOperation = async (args)=>{
|
|
|
59
59
|
});
|
|
60
60
|
let result = rawVersion.version;
|
|
61
61
|
if (global) {
|
|
62
|
+
// Ensure updatedAt date is always updated
|
|
63
|
+
result.updatedAt = new Date().toISOString();
|
|
62
64
|
result = await payload.db.updateGlobal({
|
|
63
65
|
slug: globalConfig.slug,
|
|
64
66
|
data: result,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/operations/restoreVersion.ts"],"sourcesContent":["import type { PayloadRequest, PopulateType } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { NotFound } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\n\nexport type Arguments = {\n depth?: number\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n id: number | string\n overrideAccess?: boolean\n populate?: PopulateType\n req?: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const restoreVersionOperation = async <T extends TypeWithVersion<T> = any>(\n args: Arguments,\n): Promise<T> => {\n const { id, depth, draft, globalConfig, overrideAccess, populate, showHiddenFields } = args\n const req = args.req!\n const { fallbackLocale, locale, payload } = req\n\n try {\n const shouldCommit = await initTransaction(req)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ req }, globalConfig.access.update)\n }\n\n // /////////////////////////////////////\n // Retrieve original raw version\n // /////////////////////////////////////\n\n const { docs: versionDocs } = await payload.db.findGlobalVersions<any>({\n global: globalConfig.slug,\n limit: 1,\n req,\n where: { id: { equals: id } },\n })\n\n if (!versionDocs || versionDocs.length === 0) {\n throw new NotFound(req.t)\n }\n\n const rawVersion = versionDocs[0]!\n\n // Patch globalType onto version doc\n rawVersion.version.globalType = globalConfig.slug\n\n // Overwrite draft status if draft is true\n\n if (draft) {\n rawVersion.version._status = 'draft'\n }\n // /////////////////////////////////////\n // fetch previousDoc\n // /////////////////////////////////////\n\n const previousDoc = await payload.findGlobal({\n slug: globalConfig.slug,\n depth,\n req,\n })\n\n // /////////////////////////////////////\n // Update global\n // /////////////////////////////////////\n\n const global = await payload.db.findGlobal({\n slug: globalConfig.slug,\n req,\n })\n\n let result = rawVersion.version\n\n if (global) {\n result = await payload.db.updateGlobal({\n slug: globalConfig.slug,\n data: result,\n req,\n })\n\n const now = new Date().toISOString()\n\n result = await payload.db.createGlobalVersion({\n autosave: false,\n createdAt: result.createdAt ? new Date(result.createdAt).toISOString() : now,\n globalSlug: globalConfig.slug,\n parent: id,\n req,\n updatedAt: draft ? now : new Date(result.updatedAt).toISOString(),\n versionData: result,\n })\n } else {\n result = await payload.db.createGlobal({\n slug: globalConfig.slug,\n data: result,\n req,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: null,\n context: req.context,\n depth: depth!,\n doc: result,\n draft: undefined!,\n fallbackLocale: fallbackLocale!,\n global: globalConfig,\n locale: locale!,\n overrideAccess: overrideAccess!,\n populate,\n req,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n for (const hook of globalConfig.hooks.afterRead) {\n result =\n (await hook({\n context: req.context,\n doc: result,\n global: globalConfig,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: null,\n context: req.context,\n data: result,\n doc: result,\n global: globalConfig,\n operation: 'update',\n previousDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterChange?.length) {\n for (const hook of globalConfig.hooks.afterChange) {\n result =\n (await hook({\n context: req.context,\n data: result,\n doc: result,\n global: globalConfig,\n previousDoc,\n req,\n })) || result\n }\n }\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","NotFound","afterChange","afterRead","commitTransaction","initTransaction","killTransaction","restoreVersionOperation","args","id","depth","draft","globalConfig","overrideAccess","populate","showHiddenFields","req","fallbackLocale","locale","payload","shouldCommit","access","update","docs","versionDocs","db","findGlobalVersions","global","slug","limit","where","equals","length","t","rawVersion","version","globalType","_status","previousDoc","findGlobal","result","
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/operations/restoreVersion.ts"],"sourcesContent":["import type { PayloadRequest, PopulateType } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { NotFound } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\n\nexport type Arguments = {\n depth?: number\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n id: number | string\n overrideAccess?: boolean\n populate?: PopulateType\n req?: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const restoreVersionOperation = async <T extends TypeWithVersion<T> = any>(\n args: Arguments,\n): Promise<T> => {\n const { id, depth, draft, globalConfig, overrideAccess, populate, showHiddenFields } = args\n const req = args.req!\n const { fallbackLocale, locale, payload } = req\n\n try {\n const shouldCommit = await initTransaction(req)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ req }, globalConfig.access.update)\n }\n\n // /////////////////////////////////////\n // Retrieve original raw version\n // /////////////////////////////////////\n\n const { docs: versionDocs } = await payload.db.findGlobalVersions<any>({\n global: globalConfig.slug,\n limit: 1,\n req,\n where: { id: { equals: id } },\n })\n\n if (!versionDocs || versionDocs.length === 0) {\n throw new NotFound(req.t)\n }\n\n const rawVersion = versionDocs[0]!\n\n // Patch globalType onto version doc\n rawVersion.version.globalType = globalConfig.slug\n\n // Overwrite draft status if draft is true\n\n if (draft) {\n rawVersion.version._status = 'draft'\n }\n // /////////////////////////////////////\n // fetch previousDoc\n // /////////////////////////////////////\n\n const previousDoc = await payload.findGlobal({\n slug: globalConfig.slug,\n depth,\n req,\n })\n\n // /////////////////////////////////////\n // Update global\n // /////////////////////////////////////\n\n const global = await payload.db.findGlobal({\n slug: globalConfig.slug,\n req,\n })\n\n let result = rawVersion.version\n\n if (global) {\n // Ensure updatedAt date is always updated\n result.updatedAt = new Date().toISOString()\n result = await payload.db.updateGlobal({\n slug: globalConfig.slug,\n data: result,\n req,\n })\n\n const now = new Date().toISOString()\n\n result = await payload.db.createGlobalVersion({\n autosave: false,\n createdAt: result.createdAt ? new Date(result.createdAt).toISOString() : now,\n globalSlug: globalConfig.slug,\n parent: id,\n req,\n updatedAt: draft ? now : new Date(result.updatedAt).toISOString(),\n versionData: result,\n })\n } else {\n result = await payload.db.createGlobal({\n slug: globalConfig.slug,\n data: result,\n req,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: null,\n context: req.context,\n depth: depth!,\n doc: result,\n draft: undefined!,\n fallbackLocale: fallbackLocale!,\n global: globalConfig,\n locale: locale!,\n overrideAccess: overrideAccess!,\n populate,\n req,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n for (const hook of globalConfig.hooks.afterRead) {\n result =\n (await hook({\n context: req.context,\n doc: result,\n global: globalConfig,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: null,\n context: req.context,\n data: result,\n doc: result,\n global: globalConfig,\n operation: 'update',\n previousDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterChange?.length) {\n for (const hook of globalConfig.hooks.afterChange) {\n result =\n (await hook({\n context: req.context,\n data: result,\n doc: result,\n global: globalConfig,\n previousDoc,\n req,\n })) || result\n }\n }\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","NotFound","afterChange","afterRead","commitTransaction","initTransaction","killTransaction","restoreVersionOperation","args","id","depth","draft","globalConfig","overrideAccess","populate","showHiddenFields","req","fallbackLocale","locale","payload","shouldCommit","access","update","docs","versionDocs","db","findGlobalVersions","global","slug","limit","where","equals","length","t","rawVersion","version","globalType","_status","previousDoc","findGlobal","result","updatedAt","Date","toISOString","updateGlobal","data","now","createGlobalVersion","autosave","createdAt","globalSlug","parent","versionData","createGlobal","collection","context","doc","undefined","hooks","hook","operation","error"],"mappings":"AAIA,SAASA,aAAa,QAAQ,8BAA6B;AAC3D,SAASC,QAAQ,QAAQ,wBAAuB;AAChD,SAASC,WAAW,QAAQ,0CAAyC;AACrE,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AAapE,OAAO,MAAMC,0BAA0B,OACrCC;IAEA,MAAM,EAAEC,EAAE,EAAEC,KAAK,EAAEC,KAAK,EAAEC,YAAY,EAAEC,cAAc,EAAEC,QAAQ,EAAEC,gBAAgB,EAAE,GAAGP;IACvF,MAAMQ,MAAMR,KAAKQ,GAAG;IACpB,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGH;IAE5C,IAAI;QACF,MAAMI,eAAe,MAAMf,gBAAgBW;QAE3C,wCAAwC;QACxC,SAAS;QACT,wCAAwC;QAExC,IAAI,CAACH,gBAAgB;YACnB,MAAMb,cAAc;gBAAEgB;YAAI,GAAGJ,aAAaS,MAAM,CAACC,MAAM;QACzD;QAEA,wCAAwC;QACxC,gCAAgC;QAChC,wCAAwC;QAExC,MAAM,EAAEC,MAAMC,WAAW,EAAE,GAAG,MAAML,QAAQM,EAAE,CAACC,kBAAkB,CAAM;YACrEC,QAAQf,aAAagB,IAAI;YACzBC,OAAO;YACPb;YACAc,OAAO;gBAAErB,IAAI;oBAAEsB,QAAQtB;gBAAG;YAAE;QAC9B;QAEA,IAAI,CAACe,eAAeA,YAAYQ,MAAM,KAAK,GAAG;YAC5C,MAAM,IAAI/B,SAASe,IAAIiB,CAAC;QAC1B;QAEA,MAAMC,aAAaV,WAAW,CAAC,EAAE;QAEjC,oCAAoC;QACpCU,WAAWC,OAAO,CAACC,UAAU,GAAGxB,aAAagB,IAAI;QAEjD,0CAA0C;QAE1C,IAAIjB,OAAO;YACTuB,WAAWC,OAAO,CAACE,OAAO,GAAG;QAC/B;QACA,wCAAwC;QACxC,oBAAoB;QACpB,wCAAwC;QAExC,MAAMC,cAAc,MAAMnB,QAAQoB,UAAU,CAAC;YAC3CX,MAAMhB,aAAagB,IAAI;YACvBlB;YACAM;QACF;QAEA,wCAAwC;QACxC,gBAAgB;QAChB,wCAAwC;QAExC,MAAMW,SAAS,MAAMR,QAAQM,EAAE,CAACc,UAAU,CAAC;YACzCX,MAAMhB,aAAagB,IAAI;YACvBZ;QACF;QAEA,IAAIwB,SAASN,WAAWC,OAAO;QAE/B,IAAIR,QAAQ;YACV,0CAA0C;YAC1Ca,OAAOC,SAAS,GAAG,IAAIC,OAAOC,WAAW;YACzCH,SAAS,MAAMrB,QAAQM,EAAE,CAACmB,YAAY,CAAC;gBACrChB,MAAMhB,aAAagB,IAAI;gBACvBiB,MAAML;gBACNxB;YACF;YAEA,MAAM8B,MAAM,IAAIJ,OAAOC,WAAW;YAElCH,SAAS,MAAMrB,QAAQM,EAAE,CAACsB,mBAAmB,CAAC;gBAC5CC,UAAU;gBACVC,WAAWT,OAAOS,SAAS,GAAG,IAAIP,KAAKF,OAAOS,SAAS,EAAEN,WAAW,KAAKG;gBACzEI,YAAYtC,aAAagB,IAAI;gBAC7BuB,QAAQ1C;gBACRO;gBACAyB,WAAW9B,QAAQmC,MAAM,IAAIJ,KAAKF,OAAOC,SAAS,EAAEE,WAAW;gBAC/DS,aAAaZ;YACf;QACF,OAAO;YACLA,SAAS,MAAMrB,QAAQM,EAAE,CAAC4B,YAAY,CAAC;gBACrCzB,MAAMhB,aAAagB,IAAI;gBACvBiB,MAAML;gBACNxB;YACF;QACF;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExCwB,SAAS,MAAMrC,UAAU;YACvBmD,YAAY;YACZC,SAASvC,IAAIuC,OAAO;YACpB7C,OAAOA;YACP8C,KAAKhB;YACL7B,OAAO8C;YACPxC,gBAAgBA;YAChBU,QAAQf;YACRM,QAAQA;YACRL,gBAAgBA;YAChBC;YACAE;YACAD,kBAAkBA;QACpB;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExC,IAAIH,aAAa8C,KAAK,EAAEvD,WAAW6B,QAAQ;YACzC,KAAK,MAAM2B,QAAQ/C,aAAa8C,KAAK,CAACvD,SAAS,CAAE;gBAC/CqC,SACE,AAAC,MAAMmB,KAAK;oBACVJ,SAASvC,IAAIuC,OAAO;oBACpBC,KAAKhB;oBACLb,QAAQf;oBACRI;gBACF,MAAOwB;YACX;QACF;QAEA,wCAAwC;QACxC,uBAAuB;QACvB,wCAAwC;QAExCA,SAAS,MAAMtC,YAAY;YACzBoD,YAAY;YACZC,SAASvC,IAAIuC,OAAO;YACpBV,MAAML;YACNgB,KAAKhB;YACLb,QAAQf;YACRgD,WAAW;YACXtB;YACAtB;QACF;QAEA,wCAAwC;QACxC,uBAAuB;QACvB,wCAAwC;QAExC,IAAIJ,aAAa8C,KAAK,EAAExD,aAAa8B,QAAQ;YAC3C,KAAK,MAAM2B,QAAQ/C,aAAa8C,KAAK,CAACxD,WAAW,CAAE;gBACjDsC,SACE,AAAC,MAAMmB,KAAK;oBACVJ,SAASvC,IAAIuC,OAAO;oBACpBV,MAAML;oBACNgB,KAAKhB;oBACLb,QAAQf;oBACR0B;oBACAtB;gBACF,MAAOwB;YACX;QACF;QAEA,IAAIpB,cAAc;YAChB,MAAMhB,kBAAkBY;QAC1B;QAEA,OAAOwB;IACT,EAAE,OAAOqB,OAAgB;QACvB,MAAMvD,gBAAgBU;QACtB,MAAM6C;IACR;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,yBAAyB,EAE1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AAiB3B,KAAK,IAAI,CAAC,KAAK,SAAS,UAAU,IAAI;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,UAAU,EACxB,OAAO,SAAS,oBAAoB,CAAC,KAAK,CAAC,QAErC,IAAI,CAAC,KAAK,CAAC,KAChB,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,yBAAyB,EAE1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AAiB3B,KAAK,IAAI,CAAC,KAAK,SAAS,UAAU,IAAI;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,UAAU,EACxB,OAAO,SAAS,oBAAoB,CAAC,KAAK,CAAC,QAErC,IAAI,CAAC,KAAK,CAAC,KAChB,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAsVnD,CAAA"}
|
|
@@ -162,6 +162,8 @@ export const updateOperation = async (args)=>{
|
|
|
162
162
|
if (!result.createdAt) {
|
|
163
163
|
result.createdAt = new Date().toISOString();
|
|
164
164
|
}
|
|
165
|
+
// Ensure updatedAt date is always updated
|
|
166
|
+
result.updatedAt = new Date().toISOString();
|
|
165
167
|
if (globalExists) {
|
|
166
168
|
result = await payload.db.updateGlobal({
|
|
167
169
|
slug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { GlobalSlug, JsonObject } from '../../index.js'\nimport type {\n Operation,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformGlobalWithSelect,\n Where,\n} from '../../types/index.js'\nimport type {\n DataFromGlobalSlug,\n SanitizedGlobalConfig,\n SelectFromGlobalSlug,\n} from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { deepCopyObjectSimple } from '../../index.js'\nimport { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { getSelectMode } from '../../utilities/getSelectMode.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { getLatestGlobalVersion } from '../../versions/getLatestGlobalVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\n\ntype Args<TSlug extends GlobalSlug> = {\n autosave?: boolean\n data: DeepPartial<Omit<DataFromGlobalSlug<TSlug>, 'id'>>\n depth?: number\n disableTransaction?: boolean\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n overrideAccess?: boolean\n overrideLock?: boolean\n populate?: PopulateType\n publishSpecificLocale?: string\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n slug: string\n}\n\nexport const updateOperation = async <\n TSlug extends GlobalSlug,\n TSelect extends SelectFromGlobalSlug<TSlug>,\n>(\n args: Args<TSlug>,\n): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n if (args.publishSpecificLocale) {\n args.req.locale = args.publishSpecificLocale\n }\n\n const {\n slug,\n autosave,\n depth,\n disableTransaction,\n draft: draftArg,\n globalConfig,\n overrideAccess,\n overrideLock,\n populate,\n publishSpecificLocale,\n req: { fallbackLocale, locale, payload },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n try {\n const shouldCommit = !disableTransaction && (await initTransaction(req))\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draftArg && globalConfig.versions?.drafts)\n\n // /////////////////////////////////////\n // 1. Retrieve and execute access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess(\n {\n data,\n req,\n },\n globalConfig.access.update,\n )\n : true\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const query: Where = overrideAccess ? undefined! : (accessResults as Where)\n\n // /////////////////////////////////////\n // 2. Retrieve document\n // /////////////////////////////////////\n const globalVersion = await getLatestGlobalVersion({\n slug,\n config: globalConfig,\n locale: locale!,\n payload,\n req,\n where: query,\n })\n const { global, globalExists } = globalVersion || {}\n\n let globalJSON: JsonObject = {}\n\n if (globalVersion && globalVersion.global) {\n globalJSON = deepCopyObjectSimple(global)\n\n if (globalJSON._id) {\n delete globalJSON._id\n }\n }\n\n const originalDoc = await afterRead({\n collection: null,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(globalJSON),\n draft: draftArg!,\n fallbackLocale: fallbackLocale!,\n global: globalConfig,\n locale: locale!,\n overrideAccess: true,\n req,\n showHiddenFields: showHiddenFields!,\n })\n\n // ///////////////////////////////////////////\n // Handle potentially locked global documents\n // ///////////////////////////////////////////\n\n await checkDocumentLockStatus({\n globalSlug: slug,\n lockErrorMessage: `Global with slug \"${slug}\" is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: null,\n context: req.context,\n data,\n doc: originalDoc,\n global: globalConfig,\n operation: 'update',\n overrideAccess: overrideAccess!,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeValidate?.length) {\n for (const hook of globalConfig.hooks.beforeValidate) {\n data =\n (await hook({\n context: req.context,\n data,\n global: globalConfig,\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeChange?.length) {\n for (const hook of globalConfig.hooks.beforeChange) {\n data =\n (await hook({\n context: req.context,\n data,\n global: globalConfig,\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n let publishedDocWithLocales = globalJSON\n let versionSnapshotResult\n\n const beforeChangeArgs = {\n collection: null,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales: undefined,\n global: globalConfig,\n operation: 'update' as Operation,\n req,\n skipValidation:\n shouldSaveDraft && globalConfig.versions.drafts && !globalConfig.versions.drafts.validate,\n }\n\n if (publishSpecificLocale) {\n const latestVersion = await getLatestGlobalVersion({\n slug,\n config: globalConfig,\n payload,\n published: true,\n req,\n where: query,\n })\n\n publishedDocWithLocales = latestVersion?.global || {}\n\n versionSnapshotResult = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: globalJSON,\n })\n }\n\n let result = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: publishedDocWithLocales,\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n const select = sanitizeSelect({\n fields: globalConfig.flattenedFields,\n forceSelect: globalConfig.forceSelect,\n select: incomingSelect,\n })\n\n if (!shouldSaveDraft) {\n // Ensure global has createdAt\n if (!result.createdAt) {\n result.createdAt = new Date().toISOString()\n }\n\n if (globalExists) {\n result = await payload.db.updateGlobal({\n slug,\n data: result,\n req,\n select,\n })\n } else {\n result = await payload.db.createGlobal({\n slug,\n data: result,\n req,\n })\n }\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n if (globalConfig.versions) {\n const { globalType } = result\n result = await saveVersion({\n autosave,\n docWithLocales: result,\n draft: shouldSaveDraft,\n global: globalConfig,\n operation: 'update',\n payload,\n publishSpecificLocale,\n req,\n select,\n snapshot: versionSnapshotResult,\n })\n\n result = {\n ...result,\n globalType,\n }\n }\n\n // /////////////////////////////////////\n // Execute globalType field if not selected\n // /////////////////////////////////////\n if (select && result.globalType) {\n const selectMode = getSelectMode(select)\n if (\n (selectMode === 'include' && !select['globalType']) ||\n (selectMode === 'exclude' && select['globalType'] === false)\n ) {\n delete result['globalType']\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: null,\n context: req.context,\n depth: depth!,\n doc: result,\n draft: draftArg!,\n fallbackLocale: null,\n global: globalConfig,\n locale: locale!,\n overrideAccess: overrideAccess!,\n populate,\n req,\n select,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n for (const hook of globalConfig.hooks.afterRead) {\n result =\n (await hook({\n context: req.context,\n doc: result,\n global: globalConfig,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: null,\n context: req.context,\n data,\n doc: result,\n global: globalConfig,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterChange?.length) {\n for (const hook of globalConfig.hooks.afterChange) {\n result =\n (await hook({\n context: req.context,\n data,\n doc: result,\n global: globalConfig,\n previousDoc: originalDoc,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result as TransformGlobalWithSelect<TSlug, TSelect>\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","checkDocumentLockStatus","commitTransaction","getSelectMode","initTransaction","killTransaction","sanitizeSelect","getLatestGlobalVersion","saveVersion","updateOperation","args","publishSpecificLocale","req","locale","slug","autosave","depth","disableTransaction","draft","draftArg","globalConfig","overrideAccess","overrideLock","populate","fallbackLocale","payload","select","incomingSelect","showHiddenFields","shouldCommit","data","shouldSaveDraft","Boolean","versions","drafts","accessResults","access","update","query","undefined","globalVersion","config","where","global","globalExists","globalJSON","_id","originalDoc","collection","context","doc","globalSlug","lockErrorMessage","operation","hooks","length","hook","publishedDocWithLocales","versionSnapshotResult","beforeChangeArgs","docWithLocales","skipValidation","validate","latestVersion","published","result","fields","flattenedFields","forceSelect","createdAt","Date","toISOString","db","updateGlobal","createGlobal","globalType","snapshot","selectMode","previousDoc","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { GlobalSlug, JsonObject } from '../../index.js'\nimport type {\n Operation,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformGlobalWithSelect,\n Where,\n} from '../../types/index.js'\nimport type {\n DataFromGlobalSlug,\n SanitizedGlobalConfig,\n SelectFromGlobalSlug,\n} from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { deepCopyObjectSimple } from '../../index.js'\nimport { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { getSelectMode } from '../../utilities/getSelectMode.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { getLatestGlobalVersion } from '../../versions/getLatestGlobalVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\n\ntype Args<TSlug extends GlobalSlug> = {\n autosave?: boolean\n data: DeepPartial<Omit<DataFromGlobalSlug<TSlug>, 'id'>>\n depth?: number\n disableTransaction?: boolean\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n overrideAccess?: boolean\n overrideLock?: boolean\n populate?: PopulateType\n publishSpecificLocale?: string\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n slug: string\n}\n\nexport const updateOperation = async <\n TSlug extends GlobalSlug,\n TSelect extends SelectFromGlobalSlug<TSlug>,\n>(\n args: Args<TSlug>,\n): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n if (args.publishSpecificLocale) {\n args.req.locale = args.publishSpecificLocale\n }\n\n const {\n slug,\n autosave,\n depth,\n disableTransaction,\n draft: draftArg,\n globalConfig,\n overrideAccess,\n overrideLock,\n populate,\n publishSpecificLocale,\n req: { fallbackLocale, locale, payload },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n try {\n const shouldCommit = !disableTransaction && (await initTransaction(req))\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draftArg && globalConfig.versions?.drafts)\n\n // /////////////////////////////////////\n // 1. Retrieve and execute access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess(\n {\n data,\n req,\n },\n globalConfig.access.update,\n )\n : true\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const query: Where = overrideAccess ? undefined! : (accessResults as Where)\n\n // /////////////////////////////////////\n // 2. Retrieve document\n // /////////////////////////////////////\n const globalVersion = await getLatestGlobalVersion({\n slug,\n config: globalConfig,\n locale: locale!,\n payload,\n req,\n where: query,\n })\n const { global, globalExists } = globalVersion || {}\n\n let globalJSON: JsonObject = {}\n\n if (globalVersion && globalVersion.global) {\n globalJSON = deepCopyObjectSimple(global)\n\n if (globalJSON._id) {\n delete globalJSON._id\n }\n }\n\n const originalDoc = await afterRead({\n collection: null,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(globalJSON),\n draft: draftArg!,\n fallbackLocale: fallbackLocale!,\n global: globalConfig,\n locale: locale!,\n overrideAccess: true,\n req,\n showHiddenFields: showHiddenFields!,\n })\n\n // ///////////////////////////////////////////\n // Handle potentially locked global documents\n // ///////////////////////////////////////////\n\n await checkDocumentLockStatus({\n globalSlug: slug,\n lockErrorMessage: `Global with slug \"${slug}\" is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: null,\n context: req.context,\n data,\n doc: originalDoc,\n global: globalConfig,\n operation: 'update',\n overrideAccess: overrideAccess!,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeValidate?.length) {\n for (const hook of globalConfig.hooks.beforeValidate) {\n data =\n (await hook({\n context: req.context,\n data,\n global: globalConfig,\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeChange?.length) {\n for (const hook of globalConfig.hooks.beforeChange) {\n data =\n (await hook({\n context: req.context,\n data,\n global: globalConfig,\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n let publishedDocWithLocales = globalJSON\n let versionSnapshotResult\n\n const beforeChangeArgs = {\n collection: null,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales: undefined,\n global: globalConfig,\n operation: 'update' as Operation,\n req,\n skipValidation:\n shouldSaveDraft && globalConfig.versions.drafts && !globalConfig.versions.drafts.validate,\n }\n\n if (publishSpecificLocale) {\n const latestVersion = await getLatestGlobalVersion({\n slug,\n config: globalConfig,\n payload,\n published: true,\n req,\n where: query,\n })\n\n publishedDocWithLocales = latestVersion?.global || {}\n\n versionSnapshotResult = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: globalJSON,\n })\n }\n\n let result = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: publishedDocWithLocales,\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n const select = sanitizeSelect({\n fields: globalConfig.flattenedFields,\n forceSelect: globalConfig.forceSelect,\n select: incomingSelect,\n })\n\n if (!shouldSaveDraft) {\n // Ensure global has createdAt\n if (!result.createdAt) {\n result.createdAt = new Date().toISOString()\n }\n\n // Ensure updatedAt date is always updated\n result.updatedAt = new Date().toISOString()\n\n if (globalExists) {\n result = await payload.db.updateGlobal({\n slug,\n data: result,\n req,\n select,\n })\n } else {\n result = await payload.db.createGlobal({\n slug,\n data: result,\n req,\n })\n }\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n if (globalConfig.versions) {\n const { globalType } = result\n result = await saveVersion({\n autosave,\n docWithLocales: result,\n draft: shouldSaveDraft,\n global: globalConfig,\n operation: 'update',\n payload,\n publishSpecificLocale,\n req,\n select,\n snapshot: versionSnapshotResult,\n })\n\n result = {\n ...result,\n globalType,\n }\n }\n\n // /////////////////////////////////////\n // Execute globalType field if not selected\n // /////////////////////////////////////\n if (select && result.globalType) {\n const selectMode = getSelectMode(select)\n if (\n (selectMode === 'include' && !select['globalType']) ||\n (selectMode === 'exclude' && select['globalType'] === false)\n ) {\n delete result['globalType']\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: null,\n context: req.context,\n depth: depth!,\n doc: result,\n draft: draftArg!,\n fallbackLocale: null,\n global: globalConfig,\n locale: locale!,\n overrideAccess: overrideAccess!,\n populate,\n req,\n select,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n for (const hook of globalConfig.hooks.afterRead) {\n result =\n (await hook({\n context: req.context,\n doc: result,\n global: globalConfig,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: null,\n context: req.context,\n data,\n doc: result,\n global: globalConfig,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterChange?.length) {\n for (const hook of globalConfig.hooks.afterChange) {\n result =\n (await hook({\n context: req.context,\n data,\n doc: result,\n global: globalConfig,\n previousDoc: originalDoc,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result as TransformGlobalWithSelect<TSlug, TSelect>\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","checkDocumentLockStatus","commitTransaction","getSelectMode","initTransaction","killTransaction","sanitizeSelect","getLatestGlobalVersion","saveVersion","updateOperation","args","publishSpecificLocale","req","locale","slug","autosave","depth","disableTransaction","draft","draftArg","globalConfig","overrideAccess","overrideLock","populate","fallbackLocale","payload","select","incomingSelect","showHiddenFields","shouldCommit","data","shouldSaveDraft","Boolean","versions","drafts","accessResults","access","update","query","undefined","globalVersion","config","where","global","globalExists","globalJSON","_id","originalDoc","collection","context","doc","globalSlug","lockErrorMessage","operation","hooks","length","hook","publishedDocWithLocales","versionSnapshotResult","beforeChangeArgs","docWithLocales","skipValidation","validate","latestVersion","published","result","fields","flattenedFields","forceSelect","createdAt","Date","toISOString","updatedAt","db","updateGlobal","createGlobal","globalType","snapshot","selectMode","previousDoc","error"],"mappings":"AAiBA,SAASA,aAAa,QAAQ,8BAA6B;AAC3D,SAASC,WAAW,QAAQ,0CAAyC;AACrE,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,YAAY,QAAQ,2CAA0C;AACvE,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,oBAAoB,QAAQ,iBAAgB;AACrD,SAASC,uBAAuB,QAAQ,6CAA4C;AACpF,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,aAAa,QAAQ,mCAAkC;AAChE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,sBAAsB,QAAQ,2CAA0C;AACjF,SAASC,WAAW,QAAQ,gCAA+B;AAmB3D,OAAO,MAAMC,kBAAkB,OAI7BC;IAEA,IAAIA,KAAKC,qBAAqB,EAAE;QAC9BD,KAAKE,GAAG,CAACC,MAAM,GAAGH,KAAKC,qBAAqB;IAC9C;IAEA,MAAM,EACJG,IAAI,EACJC,QAAQ,EACRC,KAAK,EACLC,kBAAkB,EAClBC,OAAOC,QAAQ,EACfC,YAAY,EACZC,cAAc,EACdC,YAAY,EACZC,QAAQ,EACRZ,qBAAqB,EACrBC,KAAK,EAAEY,cAAc,EAAEX,MAAM,EAAEY,OAAO,EAAE,EACxCb,GAAG,EACHc,QAAQC,cAAc,EACtBC,gBAAgB,EACjB,GAAGlB;IAEJ,IAAI;QACF,MAAMmB,eAAe,CAACZ,sBAAuB,MAAMb,gBAAgBQ;QAEnE,IAAI,EAAEkB,IAAI,EAAE,GAAGpB;QAEf,MAAMqB,kBAAkBC,QAAQb,YAAYC,aAAaa,QAAQ,EAAEC;QAEnE,wCAAwC;QACxC,iCAAiC;QACjC,wCAAwC;QAExC,MAAMC,gBAAgB,CAACd,iBACnB,MAAM1B,cACJ;YACEmC;YACAlB;QACF,GACAQ,aAAagB,MAAM,CAACC,MAAM,IAE5B;QAEJ,wCAAwC;QACxC,oBAAoB;QACpB,wCAAwC;QAExC,MAAMC,QAAejB,iBAAiBkB,YAAcJ;QAEpD,wCAAwC;QACxC,uBAAuB;QACvB,wCAAwC;QACxC,MAAMK,gBAAgB,MAAMjC,uBAAuB;YACjDO;YACA2B,QAAQrB;YACRP,QAAQA;YACRY;YACAb;YACA8B,OAAOJ;QACT;QACA,MAAM,EAAEK,MAAM,EAAEC,YAAY,EAAE,GAAGJ,iBAAiB,CAAC;QAEnD,IAAIK,aAAyB,CAAC;QAE9B,IAAIL,iBAAiBA,cAAcG,MAAM,EAAE;YACzCE,aAAa7C,qBAAqB2C;YAElC,IAAIE,WAAWC,GAAG,EAAE;gBAClB,OAAOD,WAAWC,GAAG;YACvB;QACF;QAEA,MAAMC,cAAc,MAAMlD,UAAU;YAClCmD,YAAY;YACZC,SAASrC,IAAIqC,OAAO;YACpBjC,OAAO;YACPkC,KAAKlD,qBAAqB6C;YAC1B3B,OAAOC;YACPK,gBAAgBA;YAChBmB,QAAQvB;YACRP,QAAQA;YACRQ,gBAAgB;YAChBT;YACAgB,kBAAkBA;QACpB;QAEA,8CAA8C;QAC9C,6CAA6C;QAC7C,8CAA8C;QAE9C,MAAM3B,wBAAwB;YAC5BkD,YAAYrC;YACZsC,kBAAkB,CAAC,kBAAkB,EAAEtC,KAAK,4DAA4D,CAAC;YACzGQ;YACAV;QACF;QAEA,wCAAwC;QACxC,0BAA0B;QAC1B,wCAAwC;QAExCkB,OAAO,MAAM/B,eAAe;YAC1BiD,YAAY;YACZC,SAASrC,IAAIqC,OAAO;YACpBnB;YACAoB,KAAKH;YACLJ,QAAQvB;YACRiC,WAAW;YACXhC,gBAAgBA;YAChBT;QACF;QAEA,wCAAwC;QACxC,0BAA0B;QAC1B,wCAAwC;QAExC,IAAIQ,aAAakC,KAAK,EAAEvD,gBAAgBwD,QAAQ;YAC9C,KAAK,MAAMC,QAAQpC,aAAakC,KAAK,CAACvD,cAAc,CAAE;gBACpD+B,OACE,AAAC,MAAM0B,KAAK;oBACVP,SAASrC,IAAIqC,OAAO;oBACpBnB;oBACAa,QAAQvB;oBACR2B;oBACAnC;gBACF,MAAOkB;YACX;QACF;QAEA,wCAAwC;QACxC,wBAAwB;QACxB,wCAAwC;QAExC,IAAIV,aAAakC,KAAK,EAAExD,cAAcyD,QAAQ;YAC5C,KAAK,MAAMC,QAAQpC,aAAakC,KAAK,CAACxD,YAAY,CAAE;gBAClDgC,OACE,AAAC,MAAM0B,KAAK;oBACVP,SAASrC,IAAIqC,OAAO;oBACpBnB;oBACAa,QAAQvB;oBACR2B;oBACAnC;gBACF,MAAOkB;YACX;QACF;QAEA,wCAAwC;QACxC,wBAAwB;QACxB,wCAAwC;QACxC,IAAI2B,0BAA0BZ;QAC9B,IAAIa;QAEJ,MAAMC,mBAAmB;YACvBX,YAAY;YACZC,SAASrC,IAAIqC,OAAO;YACpBnB;YACAoB,KAAKH;YACLa,gBAAgBrB;YAChBI,QAAQvB;YACRiC,WAAW;YACXzC;YACAiD,gBACE9B,mBAAmBX,aAAaa,QAAQ,CAACC,MAAM,IAAI,CAACd,aAAaa,QAAQ,CAACC,MAAM,CAAC4B,QAAQ;QAC7F;QAEA,IAAInD,uBAAuB;YACzB,MAAMoD,gBAAgB,MAAMxD,uBAAuB;gBACjDO;gBACA2B,QAAQrB;gBACRK;gBACAuC,WAAW;gBACXpD;gBACA8B,OAAOJ;YACT;YAEAmB,0BAA0BM,eAAepB,UAAU,CAAC;YAEpDe,wBAAwB,MAAM5D,aAAa;gBACzC,GAAG6D,gBAAgB;gBACnBC,gBAAgBf;YAClB;QACF;QAEA,IAAIoB,SAAS,MAAMnE,aAAa;YAC9B,GAAG6D,gBAAgB;YACnBC,gBAAgBH;QAClB;QAEA,wCAAwC;QACxC,SAAS;QACT,wCAAwC;QAExC,MAAM/B,SAASpB,eAAe;YAC5B4D,QAAQ9C,aAAa+C,eAAe;YACpCC,aAAahD,aAAagD,WAAW;YACrC1C,QAAQC;QACV;QAEA,IAAI,CAACI,iBAAiB;YACpB,8BAA8B;YAC9B,IAAI,CAACkC,OAAOI,SAAS,EAAE;gBACrBJ,OAAOI,SAAS,GAAG,IAAIC,OAAOC,WAAW;YAC3C;YAEA,0CAA0C;YAC1CN,OAAOO,SAAS,GAAG,IAAIF,OAAOC,WAAW;YAEzC,IAAI3B,cAAc;gBAChBqB,SAAS,MAAMxC,QAAQgD,EAAE,CAACC,YAAY,CAAC;oBACrC5D;oBACAgB,MAAMmC;oBACNrD;oBACAc;gBACF;YACF,OAAO;gBACLuC,SAAS,MAAMxC,QAAQgD,EAAE,CAACE,YAAY,CAAC;oBACrC7D;oBACAgB,MAAMmC;oBACNrD;gBACF;YACF;QACF;QAEA,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QACxC,IAAIQ,aAAaa,QAAQ,EAAE;YACzB,MAAM,EAAE2C,UAAU,EAAE,GAAGX;YACvBA,SAAS,MAAMzD,YAAY;gBACzBO;gBACA6C,gBAAgBK;gBAChB/C,OAAOa;gBACPY,QAAQvB;gBACRiC,WAAW;gBACX5B;gBACAd;gBACAC;gBACAc;gBACAmD,UAAUnB;YACZ;YAEAO,SAAS;gBACP,GAAGA,MAAM;gBACTW;YACF;QACF;QAEA,wCAAwC;QACxC,2CAA2C;QAC3C,wCAAwC;QACxC,IAAIlD,UAAUuC,OAAOW,UAAU,EAAE;YAC/B,MAAME,aAAa3E,cAAcuB;YACjC,IACE,AAACoD,eAAe,aAAa,CAACpD,MAAM,CAAC,aAAa,IACjDoD,eAAe,aAAapD,MAAM,CAAC,aAAa,KAAK,OACtD;gBACA,OAAOuC,MAAM,CAAC,aAAa;YAC7B;QACF;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExCA,SAAS,MAAMpE,UAAU;YACvBmD,YAAY;YACZC,SAASrC,IAAIqC,OAAO;YACpBjC,OAAOA;YACPkC,KAAKe;YACL/C,OAAOC;YACPK,gBAAgB;YAChBmB,QAAQvB;YACRP,QAAQA;YACRQ,gBAAgBA;YAChBE;YACAX;YACAc;YACAE,kBAAkBA;QACpB;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExC,IAAIR,aAAakC,KAAK,EAAEzD,WAAW0D,QAAQ;YACzC,KAAK,MAAMC,QAAQpC,aAAakC,KAAK,CAACzD,SAAS,CAAE;gBAC/CoE,SACE,AAAC,MAAMT,KAAK;oBACVP,SAASrC,IAAIqC,OAAO;oBACpBC,KAAKe;oBACLtB,QAAQvB;oBACRR;gBACF,MAAOqD;YACX;QACF;QAEA,wCAAwC;QACxC,uBAAuB;QACvB,wCAAwC;QAExCA,SAAS,MAAMrE,YAAY;YACzBoD,YAAY;YACZC,SAASrC,IAAIqC,OAAO;YACpBnB;YACAoB,KAAKe;YACLtB,QAAQvB;YACRiC,WAAW;YACX0B,aAAahC;YACbnC;QACF;QAEA,wCAAwC;QACxC,uBAAuB;QACvB,wCAAwC;QAExC,IAAIQ,aAAakC,KAAK,EAAE1D,aAAa2D,QAAQ;YAC3C,KAAK,MAAMC,QAAQpC,aAAakC,KAAK,CAAC1D,WAAW,CAAE;gBACjDqE,SACE,AAAC,MAAMT,KAAK;oBACVP,SAASrC,IAAIqC,OAAO;oBACpBnB;oBACAoB,KAAKe;oBACLtB,QAAQvB;oBACR2D,aAAahC;oBACbnC;gBACF,MAAOqD;YACX;QACF;QAEA,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,IAAIpC,cAAc;YAChB,MAAM3B,kBAAkBU;QAC1B;QAEA,OAAOqD;IACT,EAAE,OAAOe,OAAgB;QACvB,MAAM3E,gBAAgBO;QACtB,MAAMoE;IACR;AACF,EAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -383,8 +383,8 @@ export declare class BasePayload {
|
|
|
383
383
|
}
|
|
384
384
|
declare const initialized: BasePayload;
|
|
385
385
|
export default initialized;
|
|
386
|
-
export declare const reload: (config: SanitizedConfig, payload: Payload, skipImportMapGeneration?: boolean) => Promise<void>;
|
|
387
|
-
export declare const getPayload: (options:
|
|
386
|
+
export declare const reload: (config: SanitizedConfig, payload: Payload, skipImportMapGeneration?: boolean, options?: InitOptions) => Promise<void>;
|
|
387
|
+
export declare const getPayload: (options: InitOptions) => Promise<Payload>;
|
|
388
388
|
type Payload = BasePayload;
|
|
389
389
|
interface RequestContext {
|
|
390
390
|
[key: string]: unknown;
|