gnss-js 0.0.1
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/README.md +9 -0
- package/dist/index.d.mts +71 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.js +520 -0
- package/dist/index.mjs +433 -0
- package/package.json +28 -0
- package/test/index.js +3 -0
package/README.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# GNSS.js
|
|
2
|
+
|
|
3
|
+
GNSS.js is a library for all JavaScript environments (browser, Node.js, etc.) to perform several types of GNSS-related computations.
|
|
4
|
+
|
|
5
|
+
The name GNSS.js is dervived from the acronym GNSS (Global Navigation Satellite System) and JS (JavaScript).
|
|
6
|
+
|
|
7
|
+
There are multiple conversion functions between different time and coordinate systems, such as `getRINEX`, `getDateFromRINEX`, etc.
|
|
8
|
+
|
|
9
|
+
Further documentation will follow in the future.
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
type TimeDifference = {
|
|
2
|
+
seconds: number;
|
|
3
|
+
minutes: number;
|
|
4
|
+
hours: number;
|
|
5
|
+
days: number;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
declare function getLeapSeconds(date: Date): number;
|
|
9
|
+
declare function getGpsTime(date: Date): number;
|
|
10
|
+
declare function getGalTime(date: Date): number;
|
|
11
|
+
declare function getBdsTime(date: Date): number;
|
|
12
|
+
declare function getUnixTime(date: Date): number;
|
|
13
|
+
declare function getWeekNumber(date: Date): number;
|
|
14
|
+
declare function getTimeOfWeek(date: Date): number;
|
|
15
|
+
declare function getTimeOfDay(date: Date): number;
|
|
16
|
+
declare function getDateFromTimeOfDay(timeOfDay: number, dateRaw: Date): Date | undefined;
|
|
17
|
+
declare function getGloN4(date: Date): number;
|
|
18
|
+
declare function getGloNA(date: Date): number;
|
|
19
|
+
declare function getDateFromGpsData(weekNumber: number, timeOfWeek: number): Date | undefined;
|
|
20
|
+
declare function getDateFromGpsTime(gpsTime: number): Date | undefined;
|
|
21
|
+
declare function getDateFromGalTime(galTime: number): Date | undefined;
|
|
22
|
+
declare function getDateFromBdsTime(bdsTime: number): Date | undefined;
|
|
23
|
+
declare function getDateFromUnixTime(unixTime: number): Date | undefined;
|
|
24
|
+
declare function getDateFromGloN(n4: number, na: number, tod: number): Date | undefined;
|
|
25
|
+
declare function getDateFromDayOfYear(dayOfYear: number, date: Date): Date;
|
|
26
|
+
declare function getDayOfYear(date: Date): number;
|
|
27
|
+
declare function getDayOfWeek(date: Date): number;
|
|
28
|
+
declare function getDateFromDayOfWeek(dayOfWeek: number, dateRaw: Date): Date | undefined;
|
|
29
|
+
declare function getDateFromHourCode(hourCode: string, date: Date): Date | undefined;
|
|
30
|
+
declare function getHourCode(date: Date): string;
|
|
31
|
+
declare function getJulianDate(date: Date): number;
|
|
32
|
+
declare function getDateFromJulianDate(julianDate: number): Date | undefined;
|
|
33
|
+
declare function getMJD(date: Date): number;
|
|
34
|
+
declare function getDateFromMJD(mjd: number): Date | undefined;
|
|
35
|
+
declare function getDateFromMJD2000(mjd2000: number): Date | undefined;
|
|
36
|
+
declare function getDateFromRINEX(rinex: string): Date | undefined;
|
|
37
|
+
declare function getLeapSecondsFromTAI(date: Date): number;
|
|
38
|
+
declare function getTimeDifference(startDate: Date, finalDate: Date): number;
|
|
39
|
+
declare function getSecondsFromTimeDifference(timeDifference: number): number | undefined;
|
|
40
|
+
declare function getMinutesFromTimeDifference(timeDifference: number): number | undefined;
|
|
41
|
+
declare function getHoursFromTimeDifference(timeDifference: number): number | undefined;
|
|
42
|
+
declare function getTotalDaysFromTimeDifference(timeDifference: number): number | undefined;
|
|
43
|
+
declare function getTimeDifferenceFromSeconds(seconds: number): number;
|
|
44
|
+
declare function getTimeDifferenceFromMinutes(minutes: number): number;
|
|
45
|
+
declare function getTimeDifferenceFromHours(hours: number): number;
|
|
46
|
+
declare function getTimeDifferenceFromDays(days: number): number;
|
|
47
|
+
declare function getTimeDifferenceFromObject(timeDifferenceObject: TimeDifference): number | undefined;
|
|
48
|
+
declare function getRINEX(date: Date): string;
|
|
49
|
+
|
|
50
|
+
declare const SECONDS_IN_WEEK = 604800;
|
|
51
|
+
declare const SECONDS_IN_DAY = 86400;
|
|
52
|
+
declare const SECONDS_IN_HOUR = 3600;
|
|
53
|
+
declare const SECONDS_IN_MINUTE = 60;
|
|
54
|
+
declare const MILLISECONDS_IN_WEEK = 604800000;
|
|
55
|
+
declare const MILLISECONDS_IN_DAY = 86400000;
|
|
56
|
+
declare const MILLISECONDS_IN_HOUR = 3600000;
|
|
57
|
+
declare const MILLISECONDS_IN_MINUTE = 60000;
|
|
58
|
+
declare const MILLISECONDS_IN_SECOND = 1000;
|
|
59
|
+
declare const SECONDS_TT_TAI = 32.184;
|
|
60
|
+
declare const START_LEAP_SECS_GPS = 19;
|
|
61
|
+
declare const START_GPS_TIME: Date;
|
|
62
|
+
declare const START_GAL_TIME: Date;
|
|
63
|
+
declare const START_BDS_TIME: Date;
|
|
64
|
+
declare const START_UNIX_TIME: Date;
|
|
65
|
+
declare const START_MJD2000_TIME: Date;
|
|
66
|
+
declare const ALPHABET: string[];
|
|
67
|
+
declare const START_GLO_LEAP: Date;
|
|
68
|
+
declare const START_JULIAN_CALENDAR_UNIX_SECONDS = 2440587.5;
|
|
69
|
+
declare const START_MJD_UNIX_SECONDS = 40587;
|
|
70
|
+
|
|
71
|
+
export { ALPHABET, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, SECONDS_TT_TAI, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_CALENDAR_UNIX_SECONDS, START_LEAP_SECS_GPS, START_MJD2000_TIME, START_MJD_UNIX_SECONDS, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTimeOfDay, getDateFromUnixTime, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeapSeconds, getLeapSecondsFromTAI, getMJD, getMinutesFromTimeDifference, getRINEX, getSecondsFromTimeDifference, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getUnixTime, getWeekNumber };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
type TimeDifference = {
|
|
2
|
+
seconds: number;
|
|
3
|
+
minutes: number;
|
|
4
|
+
hours: number;
|
|
5
|
+
days: number;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
declare function getLeapSeconds(date: Date): number;
|
|
9
|
+
declare function getGpsTime(date: Date): number;
|
|
10
|
+
declare function getGalTime(date: Date): number;
|
|
11
|
+
declare function getBdsTime(date: Date): number;
|
|
12
|
+
declare function getUnixTime(date: Date): number;
|
|
13
|
+
declare function getWeekNumber(date: Date): number;
|
|
14
|
+
declare function getTimeOfWeek(date: Date): number;
|
|
15
|
+
declare function getTimeOfDay(date: Date): number;
|
|
16
|
+
declare function getDateFromTimeOfDay(timeOfDay: number, dateRaw: Date): Date | undefined;
|
|
17
|
+
declare function getGloN4(date: Date): number;
|
|
18
|
+
declare function getGloNA(date: Date): number;
|
|
19
|
+
declare function getDateFromGpsData(weekNumber: number, timeOfWeek: number): Date | undefined;
|
|
20
|
+
declare function getDateFromGpsTime(gpsTime: number): Date | undefined;
|
|
21
|
+
declare function getDateFromGalTime(galTime: number): Date | undefined;
|
|
22
|
+
declare function getDateFromBdsTime(bdsTime: number): Date | undefined;
|
|
23
|
+
declare function getDateFromUnixTime(unixTime: number): Date | undefined;
|
|
24
|
+
declare function getDateFromGloN(n4: number, na: number, tod: number): Date | undefined;
|
|
25
|
+
declare function getDateFromDayOfYear(dayOfYear: number, date: Date): Date;
|
|
26
|
+
declare function getDayOfYear(date: Date): number;
|
|
27
|
+
declare function getDayOfWeek(date: Date): number;
|
|
28
|
+
declare function getDateFromDayOfWeek(dayOfWeek: number, dateRaw: Date): Date | undefined;
|
|
29
|
+
declare function getDateFromHourCode(hourCode: string, date: Date): Date | undefined;
|
|
30
|
+
declare function getHourCode(date: Date): string;
|
|
31
|
+
declare function getJulianDate(date: Date): number;
|
|
32
|
+
declare function getDateFromJulianDate(julianDate: number): Date | undefined;
|
|
33
|
+
declare function getMJD(date: Date): number;
|
|
34
|
+
declare function getDateFromMJD(mjd: number): Date | undefined;
|
|
35
|
+
declare function getDateFromMJD2000(mjd2000: number): Date | undefined;
|
|
36
|
+
declare function getDateFromRINEX(rinex: string): Date | undefined;
|
|
37
|
+
declare function getLeapSecondsFromTAI(date: Date): number;
|
|
38
|
+
declare function getTimeDifference(startDate: Date, finalDate: Date): number;
|
|
39
|
+
declare function getSecondsFromTimeDifference(timeDifference: number): number | undefined;
|
|
40
|
+
declare function getMinutesFromTimeDifference(timeDifference: number): number | undefined;
|
|
41
|
+
declare function getHoursFromTimeDifference(timeDifference: number): number | undefined;
|
|
42
|
+
declare function getTotalDaysFromTimeDifference(timeDifference: number): number | undefined;
|
|
43
|
+
declare function getTimeDifferenceFromSeconds(seconds: number): number;
|
|
44
|
+
declare function getTimeDifferenceFromMinutes(minutes: number): number;
|
|
45
|
+
declare function getTimeDifferenceFromHours(hours: number): number;
|
|
46
|
+
declare function getTimeDifferenceFromDays(days: number): number;
|
|
47
|
+
declare function getTimeDifferenceFromObject(timeDifferenceObject: TimeDifference): number | undefined;
|
|
48
|
+
declare function getRINEX(date: Date): string;
|
|
49
|
+
|
|
50
|
+
declare const SECONDS_IN_WEEK = 604800;
|
|
51
|
+
declare const SECONDS_IN_DAY = 86400;
|
|
52
|
+
declare const SECONDS_IN_HOUR = 3600;
|
|
53
|
+
declare const SECONDS_IN_MINUTE = 60;
|
|
54
|
+
declare const MILLISECONDS_IN_WEEK = 604800000;
|
|
55
|
+
declare const MILLISECONDS_IN_DAY = 86400000;
|
|
56
|
+
declare const MILLISECONDS_IN_HOUR = 3600000;
|
|
57
|
+
declare const MILLISECONDS_IN_MINUTE = 60000;
|
|
58
|
+
declare const MILLISECONDS_IN_SECOND = 1000;
|
|
59
|
+
declare const SECONDS_TT_TAI = 32.184;
|
|
60
|
+
declare const START_LEAP_SECS_GPS = 19;
|
|
61
|
+
declare const START_GPS_TIME: Date;
|
|
62
|
+
declare const START_GAL_TIME: Date;
|
|
63
|
+
declare const START_BDS_TIME: Date;
|
|
64
|
+
declare const START_UNIX_TIME: Date;
|
|
65
|
+
declare const START_MJD2000_TIME: Date;
|
|
66
|
+
declare const ALPHABET: string[];
|
|
67
|
+
declare const START_GLO_LEAP: Date;
|
|
68
|
+
declare const START_JULIAN_CALENDAR_UNIX_SECONDS = 2440587.5;
|
|
69
|
+
declare const START_MJD_UNIX_SECONDS = 40587;
|
|
70
|
+
|
|
71
|
+
export { ALPHABET, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, SECONDS_TT_TAI, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_CALENDAR_UNIX_SECONDS, START_LEAP_SECS_GPS, START_MJD2000_TIME, START_MJD_UNIX_SECONDS, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTimeOfDay, getDateFromUnixTime, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeapSeconds, getLeapSecondsFromTAI, getMJD, getMinutesFromTimeDifference, getRINEX, getSecondsFromTimeDifference, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getUnixTime, getWeekNumber };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,520 @@
|
|
|
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
|
+
ALPHABET: () => ALPHABET,
|
|
24
|
+
MILLISECONDS_IN_DAY: () => MILLISECONDS_IN_DAY,
|
|
25
|
+
MILLISECONDS_IN_HOUR: () => MILLISECONDS_IN_HOUR,
|
|
26
|
+
MILLISECONDS_IN_MINUTE: () => MILLISECONDS_IN_MINUTE,
|
|
27
|
+
MILLISECONDS_IN_SECOND: () => MILLISECONDS_IN_SECOND,
|
|
28
|
+
MILLISECONDS_IN_WEEK: () => MILLISECONDS_IN_WEEK,
|
|
29
|
+
SECONDS_IN_DAY: () => SECONDS_IN_DAY,
|
|
30
|
+
SECONDS_IN_HOUR: () => SECONDS_IN_HOUR,
|
|
31
|
+
SECONDS_IN_MINUTE: () => SECONDS_IN_MINUTE,
|
|
32
|
+
SECONDS_IN_WEEK: () => SECONDS_IN_WEEK,
|
|
33
|
+
SECONDS_TT_TAI: () => SECONDS_TT_TAI,
|
|
34
|
+
START_BDS_TIME: () => START_BDS_TIME,
|
|
35
|
+
START_GAL_TIME: () => START_GAL_TIME,
|
|
36
|
+
START_GLO_LEAP: () => START_GLO_LEAP,
|
|
37
|
+
START_GPS_TIME: () => START_GPS_TIME,
|
|
38
|
+
START_JULIAN_CALENDAR_UNIX_SECONDS: () => START_JULIAN_CALENDAR_UNIX_SECONDS,
|
|
39
|
+
START_LEAP_SECS_GPS: () => START_LEAP_SECS_GPS,
|
|
40
|
+
START_MJD2000_TIME: () => START_MJD2000_TIME,
|
|
41
|
+
START_MJD_UNIX_SECONDS: () => START_MJD_UNIX_SECONDS,
|
|
42
|
+
START_UNIX_TIME: () => START_UNIX_TIME,
|
|
43
|
+
getBdsTime: () => getBdsTime,
|
|
44
|
+
getDateFromBdsTime: () => getDateFromBdsTime,
|
|
45
|
+
getDateFromDayOfWeek: () => getDateFromDayOfWeek,
|
|
46
|
+
getDateFromDayOfYear: () => getDateFromDayOfYear,
|
|
47
|
+
getDateFromGalTime: () => getDateFromGalTime,
|
|
48
|
+
getDateFromGloN: () => getDateFromGloN,
|
|
49
|
+
getDateFromGpsData: () => getDateFromGpsData,
|
|
50
|
+
getDateFromGpsTime: () => getDateFromGpsTime,
|
|
51
|
+
getDateFromHourCode: () => getDateFromHourCode,
|
|
52
|
+
getDateFromJulianDate: () => getDateFromJulianDate,
|
|
53
|
+
getDateFromMJD: () => getDateFromMJD,
|
|
54
|
+
getDateFromMJD2000: () => getDateFromMJD2000,
|
|
55
|
+
getDateFromRINEX: () => getDateFromRINEX,
|
|
56
|
+
getDateFromTimeOfDay: () => getDateFromTimeOfDay,
|
|
57
|
+
getDateFromUnixTime: () => getDateFromUnixTime,
|
|
58
|
+
getDayOfWeek: () => getDayOfWeek,
|
|
59
|
+
getDayOfYear: () => getDayOfYear,
|
|
60
|
+
getGalTime: () => getGalTime,
|
|
61
|
+
getGloN4: () => getGloN4,
|
|
62
|
+
getGloNA: () => getGloNA,
|
|
63
|
+
getGpsTime: () => getGpsTime,
|
|
64
|
+
getHourCode: () => getHourCode,
|
|
65
|
+
getHoursFromTimeDifference: () => getHoursFromTimeDifference,
|
|
66
|
+
getJulianDate: () => getJulianDate,
|
|
67
|
+
getLeapSeconds: () => getLeapSeconds,
|
|
68
|
+
getLeapSecondsFromTAI: () => getLeapSecondsFromTAI,
|
|
69
|
+
getMJD: () => getMJD,
|
|
70
|
+
getMinutesFromTimeDifference: () => getMinutesFromTimeDifference,
|
|
71
|
+
getRINEX: () => getRINEX,
|
|
72
|
+
getSecondsFromTimeDifference: () => getSecondsFromTimeDifference,
|
|
73
|
+
getTimeDifference: () => getTimeDifference,
|
|
74
|
+
getTimeDifferenceFromDays: () => getTimeDifferenceFromDays,
|
|
75
|
+
getTimeDifferenceFromHours: () => getTimeDifferenceFromHours,
|
|
76
|
+
getTimeDifferenceFromMinutes: () => getTimeDifferenceFromMinutes,
|
|
77
|
+
getTimeDifferenceFromObject: () => getTimeDifferenceFromObject,
|
|
78
|
+
getTimeDifferenceFromSeconds: () => getTimeDifferenceFromSeconds,
|
|
79
|
+
getTimeOfDay: () => getTimeOfDay,
|
|
80
|
+
getTimeOfWeek: () => getTimeOfWeek,
|
|
81
|
+
getTotalDaysFromTimeDifference: () => getTotalDaysFromTimeDifference,
|
|
82
|
+
getUnixTime: () => getUnixTime,
|
|
83
|
+
getWeekNumber: () => getWeekNumber
|
|
84
|
+
});
|
|
85
|
+
module.exports = __toCommonJS(src_exports);
|
|
86
|
+
|
|
87
|
+
// src/constants.ts
|
|
88
|
+
var SECONDS_IN_WEEK = 604800;
|
|
89
|
+
var SECONDS_IN_DAY = 86400;
|
|
90
|
+
var SECONDS_IN_HOUR = 3600;
|
|
91
|
+
var SECONDS_IN_MINUTE = 60;
|
|
92
|
+
var MILLISECONDS_IN_WEEK = 6048e5;
|
|
93
|
+
var MILLISECONDS_IN_DAY = 864e5;
|
|
94
|
+
var MILLISECONDS_IN_HOUR = 36e5;
|
|
95
|
+
var MILLISECONDS_IN_MINUTE = 6e4;
|
|
96
|
+
var MILLISECONDS_IN_SECOND = 1e3;
|
|
97
|
+
var SECONDS_TT_TAI = 32.184;
|
|
98
|
+
var START_LEAP_SECS_GPS = 19;
|
|
99
|
+
var START_GPS_TIME = new Date(Date.UTC(1980, 0, 6, 0, 0, 0, 0));
|
|
100
|
+
var START_GAL_TIME = new Date(Date.UTC(1999, 7, 22, 0, 0, 0));
|
|
101
|
+
var START_BDS_TIME = new Date(Date.UTC(2006, 0, 1, 0, 0, 0));
|
|
102
|
+
var START_UNIX_TIME = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));
|
|
103
|
+
var START_MJD2000_TIME = new Date(Date.UTC(2e3, 0, 1, 0, 0, 0));
|
|
104
|
+
var ALPHABET = "abcdefghijklmnopqrstuvwxyz".split("");
|
|
105
|
+
var START_GLO_LEAP = new Date(Date.UTC(1996, 0, 1, 0, 0, 0, 0));
|
|
106
|
+
var START_JULIAN_CALENDAR_UNIX_SECONDS = 24405875e-1;
|
|
107
|
+
var START_MJD_UNIX_SECONDS = 40587;
|
|
108
|
+
|
|
109
|
+
// src/functions.ts
|
|
110
|
+
function isValidDate(d) {
|
|
111
|
+
return d instanceof Date && !Number.isNaN(d);
|
|
112
|
+
}
|
|
113
|
+
function getLeapSeconds(date) {
|
|
114
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 36922176e5) {
|
|
115
|
+
return 37;
|
|
116
|
+
}
|
|
117
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 36446976e5) {
|
|
118
|
+
return 36;
|
|
119
|
+
}
|
|
120
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 35500896e5) {
|
|
121
|
+
return 35;
|
|
122
|
+
}
|
|
123
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 34397568e5) {
|
|
124
|
+
return 34;
|
|
125
|
+
}
|
|
126
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 33450624e5) {
|
|
127
|
+
return 33;
|
|
128
|
+
}
|
|
129
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 31241376e5) {
|
|
130
|
+
return 32;
|
|
131
|
+
}
|
|
132
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 3076704e6) {
|
|
133
|
+
return 31;
|
|
134
|
+
}
|
|
135
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 30294432e5) {
|
|
136
|
+
return 30;
|
|
137
|
+
}
|
|
138
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 29820096e5) {
|
|
139
|
+
return 29;
|
|
140
|
+
}
|
|
141
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 29504736e5) {
|
|
142
|
+
return 28;
|
|
143
|
+
}
|
|
144
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 29189376e5) {
|
|
145
|
+
return 27;
|
|
146
|
+
}
|
|
147
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 28716768e5) {
|
|
148
|
+
return 26;
|
|
149
|
+
}
|
|
150
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 28401408e5) {
|
|
151
|
+
return 25;
|
|
152
|
+
}
|
|
153
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 27769824e5) {
|
|
154
|
+
return 24;
|
|
155
|
+
}
|
|
156
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 26980128e5) {
|
|
157
|
+
return 23;
|
|
158
|
+
}
|
|
159
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 26348544e5) {
|
|
160
|
+
return 22;
|
|
161
|
+
}
|
|
162
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 26033184e5) {
|
|
163
|
+
return 21;
|
|
164
|
+
}
|
|
165
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 25717824e5) {
|
|
166
|
+
return 20;
|
|
167
|
+
}
|
|
168
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 25245216e5) {
|
|
169
|
+
return 19;
|
|
170
|
+
}
|
|
171
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 24929856e5) {
|
|
172
|
+
return 18;
|
|
173
|
+
}
|
|
174
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 24614496e5) {
|
|
175
|
+
return 17;
|
|
176
|
+
}
|
|
177
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 24299136e5) {
|
|
178
|
+
return 16;
|
|
179
|
+
}
|
|
180
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 23982912e5) {
|
|
181
|
+
return 15;
|
|
182
|
+
}
|
|
183
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 23667552e5) {
|
|
184
|
+
return 14;
|
|
185
|
+
}
|
|
186
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 23352192e5) {
|
|
187
|
+
return 13;
|
|
188
|
+
}
|
|
189
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 23036832e5) {
|
|
190
|
+
return 12;
|
|
191
|
+
}
|
|
192
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 22877856e5) {
|
|
193
|
+
return 11;
|
|
194
|
+
}
|
|
195
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 22720608e5) {
|
|
196
|
+
return 10;
|
|
197
|
+
}
|
|
198
|
+
return 0;
|
|
199
|
+
}
|
|
200
|
+
function getGpsTime(date) {
|
|
201
|
+
return date.getTime() - START_GPS_TIME.getTime();
|
|
202
|
+
}
|
|
203
|
+
function getGalTime(date) {
|
|
204
|
+
return date.getTime() - START_GAL_TIME.getTime();
|
|
205
|
+
}
|
|
206
|
+
function getBdsTime(date) {
|
|
207
|
+
return date.getTime() - START_BDS_TIME.getTime();
|
|
208
|
+
}
|
|
209
|
+
function getUnixTime(date) {
|
|
210
|
+
return date.getTime() - START_UNIX_TIME.getTime();
|
|
211
|
+
}
|
|
212
|
+
function getWeekNumber(date) {
|
|
213
|
+
return Math.floor(getGpsTime(date) / MILLISECONDS_IN_WEEK);
|
|
214
|
+
}
|
|
215
|
+
function getTimeOfWeek(date) {
|
|
216
|
+
return Math.floor(
|
|
217
|
+
getGpsTime(date) % MILLISECONDS_IN_WEEK / MILLISECONDS_IN_SECOND
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
function getTimeOfDay(date) {
|
|
221
|
+
return Math.floor(
|
|
222
|
+
(date.getTime() - Date.UTC(
|
|
223
|
+
date.getUTCFullYear(),
|
|
224
|
+
date.getUTCMonth(),
|
|
225
|
+
date.getUTCDate(),
|
|
226
|
+
0,
|
|
227
|
+
0,
|
|
228
|
+
0
|
|
229
|
+
)) / MILLISECONDS_IN_SECOND
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
function getDateFromTimeOfDay(timeOfDay, dateRaw) {
|
|
233
|
+
const date = new Date(
|
|
234
|
+
Date.UTC(
|
|
235
|
+
dateRaw.getUTCFullYear(),
|
|
236
|
+
dateRaw.getUTCMonth(),
|
|
237
|
+
dateRaw.getUTCDate(),
|
|
238
|
+
0,
|
|
239
|
+
0,
|
|
240
|
+
0
|
|
241
|
+
) + timeOfDay * MILLISECONDS_IN_SECOND
|
|
242
|
+
);
|
|
243
|
+
if (!isValidDate(date))
|
|
244
|
+
return void 0;
|
|
245
|
+
return date;
|
|
246
|
+
}
|
|
247
|
+
function getGloN4(date) {
|
|
248
|
+
return Math.floor((date.getUTCFullYear() - START_GLO_LEAP.getFullYear()) / 4);
|
|
249
|
+
}
|
|
250
|
+
function getGloNA(date) {
|
|
251
|
+
const n4 = getGloN4(date);
|
|
252
|
+
const init4YearPeriod = new Date(START_GLO_LEAP);
|
|
253
|
+
init4YearPeriod.setUTCFullYear(init4YearPeriod.getUTCFullYear() + n4 * 4);
|
|
254
|
+
return Math.floor(getTimeDifference(init4YearPeriod, date) / MILLISECONDS_IN_DAY) + 1;
|
|
255
|
+
}
|
|
256
|
+
function getDateFromGpsData(weekNumber, timeOfWeek) {
|
|
257
|
+
const date = new Date(
|
|
258
|
+
weekNumber * MILLISECONDS_IN_WEEK + timeOfWeek * MILLISECONDS_IN_SECOND + START_GPS_TIME.getTime()
|
|
259
|
+
);
|
|
260
|
+
if (!isValidDate(date))
|
|
261
|
+
return void 0;
|
|
262
|
+
return date;
|
|
263
|
+
}
|
|
264
|
+
function getDateFromGpsTime(gpsTime) {
|
|
265
|
+
const date = new Date(
|
|
266
|
+
gpsTime * MILLISECONDS_IN_SECOND + START_GPS_TIME.getTime()
|
|
267
|
+
);
|
|
268
|
+
if (!isValidDate(date))
|
|
269
|
+
return void 0;
|
|
270
|
+
return date;
|
|
271
|
+
}
|
|
272
|
+
function getDateFromGalTime(galTime) {
|
|
273
|
+
const date = new Date(
|
|
274
|
+
galTime * MILLISECONDS_IN_SECOND + START_GAL_TIME.getTime()
|
|
275
|
+
);
|
|
276
|
+
if (!isValidDate(date))
|
|
277
|
+
return void 0;
|
|
278
|
+
return date;
|
|
279
|
+
}
|
|
280
|
+
function getDateFromBdsTime(bdsTime) {
|
|
281
|
+
const date = new Date(
|
|
282
|
+
bdsTime * MILLISECONDS_IN_SECOND + START_BDS_TIME.getTime()
|
|
283
|
+
);
|
|
284
|
+
if (!isValidDate(date))
|
|
285
|
+
return void 0;
|
|
286
|
+
return date;
|
|
287
|
+
}
|
|
288
|
+
function getDateFromUnixTime(unixTime) {
|
|
289
|
+
const date = new Date(
|
|
290
|
+
unixTime * MILLISECONDS_IN_SECOND + START_UNIX_TIME.getTime()
|
|
291
|
+
);
|
|
292
|
+
if (!isValidDate(date))
|
|
293
|
+
return void 0;
|
|
294
|
+
return date;
|
|
295
|
+
}
|
|
296
|
+
function getDateFromGloN(n4, na, tod) {
|
|
297
|
+
const date = new Date(START_GLO_LEAP);
|
|
298
|
+
date.setFullYear(date.getUTCFullYear() + n4 * 4);
|
|
299
|
+
date.setTime(
|
|
300
|
+
date.getTime() + (na - 1) * MILLISECONDS_IN_DAY + tod * MILLISECONDS_IN_SECOND
|
|
301
|
+
);
|
|
302
|
+
if (!isValidDate(date))
|
|
303
|
+
return void 0;
|
|
304
|
+
return date;
|
|
305
|
+
}
|
|
306
|
+
function getDateFromDayOfYear(dayOfYear, date) {
|
|
307
|
+
return new Date(
|
|
308
|
+
Date.UTC(
|
|
309
|
+
date.getUTCFullYear(),
|
|
310
|
+
0,
|
|
311
|
+
1,
|
|
312
|
+
date.getUTCHours(),
|
|
313
|
+
date.getUTCMinutes(),
|
|
314
|
+
date.getUTCSeconds(),
|
|
315
|
+
date.getUTCMilliseconds()
|
|
316
|
+
) + (dayOfYear - 1) * MILLISECONDS_IN_DAY
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
function getDayOfYear(date) {
|
|
320
|
+
return Math.floor(
|
|
321
|
+
(date.getTime() - Date.UTC(date.getUTCFullYear())) / MILLISECONDS_IN_DAY
|
|
322
|
+
) + 1;
|
|
323
|
+
}
|
|
324
|
+
function getDayOfWeek(date) {
|
|
325
|
+
return date.getUTCDay();
|
|
326
|
+
}
|
|
327
|
+
function getDateFromDayOfWeek(dayOfWeek, dateRaw) {
|
|
328
|
+
if (dayOfWeek < 0 || dayOfWeek > 6)
|
|
329
|
+
throw new Error("Day of week must be a value between 0 and 7");
|
|
330
|
+
const date = new Date(
|
|
331
|
+
dateRaw.getTime() + (dayOfWeek - dateRaw.getUTCDay()) * MILLISECONDS_IN_DAY
|
|
332
|
+
);
|
|
333
|
+
if (!isValidDate(date))
|
|
334
|
+
return void 0;
|
|
335
|
+
return date;
|
|
336
|
+
}
|
|
337
|
+
function getDateFromHourCode(hourCode, date) {
|
|
338
|
+
const hour = ALPHABET.indexOf(hourCode);
|
|
339
|
+
if (hour !== -1) {
|
|
340
|
+
const newDate = new Date(date.getTime());
|
|
341
|
+
newDate.setUTCHours(hour);
|
|
342
|
+
return newDate;
|
|
343
|
+
}
|
|
344
|
+
return void 0;
|
|
345
|
+
}
|
|
346
|
+
function getHourCode(date) {
|
|
347
|
+
return ALPHABET[date.getUTCHours()];
|
|
348
|
+
}
|
|
349
|
+
function getJulianDate(date) {
|
|
350
|
+
return date.getTime() / MILLISECONDS_IN_DAY + START_JULIAN_CALENDAR_UNIX_SECONDS;
|
|
351
|
+
}
|
|
352
|
+
function getDateFromJulianDate(julianDate) {
|
|
353
|
+
const date = new Date(
|
|
354
|
+
(julianDate - START_JULIAN_CALENDAR_UNIX_SECONDS) * MILLISECONDS_IN_DAY
|
|
355
|
+
);
|
|
356
|
+
if (!isValidDate(date))
|
|
357
|
+
return void 0;
|
|
358
|
+
return date;
|
|
359
|
+
}
|
|
360
|
+
function getMJD(date) {
|
|
361
|
+
return date.getTime() / MILLISECONDS_IN_DAY + START_MJD_UNIX_SECONDS;
|
|
362
|
+
}
|
|
363
|
+
function getDateFromMJD(mjd) {
|
|
364
|
+
if (Number.isNaN(mjd))
|
|
365
|
+
return void 0;
|
|
366
|
+
const date = new Date((mjd - START_MJD_UNIX_SECONDS) * MILLISECONDS_IN_DAY);
|
|
367
|
+
if (!isValidDate(date))
|
|
368
|
+
return void 0;
|
|
369
|
+
return date;
|
|
370
|
+
}
|
|
371
|
+
function getDateFromMJD2000(mjd2000) {
|
|
372
|
+
const date = new Date(
|
|
373
|
+
(mjd2000 - START_MJD_UNIX_SECONDS + 51544) * MILLISECONDS_IN_DAY
|
|
374
|
+
);
|
|
375
|
+
if (!isValidDate(date))
|
|
376
|
+
return void 0;
|
|
377
|
+
return date;
|
|
378
|
+
}
|
|
379
|
+
function getDateFromRINEX(rinex) {
|
|
380
|
+
const year = Number.parseInt(rinex.substring(2, 6));
|
|
381
|
+
const month = Number.parseInt(rinex.substring(7, 9)) - 1;
|
|
382
|
+
const day = Number.parseInt(rinex.substring(10, 12));
|
|
383
|
+
const hour = Number.parseInt(rinex.substring(13, 15));
|
|
384
|
+
const minute = Number.parseInt(rinex.substring(16, 18));
|
|
385
|
+
const second = Number.parseInt(rinex.substring(19, 21));
|
|
386
|
+
const millisecond = Number.parseInt(rinex.substring(22, 29)) / 1e4;
|
|
387
|
+
const date = new Date(
|
|
388
|
+
Date.UTC(year, month, day, hour, minute, second, millisecond)
|
|
389
|
+
);
|
|
390
|
+
if (!isValidDate(date))
|
|
391
|
+
return void 0;
|
|
392
|
+
return date;
|
|
393
|
+
}
|
|
394
|
+
function getLeapSecondsFromTAI(date) {
|
|
395
|
+
const leapsTAI = getLeapSeconds(date);
|
|
396
|
+
const dateUTC = new Date(date.getTime() - leapsTAI * MILLISECONDS_IN_SECOND);
|
|
397
|
+
const leapsUTC = getLeapSeconds(dateUTC);
|
|
398
|
+
const dateTAI = new Date(date.getTime() + leapsUTC * MILLISECONDS_IN_SECOND);
|
|
399
|
+
if (dateTAI.getTime() === date.getTime()) {
|
|
400
|
+
return leapsTAI;
|
|
401
|
+
}
|
|
402
|
+
if (dateTAI.getTime() < date.getTime()) {
|
|
403
|
+
return leapsTAI - 1;
|
|
404
|
+
}
|
|
405
|
+
return 0;
|
|
406
|
+
}
|
|
407
|
+
function getTimeDifference(startDate, finalDate) {
|
|
408
|
+
return Math.floor(finalDate.getTime() - startDate.getTime());
|
|
409
|
+
}
|
|
410
|
+
function getSecondsFromTimeDifference(timeDifference) {
|
|
411
|
+
if (Number.isNaN(timeDifference))
|
|
412
|
+
return void 0;
|
|
413
|
+
return Math.floor(
|
|
414
|
+
timeDifference % MILLISECONDS_IN_MINUTE / MILLISECONDS_IN_SECOND
|
|
415
|
+
);
|
|
416
|
+
}
|
|
417
|
+
function getMinutesFromTimeDifference(timeDifference) {
|
|
418
|
+
if (Number.isNaN(timeDifference))
|
|
419
|
+
return void 0;
|
|
420
|
+
return Math.floor(
|
|
421
|
+
timeDifference % MILLISECONDS_IN_HOUR / MILLISECONDS_IN_MINUTE
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
function getHoursFromTimeDifference(timeDifference) {
|
|
425
|
+
if (Number.isNaN(timeDifference))
|
|
426
|
+
return void 0;
|
|
427
|
+
return Math.floor(
|
|
428
|
+
timeDifference % MILLISECONDS_IN_DAY / MILLISECONDS_IN_HOUR
|
|
429
|
+
);
|
|
430
|
+
}
|
|
431
|
+
function getTotalDaysFromTimeDifference(timeDifference) {
|
|
432
|
+
if (Number.isNaN(timeDifference))
|
|
433
|
+
return void 0;
|
|
434
|
+
return Math.floor(timeDifference / MILLISECONDS_IN_DAY);
|
|
435
|
+
}
|
|
436
|
+
function getTimeDifferenceFromSeconds(seconds) {
|
|
437
|
+
return seconds * MILLISECONDS_IN_SECOND;
|
|
438
|
+
}
|
|
439
|
+
function getTimeDifferenceFromMinutes(minutes) {
|
|
440
|
+
return minutes * MILLISECONDS_IN_MINUTE;
|
|
441
|
+
}
|
|
442
|
+
function getTimeDifferenceFromHours(hours) {
|
|
443
|
+
return hours * MILLISECONDS_IN_HOUR;
|
|
444
|
+
}
|
|
445
|
+
function getTimeDifferenceFromDays(days) {
|
|
446
|
+
return days * MILLISECONDS_IN_DAY;
|
|
447
|
+
}
|
|
448
|
+
function getTimeDifferenceFromObject(timeDifferenceObject) {
|
|
449
|
+
const { seconds, minutes, hours, days } = timeDifferenceObject;
|
|
450
|
+
if (Number.isNaN(seconds) || Number.isNaN(minutes) || Number.isNaN(hours) || Number.isNaN(days))
|
|
451
|
+
return void 0;
|
|
452
|
+
return getTimeDifferenceFromSeconds(seconds) + getTimeDifferenceFromMinutes(minutes) + getTimeDifferenceFromHours(hours) + getTimeDifferenceFromDays(days);
|
|
453
|
+
}
|
|
454
|
+
function getRINEX(date) {
|
|
455
|
+
return "> " + date.getUTCFullYear() + " " + (date.getUTCMonth() + 1).toString().padStart(2, "0") + " " + date.getUTCDate().toString().padStart(2, "0") + " " + date.getUTCHours().toString().padStart(2, "0") + " " + date.getUTCMinutes().toString().padStart(2, "0") + " " + (date.getUTCMilliseconds() / MILLISECONDS_IN_SECOND + date.getUTCSeconds()).toFixed(7).padStart(2, "0");
|
|
456
|
+
}
|
|
457
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
458
|
+
0 && (module.exports = {
|
|
459
|
+
ALPHABET,
|
|
460
|
+
MILLISECONDS_IN_DAY,
|
|
461
|
+
MILLISECONDS_IN_HOUR,
|
|
462
|
+
MILLISECONDS_IN_MINUTE,
|
|
463
|
+
MILLISECONDS_IN_SECOND,
|
|
464
|
+
MILLISECONDS_IN_WEEK,
|
|
465
|
+
SECONDS_IN_DAY,
|
|
466
|
+
SECONDS_IN_HOUR,
|
|
467
|
+
SECONDS_IN_MINUTE,
|
|
468
|
+
SECONDS_IN_WEEK,
|
|
469
|
+
SECONDS_TT_TAI,
|
|
470
|
+
START_BDS_TIME,
|
|
471
|
+
START_GAL_TIME,
|
|
472
|
+
START_GLO_LEAP,
|
|
473
|
+
START_GPS_TIME,
|
|
474
|
+
START_JULIAN_CALENDAR_UNIX_SECONDS,
|
|
475
|
+
START_LEAP_SECS_GPS,
|
|
476
|
+
START_MJD2000_TIME,
|
|
477
|
+
START_MJD_UNIX_SECONDS,
|
|
478
|
+
START_UNIX_TIME,
|
|
479
|
+
getBdsTime,
|
|
480
|
+
getDateFromBdsTime,
|
|
481
|
+
getDateFromDayOfWeek,
|
|
482
|
+
getDateFromDayOfYear,
|
|
483
|
+
getDateFromGalTime,
|
|
484
|
+
getDateFromGloN,
|
|
485
|
+
getDateFromGpsData,
|
|
486
|
+
getDateFromGpsTime,
|
|
487
|
+
getDateFromHourCode,
|
|
488
|
+
getDateFromJulianDate,
|
|
489
|
+
getDateFromMJD,
|
|
490
|
+
getDateFromMJD2000,
|
|
491
|
+
getDateFromRINEX,
|
|
492
|
+
getDateFromTimeOfDay,
|
|
493
|
+
getDateFromUnixTime,
|
|
494
|
+
getDayOfWeek,
|
|
495
|
+
getDayOfYear,
|
|
496
|
+
getGalTime,
|
|
497
|
+
getGloN4,
|
|
498
|
+
getGloNA,
|
|
499
|
+
getGpsTime,
|
|
500
|
+
getHourCode,
|
|
501
|
+
getHoursFromTimeDifference,
|
|
502
|
+
getJulianDate,
|
|
503
|
+
getLeapSeconds,
|
|
504
|
+
getLeapSecondsFromTAI,
|
|
505
|
+
getMJD,
|
|
506
|
+
getMinutesFromTimeDifference,
|
|
507
|
+
getRINEX,
|
|
508
|
+
getSecondsFromTimeDifference,
|
|
509
|
+
getTimeDifference,
|
|
510
|
+
getTimeDifferenceFromDays,
|
|
511
|
+
getTimeDifferenceFromHours,
|
|
512
|
+
getTimeDifferenceFromMinutes,
|
|
513
|
+
getTimeDifferenceFromObject,
|
|
514
|
+
getTimeDifferenceFromSeconds,
|
|
515
|
+
getTimeOfDay,
|
|
516
|
+
getTimeOfWeek,
|
|
517
|
+
getTotalDaysFromTimeDifference,
|
|
518
|
+
getUnixTime,
|
|
519
|
+
getWeekNumber
|
|
520
|
+
});
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
// src/constants.ts
|
|
2
|
+
var SECONDS_IN_WEEK = 604800;
|
|
3
|
+
var SECONDS_IN_DAY = 86400;
|
|
4
|
+
var SECONDS_IN_HOUR = 3600;
|
|
5
|
+
var SECONDS_IN_MINUTE = 60;
|
|
6
|
+
var MILLISECONDS_IN_WEEK = 6048e5;
|
|
7
|
+
var MILLISECONDS_IN_DAY = 864e5;
|
|
8
|
+
var MILLISECONDS_IN_HOUR = 36e5;
|
|
9
|
+
var MILLISECONDS_IN_MINUTE = 6e4;
|
|
10
|
+
var MILLISECONDS_IN_SECOND = 1e3;
|
|
11
|
+
var SECONDS_TT_TAI = 32.184;
|
|
12
|
+
var START_LEAP_SECS_GPS = 19;
|
|
13
|
+
var START_GPS_TIME = new Date(Date.UTC(1980, 0, 6, 0, 0, 0, 0));
|
|
14
|
+
var START_GAL_TIME = new Date(Date.UTC(1999, 7, 22, 0, 0, 0));
|
|
15
|
+
var START_BDS_TIME = new Date(Date.UTC(2006, 0, 1, 0, 0, 0));
|
|
16
|
+
var START_UNIX_TIME = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));
|
|
17
|
+
var START_MJD2000_TIME = new Date(Date.UTC(2e3, 0, 1, 0, 0, 0));
|
|
18
|
+
var ALPHABET = "abcdefghijklmnopqrstuvwxyz".split("");
|
|
19
|
+
var START_GLO_LEAP = new Date(Date.UTC(1996, 0, 1, 0, 0, 0, 0));
|
|
20
|
+
var START_JULIAN_CALENDAR_UNIX_SECONDS = 24405875e-1;
|
|
21
|
+
var START_MJD_UNIX_SECONDS = 40587;
|
|
22
|
+
|
|
23
|
+
// src/functions.ts
|
|
24
|
+
function isValidDate(d) {
|
|
25
|
+
return d instanceof Date && !Number.isNaN(d);
|
|
26
|
+
}
|
|
27
|
+
function getLeapSeconds(date) {
|
|
28
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 36922176e5) {
|
|
29
|
+
return 37;
|
|
30
|
+
}
|
|
31
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 36446976e5) {
|
|
32
|
+
return 36;
|
|
33
|
+
}
|
|
34
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 35500896e5) {
|
|
35
|
+
return 35;
|
|
36
|
+
}
|
|
37
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 34397568e5) {
|
|
38
|
+
return 34;
|
|
39
|
+
}
|
|
40
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 33450624e5) {
|
|
41
|
+
return 33;
|
|
42
|
+
}
|
|
43
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 31241376e5) {
|
|
44
|
+
return 32;
|
|
45
|
+
}
|
|
46
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 3076704e6) {
|
|
47
|
+
return 31;
|
|
48
|
+
}
|
|
49
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 30294432e5) {
|
|
50
|
+
return 30;
|
|
51
|
+
}
|
|
52
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 29820096e5) {
|
|
53
|
+
return 29;
|
|
54
|
+
}
|
|
55
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 29504736e5) {
|
|
56
|
+
return 28;
|
|
57
|
+
}
|
|
58
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 29189376e5) {
|
|
59
|
+
return 27;
|
|
60
|
+
}
|
|
61
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 28716768e5) {
|
|
62
|
+
return 26;
|
|
63
|
+
}
|
|
64
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 28401408e5) {
|
|
65
|
+
return 25;
|
|
66
|
+
}
|
|
67
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 27769824e5) {
|
|
68
|
+
return 24;
|
|
69
|
+
}
|
|
70
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 26980128e5) {
|
|
71
|
+
return 23;
|
|
72
|
+
}
|
|
73
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 26348544e5) {
|
|
74
|
+
return 22;
|
|
75
|
+
}
|
|
76
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 26033184e5) {
|
|
77
|
+
return 21;
|
|
78
|
+
}
|
|
79
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 25717824e5) {
|
|
80
|
+
return 20;
|
|
81
|
+
}
|
|
82
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 25245216e5) {
|
|
83
|
+
return 19;
|
|
84
|
+
}
|
|
85
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 24929856e5) {
|
|
86
|
+
return 18;
|
|
87
|
+
}
|
|
88
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 24614496e5) {
|
|
89
|
+
return 17;
|
|
90
|
+
}
|
|
91
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 24299136e5) {
|
|
92
|
+
return 16;
|
|
93
|
+
}
|
|
94
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 23982912e5) {
|
|
95
|
+
return 15;
|
|
96
|
+
}
|
|
97
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 23667552e5) {
|
|
98
|
+
return 14;
|
|
99
|
+
}
|
|
100
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 23352192e5) {
|
|
101
|
+
return 13;
|
|
102
|
+
}
|
|
103
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 23036832e5) {
|
|
104
|
+
return 12;
|
|
105
|
+
}
|
|
106
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 22877856e5) {
|
|
107
|
+
return 11;
|
|
108
|
+
}
|
|
109
|
+
if (date.getTime() >= Date.UTC(1900, 0, 1) + 22720608e5) {
|
|
110
|
+
return 10;
|
|
111
|
+
}
|
|
112
|
+
return 0;
|
|
113
|
+
}
|
|
114
|
+
function getGpsTime(date) {
|
|
115
|
+
return date.getTime() - START_GPS_TIME.getTime();
|
|
116
|
+
}
|
|
117
|
+
function getGalTime(date) {
|
|
118
|
+
return date.getTime() - START_GAL_TIME.getTime();
|
|
119
|
+
}
|
|
120
|
+
function getBdsTime(date) {
|
|
121
|
+
return date.getTime() - START_BDS_TIME.getTime();
|
|
122
|
+
}
|
|
123
|
+
function getUnixTime(date) {
|
|
124
|
+
return date.getTime() - START_UNIX_TIME.getTime();
|
|
125
|
+
}
|
|
126
|
+
function getWeekNumber(date) {
|
|
127
|
+
return Math.floor(getGpsTime(date) / MILLISECONDS_IN_WEEK);
|
|
128
|
+
}
|
|
129
|
+
function getTimeOfWeek(date) {
|
|
130
|
+
return Math.floor(
|
|
131
|
+
getGpsTime(date) % MILLISECONDS_IN_WEEK / MILLISECONDS_IN_SECOND
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
function getTimeOfDay(date) {
|
|
135
|
+
return Math.floor(
|
|
136
|
+
(date.getTime() - Date.UTC(
|
|
137
|
+
date.getUTCFullYear(),
|
|
138
|
+
date.getUTCMonth(),
|
|
139
|
+
date.getUTCDate(),
|
|
140
|
+
0,
|
|
141
|
+
0,
|
|
142
|
+
0
|
|
143
|
+
)) / MILLISECONDS_IN_SECOND
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
function getDateFromTimeOfDay(timeOfDay, dateRaw) {
|
|
147
|
+
const date = new Date(
|
|
148
|
+
Date.UTC(
|
|
149
|
+
dateRaw.getUTCFullYear(),
|
|
150
|
+
dateRaw.getUTCMonth(),
|
|
151
|
+
dateRaw.getUTCDate(),
|
|
152
|
+
0,
|
|
153
|
+
0,
|
|
154
|
+
0
|
|
155
|
+
) + timeOfDay * MILLISECONDS_IN_SECOND
|
|
156
|
+
);
|
|
157
|
+
if (!isValidDate(date))
|
|
158
|
+
return void 0;
|
|
159
|
+
return date;
|
|
160
|
+
}
|
|
161
|
+
function getGloN4(date) {
|
|
162
|
+
return Math.floor((date.getUTCFullYear() - START_GLO_LEAP.getFullYear()) / 4);
|
|
163
|
+
}
|
|
164
|
+
function getGloNA(date) {
|
|
165
|
+
const n4 = getGloN4(date);
|
|
166
|
+
const init4YearPeriod = new Date(START_GLO_LEAP);
|
|
167
|
+
init4YearPeriod.setUTCFullYear(init4YearPeriod.getUTCFullYear() + n4 * 4);
|
|
168
|
+
return Math.floor(getTimeDifference(init4YearPeriod, date) / MILLISECONDS_IN_DAY) + 1;
|
|
169
|
+
}
|
|
170
|
+
function getDateFromGpsData(weekNumber, timeOfWeek) {
|
|
171
|
+
const date = new Date(
|
|
172
|
+
weekNumber * MILLISECONDS_IN_WEEK + timeOfWeek * MILLISECONDS_IN_SECOND + START_GPS_TIME.getTime()
|
|
173
|
+
);
|
|
174
|
+
if (!isValidDate(date))
|
|
175
|
+
return void 0;
|
|
176
|
+
return date;
|
|
177
|
+
}
|
|
178
|
+
function getDateFromGpsTime(gpsTime) {
|
|
179
|
+
const date = new Date(
|
|
180
|
+
gpsTime * MILLISECONDS_IN_SECOND + START_GPS_TIME.getTime()
|
|
181
|
+
);
|
|
182
|
+
if (!isValidDate(date))
|
|
183
|
+
return void 0;
|
|
184
|
+
return date;
|
|
185
|
+
}
|
|
186
|
+
function getDateFromGalTime(galTime) {
|
|
187
|
+
const date = new Date(
|
|
188
|
+
galTime * MILLISECONDS_IN_SECOND + START_GAL_TIME.getTime()
|
|
189
|
+
);
|
|
190
|
+
if (!isValidDate(date))
|
|
191
|
+
return void 0;
|
|
192
|
+
return date;
|
|
193
|
+
}
|
|
194
|
+
function getDateFromBdsTime(bdsTime) {
|
|
195
|
+
const date = new Date(
|
|
196
|
+
bdsTime * MILLISECONDS_IN_SECOND + START_BDS_TIME.getTime()
|
|
197
|
+
);
|
|
198
|
+
if (!isValidDate(date))
|
|
199
|
+
return void 0;
|
|
200
|
+
return date;
|
|
201
|
+
}
|
|
202
|
+
function getDateFromUnixTime(unixTime) {
|
|
203
|
+
const date = new Date(
|
|
204
|
+
unixTime * MILLISECONDS_IN_SECOND + START_UNIX_TIME.getTime()
|
|
205
|
+
);
|
|
206
|
+
if (!isValidDate(date))
|
|
207
|
+
return void 0;
|
|
208
|
+
return date;
|
|
209
|
+
}
|
|
210
|
+
function getDateFromGloN(n4, na, tod) {
|
|
211
|
+
const date = new Date(START_GLO_LEAP);
|
|
212
|
+
date.setFullYear(date.getUTCFullYear() + n4 * 4);
|
|
213
|
+
date.setTime(
|
|
214
|
+
date.getTime() + (na - 1) * MILLISECONDS_IN_DAY + tod * MILLISECONDS_IN_SECOND
|
|
215
|
+
);
|
|
216
|
+
if (!isValidDate(date))
|
|
217
|
+
return void 0;
|
|
218
|
+
return date;
|
|
219
|
+
}
|
|
220
|
+
function getDateFromDayOfYear(dayOfYear, date) {
|
|
221
|
+
return new Date(
|
|
222
|
+
Date.UTC(
|
|
223
|
+
date.getUTCFullYear(),
|
|
224
|
+
0,
|
|
225
|
+
1,
|
|
226
|
+
date.getUTCHours(),
|
|
227
|
+
date.getUTCMinutes(),
|
|
228
|
+
date.getUTCSeconds(),
|
|
229
|
+
date.getUTCMilliseconds()
|
|
230
|
+
) + (dayOfYear - 1) * MILLISECONDS_IN_DAY
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
function getDayOfYear(date) {
|
|
234
|
+
return Math.floor(
|
|
235
|
+
(date.getTime() - Date.UTC(date.getUTCFullYear())) / MILLISECONDS_IN_DAY
|
|
236
|
+
) + 1;
|
|
237
|
+
}
|
|
238
|
+
function getDayOfWeek(date) {
|
|
239
|
+
return date.getUTCDay();
|
|
240
|
+
}
|
|
241
|
+
function getDateFromDayOfWeek(dayOfWeek, dateRaw) {
|
|
242
|
+
if (dayOfWeek < 0 || dayOfWeek > 6)
|
|
243
|
+
throw new Error("Day of week must be a value between 0 and 7");
|
|
244
|
+
const date = new Date(
|
|
245
|
+
dateRaw.getTime() + (dayOfWeek - dateRaw.getUTCDay()) * MILLISECONDS_IN_DAY
|
|
246
|
+
);
|
|
247
|
+
if (!isValidDate(date))
|
|
248
|
+
return void 0;
|
|
249
|
+
return date;
|
|
250
|
+
}
|
|
251
|
+
function getDateFromHourCode(hourCode, date) {
|
|
252
|
+
const hour = ALPHABET.indexOf(hourCode);
|
|
253
|
+
if (hour !== -1) {
|
|
254
|
+
const newDate = new Date(date.getTime());
|
|
255
|
+
newDate.setUTCHours(hour);
|
|
256
|
+
return newDate;
|
|
257
|
+
}
|
|
258
|
+
return void 0;
|
|
259
|
+
}
|
|
260
|
+
function getHourCode(date) {
|
|
261
|
+
return ALPHABET[date.getUTCHours()];
|
|
262
|
+
}
|
|
263
|
+
function getJulianDate(date) {
|
|
264
|
+
return date.getTime() / MILLISECONDS_IN_DAY + START_JULIAN_CALENDAR_UNIX_SECONDS;
|
|
265
|
+
}
|
|
266
|
+
function getDateFromJulianDate(julianDate) {
|
|
267
|
+
const date = new Date(
|
|
268
|
+
(julianDate - START_JULIAN_CALENDAR_UNIX_SECONDS) * MILLISECONDS_IN_DAY
|
|
269
|
+
);
|
|
270
|
+
if (!isValidDate(date))
|
|
271
|
+
return void 0;
|
|
272
|
+
return date;
|
|
273
|
+
}
|
|
274
|
+
function getMJD(date) {
|
|
275
|
+
return date.getTime() / MILLISECONDS_IN_DAY + START_MJD_UNIX_SECONDS;
|
|
276
|
+
}
|
|
277
|
+
function getDateFromMJD(mjd) {
|
|
278
|
+
if (Number.isNaN(mjd))
|
|
279
|
+
return void 0;
|
|
280
|
+
const date = new Date((mjd - START_MJD_UNIX_SECONDS) * MILLISECONDS_IN_DAY);
|
|
281
|
+
if (!isValidDate(date))
|
|
282
|
+
return void 0;
|
|
283
|
+
return date;
|
|
284
|
+
}
|
|
285
|
+
function getDateFromMJD2000(mjd2000) {
|
|
286
|
+
const date = new Date(
|
|
287
|
+
(mjd2000 - START_MJD_UNIX_SECONDS + 51544) * MILLISECONDS_IN_DAY
|
|
288
|
+
);
|
|
289
|
+
if (!isValidDate(date))
|
|
290
|
+
return void 0;
|
|
291
|
+
return date;
|
|
292
|
+
}
|
|
293
|
+
function getDateFromRINEX(rinex) {
|
|
294
|
+
const year = Number.parseInt(rinex.substring(2, 6));
|
|
295
|
+
const month = Number.parseInt(rinex.substring(7, 9)) - 1;
|
|
296
|
+
const day = Number.parseInt(rinex.substring(10, 12));
|
|
297
|
+
const hour = Number.parseInt(rinex.substring(13, 15));
|
|
298
|
+
const minute = Number.parseInt(rinex.substring(16, 18));
|
|
299
|
+
const second = Number.parseInt(rinex.substring(19, 21));
|
|
300
|
+
const millisecond = Number.parseInt(rinex.substring(22, 29)) / 1e4;
|
|
301
|
+
const date = new Date(
|
|
302
|
+
Date.UTC(year, month, day, hour, minute, second, millisecond)
|
|
303
|
+
);
|
|
304
|
+
if (!isValidDate(date))
|
|
305
|
+
return void 0;
|
|
306
|
+
return date;
|
|
307
|
+
}
|
|
308
|
+
function getLeapSecondsFromTAI(date) {
|
|
309
|
+
const leapsTAI = getLeapSeconds(date);
|
|
310
|
+
const dateUTC = new Date(date.getTime() - leapsTAI * MILLISECONDS_IN_SECOND);
|
|
311
|
+
const leapsUTC = getLeapSeconds(dateUTC);
|
|
312
|
+
const dateTAI = new Date(date.getTime() + leapsUTC * MILLISECONDS_IN_SECOND);
|
|
313
|
+
if (dateTAI.getTime() === date.getTime()) {
|
|
314
|
+
return leapsTAI;
|
|
315
|
+
}
|
|
316
|
+
if (dateTAI.getTime() < date.getTime()) {
|
|
317
|
+
return leapsTAI - 1;
|
|
318
|
+
}
|
|
319
|
+
return 0;
|
|
320
|
+
}
|
|
321
|
+
function getTimeDifference(startDate, finalDate) {
|
|
322
|
+
return Math.floor(finalDate.getTime() - startDate.getTime());
|
|
323
|
+
}
|
|
324
|
+
function getSecondsFromTimeDifference(timeDifference) {
|
|
325
|
+
if (Number.isNaN(timeDifference))
|
|
326
|
+
return void 0;
|
|
327
|
+
return Math.floor(
|
|
328
|
+
timeDifference % MILLISECONDS_IN_MINUTE / MILLISECONDS_IN_SECOND
|
|
329
|
+
);
|
|
330
|
+
}
|
|
331
|
+
function getMinutesFromTimeDifference(timeDifference) {
|
|
332
|
+
if (Number.isNaN(timeDifference))
|
|
333
|
+
return void 0;
|
|
334
|
+
return Math.floor(
|
|
335
|
+
timeDifference % MILLISECONDS_IN_HOUR / MILLISECONDS_IN_MINUTE
|
|
336
|
+
);
|
|
337
|
+
}
|
|
338
|
+
function getHoursFromTimeDifference(timeDifference) {
|
|
339
|
+
if (Number.isNaN(timeDifference))
|
|
340
|
+
return void 0;
|
|
341
|
+
return Math.floor(
|
|
342
|
+
timeDifference % MILLISECONDS_IN_DAY / MILLISECONDS_IN_HOUR
|
|
343
|
+
);
|
|
344
|
+
}
|
|
345
|
+
function getTotalDaysFromTimeDifference(timeDifference) {
|
|
346
|
+
if (Number.isNaN(timeDifference))
|
|
347
|
+
return void 0;
|
|
348
|
+
return Math.floor(timeDifference / MILLISECONDS_IN_DAY);
|
|
349
|
+
}
|
|
350
|
+
function getTimeDifferenceFromSeconds(seconds) {
|
|
351
|
+
return seconds * MILLISECONDS_IN_SECOND;
|
|
352
|
+
}
|
|
353
|
+
function getTimeDifferenceFromMinutes(minutes) {
|
|
354
|
+
return minutes * MILLISECONDS_IN_MINUTE;
|
|
355
|
+
}
|
|
356
|
+
function getTimeDifferenceFromHours(hours) {
|
|
357
|
+
return hours * MILLISECONDS_IN_HOUR;
|
|
358
|
+
}
|
|
359
|
+
function getTimeDifferenceFromDays(days) {
|
|
360
|
+
return days * MILLISECONDS_IN_DAY;
|
|
361
|
+
}
|
|
362
|
+
function getTimeDifferenceFromObject(timeDifferenceObject) {
|
|
363
|
+
const { seconds, minutes, hours, days } = timeDifferenceObject;
|
|
364
|
+
if (Number.isNaN(seconds) || Number.isNaN(minutes) || Number.isNaN(hours) || Number.isNaN(days))
|
|
365
|
+
return void 0;
|
|
366
|
+
return getTimeDifferenceFromSeconds(seconds) + getTimeDifferenceFromMinutes(minutes) + getTimeDifferenceFromHours(hours) + getTimeDifferenceFromDays(days);
|
|
367
|
+
}
|
|
368
|
+
function getRINEX(date) {
|
|
369
|
+
return "> " + date.getUTCFullYear() + " " + (date.getUTCMonth() + 1).toString().padStart(2, "0") + " " + date.getUTCDate().toString().padStart(2, "0") + " " + date.getUTCHours().toString().padStart(2, "0") + " " + date.getUTCMinutes().toString().padStart(2, "0") + " " + (date.getUTCMilliseconds() / MILLISECONDS_IN_SECOND + date.getUTCSeconds()).toFixed(7).padStart(2, "0");
|
|
370
|
+
}
|
|
371
|
+
export {
|
|
372
|
+
ALPHABET,
|
|
373
|
+
MILLISECONDS_IN_DAY,
|
|
374
|
+
MILLISECONDS_IN_HOUR,
|
|
375
|
+
MILLISECONDS_IN_MINUTE,
|
|
376
|
+
MILLISECONDS_IN_SECOND,
|
|
377
|
+
MILLISECONDS_IN_WEEK,
|
|
378
|
+
SECONDS_IN_DAY,
|
|
379
|
+
SECONDS_IN_HOUR,
|
|
380
|
+
SECONDS_IN_MINUTE,
|
|
381
|
+
SECONDS_IN_WEEK,
|
|
382
|
+
SECONDS_TT_TAI,
|
|
383
|
+
START_BDS_TIME,
|
|
384
|
+
START_GAL_TIME,
|
|
385
|
+
START_GLO_LEAP,
|
|
386
|
+
START_GPS_TIME,
|
|
387
|
+
START_JULIAN_CALENDAR_UNIX_SECONDS,
|
|
388
|
+
START_LEAP_SECS_GPS,
|
|
389
|
+
START_MJD2000_TIME,
|
|
390
|
+
START_MJD_UNIX_SECONDS,
|
|
391
|
+
START_UNIX_TIME,
|
|
392
|
+
getBdsTime,
|
|
393
|
+
getDateFromBdsTime,
|
|
394
|
+
getDateFromDayOfWeek,
|
|
395
|
+
getDateFromDayOfYear,
|
|
396
|
+
getDateFromGalTime,
|
|
397
|
+
getDateFromGloN,
|
|
398
|
+
getDateFromGpsData,
|
|
399
|
+
getDateFromGpsTime,
|
|
400
|
+
getDateFromHourCode,
|
|
401
|
+
getDateFromJulianDate,
|
|
402
|
+
getDateFromMJD,
|
|
403
|
+
getDateFromMJD2000,
|
|
404
|
+
getDateFromRINEX,
|
|
405
|
+
getDateFromTimeOfDay,
|
|
406
|
+
getDateFromUnixTime,
|
|
407
|
+
getDayOfWeek,
|
|
408
|
+
getDayOfYear,
|
|
409
|
+
getGalTime,
|
|
410
|
+
getGloN4,
|
|
411
|
+
getGloNA,
|
|
412
|
+
getGpsTime,
|
|
413
|
+
getHourCode,
|
|
414
|
+
getHoursFromTimeDifference,
|
|
415
|
+
getJulianDate,
|
|
416
|
+
getLeapSeconds,
|
|
417
|
+
getLeapSecondsFromTAI,
|
|
418
|
+
getMJD,
|
|
419
|
+
getMinutesFromTimeDifference,
|
|
420
|
+
getRINEX,
|
|
421
|
+
getSecondsFromTimeDifference,
|
|
422
|
+
getTimeDifference,
|
|
423
|
+
getTimeDifferenceFromDays,
|
|
424
|
+
getTimeDifferenceFromHours,
|
|
425
|
+
getTimeDifferenceFromMinutes,
|
|
426
|
+
getTimeDifferenceFromObject,
|
|
427
|
+
getTimeDifferenceFromSeconds,
|
|
428
|
+
getTimeOfDay,
|
|
429
|
+
getTimeOfWeek,
|
|
430
|
+
getTotalDaysFromTimeDifference,
|
|
431
|
+
getUnixTime,
|
|
432
|
+
getWeekNumber
|
|
433
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gnss-js",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Tool to peform GNSS-related computations",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsup",
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"gnss",
|
|
14
|
+
"gps"
|
|
15
|
+
],
|
|
16
|
+
"author": "Miguel González <work@miguel.es>",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/LiuzDE/gnss-js.git"
|
|
20
|
+
},
|
|
21
|
+
"homepage": "https://gnsscalc.com",
|
|
22
|
+
"license": "ISC",
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/node": "^20.11.17",
|
|
25
|
+
"tsup": "^8.0.2",
|
|
26
|
+
"typescript": "^5.3.3"
|
|
27
|
+
}
|
|
28
|
+
}
|
package/test/index.js
ADDED