{"version":3,"file":"recurrence.mjs","names":[],"sources":["../src/modules/recurrence/methods.ts"],"sourcesContent":["import { formatISO, parseISO } from 'date-fns';\n\nimport { client } from '~/lib/fetch';\nimport type { ApiResponse } from '~/lib/api';\n\nimport type { RawReportPeriod, ReportPeriod } from '~/modules/reports/types';\nimport { transformPeriod } from '~/modules/reports/methods';\n\nimport type { Recurrence, RecurrenceOffset } from './types';\n\n/**\n * Get the period covered by a recurrence\n *\n * @param recurrence The recurrence\n * @param reference The date used as reference, defaults to today\n * @param offset The offset, negative for previous, positive for next, 0 for current, default to 0\n *\n * @returns The period covered by the recurrence\n */\nexport async function getPeriodFromRecurrence(\n  recurrence: Recurrence,\n  reference?: Date,\n  offset?: number\n): Promise<ReportPeriod> {\n  const { content } = await client.fetch<ApiResponse<RawReportPeriod>>(\n    `/recurrence/${recurrence}/_resolve/period`,\n    {\n      method: 'POST',\n      body: {\n        reference: reference && formatISO(reference),\n        offset,\n      },\n    }\n  );\n\n  return transformPeriod(content);\n}\n\n/**\n * Get the \"nextDate\" (next iteration of a report) from a recurrence and a reference\n *\n * @param recurrence The recurrence\n * @param reference The date used as reference, defaults to today\n *\n * @returns The next iteration date\n */\nexport async function getNextDateFromRecurrence(\n  recurrence: Recurrence,\n  reference?: Date,\n  offset?: RecurrenceOffset\n): Promise<Date> {\n  const { content } = await client.fetch<ApiResponse<{ value: string }>>(\n    `/recurrence/${recurrence}/_resolve/nextDate`,\n    {\n      method: 'POST',\n      body: {\n        reference: reference && formatISO(reference),\n        offset,\n      },\n    }\n  );\n\n  return parseISO(content.value);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,SAAsB,wBACpB,IACA,KACA;;;;yDAFA,YACA,WACA,QACuB;EACvB,MAAM,EAAE,kBAAkB,OAAO,MAC/B,eAAe,WAAW,mBAC1B;GACE,QAAQ;GACR,MAAM;IACJ,WAAW,aAAa,UAAU,UAAU;IAC5C;IACD;GACF,CACF;AAED,SAAO,gBAAgB,QAAQ;;;;;;;;;;;;AAWjC,SAAsB,0BACpB,KACA,KACA;;;;2DAFA,YACA,WACA,QACe;EACf,MAAM,EAAE,kBAAkB,OAAO,MAC/B,eAAe,WAAW,qBAC1B;GACE,QAAQ;GACR,MAAM;IACJ,WAAW,aAAa,UAAU,UAAU;IAC5C;IACD;GACF,CACF;AAED,SAAO,SAAS,QAAQ,MAAM"}