@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.
Files changed (195) hide show
  1. package/dist/cjs/modules/temporal/abstract.d.ts +310 -0
  2. package/dist/cjs/modules/temporal/abstract.d.ts.map +1 -0
  3. package/dist/cjs/modules/temporal/abstract.js +363 -0
  4. package/dist/cjs/modules/temporal/abstract.js.map +1 -0
  5. package/dist/cjs/modules/temporal/adapters/dayjs.d.ts +1 -1
  6. package/dist/cjs/modules/temporal/adapters/dayjs.d.ts.map +1 -1
  7. package/dist/cjs/modules/temporal/adapters/dayjs.js +3 -3
  8. package/dist/cjs/modules/temporal/adapters/dayjs.js.map +1 -1
  9. package/dist/cjs/modules/temporal/adapters/intl.d.ts +1 -1
  10. package/dist/cjs/modules/temporal/adapters/intl.d.ts.map +1 -1
  11. package/dist/cjs/modules/temporal/adapters/intl.js +7 -7
  12. package/dist/cjs/modules/temporal/adapters/intl.js.map +1 -1
  13. package/dist/cjs/modules/temporal/adapters/luxon.d.ts +1 -1
  14. package/dist/cjs/modules/temporal/adapters/luxon.d.ts.map +1 -1
  15. package/dist/cjs/modules/temporal/adapters/luxon.js +3 -3
  16. package/dist/cjs/modules/temporal/adapters/luxon.js.map +1 -1
  17. package/dist/cjs/modules/temporal/adapters/native.d.ts +3 -1
  18. package/dist/cjs/modules/temporal/adapters/native.d.ts.map +1 -1
  19. package/dist/cjs/modules/temporal/adapters/native.js +13 -5
  20. package/dist/cjs/modules/temporal/adapters/native.js.map +1 -1
  21. package/dist/cjs/modules/temporal/calendar/calendar.d.ts +56 -0
  22. package/dist/cjs/modules/temporal/calendar/calendar.d.ts.map +1 -0
  23. package/dist/cjs/modules/temporal/calendar/calendar.js +166 -0
  24. package/dist/cjs/modules/temporal/calendar/calendar.js.map +1 -0
  25. package/dist/cjs/modules/temporal/calendar/index.d.ts +2 -0
  26. package/dist/cjs/modules/temporal/calendar/index.d.ts.map +1 -0
  27. package/dist/cjs/modules/temporal/calendar/index.js +18 -0
  28. package/dist/cjs/modules/temporal/calendar/index.js.map +1 -0
  29. package/dist/cjs/modules/temporal/common/constants.d.ts +14 -3
  30. package/dist/cjs/modules/temporal/common/constants.d.ts.map +1 -1
  31. package/dist/cjs/modules/temporal/common/constants.js +23 -4
  32. package/dist/cjs/modules/temporal/common/constants.js.map +1 -1
  33. package/dist/cjs/modules/temporal/common/types.d.ts +259 -5
  34. package/dist/cjs/modules/temporal/common/types.d.ts.map +1 -1
  35. package/dist/cjs/modules/temporal/{duration.d.ts → duration/duration.d.ts} +9 -2
  36. package/dist/cjs/modules/temporal/duration/duration.d.ts.map +1 -0
  37. package/dist/cjs/modules/temporal/duration/duration.js +135 -0
  38. package/dist/cjs/modules/temporal/duration/duration.js.map +1 -0
  39. package/dist/cjs/modules/temporal/duration/index.d.ts +2 -0
  40. package/dist/cjs/modules/temporal/duration/index.d.ts.map +1 -0
  41. package/dist/cjs/modules/temporal/duration/index.js +18 -0
  42. package/dist/cjs/modules/temporal/duration/index.js.map +1 -0
  43. package/dist/cjs/modules/temporal/helper.d.ts +107 -78
  44. package/dist/cjs/modules/temporal/helper.d.ts.map +1 -1
  45. package/dist/cjs/modules/temporal/helper.js +203 -258
  46. package/dist/cjs/modules/temporal/helper.js.map +1 -1
  47. package/dist/cjs/modules/temporal/index.d.ts +1 -0
  48. package/dist/cjs/modules/temporal/index.d.ts.map +1 -1
  49. package/dist/cjs/modules/temporal/index.js +1 -0
  50. package/dist/cjs/modules/temporal/index.js.map +1 -1
  51. package/dist/cjs/modules/temporal/locale/index.d.ts +2 -0
  52. package/dist/cjs/modules/temporal/locale/index.d.ts.map +1 -0
  53. package/dist/cjs/modules/temporal/locale/index.js +18 -0
  54. package/dist/cjs/modules/temporal/locale/index.js.map +1 -0
  55. package/dist/{esm/modules/temporal → cjs/modules/temporal/locale}/locale.d.ts +3 -2
  56. package/dist/cjs/modules/temporal/locale/locale.d.ts.map +1 -0
  57. package/dist/cjs/modules/temporal/{locale.js → locale/locale.js} +3 -3
  58. package/dist/cjs/modules/temporal/locale/locale.js.map +1 -0
  59. package/dist/cjs/modules/temporal/pattern/common/index.d.ts +2 -0
  60. package/dist/cjs/modules/temporal/pattern/common/index.d.ts.map +1 -0
  61. package/dist/cjs/modules/temporal/pattern/common/index.js +18 -0
  62. package/dist/cjs/modules/temporal/pattern/common/index.js.map +1 -0
  63. package/dist/cjs/modules/temporal/pattern/common/types.d.ts +26 -0
  64. package/dist/cjs/modules/temporal/pattern/common/types.d.ts.map +1 -0
  65. package/dist/cjs/modules/temporal/pattern/common/types.js +3 -0
  66. package/dist/cjs/modules/temporal/pattern/common/types.js.map +1 -0
  67. package/dist/cjs/modules/temporal/pattern/index.d.ts +4 -0
  68. package/dist/cjs/modules/temporal/pattern/index.d.ts.map +1 -0
  69. package/dist/cjs/modules/temporal/pattern/index.js +20 -0
  70. package/dist/cjs/modules/temporal/pattern/index.js.map +1 -0
  71. package/dist/{esm/modules/temporal → cjs/modules/temporal/pattern}/pattern.d.ts +2 -1
  72. package/dist/cjs/modules/temporal/pattern/pattern.d.ts.map +1 -0
  73. package/dist/cjs/modules/temporal/{pattern.js → pattern/pattern.js} +19 -14
  74. package/dist/cjs/modules/temporal/pattern/pattern.js.map +1 -0
  75. package/dist/cjs/modules/temporal/pattern/tokens.d.ts +59 -0
  76. package/dist/cjs/modules/temporal/pattern/tokens.d.ts.map +1 -0
  77. package/dist/cjs/modules/temporal/pattern/tokens.js +195 -0
  78. package/dist/cjs/modules/temporal/pattern/tokens.js.map +1 -0
  79. package/dist/esm/modules/temporal/abstract.d.ts +310 -0
  80. package/dist/esm/modules/temporal/abstract.d.ts.map +1 -0
  81. package/dist/esm/modules/temporal/abstract.js +359 -0
  82. package/dist/esm/modules/temporal/abstract.js.map +1 -0
  83. package/dist/esm/modules/temporal/adapters/dayjs.d.ts +1 -1
  84. package/dist/esm/modules/temporal/adapters/dayjs.d.ts.map +1 -1
  85. package/dist/esm/modules/temporal/adapters/dayjs.js +3 -3
  86. package/dist/esm/modules/temporal/adapters/dayjs.js.map +1 -1
  87. package/dist/esm/modules/temporal/adapters/intl.d.ts +1 -1
  88. package/dist/esm/modules/temporal/adapters/intl.d.ts.map +1 -1
  89. package/dist/esm/modules/temporal/adapters/intl.js +7 -7
  90. package/dist/esm/modules/temporal/adapters/intl.js.map +1 -1
  91. package/dist/esm/modules/temporal/adapters/luxon.d.ts +1 -1
  92. package/dist/esm/modules/temporal/adapters/luxon.d.ts.map +1 -1
  93. package/dist/esm/modules/temporal/adapters/luxon.js +3 -3
  94. package/dist/esm/modules/temporal/adapters/luxon.js.map +1 -1
  95. package/dist/esm/modules/temporal/adapters/native.d.ts +3 -1
  96. package/dist/esm/modules/temporal/adapters/native.d.ts.map +1 -1
  97. package/dist/esm/modules/temporal/adapters/native.js +13 -5
  98. package/dist/esm/modules/temporal/adapters/native.js.map +1 -1
  99. package/dist/esm/modules/temporal/calendar/calendar.d.ts +56 -0
  100. package/dist/esm/modules/temporal/calendar/calendar.d.ts.map +1 -0
  101. package/dist/esm/modules/temporal/calendar/calendar.js +162 -0
  102. package/dist/esm/modules/temporal/calendar/calendar.js.map +1 -0
  103. package/dist/esm/modules/temporal/calendar/index.d.ts +2 -0
  104. package/dist/esm/modules/temporal/calendar/index.d.ts.map +1 -0
  105. package/dist/esm/modules/temporal/calendar/index.js +2 -0
  106. package/dist/esm/modules/temporal/calendar/index.js.map +1 -0
  107. package/dist/esm/modules/temporal/common/constants.d.ts +14 -3
  108. package/dist/esm/modules/temporal/common/constants.d.ts.map +1 -1
  109. package/dist/esm/modules/temporal/common/constants.js +21 -3
  110. package/dist/esm/modules/temporal/common/constants.js.map +1 -1
  111. package/dist/esm/modules/temporal/common/types.d.ts +259 -5
  112. package/dist/esm/modules/temporal/common/types.d.ts.map +1 -1
  113. package/dist/esm/modules/temporal/{duration.d.ts → duration/duration.d.ts} +9 -2
  114. package/dist/esm/modules/temporal/duration/duration.d.ts.map +1 -0
  115. package/dist/esm/modules/temporal/duration/duration.js +131 -0
  116. package/dist/esm/modules/temporal/duration/duration.js.map +1 -0
  117. package/dist/esm/modules/temporal/duration/index.d.ts +2 -0
  118. package/dist/esm/modules/temporal/duration/index.d.ts.map +1 -0
  119. package/dist/esm/modules/temporal/duration/index.js +2 -0
  120. package/dist/esm/modules/temporal/duration/index.js.map +1 -0
  121. package/dist/esm/modules/temporal/helper.d.ts +107 -78
  122. package/dist/esm/modules/temporal/helper.d.ts.map +1 -1
  123. package/dist/esm/modules/temporal/helper.js +208 -263
  124. package/dist/esm/modules/temporal/helper.js.map +1 -1
  125. package/dist/esm/modules/temporal/index.d.ts +1 -0
  126. package/dist/esm/modules/temporal/index.d.ts.map +1 -1
  127. package/dist/esm/modules/temporal/index.js +1 -0
  128. package/dist/esm/modules/temporal/index.js.map +1 -1
  129. package/dist/esm/modules/temporal/locale/index.d.ts +2 -0
  130. package/dist/esm/modules/temporal/locale/index.d.ts.map +1 -0
  131. package/dist/esm/modules/temporal/locale/index.js +2 -0
  132. package/dist/esm/modules/temporal/locale/index.js.map +1 -0
  133. package/dist/{cjs/modules/temporal → esm/modules/temporal/locale}/locale.d.ts +3 -2
  134. package/dist/esm/modules/temporal/locale/locale.d.ts.map +1 -0
  135. package/dist/esm/modules/temporal/{locale.js → locale/locale.js} +3 -3
  136. package/dist/esm/modules/temporal/locale/locale.js.map +1 -0
  137. package/dist/esm/modules/temporal/pattern/common/index.d.ts +2 -0
  138. package/dist/esm/modules/temporal/pattern/common/index.d.ts.map +1 -0
  139. package/dist/esm/modules/temporal/pattern/common/index.js +2 -0
  140. package/dist/esm/modules/temporal/pattern/common/index.js.map +1 -0
  141. package/dist/esm/modules/temporal/pattern/common/types.d.ts +26 -0
  142. package/dist/esm/modules/temporal/pattern/common/types.d.ts.map +1 -0
  143. package/dist/esm/modules/temporal/pattern/common/types.js +2 -0
  144. package/dist/esm/modules/temporal/pattern/common/types.js.map +1 -0
  145. package/dist/esm/modules/temporal/pattern/index.d.ts +4 -0
  146. package/dist/esm/modules/temporal/pattern/index.d.ts.map +1 -0
  147. package/dist/esm/modules/temporal/pattern/index.js +4 -0
  148. package/dist/esm/modules/temporal/pattern/index.js.map +1 -0
  149. package/dist/{cjs/modules/temporal → esm/modules/temporal/pattern}/pattern.d.ts +2 -1
  150. package/dist/esm/modules/temporal/pattern/pattern.d.ts.map +1 -0
  151. package/dist/esm/modules/temporal/{pattern.js → pattern/pattern.js} +20 -15
  152. package/dist/esm/modules/temporal/pattern/pattern.js.map +1 -0
  153. package/dist/esm/modules/temporal/pattern/tokens.d.ts +59 -0
  154. package/dist/esm/modules/temporal/pattern/tokens.d.ts.map +1 -0
  155. package/dist/esm/modules/temporal/pattern/tokens.js +191 -0
  156. package/dist/esm/modules/temporal/pattern/tokens.js.map +1 -0
  157. package/package.json +1 -1
  158. package/dist/cjs/modules/temporal/adapters/guards.d.ts +0 -4
  159. package/dist/cjs/modules/temporal/adapters/guards.d.ts.map +0 -1
  160. package/dist/cjs/modules/temporal/adapters/guards.js +0 -14
  161. package/dist/cjs/modules/temporal/adapters/guards.js.map +0 -1
  162. package/dist/cjs/modules/temporal/calendar.d.ts +0 -52
  163. package/dist/cjs/modules/temporal/calendar.d.ts.map +0 -1
  164. package/dist/cjs/modules/temporal/calendar.js +0 -151
  165. package/dist/cjs/modules/temporal/calendar.js.map +0 -1
  166. package/dist/cjs/modules/temporal/duration.d.ts.map +0 -1
  167. package/dist/cjs/modules/temporal/duration.js +0 -64
  168. package/dist/cjs/modules/temporal/duration.js.map +0 -1
  169. package/dist/cjs/modules/temporal/locale.d.ts.map +0 -1
  170. package/dist/cjs/modules/temporal/locale.js.map +0 -1
  171. package/dist/cjs/modules/temporal/pattern.d.ts.map +0 -1
  172. package/dist/cjs/modules/temporal/pattern.js.map +0 -1
  173. package/dist/cjs/modules/temporal/tokens.d.ts +0 -78
  174. package/dist/cjs/modules/temporal/tokens.d.ts.map +0 -1
  175. package/dist/cjs/modules/temporal/tokens.js +0 -145
  176. package/dist/cjs/modules/temporal/tokens.js.map +0 -1
  177. package/dist/esm/modules/temporal/adapters/guards.d.ts +0 -4
  178. package/dist/esm/modules/temporal/adapters/guards.d.ts.map +0 -1
  179. package/dist/esm/modules/temporal/adapters/guards.js +0 -10
  180. package/dist/esm/modules/temporal/adapters/guards.js.map +0 -1
  181. package/dist/esm/modules/temporal/calendar.d.ts +0 -52
  182. package/dist/esm/modules/temporal/calendar.d.ts.map +0 -1
  183. package/dist/esm/modules/temporal/calendar.js +0 -138
  184. package/dist/esm/modules/temporal/calendar.js.map +0 -1
  185. package/dist/esm/modules/temporal/duration.d.ts.map +0 -1
  186. package/dist/esm/modules/temporal/duration.js +0 -60
  187. package/dist/esm/modules/temporal/duration.js.map +0 -1
  188. package/dist/esm/modules/temporal/locale.d.ts.map +0 -1
  189. package/dist/esm/modules/temporal/locale.js.map +0 -1
  190. package/dist/esm/modules/temporal/pattern.d.ts.map +0 -1
  191. package/dist/esm/modules/temporal/pattern.js.map +0 -1
  192. package/dist/esm/modules/temporal/tokens.d.ts +0 -78
  193. package/dist/esm/modules/temporal/tokens.d.ts.map +0 -1
  194. package/dist/esm/modules/temporal/tokens.js +0 -133
  195. 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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"}