{"version":3,"file":"homepage.mjs","sources":["../../../server/src/services/homepage.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type { GetUpcomingReleases } from '../../../shared/contracts/homepage';\n\nconst createHomepageService = ({ strapi }: { strapi: Core.Strapi }) => {\n const MAX_DOCUMENTS = 4;\n\n return {\n async getUpcomingReleases(): Promise {\n const releases = await strapi.db.query('plugin::content-releases.release').findMany({\n filters: {\n releasedAt: {\n $notNull: false,\n },\n },\n // `scheduledAt` is often null; tie-break by `id` so order is stable across DBs/engines.\n // (E2E and the admin widget assume a predictable first row in that case — see with-admin seed.)\n orderBy: [{ scheduledAt: 'asc' }, { id: 'asc' }],\n limit: MAX_DOCUMENTS,\n });\n\n return releases;\n },\n };\n};\n\nexport default createHomepageService;\n"],"names":["createHomepageService","strapi","MAX_DOCUMENTS","getUpcomingReleases","releases","db","query","findMany","filters","releasedAt","$notNull","orderBy","scheduledAt","id","limit"],"mappings":"AAIA,MAAMA,qBAAAA,GAAwB,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAChE,IAAA,MAAMC,aAAAA,GAAgB,CAAA;IAEtB,OAAO;QACL,MAAMC,mBAAAA,CAAAA,GAAAA;YACJ,MAAMC,QAAAA,GAAW,MAAMH,MAAAA,CAAOI,EAAE,CAACC,KAAK,CAAC,kCAAA,CAAA,CAAoCC,QAAQ,CAAC;gBAClFC,OAAAA,EAAS;oBACPC,UAAAA,EAAY;wBACVC,QAAAA,EAAU;AACZ;AACF,iBAAA;;;gBAGAC,OAAAA,EAAS;AAAC,oBAAA;wBAAEC,WAAAA,EAAa;AAAM,qBAAA;AAAG,oBAAA;wBAAEC,EAAAA,EAAI;AAAM;AAAE,iBAAA;gBAChDC,KAAAA,EAAOZ;AACT,aAAA,CAAA;YAEA,OAAOE,QAAAA;AACT,QAAA;AACF,KAAA;AACF;;;;"}