{"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { 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 (args: any) => {\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","args","actionProvider","getAdminService","registerMany","actions","reviewWorkflows","registerCron","docsMiddlewares","documents","use","assignStageOnCreate","handleStageOnUpdate","checkStageBeforePublish"],"mappings":";;;;;;AAOA;;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,OAAOG,IAAAA,GAAAA;;AAEpB,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,eAAAA,CAAgB,YAAA,CAAA;AAC3C,IAAA,MAAMD,cAAAA,CAAeE,YAAY,CAACC,OAAAA,CAAQC,eAAe,CAAA;;IAGzD,MAAMd,qBAAAA,EAAAA;IACN,MAAMb,UAAAA,CAAW,2BAA2B4B,YAAY,EAAA;;IAGxD,MAAM9B,mBAAAA,EAAAA;;AAGN,IAAA,MAAM+B,kBAAkB7B,UAAAA,CAAW,8BAAA,CAAA;AACnCC,IAAAA,MAAAA,CAAO6B,SAAS,CAACC,GAAG,CAACF,gBAAgBG,mBAAmB,CAAA;AACxD/B,IAAAA,MAAAA,CAAO6B,SAAS,CAACC,GAAG,CAACF,gBAAgBI,mBAAmB,CAAA;AACxDhC,IAAAA,MAAAA,CAAO6B,SAAS,CAACC,GAAG,CAACF,gBAAgBK,uBAAuB,CAAA;AAC9D,CAAA;;;;"}