gnss-js 0.1.1 → 0.1.2

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.
@@ -1,3 +1,102 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ DAYS_MJD2000_MJD: () => DAYS_MJD2000_MJD,
24
+ DAYS_MJD_JULIAN: () => DAYS_MJD_JULIAN,
25
+ MILLISECONDS_GPS_TAI: () => MILLISECONDS_GPS_TAI,
26
+ MILLISECONDS_IN_DAY: () => MILLISECONDS_IN_DAY,
27
+ MILLISECONDS_IN_HOUR: () => MILLISECONDS_IN_HOUR,
28
+ MILLISECONDS_IN_MINUTE: () => MILLISECONDS_IN_MINUTE,
29
+ MILLISECONDS_IN_SECOND: () => MILLISECONDS_IN_SECOND,
30
+ MILLISECONDS_IN_WEEK: () => MILLISECONDS_IN_WEEK,
31
+ MILLISECONDS_TT_TAI: () => MILLISECONDS_TT_TAI,
32
+ RINEX_CODES: () => RINEX_CODES,
33
+ SECONDS_IN_DAY: () => SECONDS_IN_DAY,
34
+ SECONDS_IN_HOUR: () => SECONDS_IN_HOUR,
35
+ SECONDS_IN_MINUTE: () => SECONDS_IN_MINUTE,
36
+ SECONDS_IN_WEEK: () => SECONDS_IN_WEEK,
37
+ START_BDS_TIME: () => START_BDS_TIME,
38
+ START_GAL_TIME: () => START_GAL_TIME,
39
+ START_GLO_LEAP: () => START_GLO_LEAP,
40
+ START_GPS_TIME: () => START_GPS_TIME,
41
+ START_JULIAN_TAI: () => START_JULIAN_TAI,
42
+ START_MJD_UNIX_SECONDS: () => START_MJD_UNIX_SECONDS,
43
+ START_NTP_TIME: () => START_NTP_TIME,
44
+ START_TAI_TIME: () => START_TAI_TIME,
45
+ START_UNIX_TIME: () => START_UNIX_TIME,
46
+ Scale: () => Scale,
47
+ getBdsTime: () => getBdsTime,
48
+ getDateFromBdsTime: () => getDateFromBdsTime,
49
+ getDateFromDayOfWeek: () => getDateFromDayOfWeek,
50
+ getDateFromDayOfYear: () => getDateFromDayOfYear,
51
+ getDateFromGalTime: () => getDateFromGalTime,
52
+ getDateFromGloN: () => getDateFromGloN,
53
+ getDateFromGpsData: () => getDateFromGpsData,
54
+ getDateFromGpsTime: () => getDateFromGpsTime,
55
+ getDateFromHourCode: () => getDateFromHourCode,
56
+ getDateFromJulianDate: () => getDateFromJulianDate,
57
+ getDateFromMJD: () => getDateFromMJD,
58
+ getDateFromMJD2000: () => getDateFromMJD2000,
59
+ getDateFromRINEX: () => getDateFromRINEX,
60
+ getDateFromTai: () => getDateFromTai,
61
+ getDateFromTimeOfDay: () => getDateFromTimeOfDay,
62
+ getDateFromTt: () => getDateFromTt,
63
+ getDateFromUnixTime: () => getDateFromUnixTime,
64
+ getDateFromUtc: () => getDateFromUtc,
65
+ getDayOfWeek: () => getDayOfWeek,
66
+ getDayOfYear: () => getDayOfYear,
67
+ getGalTime: () => getGalTime,
68
+ getGloN4: () => getGloN4,
69
+ getGloNA: () => getGloNA,
70
+ getGpsLeap: () => getGpsLeap,
71
+ getGpsTime: () => getGpsTime,
72
+ getHourCode: () => getHourCode,
73
+ getHoursFromTimeDifference: () => getHoursFromTimeDifference,
74
+ getJulianDate: () => getJulianDate,
75
+ getLeap: () => getLeap,
76
+ getMJD: () => getMJD,
77
+ getMJD2000: () => getMJD2000,
78
+ getMinutesFromTimeDifference: () => getMinutesFromTimeDifference,
79
+ getNtpTime: () => getNtpTime,
80
+ getRINEX: () => getRINEX,
81
+ getSecondsFromTimeDifference: () => getSecondsFromTimeDifference,
82
+ getTaiDate: () => getTaiDate,
83
+ getTimeDifference: () => getTimeDifference,
84
+ getTimeDifferenceFromDays: () => getTimeDifferenceFromDays,
85
+ getTimeDifferenceFromHours: () => getTimeDifferenceFromHours,
86
+ getTimeDifferenceFromMinutes: () => getTimeDifferenceFromMinutes,
87
+ getTimeDifferenceFromObject: () => getTimeDifferenceFromObject,
88
+ getTimeDifferenceFromSeconds: () => getTimeDifferenceFromSeconds,
89
+ getTimeOfDay: () => getTimeOfDay,
90
+ getTimeOfWeek: () => getTimeOfWeek,
91
+ getTotalDaysFromTimeDifference: () => getTotalDaysFromTimeDifference,
92
+ getTtDate: () => getTtDate,
93
+ getUnixTime: () => getUnixTime,
94
+ getUtcDate: () => getUtcDate,
95
+ getWeekNumber: () => getWeekNumber,
96
+ getWeekOfYear: () => getWeekOfYear
97
+ });
98
+ module.exports = __toCommonJS(index_exports);
99
+
1
100
  // src/constants/time.ts
2
101
  var SECONDS_IN_WEEK = 604800;
3
102
  var SECONDS_IN_DAY = 86400;
@@ -48,6 +147,15 @@ var DAYS_MJD_JULIAN = 24000005e-1;
48
147
  var DAYS_MJD2000_MJD = 51544.5;
49
148
  var START_MJD_UNIX_SECONDS = 40587;
50
149
 
150
+ // src/types/enums.ts
151
+ var Scale = /* @__PURE__ */ ((Scale2) => {
152
+ Scale2[Scale2["TAI"] = 0] = "TAI";
153
+ Scale2[Scale2["TT"] = 1] = "TT";
154
+ Scale2[Scale2["GPS"] = 2] = "GPS";
155
+ Scale2[Scale2["UTC"] = 3] = "UTC";
156
+ return Scale2;
157
+ })(Scale || {});
158
+
51
159
  // src/time/functions.ts
