{"version":3,"file":"time.mjs","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B;AACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CACzC,MAAM,EAAE,EACR,mBAAmB,EACnB,CAAC,KAAK,EAAE,EAAE;IACR,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,kDAAkD;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QAClC,oBAAoB,EAAE,IAAI;KAC3B,CAAW,CAAC;AACf,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,4BAA4B","sourcesContent":["import { refine, string } from '@metamask/superstruct';\nimport { DateTime, Duration } from 'luxon';\n\n/**\n * Refines a string as an ISO 8601 duration.\n */\nexport const ISO8601DurationStruct = refine(\n  string(),\n  'ISO 8601 duration',\n  (value) => {\n    const parsedDuration = Duration.fromISO(value);\n    if (!parsedDuration.isValid) {\n      return 'Not a valid ISO 8601 duration';\n    }\n\n    return true;\n  },\n);\n\n/**\n * Remove millisecond precision from an ISO 8601 string.\n *\n * @param value - A valid ISO 8601 date.\n * @returns A valid ISO 8601 date with millisecond precision removed.\n */\nexport function toCensoredISO8601String(value: string) {\n  const date = DateTime.fromISO(value, { setZone: true });\n\n  // Make sure any millisecond precision is removed.\n  return date.startOf('second').toISO({\n    suppressMilliseconds: true,\n  }) as string;\n}\n\nexport { ISO8601DateStruct } from '@metamask/snaps-sdk';\n"]}