payload 3.32.0-internal.f2e77bd → 3.33.0-internal.d1efdd8

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.
Files changed (98) hide show
  1. package/dist/admin/forms/Form.d.ts +12 -1
  2. package/dist/admin/forms/Form.d.ts.map +1 -1
  3. package/dist/admin/forms/Form.js.map +1 -1
  4. package/dist/admin/functions/index.d.ts +1 -0
  5. package/dist/admin/functions/index.d.ts.map +1 -1
  6. package/dist/admin/functions/index.js.map +1 -1
  7. package/dist/bin/generateImportMap/index.js +3 -3
  8. package/dist/bin/generateImportMap/index.js.map +1 -1
  9. package/dist/bin/generateTypes.js +3 -3
  10. package/dist/bin/generateTypes.js.map +1 -1
  11. package/dist/collections/config/sanitize.d.ts.map +1 -1
  12. package/dist/collections/config/sanitize.js.map +1 -1
  13. package/dist/collections/config/types.d.ts +11 -0
  14. package/dist/collections/config/types.d.ts.map +1 -1
  15. package/dist/collections/config/types.js.map +1 -1
  16. package/dist/config/orderable/fractional-indexing.d.ts +31 -0
  17. package/dist/config/orderable/fractional-indexing.d.ts.map +1 -0
  18. package/dist/config/orderable/fractional-indexing.js +295 -0
  19. package/dist/config/orderable/fractional-indexing.js.map +1 -0
  20. package/dist/config/orderable/index.d.ts +28 -0
  21. package/dist/config/orderable/index.d.ts.map +1 -0
  22. package/dist/config/orderable/index.js +259 -0
  23. package/dist/config/orderable/index.js.map +1 -0
  24. package/dist/config/sanitize.d.ts.map +1 -1
  25. package/dist/config/sanitize.js +3 -0
  26. package/dist/config/sanitize.js.map +1 -1
  27. package/dist/database/defaultUpdateJobs.d.ts.map +1 -1
  28. package/dist/database/defaultUpdateJobs.js +1 -4
  29. package/dist/database/defaultUpdateJobs.js.map +1 -1
  30. package/dist/database/types.d.ts +6 -0
  31. package/dist/database/types.d.ts.map +1 -1
  32. package/dist/database/types.js.map +1 -1
  33. package/dist/fields/config/types.d.ts +12 -1
  34. package/dist/fields/config/types.d.ts.map +1 -1
  35. package/dist/fields/config/types.js.map +1 -1
  36. package/dist/index.d.ts +3 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/queues/config/types/index.d.ts +15 -1
  41. package/dist/queues/config/types/index.d.ts.map +1 -1
  42. package/dist/queues/config/types/index.js.map +1 -1
  43. package/dist/queues/config/types/workflowTypes.d.ts +1 -1
  44. package/dist/queues/config/types/workflowTypes.d.ts.map +1 -1
  45. package/dist/queues/config/types/workflowTypes.js.map +1 -1
  46. package/dist/queues/localAPI.d.ts +12 -1
  47. package/dist/queues/localAPI.d.ts.map +1 -1
  48. package/dist/queues/localAPI.js +2 -0
  49. package/dist/queues/localAPI.js.map +1 -1
  50. package/dist/queues/operations/runJobs/index.d.ts +15 -2
  51. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  52. package/dist/queues/operations/runJobs/index.js +30 -4
  53. package/dist/queues/operations/runJobs/index.js.map +1 -1
  54. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  55. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +5 -1
  56. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  57. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  58. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +14 -1
  59. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  60. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  61. package/dist/queues/operations/runJobs/runJob/index.js +2 -0
  62. package/dist/queues/operations/runJobs/runJob/index.js.map +1 -1
  63. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  64. package/dist/queues/utilities/updateJob.js +10 -9
  65. package/dist/queues/utilities/updateJob.js.map +1 -1
  66. package/dist/uploads/deleteAssociatedFiles.js +3 -3
  67. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  68. package/dist/uploads/fileExists.js +2 -2
  69. package/dist/uploads/fileExists.js.map +1 -1
  70. package/dist/uploads/generateFileData.d.ts.map +1 -1
  71. package/dist/uploads/generateFileData.js +4 -5
  72. package/dist/uploads/generateFileData.js.map +1 -1
  73. package/dist/uploads/getFileByPath.js +3 -3
  74. package/dist/uploads/getFileByPath.js.map +1 -1
  75. package/dist/uploads/getImageSize.js +2 -2
  76. package/dist/uploads/getImageSize.js.map +1 -1
  77. package/dist/uploads/imageResizer.js +2 -2
  78. package/dist/uploads/imageResizer.js.map +1 -1
  79. package/dist/uploads/saveBufferToFile.js +2 -2
  80. package/dist/uploads/saveBufferToFile.js.map +1 -1
  81. package/dist/uploads/tempFile.js +4 -4
  82. package/dist/uploads/tempFile.js.map +1 -1
  83. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  84. package/dist/uploads/unlinkTempFiles.js +2 -4
  85. package/dist/uploads/unlinkTempFiles.js.map +1 -1
  86. package/dist/utilities/configToJSONSchema.js +3 -3
  87. package/dist/utilities/configToJSONSchema.js.map +1 -1
  88. package/dist/utilities/configToJSONSchema.spec.js +29 -0
  89. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  90. package/dist/utilities/flattenAllFields.d.ts +5 -0
  91. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  92. package/dist/utilities/flattenAllFields.js +5 -1
  93. package/dist/utilities/flattenAllFields.js.map +1 -1
  94. package/package.json +2 -2
  95. package/dist/queues/utilities/sanitizeUpdateData.d.ts +0 -9
  96. package/dist/queues/utilities/sanitizeUpdateData.d.ts.map +0 -1
  97. package/dist/queues/utilities/sanitizeUpdateData.js +0 -25
  98. package/dist/queues/utilities/sanitizeUpdateData.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @ts-strict-ignore\nimport type { ExecutionResult, GraphQLSchema, ValidationRule } from 'graphql'\nimport type { Request as graphQLRequest, OperationArgs } from 'graphql-http'\nimport type { Logger } from 'pino'\nimport type { NonNever } from 'ts-essentials'\n\nimport { spawn } from 'child_process'\nimport crypto from 'crypto'\nimport { fileURLToPath } from 'node:url'\nimport path from 'path'\nimport WebSocket from 'ws'\n\nimport type { AuthArgs } from './auth/operations/auth.js'\nimport type { Result as ForgotPasswordResult } from './auth/operations/forgotPassword.js'\nimport type { Options as ForgotPasswordOptions } from './auth/operations/local/forgotPassword.js'\nimport type { Options as LoginOptions } from './auth/operations/local/login.js'\nimport type { Options as ResetPasswordOptions } from './auth/operations/local/resetPassword.js'\nimport type { Options as UnlockOptions } from './auth/operations/local/unlock.js'\nimport type { Options as VerifyEmailOptions } from './auth/operations/local/verifyEmail.js'\nimport type { Result as LoginResult } from './auth/operations/login.js'\nimport type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js'\nimport type { AuthStrategy, User } from './auth/types.js'\nimport type {\n BulkOperationResult,\n Collection,\n DataFromCollectionSlug,\n SelectFromCollectionSlug,\n TypeWithID,\n} from './collections/config/types.js'\nexport type { FieldState } from './admin/forms/Form.js'\nimport type { Options as CountOptions } from './collections/operations/local/count.js'\nimport type { Options as CreateOptions } from './collections/operations/local/create.js'\nimport type {\n ByIDOptions as DeleteByIDOptions,\n ManyOptions as DeleteManyOptions,\n Options as DeleteOptions,\n} from './collections/operations/local/delete.js'\nimport type { Options as DuplicateOptions } from './collections/operations/local/duplicate.js'\nimport type { Options as FindOptions } from './collections/operations/local/find.js'\nimport type { Options as FindByIDOptions } from './collections/operations/local/findByID.js'\nimport type { Options as FindVersionByIDOptions } from './collections/operations/local/findVersionByID.js'\nimport type { Options as FindVersionsOptions } from './collections/operations/local/findVersions.js'\nimport type { Options as RestoreVersionOptions } from './collections/operations/local/restoreVersion.js'\nimport type {\n ByIDOptions as UpdateByIDOptions,\n ManyOptions as UpdateManyOptions,\n Options as UpdateOptions,\n} from './collections/operations/local/update.js'\nimport type { InitOptions, SanitizedConfig } from './config/types.js'\nimport type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js'\nimport type { InitializedEmailAdapter } from './email/types.js'\nimport type { DataFromGlobalSlug, Globals, SelectFromGlobalSlug } from './globals/config/types.js'\nimport type { CountGlobalVersionsOptions } from './globals/operations/local/countGlobalVersions.js'\nimport type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js'\nimport type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js'\nimport type { Options as FindGlobalVersionsOptions } from './globals/operations/local/findVersions.js'\nimport type { Options as RestoreGlobalVersionOptions } from './globals/operations/local/restoreVersion.js'\nimport type { Options as UpdateGlobalOptions } from './globals/operations/local/update.js'\nimport type {\n ApplyDisableErrors,\n JsonObject,\n SelectType,\n TransformCollectionWithSelect,\n TransformGlobalWithSelect,\n} from './types/index.js'\nimport type { TraverseFieldsCallback } from './utilities/traverseFields.js'\nexport type * from './admin/types.js'\nimport { Cron } from 'croner'\n\nimport type { TypeWithVersion } from './versions/types.js'\n\nimport { decrypt, encrypt } from './auth/crypto.js'\nimport { APIKeyAuthentication } from './auth/strategies/apiKey.js'\nimport { JWTAuthentication } from './auth/strategies/jwt.js'\nimport { generateImportMap, type ImportMap } from './bin/generateImportMap/index.js'\nimport { checkPayloadDependencies } from './checkPayloadDependencies.js'\nimport localOperations from './collections/operations/local/index.js'\nimport { consoleEmailAdapter } from './email/consoleEmailAdapter.js'\nimport { fieldAffectsData, type FlattenedBlock } from './fields/config/types.js'\nimport localGlobalOperations from './globals/operations/local/index.js'\nimport { getJobsLocalAPI } from './queues/localAPI.js'\nimport { isNextBuild } from './utilities/isNextBuild.js'\nimport { getLogger } from './utilities/logger.js'\nimport { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js'\nimport { traverseFields } from './utilities/traverseFields.js'\n\nexport { default as executeAccess } from './auth/executeAccess.js'\nexport { executeAuthStrategies } from './auth/executeAuthStrategies.js'\n\nexport interface GeneratedTypes {\n authUntyped: {\n [slug: string]: {\n forgotPassword: {\n email: string\n }\n login: {\n email: string\n password: string\n }\n registerFirstUser: {\n email: string\n password: string\n }\n unlock: {\n email: string\n }\n }\n }\n\n blocksUntyped: {\n [slug: string]: JsonObject\n }\n collectionsJoinsUntyped: {\n [slug: string]: {\n [schemaPath: string]: CollectionSlug\n }\n }\n collectionsSelectUntyped: {\n [slug: string]: SelectType\n }\n\n collectionsUntyped: {\n [slug: string]: JsonObject & TypeWithID\n }\n dbUntyped: {\n defaultIDType: number | string\n }\n globalsSelectUntyped: {\n [slug: string]: SelectType\n }\n\n globalsUntyped: {\n [slug: string]: JsonObject\n }\n jobsUntyped: {\n tasks: {\n [slug: string]: {\n input?: JsonObject\n output?: JsonObject\n }\n }\n workflows: {\n [slug: string]: {\n input: JsonObject\n }\n }\n }\n localeUntyped: null | string\n userUntyped: User\n}\n\n// Helper type to resolve the correct type using conditional types\ntype ResolveCollectionType<T> = 'collections' extends keyof T\n ? T['collections']\n : // @ts-expect-error\n T['collectionsUntyped']\n\ntype ResolveBlockType<T> = 'blocks' extends keyof T\n ? T['blocks']\n : // @ts-expect-error\n T['blocksUntyped']\n\ntype ResolveCollectionSelectType<T> = 'collectionsSelect' extends keyof T\n ? T['collectionsSelect']\n : // @ts-expect-error\n T['collectionsSelectUntyped']\n\ntype ResolveCollectionJoinsType<T> = 'collectionsJoins' extends keyof T\n ? T['collectionsJoins']\n : // @ts-expect-error\n T['collectionsJoinsUntyped']\n\ntype ResolveGlobalType<T> = 'globals' extends keyof T\n ? T['globals']\n : // @ts-expect-error\n T['globalsUntyped']\n\ntype ResolveGlobalSelectType<T> = 'globalsSelect' extends keyof T\n ? T['globalsSelect']\n : // @ts-expect-error\n T['globalsSelectUntyped']\n\n// Applying helper types to GeneratedTypes\nexport type TypedCollection = ResolveCollectionType<GeneratedTypes>\n\nexport type TypedBlock = ResolveBlockType<GeneratedTypes>\n\nexport type TypedUploadCollection = NonNever<{\n [K in keyof TypedCollection]:\n | 'filename'\n | 'filesize'\n | 'mimeType'\n | 'url' extends keyof TypedCollection[K]\n ? TypedCollection[K]\n : never\n}>\n\nexport type TypedCollectionSelect = ResolveCollectionSelectType<GeneratedTypes>\n\nexport type TypedCollectionJoins = ResolveCollectionJoinsType<GeneratedTypes>\n\nexport type TypedGlobal = ResolveGlobalType<GeneratedTypes>\n\nexport type TypedGlobalSelect = ResolveGlobalSelectType<GeneratedTypes>\n\n// Extract string keys from the type\nexport type StringKeyOf<T> = Extract<keyof T, string>\n\n// Define the types for slugs using the appropriate collections and globals\nexport type CollectionSlug = StringKeyOf<TypedCollection>\n\nexport type BlockSlug = StringKeyOf<TypedBlock>\n\nexport type UploadCollectionSlug = StringKeyOf<TypedUploadCollection>\n\ntype ResolveDbType<T> = 'db' extends keyof T\n ? T['db']\n : // @ts-expect-error\n T['dbUntyped']\n\nexport type DefaultDocumentIDType = ResolveDbType<GeneratedTypes>['defaultIDType']\nexport type GlobalSlug = StringKeyOf<TypedGlobal>\n\n// now for locale and user\n\n// @ts-expect-error\ntype ResolveLocaleType<T> = 'locale' extends keyof T ? T['locale'] : T['localeUntyped']\n// @ts-expect-error\ntype ResolveUserType<T> = 'user' extends keyof T ? T['user'] : T['userUntyped']\n\nexport type TypedLocale = ResolveLocaleType<GeneratedTypes>\nexport type TypedUser = ResolveUserType<GeneratedTypes>\n\n// @ts-expect-error\ntype ResolveAuthOperationsType<T> = 'auth' extends keyof T ? T['auth'] : T['authUntyped']\nexport type TypedAuthOperations = ResolveAuthOperationsType<GeneratedTypes>\n\n// @ts-expect-error\ntype ResolveJobOperationsType<T> = 'jobs' extends keyof T ? T['jobs'] : T['jobsUntyped']\nexport type TypedJobs = ResolveJobOperationsType<GeneratedTypes>\n\nconst filename = fileURLToPath(import.meta.url)\nconst dirname = path.dirname(filename)\n\nlet checkedDependencies = false\n\n/**\n * @description Payload\n */\nexport class BasePayload {\n /**\n * @description Authorization and Authentication using headers and cookies to run auth user strategies\n * @returns permissions: Permissions\n * @returns user: User\n */\n auth = async (options: AuthArgs) => {\n const { auth } = localOperations.auth\n return auth(this, options)\n }\n\n authStrategies: AuthStrategy[]\n\n blocks: Record<BlockSlug, FlattenedBlock> = {}\n\n collections: Record<CollectionSlug, Collection> = {}\n\n config: SanitizedConfig\n /**\n * @description Performs count operation\n * @param options\n * @returns count of documents satisfying query\n */\n count = async <T extends CollectionSlug>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { count } = localOperations\n return count(this, options)\n }\n\n /**\n * @description Performs countGlobalVersions operation\n * @param options\n * @returns count of global document versions satisfying query\n */\n countGlobalVersions = async <T extends GlobalSlug>(\n options: CountGlobalVersionsOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { countGlobalVersions } = localGlobalOperations\n return countGlobalVersions(this, options)\n }\n\n /**\n * @description Performs countVersions operation\n * @param options\n * @returns count of document versions satisfying query\n */\n countVersions = async <T extends CollectionSlug>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { countVersions } = localOperations\n return countVersions(this, options)\n }\n\n /**\n * @description Performs create operation\n * @param options\n * @returns created document\n */\n create = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: CreateOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const { create } = localOperations\n return create<TSlug, TSelect>(this, options)\n }\n\n db: DatabaseAdapter\n decrypt = decrypt\n\n duplicate = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DuplicateOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const { duplicate } = localOperations\n return duplicate<TSlug, TSelect>(this, options)\n }\n\n email: InitializedEmailAdapter\n\n encrypt = encrypt\n\n // TODO: re-implement or remove?\n // errorHandler: ErrorHandler\n\n extensions: (args: {\n args: OperationArgs<any>\n req: graphQLRequest<unknown, unknown>\n result: ExecutionResult\n }) => Promise<any>\n\n /**\n * @description Find documents with criteria\n * @param options\n * @returns documents satisfying query\n */\n find = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: FindOptions<TSlug, TSelect>,\n ): Promise<PaginatedDocs<TransformCollectionWithSelect<TSlug, TSelect>>> => {\n const { find } = localOperations\n return find<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Find document by ID\n * @param options\n * @returns document with specified ID\n */\n findByID = async <\n TSlug extends CollectionSlug,\n TDisableErrors extends boolean,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n >(\n options: FindByIDOptions<TSlug, TDisableErrors, TSelect>,\n ): Promise<ApplyDisableErrors<TransformCollectionWithSelect<TSlug, TSelect>, TDisableErrors>> => {\n const { findByID } = localOperations\n return findByID<TSlug, TDisableErrors, TSelect>(this, options)\n }\n\n findGlobal = async <TSlug extends GlobalSlug, TSelect extends SelectFromGlobalSlug<TSlug>>(\n options: FindGlobalOptions<TSlug, TSelect>,\n ): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n const { findOne } = localGlobalOperations\n return findOne<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Find global version by ID\n * @param options\n * @returns global version with specified ID\n */\n findGlobalVersionByID = async <TSlug extends GlobalSlug>(\n options: FindGlobalVersionByIDOptions<TSlug>,\n ): Promise<TypeWithVersion<DataFromGlobalSlug<TSlug>>> => {\n const { findVersionByID } = localGlobalOperations\n return findVersionByID<TSlug>(this, options)\n }\n\n /**\n * @description Find global versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findGlobalVersions = async <TSlug extends GlobalSlug>(\n options: FindGlobalVersionsOptions<TSlug>,\n ): Promise<PaginatedDocs<TypeWithVersion<DataFromGlobalSlug<TSlug>>>> => {\n const { findVersions } = localGlobalOperations\n return findVersions<TSlug>(this, options)\n }\n\n /**\n * @description Find version by ID\n * @param options\n * @returns version with specified ID\n */\n findVersionByID = async <TSlug extends CollectionSlug>(\n options: FindVersionByIDOptions<TSlug>,\n ): Promise<TypeWithVersion<DataFromCollectionSlug<TSlug>>> => {\n const { findVersionByID } = localOperations\n return findVersionByID<TSlug>(this, options)\n }\n\n /**\n * @description Find versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findVersions = async <TSlug extends CollectionSlug>(\n options: FindVersionsOptions<TSlug>,\n ): Promise<PaginatedDocs<TypeWithVersion<DataFromCollectionSlug<TSlug>>>> => {\n const { findVersions } = localOperations\n return findVersions<TSlug>(this, options)\n }\n\n forgotPassword = async <TSlug extends CollectionSlug>(\n options: ForgotPasswordOptions<TSlug>,\n ): Promise<ForgotPasswordResult> => {\n const { forgotPassword } = localOperations.auth\n return forgotPassword<TSlug>(this, options)\n }\n\n getAdminURL = (): string => `${this.config.serverURL}${this.config.routes.admin}`\n\n getAPIURL = (): string => `${this.config.serverURL}${this.config.routes.api}`\n\n globals: Globals\n\n importMap: ImportMap\n\n jobs = getJobsLocalAPI(this)\n\n logger: Logger\n\n login = async <TSlug extends CollectionSlug>(\n options: LoginOptions<TSlug>,\n ): Promise<{ user: DataFromCollectionSlug<TSlug> } & LoginResult> => {\n const { login } = localOperations.auth\n return login<TSlug>(this, options)\n }\n\n resetPassword = async <TSlug extends CollectionSlug>(\n options: ResetPasswordOptions<TSlug>,\n ): Promise<ResetPasswordResult> => {\n const { resetPassword } = localOperations.auth\n return resetPassword<TSlug>(this, options)\n }\n\n /**\n * @description Restore global version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreGlobalVersion = async <TSlug extends GlobalSlug>(\n options: RestoreGlobalVersionOptions<TSlug>,\n ): Promise<DataFromGlobalSlug<TSlug>> => {\n const { restoreVersion } = localGlobalOperations\n return restoreVersion<TSlug>(this, options)\n }\n\n /**\n * @description Restore version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreVersion = async <TSlug extends CollectionSlug>(\n options: RestoreVersionOptions<TSlug>,\n ): Promise<DataFromCollectionSlug<TSlug>> => {\n const { restoreVersion } = localOperations\n return restoreVersion<TSlug>(this, options)\n }\n\n schema: GraphQLSchema\n\n secret: string\n\n sendEmail: InitializedEmailAdapter['sendEmail']\n\n types: {\n arrayTypes: any\n blockInputTypes: any\n blockTypes: any\n fallbackLocaleInputType?: any\n groupTypes: any\n localeInputType?: any\n tabTypes: any\n }\n\n unlock = async <TSlug extends CollectionSlug>(\n options: UnlockOptions<TSlug>,\n ): Promise<boolean> => {\n const { unlock } = localOperations.auth\n return unlock<TSlug>(this, options)\n }\n\n updateGlobal = async <TSlug extends GlobalSlug, TSelect extends SelectFromGlobalSlug<TSlug>>(\n options: UpdateGlobalOptions<TSlug, TSelect>,\n ): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n const { update } = localGlobalOperations\n return update<TSlug, TSelect>(this, options)\n }\n\n validationRules: (args: OperationArgs<any>) => ValidationRule[]\n\n verifyEmail = async <TSlug extends CollectionSlug>(\n options: VerifyEmailOptions<TSlug>,\n ): Promise<boolean> => {\n const { verifyEmail } = localOperations.auth\n return verifyEmail(this, options)\n }\n\n versions: {\n [slug: string]: any // TODO: Type this\n } = {}\n\n async bin({\n args,\n cwd,\n log,\n }: {\n args: string[]\n cwd?: string\n log?: boolean\n }): Promise<{ code: number }> {\n return new Promise((resolve, reject) => {\n const spawned = spawn('node', [path.resolve(dirname, '../bin.js'), ...args], {\n cwd,\n stdio: log || log === undefined ? 'inherit' : 'ignore',\n })\n\n spawned.on('exit', (code) => {\n resolve({ code })\n })\n\n spawned.on('error', (error) => {\n reject(error)\n })\n })\n }\n\n /**\n * @description delete one or more documents\n * @param options\n * @returns Updated document(s)\n */\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteByIDOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>>\n\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteManyOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect>>\n\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect> | TransformCollectionWithSelect<TSlug, TSelect>> {\n const { deleteLocal } = localOperations\n return deleteLocal<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Initializes Payload\n * @param options\n */\n async init(options: InitOptions): Promise<Payload> {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true' &&\n !checkedDependencies\n ) {\n checkedDependencies = true\n void checkPayloadDependencies()\n }\n\n this.importMap = options.importMap\n\n if (!options?.config) {\n throw new Error('Error: the payload config is required to initialize payload.')\n }\n\n this.config = await options.config\n this.logger = getLogger('payload', this.config.logger)\n\n if (!this.config.secret) {\n throw new Error('Error: missing secret key. A secret key is needed to secure Payload.')\n }\n\n this.secret = crypto.createHash('sha256').update(this.config.secret).digest('hex').slice(0, 32)\n\n this.globals = {\n config: this.config.globals,\n }\n\n for (const collection of this.config.collections) {\n let customIDType = undefined\n const findCustomID: TraverseFieldsCallback = ({ field }) => {\n if (\n ['array', 'blocks', 'group'].includes(field.type) ||\n (field.type === 'tab' && 'name' in field)\n ) {\n return true\n }\n\n if (!fieldAffectsData(field)) {\n return\n }\n\n if (field.name === 'id') {\n customIDType = field.type\n return true\n }\n }\n\n traverseFields({\n callback: findCustomID,\n config: this.config,\n fields: collection.fields,\n parentIsLocalized: false,\n })\n\n this.collections[collection.slug] = {\n config: collection,\n customIDType,\n }\n }\n\n this.blocks = this.config.blocks.reduce((blocks, block) => {\n blocks[block.slug] = block\n return blocks\n }, {})\n\n // Generate types on startup\n if (process.env.NODE_ENV !== 'production' && this.config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void this.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n this.db = this.config.db.init({ payload: this })\n this.db.payload = this\n\n if (this.db?.init) {\n await this.db.init()\n }\n\n if (!options.disableDBConnect && this.db.connect) {\n await this.db.connect()\n }\n\n // Load email adapter\n if (this.config.email instanceof Promise) {\n const awaitedAdapter = await this.config.email\n this.email = awaitedAdapter({ payload: this })\n } else if (this.config.email) {\n this.email = this.config.email({ payload: this })\n } else {\n if (process.env.NEXT_PHASE !== 'phase-production-build') {\n this.logger.warn(\n `No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.`,\n )\n }\n\n this.email = consoleEmailAdapter({ payload: this })\n }\n\n // Warn if image resizing is enabled but sharp is not installed\n if (\n !this.config.sharp &&\n this.config.collections.some((c) => c.upload.imageSizes || c.upload.formatOptions)\n ) {\n this.logger.warn(\n `Image resizing is enabled for one or more collections, but sharp not installed. Please install 'sharp' and pass into the config.`,\n )\n }\n\n // Warn if user is deploying to Vercel, and any upload collection is missing a storage adapter\n if (process.env.VERCEL) {\n const uploadCollWithoutAdapter = this.config.collections.filter(\n (c) => c.upload && c.upload.adapter === undefined, // Uploads enabled, but no storage adapter provided\n )\n\n if (uploadCollWithoutAdapter.length) {\n const slugs = uploadCollWithoutAdapter.map((c) => c.slug).join(', ')\n this.logger.warn(\n `Collections with uploads enabled require a storage adapter when deploying to Vercel. Collection(s) without storage adapters: ${slugs}. See https://payloadcms.com/docs/upload/storage-adapters for more info.`,\n )\n }\n }\n\n this.sendEmail = this.email['sendEmail']\n\n serverInitTelemetry(this)\n\n // 1. loop over collections, if collection has auth strategy, initialize and push to array\n let jwtStrategyEnabled = false\n this.authStrategies = this.config.collections.reduce((authStrategies, collection) => {\n if (collection?.auth) {\n if (collection.auth.strategies.length > 0) {\n authStrategies.push(...collection.auth.strategies)\n }\n\n // 2. if api key enabled, push api key strategy into the array\n if (collection.auth?.useAPIKey) {\n authStrategies.push({\n name: `${collection.slug}-api-key`,\n authenticate: APIKeyAuthentication(collection),\n })\n }\n\n // 3. if localStrategy flag is true\n if (!collection.auth.disableLocalStrategy && !jwtStrategyEnabled) {\n jwtStrategyEnabled = true\n }\n }\n\n return authStrategies\n }, [] as AuthStrategy[])\n\n // 4. if enabled, push jwt strategy into authStrategies last\n if (jwtStrategyEnabled) {\n this.authStrategies.push({\n name: 'local-jwt',\n authenticate: JWTAuthentication,\n })\n }\n\n try {\n if (!options.disableOnInit) {\n if (typeof options.onInit === 'function') {\n await options.onInit(this)\n }\n if (typeof this.config.onInit === 'function') {\n await this.config.onInit(this)\n }\n }\n } catch (error) {\n this.logger.error({ err: error }, 'Error running onInit function')\n throw error\n }\n\n if (this.config.jobs.autoRun && !isNextBuild()) {\n const DEFAULT_CRON = '* * * * *'\n const DEFAULT_LIMIT = 10\n\n const cronJobs =\n typeof this.config.jobs.autoRun === 'function'\n ? await this.config.jobs.autoRun(this)\n : this.config.jobs.autoRun\n\n await Promise.all(\n cronJobs.map((cronConfig) => {\n const job = new Cron(cronConfig.cron ?? DEFAULT_CRON, async () => {\n if (typeof this.config.jobs.shouldAutoRun === 'function') {\n const shouldAutoRun = await this.config.jobs.shouldAutoRun(this)\n\n if (!shouldAutoRun) {\n job.stop()\n\n return false\n }\n }\n\n await this.jobs.run({\n limit: cronConfig.limit ?? DEFAULT_LIMIT,\n queue: cronConfig.queue,\n })\n })\n }),\n )\n }\n\n return this\n }\n\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateManyOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect>>\n\n /**\n * @description Update one or more documents\n * @param options\n * @returns Updated document(s)\n */\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateByIDOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>>\n\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect> | TransformCollectionWithSelect<TSlug, TSelect>> {\n const { update } = localOperations\n return update<TSlug, TSelect>(this, options)\n }\n}\n\nconst initialized = new BasePayload()\n\nexport default initialized\n\nlet cached: {\n payload: null | Payload\n promise: null | Promise<Payload>\n reload: boolean | Promise<void>\n ws: null | WebSocket\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (\n config: SanitizedConfig,\n payload: Payload,\n skipImportMapGeneration?: boolean,\n): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.blocks = config.blocks.reduce((blocks, block) => {\n blocks[block.slug] = block\n return blocks\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) that may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n // Generate component map\n if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {\n await generateImportMap(config, {\n log: true,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n global._payload_clientConfig = null\n global._payload_schemaMap = null\n global._payload_clientSchemaMap = null\n global._payload_doNotCacheClientConfig = true // This will help refreshing the client config cache more reliably. If you remove this, please test HMR + client config refreshing (do new fields appear in the document?)\n global._payload_doNotCacheSchemaMap = true\n global._payload_doNotCacheClientSchemaMap = true\n}\n\nexport const getPayload = async (\n options: Pick<InitOptions, 'config' | 'importMap'>,\n): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayload is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayload\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload, !options.importMap)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n return cached.payload\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n\n const path = '/_next/webpack-hmr'\n // The __NEXT_ASSET_PREFIX env variable is set for both assetPrefix and basePath (tested in Next.js 15.1.6)\n const prefix = process.env.__NEXT_ASSET_PREFIX ?? ''\n\n cached.ws = new WebSocket(\n process.env.PAYLOAD_HMR_URL_OVERRIDE ?? `ws://localhost:${port}${prefix}${path}`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n\n cached.ws.onerror = (_) => {\n // swallow any websocket connection error\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n // add identifier to error object, so that our error logger in routeError.ts does not attempt to re-initialize getPayload\n e.payloadInitError = true\n throw e\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n\n return cached.payload\n}\n\ntype Payload = BasePayload\n\ninterface RequestContext {\n [key: string]: unknown\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface DatabaseAdapter extends BaseDatabaseAdapter {}\nexport type { Payload, RequestContext }\nexport { extractAccessFromPermission } from './auth/extractAccessFromPermission.js'\nexport { getAccessResults } from './auth/getAccessResults.js'\nexport { getFieldsToSign } from './auth/getFieldsToSign.js'\nexport * from './auth/index.js'\nexport { accessOperation } from './auth/operations/access.js'\nexport { forgotPasswordOperation } from './auth/operations/forgotPassword.js'\nexport { initOperation } from './auth/operations/init.js'\nexport { loginOperation } from './auth/operations/login.js'\nexport { logoutOperation } from './auth/operations/logout.js'\nexport type { MeOperationResult } from './auth/operations/me.js'\nexport { meOperation } from './auth/operations/me.js'\nexport { refreshOperation } from './auth/operations/refresh.js'\nexport { registerFirstUserOperation } from './auth/operations/registerFirstUser.js'\nexport { resetPasswordOperation } from './auth/operations/resetPassword.js'\nexport { unlockOperation } from './auth/operations/unlock.js'\nexport { verifyEmailOperation } from './auth/operations/verifyEmail.js'\nexport { JWTAuthentication } from './auth/strategies/jwt.js'\nexport type {\n AuthStrategyFunction,\n AuthStrategyFunctionArgs,\n AuthStrategyResult,\n CollectionPermission,\n DocumentPermissions,\n FieldPermissions,\n GlobalPermission,\n IncomingAuthType,\n Permission,\n Permissions,\n SanitizedCollectionPermission,\n SanitizedDocumentPermissions,\n SanitizedFieldPermissions,\n SanitizedGlobalPermission,\n SanitizedPermissions,\n User,\n VerifyConfig,\n} from './auth/types.js'\nexport { generateImportMap } from './bin/generateImportMap/index.js'\n\nexport type { ImportMap } from './bin/generateImportMap/index.js'\nexport { genImportMapIterateFields } from './bin/generateImportMap/iterateFields.js'\nexport {\n type ClientCollectionConfig,\n createClientCollectionConfig,\n createClientCollectionConfigs,\n type ServerOnlyCollectionAdminProperties,\n type ServerOnlyCollectionProperties,\n type ServerOnlyUploadProperties,\n} from './collections/config/client.js'\n\nexport type {\n AfterChangeHook as CollectionAfterChangeHook,\n AfterDeleteHook as CollectionAfterDeleteHook,\n AfterErrorHook as CollectionAfterErrorHook,\n AfterForgotPasswordHook as CollectionAfterForgotPasswordHook,\n AfterLoginHook as CollectionAfterLoginHook,\n AfterLogoutHook as CollectionAfterLogoutHook,\n AfterMeHook as CollectionAfterMeHook,\n AfterOperationHook as CollectionAfterOperationHook,\n AfterReadHook as CollectionAfterReadHook,\n AfterRefreshHook as CollectionAfterRefreshHook,\n AuthCollection,\n AuthOperationsFromCollectionSlug,\n BaseListFilter,\n BeforeChangeHook as CollectionBeforeChangeHook,\n BeforeDeleteHook as CollectionBeforeDeleteHook,\n BeforeLoginHook as CollectionBeforeLoginHook,\n BeforeOperationHook as CollectionBeforeOperationHook,\n BeforeReadHook as CollectionBeforeReadHook,\n BeforeValidateHook as CollectionBeforeValidateHook,\n BulkOperationResult,\n Collection,\n CollectionAdminOptions,\n CollectionConfig,\n DataFromCollectionSlug,\n HookOperationType,\n MeHook as CollectionMeHook,\n RefreshHook as CollectionRefreshHook,\n RequiredDataFromCollection,\n RequiredDataFromCollectionSlug,\n SanitizedCollectionConfig,\n SanitizedJoins,\n TypeWithID,\n TypeWithTimestamps,\n} from './collections/config/types.js'\n\nexport type { CompoundIndex } from './collections/config/types.js'\n\nexport type { SanitizedCompoundIndex } from './collections/config/types.js'\nexport { createDataloaderCacheKey, getDataLoader } from './collections/dataloader.js'\nexport { countOperation } from './collections/operations/count.js'\nexport { createOperation } from './collections/operations/create.js'\nexport { deleteOperation } from './collections/operations/delete.js'\nexport { deleteByIDOperation } from './collections/operations/deleteByID.js'\nexport { docAccessOperation } from './collections/operations/docAccess.js'\nexport { duplicateOperation } from './collections/operations/duplicate.js'\nexport { findOperation } from './collections/operations/find.js'\nexport { findByIDOperation } from './collections/operations/findByID.js'\nexport { findVersionByIDOperation } from './collections/operations/findVersionByID.js'\nexport { findVersionsOperation } from './collections/operations/findVersions.js'\nexport { restoreVersionOperation } from './collections/operations/restoreVersion.js'\nexport { updateOperation } from './collections/operations/update.js'\nexport { updateByIDOperation } from './collections/operations/updateByID.js'\nexport { buildConfig } from './config/build.js'\n\nexport {\n type ClientConfig,\n createClientConfig,\n serverOnlyAdminConfigProperties,\n serverOnlyConfigProperties,\n type UnsanitizedClientConfig,\n} from './config/client.js'\n\nexport { defaults } from './config/defaults.js'\nexport { sanitizeConfig } from './config/sanitize.js'\nexport type * from './config/types.js'\nexport { combineQueries } from './database/combineQueries.js'\nexport { createDatabaseAdapter } from './database/createDatabaseAdapter.js'\nexport { defaultBeginTransaction } from './database/defaultBeginTransaction.js'\nexport { flattenWhereToOperators } from './database/flattenWhereToOperators.js'\nexport { getLocalizedPaths } from './database/getLocalizedPaths.js'\nexport { createMigration } from './database/migrations/createMigration.js'\nexport { getMigrations } from './database/migrations/getMigrations.js'\nexport { getPredefinedMigration } from './database/migrations/getPredefinedMigration.js'\nexport { migrate } from './database/migrations/migrate.js'\nexport { migrateDown } from './database/migrations/migrateDown.js'\nexport { migrateRefresh } from './database/migrations/migrateRefresh.js'\nexport { migrateReset } from './database/migrations/migrateReset.js'\nexport { migrateStatus } from './database/migrations/migrateStatus.js'\nexport { migrationsCollection } from './database/migrations/migrationsCollection.js'\nexport { migrationTemplate } from './database/migrations/migrationTemplate.js'\nexport { readMigrationFiles } from './database/migrations/readMigrationFiles.js'\nexport { writeMigrationIndex } from './database/migrations/writeMigrationIndex.js'\nexport type * from './database/queryValidation/types.js'\nexport type { EntityPolicies, PathToQuery } from './database/queryValidation/types.js'\nexport { validateQueryPaths } from './database/queryValidation/validateQueryPaths.js'\nexport { validateSearchParam } from './database/queryValidation/validateSearchParams.js'\nexport type {\n BaseDatabaseAdapter,\n BeginTransaction,\n CommitTransaction,\n Connect,\n Count,\n CountArgs,\n CountGlobalVersionArgs,\n CountGlobalVersions,\n CountVersions,\n Create,\n CreateArgs,\n CreateGlobal,\n CreateGlobalArgs,\n CreateGlobalVersion,\n CreateGlobalVersionArgs,\n CreateMigration,\n CreateVersion,\n CreateVersionArgs,\n DatabaseAdapterResult as DatabaseAdapterObj,\n DBIdentifierName,\n DeleteMany,\n DeleteManyArgs,\n DeleteOne,\n DeleteOneArgs,\n DeleteVersions,\n DeleteVersionsArgs,\n Destroy,\n Find,\n FindArgs,\n FindGlobal,\n FindGlobalArgs,\n FindGlobalVersions,\n FindGlobalVersionsArgs,\n FindOne,\n FindOneArgs,\n FindVersions,\n FindVersionsArgs,\n GenerateSchema,\n Init,\n Migration,\n MigrationData,\n MigrationTemplateArgs,\n PaginatedDocs,\n QueryDrafts,\n QueryDraftsArgs,\n RollbackTransaction,\n Transaction,\n UpdateGlobal,\n UpdateGlobalArgs,\n UpdateGlobalVersion,\n UpdateGlobalVersionArgs,\n UpdateJobs,\n UpdateJobsArgs,\n UpdateMany,\n UpdateManyArgs,\n UpdateOne,\n UpdateOneArgs,\n UpdateVersion,\n UpdateVersionArgs,\n Upsert,\n UpsertArgs,\n} from './database/types.js'\nexport type { EmailAdapter as PayloadEmailAdapter, SendEmailOptions } from './email/types.js'\nexport {\n APIError,\n APIErrorName,\n AuthenticationError,\n DuplicateCollection,\n DuplicateFieldName,\n DuplicateGlobal,\n ErrorDeletingFile,\n FileRetrievalError,\n FileUploadError,\n Forbidden,\n InvalidConfiguration,\n InvalidFieldName,\n InvalidFieldRelationship,\n Locked,\n LockedAuth,\n MissingCollectionLabel,\n MissingEditorProp,\n MissingFieldInputOptions,\n MissingFieldType,\n MissingFile,\n NotFound,\n QueryError,\n ValidationError,\n ValidationErrorName,\n} from './errors/index.js'\nexport type { ValidationFieldError } from './errors/index.js'\n\nexport { baseBlockFields } from './fields/baseFields/baseBlockFields.js'\nexport { baseIDField } from './fields/baseFields/baseIDField.js'\nexport {\n createClientField,\n createClientFields,\n type ServerOnlyFieldAdminProperties,\n type ServerOnlyFieldProperties,\n} from './fields/config/client.js'\n\nexport { sanitizeFields } from './fields/config/sanitize.js'\nexport type {\n AdminClient,\n ArrayField,\n ArrayFieldClient,\n BaseValidateOptions,\n Block,\n BlockJSX,\n BlocksField,\n BlocksFieldClient,\n CheckboxField,\n CheckboxFieldClient,\n ClientBlock,\n ClientField,\n ClientFieldProps,\n CodeField,\n CodeFieldClient,\n CollapsibleField,\n CollapsibleFieldClient,\n Condition,\n DateField,\n DateFieldClient,\n EmailField,\n EmailFieldClient,\n Field,\n FieldAccess,\n FieldAffectingData,\n FieldAffectingDataClient,\n FieldBase,\n FieldBaseClient,\n FieldHook,\n FieldHookArgs,\n FieldPresentationalOnly,\n FieldPresentationalOnlyClient,\n FieldTypes,\n FieldWithMany,\n FieldWithManyClient,\n FieldWithMaxDepth,\n FieldWithMaxDepthClient,\n FieldWithPath,\n FieldWithPathClient,\n FieldWithSubFields,\n FieldWithSubFieldsClient,\n FilterOptions,\n FilterOptionsProps,\n FlattenedArrayField,\n FlattenedBlock,\n FlattenedBlocksField,\n FlattenedField,\n FlattenedGroupField,\n FlattenedJoinField,\n FlattenedTabAsField,\n GroupField,\n GroupFieldClient,\n HookName,\n JoinField,\n JoinFieldClient,\n JSONField,\n JSONFieldClient,\n Labels,\n LabelsClient,\n NamedTab,\n NonPresentationalField,\n NonPresentationalFieldClient,\n NumberField,\n NumberFieldClient,\n Option,\n OptionLabel,\n OptionObject,\n PointField,\n PointFieldClient,\n PolymorphicRelationshipField,\n PolymorphicRelationshipFieldClient,\n RadioField,\n RadioFieldClient,\n RelationshipField,\n RelationshipFieldClient,\n RelationshipValue,\n RichTextField,\n RichTextFieldClient,\n RowField,\n RowFieldClient,\n SelectField,\n SelectFieldClient,\n SingleRelationshipField,\n SingleRelationshipFieldClient,\n Tab,\n TabAsField,\n TabAsFieldClient,\n TabsField,\n TabsFieldClient,\n TextareaField,\n TextareaFieldClient,\n TextField,\n TextFieldClient,\n UIField,\n UIFieldClient,\n UnnamedTab,\n UploadField,\n UploadFieldClient,\n Validate,\n ValidateOptions,\n ValueWithRelation,\n} from './fields/config/types.js'\n\nexport { getDefaultValue } from './fields/getDefaultValue.js'\n\nexport { traverseFields as afterChangeTraverseFields } from './fields/hooks/afterChange/traverseFields.js'\nexport { promise as afterReadPromise } from './fields/hooks/afterRead/promise.js'\nexport { traverseFields as afterReadTraverseFields } from './fields/hooks/afterRead/traverseFields.js'\nexport { traverseFields as beforeChangeTraverseFields } from './fields/hooks/beforeChange/traverseFields.js'\nexport { traverseFields as beforeValidateTraverseFields } from './fields/hooks/beforeValidate/traverseFields.js'\nexport { default as sortableFieldTypes } from './fields/sortableFieldTypes.js'\n\nexport { validations } from './fields/validations.js'\nexport type {\n ArrayFieldValidation,\n BlocksFieldValidation,\n CheckboxFieldValidation,\n CodeFieldValidation,\n ConfirmPasswordFieldValidation,\n DateFieldValidation,\n EmailFieldValidation,\n JSONFieldValidation,\n NumberFieldManyValidation,\n NumberFieldSingleValidation,\n NumberFieldValidation,\n PasswordFieldValidation,\n PointFieldValidation,\n RadioFieldValidation,\n RelationshipFieldManyValidation,\n RelationshipFieldSingleValidation,\n RelationshipFieldValidation,\n RichTextFieldValidation,\n SelectFieldManyValidation,\n SelectFieldSingleValidation,\n SelectFieldValidation,\n TextareaFieldValidation,\n TextFieldManyValidation,\n TextFieldSingleValidation,\n TextFieldValidation,\n UploadFieldManyValidation,\n UploadFieldSingleValidation,\n UploadFieldValidation,\n UsernameFieldValidation,\n} from './fields/validations.js'\nexport {\n type ClientGlobalConfig,\n createClientGlobalConfig,\n createClientGlobalConfigs,\n type ServerOnlyGlobalAdminProperties,\n type ServerOnlyGlobalProperties,\n} from './globals/config/client.js'\n\nexport type {\n AfterChangeHook as GlobalAfterChangeHook,\n AfterReadHook as GlobalAfterReadHook,\n BeforeChangeHook as GlobalBeforeChangeHook,\n BeforeReadHook as GlobalBeforeReadHook,\n BeforeValidateHook as GlobalBeforeValidateHook,\n DataFromGlobalSlug,\n GlobalAdminOptions,\n GlobalConfig,\n SanitizedGlobalConfig,\n} from './globals/config/types.js'\n\nexport { docAccessOperation as docAccessOperationGlobal } from './globals/operations/docAccess.js'\n\nexport { findOneOperation } from './globals/operations/findOne.js'\nexport { findVersionByIDOperation as findVersionByIDOperationGlobal } from './globals/operations/findVersionByID.js'\nexport { findVersionsOperation as findVersionsOperationGlobal } from './globals/operations/findVersions.js'\nexport { restoreVersionOperation as restoreVersionOperationGlobal } from './globals/operations/restoreVersion.js'\nexport { updateOperation as updateOperationGlobal } from './globals/operations/update.js'\nexport type {\n CollapsedPreferences,\n ColumnPreference,\n DocumentPreferences,\n FieldsPreferences,\n InsideFieldsPreferences,\n ListPreferences,\n PreferenceRequest,\n PreferenceUpdateRequest,\n TabsPreferences,\n} from './preferences/types.js'\nexport type { QueryPreset } from './query-presets/types.js'\nexport { jobAfterRead } from './queues/config/index.js'\nexport type { JobsConfig, RunJobAccess, RunJobAccessArgs } from './queues/config/types/index.js'\n\nexport type {\n RunInlineTaskFunction,\n RunTaskFunction,\n RunTaskFunctions,\n TaskConfig,\n TaskHandler,\n TaskHandlerArgs,\n TaskHandlerResult,\n TaskHandlerResults,\n TaskInput,\n TaskOutput,\n TaskType,\n} from './queues/config/types/taskTypes.js'\nexport type {\n BaseJob,\n JobLog,\n JobTaskStatus,\n RunningJob,\n SingleTaskStatus,\n WorkflowConfig,\n WorkflowHandler,\n WorkflowTypes,\n} from './queues/config/types/workflowTypes.js'\nexport { importHandlerPath } from './queues/operations/runJobs/runJob/importHandlerPath.js'\nexport { getLocalI18n } from './translations/getLocalI18n.js'\nexport * from './types/index.js'\nexport { getFileByPath } from './uploads/getFileByPath.js'\nexport type * from './uploads/types.js'\n\nexport { addDataAndFileToRequest } from './utilities/addDataAndFileToRequest.js'\n\nexport { addLocalesToRequestFromData, sanitizeLocales } from './utilities/addLocalesToRequest.js'\nexport { commitTransaction } from './utilities/commitTransaction.js'\nexport {\n configToJSONSchema,\n entityToJSONSchema,\n fieldsToJSONSchema,\n withNullableJSONSchemaType,\n} from './utilities/configToJSONSchema.js'\nexport { createArrayFromCommaDelineated } from './utilities/createArrayFromCommaDelineated.js'\nexport { createLocalReq } from './utilities/createLocalReq.js'\nexport { createPayloadRequest } from './utilities/createPayloadRequest.js'\nexport {\n deepCopyObject,\n deepCopyObjectComplex,\n deepCopyObjectSimple,\n} from './utilities/deepCopyObject.js'\nexport {\n deepMerge,\n deepMergeWithCombinedArrays,\n deepMergeWithReactComponents,\n deepMergeWithSourceArrays,\n} from './utilities/deepMerge.js'\nexport {\n checkDependencies,\n type CustomVersionParser,\n} from './utilities/dependencies/dependencyChecker.js'\nexport { getDependencies } from './utilities/dependencies/getDependencies.js'\nexport type { FieldSchemaJSON } from './utilities/fieldSchemaToJSON.js'\nexport {\n findUp,\n findUpSync,\n pathExistsAndIsAccessible,\n pathExistsAndIsAccessibleSync,\n} from './utilities/findUp.js'\nexport { flattenAllFields } from './utilities/flattenAllFields.js'\nexport { default as flattenTopLevelFields } from './utilities/flattenTopLevelFields.js'\nexport { formatErrors } from './utilities/formatErrors.js'\nexport { formatLabels, formatNames, toWords } from './utilities/formatLabels.js'\nexport { getBlockSelect } from './utilities/getBlockSelect.js'\nexport { getCollectionIDFieldTypes } from './utilities/getCollectionIDFieldTypes.js'\nexport { getFieldByPath } from './utilities/getFieldByPath.js'\nexport { getObjectDotNotation } from './utilities/getObjectDotNotation.js'\nexport { getRequestLanguage } from './utilities/getRequestLanguage.js'\nexport { handleEndpoints } from './utilities/handleEndpoints.js'\nexport { headersWithCors } from './utilities/headersWithCors.js'\nexport { initTransaction } from './utilities/initTransaction.js'\nexport { isEntityHidden } from './utilities/isEntityHidden.js'\nexport { default as isolateObjectProperty } from './utilities/isolateObjectProperty.js'\nexport { isPlainObject } from './utilities/isPlainObject.js'\nexport { isValidID } from './utilities/isValidID.js'\nexport { killTransaction } from './utilities/killTransaction.js'\nexport { logError } from './utilities/logError.js'\nexport { defaultLoggerOptions } from './utilities/logger.js'\nexport { mapAsync } from './utilities/mapAsync.js'\nexport { mergeHeaders } from './utilities/mergeHeaders.js'\nexport { sanitizeFallbackLocale } from './utilities/sanitizeFallbackLocale.js'\nexport { sanitizeJoinParams } from './utilities/sanitizeJoinParams.js'\nexport { sanitizePopulateParam } from './utilities/sanitizePopulateParam.js'\nexport { sanitizeSelectParam } from './utilities/sanitizeSelectParam.js'\nexport { stripUnselectedFields } from './utilities/stripUnselectedFields.js'\nexport { traverseFields } from './utilities/traverseFields.js'\nexport type { TraverseFieldsCallback } from './utilities/traverseFields.js'\nexport { buildVersionCollectionFields } from './versions/buildCollectionFields.js'\nexport { buildVersionGlobalFields } from './versions/buildGlobalFields.js'\nexport { buildVersionCompoundIndexes } from './versions/buildVersionCompoundIndexes.js'\nexport { versionDefaults } from './versions/defaults.js'\nexport { deleteCollectionVersions } from './versions/deleteCollectionVersions.js'\nexport { appendVersionToQueryKey } from './versions/drafts/appendVersionToQueryKey.js'\nexport { getQueryDraftsSort } from './versions/drafts/getQueryDraftsSort.js'\nexport { enforceMaxVersions } from './versions/enforceMaxVersions.js'\nexport { getLatestCollectionVersion } from './versions/getLatestCollectionVersion.js'\nexport { getLatestGlobalVersion } from './versions/getLatestGlobalVersion.js'\nexport { saveVersion } from './versions/saveVersion.js'\nexport type { SchedulePublishTaskInput } from './versions/schedule/types.js'\nexport type { TypeWithVersion } from './versions/types.js'\nexport { deepMergeSimple } from '@payloadcms/translations/utilities'\n"],"names":["spawn","crypto","fileURLToPath","path","WebSocket","Cron","decrypt","encrypt","APIKeyAuthentication","JWTAuthentication","generateImportMap","checkPayloadDependencies","localOperations","consoleEmailAdapter","fieldAffectsData","localGlobalOperations","getJobsLocalAPI","isNextBuild","getLogger","serverInit","serverInitTelemetry","traverseFields","default","executeAccess","executeAuthStrategies","filename","url","dirname","checkedDependencies","BasePayload","auth","options","authStrategies","blocks","collections","config","count","countGlobalVersions","countVersions","create","db","duplicate","email","extensions","find","findByID","findGlobal","findOne","findGlobalVersionByID","findVersionByID","findGlobalVersions","findVersions","forgotPassword","getAdminURL","serverURL","routes","admin","getAPIURL","api","globals","importMap","jobs","logger","login","resetPassword","restoreGlobalVersion","restoreVersion","schema","secret","sendEmail","types","unlock","updateGlobal","update","validationRules","verifyEmail","versions","bin","args","cwd","log","Promise","resolve","reject","spawned","stdio","undefined","on","code","error","delete","deleteLocal","init","process","env","NODE_ENV","PAYLOAD_DISABLE_DEPENDENCY_CHECKER","Error","createHash","digest","slice","collection","customIDType","findCustomID","field","includes","type","name","callback","fields","parentIsLocalized","slug","reduce","block","typescript","autoGenerate","payload","disableDBConnect","connect","awaitedAdapter","NEXT_PHASE","warn","sharp","some","c","upload","imageSizes","formatOptions","VERCEL","uploadCollWithoutAdapter","filter","adapter","length","slugs","map","join","jwtStrategyEnabled","strategies","push","useAPIKey","authenticate","disableLocalStrategy","disableOnInit","onInit","err","autoRun","DEFAULT_CRON","DEFAULT_LIMIT","cronJobs","all","cronConfig","job","cron","shouldAutoRun","stop","run","limit","queue","initialized","cached","global","_payload","promise","reload","ws","skipImportMapGeneration","destroy","hotReload","_payload_clientConfig","_payload_schemaMap","_payload_clientSchemaMap","_payload_doNotCacheClientConfig","_payload_doNotCacheSchemaMap","_payload_doNotCacheClientSchemaMap","getPayload","res","DISABLE_PAYLOAD_HMR","port","PORT","prefix","__NEXT_ASSET_PREFIX","PAYLOAD_HMR_URL_OVERRIDE","onmessage","event","data","JSON","parse","action","onerror","_","e","payloadInitError","extractAccessFromPermission","getAccessResults","getFieldsToSign","accessOperation","forgotPasswordOperation","initOperation","loginOperation","logoutOperation","meOperation","refreshOperation","registerFirstUserOperation","resetPasswordOperation","unlockOperation","verifyEmailOperation","genImportMapIterateFields","createClientCollectionConfig","createClientCollectionConfigs","createDataloaderCacheKey","getDataLoader","countOperation","createOperation","deleteOperation","deleteByIDOperation","docAccessOperation","duplicateOperation","findOperation","findByIDOperation","findVersionByIDOperation","findVersionsOperation","restoreVersionOperation","updateOperation","updateByIDOperation","buildConfig","createClientConfig","serverOnlyAdminConfigProperties","serverOnlyConfigProperties","defaults","sanitizeConfig","combineQueries","createDatabaseAdapter","defaultBeginTransaction","flattenWhereToOperators","getLocalizedPaths","createMigration","getMigrations","getPredefinedMigration","migrate","migrateDown","migrateRefresh","migrateReset","migrateStatus","migrationsCollection","migrationTemplate","readMigrationFiles","writeMigrationIndex","validateQueryPaths","validateSearchParam","APIError","APIErrorName","AuthenticationError","DuplicateCollection","DuplicateFieldName","DuplicateGlobal","ErrorDeletingFile","FileRetrievalError","FileUploadError","Forbidden","InvalidConfiguration","InvalidFieldName","InvalidFieldRelationship","Locked","LockedAuth","MissingCollectionLabel","MissingEditorProp","MissingFieldInputOptions","MissingFieldType","MissingFile","NotFound","QueryError","ValidationError","ValidationErrorName","baseBlockFields","baseIDField","createClientField","createClientFields","sanitizeFields","getDefaultValue","afterChangeTraverseFields","afterReadPromise","afterReadTraverseFields","beforeChangeTraverseFields","beforeValidateTraverseFields","sortableFieldTypes","validations","createClientGlobalConfig","createClientGlobalConfigs","docAccessOperationGlobal","findOneOperation","findVersionByIDOperationGlobal","findVersionsOperationGlobal","restoreVersionOperationGlobal","updateOperationGlobal","jobAfterRead","importHandlerPath","getLocalI18n","getFileByPath","addDataAndFileToRequest","addLocalesToRequestFromData","sanitizeLocales","commitTransaction","configToJSONSchema","entityToJSONSchema","fieldsToJSONSchema","withNullableJSONSchemaType","createArrayFromCommaDelineated","createLocalReq","createPayloadRequest","deepCopyObject","deepCopyObjectComplex","deepCopyObjectSimple","deepMerge","deepMergeWithCombinedArrays","deepMergeWithReactComponents","deepMergeWithSourceArrays","checkDependencies","getDependencies","findUp","findUpSync","pathExistsAndIsAccessible","pathExistsAndIsAccessibleSync","flattenAllFields","flattenTopLevelFields","formatErrors","formatLabels","formatNames","toWords","getBlockSelect","getCollectionIDFieldTypes","getFieldByPath","getObjectDotNotation","getRequestLanguage","handleEndpoints","headersWithCors","initTransaction","isEntityHidden","isolateObjectProperty","isPlainObject","isValidID","killTransaction","logError","defaultLoggerOptions","mapAsync","mergeHeaders","sanitizeFallbackLocale","sanitizeJoinParams","sanitizePopulateParam","sanitizeSelectParam","stripUnselectedFields","buildVersionCollectionFields","buildVersionGlobalFields","buildVersionCompoundIndexes","versionDefaults","deleteCollectionVersions","appendVersionToQueryKey","getQueryDraftsSort","enforceMaxVersions","getLatestCollectionVersion","getLatestGlobalVersion","saveVersion","deepMergeSimple"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @ts-strict-ignore\nimport type { ExecutionResult, GraphQLSchema, ValidationRule } from 'graphql'\nimport type { Request as graphQLRequest, OperationArgs } from 'graphql-http'\nimport type { Logger } from 'pino'\nimport type { NonNever } from 'ts-essentials'\n\nimport { spawn } from 'child_process'\nimport crypto from 'crypto'\nimport { fileURLToPath } from 'node:url'\nimport path from 'path'\nimport WebSocket from 'ws'\n\nimport type { AuthArgs } from './auth/operations/auth.js'\nimport type { Result as ForgotPasswordResult } from './auth/operations/forgotPassword.js'\nimport type { Options as ForgotPasswordOptions } from './auth/operations/local/forgotPassword.js'\nimport type { Options as LoginOptions } from './auth/operations/local/login.js'\nimport type { Options as ResetPasswordOptions } from './auth/operations/local/resetPassword.js'\nimport type { Options as UnlockOptions } from './auth/operations/local/unlock.js'\nimport type { Options as VerifyEmailOptions } from './auth/operations/local/verifyEmail.js'\nimport type { Result as LoginResult } from './auth/operations/login.js'\nimport type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js'\nimport type { AuthStrategy, User } from './auth/types.js'\nimport type {\n BulkOperationResult,\n Collection,\n DataFromCollectionSlug,\n SelectFromCollectionSlug,\n TypeWithID,\n} from './collections/config/types.js'\nexport type { FieldState } from './admin/forms/Form.js'\nimport type { Options as CountOptions } from './collections/operations/local/count.js'\nimport type { Options as CreateOptions } from './collections/operations/local/create.js'\nimport type {\n ByIDOptions as DeleteByIDOptions,\n ManyOptions as DeleteManyOptions,\n Options as DeleteOptions,\n} from './collections/operations/local/delete.js'\nimport type { Options as DuplicateOptions } from './collections/operations/local/duplicate.js'\nimport type { Options as FindOptions } from './collections/operations/local/find.js'\nimport type { Options as FindByIDOptions } from './collections/operations/local/findByID.js'\nimport type { Options as FindVersionByIDOptions } from './collections/operations/local/findVersionByID.js'\nimport type { Options as FindVersionsOptions } from './collections/operations/local/findVersions.js'\nimport type { Options as RestoreVersionOptions } from './collections/operations/local/restoreVersion.js'\nimport type {\n ByIDOptions as UpdateByIDOptions,\n ManyOptions as UpdateManyOptions,\n Options as UpdateOptions,\n} from './collections/operations/local/update.js'\nimport type { InitOptions, SanitizedConfig } from './config/types.js'\nimport type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js'\nimport type { InitializedEmailAdapter } from './email/types.js'\nimport type { DataFromGlobalSlug, Globals, SelectFromGlobalSlug } from './globals/config/types.js'\nimport type { CountGlobalVersionsOptions } from './globals/operations/local/countGlobalVersions.js'\nimport type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js'\nimport type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js'\nimport type { Options as FindGlobalVersionsOptions } from './globals/operations/local/findVersions.js'\nimport type { Options as RestoreGlobalVersionOptions } from './globals/operations/local/restoreVersion.js'\nimport type { Options as UpdateGlobalOptions } from './globals/operations/local/update.js'\nimport type {\n ApplyDisableErrors,\n JsonObject,\n SelectType,\n TransformCollectionWithSelect,\n TransformGlobalWithSelect,\n} from './types/index.js'\nimport type { TraverseFieldsCallback } from './utilities/traverseFields.js'\nexport type * from './admin/types.js'\nimport type { SupportedLanguages } from '@payloadcms/translations'\n\nimport { Cron } from 'croner'\n\nimport type { ClientConfig } from './config/client.js'\nimport type { TypeWithVersion } from './versions/types.js'\n\nimport { decrypt, encrypt } from './auth/crypto.js'\nimport { APIKeyAuthentication } from './auth/strategies/apiKey.js'\nimport { JWTAuthentication } from './auth/strategies/jwt.js'\nimport { generateImportMap, type ImportMap } from './bin/generateImportMap/index.js'\nimport { checkPayloadDependencies } from './checkPayloadDependencies.js'\nimport localOperations from './collections/operations/local/index.js'\nimport { consoleEmailAdapter } from './email/consoleEmailAdapter.js'\nimport { fieldAffectsData, type FlattenedBlock } from './fields/config/types.js'\nimport localGlobalOperations from './globals/operations/local/index.js'\nimport { getJobsLocalAPI } from './queues/localAPI.js'\nimport { isNextBuild } from './utilities/isNextBuild.js'\nimport { getLogger } from './utilities/logger.js'\nimport { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js'\nimport { traverseFields } from './utilities/traverseFields.js'\n\nexport { default as executeAccess } from './auth/executeAccess.js'\nexport { executeAuthStrategies } from './auth/executeAuthStrategies.js'\n\nexport interface GeneratedTypes {\n authUntyped: {\n [slug: string]: {\n forgotPassword: {\n email: string\n }\n login: {\n email: string\n password: string\n }\n registerFirstUser: {\n email: string\n password: string\n }\n unlock: {\n email: string\n }\n }\n }\n\n blocksUntyped: {\n [slug: string]: JsonObject\n }\n collectionsJoinsUntyped: {\n [slug: string]: {\n [schemaPath: string]: CollectionSlug\n }\n }\n collectionsSelectUntyped: {\n [slug: string]: SelectType\n }\n\n collectionsUntyped: {\n [slug: string]: JsonObject & TypeWithID\n }\n dbUntyped: {\n defaultIDType: number | string\n }\n globalsSelectUntyped: {\n [slug: string]: SelectType\n }\n\n globalsUntyped: {\n [slug: string]: JsonObject\n }\n jobsUntyped: {\n tasks: {\n [slug: string]: {\n input?: JsonObject\n output?: JsonObject\n }\n }\n workflows: {\n [slug: string]: {\n input: JsonObject\n }\n }\n }\n localeUntyped: null | string\n userUntyped: User\n}\n\n// Helper type to resolve the correct type using conditional types\ntype ResolveCollectionType<T> = 'collections' extends keyof T\n ? T['collections']\n : // @ts-expect-error\n T['collectionsUntyped']\n\ntype ResolveBlockType<T> = 'blocks' extends keyof T\n ? T['blocks']\n : // @ts-expect-error\n T['blocksUntyped']\n\ntype ResolveCollectionSelectType<T> = 'collectionsSelect' extends keyof T\n ? T['collectionsSelect']\n : // @ts-expect-error\n T['collectionsSelectUntyped']\n\ntype ResolveCollectionJoinsType<T> = 'collectionsJoins' extends keyof T\n ? T['collectionsJoins']\n : // @ts-expect-error\n T['collectionsJoinsUntyped']\n\ntype ResolveGlobalType<T> = 'globals' extends keyof T\n ? T['globals']\n : // @ts-expect-error\n T['globalsUntyped']\n\ntype ResolveGlobalSelectType<T> = 'globalsSelect' extends keyof T\n ? T['globalsSelect']\n : // @ts-expect-error\n T['globalsSelectUntyped']\n\n// Applying helper types to GeneratedTypes\nexport type TypedCollection = ResolveCollectionType<GeneratedTypes>\n\nexport type TypedBlock = ResolveBlockType<GeneratedTypes>\n\nexport type TypedUploadCollection = NonNever<{\n [K in keyof TypedCollection]:\n | 'filename'\n | 'filesize'\n | 'mimeType'\n | 'url' extends keyof TypedCollection[K]\n ? TypedCollection[K]\n : never\n}>\n\nexport type TypedCollectionSelect = ResolveCollectionSelectType<GeneratedTypes>\n\nexport type TypedCollectionJoins = ResolveCollectionJoinsType<GeneratedTypes>\n\nexport type TypedGlobal = ResolveGlobalType<GeneratedTypes>\n\nexport type TypedGlobalSelect = ResolveGlobalSelectType<GeneratedTypes>\n\n// Extract string keys from the type\nexport type StringKeyOf<T> = Extract<keyof T, string>\n\n// Define the types for slugs using the appropriate collections and globals\nexport type CollectionSlug = StringKeyOf<TypedCollection>\n\nexport type BlockSlug = StringKeyOf<TypedBlock>\n\nexport type UploadCollectionSlug = StringKeyOf<TypedUploadCollection>\n\ntype ResolveDbType<T> = 'db' extends keyof T\n ? T['db']\n : // @ts-expect-error\n T['dbUntyped']\n\nexport type DefaultDocumentIDType = ResolveDbType<GeneratedTypes>['defaultIDType']\nexport type GlobalSlug = StringKeyOf<TypedGlobal>\n\n// now for locale and user\n\n// @ts-expect-error\ntype ResolveLocaleType<T> = 'locale' extends keyof T ? T['locale'] : T['localeUntyped']\n// @ts-expect-error\ntype ResolveUserType<T> = 'user' extends keyof T ? T['user'] : T['userUntyped']\n\nexport type TypedLocale = ResolveLocaleType<GeneratedTypes>\nexport type TypedUser = ResolveUserType<GeneratedTypes>\n\n// @ts-expect-error\ntype ResolveAuthOperationsType<T> = 'auth' extends keyof T ? T['auth'] : T['authUntyped']\nexport type TypedAuthOperations = ResolveAuthOperationsType<GeneratedTypes>\n\n// @ts-expect-error\ntype ResolveJobOperationsType<T> = 'jobs' extends keyof T ? T['jobs'] : T['jobsUntyped']\nexport type TypedJobs = ResolveJobOperationsType<GeneratedTypes>\n\nconst filename = fileURLToPath(import.meta.url)\nconst dirname = path.dirname(filename)\n\nlet checkedDependencies = false\n\n/**\n * @description Payload\n */\nexport class BasePayload {\n /**\n * @description Authorization and Authentication using headers and cookies to run auth user strategies\n * @returns permissions: Permissions\n * @returns user: User\n */\n auth = async (options: AuthArgs) => {\n const { auth } = localOperations.auth\n return auth(this, options)\n }\n\n authStrategies: AuthStrategy[]\n\n blocks: Record<BlockSlug, FlattenedBlock> = {}\n\n collections: Record<CollectionSlug, Collection> = {}\n\n config: SanitizedConfig\n /**\n * @description Performs count operation\n * @param options\n * @returns count of documents satisfying query\n */\n count = async <T extends CollectionSlug>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { count } = localOperations\n return count(this, options)\n }\n\n /**\n * @description Performs countGlobalVersions operation\n * @param options\n * @returns count of global document versions satisfying query\n */\n countGlobalVersions = async <T extends GlobalSlug>(\n options: CountGlobalVersionsOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { countGlobalVersions } = localGlobalOperations\n return countGlobalVersions(this, options)\n }\n\n /**\n * @description Performs countVersions operation\n * @param options\n * @returns count of document versions satisfying query\n */\n countVersions = async <T extends CollectionSlug>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { countVersions } = localOperations\n return countVersions(this, options)\n }\n\n /**\n * @description Performs create operation\n * @param options\n * @returns created document\n */\n create = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: CreateOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const { create } = localOperations\n return create<TSlug, TSelect>(this, options)\n }\n\n db: DatabaseAdapter\n decrypt = decrypt\n\n duplicate = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DuplicateOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const { duplicate } = localOperations\n return duplicate<TSlug, TSelect>(this, options)\n }\n\n email: InitializedEmailAdapter\n\n encrypt = encrypt\n\n // TODO: re-implement or remove?\n // errorHandler: ErrorHandler\n\n extensions: (args: {\n args: OperationArgs<any>\n req: graphQLRequest<unknown, unknown>\n result: ExecutionResult\n }) => Promise<any>\n\n /**\n * @description Find documents with criteria\n * @param options\n * @returns documents satisfying query\n */\n find = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: FindOptions<TSlug, TSelect>,\n ): Promise<PaginatedDocs<TransformCollectionWithSelect<TSlug, TSelect>>> => {\n const { find } = localOperations\n return find<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Find document by ID\n * @param options\n * @returns document with specified ID\n */\n findByID = async <\n TSlug extends CollectionSlug,\n TDisableErrors extends boolean,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n >(\n options: FindByIDOptions<TSlug, TDisableErrors, TSelect>,\n ): Promise<ApplyDisableErrors<TransformCollectionWithSelect<TSlug, TSelect>, TDisableErrors>> => {\n const { findByID } = localOperations\n return findByID<TSlug, TDisableErrors, TSelect>(this, options)\n }\n\n findGlobal = async <TSlug extends GlobalSlug, TSelect extends SelectFromGlobalSlug<TSlug>>(\n options: FindGlobalOptions<TSlug, TSelect>,\n ): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n const { findOne } = localGlobalOperations\n return findOne<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Find global version by ID\n * @param options\n * @returns global version with specified ID\n */\n findGlobalVersionByID = async <TSlug extends GlobalSlug>(\n options: FindGlobalVersionByIDOptions<TSlug>,\n ): Promise<TypeWithVersion<DataFromGlobalSlug<TSlug>>> => {\n const { findVersionByID } = localGlobalOperations\n return findVersionByID<TSlug>(this, options)\n }\n\n /**\n * @description Find global versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findGlobalVersions = async <TSlug extends GlobalSlug>(\n options: FindGlobalVersionsOptions<TSlug>,\n ): Promise<PaginatedDocs<TypeWithVersion<DataFromGlobalSlug<TSlug>>>> => {\n const { findVersions } = localGlobalOperations\n return findVersions<TSlug>(this, options)\n }\n\n /**\n * @description Find version by ID\n * @param options\n * @returns version with specified ID\n */\n findVersionByID = async <TSlug extends CollectionSlug>(\n options: FindVersionByIDOptions<TSlug>,\n ): Promise<TypeWithVersion<DataFromCollectionSlug<TSlug>>> => {\n const { findVersionByID } = localOperations\n return findVersionByID<TSlug>(this, options)\n }\n\n /**\n * @description Find versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findVersions = async <TSlug extends CollectionSlug>(\n options: FindVersionsOptions<TSlug>,\n ): Promise<PaginatedDocs<TypeWithVersion<DataFromCollectionSlug<TSlug>>>> => {\n const { findVersions } = localOperations\n return findVersions<TSlug>(this, options)\n }\n\n forgotPassword = async <TSlug extends CollectionSlug>(\n options: ForgotPasswordOptions<TSlug>,\n ): Promise<ForgotPasswordResult> => {\n const { forgotPassword } = localOperations.auth\n return forgotPassword<TSlug>(this, options)\n }\n\n getAdminURL = (): string => `${this.config.serverURL}${this.config.routes.admin}`\n\n getAPIURL = (): string => `${this.config.serverURL}${this.config.routes.api}`\n\n globals: Globals\n\n importMap: ImportMap\n\n jobs = getJobsLocalAPI(this)\n\n logger: Logger\n\n login = async <TSlug extends CollectionSlug>(\n options: LoginOptions<TSlug>,\n ): Promise<{ user: DataFromCollectionSlug<TSlug> } & LoginResult> => {\n const { login } = localOperations.auth\n return login<TSlug>(this, options)\n }\n\n resetPassword = async <TSlug extends CollectionSlug>(\n options: ResetPasswordOptions<TSlug>,\n ): Promise<ResetPasswordResult> => {\n const { resetPassword } = localOperations.auth\n return resetPassword<TSlug>(this, options)\n }\n\n /**\n * @description Restore global version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreGlobalVersion = async <TSlug extends GlobalSlug>(\n options: RestoreGlobalVersionOptions<TSlug>,\n ): Promise<DataFromGlobalSlug<TSlug>> => {\n const { restoreVersion } = localGlobalOperations\n return restoreVersion<TSlug>(this, options)\n }\n\n /**\n * @description Restore version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreVersion = async <TSlug extends CollectionSlug>(\n options: RestoreVersionOptions<TSlug>,\n ): Promise<DataFromCollectionSlug<TSlug>> => {\n const { restoreVersion } = localOperations\n return restoreVersion<TSlug>(this, options)\n }\n\n schema: GraphQLSchema\n\n secret: string\n\n sendEmail: InitializedEmailAdapter['sendEmail']\n\n types: {\n arrayTypes: any\n blockInputTypes: any\n blockTypes: any\n fallbackLocaleInputType?: any\n groupTypes: any\n localeInputType?: any\n tabTypes: any\n }\n\n unlock = async <TSlug extends CollectionSlug>(\n options: UnlockOptions<TSlug>,\n ): Promise<boolean> => {\n const { unlock } = localOperations.auth\n return unlock<TSlug>(this, options)\n }\n\n updateGlobal = async <TSlug extends GlobalSlug, TSelect extends SelectFromGlobalSlug<TSlug>>(\n options: UpdateGlobalOptions<TSlug, TSelect>,\n ): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n const { update } = localGlobalOperations\n return update<TSlug, TSelect>(this, options)\n }\n\n validationRules: (args: OperationArgs<any>) => ValidationRule[]\n\n verifyEmail = async <TSlug extends CollectionSlug>(\n options: VerifyEmailOptions<TSlug>,\n ): Promise<boolean> => {\n const { verifyEmail } = localOperations.auth\n return verifyEmail(this, options)\n }\n\n versions: {\n [slug: string]: any // TODO: Type this\n } = {}\n\n async bin({\n args,\n cwd,\n log,\n }: {\n args: string[]\n cwd?: string\n log?: boolean\n }): Promise<{ code: number }> {\n return new Promise((resolve, reject) => {\n const spawned = spawn('node', [path.resolve(dirname, '../bin.js'), ...args], {\n cwd,\n stdio: log || log === undefined ? 'inherit' : 'ignore',\n })\n\n spawned.on('exit', (code) => {\n resolve({ code })\n })\n\n spawned.on('error', (error) => {\n reject(error)\n })\n })\n }\n\n /**\n * @description delete one or more documents\n * @param options\n * @returns Updated document(s)\n */\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteByIDOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>>\n\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteManyOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect>>\n\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect> | TransformCollectionWithSelect<TSlug, TSelect>> {\n const { deleteLocal } = localOperations\n return deleteLocal<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Initializes Payload\n * @param options\n */\n async init(options: InitOptions): Promise<Payload> {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true' &&\n !checkedDependencies\n ) {\n checkedDependencies = true\n void checkPayloadDependencies()\n }\n\n this.importMap = options.importMap\n\n if (!options?.config) {\n throw new Error('Error: the payload config is required to initialize payload.')\n }\n\n this.config = await options.config\n this.logger = getLogger('payload', this.config.logger)\n\n if (!this.config.secret) {\n throw new Error('Error: missing secret key. A secret key is needed to secure Payload.')\n }\n\n this.secret = crypto.createHash('sha256').update(this.config.secret).digest('hex').slice(0, 32)\n\n this.globals = {\n config: this.config.globals,\n }\n\n for (const collection of this.config.collections) {\n let customIDType = undefined\n const findCustomID: TraverseFieldsCallback = ({ field }) => {\n if (\n ['array', 'blocks', 'group'].includes(field.type) ||\n (field.type === 'tab' && 'name' in field)\n ) {\n return true\n }\n\n if (!fieldAffectsData(field)) {\n return\n }\n\n if (field.name === 'id') {\n customIDType = field.type\n return true\n }\n }\n\n traverseFields({\n callback: findCustomID,\n config: this.config,\n fields: collection.fields,\n parentIsLocalized: false,\n })\n\n this.collections[collection.slug] = {\n config: collection,\n customIDType,\n }\n }\n\n this.blocks = this.config.blocks.reduce((blocks, block) => {\n blocks[block.slug] = block\n return blocks\n }, {})\n\n // Generate types on startup\n if (process.env.NODE_ENV !== 'production' && this.config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void this.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n this.db = this.config.db.init({ payload: this })\n this.db.payload = this\n\n if (this.db?.init) {\n await this.db.init()\n }\n\n if (!options.disableDBConnect && this.db.connect) {\n await this.db.connect()\n }\n\n // Load email adapter\n if (this.config.email instanceof Promise) {\n const awaitedAdapter = await this.config.email\n this.email = awaitedAdapter({ payload: this })\n } else if (this.config.email) {\n this.email = this.config.email({ payload: this })\n } else {\n if (process.env.NEXT_PHASE !== 'phase-production-build') {\n this.logger.warn(\n `No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.`,\n )\n }\n\n this.email = consoleEmailAdapter({ payload: this })\n }\n\n // Warn if image resizing is enabled but sharp is not installed\n if (\n !this.config.sharp &&\n this.config.collections.some((c) => c.upload.imageSizes || c.upload.formatOptions)\n ) {\n this.logger.warn(\n `Image resizing is enabled for one or more collections, but sharp not installed. Please install 'sharp' and pass into the config.`,\n )\n }\n\n // Warn if user is deploying to Vercel, and any upload collection is missing a storage adapter\n if (process.env.VERCEL) {\n const uploadCollWithoutAdapter = this.config.collections.filter(\n (c) => c.upload && c.upload.adapter === undefined, // Uploads enabled, but no storage adapter provided\n )\n\n if (uploadCollWithoutAdapter.length) {\n const slugs = uploadCollWithoutAdapter.map((c) => c.slug).join(', ')\n this.logger.warn(\n `Collections with uploads enabled require a storage adapter when deploying to Vercel. Collection(s) without storage adapters: ${slugs}. See https://payloadcms.com/docs/upload/storage-adapters for more info.`,\n )\n }\n }\n\n this.sendEmail = this.email['sendEmail']\n\n serverInitTelemetry(this)\n\n // 1. loop over collections, if collection has auth strategy, initialize and push to array\n let jwtStrategyEnabled = false\n this.authStrategies = this.config.collections.reduce((authStrategies, collection) => {\n if (collection?.auth) {\n if (collection.auth.strategies.length > 0) {\n authStrategies.push(...collection.auth.strategies)\n }\n\n // 2. if api key enabled, push api key strategy into the array\n if (collection.auth?.useAPIKey) {\n authStrategies.push({\n name: `${collection.slug}-api-key`,\n authenticate: APIKeyAuthentication(collection),\n })\n }\n\n // 3. if localStrategy flag is true\n if (!collection.auth.disableLocalStrategy && !jwtStrategyEnabled) {\n jwtStrategyEnabled = true\n }\n }\n\n return authStrategies\n }, [] as AuthStrategy[])\n\n // 4. if enabled, push jwt strategy into authStrategies last\n if (jwtStrategyEnabled) {\n this.authStrategies.push({\n name: 'local-jwt',\n authenticate: JWTAuthentication,\n })\n }\n\n try {\n if (!options.disableOnInit) {\n if (typeof options.onInit === 'function') {\n await options.onInit(this)\n }\n if (typeof this.config.onInit === 'function') {\n await this.config.onInit(this)\n }\n }\n } catch (error) {\n this.logger.error({ err: error }, 'Error running onInit function')\n throw error\n }\n\n if (this.config.jobs.autoRun && !isNextBuild()) {\n const DEFAULT_CRON = '* * * * *'\n const DEFAULT_LIMIT = 10\n\n const cronJobs =\n typeof this.config.jobs.autoRun === 'function'\n ? await this.config.jobs.autoRun(this)\n : this.config.jobs.autoRun\n\n await Promise.all(\n cronJobs.map((cronConfig) => {\n const job = new Cron(cronConfig.cron ?? DEFAULT_CRON, async () => {\n if (typeof this.config.jobs.shouldAutoRun === 'function') {\n const shouldAutoRun = await this.config.jobs.shouldAutoRun(this)\n\n if (!shouldAutoRun) {\n job.stop()\n\n return false\n }\n }\n\n await this.jobs.run({\n limit: cronConfig.limit ?? DEFAULT_LIMIT,\n queue: cronConfig.queue,\n })\n })\n }),\n )\n }\n\n return this\n }\n\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateManyOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect>>\n\n /**\n * @description Update one or more documents\n * @param options\n * @returns Updated document(s)\n */\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateByIDOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>>\n\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect> | TransformCollectionWithSelect<TSlug, TSelect>> {\n const { update } = localOperations\n return update<TSlug, TSelect>(this, options)\n }\n}\n\nconst initialized = new BasePayload()\n\nexport default initialized\n\nlet cached: {\n payload: null | Payload\n promise: null | Promise<Payload>\n reload: boolean | Promise<void>\n ws: null | WebSocket\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (\n config: SanitizedConfig,\n payload: Payload,\n skipImportMapGeneration?: boolean,\n): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.blocks = config.blocks.reduce((blocks, block) => {\n blocks[block.slug] = block\n return blocks\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) that may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n // Generate component map\n if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {\n await generateImportMap(config, {\n log: true,\n })\n }\n\n await payload.db.init()\n\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n\n global._payload_clientConfigs = {} as Record<keyof SupportedLanguages, ClientConfig>\n global._payload_schemaMap = null\n global._payload_clientSchemaMap = null\n global._payload_doNotCacheClientConfig = true // This will help refreshing the client config cache more reliably. If you remove this, please test HMR + client config refreshing (do new fields appear in the document?)\n global._payload_doNotCacheSchemaMap = true\n global._payload_doNotCacheClientSchemaMap = true\n}\n\nexport const getPayload = async (\n options: Pick<InitOptions, 'config' | 'importMap'>,\n): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayload is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayload\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload, !options.importMap)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n return cached.payload\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n\n const path = '/_next/webpack-hmr'\n // The __NEXT_ASSET_PREFIX env variable is set for both assetPrefix and basePath (tested in Next.js 15.1.6)\n const prefix = process.env.__NEXT_ASSET_PREFIX ?? ''\n\n cached.ws = new WebSocket(\n process.env.PAYLOAD_HMR_URL_OVERRIDE ?? `ws://localhost:${port}${prefix}${path}`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n\n cached.ws.onerror = (_) => {\n // swallow any websocket connection error\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n // add identifier to error object, so that our error logger in routeError.ts does not attempt to re-initialize getPayload\n e.payloadInitError = true\n throw e\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n\n return cached.payload\n}\n\ntype Payload = BasePayload\n\ninterface RequestContext {\n [key: string]: unknown\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface DatabaseAdapter extends BaseDatabaseAdapter {}\nexport type { Payload, RequestContext }\nexport { extractAccessFromPermission } from './auth/extractAccessFromPermission.js'\nexport { getAccessResults } from './auth/getAccessResults.js'\nexport { getFieldsToSign } from './auth/getFieldsToSign.js'\nexport * from './auth/index.js'\nexport { accessOperation } from './auth/operations/access.js'\nexport { forgotPasswordOperation } from './auth/operations/forgotPassword.js'\nexport { initOperation } from './auth/operations/init.js'\nexport { loginOperation } from './auth/operations/login.js'\nexport { logoutOperation } from './auth/operations/logout.js'\nexport type { MeOperationResult } from './auth/operations/me.js'\nexport { meOperation } from './auth/operations/me.js'\nexport { refreshOperation } from './auth/operations/refresh.js'\nexport { registerFirstUserOperation } from './auth/operations/registerFirstUser.js'\nexport { resetPasswordOperation } from './auth/operations/resetPassword.js'\nexport { unlockOperation } from './auth/operations/unlock.js'\nexport { verifyEmailOperation } from './auth/operations/verifyEmail.js'\nexport { JWTAuthentication } from './auth/strategies/jwt.js'\nexport type {\n AuthStrategyFunction,\n AuthStrategyFunctionArgs,\n AuthStrategyResult,\n CollectionPermission,\n DocumentPermissions,\n FieldPermissions,\n GlobalPermission,\n IncomingAuthType,\n Permission,\n Permissions,\n SanitizedCollectionPermission,\n SanitizedDocumentPermissions,\n SanitizedFieldPermissions,\n SanitizedGlobalPermission,\n SanitizedPermissions,\n User,\n VerifyConfig,\n} from './auth/types.js'\nexport { generateImportMap } from './bin/generateImportMap/index.js'\n\nexport type { ImportMap } from './bin/generateImportMap/index.js'\nexport { genImportMapIterateFields } from './bin/generateImportMap/iterateFields.js'\nexport {\n type ClientCollectionConfig,\n createClientCollectionConfig,\n createClientCollectionConfigs,\n type ServerOnlyCollectionAdminProperties,\n type ServerOnlyCollectionProperties,\n type ServerOnlyUploadProperties,\n} from './collections/config/client.js'\n\nexport type {\n AfterChangeHook as CollectionAfterChangeHook,\n AfterDeleteHook as CollectionAfterDeleteHook,\n AfterErrorHook as CollectionAfterErrorHook,\n AfterForgotPasswordHook as CollectionAfterForgotPasswordHook,\n AfterLoginHook as CollectionAfterLoginHook,\n AfterLogoutHook as CollectionAfterLogoutHook,\n AfterMeHook as CollectionAfterMeHook,\n AfterOperationHook as CollectionAfterOperationHook,\n AfterReadHook as CollectionAfterReadHook,\n AfterRefreshHook as CollectionAfterRefreshHook,\n AuthCollection,\n AuthOperationsFromCollectionSlug,\n BaseListFilter,\n BeforeChangeHook as CollectionBeforeChangeHook,\n BeforeDeleteHook as CollectionBeforeDeleteHook,\n BeforeLoginHook as CollectionBeforeLoginHook,\n BeforeOperationHook as CollectionBeforeOperationHook,\n BeforeReadHook as CollectionBeforeReadHook,\n BeforeValidateHook as CollectionBeforeValidateHook,\n BulkOperationResult,\n Collection,\n CollectionAdminOptions,\n CollectionConfig,\n DataFromCollectionSlug,\n HookOperationType,\n MeHook as CollectionMeHook,\n RefreshHook as CollectionRefreshHook,\n RequiredDataFromCollection,\n RequiredDataFromCollectionSlug,\n SanitizedCollectionConfig,\n SanitizedJoins,\n TypeWithID,\n TypeWithTimestamps,\n} from './collections/config/types.js'\n\nexport type { CompoundIndex } from './collections/config/types.js'\n\nexport type { SanitizedCompoundIndex } from './collections/config/types.js'\nexport { createDataloaderCacheKey, getDataLoader } from './collections/dataloader.js'\nexport { countOperation } from './collections/operations/count.js'\nexport { createOperation } from './collections/operations/create.js'\nexport { deleteOperation } from './collections/operations/delete.js'\nexport { deleteByIDOperation } from './collections/operations/deleteByID.js'\nexport { docAccessOperation } from './collections/operations/docAccess.js'\nexport { duplicateOperation } from './collections/operations/duplicate.js'\nexport { findOperation } from './collections/operations/find.js'\nexport { findByIDOperation } from './collections/operations/findByID.js'\nexport { findVersionByIDOperation } from './collections/operations/findVersionByID.js'\nexport { findVersionsOperation } from './collections/operations/findVersions.js'\nexport { restoreVersionOperation } from './collections/operations/restoreVersion.js'\nexport { updateOperation } from './collections/operations/update.js'\nexport { updateByIDOperation } from './collections/operations/updateByID.js'\nexport { buildConfig } from './config/build.js'\n\nexport {\n type ClientConfig,\n createClientConfig,\n serverOnlyAdminConfigProperties,\n serverOnlyConfigProperties,\n type UnsanitizedClientConfig,\n} from './config/client.js'\n\nexport { defaults } from './config/defaults.js'\nexport { type OrderableEndpointBody } from './config/orderable/index.js'\nexport { sanitizeConfig } from './config/sanitize.js'\nexport type * from './config/types.js'\nexport { combineQueries } from './database/combineQueries.js'\nexport { createDatabaseAdapter } from './database/createDatabaseAdapter.js'\nexport { defaultBeginTransaction } from './database/defaultBeginTransaction.js'\nexport { flattenWhereToOperators } from './database/flattenWhereToOperators.js'\nexport { getLocalizedPaths } from './database/getLocalizedPaths.js'\nexport { createMigration } from './database/migrations/createMigration.js'\nexport { getMigrations } from './database/migrations/getMigrations.js'\nexport { getPredefinedMigration } from './database/migrations/getPredefinedMigration.js'\nexport { migrate } from './database/migrations/migrate.js'\nexport { migrateDown } from './database/migrations/migrateDown.js'\nexport { migrateRefresh } from './database/migrations/migrateRefresh.js'\nexport { migrateReset } from './database/migrations/migrateReset.js'\nexport { migrateStatus } from './database/migrations/migrateStatus.js'\nexport { migrationsCollection } from './database/migrations/migrationsCollection.js'\nexport { migrationTemplate } from './database/migrations/migrationTemplate.js'\nexport { readMigrationFiles } from './database/migrations/readMigrationFiles.js'\nexport { writeMigrationIndex } from './database/migrations/writeMigrationIndex.js'\nexport type * from './database/queryValidation/types.js'\nexport type { EntityPolicies, PathToQuery } from './database/queryValidation/types.js'\nexport { validateQueryPaths } from './database/queryValidation/validateQueryPaths.js'\nexport { validateSearchParam } from './database/queryValidation/validateSearchParams.js'\nexport type {\n BaseDatabaseAdapter,\n BeginTransaction,\n CommitTransaction,\n Connect,\n Count,\n CountArgs,\n CountGlobalVersionArgs,\n CountGlobalVersions,\n CountVersions,\n Create,\n CreateArgs,\n CreateGlobal,\n CreateGlobalArgs,\n CreateGlobalVersion,\n CreateGlobalVersionArgs,\n CreateMigration,\n CreateVersion,\n CreateVersionArgs,\n DatabaseAdapterResult as DatabaseAdapterObj,\n DBIdentifierName,\n DeleteMany,\n DeleteManyArgs,\n DeleteOne,\n DeleteOneArgs,\n DeleteVersions,\n DeleteVersionsArgs,\n Destroy,\n Find,\n FindArgs,\n FindGlobal,\n FindGlobalArgs,\n FindGlobalVersions,\n FindGlobalVersionsArgs,\n FindOne,\n FindOneArgs,\n FindVersions,\n FindVersionsArgs,\n GenerateSchema,\n Init,\n Migration,\n MigrationData,\n MigrationTemplateArgs,\n PaginatedDocs,\n QueryDrafts,\n QueryDraftsArgs,\n RollbackTransaction,\n Transaction,\n UpdateGlobal,\n UpdateGlobalArgs,\n UpdateGlobalVersion,\n UpdateGlobalVersionArgs,\n UpdateJobs,\n UpdateJobsArgs,\n UpdateMany,\n UpdateManyArgs,\n UpdateOne,\n UpdateOneArgs,\n UpdateVersion,\n UpdateVersionArgs,\n Upsert,\n UpsertArgs,\n} from './database/types.js'\nexport type { EmailAdapter as PayloadEmailAdapter, SendEmailOptions } from './email/types.js'\nexport {\n APIError,\n APIErrorName,\n AuthenticationError,\n DuplicateCollection,\n DuplicateFieldName,\n DuplicateGlobal,\n ErrorDeletingFile,\n FileRetrievalError,\n FileUploadError,\n Forbidden,\n InvalidConfiguration,\n InvalidFieldName,\n InvalidFieldRelationship,\n Locked,\n LockedAuth,\n MissingCollectionLabel,\n MissingEditorProp,\n MissingFieldInputOptions,\n MissingFieldType,\n MissingFile,\n NotFound,\n QueryError,\n ValidationError,\n ValidationErrorName,\n} from './errors/index.js'\nexport type { ValidationFieldError } from './errors/index.js'\n\nexport { baseBlockFields } from './fields/baseFields/baseBlockFields.js'\nexport { baseIDField } from './fields/baseFields/baseIDField.js'\nexport {\n createClientField,\n createClientFields,\n type ServerOnlyFieldAdminProperties,\n type ServerOnlyFieldProperties,\n} from './fields/config/client.js'\n\nexport { sanitizeFields } from './fields/config/sanitize.js'\nexport type {\n AdminClient,\n ArrayField,\n ArrayFieldClient,\n BaseValidateOptions,\n Block,\n BlockJSX,\n BlocksField,\n BlocksFieldClient,\n CheckboxField,\n CheckboxFieldClient,\n ClientBlock,\n ClientField,\n ClientFieldProps,\n CodeField,\n CodeFieldClient,\n CollapsibleField,\n CollapsibleFieldClient,\n Condition,\n DateField,\n DateFieldClient,\n EmailField,\n EmailFieldClient,\n Field,\n FieldAccess,\n FieldAffectingData,\n FieldAffectingDataClient,\n FieldBase,\n FieldBaseClient,\n FieldHook,\n FieldHookArgs,\n FieldPresentationalOnly,\n FieldPresentationalOnlyClient,\n FieldTypes,\n FieldWithMany,\n FieldWithManyClient,\n FieldWithMaxDepth,\n FieldWithMaxDepthClient,\n FieldWithPath,\n FieldWithPathClient,\n FieldWithSubFields,\n FieldWithSubFieldsClient,\n FilterOptions,\n FilterOptionsProps,\n FlattenedArrayField,\n FlattenedBlock,\n FlattenedBlocksField,\n FlattenedField,\n FlattenedGroupField,\n FlattenedJoinField,\n FlattenedTabAsField,\n GroupField,\n GroupFieldClient,\n HookName,\n JoinField,\n JoinFieldClient,\n JSONField,\n JSONFieldClient,\n Labels,\n LabelsClient,\n NamedTab,\n NonPresentationalField,\n NonPresentationalFieldClient,\n NumberField,\n NumberFieldClient,\n Option,\n OptionLabel,\n OptionObject,\n PointField,\n PointFieldClient,\n PolymorphicRelationshipField,\n PolymorphicRelationshipFieldClient,\n RadioField,\n RadioFieldClient,\n RelationshipField,\n RelationshipFieldClient,\n RelationshipValue,\n RichTextField,\n RichTextFieldClient,\n RowField,\n RowFieldClient,\n SelectField,\n SelectFieldClient,\n SingleRelationshipField,\n SingleRelationshipFieldClient,\n Tab,\n TabAsField,\n TabAsFieldClient,\n TabsField,\n TabsFieldClient,\n TextareaField,\n TextareaFieldClient,\n TextField,\n TextFieldClient,\n UIField,\n UIFieldClient,\n UnnamedTab,\n UploadField,\n UploadFieldClient,\n Validate,\n ValidateOptions,\n ValueWithRelation,\n} from './fields/config/types.js'\n\nexport { getDefaultValue } from './fields/getDefaultValue.js'\n\nexport { traverseFields as afterChangeTraverseFields } from './fields/hooks/afterChange/traverseFields.js'\nexport { promise as afterReadPromise } from './fields/hooks/afterRead/promise.js'\nexport { traverseFields as afterReadTraverseFields } from './fields/hooks/afterRead/traverseFields.js'\nexport { traverseFields as beforeChangeTraverseFields } from './fields/hooks/beforeChange/traverseFields.js'\nexport { traverseFields as beforeValidateTraverseFields } from './fields/hooks/beforeValidate/traverseFields.js'\nexport { default as sortableFieldTypes } from './fields/sortableFieldTypes.js'\n\nexport { validations } from './fields/validations.js'\nexport type {\n ArrayFieldValidation,\n BlocksFieldValidation,\n CheckboxFieldValidation,\n CodeFieldValidation,\n ConfirmPasswordFieldValidation,\n DateFieldValidation,\n EmailFieldValidation,\n JSONFieldValidation,\n NumberFieldManyValidation,\n NumberFieldSingleValidation,\n NumberFieldValidation,\n PasswordFieldValidation,\n PointFieldValidation,\n RadioFieldValidation,\n RelationshipFieldManyValidation,\n RelationshipFieldSingleValidation,\n RelationshipFieldValidation,\n RichTextFieldValidation,\n SelectFieldManyValidation,\n SelectFieldSingleValidation,\n SelectFieldValidation,\n TextareaFieldValidation,\n TextFieldManyValidation,\n TextFieldSingleValidation,\n TextFieldValidation,\n UploadFieldManyValidation,\n UploadFieldSingleValidation,\n UploadFieldValidation,\n UsernameFieldValidation,\n} from './fields/validations.js'\nexport {\n type ClientGlobalConfig,\n createClientGlobalConfig,\n createClientGlobalConfigs,\n type ServerOnlyGlobalAdminProperties,\n type ServerOnlyGlobalProperties,\n} from './globals/config/client.js'\n\nexport type {\n AfterChangeHook as GlobalAfterChangeHook,\n AfterReadHook as GlobalAfterReadHook,\n BeforeChangeHook as GlobalBeforeChangeHook,\n BeforeReadHook as GlobalBeforeReadHook,\n BeforeValidateHook as GlobalBeforeValidateHook,\n DataFromGlobalSlug,\n GlobalAdminOptions,\n GlobalConfig,\n SanitizedGlobalConfig,\n} from './globals/config/types.js'\n\nexport { docAccessOperation as docAccessOperationGlobal } from './globals/operations/docAccess.js'\n\nexport { findOneOperation } from './globals/operations/findOne.js'\nexport { findVersionByIDOperation as findVersionByIDOperationGlobal } from './globals/operations/findVersionByID.js'\nexport { findVersionsOperation as findVersionsOperationGlobal } from './globals/operations/findVersions.js'\nexport { restoreVersionOperation as restoreVersionOperationGlobal } from './globals/operations/restoreVersion.js'\nexport { updateOperation as updateOperationGlobal } from './globals/operations/update.js'\nexport type {\n CollapsedPreferences,\n ColumnPreference,\n DocumentPreferences,\n FieldsPreferences,\n InsideFieldsPreferences,\n ListPreferences,\n PreferenceRequest,\n PreferenceUpdateRequest,\n TabsPreferences,\n} from './preferences/types.js'\nexport type { QueryPreset } from './query-presets/types.js'\nexport { jobAfterRead } from './queues/config/index.js'\nexport type { JobsConfig, RunJobAccess, RunJobAccessArgs } from './queues/config/types/index.js'\n\nexport type {\n RunInlineTaskFunction,\n RunTaskFunction,\n RunTaskFunctions,\n TaskConfig,\n TaskHandler,\n TaskHandlerArgs,\n TaskHandlerResult,\n TaskHandlerResults,\n TaskInput,\n TaskOutput,\n TaskType,\n} from './queues/config/types/taskTypes.js'\nexport type {\n BaseJob,\n JobLog,\n JobTaskStatus,\n RunningJob,\n SingleTaskStatus,\n WorkflowConfig,\n WorkflowHandler,\n WorkflowTypes,\n} from './queues/config/types/workflowTypes.js'\nexport { importHandlerPath } from './queues/operations/runJobs/runJob/importHandlerPath.js'\nexport { getLocalI18n } from './translations/getLocalI18n.js'\nexport * from './types/index.js'\nexport { getFileByPath } from './uploads/getFileByPath.js'\nexport type * from './uploads/types.js'\n\nexport { addDataAndFileToRequest } from './utilities/addDataAndFileToRequest.js'\n\nexport { addLocalesToRequestFromData, sanitizeLocales } from './utilities/addLocalesToRequest.js'\nexport { commitTransaction } from './utilities/commitTransaction.js'\nexport {\n configToJSONSchema,\n entityToJSONSchema,\n fieldsToJSONSchema,\n withNullableJSONSchemaType,\n} from './utilities/configToJSONSchema.js'\nexport { createArrayFromCommaDelineated } from './utilities/createArrayFromCommaDelineated.js'\nexport { createLocalReq } from './utilities/createLocalReq.js'\nexport { createPayloadRequest } from './utilities/createPayloadRequest.js'\nexport {\n deepCopyObject,\n deepCopyObjectComplex,\n deepCopyObjectSimple,\n} from './utilities/deepCopyObject.js'\nexport {\n deepMerge,\n deepMergeWithCombinedArrays,\n deepMergeWithReactComponents,\n deepMergeWithSourceArrays,\n} from './utilities/deepMerge.js'\nexport {\n checkDependencies,\n type CustomVersionParser,\n} from './utilities/dependencies/dependencyChecker.js'\nexport { getDependencies } from './utilities/dependencies/getDependencies.js'\nexport type { FieldSchemaJSON } from './utilities/fieldSchemaToJSON.js'\nexport {\n findUp,\n findUpSync,\n pathExistsAndIsAccessible,\n pathExistsAndIsAccessibleSync,\n} from './utilities/findUp.js'\nexport { flattenAllFields } from './utilities/flattenAllFields.js'\nexport { default as flattenTopLevelFields } from './utilities/flattenTopLevelFields.js'\nexport { formatErrors } from './utilities/formatErrors.js'\nexport { formatLabels, formatNames, toWords } from './utilities/formatLabels.js'\nexport { getBlockSelect } from './utilities/getBlockSelect.js'\nexport { getCollectionIDFieldTypes } from './utilities/getCollectionIDFieldTypes.js'\nexport { getFieldByPath } from './utilities/getFieldByPath.js'\nexport { getObjectDotNotation } from './utilities/getObjectDotNotation.js'\nexport { getRequestLanguage } from './utilities/getRequestLanguage.js'\nexport { handleEndpoints } from './utilities/handleEndpoints.js'\nexport { headersWithCors } from './utilities/headersWithCors.js'\nexport { initTransaction } from './utilities/initTransaction.js'\nexport { isEntityHidden } from './utilities/isEntityHidden.js'\nexport { default as isolateObjectProperty } from './utilities/isolateObjectProperty.js'\nexport { isPlainObject } from './utilities/isPlainObject.js'\nexport { isValidID } from './utilities/isValidID.js'\nexport { killTransaction } from './utilities/killTransaction.js'\nexport { logError } from './utilities/logError.js'\nexport { defaultLoggerOptions } from './utilities/logger.js'\nexport { mapAsync } from './utilities/mapAsync.js'\nexport { mergeHeaders } from './utilities/mergeHeaders.js'\nexport { sanitizeFallbackLocale } from './utilities/sanitizeFallbackLocale.js'\nexport { sanitizeJoinParams } from './utilities/sanitizeJoinParams.js'\nexport { sanitizePopulateParam } from './utilities/sanitizePopulateParam.js'\nexport { sanitizeSelectParam } from './utilities/sanitizeSelectParam.js'\nexport { stripUnselectedFields } from './utilities/stripUnselectedFields.js'\nexport { traverseFields } from './utilities/traverseFields.js'\nexport type { TraverseFieldsCallback } from './utilities/traverseFields.js'\nexport { buildVersionCollectionFields } from './versions/buildCollectionFields.js'\nexport { buildVersionGlobalFields } from './versions/buildGlobalFields.js'\nexport { buildVersionCompoundIndexes } from './versions/buildVersionCompoundIndexes.js'\nexport { versionDefaults } from './versions/defaults.js'\nexport { deleteCollectionVersions } from './versions/deleteCollectionVersions.js'\nexport { appendVersionToQueryKey } from './versions/drafts/appendVersionToQueryKey.js'\nexport { getQueryDraftsSort } from './versions/drafts/getQueryDraftsSort.js'\nexport { enforceMaxVersions } from './versions/enforceMaxVersions.js'\nexport { getLatestCollectionVersion } from './versions/getLatestCollectionVersion.js'\nexport { getLatestGlobalVersion } from './versions/getLatestGlobalVersion.js'\nexport { saveVersion } from './versions/saveVersion.js'\nexport type { SchedulePublishTaskInput } from './versions/schedule/types.js'\nexport type { TypeWithVersion } from './versions/types.js'\nexport { deepMergeSimple } from '@payloadcms/translations/utilities'\n"],"names":["spawn","crypto","fileURLToPath","path","WebSocket","Cron","decrypt","encrypt","APIKeyAuthentication","JWTAuthentication","generateImportMap","checkPayloadDependencies","localOperations","consoleEmailAdapter","fieldAffectsData","localGlobalOperations","getJobsLocalAPI","isNextBuild","getLogger","serverInit","serverInitTelemetry","traverseFields","default","executeAccess","executeAuthStrategies","filename","url","dirname","checkedDependencies","BasePayload","auth","options","authStrategies","blocks","collections","config","count","countGlobalVersions","countVersions","create","db","duplicate","email","extensions","find","findByID","findGlobal","findOne","findGlobalVersionByID","findVersionByID","findGlobalVersions","findVersions","forgotPassword","getAdminURL","serverURL","routes","admin","getAPIURL","api","globals","importMap","jobs","logger","login","resetPassword","restoreGlobalVersion","restoreVersion","schema","secret","sendEmail","types","unlock","updateGlobal","update","validationRules","verifyEmail","versions","bin","args","cwd","log","Promise","resolve","reject","spawned","stdio","undefined","on","code","error","delete","deleteLocal","init","process","env","NODE_ENV","PAYLOAD_DISABLE_DEPENDENCY_CHECKER","Error","createHash","digest","slice","collection","customIDType","findCustomID","field","includes","type","name","callback","fields","parentIsLocalized","slug","reduce","block","typescript","autoGenerate","payload","disableDBConnect","connect","awaitedAdapter","NEXT_PHASE","warn","sharp","some","c","upload","imageSizes","formatOptions","VERCEL","uploadCollWithoutAdapter","filter","adapter","length","slugs","map","join","jwtStrategyEnabled","strategies","push","useAPIKey","authenticate","disableLocalStrategy","disableOnInit","onInit","err","autoRun","DEFAULT_CRON","DEFAULT_LIMIT","cronJobs","all","cronConfig","job","cron","shouldAutoRun","stop","run","limit","queue","initialized","cached","global","_payload","promise","reload","ws","skipImportMapGeneration","destroy","hotReload","_payload_clientConfigs","_payload_schemaMap","_payload_clientSchemaMap","_payload_doNotCacheClientConfig","_payload_doNotCacheSchemaMap","_payload_doNotCacheClientSchemaMap","getPayload","res","DISABLE_PAYLOAD_HMR","port","PORT","prefix","__NEXT_ASSET_PREFIX","PAYLOAD_HMR_URL_OVERRIDE","onmessage","event","data","JSON","parse","action","onerror","_","e","payloadInitError","extractAccessFromPermission","getAccessResults","getFieldsToSign","accessOperation","forgotPasswordOperation","initOperation","loginOperation","logoutOperation","meOperation","refreshOperation","registerFirstUserOperation","resetPasswordOperation","unlockOperation","verifyEmailOperation","genImportMapIterateFields","createClientCollectionConfig","createClientCollectionConfigs","createDataloaderCacheKey","getDataLoader","countOperation","createOperation","deleteOperation","deleteByIDOperation","docAccessOperation","duplicateOperation","findOperation","findByIDOperation","findVersionByIDOperation","findVersionsOperation","restoreVersionOperation","updateOperation","updateByIDOperation","buildConfig","createClientConfig","serverOnlyAdminConfigProperties","serverOnlyConfigProperties","defaults","sanitizeConfig","combineQueries","createDatabaseAdapter","defaultBeginTransaction","flattenWhereToOperators","getLocalizedPaths","createMigration","getMigrations","getPredefinedMigration","migrate","migrateDown","migrateRefresh","migrateReset","migrateStatus","migrationsCollection","migrationTemplate","readMigrationFiles","writeMigrationIndex","validateQueryPaths","validateSearchParam","APIError","APIErrorName","AuthenticationError","DuplicateCollection","DuplicateFieldName","DuplicateGlobal","ErrorDeletingFile","FileRetrievalError","FileUploadError","Forbidden","InvalidConfiguration","InvalidFieldName","InvalidFieldRelationship","Locked","LockedAuth","MissingCollectionLabel","MissingEditorProp","MissingFieldInputOptions","MissingFieldType","MissingFile","NotFound","QueryError","ValidationError","ValidationErrorName","baseBlockFields","baseIDField","createClientField","createClientFields","sanitizeFields","getDefaultValue","afterChangeTraverseFields","afterReadPromise","afterReadTraverseFields","beforeChangeTraverseFields","beforeValidateTraverseFields","sortableFieldTypes","validations","createClientGlobalConfig","createClientGlobalConfigs","docAccessOperationGlobal","findOneOperation","findVersionByIDOperationGlobal","findVersionsOperationGlobal","restoreVersionOperationGlobal","updateOperationGlobal","jobAfterRead","importHandlerPath","getLocalI18n","getFileByPath","addDataAndFileToRequest","addLocalesToRequestFromData","sanitizeLocales","commitTransaction","configToJSONSchema","entityToJSONSchema","fieldsToJSONSchema","withNullableJSONSchemaType","createArrayFromCommaDelineated","createLocalReq","createPayloadRequest","deepCopyObject","deepCopyObjectComplex","deepCopyObjectSimple","deepMerge","deepMergeWithCombinedArrays","deepMergeWithReactComponents","deepMergeWithSourceArrays","checkDependencies","getDependencies","findUp","findUpSync","pathExistsAndIsAccessible","pathExistsAndIsAccessibleSync","flattenAllFields","flattenTopLevelFields","formatErrors","formatLabels","formatNames","toWords","getBlockSelect","getCollectionIDFieldTypes","getFieldByPath","getObjectDotNotation","getRequestLanguage","handleEndpoints","headersWithCors","initTransaction","isEntityHidden","isolateObjectProperty","isPlainObject","isValidID","killTransaction","logError","defaultLoggerOptions","mapAsync","mergeHeaders","sanitizeFallbackLocale","sanitizeJoinParams","sanitizePopulateParam","sanitizeSelectParam","stripUnselectedFields","buildVersionCollectionFields","buildVersionGlobalFields","buildVersionCompoundIndexes","versionDefaults","deleteCollectionVersions","appendVersionToQueryKey","getQueryDraftsSort","enforceMaxVersions","getLatestCollectionVersion","getLatestGlobalVersion","saveVersion","deepMergeSimple"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { CollectionConfig } from '../../../index.js';
