Files
klz-cables.com/.pnpm-store/v10/files/03/5d400804a64da02ef6f3f73f1fcd040622600d6543b9b310565ddc36a5843d15e8907b7d0af83d83b141162c5f21e623e361297a09ed8ab56c914256f56a1f
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

1 line
10 KiB
Plaintext

{"version":3,"sources":["../../../src/collections/operations/findVersionByID.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\n\nimport type { FindOptions } from '../../index.js'\nimport type { PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { Collection, TypeWithID } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { getQueryDraftsSelect } from '../../versions/drafts/getQueryDraftsSelect.js'\nimport { buildAfterOperation } from './utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from './utilities/buildBeforeOperation.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n id: number | string\n overrideAccess?: boolean\n populate?: PopulateType\n req: PayloadRequest\n showHiddenFields?: boolean\n trash?: boolean\n} & Pick<FindOptions<string, SelectType>, 'select'>\n\nexport const findVersionByIDOperation = async <TData extends TypeWithID = any>(\n args: Arguments,\n): Promise<TypeWithVersion<TData>> => {\n const {\n id,\n collection: { config: collectionConfig },\n currentDepth,\n depth,\n disableErrors,\n overrideAccess,\n populate,\n req: { fallbackLocale, locale, payload },\n req,\n select: incomingSelect,\n showHiddenFields,\n trash = false,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of version.', httpStatus.BAD_REQUEST)\n }\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: collectionConfig,\n operation: 'findVersionByID',\n overrideAccess,\n })\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, disableErrors, req }, collectionConfig.access.readVersions)\n : true\n\n // If errors are disabled, and access returns false, return null\n if (accessResults === false) {\n return null!\n }\n\n const hasWhereAccess = typeof accessResults === 'object'\n\n const where = { id: { equals: id } }\n\n let fullWhere = combineQueries(where, accessResults)\n\n fullWhere = appendNonTrashedFilter({\n deletedAtPath: 'version.deletedAt',\n enableTrash: collectionConfig.trash,\n trash,\n where: fullWhere,\n })\n\n // /////////////////////////////////////\n // Find by ID\n // /////////////////////////////////////\n\n const select = sanitizeSelect({\n fields: buildVersionCollectionFields(payload.config, collectionConfig, true),\n forceSelect: getQueryDraftsSelect({ select: collectionConfig.forceSelect }),\n select: incomingSelect,\n versions: true,\n })\n\n const versionsQuery = await payload.db.findVersions<TData>({\n collection: collectionConfig.slug,\n limit: 1,\n locale: locale!,\n pagination: false,\n req,\n select,\n where: fullWhere,\n })\n\n let result = versionsQuery.docs[0]!\n\n if (!result) {\n if (!disableErrors) {\n if (!hasWhereAccess) {\n throw new NotFound(req.t)\n }\n if (hasWhereAccess) {\n throw new Forbidden(req.t)\n }\n }\n\n return null!\n }\n\n if (!result.version) {\n // Fallback if not selected\n ;(result as any).version = {}\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeRead?.length) {\n for (const hook of collectionConfig.hooks.beforeRead) {\n result.version =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result.version,\n overrideAccess,\n query: fullWhere,\n req,\n })) || result.version\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result.version = await afterRead({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth: depth!,\n doc: result.version,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n draft: undefined,\n fallbackLocale: fallbackLocale!,\n global: null,\n locale: locale!,\n overrideAccess: overrideAccess!,\n populate,\n req,\n select: typeof select?.version === 'object' ? select.version : undefined,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result.version =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result.version,\n overrideAccess,\n query: fullWhere,\n req,\n })) || result.version\n }\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'findVersionByID',\n overrideAccess,\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["status","httpStatus","executeAccess","combineQueries","APIError","Forbidden","NotFound","afterRead","appendNonTrashedFilter","killTransaction","sanitizeSelect","buildVersionCollectionFields","getQueryDraftsSelect","buildAfterOperation","buildBeforeOperation","findVersionByIDOperation","args","id","collection","config","collectionConfig","currentDepth","depth","disableErrors","overrideAccess","populate","req","fallbackLocale","locale","payload","select","incomingSelect","showHiddenFields","trash","BAD_REQUEST","operation","accessResults","access","readVersions","hasWhereAccess","where","equals","fullWhere","deletedAtPath","enableTrash","fields","forceSelect","versions","versionsQuery","db","findVersions","slug","limit","pagination","result","docs","t","version","hooks","beforeRead","length","hook","context","doc","query","draft","undefined","global","error"],"mappings":"AAAA,SAASA,UAAUC,UAAU,QAAQ,cAAa;AAOlD,SAASC,aAAa,QAAQ,8BAA6B;AAC3D,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,wBAAuB;AACrE,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,sBAAsB,QAAQ,4CAA2C;AAClF,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,4BAA4B,QAAQ,0CAAyC;AACtF,SAASC,oBAAoB,QAAQ,gDAA+C;AACpF,SAASC,mBAAmB,QAAQ,qCAAoC;AACxE,SAASC,oBAAoB,QAAQ,sCAAqC;AAe1E,OAAO,MAAMC,2BAA2B,OACtCC;IAEA,MAAM,EACJC,EAAE,EACFC,YAAY,EAAEC,QAAQC,gBAAgB,EAAE,EACxCC,YAAY,EACZC,KAAK,EACLC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,KAAK,EAAEC,cAAc,EAAEC,MAAM,EAAEC,OAAO,EAAE,EACxCH,GAAG,EACHI,QAAQC,cAAc,EACtBC,gBAAgB,EAChBC,QAAQ,KAAK,EACd,GAAGjB;IAEJ,IAAI,CAACC,IAAI;QACP,MAAM,IAAIb,SAAS,0BAA0BH,WAAWiC,WAAW;IACrE;IAEA,IAAI;QACF,wCAAwC;QACxC,+BAA+B;QAC/B,wCAAwC;QAExClB,OAAO,MAAMF,qBAAqB;YAChCE;YACAE,YAAYE;YACZe,WAAW;YACXX;QACF;QAEA,wCAAwC;QACxC,SAAS;QACT,wCAAwC;QAExC,MAAMY,gBAAgB,CAACZ,iBACnB,MAAMtB,cAAc;YAAEe;YAAIM;YAAeG;QAAI,GAAGN,iBAAiBiB,MAAM,CAACC,YAAY,IACpF;QAEJ,gEAAgE;QAChE,IAAIF,kBAAkB,OAAO;YAC3B,OAAO;QACT;QAEA,MAAMG,iBAAiB,OAAOH,kBAAkB;QAEhD,MAAMI,QAAQ;YAAEvB,IAAI;gBAAEwB,QAAQxB;YAAG;QAAE;QAEnC,IAAIyB,YAAYvC,eAAeqC,OAAOJ;QAEtCM,YAAYlC,uBAAuB;YACjCmC,eAAe;YACfC,aAAaxB,iBAAiBa,KAAK;YACnCA;YACAO,OAAOE;QACT;QAEA,wCAAwC;QACxC,aAAa;QACb,wCAAwC;QAExC,MAAMZ,SAASpB,eAAe;YAC5BmC,QAAQlC,6BAA6BkB,QAAQV,MAAM,EAAEC,kBAAkB;YACvE0B,aAAalC,qBAAqB;gBAAEkB,QAAQV,iBAAiB0B,WAAW;YAAC;YACzEhB,QAAQC;YACRgB,UAAU;QACZ;QAEA,MAAMC,gBAAgB,MAAMnB,QAAQoB,EAAE,CAACC,YAAY,CAAQ;YACzDhC,YAAYE,iBAAiB+B,IAAI;YACjCC,OAAO;YACPxB,QAAQA;YACRyB,YAAY;YACZ3B;YACAI;YACAU,OAAOE;QACT;QAEA,IAAIY,SAASN,cAAcO,IAAI,CAAC,EAAE;QAElC,IAAI,CAACD,QAAQ;YACX,IAAI,CAAC/B,eAAe;gBAClB,IAAI,CAACgB,gBAAgB;oBACnB,MAAM,IAAIjC,SAASoB,IAAI8B,CAAC;gBAC1B;gBACA,IAAIjB,gBAAgB;oBAClB,MAAM,IAAIlC,UAAUqB,IAAI8B,CAAC;gBAC3B;YACF;YAEA,OAAO;QACT;QAEA,IAAI,CAACF,OAAOG,OAAO,EAAE;YACnB,2BAA2B;;YACzBH,OAAeG,OAAO,GAAG,CAAC;QAC9B;QAEA,wCAAwC;QACxC,0BAA0B;QAC1B,wCAAwC;QAExC,IAAIrC,iBAAiBsC,KAAK,EAAEC,YAAYC,QAAQ;YAC9C,KAAK,MAAMC,QAAQzC,iBAAiBsC,KAAK,CAACC,UAAU,CAAE;gBACpDL,OAAOG,OAAO,GACZ,AAAC,MAAMI,KAAK;oBACV3C,YAAYE;oBACZ0C,SAASpC,IAAIoC,OAAO;oBACpBC,KAAKT,OAAOG,OAAO;oBACnBjC;oBACAwC,OAAOtB;oBACPhB;gBACF,MAAO4B,OAAOG,OAAO;YACzB;QACF;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExCH,OAAOG,OAAO,GAAG,MAAMlD,UAAU;YAC/BW,YAAYE;YACZ0C,SAASpC,IAAIoC,OAAO;YACpBzC;YACAC,OAAOA;YACPyC,KAAKT,OAAOG,OAAO;YACnB,oFAAoF;YACpFQ,OAAOC;YACPvC,gBAAgBA;YAChBwC,QAAQ;YACRvC,QAAQA;YACRJ,gBAAgBA;YAChBC;YACAC;YACAI,QAAQ,OAAOA,QAAQ2B,YAAY,WAAW3B,OAAO2B,OAAO,GAAGS;YAC/DlC,kBAAkBA;QACpB;QAEA,wCAAwC;QACxC,yBAAyB;QACzB,wCAAwC;QAExC,IAAIZ,iBAAiBsC,KAAK,EAAEnD,WAAWqD,QAAQ;YAC7C,KAAK,MAAMC,QAAQzC,iBAAiBsC,KAAK,CAACnD,SAAS,CAAE;gBACnD+C,OAAOG,OAAO,GACZ,AAAC,MAAMI,KAAK;oBACV3C,YAAYE;oBACZ0C,SAASpC,IAAIoC,OAAO;oBACpBC,KAAKT,OAAOG,OAAO;oBACnBjC;oBACAwC,OAAOtB;oBACPhB;gBACF,MAAO4B,OAAOG,OAAO;YACzB;QACF;QAEA,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExCH,SAAS,MAAMzC,oBAAoB;YACjCG;YACAE,YAAYE;YACZe,WAAW;YACXX;YACA8B;QACF;QAEA,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,OAAOA;IACT,EAAE,OAAOc,OAAgB;QACvB,MAAM3D,gBAAgBiB;QACtB,MAAM0C;IACR;AACF,EAAC"}