52
160
  function getTimeOfDay(date) {
53
161
  return (date.getTime() - Date.UTC(
@@ -233,8 +341,7 @@ function getLeap(date) {
233
341
  }
234
342
  function getGpsLeap(date) {
235
343
  const leap_seconds = getLeap(date);
236
- if (leap_seconds < 0)
237
- return 0;
344
+ if (leap_seconds < 0) return 0;
238
345
  return leap_seconds - 19;
239
346
  }
240
347
  function getUtcDate(date) {
@@ -355,27 +462,57 @@ function getDateFromRINEX(rinex) {
355
462
  }
356
463
 
357
464
  // src/time/julian.ts
358
- function getJulianDate(date) {
359
- return (date.getTime() - START_TAI_TIME.getTime()) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
465
+ function getJulianDate(date, scale = 1 /* TT */) {
466
+ if (scale === 0 /* TAI */) {
467
+ return (date.getTime() - START_TAI_TIME.getTime()) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
468
+ }
469
+ if (scale === 2 /* GPS */) {
470
+ return (date.getTime() - START_TAI_TIME.getTime() - MILLISECONDS_GPS_TAI) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
471
+ }
472
+ if (scale === 3 /* UTC */) {
473
+ return (date.getTime() - START_TAI_TIME.getTime() - getLeap(date) * MILLISECONDS_IN_SECOND) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
474
+ }
475
+ return (date.getTime() - START_TAI_TIME.getTime() + MILLISECONDS_TT_TAI) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
360
476
  }
361
- function getDateFromJulianDate(julianDate) {
477
+ function getDateFromJulianDate(julianDate, scale = 1 /* TT */) {
478
+ if (scale === 0 /* TAI */) {
479
+ return new Date(
480
+ (julianDate - START_JULIAN_TAI) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime()
481
+ );
482
+ }
483
+ if (scale === 2 /* GPS */) {
484
+ return new Date(
485
+ (julianDate - START_JULIAN_TAI) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime() + MILLISECONDS_GPS_TAI
486
+ );
487
+ }
488
+ if (scale === 3 /* UTC */) {
489
+ const utc_date = new Date(
490
+ (julianDate - START_JULIAN_TAI) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime()
491
+ );
492
+ const tai_date = new Date(
493
+ utc_date.getTime() + getLeap(utc_date) * MILLISECONDS_IN_SECOND
494
+ );
495
+ const leap_seconds = getLeap(getDateFromTai(tai_date));
496
+ return new Date(utc_date.getTime() + leap_seconds * MILLISECONDS_IN_SECOND);
497
+ }
362
498
  return new Date(
363
- (julianDate - 24362045e-1) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime()
499
+ (julianDate - START_JULIAN_TAI) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime() - MILLISECONDS_TT_TAI
364
500
  );
365
501
  }
366
- function getMJD(date) {
367
- return getJulianDate(date) - DAYS_MJD_JULIAN;
502
+ function getMJD(date, scale = 1 /* TT */) {
503
+ return getJulianDate(date, scale) - DAYS_MJD_JULIAN;
368
504
  }
369
- function getDateFromMJD(mjd) {
370
- return getDateFromJulianDate(mjd + DAYS_MJD_JULIAN);
505
+ function getDateFromMJD(mjd, scale = 1 /* TT */) {
506
+ return getDateFromJulianDate(mjd + DAYS_MJD_JULIAN, scale);
371
507
  }
372
- function getMJD2000(date) {
373
- return getMJD(date) - DAYS_MJD2000_MJD;
508
+ function getMJD2000(date, scale = 1 /* TT */) {
509
+ return getMJD(date, scale) - DAYS_MJD2000_MJD;
374
510
  }
375
- function getDateFromMJD2000(mjd2000) {
376
- return getDateFromMJD(mjd2000 + DAYS_MJD2000_MJD);
511
+ function getDateFromMJD2000(mjd2000, scale = 1 /* TT */) {
512
+ return getDateFromMJD(mjd2000 + DAYS_MJD2000_MJD, scale);
377
513
  }
378
- export {
514
+ // Annotate the CommonJS export names for ESM import in node:
515
+ 0 && (module.exports = {
379
516
  DAYS_MJD2000_MJD,
380
517
  DAYS_MJD_JULIAN,
381
518
  MILLISECONDS_GPS_TAI,
@@ -399,6 +536,7 @@ export {
399
536
  START_NTP_TIME,
400
537
  START_TAI_TIME,
401
538
  START_UNIX_TIME,
539
+ Scale,
402
540
  getBdsTime,
403
541
  getDateFromBdsTime,
404
542
  getDateFromDayOfWeek,
@@ -449,4 +587,4 @@ export {
449
587
  getUtcDate,
450
588
  getWeekNumber,
451
589
  getWeekOfYear
452
- };
590
+ });
@@ -30,6 +30,13 @@ declare const DAYS_MJD_JULIAN = 2400000.5;
30
30
  declare const DAYS_MJD2000_MJD = 51544.5;
31
31
  declare const START_MJD_UNIX_SECONDS = 40587;
32
32
 
33
+ declare enum Scale {
34
+ TAI = 0,
35
+ TT = 1,
36
+ GPS = 2,
37
+ UTC = 3
38
+ }
39
+
33
40
  declare function getTimeOfDay(date: Date): number;
34
41
  declare function getDateFromTimeOfDay(timeOfDay: number, dateRaw: Date): Date;
35
42
  declare function getDayOfYear(date: Date): number;
@@ -61,7 +68,7 @@ declare function getDateFromGloN(n4: number, na: number, tod: number): Date;
61
68
  declare function getNtpTime(date: Date): number;
62
69
 
63
70
  declare function getRINEX(date: Date): string;
64
- declare function getDateFromRINEX(rinex: string): Date | undefined;
71
+ declare function getDateFromRINEX(rinex: string): Date;
65
72
 
66
73
  declare function getTimeDifference(startDate: Date, finalDate: Date): number;
67
74
  declare function getSecondsFromTimeDifference(timeDifference: number): number;
@@ -79,11 +86,11 @@ declare function getGpsLeap(date: Date): number;
79
86
  declare function getUtcDate(date: Date): Date;
80
87
  declare function getDateFromUtc(utc_date: Date): Date;
81
88
 
82
- declare function getJulianDate(date: Date): number;
83
- declare function getDateFromJulianDate(julianDate: number): Date;
84
- declare function getMJD(date: Date): number;
85
- declare function getDateFromMJD(mjd: number): Date;
86
- declare function getMJD2000(date: Date): number;
87
- declare function getDateFromMJD2000(mjd2000: number): Date;
89
+ declare function getJulianDate(date: Date, scale?: Scale): number;
90
+ declare function getDateFromJulianDate(julianDate: number, scale?: Scale): Date;
91
+ declare function getMJD(date: Date, scale?: Scale): number;
92
+ declare function getDateFromMJD(mjd: number, scale?: Scale): Date;
93
+ declare function getMJD2000(date: Date, scale?: Scale): number;
94
+ declare function getDateFromMJD2000(mjd2000: number, scale?: Scale): Date;
88
95
 
89
- export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_TAI, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTai, getDateFromTimeOfDay, getDateFromTt, getDateFromUnixTime, getDateFromUtc, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTaiDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getTtDate, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
96
+ export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_TAI, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, Scale, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTai, getDateFromTimeOfDay, getDateFromTt, getDateFromUnixTime, getDateFromUtc, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTaiDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getTtDate, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
package/dist/index.d.ts CHANGED
@@ -30,6 +30,13 @@ declare const DAYS_MJD_JULIAN = 2400000.5;
30
30
  declare const DAYS_MJD2000_MJD = 51544.5;
31
31
  declare const START_MJD_UNIX_SECONDS = 40587;
32
32
 
33
+ declare enum Scale {
34
+ TAI = 0,
35
+ TT = 1,
36
+ GPS = 2,
37
+ UTC = 3
38
+ }
39
+
33
40
  declare function getTimeOfDay(date: Date): number;
34
41
  declare function getDateFromTimeOfDay(timeOfDay: number, dateRaw: Date): Date;
35
42
  declare function getDayOfYear(date: Date): number;
@@ -61,7 +68,7 @@ declare function getDateFromGloN(n4: number, na: number, tod: number): Date;
61
68
  declare function getNtpTime(date: Date): number;
62
69
 
63
70
  declare function getRINEX(date: Date): string;
64
- declare function getDateFromRINEX(rinex: string): Date | undefined;
71
+ declare function getDateFromRINEX(rinex: string): Date;
65
72
 
66
73
  declare function getTimeDifference(startDate: Date, finalDate: Date): number;
67
74
  declare function getSecondsFromTimeDifference(timeDifference: number): number;
@@ -79,11 +86,11 @@ declare function getGpsLeap(date: Date): number;
79
86
  declare function getUtcDate(date: Date): Date;
80
87
  declare function getDateFromUtc(utc_date: Date): Date;
81
88
 
82
- declare function getJulianDate(date: Date): number;
83
- declare function getDateFromJulianDate(julianDate: number): Date;
84
- declare function getMJD(date: Date): number;
85
- declare function getDateFromMJD(mjd: number): Date;
86
- declare function getMJD2000(date: Date): number;
87
- declare function getDateFromMJD2000(mjd2000: number): Date;
89
+ declare function getJulianDate(date: Date, scale?: Scale): number;
90
+ declare function getDateFromJulianDate(julianDate: number, scale?: Scale): Date;
91
+ declare function getMJD(date: Date, scale?: Scale): number;
92
+ declare function getDateFromMJD(mjd: number, scale?: Scale): Date;
93
+ declare function getMJD2000(date: Date, scale?: Scale): number;
94
+ declare function getDateFromMJD2000(mjd2000: number, scale?: Scale): Date;
88
95
 
89
- export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_TAI, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTai, getDateFromTimeOfDay, getDateFromTt, getDateFromUnixTime, getDateFromUtc, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTaiDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getTtDate, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
96
+ export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_TAI, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, Scale, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTai, getDateFromTimeOfDay, getDateFromTt, getDateFromUnixTime, getDateFromUtc, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTaiDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getTtDate, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
package/dist/index.js CHANGED
@@ -1,101 +1,3 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- DAYS_MJD2000_MJD: () => DAYS_MJD2000_MJD,
24
- DAYS_MJD_JULIAN: () => DAYS_MJD_JULIAN,
25
- MILLISECONDS_GPS_TAI: () => MILLISECONDS_GPS_TAI,
26
- MILLISECONDS_IN_DAY: () => MILLISECONDS_IN_DAY,
27
- MILLISECONDS_IN_HOUR: () => MILLISECONDS_IN_HOUR,
28
- MILLISECONDS_IN_MINUTE: () => MILLISECONDS_IN_MINUTE,
29
- MILLISECONDS_IN_SECOND: () => MILLISECONDS_IN_SECOND,
30
- MILLISECONDS_IN_WEEK: () => MILLISECONDS_IN_WEEK,
31
- MILLISECONDS_TT_TAI: () => MILLISECONDS_TT_TAI,
32
- RINEX_CODES: () => RINEX_CODES,
33
- SECONDS_IN_DAY: () => SECONDS_IN_DAY,
34
- SECONDS_IN_HOUR: () => SECONDS_IN_HOUR,
35
- SECONDS_IN_MINUTE: () => SECONDS_IN_MINUTE,
36
- SECONDS_IN_WEEK: () => SECONDS_IN_WEEK,
37
- START_BDS_TIME: () => START_BDS_TIME,
38
- START_GAL_TIME: () => START_GAL_TIME,
39
- START_GLO_LEAP: () => START_GLO_LEAP,
40
- START_GPS_TIME: () => START_GPS_TIME,
41
- START_JULIAN_TAI: () => START_JULIAN_TAI,
42
- START_MJD_UNIX_SECONDS: () => START_MJD_UNIX_SECONDS,
43
- START_NTP_TIME: () => START_NTP_TIME,
44
- START_TAI_TIME: () => START_TAI_TIME,
45
- START_UNIX_TIME: () => START_UNIX_TIME,
46
- getBdsTime: () => getBdsTime,
47
- getDateFromBdsTime: () => getDateFromBdsTime,
48
- getDateFromDayOfWeek: () => getDateFromDayOfWeek,
49
- getDateFromDayOfYear: () => getDateFromDayOfYear,
50
- getDateFromGalTime: () => getDateFromGalTime,
51
- getDateFromGloN: () => getDateFromGloN,
52
- getDateFromGpsData: () => getDateFromGpsData,
53
- getDateFromGpsTime: () => getDateFromGpsTime,
54
- getDateFromHourCode: () => getDateFromHourCode,
55
- getDateFromJulianDate: () => getDateFromJulianDate,
56
- getDateFromMJD: () => getDateFromMJD,
57
- getDateFromMJD2000: () => getDateFromMJD2000,
58
- getDateFromRINEX: () => getDateFromRINEX,
59
- getDateFromTai: () => getDateFromTai,
60
- getDateFromTimeOfDay: () => getDateFromTimeOfDay,
61
- getDateFromTt: () => getDateFromTt,
62
- getDateFromUnixTime: () => getDateFromUnixTime,
63
- getDateFromUtc: () => getDateFromUtc,
64
- getDayOfWeek: () => getDayOfWeek,
65
- getDayOfYear: () => getDayOfYear,
66
- getGalTime: () => getGalTime,
67
- getGloN4: () => getGloN4,
68
- getGloNA: () => getGloNA,
69
- getGpsLeap: () => getGpsLeap,
70
- getGpsTime: () => getGpsTime,
71
- getHourCode: () => getHourCode,
72
- getHoursFromTimeDifference: () => getHoursFromTimeDifference,
73
- getJulianDate: () => getJulianDate,
74
- getLeap: () => getLeap,
75
- getMJD: () => getMJD,
76
- getMJD2000: () => getMJD2000,
77
- getMinutesFromTimeDifference: () => getMinutesFromTimeDifference,
78
- getNtpTime: () => getNtpTime,
79
- getRINEX: () => getRINEX,
80
- getSecondsFromTimeDifference: () => getSecondsFromTimeDifference,
81
- getTaiDate: () => getTaiDate,
82
- getTimeDifference: () => getTimeDifference,
83
- getTimeDifferenceFromDays: () => getTimeDifferenceFromDays,
84
- getTimeDifferenceFromHours: () => getTimeDifferenceFromHours,
85
- getTimeDifferenceFromMinutes: () => getTimeDifferenceFromMinutes,
86
- getTimeDifferenceFromObject: () => getTimeDifferenceFromObject,
87
- getTimeDifferenceFromSeconds: () => getTimeDifferenceFromSeconds,
88
- getTimeOfDay: () => getTimeOfDay,
89
- getTimeOfWeek: () => getTimeOfWeek,
90
- getTotalDaysFromTimeDifference: () => getTotalDaysFromTimeDifference,
91
- getTtDate: () => getTtDate,
92
- getUnixTime: () => getUnixTime,
93
- getUtcDate: () => getUtcDate,
94
- getWeekNumber: () => getWeekNumber,
95
- getWeekOfYear: () => getWeekOfYear
96
- });
97
- module.exports = __toCommonJS(src_exports);
98
-
99
1
  // src/constants/time.ts
100
2
  var SECONDS_IN_WEEK = 604800;
101
3
  var SECONDS_IN_DAY = 86400;
@@ -146,6 +48,15 @@ var DAYS_MJD_JULIAN = 24000005e-1;
146
48
  var DAYS_MJD2000_MJD = 51544.5;
147
49
  var START_MJD_UNIX_SECONDS = 40587;
148
50
 
51
+ // src/types/enums.ts
52
+ var Scale = /* @__PURE__ */ ((Scale2) => {
53
+ Scale2[Scale2["TAI"] = 0] = "TAI";
54
+ Scale2[Scale2["TT"] = 1] = "TT";
55
+ Scale2[Scale2["GPS"] = 2] = "GPS";
56
+ Scale2[Scale2["UTC"] = 3] = "UTC";
57
+ return Scale2;
58
+ })(Scale || {});
59
+
149
60
  // src/time/functions.ts
150
61
  function getTimeOfDay(date) {
151
62
  return (date.getTime() - Date.UTC(
@@ -331,8 +242,7 @@ function getLeap(date) {
331
242
  }
332
243
  function getGpsLeap(date) {
333
244
  const leap_seconds = getLeap(date);
334
- if (leap_seconds < 0)
335
- return 0;
245
+ if (leap_seconds < 0) return 0;
336
246
  return leap_seconds - 19;
337
247
  }
338
248
  function getUtcDate(date) {
@@ -453,28 +363,56 @@ function getDateFromRINEX(rinex) {
453
363
  }
454
364
 
455
365
  // src/time/julian.ts
456
- function getJulianDate(date) {
457
- return (date.getTime() - START_TAI_TIME.getTime()) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
366
+ function getJulianDate(date, scale = 1 /* TT */) {
367
+ if (scale === 0 /* TAI */) {
368
+ return (date.getTime() - START_TAI_TIME.getTime()) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
369
+ }
370
+ if (scale === 2 /* GPS */) {
371
+ return (date.getTime() - START_TAI_TIME.getTime() - MILLISECONDS_GPS_TAI) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
372
+ }
373
+ if (scale === 3 /* UTC */) {
374
+ return (date.getTime() - START_TAI_TIME.getTime() - getLeap(date) * MILLISECONDS_IN_SECOND) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
375
+ }
376
+ return (date.getTime() - START_TAI_TIME.getTime() + MILLISECONDS_TT_TAI) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
458
377
  }
459
- function getDateFromJulianDate(julianDate) {
378
+ function getDateFromJulianDate(julianDate, scale = 1 /* TT */) {
379
+ if (scale === 0 /* TAI */) {
380
+ return new Date(
381
+ (julianDate - START_JULIAN_TAI) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime()
382
+ );
383
+ }
384
+ if (scale === 2 /* GPS */) {
385
+ return new Date(
386
+ (julianDate - START_JULIAN_TAI) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime() + MILLISECONDS_GPS_TAI
387
+ );
388
+ }
389
+ if (scale === 3 /* UTC */) {
390
+ const utc_date = new Date(
391
+ (julianDate - START_JULIAN_TAI) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime()
392
+ );
393
+ const tai_date = new Date(
394
+ utc_date.getTime() + getLeap(utc_date) * MILLISECONDS_IN_SECOND
395
+ );
396
+ const leap_seconds = getLeap(getDateFromTai(tai_date));
397
+ return new Date(utc_date.getTime() + leap_seconds * MILLISECONDS_IN_SECOND);
398
+ }
460
399
  return new Date(
461
- (julianDate - 24362045e-1) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime()
400
+ (julianDate - START_JULIAN_TAI) * MILLISECONDS_IN_DAY + START_TAI_TIME.getTime() - MILLISECONDS_TT_TAI
462
401
  );
463
402
  }
464
- function getMJD(date) {
465
- return getJulianDate(date) - DAYS_MJD_JULIAN;
403
+ function getMJD(date, scale = 1 /* TT */) {
404
+ return getJulianDate(date, scale) - DAYS_MJD_JULIAN;
466
405
  }
467
- function getDateFromMJD(mjd) {
468
- return getDateFromJulianDate(mjd + DAYS_MJD_JULIAN);
406
+ function getDateFromMJD(mjd, scale = 1 /* TT */) {
407
+ return getDateFromJulianDate(mjd + DAYS_MJD_JULIAN, scale);
469
408
  }
470
- function getMJD2000(date) {
471
- return getMJD(date) - DAYS_MJD2000_MJD;
409
+ function getMJD2000(date, scale = 1 /* TT */) {
410
+ return getMJD(date, scale) - DAYS_MJD2000_MJD;
472
411
  }
473
- function getDateFromMJD2000(mjd2000) {
474
- return getDateFromMJD(mjd2000 + DAYS_MJD2000_MJD);
412
+ function getDateFromMJD2000(mjd2000, scale = 1 /* TT */) {
413
+ return getDateFromMJD(mjd2000 + DAYS_MJD2000_MJD, scale);
475
414
  }
476
- // Annotate the CommonJS export names for ESM import in node:
477
- 0 && (module.exports = {
415
+ export {
478
416
  DAYS_MJD2000_MJD,
479
417
  DAYS_MJD_JULIAN,
480
418
  MILLISECONDS_GPS_TAI,
@@ -498,6 +436,7 @@ function getDateFromMJD2000(mjd2000) {
498
436
  START_NTP_TIME,
499
437
  START_TAI_TIME,
500
438
  START_UNIX_TIME,
439
+ Scale,
501
440
  getBdsTime,
502
441
  getDateFromBdsTime,
503
442
  getDateFromDayOfWeek,
@@ -548,4 +487,4 @@ function getDateFromMJD2000(mjd2000) {
548
487
  getUtcDate,
549
488
  getWeekNumber,
550
489
  getWeekOfYear
551
- });
490
+ };
package/jest.config.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { Config } from 'jest';
2
+
3
+ const config: Config = {
4
+ preset: 'ts-jest',
5
+ testEnvironment: 'node',
6
+ testMatch: ['**/test/**/*.test.ts'],
7
+ };
8
+
9
+ export default config;
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "gnss-js",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Tool to peform GNSS-related computations",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",
8
+ "type": "module",
8
9
  "scripts": {
9
10
  "build": "tsup",
10
11
  "test": "jest",
@@ -22,7 +23,8 @@
22
23
  "jest": "^29.7.0",
23
24
  "prettier": "^3.5.3",
24
25
  "ts-jest": "^29.3.2",
26
+ "ts-node": "^10.9.2",
25
27
  "tsup": "^8.0.2",
26
- "typescript": "^5.3.3"
28
+ "typescript": "^5.8.3"
27
29
  }
28
30
  }
@@ -0,0 +1,63 @@
1
+ import {
2
+ getHourCode,
3
+ getDayOfYear,
4
+ getDateFromHourCode,
5
+ getDayOfWeek,
6
+ getDateFromDayOfWeek,
7
+ getTimeOfDay,
8
+ getDateFromTimeOfDay,
9
+ getDateFromDayOfYear,
10
+ getWeekOfYear,
11
+ } from '../src/index';
12
+
13
+ test('getTimeOfDay', () => {
14
+ const date: Date = new Date('1980-01-06T23:09:00Z');
15
+ const time_of_day: number = getTimeOfDay(date);
16
+ expect(time_of_day).toBe(83340);
17
+ });
18
+
19
+ test('getDateFromTimeOfDay', () => {
20
+ const date: Date = new Date('1980-01-06T00:00:00Z');
21
+ const new_date: Date = getDateFromTimeOfDay(83340, date);
22
+ expect(new_date.toISOString()).toBe('1980-01-06T23:09:00.000Z');
23
+ });
24
+
25
+ test('getDayOfYear', () => {
26
+ const date: Date = new Date('1980-01-06T23:09:00Z');
27
+ const day_of_year: Date = getDayOfYear(date);
28
+ expect(day_of_year).toBe(6);
29
+ });
30
+
31
+ test('getDateFromDayOfYear', () => {
32
+ const date: Date = new Date('1980-01-06T00:00:00Z');
33
+ const new_date: Date = getDateFromDayOfYear(100, date);
34
+ expect(new_date.toISOString()).toBe('1980-04-09T00:00:00.000Z');
35
+ });
36
+
37
+ test('getHourCode', () => {
38
+ const date: Date = new Date('1980-01-06T00:00:00Z');
39
+ const hour_code: Date = getHourCode(date);
40
+ expect(hour_code).toBe('a');
41
+ });
42
+
43
+ test('getDateFromHourCode', () => {
44
+ const date: Date = new Date('1980-01-06T00:00:00Z');
45
+ const new_date: Date = getDateFromHourCode('c', date);
46
+ expect(new_date.toISOString()).toBe('1980-01-06T02:00:00.000Z');
47
+ });
48
+
49
+ test('getDayOfWeek', () => {
50
+ const date: Date = new Date('1980-01-06T00:00:00Z');
51
+ expect(getDayOfWeek(date)).toBe(0);
52
+ });
53
+
54
+ test('getDateFromDayOfWeek', () => {
55
+ const date: Date = new Date('1980-01-06T00:00:00Z');
56
+ const new_date: Date = getDateFromDayOfWeek(1, date);
57
+ expect(new_date.toISOString()).toBe('1980-01-07T00:00:00.000Z');
58
+ });
59
+
60
+ test('getWeekOfYear', () => {
61
+ const date: Date = new Date('2025-05-05T00:00:00Z');
62
+ expect(getWeekOfYear(date)).toBe(19);
63
+ });
@@ -1,4 +1,4 @@
1
- const {
1
+ import {
2
2
  getGpsTime,
3
3
  getDateFromGpsTime,
4
4
  getGalTime,
@@ -13,50 +13,50 @@ const {
13
13
  getDateFromTt,
14
14
  getWeekNumber,
15
15
  getDateFromGpsData,
16
- } = require('../src/index');
16
+ } from '../src/index';
17
17
 
18
18
  test('getGpsTime', () => {
19
- const gps_time = getGpsTime(new Date('1980-01-06T00:00:00Z'));
19
+ const gps_time: number = getGpsTime(new Date('1980-01-06T00:00:00Z'));
20
20
  expect(gps_time).toBe(0);
21
21
  });
22
22
 
23
23
  test('getDateFromGpsTime', () => {
24
- const date = getDateFromGpsTime(0);
24
+ const date: Date = getDateFromGpsTime(0);
25
25
  expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
26
26
  });
27
27
 
28
28
  test('getWeekNumber', () => {
29
- const week_no = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
29
+ const week_no: number = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
30
30
  expect(week_no).toBe(0);
31
31
  });
32
32
 
33
33
  test('getTimeOfWeek', () => {
34
- const tow = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
34
+ const tow: number = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
35
35
  expect(tow).toBe(0);
36
36
  });
37
37
 
38
38
  test('getDateFromGpsData', () => {
39
- const date = getDateFromGpsData(0, 0);
39
+ const date: Date = getDateFromGpsData(0, 0);
40
40
  expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
41
41
  });
42
42
 
43
43
  test('getGalTime', () => {
44
- const gal_time = getGalTime(new Date('1999-08-22T00:00:00Z'));
44
+ const gal_time: number = getGalTime(new Date('1999-08-22T00:00:00Z'));
45
45
  expect(gal_time).toBe(0);
46
46
  });
47
47
 
48
48
  test('getDateFromGalTime', () => {
49
- const date = getDateFromGalTime(0);
49
+ const date: Date = getDateFromGalTime(0);
50
50
  expect(date.getTime()).toBe(new Date('1999-08-22T00:00:00Z').getTime());
51
51
  });
52
52
 
53
53
  test('getBdsTime', () => {
54
- const bds_time = getBdsTime(new Date('2006-01-01T00:00:13Z'));
54
+ const bds_time: number = getBdsTime(new Date('2006-01-01T00:00:13Z'));
55
55
  expect(bds_time).toBe(0);
56
56
  });
57
57
 
58
58
  test('getDateFromBdsTime', () => {
59
- const date = getDateFromBdsTime(0);
59
+ const date: Date = getDateFromBdsTime(0);
60
60
  expect(date.getTime()).toBe(new Date('2006-01-01T00:00:13Z').getTime());
61
61
  });
62
62
 
@@ -66,30 +66,30 @@ test('getUnixTime', () => {
66
66
  });
67
67
 
68
68
  test('getDateFromUnixTime', () => {
69
- const date = getDateFromUnixTime(0);
69
+ const date: Date = getDateFromUnixTime(0);
70
70
  expect(date.toISOString()).toBe('1969-12-31T23:59:49.000Z');
71
71
  });
72
72
 
73
73
  test('getTaiDate', () => {
74
- const date = getDateFromGpsTime(0);
75
- const tai_date = getTaiDate(date);
74
+ const date: Date = getDateFromGpsTime(0);
75
+ const tai_date: Date = getTaiDate(date);
76
76
  expect(tai_date.getTime()).toBe(new Date('1980-01-06T00:00:19Z').getTime());
77
77
  });
78
78
 
79
79
  test('getDateFromTai', () => {
80
- const date = getDateFromTai(new Date('1980-01-06T00:00:19Z'));
80
+ const date: Date = getDateFromTai(new Date('1980-01-06T00:00:19Z'));
81
81
  expect(getGpsTime(date)).toBe(0);
82
82
  });
83
83
 
84
84
  test('getTtDate', () => {
85
- const date = getDateFromGpsTime(0);
86
- const tt_date = getTtDate(date);
85
+ const date: Date = getDateFromGpsTime(0);
86
+ const tt_date: Date = getTtDate(date);
87
87
  expect(tt_date.getTime()).toBe(
88
88
  new Date('1980-01-06T00:00:51.184Z').getTime()
89
89
  );
90
90
  });
91
91
 
92
92
  test('getDateFromTt', () => {
93
- const date = getDateFromTt(new Date('1980-01-06T00:00:51.184Z'));
93
+ const date: Date = getDateFromTt(new Date('1980-01-06T00:00:51.184Z'));
94
94
  expect(getGpsTime(date)).toBe(0);
95
95
  });
@@ -0,0 +1,145 @@
1
+ import {
2
+ getJulianDate,
3
+ getDateFromJulianDate,
4
+ getMJD,
5
+ getDateFromMJD,
6
+ getMJD2000,
7
+ getDateFromMJD2000,
8
+ } from '../src/index';
9
+ import { Scale } from '../src/types/enums';
10
+
11
+ // TT scale
12
+ test('getJulianDate', () => {
13
+ const date: Date = new Date('2000-01-01T11:59:08.816Z');
14
+ const julian_date: number = getJulianDate(date);
15
+ expect(julian_date).toBeCloseTo(2451545.0, 5);
16
+ });
17
+
18
+ test('getDateFromJulianDate', () => {
19
+ const date: Date = getDateFromJulianDate(2451545.0);
20
+ expect(date.toISOString()).toBe('2000-01-01T11:59:08.816Z');
21
+ });
22
+
23
+ test('getMJD', () => {
24
+ const date: Date = new Date('2000-01-01T11:59:08.816Z');
25
+ const mjd = getMJD(date);
26
+ expect(mjd).toBeCloseTo(51544.5, 5);
27
+ });
28
+
29
+ test('getDateFromMJD', () => {
30
+ const date: Date = getDateFromMJD(51544.5);
31
+ expect(date.toISOString()).toBe('2000-01-01T11:59:08.816Z');
32
+ });
33
+
34
+ test('getMJD2000', () => {
35
+ const date: Date = new Date('2000-01-01T11:59:08.816Z');
36
+ const mjd2000: number = getMJD2000(date);
37
+ expect(mjd2000).toBeCloseTo(0, 5);
38
+ });
39
+
40
+ test('getDateFromMJD2000', () => {
41
+ const date: Date = getDateFromMJD2000(0);
42
+ expect(date.toISOString()).toBe('2000-01-01T11:59:08.816Z');
43
+ });
44
+
45
+ // TAI scale
46
+ test('getJulianDate', () => {
47
+ const date: Date = new Date('2000-01-01T11:59:41.000Z');
48
+ const julian_date: number = getJulianDate(date, Scale.TAI);
49
+ expect(julian_date).toBeCloseTo(2451545.0, 5);
50
+ });
51
+
52
+ test('getDateFromJulianDate', () => {
53
+ const date: Date = getDateFromJulianDate(2451545.0, Scale.TAI);
54
+ expect(date.toISOString()).toBe('2000-01-01T11:59:41.000Z');
55
+ });
56
+
57
+ test('getMJD', () => {
58
+ const date: Date = new Date('2000-01-01T11:59:41.000Z');
59
+ const mjd = getMJD(date, Scale.TAI);
60
+ expect(mjd).toBeCloseTo(51544.5, 5);
61
+ });
62
+
63
+ test('getDateFromMJD', () => {
64
+ const date: Date = getDateFromMJD(51544.5, Scale.TAI);
65
+ expect(date.toISOString()).toBe('2000-01-01T11:59:41.000Z');
66
+ });
67
+
68
+ test('getMJD2000', () => {
69
+ const date: Date = new Date('2000-01-01T11:59:41.000Z');
70
+ const mjd2000: number = getMJD2000(date, Scale.TAI);
71
+ expect(mjd2000).toBeCloseTo(0, 5);
72
+ });
73
+
74
+ test('getDateFromMJD2000', () => {
75
+ const date: Date = getDateFromMJD2000(0, Scale.TAI);
76
+ expect(date.toISOString()).toBe('2000-01-01T11:59:41.000Z');
77
+ });
78
+
79
+ // GPS scale
80
+ test('getJulianDate', () => {
81
+ const date: Date = new Date('2000-01-01T12:00:00.000Z');
82
+ const julian_date: number = getJulianDate(date, Scale.GPS);
83
+ expect(julian_date).toBeCloseTo(2451545.0, 5);
84
+ });
85
+
86
+ test('getDateFromJulianDate', () => {
87
+ const date: Date = getDateFromJulianDate(2451545.0, Scale.GPS);
88
+ expect(date.toISOString()).toBe('2000-01-01T12:00:00.000Z');
89
+ });
90
+
91
+ test('getMJD', () => {
92
+ const date: Date = new Date('2000-01-01T12:00:00.000Z');
93
+ const mjd = getMJD(date, Scale.GPS);
94
+ expect(mjd).toBeCloseTo(51544.5, 5);
95
+ });
96
+
97
+ test('getDateFromMJD', () => {
98
+ const date: Date = getDateFromMJD(51544.5, Scale.GPS);
99
+ expect(date.toISOString()).toBe('2000-01-01T12:00:00.000Z');
100
+ });
101
+
102
+ test('getMJD2000', () => {
103
+ const date: Date = new Date('2000-01-01T12:00:00.000Z');
104
+ const mjd2000: number = getMJD2000(date, Scale.GPS);
105
+ expect(mjd2000).toBeCloseTo(0, 5);
106
+ });
107
+
108
+ test('getDateFromMJD2000', () => {
109
+ const date: Date = getDateFromMJD2000(0, Scale.GPS);
110
+ expect(date.toISOString()).toBe('2000-01-01T12:00:00.000Z');
111
+ });
112
+
113
+ // UTC scale
114
+ test('getJulianDate', () => {
115
+ const date: Date = new Date('2000-01-01T12:00:13.000Z');
116
+ const julian_date: number = getJulianDate(date, Scale.UTC);
117
+ expect(julian_date).toBeCloseTo(2451545.0, 5);
118
+ });
119
+
120
+ test('getDateFromJulianDate', () => {
121
+ const date: Date = getDateFromJulianDate(2451545.0, Scale.UTC);
122
+ expect(date.toISOString()).toBe('2000-01-01T12:00:13.000Z');
123
+ });
124
+
125
+ test('getMJD', () => {
126
+ const date: Date = new Date('2000-01-01T12:00:13.000Z');
127
+ const mjd = getMJD(date, Scale.UTC);
128
+ expect(mjd).toBeCloseTo(51544.5, 5);
129
+ });
130
+
131
+ test('getDateFromMJD', () => {
132
+ const date: Date = getDateFromMJD(51544.5, Scale.UTC);
133
+ expect(date.toISOString()).toBe('2000-01-01T12:00:13.000Z');
134
+ });
135
+
136
+ test('getMJD2000', () => {
137
+ const date: Date = new Date('2000-01-01T12:00:13.000Z');
138
+ const mjd2000: number = getMJD2000(date, Scale.UTC);
139
+ expect(mjd2000).toBeCloseTo(0, 5);
140
+ });
141
+
142
+ test('getDateFromMJD2000', () => {
143
+ const date: Date = getDateFromMJD2000(0, Scale.UTC);
144
+ expect(date.toISOString()).toBe('2000-01-01T12:00:13.000Z');
145
+ });
@@ -0,0 +1,11 @@
1
+ import { getRINEX, getDateFromRINEX } from '../src/index';
2
+
3
+ test('getRINEX', () => {
4
+ const rinex: string = getRINEX(new Date('1980-01-06T00:00:00Z'));
5
+ expect(rinex).toBe('> 1980 01 06 00 00 00.0000000');
6
+ });
7
+
8
+ test('getDateFromRINEX', () => {
9
+ const date: Date = getDateFromRINEX('> 1980 01 06 00 00 00.0000000');
10
+ expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
11
+ });
@@ -1,9 +1,8 @@
1
- // To run: npx tsc && node test/test.js
1
+ // To run: npx ts-node test/test.ts
2
2
 
3
- const { getTaiDate, getDateFromUtc } = require('../dist/index');
3
+ import { getTaiDate, getDateFromUtc } from '../src/index';
4
4
 
5
5
  const utc_date = new Date('2017-01-01T00:00:01.000Z');
6
- // const utc_date = new Date('2016-12-31T23:59:59.000Z');
7
6
  const gps_date = getDateFromUtc(utc_date);
8
7
 
9
8
  console.log('TAI Date:', getTaiDate(gps_date).toISOString());
@@ -0,0 +1,25 @@
1
+ import { getLeap, getGpsLeap, getUtcDate, getDateFromUtc } from '../src/index';
2
+
3
+ test('getLeap', () => {
4
+ const gps_date: Date = new Date('2017-01-01T00:00:31Z');
5
+ const leap_seconds: number = getLeap(gps_date);
6
+ expect(leap_seconds).toBe(37);
7
+ });
8
+
9
+ test('getGpsLeap', () => {
10
+ const gps_date: Date = new Date('2017-01-01T00:00:31Z');
11
+ const leap_seconds: number = getGpsLeap(gps_date);
12
+ expect(leap_seconds).toBe(18);
13
+ });
14
+
15
+ test('getUtcDate', () => {
16
+ const gps_date: Date = new Date('2017-01-01T00:00:31Z');
17
+ const utc_date: Date = getUtcDate(gps_date);
18
+ expect(utc_date.toISOString()).toBe('2017-01-01T00:00:13.000Z');
19
+ });
20
+
21
+ test('getDateFromUtc', () => {
22
+ const utc_date: Date = new Date('2017-01-01T00:00:01.000Z');
23
+ const gps_date: Date = getDateFromUtc(utc_date);
24
+ expect(gps_date.toISOString()).toBe('2017-01-01T00:00:19.000Z');
25
+ });
package/jest.config.js DELETED
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- preset: 'ts-jest',
3
- testEnvironment: 'node',
4
- testMatch: ['**/test/**/*.test.js'],
5
- moduleDirectories: ['node_modules', '<rootDir>'],
6
- };
@@ -1,69 +0,0 @@
1
- const {
2
- getHourCode,
3
- getDayOfYear,
4
- getDateFromHourCode,
5
- getDayOfWeek,
6
- getDateFromDayOfWeek,
7
- getTimeOfDay,
8
- getDateFromTimeOfDay,
9
- getDateFromDayOfYear,
10
- getWeekOfYear,
11
- } = require('../src/index');
12
-
13
- test('getTimeOfDay', () => {
14
- const date = new Date('1980-01-06T23:09:00Z');
15
- const time_of_day = getTimeOfDay(date);
16
- expect(time_of_day).toBe(83340);
17
- });
18
-
19
- test('getDateFromTimeOfDay', () => {
20
- const date = new Date('1980-01-06T00:00:00Z');
21
- const new_date = getDateFromTimeOfDay(83340, date);
22
- expect(new_date.toISOString()).toBe('1980-01-06T23:09:00.000Z');
23
- });
24
-
25
- test('getDayOfYear', () => {
26
- const date = new Date('1980-01-06T23:09:00Z');
27
- const day_of_year = getDayOfYear(date);
28
- expect(day_of_year).toBe(6);
29
- });
30
-
31
- test('getDateFromDayOfYear', () => {
32
- const date = new Date('1980-01-06T00:00:00Z');
33
- const new_date = getDateFromDayOfYear(100, date);
34
- expect(new_date.toISOString()).toBe('1980-04-09T00:00:00.000Z');
35
- });
36
-
37
- test('getHourCode', () => {
38
- const date = new Date('1980-01-06T00:00:00Z');
39
- const hour_code = getHourCode(date);
40
- expect(hour_code).toBe('a');
41
- });
42
-
43
- test('getDateFromHourCode', () => {
44
- const date = new Date('1980-01-06T00:00:00Z');
45
- const new_date = getDateFromHourCode('c', date);
46
- expect(new_date.toISOString()).toBe('1980-01-06T02:00:00.000Z');
47
- });
48
-
49
- test('getDayOfWeek', () => {
50
- const date = new Date('1980-01-06T00:00:00Z');
51
- expect(getDayOfWeek(date)).toBe(0);
52
- });
53
-
54
- test('getDateFromDayOfWeek', () => {
55
- const date = new Date('1980-01-06T00:00:00Z');
56
- const new_date = getDateFromDayOfWeek(1, date);
57
- expect(new_date.toISOString()).toBe('1980-01-07T00:00:00.000Z');
58
- });
59
-
60
- test('getWeekOfYear', () => {
61
- const date = new Date('2025-05-05T00:00:00Z');
62
- expect(getWeekOfYear(date)).toBe(19);
63
- });
64
-
65
- // test('getDateFromDayOfWeek', () => {
66
- // const date = new Date('1980-01-06T00:00:00Z')
67
- // const new_date = getDateFromDayOfWeek(1, date);
68
- // expect(new_date.toISOString()).toBe('1980-01-07T00:00:00.000Z');
69
- // });
@@ -1,41 +0,0 @@
1
- const {
2
- getJulianDate,
3
- getDateFromJulianDate,
4
- getMJD,
5
- getDateFromMJD,
6
- getMJD2000,
7
- getDateFromMJD2000,
8
- } = require('../src/index');
9
-
10
- test('getJulianDate', () => {
11
- date = new Date('2024-01-01T00:00:00Z');
12
- const julian_date = getJulianDate(date);
13
- expect(julian_date).toBeCloseTo(2460310.5002199076, 5);
14
- });
15
-
16
- test('getDateFromJulianDate', () => {
17
- date = getDateFromJulianDate(2460310.5002199076);
18
- expect(date.toISOString()).toBe('2024-01-01T00:00:00.000Z');
19
- });
20
-
21
- test('getMJD', () => {
22
- date = new Date('2024-01-01T00:00:00Z');
23
- const mjd = getMJD(date);
24
- expect(mjd).toBeCloseTo(60310.00021990741, 5);
25
- });
26
-
27
- test('getDateFromMJD', () => {
28
- date = getDateFromMJD(60310.00021990761);
29
- expect(date.toISOString()).toBe('2024-01-01T00:00:00.000Z');
30
- });
31
-
32
- test('getMJD2000', () => {
33
- date = new Date('2024-01-01T00:00:00Z');
34
- const mjd = getMJD2000(date);
35
- expect(mjd).toBeCloseTo(8765.500219907612, 5);
36
- });
37
-
38
- test('getDateFromMJD2000', () => {
39
- date = getDateFromMJD2000(8765.500219907612);
40
- expect(date.toISOString()).toBe('2024-01-01T00:00:00.000Z');
41
- });
@@ -1,11 +0,0 @@
1
- const { getRINEX, getDateFromRINEX } = require('../src/index');
2
-
3
- test('getRINEX', () => {
4
- const rinex = getRINEX(new Date('1980-01-06T00:00:00Z'));
5
- expect(rinex).toBe('> 1980 01 06 00 00 00.0000000');
6
- });
7
-
8
- test('getDateFromRINEX', () => {
9
- const date = getDateFromRINEX('> 1980 01 06 00 00 00.0000000');
10
- expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
11
- });
package/test/utc.test.js DELETED
@@ -1,30 +0,0 @@
1
- const {
2
- getLeap,
3
- getGpsLeap,
4
- getUtcDate,
5
- getDateFromUtc,
6
- } = require('../src/index');
7
-
8
- test('getLeap', () => {
9
- const gps_date = new Date('2017-01-01T00:00:31Z');
10
- const leap_seconds = getLeap(gps_date);
11
- expect(leap_seconds).toBe(37);
12
- });
13
-
14
- test('getLeap', () => {
15
- const gps_date = new Date('2017-01-01T00:00:31Z');
16
- const leap_seconds = getGpsLeap(gps_date);
17
- expect(leap_seconds).toBe(18);
18
- });
19
-
20
- test('getUtcDate', () => {
21
- const gps_date = new Date('2017-01-01T00:00:31Z');
22
- const utc_date = getUtcDate(gps_date);
23
- expect(utc_date.toISOString()).toBe('2017-01-01T00:00:13.000Z');
24
- });
25
-
26
- test('getDateFromUtc', () => {
27
- const utc_date = new Date('2017-01-01T00:00:01.000Z');
28
- const gps_date = getDateFromUtc(utc_date);
29
- expect(gps_date.toISOString()).toBe('2017-01-01T00:00:19.000Z');
30
- });