2
- import type { Payload, PayloadRequest } from '../../../types/index.js';
2
+ import type { Payload, PayloadRequest, Sort } from '../../../types/index.js';
3
+ import type { RunJobsArgs } from '../../operations/runJobs/index.js';
3
4
  import type { TaskConfig } from './taskTypes.js';
4
5
  import type { WorkflowConfig } from './workflowTypes.js';
5
6
  export type CronConfig = {
@@ -78,6 +79,19 @@ export type JobsConfig = {
78
79
  jobsCollectionOverrides?: (args: {
79
80
  defaultJobsCollection: CollectionConfig;
80
81
  }) => CollectionConfig;
82
+ /**
83
+ * Adjust the job processing order using a Payload sort string. This can be set globally or per queue.
84
+ *
85
+ * FIFO would equal `createdAt` and LIFO would equal `-createdAt`.
86
+ *
87
+ * @default all jobs for all queues will be executed in FIFO order.
88
+ */
89
+ processingOrder?: ((args: RunJobsArgs) => Promise<Sort> | Sort) | {
90
+ default?: Sort;
91
+ queues: {
92
+ [queue: string]: Sort;
93
+ };
94
+ } | Sort;
81
95
  /**
82
96
  * By default, the job system uses direct database calls for optimal performance.
83
97
  * If you added custom hooks to your jobs collection, you can set this to true to
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/queues/config/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAEjF,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,GAAG,CAAC,EAAE,YAAY,CAAA;KACnB,CAAA;IACD;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,CAAA;IACrF;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,qBAAqB,EAAE,gBAAgB,CAAA;KAAE,KAAK,gBAAgB,CAAA;IACjG;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE;;OAEG;IACH,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAA;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAA;CAClC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/queues/config/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAEjF,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,GAAG,CAAC,EAAE,YAAY,CAAA;KACnB,CAAA;IACD;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,CAAA;IACrF;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,qBAAqB,EAAE,gBAAgB,CAAA;KAAE,KAAK,gBAAgB,CAAA;IACjG;;;;;;OAMG;IACH,eAAe,CAAC,EACZ,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAC7C;QACE,OAAO,CAAC,EAAE,IAAI,CAAA;QACd,MAAM,EAAE;YACN,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;SACtB,CAAA;KACF,GACD,IAAI,CAAA;IACR;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE;;OAEG;IACH,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAA;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAA;CAClC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/queues/config/types/index.ts"],"sourcesContent":["import type { CollectionConfig } from '../../../index.js'\nimport type { Payload, PayloadRequest } from '../../../types/index.js'\nimport type { TaskConfig } from './taskTypes.js'\nimport type { WorkflowConfig } from './workflowTypes.js'\n\nexport type CronConfig = {\n /**\n * The cron schedule for the job.\n * @default '* * * * *' (every minute).\n *\n * @example\n * ┌───────────── minute (0 - 59)\n * │ ┌───────────── hour (0 - 23)\n * │ │ ┌───────────── day of the month (1 - 31)\n * │ │ │ ┌───────────── month (1 - 12)\n * │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)\n * │ │ │ │ │\n * │ │ │ │ │\n * - '0 * * * *' every hour at minute 0\n * - '0 0 * * *' daily at midnight\n * - '0 0 * * 0' weekly at midnight on Sundays\n * - '0 0 1 * *' monthly at midnight on the 1st day of the month\n * - '0/5 * * * *' every 5 minutes\n */\n cron?: string\n /**\n * The limit for the job. This can be overridden by the user. Defaults to 10.\n */\n limit?: number\n /**\n * The queue name for the job.\n */\n queue?: string\n}\n\nexport type RunJobAccessArgs = {\n req: PayloadRequest\n}\n\nexport type RunJobAccess = (args: RunJobAccessArgs) => boolean | Promise<boolean>\n\nexport type JobsConfig = {\n /**\n * Specify access control to determine who can interact with jobs.\n */\n access?: {\n /**\n * By default, all logged-in users can trigger jobs.\n */\n run?: RunJobAccess\n }\n /** Adds information about the parent job to the task log. This is useful for debugging and tracking the flow of tasks.\n *\n * In 4.0, this will default to `true`.\n *\n * @default false\n */\n addParentToTaskLog?: boolean\n /**\n * Queue cron jobs automatically on payload initialization.\n * @remark this property should not be used on serverless platforms like Vercel\n */\n autoRun?: ((payload: Payload) => CronConfig[] | Promise<CronConfig[]>) | CronConfig[]\n /**\n * Determine whether or not to delete a job after it has successfully completed.\n */\n deleteJobOnComplete?: boolean\n /**\n * Specify depth for retrieving jobs from the queue.\n * This should be as low as possible in order for job retrieval\n * to be as efficient as possible. Setting it to anything higher than\n * 0 will drastically affect performance, as less efficient database\n * queries will be used.\n *\n * @default 0\n */\n depth?: number\n /**\n * Override any settings on the default Jobs collection. Accepts the default collection and allows you to return\n * a new collection.\n */\n jobsCollectionOverrides?: (args: { defaultJobsCollection: CollectionConfig }) => CollectionConfig\n /**\n * By default, the job system uses direct database calls for optimal performance.\n * If you added custom hooks to your jobs collection, you can set this to true to\n * use the standard Payload API for all job operations. This is discouraged, as it will\n * drastically affect performance.\n *\n * @default false\n */\n runHooks?: boolean\n /**\n * A function that will be executed before Payload picks up jobs which are configured by the `jobs.autorun` function.\n * If this function returns true, jobs will be queried and picked up. If it returns false, jobs will not be run.\n * @param payload\n * @returns boolean\n */\n shouldAutoRun?: (payload: Payload) => boolean | Promise<boolean>\n /**\n * Define all possible tasks here\n */\n tasks: TaskConfig<any>[]\n /**\n * Define all the workflows here. Workflows orchestrate the flow of multiple tasks.\n */\n workflows?: WorkflowConfig<any>[]\n}\n"],"names":[],"mappings":"AAyCA,WAiEC"}
1
+ {"version":3,"sources":["../../../../src/queues/config/types/index.ts"],"sourcesContent":["import type { CollectionConfig } from '../../../index.js'\nimport type { Payload, PayloadRequest, Sort } from '../../../types/index.js'\nimport type { RunJobsArgs } from '../../operations/runJobs/index.js'\nimport type { TaskConfig } from './taskTypes.js'\nimport type { WorkflowConfig } from './workflowTypes.js'\n\nexport type CronConfig = {\n /**\n * The cron schedule for the job.\n * @default '* * * * *' (every minute).\n *\n * @example\n * ┌───────────── minute (0 - 59)\n * │ ┌───────────── hour (0 - 23)\n * │ │ ┌───────────── day of the month (1 - 31)\n * │ │ │ ┌───────────── month (1 - 12)\n * │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)\n * │ │ │ │ │\n * │ │ │ │ │\n * - '0 * * * *' every hour at minute 0\n * - '0 0 * * *' daily at midnight\n * - '0 0 * * 0' weekly at midnight on Sundays\n * - '0 0 1 * *' monthly at midnight on the 1st day of the month\n * - '0/5 * * * *' every 5 minutes\n */\n cron?: string\n /**\n * The limit for the job. This can be overridden by the user. Defaults to 10.\n */\n limit?: number\n /**\n * The queue name for the job.\n */\n queue?: string\n}\n\nexport type RunJobAccessArgs = {\n req: PayloadRequest\n}\n\nexport type RunJobAccess = (args: RunJobAccessArgs) => boolean | Promise<boolean>\n\nexport type JobsConfig = {\n /**\n * Specify access control to determine who can interact with jobs.\n */\n access?: {\n /**\n * By default, all logged-in users can trigger jobs.\n */\n run?: RunJobAccess\n }\n /** Adds information about the parent job to the task log. This is useful for debugging and tracking the flow of tasks.\n *\n * In 4.0, this will default to `true`.\n *\n * @default false\n */\n addParentToTaskLog?: boolean\n /**\n * Queue cron jobs automatically on payload initialization.\n * @remark this property should not be used on serverless platforms like Vercel\n */\n autoRun?: ((payload: Payload) => CronConfig[] | Promise<CronConfig[]>) | CronConfig[]\n /**\n * Determine whether or not to delete a job after it has successfully completed.\n */\n deleteJobOnComplete?: boolean\n /**\n * Specify depth for retrieving jobs from the queue.\n * This should be as low as possible in order for job retrieval\n * to be as efficient as possible. Setting it to anything higher than\n * 0 will drastically affect performance, as less efficient database\n * queries will be used.\n *\n * @default 0\n */\n depth?: number\n /**\n * Override any settings on the default Jobs collection. Accepts the default collection and allows you to return\n * a new collection.\n */\n jobsCollectionOverrides?: (args: { defaultJobsCollection: CollectionConfig }) => CollectionConfig\n /**\n * Adjust the job processing order using a Payload sort string. This can be set globally or per queue.\n *\n * FIFO would equal `createdAt` and LIFO would equal `-createdAt`.\n *\n * @default all jobs for all queues will be executed in FIFO order.\n */\n processingOrder?:\n | ((args: RunJobsArgs) => Promise<Sort> | Sort)\n | {\n default?: Sort\n queues: {\n [queue: string]: Sort\n }\n }\n | Sort\n /**\n * By default, the job system uses direct database calls for optimal performance.\n * If you added custom hooks to your jobs collection, you can set this to true to\n * use the standard Payload API for all job operations. This is discouraged, as it will\n * drastically affect performance.\n *\n * @default false\n */\n runHooks?: boolean\n /**\n * A function that will be executed before Payload picks up jobs which are configured by the `jobs.autorun` function.\n * If this function returns true, jobs will be queried and picked up. If it returns false, jobs will not be run.\n * @param payload\n * @returns boolean\n */\n shouldAutoRun?: (payload: Payload) => boolean | Promise<boolean>\n /**\n * Define all possible tasks here\n */\n tasks: TaskConfig<any>[]\n /**\n * Define all the workflows here. Workflows orchestrate the flow of multiple tasks.\n */\n workflows?: WorkflowConfig<any>[]\n}\n"],"names":[],"mappings":"AA0CA,WAiFC"}
@@ -10,7 +10,7 @@ export type JobLog = {
10
10
  /**
11
11
  * ID added by the array field when the log is saved in the database
12
12
  */
13
- id?: string;
13
+ id: string;
14
14
  input?: Record<string, any>;
15
15
  output?: Record<string, any>;
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"workflowTypes.d.ts","sourceRoot":"","sources":["../../../../src/queues/config/types/workflowTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflowTypes.d.ts","sourceRoot":"","sources":["../../../../src/queues/config/types/workflowTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/queues/config/types/workflowTypes.ts"],"sourcesContent":["import type { Field } from '../../../fields/config/types.js'\nimport type { PayloadRequest, StringKeyOf, TypedCollection, TypedJobs } from '../../../index.js'\nimport type { TaskParent } from '../../operations/runJobs/runJob/getRunTaskFunction.js'\nimport type {\n RetryConfig,\n RunInlineTaskFunction,\n RunTaskFunctions,\n TaskInput,\n TaskOutput,\n TaskType,\n} from './taskTypes.js'\nimport type { WorkflowJSON } from './workflowJSONTypes.js'\n\nexport type JobLog = {\n completedAt: string\n error?: unknown\n executedAt: string\n /**\n * ID added by the array field when the log is saved in the database\n */\n id?: string\n input?: Record<string, any>\n output?: Record<string, any>\n /**\n * Sub-tasks (tasks that are run within a task) will have a parent task ID\n */\n parent?: TaskParent\n state: 'failed' | 'succeeded'\n taskID: string\n taskSlug: string\n}\n\nexport type BaseJob = {\n completedAt?: string\n error?: unknown\n hasError?: boolean\n id: number | string\n input?: any\n log: JobLog[]\n processing?: boolean\n queue: string\n taskSlug?: string\n taskStatus?: JobTaskStatus\n totalTried: number\n waitUntil?: string\n workflowSlug?: string\n}\n\nexport type WorkflowTypes = StringKeyOf<TypedJobs['workflows']>\n\n// TODO: Type job.taskStatus once available - for JSON-defined workflows\nexport type RunningJob<TWorkflowSlugOrInput extends keyof TypedJobs['workflows'] | object> = {\n input: TWorkflowSlugOrInput extends keyof TypedJobs['workflows']\n ? TypedJobs['workflows'][TWorkflowSlugOrInput]['input']\n : TWorkflowSlugOrInput\n taskStatus: JobTaskStatus\n} & Omit<TypedCollection['payload-jobs'], 'input' | 'taskStatus'>\n\nexport type RunningJobSimple<TWorkflowInput extends object> = {\n input: TWorkflowInput\n} & TypedCollection['payload-jobs']\n\n// Simplified version of RunningJob that doesn't break TypeScript (TypeScript seems to stop evaluating RunningJob when it's too complex)\nexport type RunningJobFromTask<TTaskSlug extends keyof TypedJobs['tasks']> = {\n input: TypedJobs['tasks'][TTaskSlug]['input']\n} & TypedCollection['payload-jobs']\n\nexport type WorkflowHandler<TWorkflowSlugOrInput extends keyof TypedJobs['workflows'] | object> =\n (args: {\n inlineTask: RunInlineTaskFunction\n job: RunningJob<TWorkflowSlugOrInput>\n req: PayloadRequest\n tasks: RunTaskFunctions\n }) => Promise<void>\n\nexport type SingleTaskStatus<T extends keyof TypedJobs['tasks']> = {\n complete: boolean\n input: TaskInput<T>\n output: TaskOutput<T>\n taskSlug: TaskType\n totalTried: number\n}\n\n/**\n * Task IDs mapped to their status\n */\nexport type JobTaskStatus = {\n // Wrap in taskSlug to improve typing\n [taskSlug in TaskType]: {\n [taskID: string]: SingleTaskStatus<taskSlug>\n }\n}\n\nexport type WorkflowConfig<TWorkflowSlugOrInput extends keyof TypedJobs['workflows'] | object> = {\n /**\n * You can either pass a string-based path to the workflow function file, or the workflow function itself.\n *\n * If you are using large dependencies within your workflow control flow, you might prefer to pass the string path\n * because that will avoid bundling large dependencies in your Next.js app. Passing a string path is an advanced feature\n * that may require a sophisticated build pipeline in order to work.\n */\n handler:\n | string\n | WorkflowHandler<TWorkflowSlugOrInput>\n | WorkflowJSON<TWorkflowSlugOrInput extends object ? string : TWorkflowSlugOrInput>\n /**\n * Define the input field schema - payload will generate a type for this schema.\n */\n inputSchema?: Field[]\n /**\n * You can use interfaceName to change the name of the interface that is generated for this workflow. By default, this is \"Workflow\" + the capitalized workflow slug.\n */\n interfaceName?: string\n /**\n * Define a human-friendly label for this workflow.\n */\n label?: string\n /**\n * Optionally, define the default queue name that this workflow should be tied to.\n * Defaults to \"default\".\n * Can be overridden when queuing jobs via Local API.\n */\n queue?: string\n /**\n * You can define `retries` on the workflow level, which will enforce that the workflow can only fail up to that number of retries. If a task does not have retries specified, it will inherit the retry count as specified on the workflow.\n *\n * You can specify `0` as `workflow` retries, which will disregard all `task` retry specifications and fail the entire workflow on any task failure.\n * You can leave `workflow` retries as undefined, in which case, the workflow will respect what each task dictates as their own retry count.\n *\n * @default undefined. By default, workflows retries are defined by their tasks\n */\n retries?: number | RetryConfig | undefined\n /**\n * Define a slug-based name for this job.\n */\n slug: TWorkflowSlugOrInput extends keyof TypedJobs['workflows'] ? TWorkflowSlugOrInput : string\n}\n\ntype AllWorkflowConfigs = {\n [TWorkflowSlug in keyof TypedJobs['workflows']]: WorkflowConfig<TWorkflowSlug>\n}[keyof TypedJobs['workflows']]\n"],"names":[],"mappings":"AA6FA,WA2CC"}
1
+ {"version":3,"sources":["../../../../src/queues/config/types/workflowTypes.ts"],"sourcesContent":["import type { Field } from '../../../fields/config/types.js'\nimport type { PayloadRequest, StringKeyOf, TypedCollection, TypedJobs } from '../../../index.js'\nimport type { TaskParent } from '../../operations/runJobs/runJob/getRunTaskFunction.js'\nimport type {\n RetryConfig,\n RunInlineTaskFunction,\n RunTaskFunctions,\n TaskInput,\n TaskOutput,\n TaskType,\n} from './taskTypes.js'\nimport type { WorkflowJSON } from './workflowJSONTypes.js'\n\nexport type JobLog = {\n completedAt: string\n error?: unknown\n executedAt: string\n /**\n * ID added by the array field when the log is saved in the database\n */\n id: string\n input?: Record<string, any>\n output?: Record<string, any>\n /**\n * Sub-tasks (tasks that are run within a task) will have a parent task ID\n */\n parent?: TaskParent\n state: 'failed' | 'succeeded'\n taskID: string\n taskSlug: string\n}\n\nexport type BaseJob = {\n completedAt?: string\n error?: unknown\n hasError?: boolean\n id: number | string\n input?: any\n log: JobLog[]\n processing?: boolean\n queue: string\n taskSlug?: string\n taskStatus?: JobTaskStatus\n totalTried: number\n waitUntil?: string\n workflowSlug?: string\n}\n\nexport type WorkflowTypes = StringKeyOf<TypedJobs['workflows']>\n\n// TODO: Type job.taskStatus once available - for JSON-defined workflows\nexport type RunningJob<TWorkflowSlugOrInput extends keyof TypedJobs['workflows'] | object> = {\n input: TWorkflowSlugOrInput extends keyof TypedJobs['workflows']\n ? TypedJobs['workflows'][TWorkflowSlugOrInput]['input']\n : TWorkflowSlugOrInput\n taskStatus: JobTaskStatus\n} & Omit<TypedCollection['payload-jobs'], 'input' | 'taskStatus'>\n\nexport type RunningJobSimple<TWorkflowInput extends object> = {\n input: TWorkflowInput\n} & TypedCollection['payload-jobs']\n\n// Simplified version of RunningJob that doesn't break TypeScript (TypeScript seems to stop evaluating RunningJob when it's too complex)\nexport type RunningJobFromTask<TTaskSlug extends keyof TypedJobs['tasks']> = {\n input: TypedJobs['tasks'][TTaskSlug]['input']\n} & TypedCollection['payload-jobs']\n\nexport type WorkflowHandler<TWorkflowSlugOrInput extends keyof TypedJobs['workflows'] | object> =\n (args: {\n inlineTask: RunInlineTaskFunction\n job: RunningJob<TWorkflowSlugOrInput>\n req: PayloadRequest\n tasks: RunTaskFunctions\n }) => Promise<void>\n\nexport type SingleTaskStatus<T extends keyof TypedJobs['tasks']> = {\n complete: boolean\n input: TaskInput<T>\n output: TaskOutput<T>\n taskSlug: TaskType\n totalTried: number\n}\n\n/**\n * Task IDs mapped to their status\n */\nexport type JobTaskStatus = {\n // Wrap in taskSlug to improve typing\n [taskSlug in TaskType]: {\n [taskID: string]: SingleTaskStatus<taskSlug>\n }\n}\n\nexport type WorkflowConfig<TWorkflowSlugOrInput extends keyof TypedJobs['workflows'] | object> = {\n /**\n * You can either pass a string-based path to the workflow function file, or the workflow function itself.\n *\n * If you are using large dependencies within your workflow control flow, you might prefer to pass the string path\n * because that will avoid bundling large dependencies in your Next.js app. Passing a string path is an advanced feature\n * that may require a sophisticated build pipeline in order to work.\n */\n handler:\n | string\n | WorkflowHandler<TWorkflowSlugOrInput>\n | WorkflowJSON<TWorkflowSlugOrInput extends object ? string : TWorkflowSlugOrInput>\n /**\n * Define the input field schema - payload will generate a type for this schema.\n */\n inputSchema?: Field[]\n /**\n * You can use interfaceName to change the name of the interface that is generated for this workflow. By default, this is \"Workflow\" + the capitalized workflow slug.\n */\n interfaceName?: string\n /**\n * Define a human-friendly label for this workflow.\n */\n label?: string\n /**\n * Optionally, define the default queue name that this workflow should be tied to.\n * Defaults to \"default\".\n * Can be overridden when queuing jobs via Local API.\n */\n queue?: string\n /**\n * You can define `retries` on the workflow level, which will enforce that the workflow can only fail up to that number of retries. If a task does not have retries specified, it will inherit the retry count as specified on the workflow.\n *\n * You can specify `0` as `workflow` retries, which will disregard all `task` retry specifications and fail the entire workflow on any task failure.\n * You can leave `workflow` retries as undefined, in which case, the workflow will respect what each task dictates as their own retry count.\n *\n * @default undefined. By default, workflows retries are defined by their tasks\n */\n retries?: number | RetryConfig | undefined\n /**\n * Define a slug-based name for this job.\n */\n slug: TWorkflowSlugOrInput extends keyof TypedJobs['workflows'] ? TWorkflowSlugOrInput : string\n}\n\ntype AllWorkflowConfigs = {\n [TWorkflowSlug in keyof TypedJobs['workflows']]: WorkflowConfig<TWorkflowSlug>\n}[keyof TypedJobs['workflows']]\n"],"names":[],"mappings":"AA6FA,WA2CC"}
@@ -1,5 +1,5 @@
1
1
  import type { RunningJobFromTask } from './config/types/workflowTypes.js';
2
- import { type Payload, type PayloadRequest, type RunningJob, type TypedJobs, type Where } from '../index.js';
2
+ import { type Payload, type PayloadRequest, type RunningJob, type Sort, type TypedJobs, type Where } from '../index.js';
3
3
  import { runJobs } from './operations/runJobs/index.js';
4
4
  export declare const getJobsLocalAPI: (payload: Payload) => {
5
5
  queue: <TTaskOrWorkflowSlug extends keyof TypedJobs["tasks"] | keyof TypedJobs["workflows"]>(args: {
@@ -20,8 +20,19 @@ export declare const getJobsLocalAPI: (payload: Payload) => {
20
20
  run: (args?: {
21
21
  limit?: number;
22
22
  overrideAccess?: boolean;
23
+ /**
24
+ * Adjust the job processing order using a Payload sort string.
25
+ *
26
+ * FIFO would equal `createdAt` and LIFO would equal `-createdAt`.
27
+ */
28
+ processingOrder?: Sort;
23
29
  queue?: string;
24
30
  req?: PayloadRequest;
31
+ /**
32
+ * By default, jobs are run in parallel.
33
+ * If you want to run them in sequence, set this to true.
34
+ */
35
+ sequential?: boolean;
25
36
  where?: Where;
26
37
  }) => Promise<ReturnType<typeof runJobs>>;
27
38
  runByID: (args: {
@@ -1 +1 @@
1
- {"version":3,"file":"localAPI.d.ts","sourceRoot":"","sources":["../../src/queues/localAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,KAAK,EACX,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAGvD,eAAO,MAAM,eAAe,YAAa,OAAO;YAG5C,mBAAmB,SAAS,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,QAG/E;QACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAA;QACvD,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,cAAc,CAAA;QAEpB,IAAI,EAAE,mBAAmB,SAAS,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,mBAAmB,GAAG,KAAK,CAAA;QACxF,SAAS,CAAC,EAAE,IAAI,CAAA;QAChB,QAAQ,CAAC,EAAE,KAAK,CAAA;KACjB,GACD;QACE,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAA;QAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB,IAAI,CAAC,EAAE,KAAK,CAAA;QACZ,SAAS,CAAC,EAAE,IAAI,CAAA;QAChB,QAAQ,EAAE,mBAAmB,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,GAC9D,mBAAmB,GACnB,KAAK,CAAA;KACV,KACJ,OAAO,CACR,mBAAmB,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,GACpD,UAAU,CAAC,mBAAmB,CAAC,GAC/B,kBAAkB,CAAC,mBAAmB,CAAC,CAC5C;iBAuDkB;QACjB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB,KAAK,CAAC,EAAE,KAAK,CAAA;KACd,KAAG,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;oBAYjB;QACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,GAAG,CAAC,EAAE,cAAc,CAAA;KACrB,KAAG,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;mBAUlB;QACnB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB,KAAK,EAAE,KAAK,CAAA;KACb,KAAG,OAAO,CAAC,IAAI,CAAC;uBA8CQ;QACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,GAAG,CAAC,EAAE,cAAc,CAAA;KACrB,KAAG,OAAO,CAAC,IAAI,CAAC;CAuBjB,CAAA"}
1
+ {"version":3,"file":"localAPI.d.ts","sourceRoot":"","sources":["../../src/queues/localAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,KAAK,EACX,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAGvD,eAAO,MAAM,eAAe,YAAa,OAAO;YAG5C,mBAAmB,SAAS,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,QAG/E;QACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAA;QACvD,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,cAAc,CAAA;QAEpB,IAAI,EAAE,mBAAmB,SAAS,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,mBAAmB,GAAG,KAAK,CAAA;QACxF,SAAS,CAAC,EAAE,IAAI,CAAA;QAChB,QAAQ,CAAC,EAAE,KAAK,CAAA;KACjB,GACD;QACE,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAA;QAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB,IAAI,CAAC,EAAE,KAAK,CAAA;QACZ,SAAS,CAAC,EAAE,IAAI,CAAA;QAChB,QAAQ,EAAE,mBAAmB,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,GAC9D,mBAAmB,GACnB,KAAK,CAAA;KACV,KACJ,OAAO,CACR,mBAAmB,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,GACpD,UAAU,CAAC,mBAAmB,CAAC,GAC/B,kBAAkB,CAAC,mBAAmB,CAAC,CAC5C;iBAuDkB;QACjB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB;;;;WAIG;QACH,eAAe,CAAC,EAAE,IAAI,CAAA;QACtB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB;;;WAGG;QACH,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,KAAK,CAAC,EAAE,KAAK,CAAA;KACd,KAAG,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;oBAcjB;QACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,GAAG,CAAC,EAAE,cAAc,CAAA;KACrB,KAAG,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;mBAUlB;QACnB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB,KAAK,EAAE,KAAK,CAAA;KACb,KAAG,OAAO,CAAC,IAAI,CAAC;uBA8CQ;QACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,GAAG,CAAC,EAAE,cAAc,CAAA;KACrB,KAAG,OAAO,CAAC,IAAI,CAAC;CAuBjB,CAAA"}
@@ -55,8 +55,10 @@ export const getJobsLocalAPI = (payload)=>({
55
55
  return await runJobs({
56
56
  limit: args?.limit,
57
57
  overrideAccess: args?.overrideAccess !== false,
58
+ processingOrder: args?.processingOrder,
58
59
  queue: args?.queue,
59
60
  req: newReq,
61
+ sequential: args?.sequential,
60
62
  where: args?.where
61
63
  });
62
64
  },