@nextera.one/tps-standard 0.7.0 → 0.8.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 +20 -0
- package/README.md +40 -3
- package/dist/date.d.ts +5 -5
- package/dist/date.js +5 -1
- package/dist/date.js.map +1 -1
- package/dist/drivers/tps.d.ts +8 -17
- package/dist/drivers/tps.js +64 -84
- package/dist/drivers/tps.js.map +1 -1
- package/dist/esm/date.js +6 -2
- package/dist/esm/date.js.map +1 -1
- package/dist/esm/drivers/tps.js +64 -84
- package/dist/esm/drivers/tps.js.map +1 -1
- package/dist/esm/index.js +152 -14
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/uid.js +3 -0
- package/dist/esm/uid.js.map +1 -1
- package/dist/esm/utils/tps-native.js +249 -0
- package/dist/esm/utils/tps-native.js.map +1 -0
- package/dist/esm/utils/tps-string.js +58 -15
- package/dist/esm/utils/tps-string.js.map +1 -1
- package/dist/index.d.ts +25 -6
- package/dist/index.js +152 -14
- package/dist/index.js.map +1 -1
- package/dist/tps.min.js +3786 -0
- package/dist/types.d.ts +11 -0
- package/dist/uid.js +3 -0
- package/dist/uid.js.map +1 -1
- package/dist/utils/tps-native.d.ts +32 -0
- package/dist/utils/tps-native.js +265 -0
- package/dist/utils/tps-native.js.map +1 -0
- package/dist/utils/tps-string.d.ts +2 -2
- package/dist/utils/tps-string.js +57 -14
- package/dist/utils/tps-string.js.map +1 -1
- package/package.json +3 -2
- package/src/date.ts +14 -4
- package/src/drivers/tps.ts +83 -104
- package/src/index.ts +213 -15
- package/src/types.ts +13 -0
- package/src/uid.ts +3 -0
- package/src/utils/tps-native.ts +346 -0
- package/src/utils/tps-string.ts +82 -15
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,26 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [0.8.0] — 2026-04-04
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Indexed TPS time helpers: `TPS.toDayIndex()`, `TPS.fromDayIndex()`, `TPS.getDayFraction()`, `TPS.getSubDayMilliseconds()`, `TPS.toIndexedTime()`, `TPS.toIndexedURI()`, `TPS.expandIndexedTime()`, `TPS.compactIndexedTime()`.
|
|
14
|
+
- Indexed TPS syntax support for `T:tps.iN` and `T:tps.iN.F`.
|
|
15
|
+
- Explicit TPS week token support (`w`) in TPS native hierarchical strings.
|
|
16
|
+
- Boundary and round-trip tests for indexed TPS time and UID normalization.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Reworked the TPS native driver from a shifted-Gregorian projection to an epoch-based `12 × 4 × 7` calendar model.
|
|
21
|
+
- TPS native day boundaries now anchor at `07:00` Gregorian / UTC.
|
|
22
|
+
- TPS native conversion now derives `dayIndex`, `dayFraction`, `week`, and hierarchical coordinates from the same core day-index math.
|
|
23
|
+
- Indexed TPS inputs are expanded to hierarchical TPS before `TPSUID7RB` storage or signing.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- Indexed TPS validation now rejects malformed or non-canonical compact fractions and rejects indexed syntax on non-TPS calendars.
|
|
28
|
+
|
|
9
29
|
## [0.5.35] — 2026-03-04
|
|
10
30
|
|
|
11
31
|
### Added
|
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ const decoded = TPSUID7RB.decodeBinaryB64(uid);
|
|
|
66
66
|
|
|
67
67
|
| Code | Calendar | Notes |
|
|
68
68
|
| ------ | ---------------------------- | ------------------------------------------------ |
|
|
69
|
-
| `tps` | TPS Native |
|
|
69
|
+
| `tps` | TPS Native | Epoch-based 12×4×7 calendar, 07:00 day boundary |
|
|
70
70
|
| `greg` | Gregorian | ISO proleptic calendar |
|
|
71
71
|
| `unix` | Unix Epoch | seconds since 1970-01-01T00:00:00Z |
|
|
72
72
|
| `per` | Persian (Jalali/Solar Hijri) | Solar calendar, used in Iran & Afghanistan |
|
|
@@ -112,10 +112,12 @@ console.log(TPS.driverManager.list()); // ["tps","greg","unix","per","hij","jul"
|
|
|
112
112
|
|
|
113
113
|
## Time Format
|
|
114
114
|
|
|
115
|
-
Canonical token order is **descending hierarchy
|
|
115
|
+
Canonical token order is **descending hierarchy**.
|
|
116
|
+
|
|
117
|
+
For TPS native strings the week token is explicit:
|
|
116
118
|
|
|
117
119
|
```
|
|
118
|
-
T:
|
|
120
|
+
T:tps.m1.c1.y28.m9.w3.d17.h07.m30.s25.m0
|
|
119
121
|
```
|
|
120
122
|
|
|
121
123
|
| Token | Meaning |
|
|
@@ -124,6 +126,7 @@ T:greg.m3.c1.y26.m01.d13.h09.m30.s12.m0
|
|
|
124
126
|
| `c` | century |
|
|
125
127
|
| `y` | year in century |
|
|
126
128
|
| `m` (rank 5) | month |
|
|
129
|
+
| `w` | week in month |
|
|
127
130
|
| `d` | day |
|
|
128
131
|
| `h` | hour |
|
|
129
132
|
| `m` (rank 2) | minute |
|
|
@@ -132,6 +135,37 @@ T:greg.m3.c1.y26.m01.d13.h09.m30.s12.m0
|
|
|
132
135
|
|
|
133
136
|
Ascending order is supported via `TimeOrder.ASC` and auto-detected during parsing.
|
|
134
137
|
|
|
138
|
+
### Indexed TPS Time
|
|
139
|
+
|
|
140
|
+
TPS native time also supports an indexed exact form:
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
TPS.toIndexedTime(new Date("2026-01-07T13:20:45Z"));
|
|
144
|
+
// "T:tps.i9646.264409722"
|
|
145
|
+
|
|
146
|
+
TPS.expandIndexedTime("T:tps.i1000.52");
|
|
147
|
+
// "T:tps.m1.c1.y2.m12.w3.d21.h12.m28.s48.m0"
|
|
148
|
+
|
|
149
|
+
TPS.fromDayIndex(1000, 0.52);
|
|
150
|
+
// "T:tps.m1.c1.y2.m12.w3.d21.h12.m28.s48.m0"
|
|
151
|
+
|
|
152
|
+
TPS.compactIndexedTime("T:tps.m1.c1.y2.m12.w3.d21.h12.m28.s48.m0", {
|
|
153
|
+
precision: 2,
|
|
154
|
+
});
|
|
155
|
+
// "T:tps.i1000.52"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Rules for indexed TPS:
|
|
159
|
+
|
|
160
|
+
- `iN` is the absolute TPS day index since the TPS epoch.
|
|
161
|
+
- `.F` is the fraction of the TPS day from TPS day start.
|
|
162
|
+
- TPS day start is `07:00` Gregorian / UTC.
|
|
163
|
+
- Indexed form is TPS-only.
|
|
164
|
+
- Indexed form is an official alternate exact form.
|
|
165
|
+
- Expand indexed form before signing, hashing, or UID storage.
|
|
166
|
+
- `TPSUID7RB` automatically expands indexed TPS inputs before encoding.
|
|
167
|
+
- Fractions are compact: trailing-zero forms such as `i1000.50` and `i1000.100` are rejected.
|
|
168
|
+
|
|
135
169
|
---
|
|
136
170
|
|
|
137
171
|
## URI Format
|
|
@@ -199,6 +233,9 @@ const td = new TpsDate("tps://unknown@T:greg.m3.c1.y26.m01.d09.h14.m30.s25.m0");
|
|
|
199
233
|
|
|
200
234
|
const gregorian = td.toGregorianDate(); // native JS Date clone
|
|
201
235
|
const asTps = td.toTPS(DefaultCalendars.TPS, { order: TimeOrder.DESC });
|
|
236
|
+
const asIndexed = td.toTPS(DefaultCalendars.TPS, {
|
|
237
|
+
timeMode: "indexed-fraction",
|
|
238
|
+
});
|
|
202
239
|
const uri = td.toTPSURI(DefaultCalendars.GREG, {
|
|
203
240
|
latitude: 31.95,
|
|
204
241
|
longitude: 35.91,
|
package/dist/date.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TpsDate Date-like wrapper with native TPS conversion helpers.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { TPSTimeOptions } from "./types";
|
|
5
5
|
export declare class TpsDate {
|
|
6
6
|
private readonly internal;
|
|
7
7
|
private _cachedComponents;
|
|
@@ -18,11 +18,11 @@ export declare class TpsDate {
|
|
|
18
18
|
static fromTPS(tps: string): TpsDate;
|
|
19
19
|
toGregorianDate(): Date;
|
|
20
20
|
toDate(): Date;
|
|
21
|
-
toTPS(calendar?: string, opts?:
|
|
22
|
-
order?: TimeOrder;
|
|
23
|
-
}): string;
|
|
21
|
+
toTPS(calendar?: string, opts?: TPSTimeOptions): string;
|
|
24
22
|
toTPSURI(calendar?: string, opts?: {
|
|
25
|
-
order?:
|
|
23
|
+
order?: TPSTimeOptions["order"];
|
|
24
|
+
timeMode?: TPSTimeOptions["timeMode"];
|
|
25
|
+
indexedPrecision?: TPSTimeOptions["indexedPrecision"];
|
|
26
26
|
latitude?: number;
|
|
27
27
|
longitude?: number;
|
|
28
28
|
altitude?: number;
|
package/dist/date.js
CHANGED
|
@@ -85,7 +85,11 @@ class TpsDate {
|
|
|
85
85
|
return index_1.TPS.fromDate(this.internal, calendar, opts);
|
|
86
86
|
}
|
|
87
87
|
toTPSURI(calendar = types_1.DefaultCalendars.TPS, opts) {
|
|
88
|
-
const time = this.toTPS(calendar, {
|
|
88
|
+
const time = this.toTPS(calendar, {
|
|
89
|
+
order: opts?.order,
|
|
90
|
+
timeMode: opts?.timeMode,
|
|
91
|
+
indexedPrecision: opts?.indexedPrecision,
|
|
92
|
+
});
|
|
89
93
|
const comp = index_1.TPS.parse(time);
|
|
90
94
|
if (opts?.latitude !== undefined && opts?.longitude !== undefined) {
|
|
91
95
|
comp.latitude = opts.latitude;
|
package/dist/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"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"}
|
package/dist/drivers/tps.d.ts
CHANGED
|
@@ -2,32 +2,23 @@
|
|
|
2
2
|
* TPS calendar driver for canonical TPS time strings.
|
|
3
3
|
*
|
|
4
4
|
* TPS Calendar characteristics:
|
|
5
|
-
* - Epoch:
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
9
|
-
* Conversion process:
|
|
10
|
-
* 1. Apply 7-hour offset to Gregorian date
|
|
11
|
-
* 2. Calculate day-of-year in offset date
|
|
12
|
-
* 3. Convert day-of-year to TPS month/day (each month = 28 days)
|
|
13
|
-
* 4. Preserve millennium/century/year structure
|
|
5
|
+
* - Epoch anchor: 1999-08-11T07:00:00.000Z
|
|
6
|
+
* - Day boundary: 07:00 Gregorian / UTC
|
|
7
|
+
* - Year shape: 12 months × 4 weeks × 7 days = 336 days
|
|
8
|
+
* - Indexed form: `T:tps.iN[.F]`
|
|
14
9
|
*/
|
|
15
10
|
import { CalendarDriver, CalendarMetadata, TPSComponents } from "../types";
|
|
16
11
|
/**
|
|
17
12
|
* TPS calendar driver for canonical TPS time strings.
|
|
18
13
|
*
|
|
19
14
|
* TPS Calendar characteristics:
|
|
20
|
-
* - Epoch:
|
|
21
|
-
* -
|
|
22
|
-
* -
|
|
15
|
+
* - Epoch anchor: 1999-08-11T07:00:00.000Z
|
|
16
|
+
* - Day boundary: 07:00 Gregorian / UTC
|
|
17
|
+
* - Year shape: 12 months × 4 weeks × 7 days = 336 days
|
|
23
18
|
*/
|
|
24
19
|
export declare class TpsDriver implements CalendarDriver {
|
|
25
20
|
readonly code = "tps";
|
|
26
|
-
readonly name = "TPS
|
|
27
|
-
private readonly TPS_OFFSET_HOURS;
|
|
28
|
-
private readonly TPS_DAYS_PER_MONTH;
|
|
29
|
-
private readonly TPS_MONTHS_PER_YEAR;
|
|
30
|
-
private readonly gregorian;
|
|
21
|
+
readonly name = "TPS Indexed";
|
|
31
22
|
getComponentsFromDate(date: Date): Partial<TPSComponents>;
|
|
32
23
|
getDateFromComponents(components: Partial<TPSComponents>): Date;
|
|
33
24
|
getFromDate(date: Date): string;
|
package/dist/drivers/tps.js
CHANGED
|
@@ -2,61 +2,34 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TpsDriver = void 0;
|
|
4
4
|
const tps_string_1 = require("../utils/tps-string");
|
|
5
|
-
const
|
|
5
|
+
const tps_native_1 = require("../utils/tps-native");
|
|
6
6
|
/**
|
|
7
7
|
* TPS calendar driver for canonical TPS time strings.
|
|
8
8
|
*
|
|
9
9
|
* TPS Calendar characteristics:
|
|
10
|
-
* - Epoch:
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
10
|
+
* - Epoch anchor: 1999-08-11T07:00:00.000Z
|
|
11
|
+
* - Day boundary: 07:00 Gregorian / UTC
|
|
12
|
+
* - Year shape: 12 months × 4 weeks × 7 days = 336 days
|
|
13
13
|
*/
|
|
14
14
|
class TpsDriver {
|
|
15
15
|
constructor() {
|
|
16
16
|
this.code = "tps";
|
|
17
|
-
this.name = "TPS
|
|
18
|
-
this.TPS_OFFSET_HOURS = 7;
|
|
19
|
-
this.TPS_DAYS_PER_MONTH = 28;
|
|
20
|
-
this.TPS_MONTHS_PER_YEAR = 12;
|
|
21
|
-
this.gregorian = new gregorian_1.GregorianDriver();
|
|
17
|
+
this.name = "TPS Indexed";
|
|
22
18
|
}
|
|
23
19
|
getComponentsFromDate(date) {
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
const dayOfYear = Math.floor((offsetDate.getTime() - yearStart.getTime()) / (24 * 60 * 60 * 1000));
|
|
29
|
-
const tpsMonth = Math.floor(dayOfYear / this.TPS_DAYS_PER_MONTH) + 1;
|
|
30
|
-
const tpsDay = (dayOfYear % this.TPS_DAYS_PER_MONTH) + 1;
|
|
31
|
-
return {
|
|
32
|
-
calendar: this.code,
|
|
33
|
-
millennium: gregComponents.millennium,
|
|
34
|
-
century: gregComponents.century,
|
|
35
|
-
year: gregComponents.year,
|
|
36
|
-
month: tpsMonth,
|
|
37
|
-
day: tpsDay,
|
|
38
|
-
hour: gregComponents.hour,
|
|
39
|
-
minute: gregComponents.minute,
|
|
40
|
-
second: gregComponents.second,
|
|
41
|
-
millisecond: gregComponents.millisecond,
|
|
42
|
-
};
|
|
20
|
+
const deltaMs = date.getTime() - tps_native_1.TPS_EPOCH_START_MS;
|
|
21
|
+
const dayIndex = Math.floor(deltaMs / tps_native_1.TPS_DAY_MS);
|
|
22
|
+
const dayFraction = ((deltaMs % tps_native_1.TPS_DAY_MS) + tps_native_1.TPS_DAY_MS) % tps_native_1.TPS_DAY_MS / tps_native_1.TPS_DAY_MS;
|
|
23
|
+
return (0, tps_native_1.buildTpsComponentsFromDayIndex)(dayIndex, dayFraction);
|
|
43
24
|
}
|
|
44
25
|
getDateFromComponents(components) {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
const dateInYear = new Date(Date.UTC(fullYear, 0, 1));
|
|
53
|
-
dateInYear.setUTCDate(dateInYear.getUTCDate() + dayOfYear);
|
|
54
|
-
dateInYear.setUTCHours(components.hour ?? 0);
|
|
55
|
-
dateInYear.setUTCMinutes(components.minute ?? 0);
|
|
56
|
-
dateInYear.setUTCSeconds(components.second ?? 0);
|
|
57
|
-
dateInYear.setUTCMilliseconds(components.millisecond ?? 0);
|
|
58
|
-
const offsetMillis = this.TPS_OFFSET_HOURS * 60 * 60 * 1000;
|
|
59
|
-
return new Date(dateInYear.getTime() - offsetMillis);
|
|
26
|
+
const normalized = (0, tps_native_1.normalizeTpsComponents)({
|
|
27
|
+
...components,
|
|
28
|
+
calendar: this.code,
|
|
29
|
+
});
|
|
30
|
+
const dayIndex = normalized.dayIndex ?? 0;
|
|
31
|
+
const subDayMilliseconds = normalized.subDayMilliseconds ?? 0;
|
|
32
|
+
return new Date(tps_native_1.TPS_EPOCH_START_MS + dayIndex * tps_native_1.TPS_DAY_MS + subDayMilliseconds);
|
|
60
33
|
}
|
|
61
34
|
getFromDate(date) {
|
|
62
35
|
const comp = this.getComponentsFromDate(date);
|
|
@@ -64,16 +37,23 @@ class TpsDriver {
|
|
|
64
37
|
}
|
|
65
38
|
parseDate(input, _format) {
|
|
66
39
|
const s = input.trim();
|
|
67
|
-
const
|
|
40
|
+
const indexed = (0, tps_native_1.parseTpsIndexedToken)(s);
|
|
41
|
+
if (indexed) {
|
|
42
|
+
return (0, tps_native_1.normalizeTpsComponents)({
|
|
43
|
+
calendar: this.code,
|
|
44
|
+
...indexed,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const m = s.match(/^(-?\d{1,6})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?)?$/);
|
|
68
48
|
if (!m)
|
|
69
49
|
throw new Error(`TpsDriver.parseDate: unsupported format "${input}"`);
|
|
70
50
|
const year = parseInt(m[1], 10);
|
|
71
51
|
const month = parseInt(m[2], 10);
|
|
72
52
|
const day = parseInt(m[3], 10);
|
|
73
|
-
if (month < 1 || month >
|
|
53
|
+
if (month < 1 || month > tps_native_1.TPS_MONTHS_PER_YEAR) {
|
|
74
54
|
throw new Error(`TpsDriver.parseDate: invalid TPS month ${month} (expected 1-12)`);
|
|
75
55
|
}
|
|
76
|
-
if (day < 1 || day >
|
|
56
|
+
if (day < 1 || day > tps_native_1.TPS_DAYS_PER_MONTH) {
|
|
77
57
|
throw new Error(`TpsDriver.parseDate: invalid TPS day ${day} (expected 1-28)`);
|
|
78
58
|
}
|
|
79
59
|
const hour = m[4] !== undefined ? parseInt(m[4], 10) : undefined;
|
|
@@ -94,34 +74,39 @@ class TpsDriver {
|
|
|
94
74
|
comp.second = second;
|
|
95
75
|
if (millisecond !== undefined)
|
|
96
76
|
comp.millisecond = millisecond;
|
|
97
|
-
return comp;
|
|
77
|
+
return (0, tps_native_1.normalizeTpsComponents)(comp);
|
|
98
78
|
}
|
|
99
79
|
format(components, _format) {
|
|
100
|
-
const
|
|
101
|
-
|
|
80
|
+
const normalized = (0, tps_native_1.normalizeTpsComponents)({
|
|
81
|
+
...components,
|
|
82
|
+
calendar: this.code,
|
|
83
|
+
});
|
|
84
|
+
const fullYear = (0, tps_native_1.getTpsFullYear)(normalized);
|
|
85
|
+
const y = normalized.year !== undefined
|
|
86
|
+
? String(fullYear).padStart(4, "0")
|
|
102
87
|
: "0000";
|
|
103
|
-
const mo =
|
|
104
|
-
? String(
|
|
88
|
+
const mo = normalized.month !== undefined
|
|
89
|
+
? String(normalized.month).padStart(2, "0")
|
|
105
90
|
: "01";
|
|
106
|
-
const d =
|
|
107
|
-
? String(
|
|
91
|
+
const d = normalized.day !== undefined
|
|
92
|
+
? String(normalized.day).padStart(2, "0")
|
|
108
93
|
: "01";
|
|
109
94
|
let out = `${y}-${mo}-${d}`;
|
|
110
|
-
if (
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const h =
|
|
115
|
-
? String(
|
|
95
|
+
if (normalized.hour !== undefined ||
|
|
96
|
+
normalized.minute !== undefined ||
|
|
97
|
+
normalized.second !== undefined ||
|
|
98
|
+
normalized.millisecond !== undefined) {
|
|
99
|
+
const h = normalized.hour !== undefined
|
|
100
|
+
? String(normalized.hour).padStart(2, "0")
|
|
116
101
|
: "00";
|
|
117
|
-
const mi =
|
|
118
|
-
? String(
|
|
102
|
+
const mi = normalized.minute !== undefined
|
|
103
|
+
? String(normalized.minute).padStart(2, "0")
|
|
119
104
|
: "00";
|
|
120
|
-
const s =
|
|
121
|
-
? String(Math.floor(
|
|
105
|
+
const s = normalized.second !== undefined
|
|
106
|
+
? String(Math.floor(normalized.second)).padStart(2, "0")
|
|
122
107
|
: "00";
|
|
123
|
-
const ms =
|
|
124
|
-
? String(
|
|
108
|
+
const ms = normalized.millisecond !== undefined
|
|
109
|
+
? String(normalized.millisecond).padStart(3, "0")
|
|
125
110
|
: "000";
|
|
126
111
|
out += `T${h}:${mi}:${s}.${ms}`;
|
|
127
112
|
}
|
|
@@ -129,29 +114,24 @@ class TpsDriver {
|
|
|
129
114
|
}
|
|
130
115
|
validate(input) {
|
|
131
116
|
if (typeof input === "string") {
|
|
132
|
-
|
|
133
|
-
this.parseDate(input);
|
|
117
|
+
if ((0, tps_native_1.parseTpsIndexedToken)(input.trim())) {
|
|
134
118
|
return true;
|
|
135
119
|
}
|
|
120
|
+
try {
|
|
121
|
+
return (0, tps_native_1.validateTpsComponents)(this.parseDate(input));
|
|
122
|
+
}
|
|
136
123
|
catch {
|
|
137
124
|
return false;
|
|
138
125
|
}
|
|
139
126
|
}
|
|
140
127
|
if (typeof input === "object") {
|
|
141
|
-
return (input
|
|
142
|
-
input.month !== undefined &&
|
|
143
|
-
input.day !== undefined &&
|
|
144
|
-
input.year >= 0 &&
|
|
145
|
-
input.month >= 1 &&
|
|
146
|
-
input.month <= this.TPS_MONTHS_PER_YEAR &&
|
|
147
|
-
input.day >= 1 &&
|
|
148
|
-
input.day <= this.TPS_DAYS_PER_MONTH);
|
|
128
|
+
return (0, tps_native_1.validateTpsComponents)(input);
|
|
149
129
|
}
|
|
150
130
|
return false;
|
|
151
131
|
}
|
|
152
132
|
getMetadata() {
|
|
153
133
|
return {
|
|
154
|
-
name: "TPS
|
|
134
|
+
name: "TPS Native (epoch-based 12x4x7)",
|
|
155
135
|
monthNames: [
|
|
156
136
|
"Month 1",
|
|
157
137
|
"Month 2",
|
|
@@ -167,15 +147,15 @@ class TpsDriver {
|
|
|
167
147
|
"Month 12",
|
|
168
148
|
],
|
|
169
149
|
dayNames: [
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
"
|
|
173
|
-
"
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
"
|
|
150
|
+
"Day 1",
|
|
151
|
+
"Day 2",
|
|
152
|
+
"Day 3",
|
|
153
|
+
"Day 4",
|
|
154
|
+
"Day 5",
|
|
155
|
+
"Day 6",
|
|
156
|
+
"Day 7",
|
|
177
157
|
],
|
|
178
|
-
monthsPerYear:
|
|
158
|
+
monthsPerYear: tps_native_1.TPS_MONTHS_PER_YEAR,
|
|
179
159
|
epochYear: 1999,
|
|
180
160
|
isLunar: false,
|
|
181
161
|
};
|
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/esm/date.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TpsDate Date-like wrapper with native TPS conversion helpers.
|
|
3
3
|
*/
|
|
4
|
-
import { DefaultCalendars } from "./types";
|
|
4
|
+
import { DefaultCalendars, } from "./types";
|
|
5
5
|
import { TPS } from "./index";
|
|
6
6
|
export class TpsDate {
|
|
7
7
|
constructor(...args) {
|
|
@@ -82,7 +82,11 @@ export class TpsDate {
|
|
|
82
82
|
return TPS.fromDate(this.internal, calendar, opts);
|
|
83
83
|
}
|
|
84
84
|
toTPSURI(calendar = DefaultCalendars.TPS, opts) {
|
|
85
|
-
const time = this.toTPS(calendar, {
|
|
85
|
+
const time = this.toTPS(calendar, {
|
|
86
|
+
order: opts?.order,
|
|
87
|
+
timeMode: opts?.timeMode,
|
|
88
|
+
indexedPrecision: opts?.indexedPrecision,
|
|
89
|
+
});
|
|
86
90
|
const comp = TPS.parse(time);
|
|
87
91
|
if (opts?.latitude !== undefined && opts?.longitude !== undefined) {
|
|
88
92
|
comp.latitude = opts.latitude;
|
package/dist/esm/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/date.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/date.ts"],"names":[],"mappings":"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"}
|