@nextera.one/tps-standard 0.5.33 → 0.5.34

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 (57) hide show
  1. package/dist/date.d.ts +54 -0
  2. package/dist/date.js +174 -0
  3. package/dist/date.js.map +1 -0
  4. package/dist/drivers/gregorian.d.ts +3 -5
  5. package/dist/drivers/gregorian.js +26 -19
  6. package/dist/drivers/gregorian.js.map +1 -1
  7. package/dist/drivers/hijri.d.ts +1 -16
  8. package/dist/drivers/hijri.js +9 -102
  9. package/dist/drivers/hijri.js.map +1 -1
  10. package/dist/drivers/holocene.d.ts +6 -3
  11. package/dist/drivers/holocene.js +7 -20
  12. package/dist/drivers/holocene.js.map +1 -1
  13. package/dist/drivers/julian.d.ts +3 -10
  14. package/dist/drivers/julian.js +11 -71
  15. package/dist/drivers/julian.js.map +1 -1
  16. package/dist/drivers/persian.d.ts +1 -6
  17. package/dist/drivers/persian.js +17 -92
  18. package/dist/drivers/persian.js.map +1 -1
  19. package/dist/drivers/tps.d.ts +11 -28
  20. package/dist/drivers/tps.js +8 -58
  21. package/dist/drivers/tps.js.map +1 -1
  22. package/dist/drivers/unix.d.ts +5 -6
  23. package/dist/drivers/unix.js +10 -32
  24. package/dist/drivers/unix.js.map +1 -1
  25. package/dist/index.d.ts +6 -477
  26. package/dist/index.js +33 -978
  27. package/dist/index.js.map +1 -1
  28. package/dist/types.d.ts +85 -0
  29. package/dist/types.js +30 -0
  30. package/dist/types.js.map +1 -0
  31. package/dist/uid.d.ts +48 -0
  32. package/dist/uid.js +225 -0
  33. package/dist/uid.js.map +1 -0
  34. package/dist/utils/calendar.d.ts +55 -0
  35. package/dist/utils/calendar.js +136 -0
  36. package/dist/utils/calendar.js.map +1 -0
  37. package/dist/utils/env.d.ts +12 -0
  38. package/dist/utils/env.js +79 -0
  39. package/dist/utils/env.js.map +1 -0
  40. package/dist/utils/tps-string.d.ts +12 -0
  41. package/dist/utils/tps-string.js +164 -0
  42. package/dist/utils/tps-string.js.map +1 -0
  43. package/package.json +1 -1
  44. package/src/date.ts +243 -0
  45. package/src/drivers/gregorian.ts +29 -27
  46. package/src/drivers/hijri.ts +13 -113
  47. package/src/drivers/holocene.ts +11 -12
  48. package/src/drivers/julian.ts +18 -72
  49. package/src/drivers/persian.ts +25 -92
  50. package/src/drivers/tps.ts +16 -55
  51. package/src/drivers/unix.ts +12 -33
  52. package/src/index.ts +18 -1446
  53. package/src/types.ts +107 -0
  54. package/src/uid.ts +308 -0
  55. package/src/utils/calendar.ts +161 -0
  56. package/src/utils/env.ts +88 -0
  57. package/src/utils/tps-string.ts +166 -0
@@ -1,19 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HoloceneDriver = void 0;
4
+ const tps_string_1 = require("../utils/tps-string");
5
+ const gregorian_1 = require("./gregorian");
4
6
  /**
5
7
  * Holocene (Human Era) Calendar Driver
6
- *
7
- * Calendar characteristics:
8
- * - Adds 10,000 to the Gregorian year (year 1 CE = 10,001 HE)
9
- * - Same months, days, and leap year rules as Gregorian
10
- * - Proposed by Cesare Emiliani in 1993 to encompass all of human history
11
- * - Also called Human Era (HE) calendar
12
- *
13
- * This is a thin wrapper around GregorianDriver with a year offset.
14
8
  */
