@venizia/ignis-helpers 0.2.2-1 → 0.2.2-3

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 +295 -0
  2. package/dist/cjs/modules/temporal/abstract.d.ts.map +1 -0
  3. package/dist/cjs/modules/temporal/abstract.js +330 -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 +258 -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 +105 -77
  44. package/dist/cjs/modules/temporal/helper.d.ts.map +1 -1
  45. package/dist/cjs/modules/temporal/helper.js +209 -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 +295 -0
  80. package/dist/esm/modules/temporal/abstract.d.ts.map +1 -0
  81. package/dist/esm/modules/temporal/abstract.js +326 -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 +258 -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 +105 -77
  122. package/dist/esm/modules/temporal/helper.d.ts.map +1 -1
  123. package/dist/esm/modules/temporal/helper.js +214 -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 +2 -2
  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,295 @@
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
+ /**
12
+ * `locale` (default `en-US`) spells month and weekday names, AM/PM, relative time and durations,
13
+ * unless a call passes its own. `names` replaces `Intl`'s wording for a locale - month and weekday
14
+ * names, the AM/PM marker - keyed by the locale tag a call writes in.
15
+ */
16
+ constructor(opts?: {
17
+ adapter?: ITemporalAdapter;
18
+ tz?: string;
19
+ locale?: string;
20
+ names?: Record<string, ITemporalLocaleNames>;
21
+ scope?: string;
22
+ });
23
+ /**
24
+ * The zone a `Date`'s local getters use on this runtime - the browser's or the server's. The one
25
+ * place this helper reads the host zone, and only when a wall-clock bridge is not given one.
26
+ */
27
+ static getHostTz(): string;
28
+ /** The instant whose wall clock in `to` reads what `value`'s wall clock reads in `from`. */
29
+ protected moveWallClock(opts: {
30
+ value: TTemporalInput;
31
+ from: string;
32
+ to: string;
33
+ }): Date;
34
+ /** Every list the right length, so a bad table fails when the helper is built, not on a screen. */
35
+ protected static ensureNames(opts: {
36
+ names: Record<string, ITemporalLocaleNames>;
37
+ }): Record<string, ITemporalLocaleNames>;
38
+ /** The wording this helper holds for `locale`, if any. */
39
+ protected namesOf(opts: {
40
+ locale: string;
41
+ }): ITemporalLocaleNames | undefined;
42
+ /** The runtime's `Temporal` where it has one; `Intl`, which every runtime has, everywhere else. */
43
+ protected static defaultAdapter(): ITemporalAdapter;
44
+ protected static ensureLocale(opts: {
45
+ locale: string;
46
+ }): string;
47
+ /** A parse or input error the caller may treat as "not a date"; anything else is a bug and still throws. */
48
+ protected static isRefusal(error: unknown): boolean;
49
+ protected static ensureTz(opts: {
50
+ tz: string;
51
+ statusCode: number;
52
+ }): string;
53
+ protected static ensureUnit(opts: {
54
+ unit: string;
55
+ amount?: number;
56
+ }): void;
57
+ /** Every result passes here: an overflowing `add` is refused, never an Invalid Date. */
58
+ protected static ensureInstant(opts: {
59
+ epoch: number;
60
+ }): Date;
61
+ protected static ensureYear(opts: {
62
+ parts: ITemporalParts;
63
+ }): void;
64
+ protected resolveTz(opts: {
65
+ tz?: string;
66
+ }): string;
67
+ /** The adapter's one answer, rounded: an offset is whole milliseconds, a library's float may not be. */
68
+ protected offsetAt(opts: {
69
+ epoch: number;
70
+ tz: string;
71
+ }): number;
72
+ protected zonedParts(opts: {
73
+ epoch: number;
74
+ tz: string;
75
+ }): IZonedTemporalParts;
76
+ /**
77
+ * Every instant whose wall clock reads `parts` in the zone, earliest first: one as a rule, two
78
+ * when the clock goes back, none when it jumps forward. `forward` is where a skipped time lands -
79
+ * read with the offset from before the jump, so it moves past the gap.
80
+ */
81
+ protected instantsOf(opts: {
82
+ parts: ITemporalParts;
83
+ tz: string;
84
+ }): {
85
+ instants: Array<number>;
86
+ forward: number;
87
+ };
88
+ /** The instant wall-clock `parts` name: a skipped time moves forward, a repeated one takes the earlier. */
89
+ protected earliestOf(opts: {
90
+ parts: ITemporalParts;
91
+ tz: string;
92
+ }): number;
93
+ /**
94
+ * `[start, end)` of the unit holding `epoch`. A day or longer starts at its first instant. An hour
95
+ * or less repeats when the clock goes back, so it starts at the latest start not after `epoch`,
96
+ * and ends where the wall clock next shows either the following unit or this one's start again.
97
+ */
98
+ protected unitBounds(opts: {
99
+ epoch: number;
100
+ unit: TTemporalUnit;
101
+ tz: string;
102
+ }): {
103
+ start: number;
104
+ end: number;
105
+ };
106
+ getTz(): string;
107
+ getLocale(): string;
108
+ now(): Date;
109
+ /** The instant a value names. An ISO string without an offset is read as wall clock in the zone. */
110
+ toDate(opts: {
111
+ value: TTemporalInput;
112
+ tz?: string;
113
+ }): Date;
114
+ protected static notADate(opts: {
115
+ value: unknown;
116
+ }): import("@venizia/ignis-inversion").ApplicationError;
117
+ /** `toDate`, answering `null` where `toDate` refuses the value: null, undefined, bad text, NaN. */
118
+ tryToDate(opts: {
119
+ value: TTemporalInput | null | undefined;
120
+ tz?: string;
121
+ }): Date | null;
122
+ /** The wall clock the value shows in the zone, with its ISO weekday and UTC offset. */
123
+ parts(opts: {
124
+ value: TTemporalInput;
125
+ tz?: string;
126
+ }): IZonedTemporalParts;
127
+ /**
128
+ * Fractional months from `other` to `value` (dayjs and moment's month difference): anchored on the
129
+ * date with the later day of the month, whole months by `add`, the rest as a share of the month
130
+ * it falls in.
131
+ */
132
+ protected monthGap(opts: {
133
+ value: number;
134
+ other: number;
135
+ tz: string;
136
+ }): number;
137
+ /** `add` by months without the 1-9999 check: an anchor one month past the range is still a number. */
138
+ protected shiftMonthsFrom(opts: {
139
+ parts: IZonedTemporalParts;
140
+ months: number;
141
+ tz: string;
142
+ }): number;
143
+ abstract fromWallClock(opts: {
144
+ value: TTemporalInput;
145
+ sourceTz?: string;
146
+ tz?: string;
147
+ }): Date;
148
+ abstract toWallClock(opts: {
149
+ value: TTemporalInput;
150
+ targetTz?: string;
151
+ tz?: string;
152
+ }): Date;
153
+ abstract clone(opts: {
154
+ locale?: string;
155
+ tz?: string;
156
+ }): ITemporalHelper;
157
+ abstract parse(opts: {
158
+ value: string;
159
+ pattern?: string;
160
+ tz?: string;
161
+ }): Date;
162
+ abstract tryParse(opts: {
163
+ value: string;
164
+ pattern?: string;
165
+ tz?: string;
166
+ }): Date | null;
167
+ abstract isValid(opts: {
168
+ value: TTemporalInput | null | undefined;
169
+ pattern?: string;
170
+ tz?: string;
171
+ }): boolean;
172
+ abstract format(opts: {
173
+ value: TTemporalInput | null | undefined;
174
+ pattern?: string;
175
+ tz?: string;
176
+ locale?: string;
177
+ fallback?: string;
178
+ }): string;
179
+ abstract formatIntl(opts: {
180
+ value: TTemporalInput;
181
+ options?: Omit<Intl.DateTimeFormatOptions, 'timeZone'>;
182
+ tz?: string;
183
+ locale?: string;
184
+ }): string;
185
+ abstract add(opts: {
186
+ value: TTemporalInput;
187
+ amount: number;
188
+ unit: TTemporalUnit;
189
+ tz?: string;
190
+ }): Date;
191
+ abstract subtract(opts: {
192
+ value: TTemporalInput;
193
+ amount: number;
194
+ unit: TTemporalUnit;
195
+ tz?: string;
196
+ }): Date;
197
+ abstract startOf(opts: {
198
+ value: TTemporalInput;
199
+ unit: TTemporalUnit;
200
+ tz?: string;
201
+ }): Date;
202
+ abstract endOf(opts: {
203
+ value: TTemporalInput;
204
+ unit: TTemporalUnit;
205
+ tz?: string;
206
+ }): Date;
207
+ abstract isWeekday(opts: {
208
+ value: TTemporalInput;
209
+ tz?: string;
210
+ }): boolean;
211
+ abstract nextWeekday(opts: {
212
+ value: TTemporalInput;
213
+ tz?: string;
214
+ }): Date;
215
+ abstract previousWeekday(opts: {
216
+ value: TTemporalInput;
217
+ tz?: string;
218
+ }): Date;
219
+ abstract set(opts: {
220
+ value: TTemporalInput;
221
+ tz?: string;
222
+ } & TTemporalFields): Date;
223
+ abstract isBefore(opts: {
224
+ value: TTemporalInput;
225
+ other: TTemporalInput;
226
+ unit?: TTemporalUnit;
227
+ tz?: string;
228
+ }): boolean;
229
+ abstract isAfter(opts: {
230
+ value: TTemporalInput;
231
+ other: TTemporalInput;
232
+ unit?: TTemporalUnit;
233
+ tz?: string;
234
+ }): boolean;
235
+ abstract isSame(opts: {
236
+ value: TTemporalInput;
237
+ other: TTemporalInput;
238
+ unit?: TTemporalUnit;
239
+ tz?: string;
240
+ }): boolean;
241
+ abstract isSameOrBefore(opts: {
242
+ value: TTemporalInput;
243
+ other: TTemporalInput;
244
+ unit?: TTemporalUnit;
245
+ tz?: string;
246
+ }): boolean;
247
+ abstract isSameOrAfter(opts: {
248
+ value: TTemporalInput;
249
+ other: TTemporalInput;
250
+ unit?: TTemporalUnit;
251
+ tz?: string;
252
+ }): boolean;
253
+ abstract isBetween(opts: {
254
+ value: TTemporalInput;
255
+ from: TTemporalInput;
256
+ to: TTemporalInput;
257
+ unit?: TTemporalUnit;
258
+ inclusivity?: TTemporalInclusivity;
259
+ tz?: string;
260
+ }): boolean;
261
+ abstract diff(opts: {
262
+ value: TTemporalInput;
263
+ other: TTemporalInput;
264
+ unit: TTemporalUnit;
265
+ tz?: string;
266
+ }): number;
267
+ abstract compare(opts: {
268
+ value: TTemporalInput;
269
+ other: TTemporalInput;
270
+ unit?: TTemporalUnit;
271
+ tz?: string;
272
+ }): -1 | 0 | 1;
273
+ abstract relative(opts: {
274
+ value: TTemporalInput;
275
+ base?: TTemporalInput;
276
+ unit?: TTemporalUnit;
277
+ numeric?: Intl.RelativeTimeFormatNumeric;
278
+ style?: Intl.RelativeTimeFormatStyle;
279
+ tz?: string;
280
+ locale?: string;
281
+ }): string;
282
+ abstract durationParts(opts: {
283
+ milliseconds: number;
284
+ }): ITemporalDurationParts;
285
+ abstract formatDuration(opts: {
286
+ milliseconds: number;
287
+ style?: TTemporalDurationStyle;
288
+ /** A clock face instead of words: `HH:mm:ss`, `mm:ss`, `D[d] HH:mm`. The largest token carries the rest. */
289
+ pattern?: string;
290
+ /** Only the largest units that are not zero: `1` writes `2 giờ` for 2 hours 5 minutes. */
291
+ maxUnits?: number;
292
+ locale?: string;
293
+ }): string;
294
+ }
295
+ //# 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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"}