@nextera.one/tps-standard 0.5.33 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +88 -0
- package/README.md +133 -56
- package/dist/date.d.ts +54 -0
- package/dist/date.js +174 -0
- package/dist/date.js.map +1 -0
- package/dist/driver-manager.d.ts +34 -0
- package/dist/driver-manager.js +53 -0
- package/dist/driver-manager.js.map +1 -0
- package/dist/drivers/chinese.d.ts +25 -0
- package/dist/drivers/chinese.js +485 -0
- package/dist/drivers/chinese.js.map +1 -0
- package/dist/drivers/gregorian.d.ts +3 -5
- package/dist/drivers/gregorian.js +26 -19
- package/dist/drivers/gregorian.js.map +1 -1
- package/dist/drivers/hijri.d.ts +1 -16
- package/dist/drivers/hijri.js +9 -102
- package/dist/drivers/hijri.js.map +1 -1
- package/dist/drivers/holocene.d.ts +6 -3
- package/dist/drivers/holocene.js +7 -20
- package/dist/drivers/holocene.js.map +1 -1
- package/dist/drivers/julian.d.ts +3 -10
- package/dist/drivers/julian.js +11 -71
- package/dist/drivers/julian.js.map +1 -1
- package/dist/drivers/persian.d.ts +1 -6
- package/dist/drivers/persian.js +17 -92
- package/dist/drivers/persian.js.map +1 -1
- package/dist/drivers/tps.d.ts +11 -28
- package/dist/drivers/tps.js +8 -58
- package/dist/drivers/tps.js.map +1 -1
- package/dist/drivers/unix.d.ts +5 -6
- package/dist/drivers/unix.js +10 -32
- package/dist/drivers/unix.js.map +1 -1
- package/dist/esm/date.js +170 -0
- package/dist/esm/date.js.map +1 -0
- package/dist/esm/driver-manager.js +49 -0
- package/dist/esm/driver-manager.js.map +1 -0
- package/dist/esm/drivers/chinese.js +481 -0
- package/dist/esm/drivers/chinese.js.map +1 -0
- package/dist/esm/drivers/gregorian.js +160 -0
- package/dist/esm/drivers/gregorian.js.map +1 -0
- package/dist/esm/drivers/hijri.js +184 -0
- package/dist/esm/drivers/hijri.js.map +1 -0
- package/dist/esm/drivers/holocene.js +115 -0
- package/dist/esm/drivers/holocene.js.map +1 -0
- package/dist/esm/drivers/julian.js +161 -0
- package/dist/esm/drivers/julian.js.map +1 -0
- package/dist/esm/drivers/persian.js +190 -0
- package/dist/esm/drivers/persian.js.map +1 -0
- package/dist/esm/drivers/tps.js +181 -0
- package/dist/esm/drivers/tps.js.map +1 -0
- package/dist/esm/drivers/unix.js +50 -0
- package/dist/esm/drivers/unix.js.map +1 -0
- package/dist/esm/index.js +873 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types.js +28 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/uid.js +221 -0
- package/dist/esm/uid.js.map +1 -0
- package/dist/esm/utils/calendar.js +126 -0
- package/dist/esm/utils/calendar.js.map +1 -0
- package/dist/esm/utils/env.js +76 -0
- package/dist/esm/utils/env.js.map +1 -0
- package/dist/esm/utils/timezone.js +168 -0
- package/dist/esm/utils/timezone.js.map +1 -0
- package/dist/esm/utils/tps-string.js +160 -0
- package/dist/esm/utils/tps-string.js.map +1 -0
- package/dist/index.d.ts +84 -466
- package/dist/index.js +430 -1095
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +103 -0
- package/dist/types.js +31 -0
- package/dist/types.js.map +1 -0
- package/dist/uid.d.ts +48 -0
- package/dist/uid.js +225 -0
- package/dist/uid.js.map +1 -0
- package/dist/utils/calendar.d.ts +55 -0
- package/dist/utils/calendar.js +136 -0
- package/dist/utils/calendar.js.map +1 -0
- package/dist/utils/env.d.ts +12 -0
- package/dist/utils/env.js +79 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/timezone.d.ts +32 -0
- package/dist/utils/timezone.js +173 -0
- package/dist/utils/timezone.js.map +1 -0
- package/dist/utils/tps-string.d.ts +12 -0
- package/dist/utils/tps-string.js +164 -0
- package/dist/utils/tps-string.js.map +1 -0
- package/package.json +20 -5
- package/src/date.ts +243 -0
- package/src/driver-manager.ts +54 -0
- package/src/drivers/chinese.ts +542 -0
- package/src/drivers/gregorian.ts +29 -27
- package/src/drivers/hijri.ts +13 -113
- package/src/drivers/holocene.ts +11 -12
- package/src/drivers/julian.ts +18 -72
- package/src/drivers/persian.ts +25 -92
- package/src/drivers/tps.ts +16 -55
- package/src/drivers/unix.ts +12 -33
- package/src/index.ts +384 -1556
- package/src/types.ts +131 -0
- package/src/uid.ts +308 -0
- package/src/utils/calendar.ts +161 -0
- package/src/utils/env.ts +88 -0
- package/src/utils/timezone.ts +182 -0
- package/src/utils/tps-string.ts +166 -0
package/dist/drivers/persian.js
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PersianDriver = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
* Calendar characteristics:
|
|
8
|
-
* - Solar calendar used in Iran and Afghanistan
|
|
9
|
-
* - Year 1 started in 622 CE (same epoch as Islamic Hijri, but solar-based)
|
|
10
|
-
* - 6 months of 31 days, 5 months of 30 days, 1 month of 29 (30 in leap)
|
|
11
|
-
* - Current year ≈ Gregorian year − 621
|
|
12
|
-
*
|
|
13
|
-
* Conversion uses Julian Day Number algorithms based on jalaali-js.
|
|
14
|
-
*/
|
|
15
|
-
const index_1 = require("../index");
|
|
4
|
+
const tps_string_1 = require("../utils/tps-string");
|
|
5
|
+
const calendar_1 = require("../utils/calendar");
|
|
16
6
|
class PersianDriver {
|
|
17
7
|
constructor() {
|
|
18
8
|
this.code = "per";
|
|
@@ -59,10 +49,9 @@ class PersianDriver {
|
|
|
59
49
|
31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29,
|
|
60
50
|
];
|
|
61
51
|
}
|
|
62
|
-
// ── CalendarDriver interface ──────────────────────────────────────────
|
|
63
52
|
getComponentsFromDate(date) {
|
|
64
|
-
const jdn =
|
|
65
|
-
const { jy, jm, jd } =
|
|
53
|
+
const jdn = (0, calendar_1.gregorianToJdn)(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate());
|
|
54
|
+
const { jy, jm, jd } = (0, calendar_1.jdnToPersian)(jdn);
|
|
66
55
|
return {
|
|
67
56
|
calendar: this.code,
|
|
68
57
|
millennium: Math.floor(jy / 1000) + 1,
|
|
@@ -77,7 +66,6 @@ class PersianDriver {
|
|
|
77
66
|
};
|
|
78
67
|
}
|
|
79
68
|
getDateFromComponents(components) {
|
|
80
|
-
// Reconstruct full Persian year from millennium/century/year if available
|
|
81
69
|
let jy;
|
|
82
70
|
if (components.millennium !== undefined) {
|
|
83
71
|
const m = components.millennium ?? 0;
|
|
@@ -90,17 +78,16 @@ class PersianDriver {
|
|
|
90
78
|
}
|
|
91
79
|
const jm = components.month ?? 1;
|
|
92
80
|
const jd = components.day ?? 1;
|
|
93
|
-
const jdn =
|
|
94
|
-
const { gy, gm, gd } =
|
|
81
|
+
const jdn = (0, calendar_1.persianToJdn)(jy, jm, jd);
|
|
82
|
+
const { gy, gm, gd } = (0, calendar_1.jdnToGregorian)(jdn);
|
|
95
83
|
return new Date(Date.UTC(gy, gm - 1, gd, components.hour ?? 0, components.minute ?? 0, Math.floor(components.second ?? 0), components.millisecond ?? 0));
|
|
96
84
|
}
|
|
97
85
|
getFromDate(date) {
|
|
98
86
|
const comp = this.getComponentsFromDate(date);
|
|
99
|
-
return
|
|
87
|
+
return (0, tps_string_1.buildTimePart)(comp);
|
|
100
88
|
}
|
|
101
89
|
parseDate(input, format) {
|
|
102
90
|
const trimmed = input.trim();
|
|
103
|
-
// Short format: 19/10/1404 or 1404/10/19
|
|
104
91
|
if (format === "short" ||
|
|
105
92
|
(trimmed.includes("/") && trimmed.split("/")[0].length <= 2)) {
|
|
106
93
|
const parts = trimmed.split("/").map(Number);
|
|
@@ -120,7 +107,6 @@ class PersianDriver {
|
|
|
120
107
|
day,
|
|
121
108
|
};
|
|
122
109
|
}
|
|
123
|
-
// ISO-like: 1404-10-19 [HH:MM:SS]
|
|
124
110
|
const segments = trimmed.split(/[\s,T]+/);
|
|
125
111
|
const [parsedYear, month, day] = segments[0].split(/[-/]/).map(Number);
|
|
126
112
|
const result = { calendar: this.code };
|
|
@@ -140,7 +126,6 @@ class PersianDriver {
|
|
|
140
126
|
}
|
|
141
127
|
format(components, format) {
|
|
142
128
|
const pad = (n) => String(n ?? 0).padStart(2, "0");
|
|
143
|
-
// Reconstruct full year from millennium/century/year
|
|
144
129
|
let fullYear;
|
|
145
130
|
if (components.millennium !== undefined) {
|
|
146
131
|
const m = components.millennium ?? 0;
|
|
@@ -151,9 +136,8 @@ class PersianDriver {
|
|
|
151
136
|
else {
|
|
152
137
|
fullYear = components.year ?? 0;
|
|
153
138
|
}
|
|
154
|
-
if (format === "short")
|
|
139
|
+
if (format === "short")
|
|
155
140
|
return `${components.day}/${pad(components.month)}/${fullYear}`;
|
|
156
|
-
}
|
|
157
141
|
if (format === "long") {
|
|
158
142
|
const mn = this.MONTH_NAMES[(components.month ?? 1) - 1];
|
|
159
143
|
return `${components.day} ${mn} ${fullYear}`;
|
|
@@ -178,14 +162,18 @@ class PersianDriver {
|
|
|
178
162
|
comp = input;
|
|
179
163
|
}
|
|
180
164
|
const { year, month, day } = comp;
|
|
181
|
-
if (
|
|
165
|
+
if (year === undefined || year < 1)
|
|
182
166
|
return false;
|
|
183
|
-
if (
|
|
167
|
+
if (month === undefined || month < 1 || month > 12)
|
|
184
168
|
return false;
|
|
185
|
-
if (
|
|
169
|
+
if (day === undefined || day < 1)
|
|
186
170
|
return false;
|
|
187
|
-
|
|
188
|
-
|
|
171
|
+
// leap check
|
|
172
|
+
const leapYears = [1, 5, 9, 13, 17, 22, 26, 30];
|
|
173
|
+
const cycle = ((year - 1) % 33) + 1;
|
|
174
|
+
const isLeap = leapYears.includes(cycle);
|
|
175
|
+
let max = this.DAYS_IN_MONTH[month - 1];
|
|
176
|
+
if (month === 12 && isLeap)
|
|
189
177
|
max = 30;
|
|
190
178
|
return day <= max;
|
|
191
179
|
}
|
|
@@ -201,69 +189,6 @@ class PersianDriver {
|
|
|
201
189
|
epochYear: 622,
|
|
202
190
|
};
|
|
203
191
|
}
|
|
204
|
-
// ── Internal: leap year (33-year cycle) ───────────────────────────────
|
|
205
|
-
isLeapYear(year) {
|
|
206
|
-
const leapYears = [1, 5, 9, 13, 17, 22, 26, 30];
|
|
207
|
-
const cycle = ((year - 1) % 33) + 1;
|
|
208
|
-
return leapYears.includes(cycle);
|
|
209
|
-
}
|
|
210
|
-
// ── Internal: Julian Day Number algorithms ────────────────────────────
|
|
211
|
-
gregorianToJdn(gy, gm, gd) {
|
|
212
|
-
const a = Math.floor((14 - gm) / 12);
|
|
213
|
-
const y = gy + 4800 - a;
|
|
214
|
-
const m = gm + 12 * a - 3;
|
|
215
|
-
return (gd +
|
|
216
|
-
Math.floor((153 * m + 2) / 5) +
|
|
217
|
-
365 * y +
|
|
218
|
-
Math.floor(y / 4) -
|
|
219
|
-
Math.floor(y / 100) +
|
|
220
|
-
Math.floor(y / 400) -
|
|
221
|
-
32045);
|
|
222
|
-
}
|
|
223
|
-
jdnToGregorian(jdn) {
|
|
224
|
-
const a = jdn + 32044;
|
|
225
|
-
const b = Math.floor((4 * a + 3) / 146097);
|
|
226
|
-
const c = a - Math.floor((146097 * b) / 4);
|
|
227
|
-
const d = Math.floor((4 * c + 3) / 1461);
|
|
228
|
-
const e = c - Math.floor((1461 * d) / 4);
|
|
229
|
-
const m = Math.floor((5 * e + 2) / 153);
|
|
230
|
-
const gd = e - Math.floor((153 * m + 2) / 5) + 1;
|
|
231
|
-
const gm = m + 3 - 12 * Math.floor(m / 10);
|
|
232
|
-
const gy = 100 * b + d - 4800 + Math.floor(m / 10);
|
|
233
|
-
return { gy, gm, gd };
|
|
234
|
-
}
|
|
235
|
-
persianToJdn(jy, jm, jd) {
|
|
236
|
-
const EPOCH = 1948320;
|
|
237
|
-
const epbase = jy - (jy >= 0 ? 474 : 473);
|
|
238
|
-
const epyear = 474 + (epbase % 2820);
|
|
239
|
-
return (jd +
|
|
240
|
-
(jm <= 7 ? (jm - 1) * 31 : (jm - 1) * 30 + 6) +
|
|
241
|
-
Math.floor((epyear * 682 - 110) / 2816) +
|
|
242
|
-
(epyear - 1) * 365 +
|
|
243
|
-
Math.floor(epbase / 2820) * 1029983 +
|
|
244
|
-
EPOCH -
|
|
245
|
-
1);
|
|
246
|
-
}
|
|
247
|
-
jdnToPersian(jdn) {
|
|
248
|
-
const depoch = jdn - this.persianToJdn(475, 1, 1);
|
|
249
|
-
const cycle = Math.floor(depoch / 1029983);
|
|
250
|
-
const cyear = depoch % 1029983;
|
|
251
|
-
let ycycle;
|
|
252
|
-
if (cyear === 1029982) {
|
|
253
|
-
ycycle = 2820;
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
const aux1 = Math.floor(cyear / 366);
|
|
257
|
-
const aux2 = cyear % 366;
|
|
258
|
-
ycycle =
|
|
259
|
-
Math.floor((2134 * aux1 + 2816 * aux2 + 2815) / 1028522) + aux1 + 1;
|
|
260
|
-
}
|
|
261
|
-
const jy = ycycle + 2820 * cycle + 474;
|
|
262
|
-
const yday = jdn - this.persianToJdn(jy, 1, 1) + 1;
|
|
263
|
-
const jm = yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30);
|
|
264
|
-
const jd = jdn - this.persianToJdn(jy, jm, 1) + 1;
|
|
265
|
-
return { jy: jy <= 0 ? jy - 1 : jy, jm, jd };
|
|
266
|
-
}
|
|
267
192
|
}
|
|
268
193
|
exports.PersianDriver = PersianDriver;
|
|
269
194
|
//# sourceMappingURL=persian.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persian.js","sourceRoot":"","sources":["../../src/drivers/persian.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persian.js","sourceRoot":"","sources":["../../src/drivers/persian.ts"],"names":[],"mappings":"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"}
|
package/dist/drivers/tps.d.ts
CHANGED
|
@@ -12,44 +12,27 @@
|
|
|
12
12
|
* 3. Convert day-of-year to TPS month/day (each month = 28 days)
|
|
13
13
|
* 4. Preserve millennium/century/year structure
|
|
14
14
|
*/
|
|
15
|
-
import { CalendarDriver, CalendarMetadata, TPSComponents } from "../
|
|
15
|
+
import { CalendarDriver, CalendarMetadata, TPSComponents } from "../types";
|
|
16
|
+
/**
|
|
17
|
+
* TPS calendar driver for canonical TPS time strings.
|
|
18
|
+
*
|
|
19
|
+
* TPS Calendar characteristics:
|
|
20
|
+
* - Epoch: August 11, 1999 (00:00 UTC)
|
|
21
|
+
* - Months: Always 28 days (12 months per year = 336 days)
|
|
22
|
+
* - Time offset: 7 hours ahead of Gregorian (00:00 Gregorian = 07:00 TPS)
|
|
23
|
+
*/
|
|
16
24
|
export declare class TpsDriver implements CalendarDriver {
|
|
17
25
|
readonly code = "tps";
|
|
18
26
|
readonly name = "TPS Canonical";
|
|
19
|
-
private readonly TPS_EPOCH;
|
|
20
27
|
private readonly TPS_OFFSET_HOURS;
|
|
21
28
|
private readonly TPS_DAYS_PER_MONTH;
|
|
22
29
|
private readonly TPS_MONTHS_PER_YEAR;
|
|
23
30
|
private readonly gregorian;
|
|
24
|
-
/**
|
|
25
|
-
* Converts a Gregorian Date to TPS components.
|
|
26
|
-
* Applies 7-hour offset and converts day-of-year to TPS month/day (28-day months).
|
|
27
|
-
*/
|
|
28
31
|
getComponentsFromDate(date: Date): Partial<TPSComponents>;
|
|
29
|
-
/**
|
|
30
|
-
* Converts TPS components to a Gregorian Date.
|
|
31
|
-
* Converts TPS month/day (28-day months) to day-of-year, then removes 7-hour offset.
|
|
32
|
-
*/
|
|
33
32
|
getDateFromComponents(components: Partial<TPSComponents>): Date;
|
|
34
33
|
getFromDate(date: Date): string;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
* Optional time: "YYYY-MM-DD HH:MM:SS.mmm"
|
|
38
|
-
*/
|
|
39
|
-
parseDate(input: string, format?: string): Partial<TPSComponents>;
|
|
40
|
-
/**
|
|
41
|
-
* Format TPS components to "YYYY-MM-DD" where MM is 01-12, DD is 01-28.
|
|
42
|
-
* With time: "YYYY-MM-DD THH:MM:SS.mmm"
|
|
43
|
-
*/
|
|
44
|
-
format(components: Partial<TPSComponents>, format?: string): string;
|
|
45
|
-
/**
|
|
46
|
-
* Validate TPS date string or components.
|
|
47
|
-
* TPS has months 1-12, each with 28 days.
|
|
48
|
-
*/
|
|
34
|
+
parseDate(input: string, _format?: string): Partial<TPSComponents>;
|
|
35
|
+
format(components: Partial<TPSComponents>, _format?: string): string;
|
|
49
36
|
validate(input: string | Partial<TPSComponents>): boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Get TPS calendar metadata.
|
|
52
|
-
* TPS has 12 months, each with 28 days.
|
|
53
|
-
*/
|
|
54
37
|
getMetadata(): CalendarMetadata;
|
|
55
38
|
}
|
package/dist/drivers/tps.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TpsDriver = void 0;
|
|
4
|
+
const tps_string_1 = require("../utils/tps-string");
|
|
5
|
+
const gregorian_1 = require("./gregorian");
|
|
4
6
|
/**
|
|
5
7
|
* TPS calendar driver for canonical TPS time strings.
|
|
6
8
|
*
|
|
@@ -8,43 +10,22 @@ exports.TpsDriver = void 0;
|
|
|
8
10
|
* - Epoch: August 11, 1999 (00:00 UTC)
|
|
9
11
|
* - Months: Always 28 days (12 months per year = 336 days)
|
|
10
12
|
* - Time offset: 7 hours ahead of Gregorian (00:00 Gregorian = 07:00 TPS)
|
|
11
|
-
*
|
|
12
|
-
* Conversion process:
|
|
13
|
-
* 1. Apply 7-hour offset to Gregorian date
|
|
14
|
-
* 2. Calculate day-of-year in offset date
|
|
15
|
-
* 3. Convert day-of-year to TPS month/day (each month = 28 days)
|
|
16
|
-
* 4. Preserve millennium/century/year structure
|
|
17
13
|
*/
|
|
18
|
-
const index_1 = require("../index");
|
|
19
|
-
const gregorian_1 = require("./gregorian");
|
|
20
14
|
class TpsDriver {
|
|
21
15
|
constructor() {
|
|
22
16
|
this.code = "tps";
|
|
23
17
|
this.name = "TPS Canonical";
|
|
24
|
-
// TPS Epoch: August 11, 1999, 00:00 UTC
|
|
25
|
-
this.TPS_EPOCH = new Date(Date.UTC(1999, 7, 11, 0, 0, 0, 0));
|
|
26
|
-
// TPS is 7 hours ahead of Gregorian
|
|
27
18
|
this.TPS_OFFSET_HOURS = 7;
|
|
28
|
-
// Each TPS month has 28 days
|
|
29
19
|
this.TPS_DAYS_PER_MONTH = 28;
|
|
30
|
-
// TPS has 12 months per year (12 * 28 = 336 days)
|
|
31
20
|
this.TPS_MONTHS_PER_YEAR = 12;
|
|
32
21
|
this.gregorian = new gregorian_1.GregorianDriver();
|
|
33
22
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Converts a Gregorian Date to TPS components.
|
|
36
|
-
* Applies 7-hour offset and converts day-of-year to TPS month/day (28-day months).
|
|
37
|
-
*/
|
|
38
23
|
getComponentsFromDate(date) {
|
|
39
|
-
// Apply 7-hour TPS offset to the Gregorian date
|
|
40
24
|
const offsetMillis = this.TPS_OFFSET_HOURS * 60 * 60 * 1000;
|
|
41
25
|
const offsetDate = new Date(date.getTime() + offsetMillis);
|
|
42
|
-
// Get Gregorian components for the offset date
|
|
43
26
|
const gregComponents = this.gregorian.getComponentsFromDate(offsetDate);
|
|
44
|
-
// Calculate day-of-year (0-indexed) for the offset date
|
|
45
27
|
const yearStart = new Date(Date.UTC(offsetDate.getUTCFullYear(), 0, 1));
|
|
46
28
|
const dayOfYear = Math.floor((offsetDate.getTime() - yearStart.getTime()) / (24 * 60 * 60 * 1000));
|
|
47
|
-
// Convert day-of-year to TPS month/day (each month = 28 days)
|
|
48
29
|
const tpsMonth = Math.floor(dayOfYear / this.TPS_DAYS_PER_MONTH) + 1;
|
|
49
30
|
const tpsDay = (dayOfYear % this.TPS_DAYS_PER_MONTH) + 1;
|
|
50
31
|
return {
|
|
@@ -60,55 +41,40 @@ class TpsDriver {
|
|
|
60
41
|
millisecond: gregComponents.millisecond,
|
|
61
42
|
};
|
|
62
43
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Converts TPS components to a Gregorian Date.
|
|
65
|
-
* Converts TPS month/day (28-day months) to day-of-year, then removes 7-hour offset.
|
|
66
|
-
*/
|
|
67
44
|
getDateFromComponents(components) {
|
|
68
|
-
// Convert TPS month/day (28-day months) to day-of-year (0-indexed)
|
|
69
45
|
const tpsMonth = components.month ?? 1;
|
|
70
46
|
const tpsDay = components.day ?? 1;
|
|
71
47
|
const dayOfYear = (tpsMonth - 1) * this.TPS_DAYS_PER_MONTH + (tpsDay - 1);
|
|
72
|
-
// Reconstruct full Gregorian year from millennium/century/year
|
|
73
48
|
const m = components.millennium ?? 0;
|
|
74
49
|
const c = components.century ?? 1;
|
|
75
50
|
const y = components.year ?? 0;
|
|
76
51
|
const fullYear = (m - 1) * 1000 + (c - 1) * 100 + y;
|
|
77
|
-
// Create date at start of year and add day-of-year offset
|
|
78
52
|
const dateInYear = new Date(Date.UTC(fullYear, 0, 1));
|
|
79
53
|
dateInYear.setUTCDate(dateInYear.getUTCDate() + dayOfYear);
|
|
80
|
-
// Set time components
|
|
81
54
|
dateInYear.setUTCHours(components.hour ?? 0);
|
|
82
55
|
dateInYear.setUTCMinutes(components.minute ?? 0);
|
|
83
56
|
dateInYear.setUTCSeconds(components.second ?? 0);
|
|
84
57
|
dateInYear.setUTCMilliseconds(components.millisecond ?? 0);
|
|
85
|
-
// Remove 7-hour TPS offset to get back to Gregorian
|
|
86
58
|
const offsetMillis = this.TPS_OFFSET_HOURS * 60 * 60 * 1000;
|
|
87
59
|
return new Date(dateInYear.getTime() - offsetMillis);
|
|
88
60
|
}
|
|
89
61
|
getFromDate(date) {
|
|
90
|
-
const
|
|
91
|
-
return
|
|
62
|
+
const comp = this.getComponentsFromDate(date);
|
|
63
|
+
return (0, tps_string_1.buildTimePart)(comp);
|
|
92
64
|
}
|
|
93
|
-
|
|
94
|
-
* Parse a TPS date string: "YYYY-MM-DD" where MM is 01-12, DD is 01-28.
|
|
95
|
-
* Optional time: "YYYY-MM-DD HH:MM:SS.mmm"
|
|
96
|
-
*/
|
|
97
|
-
parseDate(input, format) {
|
|
65
|
+
parseDate(input, _format) {
|
|
98
66
|
const s = input.trim();
|
|
99
67
|
const m = s.match(/^(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?)?$/);
|
|
100
|
-
if (!m)
|
|
68
|
+
if (!m)
|
|
101
69
|
throw new Error(`TpsDriver.parseDate: unsupported format "${input}"`);
|
|
102
|
-
}
|
|
103
70
|
const year = parseInt(m[1], 10);
|
|
104
71
|
const month = parseInt(m[2], 10);
|
|
105
72
|
const day = parseInt(m[3], 10);
|
|
106
|
-
// Validate TPS month/day constraints
|
|
107
73
|
if (month < 1 || month > this.TPS_MONTHS_PER_YEAR) {
|
|
108
74
|
throw new Error(`TpsDriver.parseDate: invalid TPS month ${month} (expected 1-12)`);
|
|
109
75
|
}
|
|
110
76
|
if (day < 1 || day > this.TPS_DAYS_PER_MONTH) {
|
|
111
|
-
throw new Error(`TpsDriver.parseDate: invalid TPS day ${day} (expected 1
|
|
77
|
+
throw new Error(`TpsDriver.parseDate: invalid TPS day ${day} (expected 1-28)`);
|
|
112
78
|
}
|
|
113
79
|
const hour = m[4] !== undefined ? parseInt(m[4], 10) : undefined;
|
|
114
80
|
const minute = m[5] !== undefined ? parseInt(m[5], 10) : undefined;
|
|
@@ -130,11 +96,7 @@ class TpsDriver {
|
|
|
130
96
|
comp.millisecond = millisecond;
|
|
131
97
|
return comp;
|
|
132
98
|
}
|
|
133
|
-
|
|
134
|
-
* Format TPS components to "YYYY-MM-DD" where MM is 01-12, DD is 01-28.
|
|
135
|
-
* With time: "YYYY-MM-DD THH:MM:SS.mmm"
|
|
136
|
-
*/
|
|
137
|
-
format(components, format) {
|
|
99
|
+
format(components, _format) {
|
|
138
100
|
const y = components.year !== undefined
|
|
139
101
|
? String(components.year).padStart(4, "0")
|
|
140
102
|
: "0000";
|
|
@@ -165,16 +127,8 @@ class TpsDriver {
|
|
|
165
127
|
}
|
|
166
128
|
return out;
|
|
167
129
|
}
|
|
168
|
-
/**
|
|
169
|
-
* Validate TPS date string or components.
|
|
170
|
-
* TPS has months 1-12, each with 28 days.
|
|
171
|
-
*/
|
|
172
130
|
validate(input) {
|
|
173
131
|
if (typeof input === "string") {
|
|
174
|
-
const valid = /^\d{4}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)?$/.test(input.trim());
|
|
175
|
-
if (!valid)
|
|
176
|
-
return false;
|
|
177
|
-
// Parse and validate constraints
|
|
178
132
|
try {
|
|
179
133
|
this.parseDate(input);
|
|
180
134
|
return true;
|
|
@@ -195,10 +149,6 @@ class TpsDriver {
|
|
|
195
149
|
}
|
|
196
150
|
return false;
|
|
197
151
|
}
|
|
198
|
-
/**
|
|
199
|
-
* Get TPS calendar metadata.
|
|
200
|
-
* TPS has 12 months, each with 28 days.
|
|
201
|
-
*/
|
|
202
152
|
getMetadata() {
|
|
203
153
|
return {
|
|
204
154
|
name: "TPS Canonical (28-day months)",
|
package/dist/drivers/tps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tps.js","sourceRoot":"","sources":["../../src/drivers/tps.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tps.js","sourceRoot":"","sources":["../../src/drivers/tps.ts"],"names":[],"mappings":"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"}
|
package/dist/drivers/unix.d.ts
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { CalendarDriver,
|
|
1
|
+
import { CalendarDriver, CalendarMetadata, TPSComponents } from "../types";
|
|
2
2
|
/**
|
|
3
|
-
* Unix calendar driver.
|
|
4
|
-
* fractional milliseconds.
|
|
5
|
-
* behaviour that was previously hard-coded in TPS.
|
|
3
|
+
* Unix calendar driver. Represents the epoch timestamp in seconds with
|
|
4
|
+
* fractional milliseconds.
|
|
6
5
|
*/
|
|
7
6
|
export declare class UnixDriver implements CalendarDriver {
|
|
8
7
|
readonly code: string;
|
|
9
8
|
getComponentsFromDate(date: Date): Partial<TPSComponents>;
|
|
10
9
|
getDateFromComponents(components: Partial<TPSComponents>): Date;
|
|
11
10
|
getFromDate(date: Date): string;
|
|
12
|
-
parseDate(input: string,
|
|
13
|
-
format(components: Partial<TPSComponents>,
|
|
11
|
+
parseDate(input: string, _format?: string): Partial<TPSComponents>;
|
|
12
|
+
format(components: Partial<TPSComponents>, _format?: string): string;
|
|
14
13
|
validate(input: string | Partial<TPSComponents>): boolean;
|
|
15
14
|
getMetadata(): CalendarMetadata;
|
|
16
15
|
}
|
package/dist/drivers/unix.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UnixDriver = void 0;
|
|
4
|
-
const
|
|
4
|
+
const tps_string_1 = require("../utils/tps-string");
|
|
5
5
|
/**
|
|
6
|
-
* Unix calendar driver.
|
|
7
|
-
* fractional milliseconds.
|
|
8
|
-
* behaviour that was previously hard-coded in TPS.
|
|
6
|
+
* Unix calendar driver. Represents the epoch timestamp in seconds with
|
|
7
|
+
* fractional milliseconds.
|
|
9
8
|
*/
|
|
10
9
|
class UnixDriver {
|
|
11
10
|
constructor() {
|
|
@@ -16,58 +15,37 @@ class UnixDriver {
|
|
|
16
15
|
return { calendar: this.code, unixSeconds: parseFloat(s) };
|
|
17
16
|
}
|
|
18
17
|
getDateFromComponents(components) {
|
|
19
|
-
// prefer an explicit unixSeconds value when available
|
|
20
18
|
if (components.unixSeconds !== undefined) {
|
|
21
19
|
return new Date(components.unixSeconds * 1000);
|
|
22
20
|
}
|
|
23
|
-
|
|
24
|
-
// round-tripping through the core TPS logic. This is a little heavier but
|
|
25
|
-
// keeps the Unix driver useful when callers supply a full set of
|
|
26
|
-
// millennium/century/... values instead of a raw epoch.
|
|
27
|
-
try {
|
|
28
|
-
// The toURI helper will fill in the required time tokens and defaults.
|
|
29
|
-
const tpsString = index_1.TPS.buildTimePart(components);
|
|
30
|
-
const date = index_1.TPS.toDate(tpsString);
|
|
31
|
-
if (!date) {
|
|
32
|
-
throw new Error("unable to convert components to Date");
|
|
33
|
-
}
|
|
34
|
-
return date;
|
|
35
|
-
}
|
|
36
|
-
catch (err) {
|
|
37
|
-
throw new Error("UnixDriver.toGregorian: missing unixSeconds and unable to compute date");
|
|
38
|
-
}
|
|
21
|
+
return new Date(0);
|
|
39
22
|
}
|
|
40
23
|
getFromDate(date) {
|
|
41
24
|
const comp = this.getComponentsFromDate(date);
|
|
42
|
-
return
|
|
25
|
+
return (0, tps_string_1.buildTimePart)(comp);
|
|
43
26
|
}
|
|
44
|
-
parseDate(input,
|
|
27
|
+
parseDate(input, _format) {
|
|
45
28
|
const s = input.trim();
|
|
46
|
-
// Accept simple numeric timestamps with optional fractional part
|
|
47
29
|
if (!/^[0-9]+(?:\.[0-9]+)?$/.test(s)) {
|
|
48
30
|
throw new Error(`UnixDriver.parseDate: unsupported format "${input}"`);
|
|
49
31
|
}
|
|
50
32
|
return { calendar: this.code, unixSeconds: parseFloat(s) };
|
|
51
33
|
}
|
|
52
|
-
format(components,
|
|
53
|
-
if (components.unixSeconds === undefined)
|
|
34
|
+
format(components, _format) {
|
|
35
|
+
if (components.unixSeconds === undefined)
|
|
54
36
|
throw new Error("UnixDriver.format: missing unixSeconds");
|
|
55
|
-
}
|
|
56
37
|
return new Date(components.unixSeconds * 1000).toISOString();
|
|
57
38
|
}
|
|
58
39
|
validate(input) {
|
|
59
|
-
if (typeof input === "string")
|
|
40
|
+
if (typeof input === "string")
|
|
60
41
|
return /^[0-9]+(?:\.[0-9]+)?$/.test(input.trim());
|
|
61
|
-
|
|
62
|
-
if (typeof input === "object") {
|
|
42
|
+
if (typeof input === "object")
|
|
63
43
|
return typeof input.unixSeconds === "number" && !isNaN(input.unixSeconds);
|
|
64
|
-
}
|
|
65
44
|
return false;
|
|
66
45
|
}
|
|
67
46
|
getMetadata() {
|
|
68
47
|
return {
|
|
69
48
|
name: "Unix Epoch",
|
|
70
|
-
// there is no concept of months; include minimal info
|
|
71
49
|
monthsPerYear: 0,
|
|
72
50
|
};
|
|
73
51
|
}
|
package/dist/drivers/unix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unix.js","sourceRoot":"","sources":["../../src/drivers/unix.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"unix.js","sourceRoot":"","sources":["../../src/drivers/unix.ts"],"names":[],"mappings":";;;AACA,oDAAoD;AAGpD;;;GAGG;AACH,MAAa,UAAU;IAAvB;QACW,SAAI,GAAW,MAAM,CAAC;IAgDjC,CAAC;IA9CC,qBAAqB,CAAC,IAAU;QAC9B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,qBAAqB,CAAC,UAAkC;QACtD,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,IAAU;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAkB,CAAC;QAC/D,OAAO,IAAA,0BAAa,EAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,OAAgB;QACvC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,UAAkC,EAAE,OAAgB;QACzD,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS;YACtC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;IAED,QAAQ,CAAC,KAAsC;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC3B,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC3B,OAAO,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW;QACT,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,aAAa,EAAE,CAAC;SACjB,CAAC;IACJ,CAAC;CACF;AAjDD,gCAiDC"}
|