@sapphire/timestamp 1.0.6-next.0f753b92 → 1.0.6-next.104fbcfe
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/constants.ts","../../src/lib/Timestamp.ts"],"names":["Time"],"mappings":"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","file":"index.cjs","sourcesContent":["export enum Time {\n\tNanosecond = 1 / 1_000_000,\n\tMicrosecond = 1 / 1000,\n\tMillisecond = 1,\n\tSecond = 1000,\n\tMinute = Second * 60,\n\tHour = Minute * 60,\n\tDay = Hour * 24,\n\tWeek = Day * 7,\n\tMonth = Day * (365 / 12),\n\tYear = Day * 365\n}\n\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\nexport const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\nexport const tokens = new Map<string, number>([\n\t['Y', 4],\n\t['Q', 1],\n\t['M', 4],\n\t['D', 4],\n\t['d', 4],\n\t['X', 1],\n\t['x', 1],\n\t['H', 2],\n\t['h', 2],\n\t['a', 1],\n\t['A', 1],\n\t['m', 2],\n\t['s', 2],\n\t['S', 3],\n\t['Z', 2],\n\t['l', 4],\n\t['L', 4],\n\t['T', 1],\n\t['t', 1]\n]);\n","import { days, months, Time, tokens } from './constants';\n\ninterface TokenResolver {\n\t(time: Date): string;\n}\n\nconst tokenResolvers = new Map<string, TokenResolver>([\n\t// Dates\n\t['Y', (time) => String(time.getFullYear()).slice(2)],\n\t['YY', (time) => String(time.getFullYear()).slice(2)],\n\t['YYY', (time) => String(time.getFullYear())],\n\t['YYYY', (time) => String(time.getFullYear())],\n\t['Q', (time) => String((time.getMonth() + 1) / 3)],\n\t['M', (time) => String(time.getMonth() + 1)],\n\t['MM', (time) => String(time.getMonth() + 1).padStart(2, '0')],\n\t['MMM', (time) => months[time.getMonth()]],\n\t['MMMM', (time) => months[time.getMonth()]],\n\t['D', (time) => String(time.getDate())],\n\t['DD', (time) => String(time.getDate()).padStart(2, '0')],\n\t['DDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t['DDDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t[\n\t\t'd',\n\t\t(time) => {\n\t\t\tconst day = String(time.getDate());\n\t\t\tif (day !== '11' && day.endsWith('1')) return `${day}st`;\n\t\t\tif (day !== '12' && day.endsWith('2')) return `${day}nd`;\n\t\t\tif (day !== '13' && day.endsWith('3')) return `${day}rd`;\n\t\t\treturn `${day}th`;\n\t\t}\n\t],\n\t['dd', (time) => days[time.getDay()].slice(0, 2)],\n\t['ddd', (time) => days[time.getDay()].slice(0, 3)],\n\t['dddd', (time) => days[time.getDay()]],\n\t['X', (time) => String(time.valueOf() / Time.Second)],\n\t['x', (time) => String(time.valueOf())],\n\n\t// Locales\n\t['H', (time) => String(time.getHours())],\n\t['HH', (time) => String(time.getHours()).padStart(2, '0')],\n\t['h', (time) => String(time.getHours() % 12 || 12)],\n\t['hh', (time) => String(time.getHours() % 12 || 12).padStart(2, '0')],\n\t['a', (time) => (time.getHours() < 12 ? 'am' : 'pm')],\n\t['A', (time) => (time.getHours() < 12 ? 'AM' : 'PM')],\n\t['m', (time) => String(time.getMinutes())],\n\t['mm', (time) => String(time.getMinutes()).padStart(2, '0')],\n\t['s', (time) => String(time.getSeconds())],\n\t['ss', (time) => String(time.getSeconds()).padStart(2, '0')],\n\t['S', (time) => String(time.getMilliseconds())],\n\t['SS', (time) => String(time.getMilliseconds()).padStart(2, '0')],\n\t['SSS', (time) => String(time.getMilliseconds()).padStart(3, '0')],\n\t['T', (time) => `${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`],\n\t[\n\t\t't',\n\t\t(time) =>\n\t\t\t`${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')}:${String(time.getSeconds()).padStart(2, '0')} ${\n\t\t\t\ttime.getHours() < 12 ? 'am' : 'pm'\n\t\t\t}`\n\t],\n\t['L', (time) => `${String(time.getMonth() + 1).padStart(2, '0')}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['l', (time) => `${String(time.getMonth() + 1)}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['LL', (time) => `${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t['ll', (time) => `${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t[\n\t\t'LLL',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'lll',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'LLLL',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()]}, ${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'llll',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()].slice(0, 3)} ${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(\n\t\t\t\ttime.getFullYear()\n\t\t\t)} ${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'Z',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t],\n\t[\n\t\t'ZZ',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t]\n]);\n/* eslint-enable max-len */\n\nexport type TimeResolvable = Date | number | string;\n\nexport interface TimestampTemplateEntry {\n\ttype: string;\n\tcontent: string | null;\n}\n\n/**\n * Timestamp class, parses the pattern once, displays the desired Date or UNIX timestamp with the selected pattern.\n */\nexport class Timestamp {\n\t/**\n\t * The raw pattern\n\t * @since 1.0.0\n\t */\n\tpublic pattern: string;\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tprivate template: TimestampTemplateEntry[];\n\n\t/**\n\t * Starts a new Timestamp and parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tpublic constructor(pattern: string) {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display\n\t */\n\tpublic display(time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(this.template, time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display in utc\n\t */\n\tpublic displayUTC(time?: TimeResolvable): string {\n\t\treturn Timestamp.display(this.template, Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Edits the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The new pattern for this instance\n\t * @chainable\n\t */\n\tpublic edit(pattern: string): this {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Defines the toString behavior of Timestamp.\n\t */\n\tpublic toString(): string {\n\t\treturn this.display();\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayUTCArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Creates a UTC Date object to work with.\n\t * @since 1.0.0\n\t * @param time The date to convert to utc\n\t */\n\tpublic static utc(time: Date | number | string = new Date()): Date {\n\t\ttime = Timestamp.resolveDate(time);\n\t\treturn new Date(time.valueOf() + time.getTimezoneOffset() * 60000);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param template The pattern to parse\n\t * @param time The time to display\n\t */\n\tprivate static display(template: TimestampTemplateEntry[], time: Date | number | string): string {\n\t\tlet output = '';\n\t\tconst parsedTime = Timestamp.resolveDate(time);\n\t\tfor (const { content, type } of template) output += content || tokenResolvers.get(type)!(parsedTime);\n\t\treturn output;\n\t}\n\n\t/**\n\t * Parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tprivate static parse(pattern: string): TimestampTemplateEntry[] {\n\t\tconst template: TimestampTemplateEntry[] = [];\n\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\tlet current = '';\n\t\t\tconst currentChar = pattern[i];\n\t\t\tconst tokenMax = tokens.get(currentChar);\n\t\t\tif (typeof tokenMax === 'number') {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (pattern[i + 1] === currentChar && current.length < tokenMax) current += pattern[++i];\n\t\t\t\ttemplate.push({ type: current, content: null });\n\t\t\t} else if (currentChar === '[') {\n\t\t\t\twhile (i + 1 < pattern.length && pattern[i + 1] !== ']') current += pattern[++i];\n\t\t\t\ti++;\n\t\t\t\ttemplate.push({ type: 'literal', content: current || '[' });\n\t\t\t} else {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (i + 1 < pattern.length && !tokens.has(pattern[i + 1]) && pattern[i + 1] !== '[') current += pattern[++i];\n\t\t\t\ttemplate.push({ type: 'literal', content: current });\n\t\t\t}\n\t\t}\n\n\t\treturn template;\n\t}\n\n\t/**\n\t * Resolves a date.\n\t * @since 1.0.0\n\t * @param time The time to parse\n\t */\n\tprivate static resolveDate(time: TimeResolvable): Date {\n\t\treturn time instanceof Date ? time : new Date(time);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/constants.ts","../../src/lib/Timestamp.ts"],"names":["Time"],"mappings":";;;;;;;;AAAO,IAAK,IAAA,qBAAAA,KAAAA,KAAL;AACN,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,gBAAa,IAAA,CAAA,GAAb,YAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,iBAAc,IAAA,CAAA,GAAd,aAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,YAAS,GAAA,CAAA,GAAT,QAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,YAAS,GAAA,CAAA,GAAT,QAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,UAAO,IAAA,CAAA,GAAP,MAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,SAAM,KAAA,CAAA,GAAN,KAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,UAAO,MAAA,CAAA,GAAP,MAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,WAAQ,MAAA,CAAA,GAAR,OAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,UAAO,OAAA,CAAA,GAAP,MAAA;AAVW,EAAA,OAAAA,KAAAA;AAAA,CAAA,EAAA,IAAA,IAAA,EAAA;AAaL,IAAM,IAAA,GAAO,CAAC,QAAA,EAAU,QAAA,EAAU,WAAW,WAAA,EAAa,UAAA,EAAY,UAAU,UAAU;AAE1F,IAAM,MAAA,GAAS,CAAC,SAAA,EAAW,UAAA,EAAY,OAAA,EAAS,OAAA,EAAS,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,WAAA,EAAa,SAAA,EAAW,YAAY,UAAU;AAExI,IAAM,MAAA,uBAAa,GAAA,CAAoB;AAAA,EAC7C,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC,CAAA;AAAA,EACP,CAAC,KAAK,CAAC;AACR,CAAC;;;AC/BD,IAAM,cAAA,uBAAqB,GAAA,CAA2B;AAAA;AAAA,EAErD,CAAC,GAAA,EAAK,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,WAAA,EAAa,CAAA,CAAE,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,EACnD,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,WAAA,EAAa,CAAA,CAAE,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,EACpD,CAAC,OAAO,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA;AAAA,EAC5C,CAAC,QAAQ,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA;AAAA,EAC7C,CAAC,GAAA,EAAK,CAAC,IAAA,KAAS,MAAA,CAAA,CAAQ,KAAK,QAAA,EAAS,GAAI,CAAA,IAAK,CAAC,CAAC,CAAA;AAAA,EACjD,CAAC,KAAK,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,QAAA,EAAS,GAAI,CAAC,CAAC,CAAA;AAAA,EAC3C,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,QAAA,EAAS,GAAI,CAAC,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,EAC7D,CAAC,OAAO,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA;AAAA,EACzC,CAAC,QAAQ,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA;AAAA,EAC1C,CAAC,KAAK,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,OAAA,EAAS,CAAC,CAAA;AAAA,EACtC,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,EACxD,CAAC,OAAO,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,KAAA,CAAA,CAAO,KAAK,OAAA,EAAQ,GAAI,IAAI,IAAA,CAAK,IAAA,CAAK,aAAY,EAAG,CAAA,EAAG,CAAC,CAAA,CAAE,OAAA,EAAQ,IAAA,KAAA,WAAc,CAAC,CAAA;AAAA,EAChH,CAAC,QAAQ,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,KAAA,CAAA,CAAO,KAAK,OAAA,EAAQ,GAAI,IAAI,IAAA,CAAK,IAAA,CAAK,aAAY,EAAG,CAAA,EAAG,CAAC,CAAA,CAAE,OAAA,EAAQ,IAAA,KAAA,WAAc,CAAC,CAAA;AAAA,EACjH;AAAA,IACC,GAAA;AAAA,IACA,CAAC,IAAA,KAAS;AACT,MAAA,MAAM,GAAA,GAAM,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA;AACjC,MAAA,IAAI,GAAA,KAAQ,QAAQ,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,GAAG,GAAG,CAAA,EAAA,CAAA;AACpD,MAAA,IAAI,GAAA,KAAQ,QAAQ,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,GAAG,GAAG,CAAA,EAAA,CAAA;AACpD,MAAA,IAAI,GAAA,KAAQ,QAAQ,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,GAAG,GAAG,CAAA,EAAA,CAAA;AACpD,MAAA,OAAO,GAAG,GAAG,CAAA,EAAA,CAAA;AAAA,IACd;AAAA,GACD;AAAA,EACA,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,EAChD,CAAC,KAAA,EAAO,CAAC,IAAA,KAAS,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,EACjD,CAAC,QAAQ,CAAC,IAAA,KAAS,KAAK,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,EACtC,CAAC,KAAK,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,OAAA,sBAAwB,CAAA;AAAA,EACpD,CAAC,KAAK,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,OAAA,EAAS,CAAC,CAAA;AAAA;AAAA,EAGtC,CAAC,KAAK,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA;AAAA,EACvC,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,QAAA,EAAU,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,EACzD,CAAC,GAAA,EAAK,CAAC,IAAA,KAAS,MAAA,CAAO,KAAK,QAAA,EAAS,GAAI,EAAA,IAAM,EAAE,CAAC,CAAA;AAAA,EAClD,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,QAAA,EAAS,GAAI,EAAA,IAAM,EAAE,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,EACpE,CAAC,KAAK,CAAC,IAAA,KAAU,KAAK,QAAA,EAAS,GAAI,EAAA,GAAK,IAAA,GAAO,IAAK,CAAA;AAAA,EACpD,CAAC,KAAK,CAAC,IAAA,KAAU,KAAK,QAAA,EAAS,GAAI,EAAA,GAAK,IAAA,GAAO,IAAK,CAAA;AAAA,EACpD,CAAC,KAAK,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,EACzC,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,EAC3D,CAAC,KAAK,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,EACzC,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,EAC3D,CAAC,KAAK,CAAC,IAAA,KAAS,OAAO,IAAA,CAAK,eAAA,EAAiB,CAAC,CAAA;AAAA,EAC9C,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,eAAA,EAAiB,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,EAChE,CAAC,KAAA,EAAO,CAAC,IAAA,KAAS,MAAA,CAAO,IAAA,CAAK,eAAA,EAAiB,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,EACjE,CAAC,GAAA,EAAK,CAAC,IAAA,KAAS,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,QAAA,EAAS,GAAI,EAAA,IAAM,EAAE,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,QAAA,EAAS,GAAI,EAAA,GAAK,IAAA,GAAO,IAAI,CAAA,CAAE,CAAA;AAAA,EAC3I;AAAA,IACC,GAAA;AAAA,IACA,CAAC,IAAA,KACA,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,UAAS,GAAI,EAAA,IAAM,EAAE,CAAC,IAAI,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,IAAI,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,IAChI,IAAA,CAAK,QAAA,EAAS,GAAI,EAAA,GAAK,OAAO,IAC/B,CAAA;AAAA,GACF;AAAA,EACA,CAAC,GAAA,EAAK,CAAC,IAAA,KAAS,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,QAAA,EAAS,GAAI,CAAC,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,SAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA,CAAE,CAAA;AAAA,EAC1I,CAAC,GAAA,EAAK,CAAC,IAAA,KAAS,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,QAAA,EAAS,GAAI,CAAC,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA,CAAE,CAAA;AAAA,EACzH,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,EAAA,EAAK,MAAA,CAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA,CAAE,CAAA;AAAA,EACvH,CAAC,IAAA,EAAM,CAAC,IAAA,KAAS,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,QAAA,EAAU,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,EAAA,EAAK,MAAA,CAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA,CAAE,CAAA;AAAA,EACnI;AAAA,IACC,KAAA;AAAA,IACA,CAAC,IAAA,KACA,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,UAAU,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,EAAA,EAAK,OAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA,CAAA,EAAI,MAAA;AAAA,MACvG,IAAA,CAAK,QAAA,EAAS,GAAI,EAAA,IAAM;AAAA,KACxB,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,UAAS,GAAI,EAAA,GAAK,OAAO,IAAI,CAAA;AAAA,GACvF;AAAA,EACA;AAAA,IACC,KAAA;AAAA,IACA,CAAC,IAAA,KACA,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,QAAA,EAAU,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,EAAA,EAAK,MAAA,CAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA,CAAA,EAAI,MAAA;AAAA,MACnH,IAAA,CAAK,QAAA,EAAS,GAAI,EAAA,IAAM;AAAA,KACxB,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,UAAS,GAAI,EAAA,GAAK,OAAO,IAAI,CAAA;AAAA,GACvF;AAAA,EACA;AAAA,IACC,MAAA;AAAA,IACA,CAAC,IAAA,KACA,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA,EAAA,EAAK,MAAA,CAAO,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,EAAA,EAAK,MAAA,CAAO,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA,CAAA,EAAI,MAAA;AAAA,MAC/H,IAAA,CAAK,QAAA,EAAS,GAAI,EAAA,IAAM;AAAA,KACxB,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,UAAS,GAAI,EAAA,GAAK,OAAO,IAAI,CAAA;AAAA,GACvF;AAAA,EACA;AAAA,IACC,MAAA;AAAA,IACA,CAAC,IAAA,KACA,CAAA,EAAG,IAAA,CAAK,KAAK,MAAA,EAAQ,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,OAAO,IAAA,CAAK,QAAA,EAAU,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,IAAI,MAAA,CAAO,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,EAAA,EAAK,MAAA;AAAA,MACxH,KAAK,WAAA;AAAY,KACjB,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,QAAA,KAAa,EAAA,IAAM,EAAE,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,YAAY,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,QAAA,EAAS,GAAI,EAAA,GAAK,IAAA,GAAO,IAAI,CAAA;AAAA,GAC7H;AAAA,EACA;AAAA,IACC,GAAA;AAAA,IACA,CAAC,IAAA,KAAS;AACT,MAAA,MAAM,MAAA,GAAS,KAAK,iBAAA,EAAkB;AACtC,MAAA,MAAM,WAAW,MAAA,IAAU,CAAA;AAC3B,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA;AAEhC,MAAA,OAAO,CAAA,EAAG,QAAA,GAAW,GAAA,GAAM,GAAG,CAAA,EAAG,OAAO,IAAA,CAAK,KAAA,CAAM,QAAA,GAAW,EAAE,CAAC,CAAA,CAAE,SAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,QAAA,GAAW,EAAE,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAAA,IAC9H;AAAA,GACD;AAAA,EACA;AAAA,IACC,IAAA;AAAA,IACA,CAAC,IAAA,KAAS;AACT,MAAA,MAAM,MAAA,GAAS,KAAK,iBAAA,EAAkB;AACtC,MAAA,MAAM,WAAW,MAAA,IAAU,CAAA;AAC3B,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA;AAEhC,MAAA,OAAO,CAAA,EAAG,QAAA,GAAW,GAAA,GAAM,GAAG,CAAA,EAAG,OAAO,IAAA,CAAK,KAAA,CAAM,QAAA,GAAW,EAAE,CAAC,CAAA,CAAE,SAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,QAAA,GAAW,EAAE,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAAA,IAC9H;AAAA;AAEF,CAAC,CAAA;AAaM,IAAM,UAAA,GAAN,MAAM,UAAA,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBf,YAAY,OAAA,EAAiB;AAZpC;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,SAAA,CAAA;AAKP;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAQ,UAAA,CAAA;AAQP,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,QAAA,GAAW,UAAA,CAAU,KAAA,CAAM,OAAO,CAAA;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,OAAA,CAAQ,IAAA,mBAAuB,IAAI,IAAA,EAAK,EAAW;AACzD,IAAA,OAAO,UAAA,CAAU,OAAA,CAAQ,IAAA,CAAK,QAAA,EAAU,IAAI,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,WAAW,IAAA,EAA+B;AAChD,IAAA,OAAO,WAAU,OAAA,CAAQ,IAAA,CAAK,UAAU,UAAA,CAAU,GAAA,CAAI,IAAI,CAAC,CAAA;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,KAAK,OAAA,EAAuB;AAClC,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,QAAA,GAAW,UAAA,CAAU,KAAA,CAAM,OAAO,CAAA;AACvC,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKO,QAAA,GAAmB;AACzB,IAAA,OAAO,KAAK,OAAA,EAAQ;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAc,gBAAA,CAAiB,OAAA,EAAiB,IAAA,mBAAuB,IAAI,MAAK,EAAW;AAC1F,IAAA,OAAO,WAAU,OAAA,CAAQ,UAAA,CAAU,KAAA,CAAM,OAAO,GAAG,IAAI,CAAA;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAc,mBAAA,CAAoB,OAAA,EAAiB,IAAA,mBAAuB,IAAI,MAAK,EAAW;AAC7F,IAAA,OAAO,UAAA,CAAU,QAAQ,UAAA,CAAU,KAAA,CAAM,OAAO,CAAA,EAAG,UAAA,CAAU,GAAA,CAAI,IAAI,CAAC,CAAA;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAc,GAAA,CAAI,IAAA,mBAA+B,IAAI,MAAK,EAAS;AAClE,IAAA,IAAA,GAAO,UAAA,CAAU,YAAY,IAAI,CAAA;AACjC,IAAA,OAAO,IAAI,KAAK,IAAA,CAAK,OAAA,KAAY,IAAA,CAAK,iBAAA,KAAsB,GAAK,CAAA;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAe,OAAA,CAAQ,QAAA,EAAoC,IAAA,EAAsC;AAChG,IAAA,IAAI,MAAA,GAAS,EAAA;AACb,IAAA,MAAM,UAAA,GAAa,UAAA,CAAU,WAAA,CAAY,IAAI,CAAA;AAC7C,IAAA,KAAA,MAAW,EAAE,OAAA,EAAS,IAAA,EAAK,IAAK,QAAA,EAAU,MAAA,IAAU,OAAA,IAAW,cAAA,CAAe,GAAA,CAAI,IAAI,CAAA,CAAG,UAAU,CAAA;AACnG,IAAA,OAAO,MAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAe,MAAM,OAAA,EAA2C;AAC/D,IAAA,MAAM,WAAqC,EAAC;AAC5C,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACxC,MAAA,IAAI,OAAA,GAAU,EAAA;AACd,MAAA,MAAM,WAAA,GAAc,QAAQ,CAAC,CAAA;AAC7B,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,GAAA,CAAI,WAAW,CAAA;AACvC,MAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AACjC,QAAA,OAAA,IAAW,WAAA;AACX,QAAA,OAAO,OAAA,CAAQ,CAAA,GAAI,CAAC,CAAA,KAAM,WAAA,IAAe,OAAA,CAAQ,MAAA,GAAS,QAAA,EAAU,OAAA,IAAW,OAAA,CAAQ,EAAE,CAAC,CAAA;AAC1F,QAAA,QAAA,CAAS,KAAK,EAAE,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,MAAM,CAAA;AAAA,MAC/C,CAAA,MAAA,IAAW,gBAAgB,GAAA,EAAK;AAC/B,QAAA,OAAO,CAAA,GAAI,CAAA,GAAI,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,CAAA,GAAI,CAAC,CAAA,KAAM,GAAA,EAAK,OAAA,IAAW,OAAA,CAAQ,EAAE,CAAC,CAAA;AAC/E,QAAA,CAAA,EAAA;AACA,QAAA,QAAA,CAAS,KAAK,EAAE,IAAA,EAAM,WAAW,OAAA,EAAS,OAAA,IAAW,KAAK,CAAA;AAAA,MAC3D,CAAA,MAAO;AACN,QAAA,OAAA,IAAW,WAAA;AACX,QAAA,OAAO,CAAA,GAAI,IAAI,OAAA,CAAQ,MAAA,IAAU,CAAC,MAAA,CAAO,GAAA,CAAI,QAAQ,CAAA,GAAI,CAAC,CAAC,CAAA,IAAK,OAAA,CAAQ,IAAI,CAAC,CAAA,KAAM,KAAK,OAAA,IAAW,OAAA,CAAQ,EAAE,CAAC,CAAA;AAC9G,QAAA,QAAA,CAAS,KAAK,EAAE,IAAA,EAAM,SAAA,EAAW,OAAA,EAAS,SAAS,CAAA;AAAA,MACpD;AAAA,IACD;AAEA,IAAA,OAAO,QAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAe,YAAY,IAAA,EAA4B;AACtD,IAAA,OAAO,IAAA,YAAgB,IAAA,GAAO,IAAA,GAAO,IAAI,KAAK,IAAI,CAAA;AAAA,EACnD;AACD,CAAA;AA3IuB,MAAA,CAAA,UAAA,EAAA,WAAA,CAAA;AAAhB,IAAM,SAAA,GAAN","file":"index.cjs","sourcesContent":["export enum Time {\n\tNanosecond = 1 / 1_000_000,\n\tMicrosecond = 1 / 1000,\n\tMillisecond = 1,\n\tSecond = 1000,\n\tMinute = Second * 60,\n\tHour = Minute * 60,\n\tDay = Hour * 24,\n\tWeek = Day * 7,\n\tMonth = Day * (365 / 12),\n\tYear = Day * 365\n}\n\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\nexport const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\nexport const tokens = new Map<string, number>([\n\t['Y', 4],\n\t['Q', 1],\n\t['M', 4],\n\t['D', 4],\n\t['d', 4],\n\t['X', 1],\n\t['x', 1],\n\t['H', 2],\n\t['h', 2],\n\t['a', 1],\n\t['A', 1],\n\t['m', 2],\n\t['s', 2],\n\t['S', 3],\n\t['Z', 2],\n\t['l', 4],\n\t['L', 4],\n\t['T', 1],\n\t['t', 1]\n]);\n","import { days, months, Time, tokens } from './constants';\n\ninterface TokenResolver {\n\t(time: Date): string;\n}\n\nconst tokenResolvers = new Map<string, TokenResolver>([\n\t// Dates\n\t['Y', (time) => String(time.getFullYear()).slice(2)],\n\t['YY', (time) => String(time.getFullYear()).slice(2)],\n\t['YYY', (time) => String(time.getFullYear())],\n\t['YYYY', (time) => String(time.getFullYear())],\n\t['Q', (time) => String((time.getMonth() + 1) / 3)],\n\t['M', (time) => String(time.getMonth() + 1)],\n\t['MM', (time) => String(time.getMonth() + 1).padStart(2, '0')],\n\t['MMM', (time) => months[time.getMonth()]],\n\t['MMMM', (time) => months[time.getMonth()]],\n\t['D', (time) => String(time.getDate())],\n\t['DD', (time) => String(time.getDate()).padStart(2, '0')],\n\t['DDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t['DDDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t[\n\t\t'd',\n\t\t(time) => {\n\t\t\tconst day = String(time.getDate());\n\t\t\tif (day !== '11' && day.endsWith('1')) return `${day}st`;\n\t\t\tif (day !== '12' && day.endsWith('2')) return `${day}nd`;\n\t\t\tif (day !== '13' && day.endsWith('3')) return `${day}rd`;\n\t\t\treturn `${day}th`;\n\t\t}\n\t],\n\t['dd', (time) => days[time.getDay()].slice(0, 2)],\n\t['ddd', (time) => days[time.getDay()].slice(0, 3)],\n\t['dddd', (time) => days[time.getDay()]],\n\t['X', (time) => String(time.valueOf() / Time.Second)],\n\t['x', (time) => String(time.valueOf())],\n\n\t// Locales\n\t['H', (time) => String(time.getHours())],\n\t['HH', (time) => String(time.getHours()).padStart(2, '0')],\n\t['h', (time) => String(time.getHours() % 12 || 12)],\n\t['hh', (time) => String(time.getHours() % 12 || 12).padStart(2, '0')],\n\t['a', (time) => (time.getHours() < 12 ? 'am' : 'pm')],\n\t['A', (time) => (time.getHours() < 12 ? 'AM' : 'PM')],\n\t['m', (time) => String(time.getMinutes())],\n\t['mm', (time) => String(time.getMinutes()).padStart(2, '0')],\n\t['s', (time) => String(time.getSeconds())],\n\t['ss', (time) => String(time.getSeconds()).padStart(2, '0')],\n\t['S', (time) => String(time.getMilliseconds())],\n\t['SS', (time) => String(time.getMilliseconds()).padStart(2, '0')],\n\t['SSS', (time) => String(time.getMilliseconds()).padStart(3, '0')],\n\t['T', (time) => `${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`],\n\t[\n\t\t't',\n\t\t(time) =>\n\t\t\t`${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')}:${String(time.getSeconds()).padStart(2, '0')} ${\n\t\t\t\ttime.getHours() < 12 ? 'am' : 'pm'\n\t\t\t}`\n\t],\n\t['L', (time) => `${String(time.getMonth() + 1).padStart(2, '0')}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['l', (time) => `${String(time.getMonth() + 1)}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['LL', (time) => `${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t['ll', (time) => `${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t[\n\t\t'LLL',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'lll',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'LLLL',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()]}, ${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'llll',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()].slice(0, 3)} ${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(\n\t\t\t\ttime.getFullYear()\n\t\t\t)} ${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'Z',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t],\n\t[\n\t\t'ZZ',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t]\n]);\n/* eslint-enable max-len */\n\nexport type TimeResolvable = Date | number | string;\n\nexport interface TimestampTemplateEntry {\n\ttype: string;\n\tcontent: string | null;\n}\n\n/**\n * Timestamp class, parses the pattern once, displays the desired Date or UNIX timestamp with the selected pattern.\n */\nexport class Timestamp {\n\t/**\n\t * The raw pattern\n\t * @since 1.0.0\n\t */\n\tpublic pattern: string;\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tprivate template: TimestampTemplateEntry[];\n\n\t/**\n\t * Starts a new Timestamp and parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tpublic constructor(pattern: string) {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display\n\t */\n\tpublic display(time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(this.template, time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display in utc\n\t */\n\tpublic displayUTC(time?: TimeResolvable): string {\n\t\treturn Timestamp.display(this.template, Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Edits the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The new pattern for this instance\n\t * @chainable\n\t */\n\tpublic edit(pattern: string): this {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Defines the toString behavior of Timestamp.\n\t */\n\tpublic toString(): string {\n\t\treturn this.display();\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayUTCArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Creates a UTC Date object to work with.\n\t * @since 1.0.0\n\t * @param time The date to convert to utc\n\t */\n\tpublic static utc(time: Date | number | string = new Date()): Date {\n\t\ttime = Timestamp.resolveDate(time);\n\t\treturn new Date(time.valueOf() + time.getTimezoneOffset() * 60000);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param template The pattern to parse\n\t * @param time The time to display\n\t */\n\tprivate static display(template: TimestampTemplateEntry[], time: Date | number | string): string {\n\t\tlet output = '';\n\t\tconst parsedTime = Timestamp.resolveDate(time);\n\t\tfor (const { content, type } of template) output += content || tokenResolvers.get(type)!(parsedTime);\n\t\treturn output;\n\t}\n\n\t/**\n\t * Parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tprivate static parse(pattern: string): TimestampTemplateEntry[] {\n\t\tconst template: TimestampTemplateEntry[] = [];\n\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\tlet current = '';\n\t\t\tconst currentChar = pattern[i];\n\t\t\tconst tokenMax = tokens.get(currentChar);\n\t\t\tif (typeof tokenMax === 'number') {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (pattern[i + 1] === currentChar && current.length < tokenMax) current += pattern[++i];\n\t\t\t\ttemplate.push({ type: current, content: null });\n\t\t\t} else if (currentChar === '[') {\n\t\t\t\twhile (i + 1 < pattern.length && pattern[i + 1] !== ']') current += pattern[++i];\n\t\t\t\ti++;\n\t\t\t\ttemplate.push({ type: 'literal', content: current || '[' });\n\t\t\t} else {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (i + 1 < pattern.length && !tokens.has(pattern[i + 1]) && pattern[i + 1] !== '[') current += pattern[++i];\n\t\t\t\ttemplate.push({ type: 'literal', content: current });\n\t\t\t}\n\t\t}\n\n\t\treturn template;\n\t}\n\n\t/**\n\t * Resolves a date.\n\t * @since 1.0.0\n\t * @param time The time to parse\n\t */\n\tprivate static resolveDate(time: TimeResolvable): Date {\n\t\treturn time instanceof Date ? time : new Date(time);\n\t}\n}\n"]}
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/constants.ts","../../src/lib/Timestamp.ts"],"names":["Time"],"mappings":"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","file":"index.mjs","sourcesContent":["export enum Time {\n\tNanosecond = 1 / 1_000_000,\n\tMicrosecond = 1 / 1000,\n\tMillisecond = 1,\n\tSecond = 1000,\n\tMinute = Second * 60,\n\tHour = Minute * 60,\n\tDay = Hour * 24,\n\tWeek = Day * 7,\n\tMonth = Day * (365 / 12),\n\tYear = Day * 365\n}\n\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\nexport const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\nexport const tokens = new Map<string, number>([\n\t['Y', 4],\n\t['Q', 1],\n\t['M', 4],\n\t['D', 4],\n\t['d', 4],\n\t['X', 1],\n\t['x', 1],\n\t['H', 2],\n\t['h', 2],\n\t['a', 1],\n\t['A', 1],\n\t['m', 2],\n\t['s', 2],\n\t['S', 3],\n\t['Z', 2],\n\t['l', 4],\n\t['L', 4],\n\t['T', 1],\n\t['t', 1]\n]);\n","import { days, months, Time, tokens } from './constants';\n\ninterface TokenResolver {\n\t(time: Date): string;\n}\n\nconst tokenResolvers = new Map<string, TokenResolver>([\n\t// Dates\n\t['Y', (time) => String(time.getFullYear()).slice(2)],\n\t['YY', (time) => String(time.getFullYear()).slice(2)],\n\t['YYY', (time) => String(time.getFullYear())],\n\t['YYYY', (time) => String(time.getFullYear())],\n\t['Q', (time) => String((time.getMonth() + 1) / 3)],\n\t['M', (time) => String(time.getMonth() + 1)],\n\t['MM', (time) => String(time.getMonth() + 1).padStart(2, '0')],\n\t['MMM', (time) => months[time.getMonth()]],\n\t['MMMM', (time) => months[time.getMonth()]],\n\t['D', (time) => String(time.getDate())],\n\t['DD', (time) => String(time.getDate()).padStart(2, '0')],\n\t['DDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t['DDDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t[\n\t\t'd',\n\t\t(time) => {\n\t\t\tconst day = String(time.getDate());\n\t\t\tif (day !== '11' && day.endsWith('1')) return `${day}st`;\n\t\t\tif (day !== '12' && day.endsWith('2')) return `${day}nd`;\n\t\t\tif (day !== '13' && day.endsWith('3')) return `${day}rd`;\n\t\t\treturn `${day}th`;\n\t\t}\n\t],\n\t['dd', (time) => days[time.getDay()].slice(0, 2)],\n\t['ddd', (time) => days[time.getDay()].slice(0, 3)],\n\t['dddd', (time) => days[time.getDay()]],\n\t['X', (time) => String(time.valueOf() / Time.Second)],\n\t['x', (time) => String(time.valueOf())],\n\n\t// Locales\n\t['H', (time) => String(time.getHours())],\n\t['HH', (time) => String(time.getHours()).padStart(2, '0')],\n\t['h', (time) => String(time.getHours() % 12 || 12)],\n\t['hh', (time) => String(time.getHours() % 12 || 12).padStart(2, '0')],\n\t['a', (time) => (time.getHours() < 12 ? 'am' : 'pm')],\n\t['A', (time) => (time.getHours() < 12 ? 'AM' : 'PM')],\n\t['m', (time) => String(time.getMinutes())],\n\t['mm', (time) => String(time.getMinutes()).padStart(2, '0')],\n\t['s', (time) => String(time.getSeconds())],\n\t['ss', (time) => String(time.getSeconds()).padStart(2, '0')],\n\t['S', (time) => String(time.getMilliseconds())],\n\t['SS', (time) => String(time.getMilliseconds()).padStart(2, '0')],\n\t['SSS', (time) => String(time.getMilliseconds()).padStart(3, '0')],\n\t['T', (time) => `${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`],\n\t[\n\t\t't',\n\t\t(time) =>\n\t\t\t`${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')}:${String(time.getSeconds()).padStart(2, '0')} ${\n\t\t\t\ttime.getHours() < 12 ? 'am' : 'pm'\n\t\t\t}`\n\t],\n\t['L', (time) => `${String(time.getMonth() + 1).padStart(2, '0')}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['l', (time) => `${String(time.getMonth() + 1)}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['LL', (time) => `${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t['ll', (time) => `${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t[\n\t\t'LLL',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'lll',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'LLLL',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()]}, ${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'llll',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()].slice(0, 3)} ${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(\n\t\t\t\ttime.getFullYear()\n\t\t\t)} ${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'Z',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t],\n\t[\n\t\t'ZZ',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t]\n]);\n/* eslint-enable max-len */\n\nexport type TimeResolvable = Date | number | string;\n\nexport interface TimestampTemplateEntry {\n\ttype: string;\n\tcontent: string | null;\n}\n\n/**\n * Timestamp class, parses the pattern once, displays the desired Date or UNIX timestamp with the selected pattern.\n */\nexport class Timestamp {\n\t/**\n\t * The raw pattern\n\t * @since 1.0.0\n\t */\n\tpublic pattern: string;\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tprivate template: TimestampTemplateEntry[];\n\n\t/**\n\t * Starts a new Timestamp and parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tpublic constructor(pattern: string) {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display\n\t */\n\tpublic display(time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(this.template, time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display in utc\n\t */\n\tpublic displayUTC(time?: TimeResolvable): string {\n\t\treturn Timestamp.display(this.template, Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Edits the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The new pattern for this instance\n\t * @chainable\n\t */\n\tpublic edit(pattern: string): this {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Defines the toString behavior of Timestamp.\n\t */\n\tpublic toString(): string {\n\t\treturn this.display();\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayUTCArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Creates a UTC Date object to work with.\n\t * @since 1.0.0\n\t * @param time The date to convert to utc\n\t */\n\tpublic static utc(time: Date | number | string = new Date()): Date {\n\t\ttime = Timestamp.resolveDate(time);\n\t\treturn new Date(time.valueOf() + time.getTimezoneOffset() * 60000);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param template The pattern to parse\n\t * @param time The time to display\n\t */\n\tprivate static display(template: TimestampTemplateEntry[], time: Date | number | string): string {\n\t\tlet output = '';\n\t\tconst parsedTime = Timestamp.resolveDate(time);\n\t\tfor (const { content, type } of template) output += content || tokenResolvers.get(type)!(parsedTime);\n\t\treturn output;\n\t}\n\n\t/**\n\t * Parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tprivate static parse(pattern: string): TimestampTemplateEntry[] {\n\t\tconst template: TimestampTemplateEntry[] = [];\n\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\tlet current = '';\n\t\t\tconst currentChar = pattern[i];\n\t\t\tconst tokenMax = tokens.get(currentChar);\n\t\t\tif (typeof tokenMax === 'number') {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (pattern[i + 1] === currentChar && current.length < tokenMax) current += pattern[++i];\n\t\t\t\ttemplate.push({ type: current, content: null });\n\t\t\t} else if (currentChar === '[') {\n\t\t\t\twhile (i + 1 < pattern.length && pattern[i + 1] !== ']') current += pattern[++i];\n\t\t\t\ti++;\n\t\t\t\ttemplate.push({ type: 'literal', content: current || '[' });\n\t\t\t} else {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (i + 1 < pattern.length && !tokens.has(pattern[i + 1]) && pattern[i + 1] !== '[') current += pattern[++i];\n\t\t\t\ttemplate.push({ type: 'literal', content: current });\n\t\t\t}\n\t\t}\n\n\t\treturn template;\n\t}\n\n\t/**\n\t * Resolves a date.\n\t * @since 1.0.0\n\t * @param time The time to parse\n\t */\n\tprivate static resolveDate(time: TimeResolvable): Date {\n\t\treturn time instanceof Date ? time : new Date(time);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/constants.ts","../../src/lib/Timestamp.ts"],"names":["Time"],"mappings":"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","file":"index.mjs","sourcesContent":["export enum Time {\n\tNanosecond = 1 / 1_000_000,\n\tMicrosecond = 1 / 1000,\n\tMillisecond = 1,\n\tSecond = 1000,\n\tMinute = Second * 60,\n\tHour = Minute * 60,\n\tDay = Hour * 24,\n\tWeek = Day * 7,\n\tMonth = Day * (365 / 12),\n\tYear = Day * 365\n}\n\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\nexport const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\nexport const tokens = new Map<string, number>([\n\t['Y', 4],\n\t['Q', 1],\n\t['M', 4],\n\t['D', 4],\n\t['d', 4],\n\t['X', 1],\n\t['x', 1],\n\t['H', 2],\n\t['h', 2],\n\t['a', 1],\n\t['A', 1],\n\t['m', 2],\n\t['s', 2],\n\t['S', 3],\n\t['Z', 2],\n\t['l', 4],\n\t['L', 4],\n\t['T', 1],\n\t['t', 1]\n]);\n","import { days, months, Time, tokens } from './constants';\n\ninterface TokenResolver {\n\t(time: Date): string;\n}\n\nconst tokenResolvers = new Map<string, TokenResolver>([\n\t// Dates\n\t['Y', (time) => String(time.getFullYear()).slice(2)],\n\t['YY', (time) => String(time.getFullYear()).slice(2)],\n\t['YYY', (time) => String(time.getFullYear())],\n\t['YYYY', (time) => String(time.getFullYear())],\n\t['Q', (time) => String((time.getMonth() + 1) / 3)],\n\t['M', (time) => String(time.getMonth() + 1)],\n\t['MM', (time) => String(time.getMonth() + 1).padStart(2, '0')],\n\t['MMM', (time) => months[time.getMonth()]],\n\t['MMMM', (time) => months[time.getMonth()]],\n\t['D', (time) => String(time.getDate())],\n\t['DD', (time) => String(time.getDate()).padStart(2, '0')],\n\t['DDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t['DDDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t[\n\t\t'd',\n\t\t(time) => {\n\t\t\tconst day = String(time.getDate());\n\t\t\tif (day !== '11' && day.endsWith('1')) return `${day}st`;\n\t\t\tif (day !== '12' && day.endsWith('2')) return `${day}nd`;\n\t\t\tif (day !== '13' && day.endsWith('3')) return `${day}rd`;\n\t\t\treturn `${day}th`;\n\t\t}\n\t],\n\t['dd', (time) => days[time.getDay()].slice(0, 2)],\n\t['ddd', (time) => days[time.getDay()].slice(0, 3)],\n\t['dddd', (time) => days[time.getDay()]],\n\t['X', (time) => String(time.valueOf() / Time.Second)],\n\t['x', (time) => String(time.valueOf())],\n\n\t// Locales\n\t['H', (time) => String(time.getHours())],\n\t['HH', (time) => String(time.getHours()).padStart(2, '0')],\n\t['h', (time) => String(time.getHours() % 12 || 12)],\n\t['hh', (time) => String(time.getHours() % 12 || 12).padStart(2, '0')],\n\t['a', (time) => (time.getHours() < 12 ? 'am' : 'pm')],\n\t['A', (time) => (time.getHours() < 12 ? 'AM' : 'PM')],\n\t['m', (time) => String(time.getMinutes())],\n\t['mm', (time) => String(time.getMinutes()).padStart(2, '0')],\n\t['s', (time) => String(time.getSeconds())],\n\t['ss', (time) => String(time.getSeconds()).padStart(2, '0')],\n\t['S', (time) => String(time.getMilliseconds())],\n\t['SS', (time) => String(time.getMilliseconds()).padStart(2, '0')],\n\t['SSS', (time) => String(time.getMilliseconds()).padStart(3, '0')],\n\t['T', (time) => `${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`],\n\t[\n\t\t't',\n\t\t(time) =>\n\t\t\t`${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')}:${String(time.getSeconds()).padStart(2, '0')} ${\n\t\t\t\ttime.getHours() < 12 ? 'am' : 'pm'\n\t\t\t}`\n\t],\n\t['L', (time) => `${String(time.getMonth() + 1).padStart(2, '0')}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['l', (time) => `${String(time.getMonth() + 1)}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['LL', (time) => `${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t['ll', (time) => `${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t[\n\t\t'LLL',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'lll',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'LLLL',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()]}, ${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'llll',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()].slice(0, 3)} ${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(\n\t\t\t\ttime.getFullYear()\n\t\t\t)} ${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'Z',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t],\n\t[\n\t\t'ZZ',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t]\n]);\n/* eslint-enable max-len */\n\nexport type TimeResolvable = Date | number | string;\n\nexport interface TimestampTemplateEntry {\n\ttype: string;\n\tcontent: string | null;\n}\n\n/**\n * Timestamp class, parses the pattern once, displays the desired Date or UNIX timestamp with the selected pattern.\n */\nexport class Timestamp {\n\t/**\n\t * The raw pattern\n\t * @since 1.0.0\n\t */\n\tpublic pattern: string;\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tprivate template: TimestampTemplateEntry[];\n\n\t/**\n\t * Starts a new Timestamp and parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tpublic constructor(pattern: string) {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display\n\t */\n\tpublic display(time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(this.template, time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display in utc\n\t */\n\tpublic displayUTC(time?: TimeResolvable): string {\n\t\treturn Timestamp.display(this.template, Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Edits the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The new pattern for this instance\n\t * @chainable\n\t */\n\tpublic edit(pattern: string): this {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Defines the toString behavior of Timestamp.\n\t */\n\tpublic toString(): string {\n\t\treturn this.display();\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayUTCArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Creates a UTC Date object to work with.\n\t * @since 1.0.0\n\t * @param time The date to convert to utc\n\t */\n\tpublic static utc(time: Date | number | string = new Date()): Date {\n\t\ttime = Timestamp.resolveDate(time);\n\t\treturn new Date(time.valueOf() + time.getTimezoneOffset() * 60000);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param template The pattern to parse\n\t * @param time The time to display\n\t */\n\tprivate static display(template: TimestampTemplateEntry[], time: Date | number | string): string {\n\t\tlet output = '';\n\t\tconst parsedTime = Timestamp.resolveDate(time);\n\t\tfor (const { content, type } of template) output += content || tokenResolvers.get(type)!(parsedTime);\n\t\treturn output;\n\t}\n\n\t/**\n\t * Parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tprivate static parse(pattern: string): TimestampTemplateEntry[] {\n\t\tconst template: TimestampTemplateEntry[] = [];\n\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\tlet current = '';\n\t\t\tconst currentChar = pattern[i];\n\t\t\tconst tokenMax = tokens.get(currentChar);\n\t\t\tif (typeof tokenMax === 'number') {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (pattern[i + 1] === currentChar && current.length < tokenMax) current += pattern[++i];\n\t\t\t\ttemplate.push({ type: current, content: null });\n\t\t\t} else if (currentChar === '[') {\n\t\t\t\twhile (i + 1 < pattern.length && pattern[i + 1] !== ']') current += pattern[++i];\n\t\t\t\ti++;\n\t\t\t\ttemplate.push({ type: 'literal', content: current || '[' });\n\t\t\t} else {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (i + 1 < pattern.length && !tokens.has(pattern[i + 1]) && pattern[i + 1] !== '[') current += pattern[++i];\n\t\t\t\ttemplate.push({ type: 'literal', content: current });\n\t\t\t}\n\t\t}\n\n\t\treturn template;\n\t}\n\n\t/**\n\t * Resolves a date.\n\t * @since 1.0.0\n\t * @param time The time to parse\n\t */\n\tprivate static resolveDate(time: TimeResolvable): Date {\n\t\treturn time instanceof Date ? time : new Date(time);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/constants.ts","../../src/lib/Timestamp.ts"],"names":["Time"],"mappings":"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","file":"index.global.js","sourcesContent":["export enum Time {\n\tNanosecond = 1 / 1_000_000,\n\tMicrosecond = 1 / 1000,\n\tMillisecond = 1,\n\tSecond = 1000,\n\tMinute = Second * 60,\n\tHour = Minute * 60,\n\tDay = Hour * 24,\n\tWeek = Day * 7,\n\tMonth = Day * (365 / 12),\n\tYear = Day * 365\n}\n\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\nexport const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\nexport const tokens = new Map<string, number>([\n\t['Y', 4],\n\t['Q', 1],\n\t['M', 4],\n\t['D', 4],\n\t['d', 4],\n\t['X', 1],\n\t['x', 1],\n\t['H', 2],\n\t['h', 2],\n\t['a', 1],\n\t['A', 1],\n\t['m', 2],\n\t['s', 2],\n\t['S', 3],\n\t['Z', 2],\n\t['l', 4],\n\t['L', 4],\n\t['T', 1],\n\t['t', 1]\n]);\n","import { days, months, Time, tokens } from './constants';\n\ninterface TokenResolver {\n\t(time: Date): string;\n}\n\nconst tokenResolvers = new Map<string, TokenResolver>([\n\t// Dates\n\t['Y', (time) => String(time.getFullYear()).slice(2)],\n\t['YY', (time) => String(time.getFullYear()).slice(2)],\n\t['YYY', (time) => String(time.getFullYear())],\n\t['YYYY', (time) => String(time.getFullYear())],\n\t['Q', (time) => String((time.getMonth() + 1) / 3)],\n\t['M', (time) => String(time.getMonth() + 1)],\n\t['MM', (time) => String(time.getMonth() + 1).padStart(2, '0')],\n\t['MMM', (time) => months[time.getMonth()]],\n\t['MMMM', (time) => months[time.getMonth()]],\n\t['D', (time) => String(time.getDate())],\n\t['DD', (time) => String(time.getDate()).padStart(2, '0')],\n\t['DDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t['DDDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t[\n\t\t'd',\n\t\t(time) => {\n\t\t\tconst day = String(time.getDate());\n\t\t\tif (day !== '11' && day.endsWith('1')) return `${day}st`;\n\t\t\tif (day !== '12' && day.endsWith('2')) return `${day}nd`;\n\t\t\tif (day !== '13' && day.endsWith('3')) return `${day}rd`;\n\t\t\treturn `${day}th`;\n\t\t}\n\t],\n\t['dd', (time) => days[time.getDay()].slice(0, 2)],\n\t['ddd', (time) => days[time.getDay()].slice(0, 3)],\n\t['dddd', (time) => days[time.getDay()]],\n\t['X', (time) => String(time.valueOf() / Time.Second)],\n\t['x', (time) => String(time.valueOf())],\n\n\t// Locales\n\t['H', (time) => String(time.getHours())],\n\t['HH', (time) => String(time.getHours()).padStart(2, '0')],\n\t['h', (time) => String(time.getHours() % 12 || 12)],\n\t['hh', (time) => String(time.getHours() % 12 || 12).padStart(2, '0')],\n\t['a', (time) => (time.getHours() < 12 ? 'am' : 'pm')],\n\t['A', (time) => (time.getHours() < 12 ? 'AM' : 'PM')],\n\t['m', (time) => String(time.getMinutes())],\n\t['mm', (time) => String(time.getMinutes()).padStart(2, '0')],\n\t['s', (time) => String(time.getSeconds())],\n\t['ss', (time) => String(time.getSeconds()).padStart(2, '0')],\n\t['S', (time) => String(time.getMilliseconds())],\n\t['SS', (time) => String(time.getMilliseconds()).padStart(2, '0')],\n\t['SSS', (time) => String(time.getMilliseconds()).padStart(3, '0')],\n\t['T', (time) => `${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`],\n\t[\n\t\t't',\n\t\t(time) =>\n\t\t\t`${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')}:${String(time.getSeconds()).padStart(2, '0')} ${\n\t\t\t\ttime.getHours() < 12 ? 'am' : 'pm'\n\t\t\t}`\n\t],\n\t['L', (time) => `${String(time.getMonth() + 1).padStart(2, '0')}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['l', (time) => `${String(time.getMonth() + 1)}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['LL', (time) => `${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t['ll', (time) => `${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t[\n\t\t'LLL',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'lll',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'LLLL',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()]}, ${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'llll',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()].slice(0, 3)} ${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(\n\t\t\t\ttime.getFullYear()\n\t\t\t)} ${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'Z',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t],\n\t[\n\t\t'ZZ',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t]\n]);\n/* eslint-enable max-len */\n\nexport type TimeResolvable = Date | number | string;\n\nexport interface TimestampTemplateEntry {\n\ttype: string;\n\tcontent: string | null;\n}\n\n/**\n * Timestamp class, parses the pattern once, displays the desired Date or UNIX timestamp with the selected pattern.\n */\nexport class Timestamp {\n\t/**\n\t * The raw pattern\n\t * @since 1.0.0\n\t */\n\tpublic pattern: string;\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tprivate template: TimestampTemplateEntry[];\n\n\t/**\n\t * Starts a new Timestamp and parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tpublic constructor(pattern: string) {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display\n\t */\n\tpublic display(time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(this.template, time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display in utc\n\t */\n\tpublic displayUTC(time?: TimeResolvable): string {\n\t\treturn Timestamp.display(this.template, Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Edits the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The new pattern for this instance\n\t * @chainable\n\t */\n\tpublic edit(pattern: string): this {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Defines the toString behavior of Timestamp.\n\t */\n\tpublic toString(): string {\n\t\treturn this.display();\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayUTCArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Creates a UTC Date object to work with.\n\t * @since 1.0.0\n\t * @param time The date to convert to utc\n\t */\n\tpublic static utc(time: Date | number | string = new Date()): Date {\n\t\ttime = Timestamp.resolveDate(time);\n\t\treturn new Date(time.valueOf() + time.getTimezoneOffset() * 60000);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param template The pattern to parse\n\t * @param time The time to display\n\t */\n\tprivate static display(template: TimestampTemplateEntry[], time: Date | number | string): string {\n\t\tlet output = '';\n\t\tconst parsedTime = Timestamp.resolveDate(time);\n\t\tfor (const { content, type } of template) output += content || tokenResolvers.get(type)!(parsedTime);\n\t\treturn output;\n\t}\n\n\t/**\n\t * Parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tprivate static parse(pattern: string): TimestampTemplateEntry[] {\n\t\tconst template: TimestampTemplateEntry[] = [];\n\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\tlet current = '';\n\t\t\tconst currentChar = pattern[i];\n\t\t\tconst tokenMax = tokens.get(currentChar);\n\t\t\tif (typeof tokenMax === 'number') {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (pattern[i + 1] === currentChar && current.length < tokenMax) current += pattern[++i];\n\t\t\t\ttemplate.push({ type: current, content: null });\n\t\t\t} else if (currentChar === '[') {\n\t\t\t\twhile (i + 1 < pattern.length && pattern[i + 1] !== ']') current += pattern[++i];\n\t\t\t\ti++;\n\t\t\t\ttemplate.push({ type: 'literal', content: current || '[' });\n\t\t\t} else {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (i + 1 < pattern.length && !tokens.has(pattern[i + 1]) && pattern[i + 1] !== '[') current += pattern[++i];\n\t\t\t\ttemplate.push({ type: 'literal', content: current });\n\t\t\t}\n\t\t}\n\n\t\treturn template;\n\t}\n\n\t/**\n\t * Resolves a date.\n\t * @since 1.0.0\n\t * @param time The time to parse\n\t */\n\tprivate static resolveDate(time: TimeResolvable): Date {\n\t\treturn time instanceof Date ? time : new Date(time);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/constants.ts","../../src/lib/Timestamp.ts"],"names":["Time"],"mappings":"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","file":"index.global.js","sourcesContent":["export enum Time {\n\tNanosecond = 1 / 1_000_000,\n\tMicrosecond = 1 / 1000,\n\tMillisecond = 1,\n\tSecond = 1000,\n\tMinute = Second * 60,\n\tHour = Minute * 60,\n\tDay = Hour * 24,\n\tWeek = Day * 7,\n\tMonth = Day * (365 / 12),\n\tYear = Day * 365\n}\n\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\nexport const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\nexport const tokens = new Map<string, number>([\n\t['Y', 4],\n\t['Q', 1],\n\t['M', 4],\n\t['D', 4],\n\t['d', 4],\n\t['X', 1],\n\t['x', 1],\n\t['H', 2],\n\t['h', 2],\n\t['a', 1],\n\t['A', 1],\n\t['m', 2],\n\t['s', 2],\n\t['S', 3],\n\t['Z', 2],\n\t['l', 4],\n\t['L', 4],\n\t['T', 1],\n\t['t', 1]\n]);\n","import { days, months, Time, tokens } from './constants';\n\ninterface TokenResolver {\n\t(time: Date): string;\n}\n\nconst tokenResolvers = new Map<string, TokenResolver>([\n\t// Dates\n\t['Y', (time) => String(time.getFullYear()).slice(2)],\n\t['YY', (time) => String(time.getFullYear()).slice(2)],\n\t['YYY', (time) => String(time.getFullYear())],\n\t['YYYY', (time) => String(time.getFullYear())],\n\t['Q', (time) => String((time.getMonth() + 1) / 3)],\n\t['M', (time) => String(time.getMonth() + 1)],\n\t['MM', (time) => String(time.getMonth() + 1).padStart(2, '0')],\n\t['MMM', (time) => months[time.getMonth()]],\n\t['MMMM', (time) => months[time.getMonth()]],\n\t['D', (time) => String(time.getDate())],\n\t['DD', (time) => String(time.getDate()).padStart(2, '0')],\n\t['DDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t['DDDD', (time) => String(Math.floor((time.getTime() - new Date(time.getFullYear(), 0, 0).getTime()) / Time.Day))],\n\t[\n\t\t'd',\n\t\t(time) => {\n\t\t\tconst day = String(time.getDate());\n\t\t\tif (day !== '11' && day.endsWith('1')) return `${day}st`;\n\t\t\tif (day !== '12' && day.endsWith('2')) return `${day}nd`;\n\t\t\tif (day !== '13' && day.endsWith('3')) return `${day}rd`;\n\t\t\treturn `${day}th`;\n\t\t}\n\t],\n\t['dd', (time) => days[time.getDay()].slice(0, 2)],\n\t['ddd', (time) => days[time.getDay()].slice(0, 3)],\n\t['dddd', (time) => days[time.getDay()]],\n\t['X', (time) => String(time.valueOf() / Time.Second)],\n\t['x', (time) => String(time.valueOf())],\n\n\t// Locales\n\t['H', (time) => String(time.getHours())],\n\t['HH', (time) => String(time.getHours()).padStart(2, '0')],\n\t['h', (time) => String(time.getHours() % 12 || 12)],\n\t['hh', (time) => String(time.getHours() % 12 || 12).padStart(2, '0')],\n\t['a', (time) => (time.getHours() < 12 ? 'am' : 'pm')],\n\t['A', (time) => (time.getHours() < 12 ? 'AM' : 'PM')],\n\t['m', (time) => String(time.getMinutes())],\n\t['mm', (time) => String(time.getMinutes()).padStart(2, '0')],\n\t['s', (time) => String(time.getSeconds())],\n\t['ss', (time) => String(time.getSeconds()).padStart(2, '0')],\n\t['S', (time) => String(time.getMilliseconds())],\n\t['SS', (time) => String(time.getMilliseconds()).padStart(2, '0')],\n\t['SSS', (time) => String(time.getMilliseconds()).padStart(3, '0')],\n\t['T', (time) => `${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`],\n\t[\n\t\t't',\n\t\t(time) =>\n\t\t\t`${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')}:${String(time.getSeconds()).padStart(2, '0')} ${\n\t\t\t\ttime.getHours() < 12 ? 'am' : 'pm'\n\t\t\t}`\n\t],\n\t['L', (time) => `${String(time.getMonth() + 1).padStart(2, '0')}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['l', (time) => `${String(time.getMonth() + 1)}/${String(time.getDate()).padStart(2, '0')}/${String(time.getFullYear())}`],\n\t['LL', (time) => `${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t['ll', (time) => `${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())}`],\n\t[\n\t\t'LLL',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'lll',\n\t\t(time) =>\n\t\t\t`${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'LLLL',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()]}, ${months[time.getMonth()]} ${String(time.getDate()).padStart(2, '0')}, ${String(time.getFullYear())} ${String(\n\t\t\t\ttime.getHours() % 12 || 12\n\t\t\t)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'llll',\n\t\t(time) =>\n\t\t\t`${days[time.getDay()].slice(0, 3)} ${months[time.getMonth()].slice(0, 3)} ${String(time.getDate()).padStart(2, '0')}, ${String(\n\t\t\t\ttime.getFullYear()\n\t\t\t)} ${String(time.getHours() % 12 || 12)}:${String(time.getMinutes()).padStart(2, '0')} ${time.getHours() < 12 ? 'AM' : 'PM'}`\n\t],\n\t[\n\t\t'Z',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t],\n\t[\n\t\t'ZZ',\n\t\t(time) => {\n\t\t\tconst offset = time.getTimezoneOffset();\n\t\t\tconst unsigned = offset >= 0;\n\t\t\tconst absolute = Math.abs(offset);\n\t\t\t/* istanbul ignore next: whether it's signed or unsigned, depends on where the machine is, I cannot control this. */\n\t\t\treturn `${unsigned ? '+' : '-'}${String(Math.floor(absolute / 60)).padStart(2, '0')}:${String(absolute % 60).padStart(2, '0')}`;\n\t\t}\n\t]\n]);\n/* eslint-enable max-len */\n\nexport type TimeResolvable = Date | number | string;\n\nexport interface TimestampTemplateEntry {\n\ttype: string;\n\tcontent: string | null;\n}\n\n/**\n * Timestamp class, parses the pattern once, displays the desired Date or UNIX timestamp with the selected pattern.\n */\nexport class Timestamp {\n\t/**\n\t * The raw pattern\n\t * @since 1.0.0\n\t */\n\tpublic pattern: string;\n\n\t/**\n\t * @since 1.0.0\n\t */\n\tprivate template: TimestampTemplateEntry[];\n\n\t/**\n\t * Starts a new Timestamp and parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tpublic constructor(pattern: string) {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display\n\t */\n\tpublic display(time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(this.template, time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param time The time to display in utc\n\t */\n\tpublic displayUTC(time?: TimeResolvable): string {\n\t\treturn Timestamp.display(this.template, Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Edits the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The new pattern for this instance\n\t * @chainable\n\t */\n\tpublic edit(pattern: string): this {\n\t\tthis.pattern = pattern;\n\t\tthis.template = Timestamp.parse(pattern);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Defines the toString behavior of Timestamp.\n\t */\n\tpublic toString(): string {\n\t\treturn this.display();\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), time);\n\t}\n\n\t/**\n\t * Display the current date utc with the current pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t * @param time The time to display\n\t */\n\tpublic static displayUTCArbitrary(pattern: string, time: TimeResolvable = new Date()): string {\n\t\treturn Timestamp.display(Timestamp.parse(pattern), Timestamp.utc(time));\n\t}\n\n\t/**\n\t * Creates a UTC Date object to work with.\n\t * @since 1.0.0\n\t * @param time The date to convert to utc\n\t */\n\tpublic static utc(time: Date | number | string = new Date()): Date {\n\t\ttime = Timestamp.resolveDate(time);\n\t\treturn new Date(time.valueOf() + time.getTimezoneOffset() * 60000);\n\t}\n\n\t/**\n\t * Display the current date with the current pattern.\n\t * @since 1.0.0\n\t * @param template The pattern to parse\n\t * @param time The time to display\n\t */\n\tprivate static display(template: TimestampTemplateEntry[], time: Date | number | string): string {\n\t\tlet output = '';\n\t\tconst parsedTime = Timestamp.resolveDate(time);\n\t\tfor (const { content, type } of template) output += content || tokenResolvers.get(type)!(parsedTime);\n\t\treturn output;\n\t}\n\n\t/**\n\t * Parses the pattern.\n\t * @since 1.0.0\n\t * @param pattern The pattern to parse\n\t */\n\tprivate static parse(pattern: string): TimestampTemplateEntry[] {\n\t\tconst template: TimestampTemplateEntry[] = [];\n\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\tlet current = '';\n\t\t\tconst currentChar = pattern[i];\n\t\t\tconst tokenMax = tokens.get(currentChar);\n\t\t\tif (typeof tokenMax === 'number') {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (pattern[i + 1] === currentChar && current.length < tokenMax) current += pattern[++i];\n\t\t\t\ttemplate.push({ type: current, content: null });\n\t\t\t} else if (currentChar === '[') {\n\t\t\t\twhile (i + 1 < pattern.length && pattern[i + 1] !== ']') current += pattern[++i];\n\t\t\t\ti++;\n\t\t\t\ttemplate.push({ type: 'literal', content: current || '[' });\n\t\t\t} else {\n\t\t\t\tcurrent += currentChar;\n\t\t\t\twhile (i + 1 < pattern.length && !tokens.has(pattern[i + 1]) && pattern[i + 1] !== '[') current += pattern[++i];\n\t\t\t\ttemplate.push({ type: 'literal', content: current });\n\t\t\t}\n\t\t}\n\n\t\treturn template;\n\t}\n\n\t/**\n\t * Resolves a date.\n\t * @since 1.0.0\n\t * @param time The time to parse\n\t */\n\tprivate static resolveDate(time: TimeResolvable): Date {\n\t\treturn time instanceof Date ? time : new Date(time);\n\t}\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapphire/timestamp",
|
|
3
|
-
"version": "1.0.6-next.
|
|
3
|
+
"version": "1.0.6-next.104fbcfe",
|
|
4
4
|
"description": "A timestamp utility library for JavaScript.",
|
|
5
5
|
"author": "@sapphire",
|
|
6
6
|
"license": "MIT",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"access": "public"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@favware/cliff-jumper": "^
|
|
67
|
-
"@vitest/coverage-v8": "^2.
|
|
68
|
-
"tsup": "^8.
|
|
69
|
-
"tsx": "^4.
|
|
66
|
+
"@favware/cliff-jumper": "^6.0.0",
|
|
67
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
68
|
+
"tsup": "^8.5.0",
|
|
69
|
+
"tsx": "^4.20.6",
|
|
70
70
|
"typedoc": "^0.26.11",
|
|
71
71
|
"typedoc-json-parser": "^10.2.0",
|
|
72
72
|
"typescript": "~5.4.5",
|
|
73
|
-
"vitest": "^2.
|
|
73
|
+
"vitest": "^3.2.4"
|
|
74
74
|
}
|
|
75
75
|
}
|