@stacksjs/datetime 0.61.24 → 0.63.0

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/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  import {useDateFormat, useNow} from "@stacksjs/utils";
4
4
 
5
5
  // ../../../../node_modules/@formkit/tempo/dist/iso8601.mjs
6
- var iso8601 = function(date) {
6
+ function iso8601(date) {
7
7
  const matches = date.match(iso8601Match);
8
8
  if (matches) {
9
9
  const month = Number(matches[2]);
@@ -22,20 +22,20 @@ var iso8601 = function(date) {
22
22
  return true;
23
23
  }
24
24
  return false;
25
- };
25
+ }
26
26
  var iso8601Match = /^([0-9]{4})-([0-1][0-9])(?:-([0-3][0-9]))?(?:[T ]?([0-2][0-9])(?::([0-5][0-9]))?(?::([0-5][0-9]))?)?(?:\.[0-9]+)?(Z|(?:\+|\-)[0-9]{2}:?[0-9]{2})?$/;
27
27
 
28
28
  // ../../../../node_modules/@formkit/tempo/dist/date.mjs
29
- var normalize = function(date2) {
29
+ function normalize(date2) {
30
30
  const matches = date2.match(iso8601Match);
31
31
  if (matches && typeof matches[4] === "undefined") {
32
32
  return date2 += "T00:00:00";
33
33
  }
34
34
  return date2;
35
- };
36
- var date = function(date2) {
35
+ }
36
+ function date(date2) {
37
37
  if (!date2) {
38
- date2 = new Date;
38
+ date2 = /* @__PURE__ */ new Date;
39
39
  }
40
40
  if (date2 instanceof Date) {
41
41
  const d = new Date(date2);
@@ -47,25 +47,25 @@ var date = function(date2) {
47
47
  return new Date(normalize(date2));
48
48
  }
49
49
  throw new Error(`Non ISO 8601 compliant date (${date2}).`);
50
- };
50
+ }
51
51
 
52
52
  // ../../../../node_modules/@formkit/tempo/dist/monthEnd.mjs
53
- var monthEnd = function(inputDate) {
53
+ function monthEnd(inputDate) {
54
54
  const d = date(inputDate);
55
55
  d.setDate(1);
56
56
  d.setMonth(d.getMonth() + 1);
57
57
  d.setDate(0);
58
58
  return d;
59
- };
59
+ }
60
60
 
61
61
  // ../../../../node_modules/@formkit/tempo/dist/monthDays.mjs
62
- var monthDays = function(inputDate) {
62
+ function monthDays(inputDate) {
63
63
  const d = monthEnd(inputDate);
64
64
  return d.getDate();
65
- };
65
+ }
66
66
 
67
67
  // ../../../../node_modules/@formkit/tempo/dist/common.mjs
68
- var fixedLengthByOffset = function(offsetString) {
68
+ function fixedLengthByOffset(offsetString) {
69
69
  if (/^[+-]\d{2}:\d{2}/.test(offsetString)) {
70
70
  return 6;
71
71
  }
@@ -73,14 +73,14 @@ var fixedLengthByOffset = function(offsetString) {
73
73
  return 5;
74
74
  }
75
75
  throw new Error("Invalid offset format");
76
- };
77
- var normStr = function(part) {
76
+ }
77
+ function normStr(part) {
78
78
  if (part.type === "literal") {
79
79
  part.value = part.value.normalize("NFKC");
80
80
  }
81
81
  return part;
82
- };
83
- var fill = function(inputDate, parts, locale, genitive = false, offset = null) {
82
+ }
83
+ function fill(inputDate, parts, locale, genitive = false, offset = null) {
84
84
  const partMap = createPartMap(inputDate, parts, locale, genitive);
85
85
  const d = date(inputDate);
86
86
  function value({ partName, partValue, token }) {
@@ -108,8 +108,8 @@ var fill = function(inputDate, parts, locale, genitive = false, offset = null) {
108
108
  value: value(part)
109
109
  };
110
110
  });
111
- };
112
- var createPartMap = function(inputDate, parts, locale, genitive = false) {
111
+ }
112
+ function createPartMap(inputDate, parts, locale, genitive = false) {
113
113
  const d = date(inputDate);
114
114
  const hour12 = parts.filter((part) => part.hour12);
115
115
  const hour24 = parts.filter((part) => !part.hour12);
@@ -158,8 +158,8 @@ var createPartMap = function(inputDate, parts, locale, genitive = false) {
158
158
  map[part.type] = part.value;
159
159
  return map;
160
160
  }, {});
161
- };
162
- var minsToOffset = function(timeDiffInMins, token = "Z") {
161
+ }
162
+ function minsToOffset(timeDiffInMins, token = "Z") {
163
163
  const hours = String(Math.floor(Math.abs(timeDiffInMins / 60))).padStart(2, "0");
164
164
  const mins = String(Math.abs(timeDiffInMins % 60)).padStart(2, "0");
165
165
  const sign = timeDiffInMins < 0 ? "-" : "+";
@@ -167,14 +167,14 @@ var minsToOffset = function(timeDiffInMins, token = "Z") {
167
167
  return `${sign}${hours}${mins}`;
168
168
  }
169
169
  return `${sign}${hours}:${mins}`;
170
- };
171
- var offsetToMins = function(offset, token) {
170
+ }
171
+ function offsetToMins(offset, token) {
172
172
  validOffset(offset, token);
173
173
  const [_, sign, hours, mins] = offset.match(/([+-])([0-3][0-9]):?([0-6][0-9])/);
174
174
  const offsetInMins = Number(hours) * 60 + Number(mins);
175
175
  return sign === "+" ? offsetInMins : -offsetInMins;
176
- };
177
- var validOffset = function(offset, token = "Z") {
176
+ }
177
+ function validOffset(offset, token = "Z") {
178
178
  const valid = ((token2) => {
179
179
  switch (token2) {
180
180
  case "Z":
@@ -186,16 +186,16 @@ var validOffset = function(offset, token = "Z") {
186
186
  if (!valid)
187
187
  throw new Error(`Invalid offset: ${offset}`);
188
188
  return offset;
189
- };
190
- var escapeTokens = function(str) {
189
+ }
190
+ function escapeTokens(str) {
191
191
  return clockAgnostic.concat(clock24).concat(clock12).sort((a, b) => a[0].length > b[0].length ? 1 : -1).reduce((target, part) => {
192
192
  return target.replace(part[0], `\\${part[0]}`);
193
193
  }, str);
194
- };
195
- var isNumeric = function(part) {
194
+ }
195
+ function isNumeric(part) {
196
196
  return ["numeric", "2-digit"].includes(part.partValue);
197
- };
198
- var validate = function(parts) {
197
+ }
198
+ function validate(parts) {
199
199
  let lastPart = undefined;
200
200
  for (const part of parts) {
201
201
  if (part.partName === "literal" && !isNaN(parseFloat(part.partValue))) {
@@ -209,15 +209,15 @@ var validate = function(parts) {
209
209
  lastPart = part;
210
210
  }
211
211
  return parts;
212
- };
213
- var getOffsetFormat = function(format) {
212
+ }
213
+ function getOffsetFormat(format) {
214
214
  if (typeof format === "string") {
215
215
  return format.includes("ZZ") ? "ZZ" : "Z";
216
216
  }
217
217
  return "time" in format && format.time === "full" ? "Z" : "ZZ";
218
- };
218
+ }
219
219
  var specDate = "1999-03-04T02:05:01.000Z";
220
- var memoParts = new Map;
220
+ var memoParts = /* @__PURE__ */ new Map;
221
221
  var clockAgnostic = [
222
222
  ["YYYY", { year: "numeric" }],
223
223
  ["YY", { year: "2-digit" }],
@@ -258,10 +258,10 @@ var fixedLength = {
258
258
  ss: 2
259
259
  };
260
260
  var genitiveTokens = ["MMMM", "MMM", "dddd", "ddd"];
261
- var tokens = new Map([...clockAgnostic, ...clock24, ...clock12].map((format) => {
261
+ var tokens = /* @__PURE__ */ new Map(/* @__PURE__ */ [...clockAgnostic, ...clock24, ...clock12].map((format) => {
262
262
  return [format[0], format];
263
263
  }));
264
- var dayPeriodMap = new Map;
264
+ var dayPeriodMap = /* @__PURE__ */ new Map;
265
265
  var styles = [
266
266
  "full",
267
267
  "long",
@@ -272,7 +272,7 @@ var two = (n) => String(n).padStart(2, "0");
272
272
  var four = (n) => String(n).padStart(2, "0");
273
273
 
274
274
  // ../../../../node_modules/@formkit/tempo/dist/ap.mjs
275
- var ap2 = function(ampm, locale) {
275
+ function ap2(ampm, locale) {
276
276
  const l = dayPeriodMap.get(locale);
277
277
  if (l && l[ampm])
278
278
  return l[ampm];
@@ -290,10 +290,10 @@ var ap2 = function(ampm, locale) {
290
290
  return period.value;
291
291
  }
292
292
  return ampm;
293
- };
293
+ }
294
294
 
295
295
  // ../../../../node_modules/@formkit/tempo/dist/applyOffset.mjs
296
- var applyOffset = function(dateInput, offset = "+00:00") {
296
+ function applyOffset(dateInput, offset = "+00:00") {
297
297
  const d = date(dateInput);
298
298
  const token = (() => {
299
299
  switch (fixedLengthByOffset(offset)) {
@@ -305,15 +305,15 @@ var applyOffset = function(dateInput, offset = "+00:00") {
305
305
  })();
306
306
  const timeDiffInMins = offsetToMins(offset, token);
307
307
  return new Date(d.getTime() + timeDiffInMins * 1000 * 60);
308
- };
308
+ }
309
309
 
310
310
  // ../../../../node_modules/@formkit/tempo/dist/deviceTZ.mjs
311
- var deviceTZ = function() {
311
+ function deviceTZ() {
312
312
  return Intl.DateTimeFormat().resolvedOptions().timeZone;
313
- };
313
+ }
314
314
 
315
315
  // ../../../../node_modules/@formkit/tempo/dist/offset.mjs
316
- var relativeTime = function(d, timeZone) {
316
+ function relativeTime(d, timeZone) {
317
317
  const utcParts = new Intl.DateTimeFormat("en-US", {
318
318
  year: "numeric",
319
319
  month: "2-digit",
@@ -328,20 +328,20 @@ var relativeTime = function(d, timeZone) {
328
328
  utcParts.forEach((part) => {
329
329
  parts[part.type] = part.value;
330
330
  });
331
- return new Date(`${parts.year}-${parts.month}-${parts.day}T${parts.hour}:${parts.minute}:${parts.second}Z`);
332
- };
333
- var offset = function(utcTime, tzA = "UTC", tzB = "device", timeZoneToken = "Z") {
331
+ return /* @__PURE__ */ new Date(`${parts.year}-${parts.month}-${parts.day}T${parts.hour}:${parts.minute}:${parts.second}Z`);
332
+ }
333
+ function offset(utcTime, tzA = "UTC", tzB = "device", timeZoneToken = "Z") {
334
334
  var _a;
335
335
  tzB = tzB === "device" ? (_a = deviceTZ()) != null ? _a : "utc" : tzB;
336
336
  const d = date(utcTime);
337
337
  const timeA = relativeTime(d, tzA);
338
338
  const timeB = relativeTime(d, tzB);
339
- const timeDiffInMins = (timeB.getTime() - timeA.getTime()) / 1000 / 60;
339
+ const timeDiffInMins = Math.round((timeB.getTime() - timeA.getTime()) / 1000 / 60);
340
340
  return minsToOffset(timeDiffInMins, timeZoneToken);
341
- };
341
+ }
342
342
 
343
343
  // ../../../../node_modules/@formkit/tempo/dist/parts.mjs
344
- var parts = function(format, locale) {
344
+ function parts(format, locale) {
345
345
  if (styles.includes(format) || typeof format === "object") {
346
346
  return styleParts(format, locale);
347
347
  }
@@ -398,8 +398,8 @@ var parts = function(format, locale) {
398
398
  hour12: false
399
399
  };
400
400
  }).filter((part) => !(part.partName === "literal" && part.partValue === ""));
401
- };
402
- var styleParts = function(format, locale) {
401
+ }
402
+ function styleParts(format, locale) {
403
403
  const options = {
404
404
  timeZone: "UTC"
405
405
  };
@@ -413,7 +413,7 @@ var styleParts = function(format, locale) {
413
413
  }
414
414
  const formatter = new Intl.DateTimeFormat(locale, options);
415
415
  const segments = formatter.formatToParts(new Date(specDate)).map(normStr);
416
- const hourTypeSegments = formatter.formatToParts(new Date("1999-04-05T23:05:01.000Z")).map(normStr);
416
+ const hourTypeSegments = formatter.formatToParts(/* @__PURE__ */ new Date("1999-04-05T23:05:01.000Z")).map(normStr);
417
417
  const hourPart = hourTypeSegments.find((segment) => segment.type === "hour");
418
418
  const hourType = hourPart && hourPart.value === "23" ? 24 : 12;
419
419
  return segments.map((part) => {
@@ -435,8 +435,8 @@ var styleParts = function(format, locale) {
435
435
  hour12: hourType === 12
436
436
  };
437
437
  }).filter((part) => !!part);
438
- };
439
- var guessPattern = function(partName, partValue, locale, hour, options) {
438
+ }
439
+ function guessPattern(partName, partValue, locale, hour, options) {
440
440
  const l = partValue.length;
441
441
  const n = !isNaN(Number(partValue));
442
442
  let style;
@@ -482,8 +482,8 @@ var guessPattern = function(partName, partValue, locale, hour, options) {
482
482
  default:
483
483
  return;
484
484
  }
485
- };
486
- var partStyle = function(locale, part, value) {
485
+ }
486
+ function partStyle(locale, part, value) {
487
487
  if (!memoParts.has(locale)) {
488
488
  const date16 = new Date(specDate);
489
489
  const weekdays = [3, 8, 9, 7, 6, 4, 3];
@@ -521,21 +521,21 @@ var partStyle = function(locale, part, value) {
521
521
  }
522
522
  const formats = memoParts.get(locale);
523
523
  return formats ? formats[part][value] : undefined;
524
- };
524
+ }
525
525
 
526
526
  // ../../../../node_modules/@formkit/tempo/dist/removeOffset.mjs
527
- var removeOffset = function(dateInput, offset3 = "+00:00") {
527
+ function removeOffset(dateInput, offset3 = "+00:00") {
528
528
  const positive = offset3.slice(0, 1) === "+";
529
529
  return applyOffset(dateInput, offset3.replace(positive ? "+" : "-", positive ? "-" : "+"));
530
- };
530
+ }
531
531
 
532
532
  // ../../../../node_modules/@formkit/tempo/dist/deviceLocale.mjs
533
- var deviceLocale = function() {
533
+ function deviceLocale() {
534
534
  return Intl.DateTimeFormat().resolvedOptions().locale;
535
- };
535
+ }
536
536
 
537
537
  // ../../../../node_modules/@formkit/tempo/dist/format.mjs
538
- var format = function(inputDateOrOptions, format2 = "long", locale = "device", genitive = false, partFilter) {
538
+ function format(inputDateOrOptions, format2 = "long", locale = "device", genitive = false, partFilter) {
539
539
  let tz, forceOffset;
540
540
  if (typeof inputDateOrOptions === "object" && !(inputDateOrOptions instanceof Date)) {
541
541
  ({
@@ -560,24 +560,24 @@ var format = function(inputDateOrOptions, format2 = "long", locale = "device", g
560
560
  locale = deviceLocale();
561
561
  }
562
562
  return fill(inputDateOrOptions, parts(format2, locale).filter(partFilter != null ? partFilter : () => true), locale, genitive, forceOffset).map((p) => p.value).join("");
563
- };
563
+ }
564
564
 
565
565
  // ../../../../node_modules/@formkit/tempo/dist/formatStr.mjs
566
- var formatStr = function(format2, locale = "en", escapeLiterals = false, filterParts = () => true) {
566
+ function formatStr(format2, locale = "en", escapeLiterals = false, filterParts = () => true) {
567
567
  return parts(format2, locale).filter(filterParts).reduce((f, p) => f += escapeLiterals && p.partName === "literal" ? escapeTokens(p.token) : p.token, "").normalize("NFKC");
568
- };
568
+ }
569
569
 
570
570
  // ../../../../node_modules/@formkit/tempo/dist/fourDigitYear.mjs
571
- var fourDigitYear = function(value) {
572
- const y = (new Date()).getFullYear();
571
+ function fourDigitYear(value) {
572
+ const y = (/* @__PURE__ */ new Date()).getFullYear();
573
573
  const currentYear = y % 100;
574
574
  const century = Math.floor(y / 100);
575
575
  const parsedYear = Number(value);
576
576
  return (century + (parsedYear > currentYear + 20 ? -1 : 0)) * 100 + parsedYear;
577
- };
577
+ }
578
578
 
579
579
  // ../../../../node_modules/@formkit/tempo/dist/range.mjs
580
- var range = function(token, locale = "en", genitive = false) {
580
+ function range(token, locale = "en", genitive = false) {
581
581
  const r = (n, c) => Array(n).fill("").map((_, i) => `${c(i)}`);
582
582
  if (token === "M")
583
583
  return r(12, (i) => i + 1);
@@ -595,7 +595,7 @@ var range = function(token, locale = "en", genitive = false) {
595
595
  if (token === "A")
596
596
  return [ap2("am", locale).toUpperCase(), ap2("pm", locale).toUpperCase()];
597
597
  if (token.startsWith("Y")) {
598
- const year = (new Date()).getFullYear();
598
+ const year = (/* @__PURE__ */ new Date()).getFullYear();
599
599
  return r(120, (i) => i + 1).reduce((ranges, i) => {
600
600
  if (i !== "120")
601
601
  ranges.push(format(`${year + Number(i)}-06-06`, token, locale));
@@ -612,10 +612,10 @@ var range = function(token, locale = "en", genitive = false) {
612
612
  if (token.startsWith("m") || token.startsWith("s"))
613
613
  return r(60, (i) => `${token.length > 1 && i < 10 ? "0" : ""}${i}`);
614
614
  return [];
615
- };
615
+ }
616
616
 
617
617
  // ../../../../node_modules/@formkit/tempo/dist/parse.mjs
618
- var parse = function(dateStrOrOptions, format3 = "ISO8601", locale = "device") {
618
+ function parse(dateStrOrOptions, format3 = "ISO8601", locale = "device") {
619
619
  let partFilter = () => true;
620
620
  let dateStr;
621
621
  let dateOverflow = "backward";
@@ -647,8 +647,8 @@ var parse = function(dateStrOrOptions, format3 = "ISO8601", locale = "device") {
647
647
  } catch {
648
648
  return invalid();
649
649
  }
650
- const now = new Date;
651
- const parsed = new Map([
650
+ const now = /* @__PURE__ */ new Date;
651
+ const parsed = /* @__PURE__ */ new Map([
652
652
  ["YYYY", now.getFullYear()],
653
653
  ["MM", now.getMonth() + 1],
654
654
  ["DD", now.getDate()],
@@ -705,7 +705,7 @@ var parse = function(dateStrOrOptions, format3 = "ISO8601", locale = "device") {
705
705
  }
706
706
  parsed.set("MM", (parsed.get("MM") || 1) - 1);
707
707
  let [Y, M, D, h, m, s] = Array.from(parsed.values());
708
- const maxDaysInMonth = monthDays(new Date(`${four(Y)}-${two(M + 1)}-10`));
708
+ const maxDaysInMonth = monthDays(/* @__PURE__ */ new Date(`${four(Y)}-${two(M + 1)}-10`));
709
709
  if (maxDaysInMonth < D && dateOverflow === "throw")
710
710
  throw new Error(`Invalid date ${four(Y)}-${two(M + 1)}-${two(D)}`);
711
711
  D = dateOverflow === "backward" ? Math.min(D, maxDaysInMonth) : D;
@@ -714,8 +714,8 @@ var parse = function(dateStrOrOptions, format3 = "ISO8601", locale = "device") {
714
714
  if (isFinite(+d))
715
715
  return d;
716
716
  return invalid();
717
- };
718
- var parseParts = function(dateStr, formatParts) {
717
+ }
718
+ function parseParts(dateStr, formatParts) {
719
719
  let i = 0;
720
720
  const advance = (parts22) => [
721
721
  parts22[i++],
@@ -758,7 +758,7 @@ var parseParts = function(dateStr, formatParts) {
758
758
  pos += len;
759
759
  } while (n);
760
760
  return parsed;
761
- };
761
+ }
762
762
  // src/index.ts
763
763
  var now = useNow;
764
764
  var dateFormat = useDateFormat;
@@ -768,3 +768,6 @@ export {
768
768
  format,
769
769
  dateFormat
770
770
  };
771
+
772
+ //# debugId=2AD530D3BB20F6C564756E2164756E21
773
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,27 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../../../../../node_modules/@formkit/tempo/dist/iso8601.mjs", "../../../../../node_modules/@formkit/tempo/dist/date.mjs", "../../../../../node_modules/@formkit/tempo/dist/monthEnd.mjs", "../../../../../node_modules/@formkit/tempo/dist/monthDays.mjs", "../../../../../node_modules/@formkit/tempo/dist/common.mjs", "../../../../../node_modules/@formkit/tempo/dist/ap.mjs", "../../../../../node_modules/@formkit/tempo/dist/applyOffset.mjs", "../../../../../node_modules/@formkit/tempo/dist/deviceTZ.mjs", "../../../../../node_modules/@formkit/tempo/dist/offset.mjs", "../../../../../node_modules/@formkit/tempo/dist/parts.mjs", "../../../../../node_modules/@formkit/tempo/dist/removeOffset.mjs", "../../../../../node_modules/@formkit/tempo/dist/deviceLocale.mjs", "../../../../../node_modules/@formkit/tempo/dist/format.mjs", "../../../../../node_modules/@formkit/tempo/dist/formatStr.mjs", "../../../../../node_modules/@formkit/tempo/dist/fourDigitYear.mjs", "../../../../../node_modules/@formkit/tempo/dist/range.mjs", "../../../../../node_modules/@formkit/tempo/dist/parse.mjs"],
4
+ "sourcesContent": [
5
+ "import { useDateFormat, useNow } from '@stacksjs/utils'\n\nconst now = useNow\nconst dateFormat = useDateFormat\n\n// useNow and useDateFormat are exported from @stacksjs/utils\nexport { now, dateFormat }\n\nexport { format, parse } from '@formkit/tempo'\n",
6
+ "// src/iso8601.ts\nvar iso8601Match = /^([0-9]{4})-([0-1][0-9])(?:-([0-3][0-9]))?(?:[T ]?([0-2][0-9])(?::([0-5][0-9]))?(?::([0-5][0-9]))?)?(?:\\.[0-9]+)?(Z|(?:\\+|\\-)[0-9]{2}:?[0-9]{2})?$/;\nfunction iso8601(date) {\n const matches = date.match(iso8601Match);\n if (matches) {\n const month = Number(matches[2]);\n if (month < 1 || month > 12)\n return false;\n if (typeof matches[3] !== void 0) {\n const date2 = Number(matches[3]);\n if (date2 < 1 || date2 > 31)\n return false;\n }\n if (typeof matches[4] !== void 0) {\n const hours = Number(matches[4]);\n if (hours < 0 || hours > 23)\n return false;\n }\n return true;\n }\n return false;\n}\nexport {\n iso8601,\n iso8601Match\n};\n//# sourceMappingURL=iso8601.mjs.map",
7
+ "// src/date.ts\nimport { iso8601, iso8601Match } from \"./iso8601.mjs\";\nfunction normalize(date2) {\n const matches = date2.match(iso8601Match);\n if (matches && typeof matches[4] === \"undefined\") {\n return date2 += \"T00:00:00\";\n }\n return date2;\n}\nfunction date(date2) {\n if (!date2) {\n date2 = /* @__PURE__ */ new Date();\n }\n if (date2 instanceof Date) {\n const d = new Date(date2);\n d.setMilliseconds(0);\n return d;\n }\n date2 = date2.trim();\n if (iso8601(date2)) {\n return new Date(normalize(date2));\n }\n throw new Error(`Non ISO 8601 compliant date (${date2}).`);\n}\nexport {\n date\n};\n//# sourceMappingURL=date.mjs.map",
8
+ "// src/monthEnd.ts\nimport { date } from \"./date.mjs\";\nfunction monthEnd(inputDate) {\n const d = date(inputDate);\n d.setDate(1);\n d.setMonth(d.getMonth() + 1);\n d.setDate(0);\n return d;\n}\nexport {\n monthEnd\n};\n//# sourceMappingURL=monthEnd.mjs.map",
9
+ "// src/monthDays.ts\nimport { monthEnd } from \"./monthEnd.mjs\";\nfunction monthDays(inputDate) {\n const d = monthEnd(inputDate);\n return d.getDate();\n}\nexport {\n monthDays\n};\n//# sourceMappingURL=monthDays.mjs.map",
10
+ "// src/common.ts\nimport { date } from \"./date.mjs\";\nimport { ap } from \"./ap.mjs\";\nvar specDate = \"1999-03-04T02:05:01.000Z\";\nvar memoParts = /* @__PURE__ */ new Map();\nvar clockAgnostic = [\n [\"YYYY\", { year: \"numeric\" }],\n [\"YY\", { year: \"2-digit\" }],\n [\"MMMM\", { month: \"long\" }],\n [\"MMM\", { month: \"short\" }],\n [\"MM\", { month: \"2-digit\" }],\n [\"M\", { month: \"numeric\" }],\n [\"DD\", { day: \"2-digit\" }],\n [\"D\", { day: \"numeric\" }],\n [\"dddd\", { weekday: \"long\" }],\n [\"ddd\", { weekday: \"short\" }],\n [\"d\", { weekday: \"narrow\" }],\n [\"mm\", { minute: \"2-digit\" }],\n [\"m\", { minute: \"numeric\" }],\n [\"ss\", { second: \"2-digit\" }],\n [\"s\", { second: \"numeric\" }],\n [\"ZZ\", { timeZoneName: \"long\" }],\n [\"Z\", { timeZoneName: \"short\" }]\n];\nvar clock24 = [\n [\"HH\", { hour: \"2-digit\" }],\n [\"H\", { hour: \"numeric\" }]\n];\nvar clock12 = [\n [\"hh\", { hour: \"2-digit\" }],\n [\"h\", { hour: \"numeric\" }],\n [\"a\", { dayPeriod: \"narrow\" }],\n [\"A\", { dayPeriod: \"narrow\" }]\n];\nvar fixedLength = {\n DD: 2,\n HH: 2,\n MM: 2,\n YY: 2,\n YYYY: 4,\n hh: 2,\n mm: 2,\n ss: 2\n};\nfunction fixedLengthByOffset(offsetString) {\n if (/^[+-]\\d{2}:\\d{2}/.test(offsetString)) {\n return 6;\n }\n if (/^[+-]\\d{4}/.test(offsetString)) {\n return 5;\n }\n throw new Error(\"Invalid offset format\");\n}\nvar genitiveTokens = [\"MMMM\", \"MMM\", \"dddd\", \"ddd\"];\nvar tokens = /* @__PURE__ */ new Map(\n /* @__PURE__ */ [...clockAgnostic, ...clock24, ...clock12].map((format) => {\n return [format[0], format];\n })\n);\nvar dayPeriodMap = /* @__PURE__ */ new Map();\nvar styles = [\n \"full\",\n \"long\",\n \"medium\",\n \"short\"\n];\nvar two = (n) => String(n).padStart(2, \"0\");\nvar four = (n) => String(n).padStart(2, \"0\");\nfunction normStr(part) {\n if (part.type === \"literal\") {\n part.value = part.value.normalize(\"NFKC\");\n }\n return part;\n}\nfunction fill(inputDate, parts, locale, genitive = false, offset = null) {\n const partMap = createPartMap(inputDate, parts, locale, genitive);\n const d = date(inputDate);\n function value({ partName, partValue, token }) {\n if (partName === \"literal\")\n return partValue;\n const value2 = partMap[partName];\n if (partName === \"hour\" && token === \"H\") {\n return value2.replace(/^0/, \"\") || \"0\";\n }\n if ([\"mm\", \"ss\", \"MM\"].includes(token) && value2.length === 1) {\n return `0${value2}`;\n }\n if (partName === \"dayPeriod\") {\n const p = ap(d.getUTCHours() < 12 ? \"am\" : \"pm\", locale);\n return token === \"A\" ? p.toUpperCase() : p.toLowerCase();\n }\n if (partName === \"timeZoneName\") {\n return offset != null ? offset : minsToOffset(-1 * d.getTimezoneOffset(), token);\n }\n return value2;\n }\n return parts.map((part) => {\n return {\n ...part,\n value: value(part)\n };\n });\n}\nfunction createPartMap(inputDate, parts, locale, genitive = false) {\n const d = date(inputDate);\n const hour12 = parts.filter((part) => part.hour12);\n const hour24 = parts.filter((part) => !part.hour12);\n const valueParts = [];\n const genitiveParts = [];\n function addValues(requestedParts, hour122 = false) {\n const preciseLocale = `${locale}-u-hc-${hour122 ? \"h12\" : \"h23\"}`;\n valueParts.push(\n ...new Intl.DateTimeFormat(\n preciseLocale,\n requestedParts.reduce(\n (options, part) => {\n if (part.partName === \"literal\")\n return options;\n if (genitive && genitiveTokens.includes(part.token)) {\n genitiveParts.push(part);\n }\n return Object.assign(options, part.option);\n },\n { timeZone: \"UTC\" }\n )\n ).formatToParts(d).map(normStr)\n );\n if (genitive && genitiveParts.length) {\n for (const part of genitiveParts) {\n let formattedParts = [];\n switch (part.token) {\n case \"MMMM\":\n formattedParts = new Intl.DateTimeFormat(preciseLocale, {\n dateStyle: \"long\",\n timeZone: \"UTC\"\n }).formatToParts(d).map(normStr);\n break;\n case \"MMM\":\n formattedParts = new Intl.DateTimeFormat(preciseLocale, {\n dateStyle: \"medium\",\n timeZone: \"UTC\"\n }).formatToParts(d).map(normStr);\n break;\n }\n const genitiveFormattedPart = formattedParts.find(\n (p) => p.type === part.partName\n );\n const index = valueParts.findIndex((p) => p.type === part.partName);\n if (genitiveFormattedPart && index > -1) {\n valueParts[index] = genitiveFormattedPart;\n }\n }\n }\n }\n if (hour12.length)\n addValues(hour12, true);\n if (hour24.length)\n addValues(hour24);\n return valueParts.reduce((map, part) => {\n map[part.type] = part.value;\n return map;\n }, {});\n}\nfunction minsToOffset(timeDiffInMins, token = \"Z\") {\n const hours = String(Math.floor(Math.abs(timeDiffInMins / 60))).padStart(\n 2,\n \"0\"\n );\n const mins = String(Math.abs(timeDiffInMins % 60)).padStart(2, \"0\");\n const sign = timeDiffInMins < 0 ? \"-\" : \"+\";\n if (token === \"ZZ\") {\n return `${sign}${hours}${mins}`;\n }\n return `${sign}${hours}:${mins}`;\n}\nfunction offsetToMins(offset, token) {\n validOffset(offset, token);\n const [_, sign, hours, mins] = offset.match(\n /([+-])([0-3][0-9]):?([0-6][0-9])/\n );\n const offsetInMins = Number(hours) * 60 + Number(mins);\n return sign === \"+\" ? offsetInMins : -offsetInMins;\n}\nfunction validOffset(offset, token = \"Z\") {\n const valid = ((token2) => {\n switch (token2) {\n case \"Z\":\n return /^([+-])[0-3][0-9]:[0-6][0-9]$/.test(offset);\n case \"ZZ\":\n return /^([+-])[0-3][0-9][0-6][0-9]$/.test(offset);\n }\n })(token);\n if (!valid)\n throw new Error(`Invalid offset: ${offset}`);\n return offset;\n}\nfunction escapeTokens(str) {\n return clockAgnostic.concat(clock24).concat(clock12).sort((a, b) => a[0].length > b[0].length ? 1 : -1).reduce((target, part) => {\n return target.replace(part[0], `\\\\${part[0]}`);\n }, str);\n}\nfunction isNumeric(part) {\n return [\"numeric\", \"2-digit\"].includes(part.partValue);\n}\nfunction validate(parts) {\n let lastPart = void 0;\n for (const part of parts) {\n if (part.partName === \"literal\" && !isNaN(parseFloat(part.partValue))) {\n throw new Error(`Numbers in format (${part.partValue}).`);\n }\n if (lastPart && lastPart.partName !== \"literal\" && part.partName !== \"literal\") {\n if (!(lastPart.token in fixedLength) && !(part.token in fixedLength) && !(isNumeric(lastPart) && part.token.toLowerCase() === \"a\")) {\n throw new Error(\n `Illegal adjacent tokens (${lastPart.token}, ${part.token})`\n );\n }\n }\n lastPart = part;\n }\n return parts;\n}\nfunction getOffsetFormat(format) {\n if (typeof format === \"string\") {\n return format.includes(\"ZZ\") ? \"ZZ\" : \"Z\";\n }\n return \"time\" in format && format.time === \"full\" ? \"Z\" : \"ZZ\";\n}\nexport {\n clock12,\n clock24,\n clockAgnostic,\n dayPeriodMap,\n escapeTokens,\n fill,\n fixedLength,\n fixedLengthByOffset,\n four,\n genitiveTokens,\n getOffsetFormat,\n isNumeric,\n memoParts,\n minsToOffset,\n normStr,\n offsetToMins,\n specDate,\n styles,\n tokens,\n two,\n validOffset,\n validate\n};\n//# sourceMappingURL=common.mjs.map",
11
+ "// src/ap.ts\nimport { dayPeriodMap, specDate, normStr } from \"./common.mjs\";\nfunction ap(ampm, locale) {\n const l = dayPeriodMap.get(locale);\n if (l && l[ampm])\n return l[ampm];\n const specimen = new Date(specDate);\n specimen.setUTCHours(ampm === \"am\" ? 5 : 20);\n const subparts = new Intl.DateTimeFormat(locale, {\n timeStyle: \"full\",\n timeZone: \"UTC\",\n hour12: true\n }).formatToParts(specimen).map(normStr);\n const period = subparts.find((part) => part.type === \"dayPeriod\");\n if (period) {\n const localePeriods = l || {};\n dayPeriodMap.set(\n locale,\n Object.assign(localePeriods, { [ampm]: period.value })\n );\n return period.value;\n }\n return ampm;\n}\nexport {\n ap\n};\n//# sourceMappingURL=ap.mjs.map",
12
+ "// src/applyOffset.ts\nimport { date } from \"./date.mjs\";\nimport { fixedLengthByOffset, offsetToMins } from \"./common.mjs\";\nfunction applyOffset(dateInput, offset = \"+00:00\") {\n const d = date(dateInput);\n const token = (() => {\n switch (fixedLengthByOffset(offset)) {\n case 5:\n return \"ZZ\";\n case 6:\n return \"Z\";\n }\n })();\n const timeDiffInMins = offsetToMins(offset, token);\n return new Date(d.getTime() + timeDiffInMins * 1e3 * 60);\n}\nexport {\n applyOffset\n};\n//# sourceMappingURL=applyOffset.mjs.map",
13
+ "// src/deviceTZ.ts\nfunction deviceTZ() {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n}\nexport {\n deviceTZ\n};\n//# sourceMappingURL=deviceTZ.mjs.map",
14
+ "// src/offset.ts\nimport { date } from \"./date.mjs\";\nimport { normStr, minsToOffset } from \"./common.mjs\";\nimport { deviceTZ } from \"./deviceTZ.mjs\";\nfunction relativeTime(d, timeZone) {\n const utcParts = new Intl.DateTimeFormat(\"en-US\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n timeZone,\n hourCycle: \"h23\"\n }).formatToParts(d).map(normStr);\n const parts = {};\n utcParts.forEach((part) => {\n parts[part.type] = part.value;\n });\n return /* @__PURE__ */ new Date(\n `${parts.year}-${parts.month}-${parts.day}T${parts.hour}:${parts.minute}:${parts.second}Z`\n );\n}\nfunction offset(utcTime, tzA = \"UTC\", tzB = \"device\", timeZoneToken = \"Z\") {\n var _a;\n tzB = tzB === \"device\" ? (_a = deviceTZ()) != null ? _a : \"utc\" : tzB;\n const d = date(utcTime);\n const timeA = relativeTime(d, tzA);\n const timeB = relativeTime(d, tzB);\n const timeDiffInMins = Math.round(\n (timeB.getTime() - timeA.getTime()) / 1e3 / 60\n );\n return minsToOffset(timeDiffInMins, timeZoneToken);\n}\nexport {\n offset\n};\n//# sourceMappingURL=offset.mjs.map",
15
+ "// src/parts.ts\nimport {\n styles,\n normStr,\n tokens,\n memoParts,\n clockAgnostic,\n clock24,\n specDate,\n clock12\n} from \"./common.mjs\";\nfunction parts(format, locale) {\n if (styles.includes(format) || typeof format === \"object\") {\n return styleParts(format, locale);\n }\n let f = format;\n let match = 0;\n const testPattern = (pattern) => {\n if (!pattern[2])\n pattern[2] = new RegExp(`(.)?(${pattern[0]})`, \"g\");\n if (pattern[2].test(f)) {\n let didAdd = 0;\n f = f.replace(pattern[2], (_, prefix, actualMatch) => {\n if (prefix === \"\\\\\")\n return actualMatch;\n return `${typeof prefix === \"string\" ? prefix : \"\"}{!${didAdd++ ? match : match++}!}`;\n });\n return !!didAdd;\n }\n return false;\n };\n function validate(patterns) {\n const parts3 = patterns.map((part) => part.partName);\n const deduped = new Set(parts3);\n if (parts3.length > deduped.size) {\n throw new Error(`Cannot reuse format tokens.`);\n }\n return patterns;\n }\n function createPart(hour12, [token, option, exp]) {\n const partName = Object.keys(option)[0];\n const partValue = option[partName];\n return {\n option,\n partName,\n partValue,\n token,\n pattern: exp,\n hour12\n };\n }\n const found24Patterns = clockAgnostic.filter(testPattern).concat(clock24.filter(testPattern)).map(createPart.bind(null, false));\n const parts2 = validate(\n found24Patterns.concat(\n clock12.filter(testPattern).map(createPart.bind(null, true))\n )\n );\n const extractIndex = /^\\{!(\\d+)!\\}$/;\n return f.split(/(\\{!\\d+!\\})/).map((match2) => {\n const hasIndex = match2.match(extractIndex);\n if (hasIndex) {\n return parts2[Number(hasIndex[1])];\n }\n return {\n option: { literal: match2 },\n partName: \"literal\",\n partValue: match2,\n token: match2,\n pattern: new RegExp(\"\"),\n hour12: false\n };\n }).filter((part) => !(part.partName === \"literal\" && part.partValue === \"\"));\n}\nfunction styleParts(format, locale) {\n const options = {\n timeZone: \"UTC\"\n };\n if (typeof format === \"string\") {\n options.dateStyle = format;\n } else {\n if (\"date\" in format)\n options.dateStyle = format.date;\n if (\"time\" in format)\n options.timeStyle = format.time;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n const segments = formatter.formatToParts(new Date(specDate)).map(normStr);\n const hourTypeSegments = formatter.formatToParts(/* @__PURE__ */ new Date(\"1999-04-05T23:05:01.000Z\")).map(normStr);\n const hourPart = hourTypeSegments.find((segment) => segment.type === \"hour\");\n const hourType = hourPart && hourPart.value === \"23\" ? 24 : 12;\n return segments.map((part) => {\n const partName = part.type;\n const formatPattern = guessPattern(\n part.type,\n part.value,\n locale,\n part.type === \"hour\" ? hourType : void 0,\n options\n );\n if (formatPattern === void 0)\n return;\n const partValue = formatPattern[1][partName];\n if (!partValue)\n return;\n if (!formatPattern[2])\n formatPattern[2] = new RegExp(`${formatPattern[0]}`, \"g\");\n return {\n option: { [partName]: partValue },\n partName,\n partValue,\n token: formatPattern[0],\n pattern: formatPattern[2],\n hour12: hourType === 12\n };\n }).filter((part) => !!part);\n}\nfunction guessPattern(partName, partValue, locale, hour, options) {\n const l = partValue.length;\n const n = !isNaN(Number(partValue));\n let style;\n switch (partName) {\n case \"year\":\n return l === 2 ? tokens.get(\"YY\") : tokens.get(\"YYYY\");\n case \"month\":\n if (n)\n return l === 1 ? tokens.get(\"M\") : tokens.get(\"MM\");\n style = partStyle(locale, partName, partValue);\n switch (style) {\n case \"long\":\n return tokens.get(\"MMMM\");\n default:\n return tokens.get(\"MMM\");\n }\n case \"day\":\n return l === 1 ? tokens.get(\"D\") : tokens.get(\"DD\");\n case \"weekday\":\n style = partStyle(locale, partName, partValue);\n switch (style) {\n case \"narrow\":\n return tokens.get(\"d\");\n case \"short\":\n return tokens.get(\"ddd\");\n default:\n return tokens.get(\"dddd\");\n }\n case \"hour\":\n if (hour === 12)\n return l === 1 ? tokens.get(\"h\") : tokens.get(\"hh\");\n return l === 1 ? tokens.get(\"H\") : tokens.get(\"HH\");\n case \"minute\":\n return l === 1 ? tokens.get(\"m\") : tokens.get(\"mm\");\n case \"second\":\n return l === 1 ? tokens.get(\"s\") : tokens.get(\"ss\");\n case \"dayPeriod\":\n return /^[A-Z]+$/u.test(partValue) ? tokens.get(\"A\") : tokens.get(\"a\");\n case \"literal\":\n return [partValue, { literal: partValue }, new RegExp(\"\")];\n case \"timeZoneName\":\n return options.timeStyle === \"full\" ? tokens.get(\"Z\") : tokens.get(\"ZZ\");\n default:\n return void 0;\n }\n}\nfunction partStyle(locale, part, value) {\n if (!memoParts.has(locale)) {\n const date = new Date(specDate);\n const weekdays = [3, 8, 9, 7, 6, 4, 3];\n const parts2 = [\"weekday\", \"month\", \"dayPeriod\"];\n const partStyles = [\"long\", \"short\", \"narrow\"];\n const formats2 = {};\n for (let i = 0; i < 12; i++) {\n date.setMonth(0 + i);\n if (i in weekdays)\n date.setDate(weekdays[i]);\n date.setUTCHours(8 + i);\n for (const style of partStyles) {\n const segments = new Intl.DateTimeFormat(\n locale,\n parts2.reduce(\n (options, part2) => Object.assign(options, { [part2]: style }),\n { hour12: true, timeZone: \"UTC\" }\n )\n ).formatToParts(date).map(normStr);\n if (style === \"long\" || style === \"short\") {\n const genitiveFormattedParts = new Intl.DateTimeFormat(locale, {\n dateStyle: style === \"short\" ? \"medium\" : \"long\",\n timeZone: \"UTC\"\n }).formatToParts(date).map(normStr);\n const genitiveMonth = genitiveFormattedParts.find(\n (part2) => part2.type === \"month\"\n );\n const index = segments.findIndex((part2) => part2.type === \"month\");\n if (index > -1 && genitiveMonth)\n segments[index] = genitiveMonth;\n }\n segments.forEach((part2) => {\n if (part2.type === \"literal\")\n return;\n const type = part2.type;\n formats2[type] = Object.assign(formats2[type] || {}, {\n [part2.value]: style\n });\n });\n }\n }\n memoParts.set(locale, formats2);\n }\n const formats = memoParts.get(locale);\n return formats ? formats[part][value] : void 0;\n}\nexport {\n parts\n};\n//# sourceMappingURL=parts.mjs.map",
16
+ "// src/removeOffset.ts\nimport { applyOffset } from \"./applyOffset.mjs\";\nfunction removeOffset(dateInput, offset = \"+00:00\") {\n const positive = offset.slice(0, 1) === \"+\";\n return applyOffset(\n dateInput,\n offset.replace(positive ? \"+\" : \"-\", positive ? \"-\" : \"+\")\n );\n}\nexport {\n removeOffset\n};\n//# sourceMappingURL=removeOffset.mjs.map",
17
+ "// src/deviceLocale.ts\nfunction deviceLocale() {\n return Intl.DateTimeFormat().resolvedOptions().locale;\n}\nexport {\n deviceLocale\n};\n//# sourceMappingURL=deviceLocale.mjs.map",
18
+ "// src/format.ts\nimport { date } from \"./date.mjs\";\nimport { parts } from \"./parts.mjs\";\nimport { fill, getOffsetFormat } from \"./common.mjs\";\nimport { offset } from \"./offset.mjs\";\nimport { removeOffset } from \"./removeOffset.mjs\";\nimport { deviceLocale } from \"./deviceLocale.mjs\";\nimport { deviceTZ } from \"./deviceTZ.mjs\";\nfunction format(inputDateOrOptions, format2 = \"long\", locale = \"device\", genitive = false, partFilter) {\n let tz, forceOffset;\n if (typeof inputDateOrOptions === \"object\" && !(inputDateOrOptions instanceof Date)) {\n ;\n ({\n date: inputDateOrOptions,\n format: format2,\n locale,\n genitive,\n partFilter,\n tz\n } = inputDateOrOptions);\n }\n if (format2 === \"ISO8601\")\n return date(inputDateOrOptions).toISOString();\n if (tz) {\n forceOffset = offset(inputDateOrOptions, \"utc\", tz, getOffsetFormat(format2));\n }\n tz != null ? tz : tz = deviceTZ();\n if ((tz == null ? void 0 : tz.toLowerCase()) !== \"utc\") {\n inputDateOrOptions = removeOffset(\n inputDateOrOptions,\n offset(inputDateOrOptions, tz, \"utc\")\n );\n }\n if (!locale || locale === \"device\") {\n locale = deviceLocale();\n }\n return fill(\n inputDateOrOptions,\n parts(format2, locale).filter(partFilter != null ? partFilter : () => true),\n locale,\n genitive,\n forceOffset\n ).map((p) => p.value).join(\"\");\n}\nexport {\n format\n};\n//# sourceMappingURL=format.mjs.map",
19
+ "// src/formatStr.ts\nimport { parts } from \"./parts.mjs\";\nimport { escapeTokens } from \"./common.mjs\";\nfunction formatStr(format, locale = \"en\", escapeLiterals = false, filterParts = () => true) {\n return parts(format, locale).filter(filterParts).reduce(\n (f, p) => f += escapeLiterals && p.partName === \"literal\" ? escapeTokens(p.token) : p.token,\n \"\"\n ).normalize(\"NFKC\");\n}\nexport {\n formatStr\n};\n//# sourceMappingURL=formatStr.mjs.map",
20
+ "// src/fourDigitYear.ts\nfunction fourDigitYear(value) {\n const y = (/* @__PURE__ */ new Date()).getFullYear();\n const currentYear = y % 100;\n const century = Math.floor(y / 100);\n const parsedYear = Number(value);\n return (century + (parsedYear > currentYear + 20 ? -1 : 0)) * 100 + parsedYear;\n}\nexport {\n fourDigitYear\n};\n//# sourceMappingURL=fourDigitYear.mjs.map",
21
+ "// src/range.ts\nimport { format } from \"./format.mjs\";\nimport { ap } from \"./ap.mjs\";\nfunction range(token, locale = \"en\", genitive = false) {\n const r = (n, c) => Array(n).fill(\"\").map((_, i) => `${c(i)}`);\n if (token === \"M\")\n return r(12, (i) => i + 1);\n if (token === \"MM\")\n return r(12, (i) => {\n const m = i + 1;\n return m < 10 ? `0${m}` : m;\n });\n if (token.startsWith(\"M\"))\n return range(\"MM\").map(\n (m) => format(`2000-${m}-05`, token, locale, genitive)\n );\n if (token.startsWith(\"d\"))\n return r(7, (i) => `0${i + 2}`).map(\n (d) => format(`2022-10-${d}`, token, locale)\n );\n if (token === \"a\")\n return [ap(\"am\", locale).toLowerCase(), ap(\"pm\", locale).toLowerCase()];\n if (token === \"A\")\n return [ap(\"am\", locale).toUpperCase(), ap(\"pm\", locale).toUpperCase()];\n if (token.startsWith(\"Y\")) {\n const year = (/* @__PURE__ */ new Date()).getFullYear();\n return r(120, (i) => i + 1).reduce(\n (ranges, i) => {\n if (i !== \"120\")\n ranges.push(format(`${year + Number(i)}-06-06`, token, locale));\n ranges.unshift(format(`${year - Number(i)}-06-06`, token, locale));\n return ranges;\n },\n [format(`${year}-06-06`, token, locale)]\n );\n }\n if (token.startsWith(\"D\"))\n return r(31, (i) => `${token === \"DD\" && i < 9 ? \"0\" : \"\"}${i + 1}`);\n if (token.startsWith(\"H\"))\n return r(24, (i) => `${token === \"HH\" && i < 10 ? \"0\" : \"\"}${i}`);\n if (token.startsWith(\"h\"))\n return r(12, (i) => `${token === \"hh\" && i < 9 ? \"0\" : \"\"}${i + 1}`);\n if (token.startsWith(\"m\") || token.startsWith(\"s\"))\n return r(60, (i) => `${token.length > 1 && i < 10 ? \"0\" : \"\"}${i}`);\n return [];\n}\nexport {\n range\n};\n//# sourceMappingURL=range.mjs.map",
22
+ "// src/parse.ts\nimport { date } from \"./date.mjs\";\nimport { validate, styles, fixedLength, four, two, validOffset, fixedLengthByOffset } from \"./common.mjs\";\nimport { formatStr } from \"./formatStr.mjs\";\nimport { fourDigitYear } from \"./fourDigitYear.mjs\";\nimport { ap } from \"./ap.mjs\";\nimport { range } from \"./range.mjs\";\nimport { monthDays } from \"./monthDays.mjs\";\nimport { parts } from \"./parts.mjs\";\nfunction parse(dateStrOrOptions, format = \"ISO8601\", locale = \"device\") {\n let partFilter = () => true;\n let dateStr;\n let dateOverflow = \"backward\";\n if (typeof dateStrOrOptions === \"object\") {\n ;\n ({\n date: dateStr,\n format = \"ISO8601\",\n locale = \"device\",\n dateOverflow = \"backward\",\n partFilter = () => true\n } = dateStrOrOptions);\n } else {\n dateStr = dateStrOrOptions;\n }\n if (!dateStr)\n throw new Error(\"parse() requires a date string.\");\n const invalid = () => {\n throw new Error(\n `Date (${dateStr}) does not match format (${formatStr(format, locale)})`\n );\n };\n if (format === \"ISO8601\")\n return date(dateStr);\n const genitive = styles.includes(format) || typeof format === \"object\";\n const formatParts = validate(parts(format, locale).filter(partFilter));\n if (!formatParts.length)\n throw new Error(\"parse() requires a pattern.\");\n let parsedParts;\n try {\n parsedParts = parseParts(dateStr, formatParts);\n } catch {\n return invalid();\n }\n const now = /* @__PURE__ */ new Date();\n const parsed = /* @__PURE__ */ new Map([\n [\"YYYY\", now.getFullYear()],\n [\"MM\", now.getMonth() + 1],\n [\"DD\", now.getDate()],\n [\"HH\", 0],\n [\"mm\", 0],\n [\"ss\", 0]\n ]);\n let a = null;\n let offset = \"\";\n parsedParts.forEach((part) => {\n if (part.partName === \"literal\")\n return;\n if (part.token === part.value)\n return invalid();\n const v = Number(part.value);\n if (parsed.has(part.token)) {\n parsed.set(part.token, v);\n } else if (part.token === \"YY\") {\n parsed.set(\"YYYY\", fourDigitYear(part.value));\n } else {\n const t = part.token;\n if (t.startsWith(\"d\")) {\n return;\n } else if (t === \"D\") {\n parsed.set(\"DD\", v);\n } else if (t === \"H\" || t.startsWith(\"h\")) {\n parsed.set(\"HH\", v);\n } else if (t === \"M\") {\n parsed.set(\"MM\", v);\n } else if (t === \"a\" || t === \"A\") {\n a = part.value.toLowerCase() === ap(\"am\", locale).toLowerCase();\n } else if (t === \"Z\" || t === \"ZZ\") {\n offset = validOffset(part.value, t);\n } else {\n const values = range(t, locale, genitive);\n const index = values.indexOf(part.value);\n if (index !== -1) {\n switch (t) {\n case \"MMM\":\n case \"MMMM\":\n parsed.set(\"MM\", index + 1);\n break;\n }\n }\n }\n }\n });\n let hours = parsed.get(\"HH\") || 0;\n if (a === false) {\n hours += hours === 12 ? 0 : 12;\n parsed.set(\"HH\", hours === 24 ? 0 : hours);\n } else if (a === true && hours === 12) {\n parsed.set(\"HH\", 0);\n }\n parsed.set(\"MM\", (parsed.get(\"MM\") || 1) - 1);\n let [Y, M, D, h, m, s] = Array.from(parsed.values());\n const maxDaysInMonth = monthDays(/* @__PURE__ */ new Date(`${four(Y)}-${two(M + 1)}-10`));\n if (maxDaysInMonth < D && dateOverflow === \"throw\")\n throw new Error(`Invalid date ${four(Y)}-${two(M + 1)}-${two(D)}`);\n D = dateOverflow === \"backward\" ? Math.min(D, maxDaysInMonth) : D;\n const isoString = `${four(Y)}-${two(M + 1)}-${two(D)}T${two(h)}:${two(\n m\n )}:${two(s)}${offset}`;\n const d = new Date(isoString);\n if (isFinite(+d))\n return d;\n return invalid();\n}\nfunction parseParts(dateStr, formatParts) {\n let i = 0;\n const advance = (parts2) => [\n parts2[i++],\n parts2[i]\n ];\n let pos = 0;\n const parsed = [];\n let n = void 0;\n do {\n const [current, next] = advance(formatParts);\n n = next;\n let len = 1;\n if (current.partName === \"literal\") {\n len = current.partValue.length;\n } else if (current.partName === \"timeZoneName\") {\n len = fixedLengthByOffset(dateStr.substring(pos));\n } else if (current.token in fixedLength) {\n len = fixedLength[current.token];\n } else if (next) {\n if (next.partName === \"literal\") {\n len = dateStr.indexOf(next.partValue, pos) - pos;\n if (len < 0)\n throw new Error();\n } else if (next.partName === \"dayPeriod\") {\n for (let i2 = 1; i2 <= 4; i2++) {\n if (isNaN(Number(dateStr.charAt(pos + i2)))) {\n len = i2;\n break;\n }\n }\n } else {\n const nextChar = dateStr.substring(pos).search(/\\d/);\n if (nextChar !== -1)\n len = pos + nextChar;\n }\n } else {\n len = dateStr.length;\n }\n parsed.push({ ...current, value: dateStr.substring(pos, pos + len) });\n pos += len;\n } while (n);\n return parsed;\n}\nexport {\n parse,\n parseParts\n};\n//# sourceMappingURL=parse.mjs.map"
23
+ ],
24
+ "mappings": "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",
25
+ "debugId": "2AD530D3BB20F6C564756E2164756E21",
26
+ "names": []
27
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/datetime",
3
3
  "type": "module",
4
- "version": "0.61.24",
4
+ "version": "0.63.0",
5
5
  "description": "The Stacks datetime helpers.",
6
6
  "author": "Chris Breuer",
7
7
  "license": "MIT",
@@ -49,7 +49,7 @@
49
49
  "prepublishOnly": "bun run build"
50
50
  },
51
51
  "dependencies": {
52
- "@formkit/tempo": "^0.1.1",
52
+ "@formkit/tempo": "^0.1.2",
53
53
  "@stacksjs/utils": "latest"
54
54
  },
55
55
  "devDependencies": {