@venizia/ignis-helpers 0.2.2-2 → 0.2.2-4
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/modules/temporal/abstract.d.ts +310 -0
- package/dist/cjs/modules/temporal/abstract.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/abstract.js +363 -0
- package/dist/cjs/modules/temporal/abstract.js.map +1 -0
- package/dist/cjs/modules/temporal/adapters/dayjs.d.ts +1 -1
- package/dist/cjs/modules/temporal/adapters/dayjs.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/adapters/dayjs.js +3 -3
- package/dist/cjs/modules/temporal/adapters/dayjs.js.map +1 -1
- package/dist/cjs/modules/temporal/adapters/intl.d.ts +1 -1
- package/dist/cjs/modules/temporal/adapters/intl.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/adapters/intl.js +7 -7
- package/dist/cjs/modules/temporal/adapters/intl.js.map +1 -1
- package/dist/cjs/modules/temporal/adapters/luxon.d.ts +1 -1
- package/dist/cjs/modules/temporal/adapters/luxon.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/adapters/luxon.js +3 -3
- package/dist/cjs/modules/temporal/adapters/luxon.js.map +1 -1
- package/dist/cjs/modules/temporal/adapters/native.d.ts +3 -1
- package/dist/cjs/modules/temporal/adapters/native.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/adapters/native.js +13 -5
- package/dist/cjs/modules/temporal/adapters/native.js.map +1 -1
- package/dist/cjs/modules/temporal/calendar/calendar.d.ts +56 -0
- package/dist/cjs/modules/temporal/calendar/calendar.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/calendar/calendar.js +166 -0
- package/dist/cjs/modules/temporal/calendar/calendar.js.map +1 -0
- package/dist/cjs/modules/temporal/calendar/index.d.ts +2 -0
- package/dist/cjs/modules/temporal/calendar/index.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/calendar/index.js +18 -0
- package/dist/cjs/modules/temporal/calendar/index.js.map +1 -0
- package/dist/cjs/modules/temporal/common/constants.d.ts +14 -3
- package/dist/cjs/modules/temporal/common/constants.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/common/constants.js +23 -4
- package/dist/cjs/modules/temporal/common/constants.js.map +1 -1
- package/dist/cjs/modules/temporal/common/types.d.ts +259 -5
- package/dist/cjs/modules/temporal/common/types.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/{duration.d.ts → duration/duration.d.ts} +9 -2
- package/dist/cjs/modules/temporal/duration/duration.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/duration/duration.js +135 -0
- package/dist/cjs/modules/temporal/duration/duration.js.map +1 -0
- package/dist/cjs/modules/temporal/duration/index.d.ts +2 -0
- package/dist/cjs/modules/temporal/duration/index.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/duration/index.js +18 -0
- package/dist/cjs/modules/temporal/duration/index.js.map +1 -0
- package/dist/cjs/modules/temporal/helper.d.ts +107 -78
- package/dist/cjs/modules/temporal/helper.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/helper.js +203 -258
- package/dist/cjs/modules/temporal/helper.js.map +1 -1
- package/dist/cjs/modules/temporal/index.d.ts +1 -0
- package/dist/cjs/modules/temporal/index.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/index.js +1 -0
- package/dist/cjs/modules/temporal/index.js.map +1 -1
- package/dist/cjs/modules/temporal/locale/index.d.ts +2 -0
- package/dist/cjs/modules/temporal/locale/index.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/locale/index.js +18 -0
- package/dist/cjs/modules/temporal/locale/index.js.map +1 -0
- package/dist/{esm/modules/temporal → cjs/modules/temporal/locale}/locale.d.ts +3 -2
- package/dist/cjs/modules/temporal/locale/locale.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/{locale.js → locale/locale.js} +3 -3
- package/dist/cjs/modules/temporal/locale/locale.js.map +1 -0
- package/dist/cjs/modules/temporal/pattern/common/index.d.ts +2 -0
- package/dist/cjs/modules/temporal/pattern/common/index.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/pattern/common/index.js +18 -0
- package/dist/cjs/modules/temporal/pattern/common/index.js.map +1 -0
- package/dist/cjs/modules/temporal/pattern/common/types.d.ts +26 -0
- package/dist/cjs/modules/temporal/pattern/common/types.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/pattern/common/types.js +3 -0
- package/dist/cjs/modules/temporal/pattern/common/types.js.map +1 -0
- package/dist/cjs/modules/temporal/pattern/index.d.ts +4 -0
- package/dist/cjs/modules/temporal/pattern/index.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/pattern/index.js +20 -0
- package/dist/cjs/modules/temporal/pattern/index.js.map +1 -0
- package/dist/{esm/modules/temporal → cjs/modules/temporal/pattern}/pattern.d.ts +2 -1
- package/dist/cjs/modules/temporal/pattern/pattern.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/{pattern.js → pattern/pattern.js} +19 -14
- package/dist/cjs/modules/temporal/pattern/pattern.js.map +1 -0
- package/dist/cjs/modules/temporal/pattern/tokens.d.ts +59 -0
- package/dist/cjs/modules/temporal/pattern/tokens.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/pattern/tokens.js +195 -0
- package/dist/cjs/modules/temporal/pattern/tokens.js.map +1 -0
- package/dist/esm/modules/temporal/abstract.d.ts +310 -0
- package/dist/esm/modules/temporal/abstract.d.ts.map +1 -0
- package/dist/esm/modules/temporal/abstract.js +359 -0
- package/dist/esm/modules/temporal/abstract.js.map +1 -0
- package/dist/esm/modules/temporal/adapters/dayjs.d.ts +1 -1
- package/dist/esm/modules/temporal/adapters/dayjs.d.ts.map +1 -1
- package/dist/esm/modules/temporal/adapters/dayjs.js +3 -3
- package/dist/esm/modules/temporal/adapters/dayjs.js.map +1 -1
- package/dist/esm/modules/temporal/adapters/intl.d.ts +1 -1
- package/dist/esm/modules/temporal/adapters/intl.d.ts.map +1 -1
- package/dist/esm/modules/temporal/adapters/intl.js +7 -7
- package/dist/esm/modules/temporal/adapters/intl.js.map +1 -1
- package/dist/esm/modules/temporal/adapters/luxon.d.ts +1 -1
- package/dist/esm/modules/temporal/adapters/luxon.d.ts.map +1 -1
- package/dist/esm/modules/temporal/adapters/luxon.js +3 -3
- package/dist/esm/modules/temporal/adapters/luxon.js.map +1 -1
- package/dist/esm/modules/temporal/adapters/native.d.ts +3 -1
- package/dist/esm/modules/temporal/adapters/native.d.ts.map +1 -1
- package/dist/esm/modules/temporal/adapters/native.js +13 -5
- package/dist/esm/modules/temporal/adapters/native.js.map +1 -1
- package/dist/esm/modules/temporal/calendar/calendar.d.ts +56 -0
- package/dist/esm/modules/temporal/calendar/calendar.d.ts.map +1 -0
- package/dist/esm/modules/temporal/calendar/calendar.js +162 -0
- package/dist/esm/modules/temporal/calendar/calendar.js.map +1 -0
- package/dist/esm/modules/temporal/calendar/index.d.ts +2 -0
- package/dist/esm/modules/temporal/calendar/index.d.ts.map +1 -0
- package/dist/esm/modules/temporal/calendar/index.js +2 -0
- package/dist/esm/modules/temporal/calendar/index.js.map +1 -0
- package/dist/esm/modules/temporal/common/constants.d.ts +14 -3
- package/dist/esm/modules/temporal/common/constants.d.ts.map +1 -1
- package/dist/esm/modules/temporal/common/constants.js +21 -3
- package/dist/esm/modules/temporal/common/constants.js.map +1 -1
- package/dist/esm/modules/temporal/common/types.d.ts +259 -5
- package/dist/esm/modules/temporal/common/types.d.ts.map +1 -1
- package/dist/esm/modules/temporal/{duration.d.ts → duration/duration.d.ts} +9 -2
- package/dist/esm/modules/temporal/duration/duration.d.ts.map +1 -0
- package/dist/esm/modules/temporal/duration/duration.js +131 -0
- package/dist/esm/modules/temporal/duration/duration.js.map +1 -0
- package/dist/esm/modules/temporal/duration/index.d.ts +2 -0
- package/dist/esm/modules/temporal/duration/index.d.ts.map +1 -0
- package/dist/esm/modules/temporal/duration/index.js +2 -0
- package/dist/esm/modules/temporal/duration/index.js.map +1 -0
- package/dist/esm/modules/temporal/helper.d.ts +107 -78
- package/dist/esm/modules/temporal/helper.d.ts.map +1 -1
- package/dist/esm/modules/temporal/helper.js +208 -263
- package/dist/esm/modules/temporal/helper.js.map +1 -1
- package/dist/esm/modules/temporal/index.d.ts +1 -0
- package/dist/esm/modules/temporal/index.d.ts.map +1 -1
- package/dist/esm/modules/temporal/index.js +1 -0
- package/dist/esm/modules/temporal/index.js.map +1 -1
- package/dist/esm/modules/temporal/locale/index.d.ts +2 -0
- package/dist/esm/modules/temporal/locale/index.d.ts.map +1 -0
- package/dist/esm/modules/temporal/locale/index.js +2 -0
- package/dist/esm/modules/temporal/locale/index.js.map +1 -0
- package/dist/{cjs/modules/temporal → esm/modules/temporal/locale}/locale.d.ts +3 -2
- package/dist/esm/modules/temporal/locale/locale.d.ts.map +1 -0
- package/dist/esm/modules/temporal/{locale.js → locale/locale.js} +3 -3
- package/dist/esm/modules/temporal/locale/locale.js.map +1 -0
- package/dist/esm/modules/temporal/pattern/common/index.d.ts +2 -0
- package/dist/esm/modules/temporal/pattern/common/index.d.ts.map +1 -0
- package/dist/esm/modules/temporal/pattern/common/index.js +2 -0
- package/dist/esm/modules/temporal/pattern/common/index.js.map +1 -0
- package/dist/esm/modules/temporal/pattern/common/types.d.ts +26 -0
- package/dist/esm/modules/temporal/pattern/common/types.d.ts.map +1 -0
- package/dist/esm/modules/temporal/pattern/common/types.js +2 -0
- package/dist/esm/modules/temporal/pattern/common/types.js.map +1 -0
- package/dist/esm/modules/temporal/pattern/index.d.ts +4 -0
- package/dist/esm/modules/temporal/pattern/index.d.ts.map +1 -0
- package/dist/esm/modules/temporal/pattern/index.js +4 -0
- package/dist/esm/modules/temporal/pattern/index.js.map +1 -0
- package/dist/{cjs/modules/temporal → esm/modules/temporal/pattern}/pattern.d.ts +2 -1
- package/dist/esm/modules/temporal/pattern/pattern.d.ts.map +1 -0
- package/dist/esm/modules/temporal/{pattern.js → pattern/pattern.js} +20 -15
- package/dist/esm/modules/temporal/pattern/pattern.js.map +1 -0
- package/dist/esm/modules/temporal/pattern/tokens.d.ts +59 -0
- package/dist/esm/modules/temporal/pattern/tokens.d.ts.map +1 -0
- package/dist/esm/modules/temporal/pattern/tokens.js +191 -0
- package/dist/esm/modules/temporal/pattern/tokens.js.map +1 -0
- package/package.json +1 -1
- package/dist/cjs/modules/temporal/adapters/guards.d.ts +0 -4
- package/dist/cjs/modules/temporal/adapters/guards.d.ts.map +0 -1
- package/dist/cjs/modules/temporal/adapters/guards.js +0 -14
- package/dist/cjs/modules/temporal/adapters/guards.js.map +0 -1
- package/dist/cjs/modules/temporal/calendar.d.ts +0 -52
- package/dist/cjs/modules/temporal/calendar.d.ts.map +0 -1
- package/dist/cjs/modules/temporal/calendar.js +0 -151
- package/dist/cjs/modules/temporal/calendar.js.map +0 -1
- package/dist/cjs/modules/temporal/duration.d.ts.map +0 -1
- package/dist/cjs/modules/temporal/duration.js +0 -64
- package/dist/cjs/modules/temporal/duration.js.map +0 -1
- package/dist/cjs/modules/temporal/locale.d.ts.map +0 -1
- package/dist/cjs/modules/temporal/locale.js.map +0 -1
- package/dist/cjs/modules/temporal/pattern.d.ts.map +0 -1
- package/dist/cjs/modules/temporal/pattern.js.map +0 -1
- package/dist/cjs/modules/temporal/tokens.d.ts +0 -78
- package/dist/cjs/modules/temporal/tokens.d.ts.map +0 -1
- package/dist/cjs/modules/temporal/tokens.js +0 -145
- package/dist/cjs/modules/temporal/tokens.js.map +0 -1
- package/dist/esm/modules/temporal/adapters/guards.d.ts +0 -4
- package/dist/esm/modules/temporal/adapters/guards.d.ts.map +0 -1
- package/dist/esm/modules/temporal/adapters/guards.js +0 -10
- package/dist/esm/modules/temporal/adapters/guards.js.map +0 -1
- package/dist/esm/modules/temporal/calendar.d.ts +0 -52
- package/dist/esm/modules/temporal/calendar.d.ts.map +0 -1
- package/dist/esm/modules/temporal/calendar.js +0 -138
- package/dist/esm/modules/temporal/calendar.js.map +0 -1
- package/dist/esm/modules/temporal/duration.d.ts.map +0 -1
- package/dist/esm/modules/temporal/duration.js +0 -60
- package/dist/esm/modules/temporal/duration.js.map +0 -1
- package/dist/esm/modules/temporal/locale.d.ts.map +0 -1
- package/dist/esm/modules/temporal/locale.js.map +0 -1
- package/dist/esm/modules/temporal/pattern.d.ts.map +0 -1
- package/dist/esm/modules/temporal/pattern.js.map +0 -1
- package/dist/esm/modules/temporal/tokens.d.ts +0 -78
- package/dist/esm/modules/temporal/tokens.d.ts.map +0 -1
- package/dist/esm/modules/temporal/tokens.js +0 -133
- package/dist/esm/modules/temporal/tokens.js.map +0 -1
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TemporalTokens = void 0;
|
|
4
|
+
/** The pattern dialect's tokens: what each one writes, and how a parse reads digits and offsets. */
|
|
5
|
+
class TemporalTokens {
|
|
6
|
+
static { this.SUPPORTED = 'YYYY YY MM M DD D HH H mm m ss s SSS Z ZZ, and for writing only MMMM MMM dddd ddd dd A a hh h LL L Q'; }
|
|
7
|
+
static { this.WRITE_ONLY_TOKENS = new Set([
|
|
8
|
+
'MMMM',
|
|
9
|
+
'MMM',
|
|
10
|
+
'dddd',
|
|
11
|
+
'ddd',
|
|
12
|
+
'dd',
|
|
13
|
+
'A',
|
|
14
|
+
'a',
|
|
15
|
+
'hh',
|
|
16
|
+
'h',
|
|
17
|
+
'LL',
|
|
18
|
+
'L',
|
|
19
|
+
'Q',
|
|
20
|
+
]); }
|
|
21
|
+
static isWriteOnlyToken(token) {
|
|
22
|
+
return TemporalTokens.WRITE_ONLY_TOKENS.has(token);
|
|
23
|
+
}
|
|
24
|
+
static { this.MAX_COMPILED_PATTERNS = 64; }
|
|
25
|
+
/** Two-digit years pivot as dayjs and moment do: 00-68 is 2000-2068, 69-99 is 1969-1999. */
|
|
26
|
+
static { this.TWO_DIGIT_YEAR_PIVOT = 68; }
|
|
27
|
+
/** `[min digits, max digits, field]` for every numeric token a parse reads directly. */
|
|
28
|
+
static { this.NUMERIC_TOKENS = {
|
|
29
|
+
YYYY: [4, 4, 'year'],
|
|
30
|
+
MM: [2, 2, 'month'],
|
|
31
|
+
M: [1, 2, 'month'],
|
|
32
|
+
DD: [2, 2, 'day'],
|
|
33
|
+
D: [1, 2, 'day'],
|
|
34
|
+
HH: [2, 2, 'hour'],
|
|
35
|
+
H: [1, 2, 'hour'],
|
|
36
|
+
mm: [2, 2, 'minute'],
|
|
37
|
+
m: [1, 2, 'minute'],
|
|
38
|
+
ss: [2, 2, 'second'],
|
|
39
|
+
s: [1, 2, 'second'],
|
|
40
|
+
SSS: [3, 3, 'millisecond'],
|
|
41
|
+
}; }
|
|
42
|
+
static pad(opts) {
|
|
43
|
+
return String(opts.value).padStart(opts.width, '0');
|
|
44
|
+
}
|
|
45
|
+
/** `+07:00`, or `+07:06:40` for an offset with seconds - historic local mean time has them. */
|
|
46
|
+
static formatOffset(opts) {
|
|
47
|
+
const { offsetMinutes, separator } = opts;
|
|
48
|
+
const sign = offsetMinutes < 0 ? '-' : '+';
|
|
49
|
+
const totalSeconds = Math.round(Math.abs(offsetMinutes) * 60);
|
|
50
|
+
const seconds = totalSeconds % 60;
|
|
51
|
+
const text = sign +
|
|
52
|
+
TemporalTokens.pad({ value: Math.floor(totalSeconds / 3600), width: 2 }) +
|
|
53
|
+
separator +
|
|
54
|
+
TemporalTokens.pad({ value: Math.floor((totalSeconds % 3600) / 60), width: 2 });
|
|
55
|
+
return seconds === 0
|
|
56
|
+
? text
|
|
57
|
+
: text + separator + TemporalTokens.pad({ value: seconds, width: 2 });
|
|
58
|
+
}
|
|
59
|
+
/** The hour on a 12-hour clock: 12, 1, ... 11. */
|
|
60
|
+
static twelveHour(opts) {
|
|
61
|
+
return opts.hour % 12 || 12;
|
|
62
|
+
}
|
|
63
|
+
/** One writer per token - a lookup rather than a branch per token on every format. */
|
|
64
|
+
static { this.WRITERS = new Map([
|
|
65
|
+
['YYYY', ({ parts }) => TemporalTokens.pad({ value: parts.year, width: 4 })],
|
|
66
|
+
['YY', ({ parts }) => TemporalTokens.pad({ value: parts.year % 100, width: 2 })],
|
|
67
|
+
[
|
|
68
|
+
'MMMM',
|
|
69
|
+
({ parts, locale, names }) => names?.months?.[parts.month - 1] ??
|
|
70
|
+
locale().monthName({ month: parts.month, width: 'long' }),
|
|
71
|
+
],
|
|
72
|
+
[
|
|
73
|
+
'MMM',
|
|
74
|
+
({ parts, locale, names }) => names?.monthsShort?.[parts.month - 1] ??
|
|
75
|
+
locale().monthName({ month: parts.month, width: 'short' }),
|
|
76
|
+
],
|
|
77
|
+
['MM', ({ parts }) => TemporalTokens.pad({ value: parts.month, width: 2 })],
|
|
78
|
+
['M', ({ parts }) => String(parts.month)],
|
|
79
|
+
['DD', ({ parts }) => TemporalTokens.pad({ value: parts.day, width: 2 })],
|
|
80
|
+
['D', ({ parts }) => String(parts.day)],
|
|
81
|
+
[
|
|
82
|
+
'dddd',
|
|
83
|
+
({ parts, locale, names }) => names?.weekdays?.[parts.dayOfWeek - 1] ??
|
|
84
|
+
locale().weekdayName({ dayOfWeek: parts.dayOfWeek, width: 'long' }),
|
|
85
|
+
],
|
|
86
|
+
[
|
|
87
|
+
'ddd',
|
|
88
|
+
({ parts, locale, names }) => names?.weekdaysShort?.[parts.dayOfWeek - 1] ??
|
|
89
|
+
locale().weekdayName({ dayOfWeek: parts.dayOfWeek, width: 'short' }),
|
|
90
|
+
],
|
|
91
|
+
[
|
|
92
|
+
'dd',
|
|
93
|
+
({ parts, locale, names }) => names?.weekdaysMin?.[parts.dayOfWeek - 1] ??
|
|
94
|
+
locale().weekdayName({ dayOfWeek: parts.dayOfWeek, width: 'narrow' }),
|
|
95
|
+
],
|
|
96
|
+
['HH', ({ parts }) => TemporalTokens.pad({ value: parts.hour, width: 2 })],
|
|
97
|
+
['H', ({ parts }) => String(parts.hour)],
|
|
98
|
+
[
|
|
99
|
+
'hh',
|
|
100
|
+
({ parts }) => TemporalTokens.pad({ value: TemporalTokens.twelveHour({ hour: parts.hour }), width: 2 }),
|
|
101
|
+
],
|
|
102
|
+
['h', ({ parts }) => String(TemporalTokens.twelveHour({ hour: parts.hour }))],
|
|
103
|
+
[
|
|
104
|
+
'A',
|
|
105
|
+
({ parts, locale, names }) => locale().dayPeriod({ hour: parts.hour, meridiem: names?.meridiem }),
|
|
106
|
+
],
|
|
107
|
+
[
|
|
108
|
+
'a',
|
|
109
|
+
({ parts, locale, names }) => locale().dayPeriod({ hour: parts.hour, meridiem: names?.meridiem, isLowerCase: true }),
|
|
110
|
+
],
|
|
111
|
+
['mm', ({ parts }) => TemporalTokens.pad({ value: parts.minute, width: 2 })],
|
|
112
|
+
['m', ({ parts }) => String(parts.minute)],
|
|
113
|
+
['ss', ({ parts }) => TemporalTokens.pad({ value: parts.second, width: 2 })],
|
|
114
|
+
['s', ({ parts }) => String(parts.second)],
|
|
115
|
+
['SSS', ({ parts }) => TemporalTokens.pad({ value: parts.millisecond, width: 3 })],
|
|
116
|
+
[
|
|
117
|
+
'Z',
|
|
118
|
+
({ parts }) => TemporalTokens.formatOffset({ offsetMinutes: parts.offsetMinutes, separator: ':' }),
|
|
119
|
+
],
|
|
120
|
+
[
|
|
121
|
+
'ZZ',
|
|
122
|
+
({ parts }) => TemporalTokens.formatOffset({ offsetMinutes: parts.offsetMinutes, separator: '' }),
|
|
123
|
+
],
|
|
124
|
+
['LL', ({ parts, locale }) => locale().writtenDate({ parts, style: 'long' })],
|
|
125
|
+
['L', ({ parts, locale }) => locale().writtenDate({ parts, style: 'numeric' })],
|
|
126
|
+
['Q', ({ parts }) => String(Math.floor((parts.month - 1) / 3) + 1)],
|
|
127
|
+
]); }
|
|
128
|
+
static isLetter(opts) {
|
|
129
|
+
const { code } = opts;
|
|
130
|
+
return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);
|
|
131
|
+
}
|
|
132
|
+
static isDigit(opts) {
|
|
133
|
+
return opts.code >= 48 && opts.code <= 57;
|
|
134
|
+
}
|
|
135
|
+
/** Reads `min`..`max` digits at `position`, greedily; undefined when fewer than `min` are there. */
|
|
136
|
+
static readDigits(opts) {
|
|
137
|
+
const { value, position, min, max } = opts;
|
|
138
|
+
let next = position;
|
|
139
|
+
let number = 0;
|
|
140
|
+
while (next < value.length &&
|
|
141
|
+
next - position < max &&
|
|
142
|
+
TemporalTokens.isDigit({ code: value.charCodeAt(next) })) {
|
|
143
|
+
number = number * 10 + (value.charCodeAt(next) - 48);
|
|
144
|
+
next += 1;
|
|
145
|
+
}
|
|
146
|
+
return next - position < min ? undefined : { number, next };
|
|
147
|
+
}
|
|
148
|
+
/** Reads two digits after an optional separator; undefined when either is missing. */
|
|
149
|
+
static readOffsetField(opts) {
|
|
150
|
+
const { value, position, separator } = opts;
|
|
151
|
+
if (separator && value[position] !== ':') {
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
return TemporalTokens.readDigits({
|
|
155
|
+
value,
|
|
156
|
+
position: separator ? position + 1 : position,
|
|
157
|
+
min: 2,
|
|
158
|
+
max: 2,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* `Z`, `+07:00` (`Z` token) or `+0700` (`ZZ` token), seconds optional, as milliseconds east
|
|
163
|
+
* of UTC. Hours past 23 and minutes or seconds past 59 are refused rather than rolled over.
|
|
164
|
+
*/
|
|
165
|
+
static readOffset(opts) {
|
|
166
|
+
const { value, position, separator } = opts;
|
|
167
|
+
const sign = value[position];
|
|
168
|
+
if (sign === 'Z') {
|
|
169
|
+
return { milliseconds: 0, next: position + 1 };
|
|
170
|
+
}
|
|
171
|
+
if (sign !== '+' && sign !== '-') {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
const hours = TemporalTokens.readDigits({ value, position: position + 1, min: 2, max: 2 });
|
|
175
|
+
if (!hours) {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
const minutes = TemporalTokens.readOffsetField({ value, position: hours.next, separator });
|
|
179
|
+
if (!minutes) {
|
|
180
|
+
return undefined;
|
|
181
|
+
}
|
|
182
|
+
const seconds = TemporalTokens.readOffsetField({ value, position: minutes.next, separator });
|
|
183
|
+
if (hours.number > 23 || minutes.number > 59 || (seconds && seconds.number > 59)) {
|
|
184
|
+
return undefined;
|
|
185
|
+
}
|
|
186
|
+
const total = ((hours.number * 60 + minutes.number) * 60 + (seconds?.number ?? 0)) * 1000;
|
|
187
|
+
return { milliseconds: sign === '-' ? -total : total, next: (seconds ?? minutes).next };
|
|
188
|
+
}
|
|
189
|
+
static { this.TOKEN_NAMES = new Set(TemporalTokens.WRITERS.keys()); }
|
|
190
|
+
static isToken(run) {
|
|
191
|
+
return TemporalTokens.TOKEN_NAMES.has(run);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.TemporalTokens = TemporalTokens;
|
|
195
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../../src/modules/temporal/pattern/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { BaseHelper } from '../base.js';
|
|
2
|
+
import type { TTemporalDurationStyle, TTemporalInclusivity, TTemporalUnit } from './common/constants.js';
|
|
3
|
+
import type { ITemporalAdapter, ITemporalDurationParts, ITemporalLocaleNames, ITemporalParts, TTemporalFields, IZonedTemporalParts, TTemporalInput, ITemporalHelper } from './common/types.js';
|
|
4
|
+
export declare abstract class AbstractTemporalHelper extends BaseHelper implements ITemporalHelper {
|
|
5
|
+
/** Validated once per process: `Intl` answers the same for a zone name every time. */
|
|
6
|
+
protected static readonly knownTzs: Set<string>;
|
|
7
|
+
protected readonly adapter: ITemporalAdapter;
|
|
8
|
+
protected readonly tz: string;
|
|
9
|
+
protected readonly locale: string;
|
|
10
|
+
protected readonly names: Record<string, ITemporalLocaleNames>;
|
|
11
|
+
protected readonly fallback?: string;
|
|
12
|
+
/** Which `names` entry each locale a call wrote in resolved to - `names` never changes after construction. */
|
|
13
|
+
private readonly namesByLocale;
|
|
14
|
+
/**
|
|
15
|
+
* `locale` (default `en-US`) spells month and weekday names, AM/PM, relative time and durations,
|
|
16
|
+
* unless a call passes its own. `names` replaces `Intl`'s wording for a locale - month and weekday
|
|
17
|
+
* names, the AM/PM marker - keyed by a locale tag; a call in another tag of the same language (`vi`
|
|
18
|
+
* for a `vi-VN` entry) uses it too. `fallback` is what `format` and `formatIntl` write for a value
|
|
19
|
+
* that is not a date when a call gives none; without it, such a value is a 400.
|
|
20
|
+
*/
|
|
21
|
+
constructor(opts?: {
|
|
22
|
+
adapter?: ITemporalAdapter;
|
|
23
|
+
tz?: string;
|
|
24
|
+
locale?: string;
|
|
25
|
+
names?: Record<string, ITemporalLocaleNames>;
|
|
26
|
+
fallback?: string;
|
|
27
|
+
scope?: string;
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* The zone a `Date`'s local getters use on this runtime - the browser's or the server's. The one
|
|
31
|
+
* place this helper reads the host zone, and only when a wall-clock bridge is not given one.
|
|
32
|
+
*/
|
|
33
|
+
static getHostTz(): string;
|
|
34
|
+
/** The instant whose wall clock in `to` reads what `value`'s wall clock reads in `from`. */
|
|
35
|
+
protected moveWallClock(opts: {
|
|
36
|
+
value: TTemporalInput;
|
|
37
|
+
from: string;
|
|
38
|
+
to: string;
|
|
39
|
+
}): Date;
|
|
40
|
+
/** Every list the right length, so a bad table fails when the helper is built, not on a screen. */
|
|
41
|
+
protected static ensureNames(opts: {
|
|
42
|
+
names: Record<string, ITemporalLocaleNames>;
|
|
43
|
+
}): Record<string, ITemporalLocaleNames>;
|
|
44
|
+
/** The wording this helper holds for `locale`, if any. */
|
|
45
|
+
protected namesOf(opts: {
|
|
46
|
+
locale: string;
|
|
47
|
+
}): ITemporalLocaleNames | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* The value as a date for a writer: with a fallback - the call's, else the helper's - a value that
|
|
50
|
+
* is not a date answers `null`; without one it is a 400, null included.
|
|
51
|
+
*/
|
|
52
|
+
protected readDate(opts: {
|
|
53
|
+
value: TTemporalInput | null | undefined;
|
|
54
|
+
tz: string;
|
|
55
|
+
fallback?: string;
|
|
56
|
+
}): Date | null;
|
|
57
|
+
/** The runtime's `Temporal` where it has one; `Intl`, which every runtime has, everywhere else. */
|
|
58
|
+
protected static defaultAdapter(): ITemporalAdapter;
|
|
59
|
+
protected static ensureLocale(opts: {
|
|
60
|
+
locale: string;
|
|
61
|
+
}): string;
|
|
62
|
+
/** A parse or input error the caller may treat as "not a date"; anything else is a bug and still throws. */
|
|
63
|
+
protected static isRefusal(error: unknown): boolean;
|
|
64
|
+
protected static ensureTz(opts: {
|
|
65
|
+
tz: string;
|
|
66
|
+
statusCode: number;
|
|
67
|
+
}): string;
|
|
68
|
+
protected static ensureUnit(opts: {
|
|
69
|
+
unit: string;
|
|
70
|
+
amount?: number;
|
|
71
|
+
}): void;
|
|
72
|
+
/** Every result passes here: an overflowing `add` is refused, never an Invalid Date. */
|
|
73
|
+
protected static ensureInstant(opts: {
|
|
74
|
+
epoch: number;
|
|
75
|
+
}): Date;
|
|
76
|
+
protected static ensureYear(opts: {
|
|
77
|
+
parts: ITemporalParts;
|
|
78
|
+
}): void;
|
|
79
|
+
protected resolveTz(opts: {
|
|
80
|
+
tz?: string;
|
|
81
|
+
}): string;
|
|
82
|
+
/** The adapter's one answer, rounded: an offset is whole milliseconds, a library's float may not be. */
|
|
83
|
+
protected offsetAt(opts: {
|
|
84
|
+
epoch: number;
|
|
85
|
+
tz: string;
|
|
86
|
+
}): number;
|
|
87
|
+
protected zonedParts(opts: {
|
|
88
|
+
epoch: number;
|
|
89
|
+
tz: string;
|
|
90
|
+
}): IZonedTemporalParts;
|
|
91
|
+
/**
|
|
92
|
+
* Every instant whose wall clock reads `parts` in the zone, earliest first: one as a rule, two
|
|
93
|
+
* when the clock goes back, none when it jumps forward. `forward` is where a skipped time lands -
|
|
94
|
+
* read with the offset from before the jump, so it moves past the gap.
|
|
95
|
+
*/
|
|
96
|
+
protected instantsOf(opts: {
|
|
97
|
+
parts: ITemporalParts;
|
|
98
|
+
tz: string;
|
|
99
|
+
}): {
|
|
100
|
+
instants: Array<number>;
|
|
101
|
+
forward: number;
|
|
102
|
+
};
|
|
103
|
+
/** The instant wall-clock `parts` name: a skipped time moves forward, a repeated one takes the earlier. */
|
|
104
|
+
protected earliestOf(opts: {
|
|
105
|
+
parts: ITemporalParts;
|
|
106
|
+
tz: string;
|
|
107
|
+
}): number;
|
|
108
|
+
/**
|
|
109
|
+
* `[start, end)` of the unit holding `epoch`. A day or longer starts at its first instant. An hour
|
|
110
|
+
* or less repeats when the clock goes back, so it starts at the latest start not after `epoch`,
|
|
111
|
+
* and ends where the wall clock next shows either the following unit or this one's start again.
|
|
112
|
+
*/
|
|
113
|
+
protected unitBounds(opts: {
|
|
114
|
+
epoch: number;
|
|
115
|
+
unit: TTemporalUnit;
|
|
116
|
+
tz: string;
|
|
117
|
+
}): {
|
|
118
|
+
start: number;
|
|
119
|
+
end: number;
|
|
120
|
+
};
|
|
121
|
+
getTz(): string;
|
|
122
|
+
getLocale(): string;
|
|
123
|
+
now(): Date;
|
|
124
|
+
/** The instant a value names. An ISO string without an offset is read as wall clock in the zone. */
|
|
125
|
+
toDate(opts: {
|
|
126
|
+
value: TTemporalInput;
|
|
127
|
+
tz?: string;
|
|
128
|
+
}): Date;
|
|
129
|
+
protected static notADate(opts: {
|
|
130
|
+
value: unknown;
|
|
131
|
+
}): import("@venizia/ignis-inversion").ApplicationError;
|
|
132
|
+
/** `toDate`, answering `null` where `toDate` refuses the value: null, undefined, bad text, NaN. */
|
|
133
|
+
tryToDate(opts: {
|
|
134
|
+
value: TTemporalInput | null | undefined;
|
|
135
|
+
tz?: string;
|
|
136
|
+
}): Date | null;
|
|
137
|
+
/** The wall clock the value shows in the zone, with its ISO weekday and UTC offset. */
|
|
138
|
+
parts(opts: {
|
|
139
|
+
value: TTemporalInput;
|
|
140
|
+
tz?: string;
|
|
141
|
+
}): IZonedTemporalParts;
|
|
142
|
+
/**
|
|
143
|
+
* Fractional months from `other` to `value` (dayjs and moment's month difference): anchored on the
|
|
144
|
+
* date with the later day of the month, whole months by `add`, the rest as a share of the month
|
|
145
|
+
* it falls in.
|
|
146
|
+
*/
|
|
147
|
+
protected monthGap(opts: {
|
|
148
|
+
value: number;
|
|
149
|
+
other: number;
|
|
150
|
+
tz: string;
|
|
151
|
+
}): number;
|
|
152
|
+
/** `add` by months without the 1-9999 check: an anchor one month past the range is still a number. */
|
|
153
|
+
protected shiftMonthsFrom(opts: {
|
|
154
|
+
parts: IZonedTemporalParts;
|
|
155
|
+
months: number;
|
|
156
|
+
tz: string;
|
|
157
|
+
}): number;
|
|
158
|
+
abstract fromWallClock(opts: {
|
|
159
|
+
value: TTemporalInput;
|
|
160
|
+
sourceTz?: string;
|
|
161
|
+
tz?: string;
|
|
162
|
+
}): Date;
|
|
163
|
+
abstract toWallClock(opts: {
|
|
164
|
+
value: TTemporalInput;
|
|
165
|
+
targetTz?: string;
|
|
166
|
+
tz?: string;
|
|
167
|
+
}): Date;
|
|
168
|
+
abstract clone(opts: {
|
|
169
|
+
locale?: string;
|
|
170
|
+
tz?: string;
|
|
171
|
+
}): ITemporalHelper;
|
|
172
|
+
abstract parse(opts: {
|
|
173
|
+
value: string;
|
|
174
|
+
pattern?: string;
|
|
175
|
+
tz?: string;
|
|
176
|
+
}): Date;
|
|
177
|
+
abstract tryParse(opts: {
|
|
178
|
+
value: string;
|
|
179
|
+
pattern?: string;
|
|
180
|
+
tz?: string;
|
|
181
|
+
}): Date | null;
|
|
182
|
+
abstract isValid(opts: {
|
|
183
|
+
value: TTemporalInput | null | undefined;
|
|
184
|
+
pattern?: string;
|
|
185
|
+
tz?: string;
|
|
186
|
+
}): boolean;
|
|
187
|
+
abstract format(opts: {
|
|
188
|
+
value: TTemporalInput | null | undefined;
|
|
189
|
+
pattern?: string;
|
|
190
|
+
tz?: string;
|
|
191
|
+
locale?: string;
|
|
192
|
+
fallback?: string;
|
|
193
|
+
}): string;
|
|
194
|
+
abstract formatIntl(opts: {
|
|
195
|
+
value: TTemporalInput;
|
|
196
|
+
options?: Omit<Intl.DateTimeFormatOptions, 'timeZone'>;
|
|
197
|
+
tz?: string;
|
|
198
|
+
locale?: string;
|
|
199
|
+
}): string;
|
|
200
|
+
abstract add(opts: {
|
|
201
|
+
value: TTemporalInput;
|
|
202
|
+
amount: number;
|
|
203
|
+
unit: TTemporalUnit;
|
|
204
|
+
tz?: string;
|
|
205
|
+
}): Date;
|
|
206
|
+
abstract subtract(opts: {
|
|
207
|
+
value: TTemporalInput;
|
|
208
|
+
amount: number;
|
|
209
|
+
unit: TTemporalUnit;
|
|
210
|
+
tz?: string;
|
|
211
|
+
}): Date;
|
|
212
|
+
abstract startOf(opts: {
|
|
213
|
+
value: TTemporalInput;
|
|
214
|
+
unit: TTemporalUnit;
|
|
215
|
+
tz?: string;
|
|
216
|
+
}): Date;
|
|
217
|
+
abstract endOf(opts: {
|
|
218
|
+
value: TTemporalInput;
|
|
219
|
+
unit: TTemporalUnit;
|
|
220
|
+
tz?: string;
|
|
221
|
+
}): Date;
|
|
222
|
+
abstract isWeekday(opts: {
|
|
223
|
+
value: TTemporalInput;
|
|
224
|
+
tz?: string;
|
|
225
|
+
}): boolean;
|
|
226
|
+
abstract nextWeekday(opts: {
|
|
227
|
+
value: TTemporalInput;
|
|
228
|
+
tz?: string;
|
|
229
|
+
}): Date;
|
|
230
|
+
abstract previousWeekday(opts: {
|
|
231
|
+
value: TTemporalInput;
|
|
232
|
+
tz?: string;
|
|
233
|
+
}): Date;
|
|
234
|
+
abstract set(opts: {
|
|
235
|
+
value: TTemporalInput;
|
|
236
|
+
tz?: string;
|
|
237
|
+
} & TTemporalFields): Date;
|
|
238
|
+
abstract isBefore(opts: {
|
|
239
|
+
value: TTemporalInput;
|
|
240
|
+
other: TTemporalInput;
|
|
241
|
+
unit?: TTemporalUnit;
|
|
242
|
+
tz?: string;
|
|
243
|
+
}): boolean;
|
|
244
|
+
abstract isAfter(opts: {
|
|
245
|
+
value: TTemporalInput;
|
|
246
|
+
other: TTemporalInput;
|
|
247
|
+
unit?: TTemporalUnit;
|
|
248
|
+
tz?: string;
|
|
249
|
+
}): boolean;
|
|
250
|
+
abstract isSame(opts: {
|
|
251
|
+
value: TTemporalInput;
|
|
252
|
+
other: TTemporalInput;
|
|
253
|
+
unit?: TTemporalUnit;
|
|
254
|
+
tz?: string;
|
|
255
|
+
}): boolean;
|
|
256
|
+
abstract isSameOrBefore(opts: {
|
|
257
|
+
value: TTemporalInput;
|
|
258
|
+
other: TTemporalInput;
|
|
259
|
+
unit?: TTemporalUnit;
|
|
260
|
+
tz?: string;
|
|
261
|
+
}): boolean;
|
|
262
|
+
abstract isSameOrAfter(opts: {
|
|
263
|
+
value: TTemporalInput;
|
|
264
|
+
other: TTemporalInput;
|
|
265
|
+
unit?: TTemporalUnit;
|
|
266
|
+
tz?: string;
|
|
267
|
+
}): boolean;
|
|
268
|
+
abstract isBetween(opts: {
|
|
269
|
+
value: TTemporalInput;
|
|
270
|
+
from: TTemporalInput;
|
|
271
|
+
to: TTemporalInput;
|
|
272
|
+
unit?: TTemporalUnit;
|
|
273
|
+
inclusivity?: TTemporalInclusivity;
|
|
274
|
+
tz?: string;
|
|
275
|
+
}): boolean;
|
|
276
|
+
abstract diff(opts: {
|
|
277
|
+
value: TTemporalInput;
|
|
278
|
+
other: TTemporalInput;
|
|
279
|
+
unit: TTemporalUnit;
|
|
280
|
+
tz?: string;
|
|
281
|
+
}): number;
|
|
282
|
+
abstract compare(opts: {
|
|
283
|
+
value: TTemporalInput;
|
|
284
|
+
other: TTemporalInput;
|
|
285
|
+
unit?: TTemporalUnit;
|
|
286
|
+
tz?: string;
|
|
287
|
+
}): -1 | 0 | 1;
|
|
288
|
+
abstract relative(opts: {
|
|
289
|
+
value: TTemporalInput;
|
|
290
|
+
base?: TTemporalInput;
|
|
291
|
+
unit?: TTemporalUnit;
|
|
292
|
+
numeric?: Intl.RelativeTimeFormatNumeric;
|
|
293
|
+
style?: Intl.RelativeTimeFormatStyle;
|
|
294
|
+
tz?: string;
|
|
295
|
+
locale?: string;
|
|
296
|
+
}): string;
|
|
297
|
+
abstract durationParts(opts: {
|
|
298
|
+
milliseconds: number;
|
|
299
|
+
}): ITemporalDurationParts;
|
|
300
|
+
abstract formatDuration(opts: {
|
|
301
|
+
milliseconds: number;
|
|
302
|
+
style?: TTemporalDurationStyle;
|
|
303
|
+
/** A clock face instead of words: `HH:mm:ss`, `mm:ss`, `D[d] HH:mm`. The largest token carries the rest. */
|
|
304
|
+
pattern?: string;
|
|
305
|
+
/** Only the largest units that are not zero: `1` writes `2 giờ` for 2 hours 5 minutes. */
|
|
306
|
+
maxUnits?: number;
|
|
307
|
+
locale?: string;
|
|
308
|
+
}): string;
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=abstract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/modules/temporal/abstract.ts"],"names":[],"mappings":"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"}
|