{"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { Core } from '@strapi/types';\nimport { getAdminService, getService } from './utils';\nimport actions from './config/actions';\n\nimport defaultStages from './constants/default-stages.json';\nimport defaultWorkflow from './constants/default-workflow.json';\nimport webhookEvents from './constants/webhook-events';\n\n/**\n * Initialize the default workflow if there is no workflow in the database\n */\n\nasync function initDefaultWorkflow() {\n const workflowsService = getService('workflows', { strapi });\n const stagesService = getService('stages', { strapi });\n\n const wfCount = await workflowsService.count();\n const stagesCount = await stagesService.count();\n\n // Check if there is nothing about review-workflow in DB\n // If any, the feature has already been initialized with a workflow and stages\n if (wfCount === 0 && stagesCount === 0) {\n const workflow = {\n ...defaultWorkflow,\n contentTypes: [],\n stages: defaultStages,\n };\n\n await workflowsService.create({ data: workflow });\n }\n}\n\n/**\n * Webhook store limits the events that can be triggered,\n * this function extends it with the events review workflows can trigger\n */\nconst registerWebhookEvents = async () =>\n Object.entries(webhookEvents).forEach(([eventKey, event]) =>\n strapi.get('webhookStore').addAllowedEvent(eventKey, event)\n );\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n // Permissions\n const { actionProvider } = getAdminService('permission');\n await actionProvider.registerMany(actions.reviewWorkflows);\n\n // Webhooks and events\n await registerWebhookEvents();\n await getService('workflow-weekly-metrics').registerCron();\n\n // Data initialization\n await initDefaultWorkflow();\n\n // Document service middleware\n const docsMiddlewares = getService('document-service-middlewares');\n strapi.documents.use(docsMiddlewares.assignStageOnCreate);\n strapi.documents.use(docsMiddlewares.handleStageOnUpdate);\n strapi.documents.use(docsMiddlewares.checkStageBeforePublish);\n};\n"],"names":["initDefaultWorkflow","workflowsService","getService","strapi","stagesService","wfCount","count","stagesCount","workflow","defaultWorkflow","contentTypes","stages","defaultStages","create","data","registerWebhookEvents","Object","entries","webhookEvents","forEach","eventKey","event","get","addAllowedEvent","actionProvider","getAdminService","registerMany","actions","reviewWorkflows","registerCron","docsMiddlewares","documents","use","assignStageOnCreate","handleStageOnUpdate","checkStageBeforePublish"],"mappings":";;;;;;AAQA;;AAEC,IAED,eAAeA,mBAAAA,GAAAA;IACb,MAAMC,gBAAAA,GAAmBC,WAAW,WAAA,EAAa;AAAEC,QAAAA;AAAO,KAAA,CAAA;IAC1D,MAAMC,aAAAA,GAAgBF,WAAW,QAAA,EAAU;AAAEC,QAAAA;AAAO,KAAA,CAAA;IAEpD,MAAME,OAAAA,GAAU,MAAMJ,gBAAAA,CAAiBK,KAAK,EAAA;IAC5C,MAAMC,WAAAA,GAAc,MAAMH,aAAAA,CAAcE,KAAK,EAAA;;;IAI7C,IAAID,OAAAA,KAAY,CAAA,IAAKE,WAAAA,KAAgB,CAAA,EAAG;AACtC,QAAA,MAAMC,QAAAA,GAAW;AACf,YAAA,GAAGC,eAAe;AAClBC,YAAAA,YAAAA,EAAc,EAAE;YAChBC,MAAAA,EAAQC;AACV,SAAA;QAEA,MAAMX,gBAAAA,CAAiBY,MAAM,CAAC;YAAEC,IAAAA,EAAMN;AAAS,SAAA,CAAA;AACjD,IAAA;AACF;AAEA;;;IAIA,MAAMO,wBAAwB,UAC5BC,MAAAA,CAAOC,OAAO,CAACC,aAAAA,CAAAA,CAAeC,OAAO,CAAC,CAAC,CAACC,QAAAA,EAAUC,KAAAA,CAAM,GACtDlB,MAAAA,CAAOmB,GAAG,CAAC,cAAA,CAAA,CAAgBC,eAAe,CAACH,QAAAA,EAAUC,KAAAA,CAAAA,CAAAA;AAGzD,gBAAe,CAAA,OAAO,EAAElB,MAAAA,EAAAA,OAAM,EAA2B,GAAA;;AAEvD,IAAA,MAAM,EAAEqB,cAAc,EAAE,GAAGC,eAAAA,CAAgB,YAAA,CAAA;AAC3C,IAAA,MAAMD,cAAAA,CAAeE,YAAY,CAACC,OAAAA,CAAQC,eAAe,CAAA;;IAGzD,MAAMb,qBAAAA,EAAAA;IACN,MAAMb,UAAAA,CAAW,2BAA2B2B,YAAY,EAAA;;IAGxD,MAAM7B,mBAAAA,EAAAA;;AAGN,IAAA,MAAM8B,kBAAkB5B,UAAAA,CAAW,8BAAA,CAAA;AACnCC,IAAAA,OAAAA,CAAO4B,SAAS,CAACC,GAAG,CAACF,gBAAgBG,mBAAmB,CAAA;AACxD9B,IAAAA,OAAAA,CAAO4B,SAAS,CAACC,GAAG,CAACF,gBAAgBI,mBAAmB,CAAA;AACxD/B,IAAAA,OAAAA,CAAO4B,SAAS,CAACC,GAAG,CAACF,gBAAgBK,uBAAuB,CAAA;AAC9D,CAAA;;;;"}