{"version":3,"file":"index.cjs","sources":["../../src/plugin.ts"],"sourcesContent":["import { createRequire } from 'module';\r\nimport type { Plugin } from 'vite';\r\nconst require = createRequire(import.meta.url);\r\n\r\nexport function momentTimezonePlugin(options: {\r\n  zones?: string[] | undefined;\r\n  startYear?: number | undefined;\r\n  endYear?: number | undefined;\r\n}): Plugin {\r\n  return {\r\n    name: 'vite-plugin-moment-timezone',\r\n    apply: 'build',\r\n    transform(code, id) {\r\n      if (id.includes('moment-timezone/data/packed/latest.json')) {\r\n        const transformedResult = transformMomentTimezone(\r\n          options.zones,\r\n          options.startYear,\r\n          options.endYear,\r\n        );\r\n        return `export default ${JSON.stringify(transformedResult)}`;\r\n      }\r\n    },\r\n  };\r\n}\r\n\r\nexport function transformMomentTimezone(\r\n  tz: string[] | undefined = [],\r\n  startYear?: number,\r\n  endYear?: number | undefined,\r\n) {\r\n  const tzdata = require('moment-timezone/data/packed/latest.json');\r\n  const utils = require('moment-timezone/moment-timezone-utils');\r\n\r\n  const zones: string[] = [];\r\n  const links: string[] = [];\r\n  const countries: string[] = [];\r\n\r\n  if (tz?.length === 0) {\r\n    zones.push(...tzdata.zones);\r\n    links.push(...tzdata.links);\r\n    countries.push(...tzdata.countries);\r\n  }\r\n  for (const zone of tz) {\r\n    for (const z of tzdata.zones) {\r\n      if (z.includes(zone)) {\r\n        zones.push(z);\r\n      }\r\n    }\r\n    for (const z of tzdata.links) {\r\n      if (z.includes(zone)) {\r\n        links.push(z);\r\n      }\r\n    }\r\n    for (const z of tzdata.countries) {\r\n      if (z.includes(zone)) {\r\n        countries.push(z);\r\n      }\r\n    }\r\n  }\r\n\r\n  if (startYear === undefined && endYear === undefined) {\r\n    return { version: tzdata.version, zones, links, countries };\r\n  }\r\n\r\n  const filteredDateZones: string[] = [];\r\n  for (const zone of zones) {\r\n    const unpacked = utils.tz.unpack(zone);\r\n    const filtered = utils.tz.filterYears(unpacked, startYear, endYear);\r\n    const packed = utils.tz.pack(filtered);\r\n    filteredDateZones.push(packed);\r\n  }\r\n  return { version: tzdata.version, zones: filteredDateZones, links, countries };\r\n}\r\n"],"names":["require","createRequire","import","momentTimezonePlugin","options","name","apply","transform","code","id","includes","transformedResult","transformMomentTimezone","zones","startYear","endYear","JSON","stringify","tz","tzdata","utils","links","countries","length","push","zone","z","undefined","version","filteredDateZones","unpacked","unpack","filtered","filterYears","packed","pack"],"mappings":"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"}