15
- const index_1 = require("../index");
16
- const gregorian_1 = require("./gregorian");
17
9
  class HoloceneDriver {
18
10
  constructor() {
19
11
  this.code = "holo";
@@ -21,7 +13,6 @@ class HoloceneDriver {
21
13
  this.gregorian = new gregorian_1.GregorianDriver();
22
14
  this.YEAR_OFFSET = 10000;
23
15
  }
24
- // ── CalendarDriver interface ──────────────────────────────────────────
25
16
  getComponentsFromDate(date) {
26
17
  const greg = this.gregorian.getComponentsFromDate(date);
27
18
  const fullYear = date.getUTCFullYear() + this.YEAR_OFFSET;
@@ -44,16 +35,14 @@ class HoloceneDriver {
44
35
  }
45
36
  getFromDate(date) {
46
37
  const comp = this.getComponentsFromDate(date);
47
- return index_1.TPS.buildTimePart(comp);
38
+ return (0, tps_string_1.buildTimePart)(comp);
48
39
  }
49
- parseDate(input, format) {
50
- // Accept ISO-like: "12026-01-09" (Holocene year)
40
+ parseDate(input, _format) {
51
41
  const m = input
52
42
  .trim()
53
43
  .match(/^(\d{4,5})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?)?$/);
54
- if (!m) {
44
+ if (!m)
55
45
  throw new Error(`HoloceneDriver.parseDate: unsupported format "${input}"`);
56
- }
57
46
  const result = {
58
47
  calendar: this.code,
59
48
  year: parseInt(m[1], 10),
@@ -70,9 +59,8 @@ class HoloceneDriver {
70
59
  result.millisecond = parseInt((m[7] + "000").slice(0, 3), 10);
71
60
  return result;
72
61
  }
73
- format(components, format) {
62
+ format(components, _format) {
74
63
  const pad = (n, w = 2) => String(n ?? 0).padStart(w, "0");
75
- // Reconstruct full Holocene year from components
76
64
  let holoYear;
77
65
  if (components.millennium !== undefined) {
78
66
  const m = components.millennium ?? 0;
@@ -96,7 +84,6 @@ class HoloceneDriver {
96
84
  return /^\d{4,5}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)?$/.test(input.trim());
97
85
  }
98
86
  if (typeof input === "object") {
99
- // Delegate day/month validation to Gregorian (same structure)
100
87
  return this.gregorian.validate({
101
88
  year: input.year,
102
89
  month: input.month,
@@ -124,7 +111,7 @@ class HoloceneDriver {
124
111
  ],
125
112
  isLunar: false,
126
113
  monthsPerYear: 12,
127
- epochYear: -10000, // 10001 BCE
114
+ epochYear: -10000,
128
115
  };
129
116
  }
130
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"holocene.js","sourceRoot":"","sources":["../../src/drivers/holocene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"holocene.js","sourceRoot":"","sources":["../../src/drivers/holocene.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * Conversion uses Julian Day Number algorithms.
11
11
  */
12
- import { CalendarDriver, CalendarMetadata, TPSComponents } from "../index";
12
+ import { CalendarDriver, CalendarMetadata, TPSComponents } from "../types";
13
13
  export declare class JulianDriver implements CalendarDriver {
14
14
  readonly code = "jul";
15
15
  readonly name = "Julian Calendar";
@@ -19,15 +19,8 @@ export declare class JulianDriver implements CalendarDriver {
19
19
  getComponentsFromDate(date: Date): Partial<TPSComponents>;
20
20
  getDateFromComponents(components: Partial<TPSComponents>): Date;
21
21
  getFromDate(date: Date): string;
22
- parseDate(input: string, format?: string): Partial<TPSComponents>;
23
- format(components: Partial<TPSComponents>, format?: string): string;
22
+ parseDate(input: string, _format?: string): Partial<TPSComponents>;
23
+ format(components: Partial<TPSComponents>, _format?: string): string;
24
24
  validate(input: string | Partial<TPSComponents>): boolean;
25
25
  getMetadata(): CalendarMetadata;
26
- /** Julian leap year: every 4 years, no century exception */
27
- private isLeapYear;
28
- private julianToJdn;
29
- private jdnToJulian;
30
- /** Gregorian → JDN (for converting incoming Gregorian Date) */
31
- private gregorianToJdn;
32
- private jdnToGregorian;
33
26
  }
@@ -1,18 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JulianDriver = void 0;
4
- /**
5
- * Julian Calendar Driver
6
- *
7
- * Calendar characteristics:
8
- * - Predecessor to the Gregorian calendar, used until 1582 CE (and later in some regions)
9
- * - Identical month structure to Gregorian (12 months, same lengths)
10
- * - Leap year rule: every 4 years (no century exception)
11
- * - Diverges from Gregorian by ~1 day every 128 years
12
- *
13
- * Conversion uses Julian Day Number algorithms.
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 JulianDriver {
17
7
  constructor() {
18
8
  this.code = "jul";
@@ -49,10 +39,9 @@ class JulianDriver {
49
39
  31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
50
40
  ];
51
41
  }
52
- // ── CalendarDriver interface ──────────────────────────────────────────
53
42
  getComponentsFromDate(date) {
54
- const jdn = this.gregorianToJdn(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate());
55
- const { jy, jm, jd } = this.jdnToJulian(jdn);
43
+ const jdn = (0, calendar_1.gregorianToJdn)(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate());
44
+ const { jy, jm, jd } = (0, calendar_1.jdnToJulian)(jdn);
56
45
  return {
57
46
  calendar: this.code,
58
47
  millennium: Math.floor(jy / 1000) + 1,
@@ -79,20 +68,19 @@ class JulianDriver {
79
68
  }
80
69
  const jm = components.month ?? 1;
81
70
  const jd = components.day ?? 1;
82
- const jdn = this.julianToJdn(fullYear, jm, jd);
83
- const { gy, gm, gd } = this.jdnToGregorian(jdn);
71
+ const jdn = (0, calendar_1.julianToJdn)(fullYear, jm, jd);
72
+ const { gy, gm, gd } = (0, calendar_1.jdnToGregorian)(jdn);
84
73
  return new Date(Date.UTC(gy, gm - 1, gd, components.hour ?? 0, components.minute ?? 0, Math.floor(components.second ?? 0), components.millisecond ?? 0));
85
74
  }
86
75
  getFromDate(date) {
87
76
  const comp = this.getComponentsFromDate(date);
88
- return index_1.TPS.buildTimePart(comp);
77
+ return (0, tps_string_1.buildTimePart)(comp);
89
78
  }
90
- parseDate(input, format) {
79
+ parseDate(input, _format) {
91
80
  const trimmed = input.trim();
92
81
  const m = trimmed.match(/^(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?)?$/);
93
- if (!m) {
82
+ if (!m)
94
83
  throw new Error(`JulianDriver.parseDate: unsupported format "${input}"`);
95
- }
96
84
  const fullYear = parseInt(m[1], 10);
97
85
  const result = {
98
86
  calendar: this.code,
@@ -112,7 +100,7 @@ class JulianDriver {
112
100
  result.millisecond = parseInt((m[7] + "000").slice(0, 3), 10);
113
101
  return result;
114
102
  }
115
- format(components, format) {
103
+ format(components, _format) {
116
104
  const pad = (n, w = 2) => String(n ?? 0).padStart(w, "0");
117
105
  let fullYear;
118
106
  if (components.millennium !== undefined) {
@@ -140,7 +128,6 @@ class JulianDriver {
140
128
  return /^\d{4}-\d{2}-\d{2}(?:[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?)?$/.test(input.trim());
141
129
  }
142
130
  if (typeof input === "object") {
143
- // Reconstruct full year for leap check
144
131
  let fullYear;
145
132
  if (input.millennium !== undefined) {
146
133
  fullYear =
@@ -157,7 +144,7 @@ class JulianDriver {
157
144
  if (month < 1 || month > 12 || day < 1)
158
145
  return false;
159
146
  let maxDay = this.DAYS_IN_MONTH[month - 1];
160
- if (month === 2 && this.isLeapYear(fullYear))
147
+ if (month === 2 && fullYear % 4 === 0)
161
148
  maxDay = 29;
162
149
  return day <= maxDay;
163
150
  }
@@ -173,53 +160,6 @@ class JulianDriver {
173
160
  epochYear: 1,
174
161
  };
175
162
  }
176
- // ── Internal helpers ──────────────────────────────────────────────────
177
- /** Julian leap year: every 4 years, no century exception */
178
- isLeapYear(year) {
179
- return year % 4 === 0;
180
- }
181
- // ── JDN algorithms ────────────────────────────────────────────────────
182
- julianToJdn(jy, jm, jd) {
183
- const a = Math.floor((14 - jm) / 12);
184
- const y = jy + 4800 - a;
185
- const m = jm + 12 * a - 3;
186
- return (jd + Math.floor((153 * m + 2) / 5) + 365 * y + Math.floor(y / 4) - 32083);
187
- }
188
- jdnToJulian(jdn) {
189
- const c = jdn + 32082;
190
- const d = Math.floor((4 * c + 3) / 1461);
191
- const e = c - Math.floor((1461 * d) / 4);
192
- const m = Math.floor((5 * e + 2) / 153);
193
- const jd = e - Math.floor((153 * m + 2) / 5) + 1;
194
- const jm = m + 3 - 12 * Math.floor(m / 10);
195
- const jy = d - 4800 + Math.floor(m / 10);
196
- return { jy, jm, jd };
197
- }
198
- /** Gregorian → JDN (for converting incoming Gregorian Date) */
199
- gregorianToJdn(gy, gm, gd) {
200
- const a = Math.floor((14 - gm) / 12);
201
- const y = gy + 4800 - a;
202
- const m = gm + 12 * a - 3;
203
- return (gd +
204
- Math.floor((153 * m + 2) / 5) +
205
- 365 * y +
206
- Math.floor(y / 4) -
207
- Math.floor(y / 100) +
208
- Math.floor(y / 400) -
209
- 32045);
210
- }
211
- jdnToGregorian(jdn) {
212
- const a = jdn + 32044;
213
- const b = Math.floor((4 * a + 3) / 146097);
214
- const c = a - Math.floor((146097 * b) / 4);
215
- const d = Math.floor((4 * c + 3) / 1461);
216
- const e = c - Math.floor((1461 * d) / 4);
217
- const m = Math.floor((5 * e + 2) / 153);
218
- const gd = e - Math.floor((153 * m + 2) / 5) + 1;
219
- const gm = m + 3 - 12 * Math.floor(m / 10);
220
- const gy = 100 * b + d - 4800 + Math.floor(m / 10);
221
- return { gy, gm, gd };
222
- }
223
163
  }
224
164
  exports.JulianDriver = JulianDriver;
225
165
  //# sourceMappingURL=julian.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"julian.js","sourceRoot":"","sources":["../../src/drivers/julian.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"julian.js","sourceRoot":"","sources":["../../src/drivers/julian.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * Conversion uses Julian Day Number algorithms based on jalaali-js.
11
11
  */
12
- import { CalendarDriver, CalendarMetadata, TPSComponents } from "../index";
12
+ import { CalendarDriver, CalendarMetadata, TPSComponents } from "../types";
13
13
  export declare class PersianDriver implements CalendarDriver {
14
14
  readonly code = "per";
15
15
  readonly name = "Persian (Jalali/Solar Hijri)";
@@ -25,9 +25,4 @@ export declare class PersianDriver implements CalendarDriver {
25
25
  format(components: Partial<TPSComponents>, format?: string): string;
26
26
  validate(input: string | Partial<TPSComponents>): boolean;
27
27
  getMetadata(): CalendarMetadata;
28
- private isLeapYear;
29
- private gregorianToJdn;
30
- private jdnToGregorian;
31
- private persianToJdn;
32
- private jdnToPersian;
33
28
  }
@@ -1,18 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PersianDriver = void 0;
4
- /**
5
- * Persian (Jalali / Solar Hijri) Calendar Driver
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 = this.gregorianToJdn(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate());
65
- const { jy, jm, jd } = this.jdnToPersian(jdn);
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 = this.persianToJdn(jy, jm, jd);
94
- const { gy, gm, gd } = this.jdnToGregorian(jdn);
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 index_1.TPS.buildTimePart(comp);
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 (!year || year < 1)
165
+ if (year === undefined || year < 1)
182
166
  return false;
183
- if (!month || month < 1 || month > 12)
167
+ if (month === undefined || month < 1 || month > 12)
184
168
  return false;
185
- if (!day || day < 1)
169
+ if (day === undefined || day < 1)
186
170
  return false;
187
- let max = this.DAYS_IN_MONTH[(month ?? 1) - 1];
188
- if (month === 12 && this.isLeapYear(year))
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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"}
@@ -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 "../index";
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
- * Parse a TPS date string: "YYYY-MM-DD" where MM is 01-12, DD is 01-28.
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
  }