@typescriptify/sweph 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +422 -0
- package/ephe/semo_18.se1 +0 -0
- package/ephe/sepl_18.se1 +0 -0
- package/originalCode/.eslintrc.json +124 -0
- package/originalCode/.gitattributes +2 -0
- package/originalCode/.github/FUNDING.yml +5 -0
- package/originalCode/.github/workflows/test.yml +35 -0
- package/originalCode/LICENSE +840 -0
- package/originalCode/README.md +91 -0
- package/originalCode/binding.gyp +41 -0
- package/originalCode/constants.js +366 -0
- package/originalCode/docs.gif +0 -0
- package/originalCode/index.d.ts +5115 -0
- package/originalCode/index.js +7 -0
- package/originalCode/index.mjs +109 -0
- package/originalCode/package.json +55 -0
- package/originalCode/src/functions/azalt.cpp +39 -0
- package/originalCode/src/functions/azalt_rev.cpp +35 -0
- package/originalCode/src/functions/calc.cpp +29 -0
- package/originalCode/src/functions/calc_pctr.cpp +31 -0
- package/originalCode/src/functions/calc_ut.cpp +29 -0
- package/originalCode/src/functions/close.cpp +6 -0
- package/originalCode/src/functions/cotrans.cpp +26 -0
- package/originalCode/src/functions/cotrans_sp.cpp +26 -0
- package/originalCode/src/functions/cs2degstr.cpp +19 -0
- package/originalCode/src/functions/cs2lonlatstr.cpp +23 -0
- package/originalCode/src/functions/cs2timestr.cpp +23 -0
- package/originalCode/src/functions/csnorm.cpp +15 -0
- package/originalCode/src/functions/csroundsec.cpp +15 -0
- package/originalCode/src/functions/d2l.cpp +15 -0
- package/originalCode/src/functions/date_conversion.cpp +30 -0
- package/originalCode/src/functions/day_of_week.cpp +15 -0
- package/originalCode/src/functions/degnorm.cpp +15 -0
- package/originalCode/src/functions/deltat.cpp +15 -0
- package/originalCode/src/functions/deltat_ex.cpp +24 -0
- package/originalCode/src/functions/difcs2n.cpp +19 -0
- package/originalCode/src/functions/difcsn.cpp +19 -0
- package/originalCode/src/functions/difdeg2n.cpp +19 -0
- package/originalCode/src/functions/difdegn.cpp +19 -0
- package/originalCode/src/functions/fixstar.cpp +32 -0
- package/originalCode/src/functions/fixstar2.cpp +32 -0
- package/originalCode/src/functions/fixstar2_mag.cpp +28 -0
- package/originalCode/src/functions/fixstar2_ut.cpp +32 -0
- package/originalCode/src/functions/fixstar_mag.cpp +28 -0
- package/originalCode/src/functions/fixstar_ut.cpp +32 -0
- package/originalCode/src/functions/gauquelin_sector.cpp +44 -0
- package/originalCode/src/functions/get_ayanamsa.cpp +15 -0
- package/originalCode/src/functions/get_ayanamsa_ex.cpp +27 -0
- package/originalCode/src/functions/get_ayanamsa_ex_ut.cpp +27 -0
- package/originalCode/src/functions/get_ayanamsa_name.cpp +19 -0
- package/originalCode/src/functions/get_ayanamsa_ut.cpp +15 -0
- package/originalCode/src/functions/get_current_file_data.cpp +28 -0
- package/originalCode/src/functions/get_library_path.cpp +8 -0
- package/originalCode/src/functions/get_orbital_elements.cpp +29 -0
- package/originalCode/src/functions/get_planet_name.cpp +19 -0
- package/originalCode/src/functions/get_tid_acc.cpp +7 -0
- package/originalCode/src/functions/heliacal_pheno_ut.cpp +52 -0
- package/originalCode/src/functions/heliacal_ut.cpp +52 -0
- package/originalCode/src/functions/helio_cross.cpp +33 -0
- package/originalCode/src/functions/helio_cross_ut.cpp +33 -0
- package/originalCode/src/functions/house_name.cpp +20 -0
- package/originalCode/src/functions/house_pos.cpp +36 -0
- package/originalCode/src/functions/houses.cpp +35 -0
- package/originalCode/src/functions/houses_armc.cpp +38 -0
- package/originalCode/src/functions/houses_armc_ex2.cpp +47 -0
- package/originalCode/src/functions/houses_ex.cpp +37 -0
- package/originalCode/src/functions/houses_ex2.cpp +46 -0
- package/originalCode/src/functions/jdet_to_utc.cpp +38 -0
- package/originalCode/src/functions/jdut1_to_utc.cpp +38 -0
- package/originalCode/src/functions/julday.cpp +25 -0
- package/originalCode/src/functions/lat_to_lmt.cpp +27 -0
- package/originalCode/src/functions/lmt_to_lat.cpp +27 -0
- package/originalCode/src/functions/lun_eclipse_how.cpp +34 -0
- package/originalCode/src/functions/lun_eclipse_when.cpp +31 -0
- package/originalCode/src/functions/lun_eclipse_when_loc.cpp +39 -0
- package/originalCode/src/functions/lun_occult_when_glob.cpp +35 -0
- package/originalCode/src/functions/lun_occult_when_loc.cpp +43 -0
- package/originalCode/src/functions/lun_occult_where.cpp +34 -0
- package/originalCode/src/functions/mooncross.cpp +26 -0
- package/originalCode/src/functions/mooncross_node.cpp +30 -0
- package/originalCode/src/functions/mooncross_node_ut.cpp +30 -0
- package/originalCode/src/functions/mooncross_ut.cpp +26 -0
- package/originalCode/src/functions/nod_aps.cpp +42 -0
- package/originalCode/src/functions/nod_aps_ut.cpp +42 -0
- package/originalCode/src/functions/orbit_max_min_true_distance.cpp +37 -0
- package/originalCode/src/functions/pheno.cpp +29 -0
- package/originalCode/src/functions/pheno_ut.cpp +29 -0
- package/originalCode/src/functions/radnorm.cpp +15 -0
- package/originalCode/src/functions/refrac.cpp +23 -0
- package/originalCode/src/functions/refrac_extended.cpp +32 -0
- package/originalCode/src/functions/revjul.cpp +33 -0
- package/originalCode/src/functions/rise_trans.cpp +44 -0
- package/originalCode/src/functions/rise_trans_true_hor.cpp +46 -0
- package/originalCode/src/functions/set_delta_t_userdef.cpp +14 -0
- package/originalCode/src/functions/set_ephe_path.cpp +14 -0
- package/originalCode/src/functions/set_jpl_file.cpp +14 -0
- package/originalCode/src/functions/set_sid_mode.cpp +20 -0
- package/originalCode/src/functions/set_tid_acc.cpp +14 -0
- package/originalCode/src/functions/set_topo.cpp +20 -0
- package/originalCode/src/functions/sidtime.cpp +15 -0
- package/originalCode/src/functions/sidtime0.cpp +21 -0
- package/originalCode/src/functions/sol_eclipse_how.cpp +34 -0
- package/originalCode/src/functions/sol_eclipse_when_glob.cpp +31 -0
- package/originalCode/src/functions/sol_eclipse_when_loc.cpp +39 -0
- package/originalCode/src/functions/sol_eclipse_where.cpp +30 -0
- package/originalCode/src/functions/solcross.cpp +26 -0
- package/originalCode/src/functions/solcross_ut.cpp +26 -0
- package/originalCode/src/functions/split_deg.cpp +35 -0
- package/originalCode/src/functions/time_equ.cpp +25 -0
- package/originalCode/src/functions/utc_time_zone.cpp +48 -0
- package/originalCode/src/functions/utc_to_jd.cpp +37 -0
- package/originalCode/src/functions/version.cpp +8 -0
- package/originalCode/src/functions/vis_limit_mag.cpp +50 -0
- package/originalCode/src/sweph.cpp +150 -0
- package/originalCode/src/sweph.h +119 -0
- package/originalCode/swisseph/swecl.c +6428 -0
- package/originalCode/swisseph/swedate.c +588 -0
- package/originalCode/swisseph/swedate.h +81 -0
- package/originalCode/swisseph/swehel.c +3511 -0
- package/originalCode/swisseph/swehouse.c +3143 -0
- package/originalCode/swisseph/swehouse.h +98 -0
- package/originalCode/swisseph/swejpl.c +958 -0
- package/originalCode/swisseph/swejpl.h +103 -0
- package/originalCode/swisseph/swemmoon.c +1930 -0
- package/originalCode/swisseph/swemplan.c +967 -0
- package/originalCode/swisseph/swemptab.h +10640 -0
- package/originalCode/swisseph/swenut2000a.h +2819 -0
- package/originalCode/swisseph/sweodef.h +326 -0
- package/originalCode/swisseph/sweph.c +8614 -0
- package/originalCode/swisseph/sweph.h +849 -0
- package/originalCode/swisseph/swephexp.h +1020 -0
- package/originalCode/swisseph/swephlib.c +4634 -0
- package/originalCode/swisseph/swephlib.h +189 -0
- package/package.json +28 -0
- package/scripts/gen-swemptab.js +177 -0
- package/scripts/gen-swenut2000a.js +106 -0
- package/src/SwissEph/README.md +268 -0
- package/src/SwissEph/UseCases/Ayanamsa.md +363 -0
- package/src/SwissEph/UseCases/AzimuthAltitude.md +408 -0
- package/src/SwissEph/UseCases/CoordinateSystems.md +337 -0
- package/src/SwissEph/UseCases/DateAndTime.md +368 -0
- package/src/SwissEph/UseCases/DeltaT.md +258 -0
- package/src/SwissEph/UseCases/EphemerisFiles.md +338 -0
- package/src/SwissEph/UseCases/FixedStars.md +300 -0
- package/src/SwissEph/UseCases/GauquelinSectors.md +304 -0
- package/src/SwissEph/UseCases/HeliacalEvents.md +396 -0
- package/src/SwissEph/UseCases/HelioCrossings.md +325 -0
- package/src/SwissEph/UseCases/HousePosition.md +254 -0
- package/src/SwissEph/UseCases/HouseSystems.md +279 -0
- package/src/SwissEph/UseCases/LunarEclipse.md +326 -0
- package/src/SwissEph/UseCases/MeridianTransit.md +279 -0
- package/src/SwissEph/UseCases/MoonCrossings.md +373 -0
- package/src/SwissEph/UseCases/NodesAndApsides.md +307 -0
- package/src/SwissEph/UseCases/Occultation.md +352 -0
- package/src/SwissEph/UseCases/OrbitalElements.md +469 -0
- package/src/SwissEph/UseCases/Phenomena.md +328 -0
- package/src/SwissEph/UseCases/PlanetPositions.md +366 -0
- package/src/SwissEph/UseCases/Planetocentric.md +278 -0
- package/src/SwissEph/UseCases/Refraction.md +314 -0
- package/src/SwissEph/UseCases/RiseAndSet.md +433 -0
- package/src/SwissEph/UseCases/SiderealTime.md +302 -0
- package/src/SwissEph/UseCases/SolarEclipse.md +379 -0
- package/src/SwissEph/UseCases/SunCrossings.md +275 -0
- package/src/SwissEph/UseCases/TopocentricCorrection.md +335 -0
- package/src/SwissEph/errors.ts +10 -0
- package/src/SwissEph/index.ts +823 -0
- package/src/SwissEph/types.ts +291 -0
- package/src/constants.ts +762 -0
- package/src/file-reader.ts +147 -0
- package/src/index.ts +10 -0
- package/src/swecl.ts +4526 -0
- package/src/swedate.ts +376 -0
- package/src/swehel.ts +1939 -0
- package/src/swehouse.ts +2167 -0
- package/src/swejpl.ts +470 -0
- package/src/swemmoon.ts +1318 -0
- package/src/swemplan.ts +585 -0
- package/src/swemptab.ts +4448 -0
- package/src/swenut2000a.ts +2763 -0
- package/src/sweph.ts +3993 -0
- package/src/swephlib.ts +2720 -0
- package/src/types.ts +490 -0
- package/tests/c-style/ayanamsa.test.ts +63 -0
- package/tests/c-style/config.test.ts +96 -0
- package/tests/c-style/crossings.test.ts +81 -0
- package/tests/c-style/date-time.test.ts +114 -0
- package/tests/c-style/eclipses.test.ts +84 -0
- package/tests/c-style/fixed-stars.test.ts +66 -0
- package/tests/c-style/heliacal.test.ts +34 -0
- package/tests/c-style/houses.test.ts +135 -0
- package/tests/c-style/math-utils.test.ts +160 -0
- package/tests/c-style/orbital.test.ts +78 -0
- package/tests/c-style/phenomena.test.ts +42 -0
- package/tests/c-style/planetocentric.test.ts +26 -0
- package/tests/c-style/planets.test.ts +117 -0
- package/tests/c-style/rise-set.test.ts +71 -0
- package/tests/helpers.ts +21 -0
- package/tests/modern/ayanamsa.test.ts +47 -0
- package/tests/modern/calc.test.ts +113 -0
- package/tests/modern/config.test.ts +46 -0
- package/tests/modern/crossings.test.ts +45 -0
- package/tests/modern/eclipses.test.ts +81 -0
- package/tests/modern/errors.test.ts +71 -0
- package/tests/modern/heliacal.test.ts +30 -0
- package/tests/modern/houses.test.ts +87 -0
- package/tests/modern/orbital.test.ts +79 -0
- package/tests/modern/phenomena.test.ts +41 -0
- package/tests/modern/rise-set.test.ts +60 -0
- package/tests/modern/statics.test.ts +99 -0
- package/tests/modern/utilities.test.ts +70 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/*************************************************************
|
|
2
|
+
* SE1FileReader — ArrayBuffer-based binary reader for .se1 files
|
|
3
|
+
*
|
|
4
|
+
* Replaces FILE*, fopen(), fread(), fseek(), fclose() from the C code.
|
|
5
|
+
* All .se1 binary data is little-endian.
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 1997 - 2021 Astrodienst AG, Switzerland. (AGPL)
|
|
8
|
+
*************************************************************/
|
|
9
|
+
|
|
10
|
+
export class SE1FileReader {
|
|
11
|
+
private view: DataView;
|
|
12
|
+
private pos: number = 0;
|
|
13
|
+
private le: boolean = true; // little-endian by default
|
|
14
|
+
|
|
15
|
+
constructor(buffer: ArrayBuffer) {
|
|
16
|
+
this.view = new DataView(buffer);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Set endianness for all subsequent reads */
|
|
20
|
+
setLittleEndian(littleEndian: boolean): void {
|
|
21
|
+
this.le = littleEndian;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
get isLittleEndian(): boolean {
|
|
25
|
+
return this.le;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
get length(): number {
|
|
29
|
+
return this.view.byteLength;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
get position(): number {
|
|
33
|
+
return this.pos;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
get eof(): boolean {
|
|
37
|
+
return this.pos >= this.view.byteLength;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
seekSet(offset: number): void {
|
|
41
|
+
this.pos = offset;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
seekCur(offset: number): void {
|
|
45
|
+
this.pos += offset;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
readInt32(): number {
|
|
49
|
+
const v = this.view.getInt32(this.pos, this.le);
|
|
50
|
+
this.pos += 4;
|
|
51
|
+
return v;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
readUint32(): number {
|
|
55
|
+
const v = this.view.getUint32(this.pos, this.le);
|
|
56
|
+
this.pos += 4;
|
|
57
|
+
return v;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
readInt16(): number {
|
|
61
|
+
const v = this.view.getInt16(this.pos, this.le);
|
|
62
|
+
this.pos += 2;
|
|
63
|
+
return v;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
readUint16(): number {
|
|
67
|
+
const v = this.view.getUint16(this.pos, this.le);
|
|
68
|
+
this.pos += 2;
|
|
69
|
+
return v;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
readFloat64(): number {
|
|
73
|
+
const v = this.view.getFloat64(this.pos, this.le);
|
|
74
|
+
this.pos += 8;
|
|
75
|
+
return v;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
readUint8(): number {
|
|
79
|
+
const v = this.view.getUint8(this.pos);
|
|
80
|
+
this.pos += 1;
|
|
81
|
+
return v;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
readInt8(): number {
|
|
85
|
+
const v = this.view.getInt8(this.pos);
|
|
86
|
+
this.pos += 1;
|
|
87
|
+
return v;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
readBytes(n: number): Uint8Array {
|
|
91
|
+
const result = new Uint8Array(this.view.buffer, this.view.byteOffset + this.pos, n);
|
|
92
|
+
this.pos += n;
|
|
93
|
+
return new Uint8Array(result); // return a copy
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
readCString(maxLen: number): string {
|
|
97
|
+
const bytes = this.readBytes(maxLen);
|
|
98
|
+
const end = bytes.indexOf(0);
|
|
99
|
+
return new TextDecoder('ascii').decode(bytes.subarray(0, end === -1 ? bytes.length : end));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** Read a text line terminated by \r\n (SE1 header format). Returns null if no \r\n found. */
|
|
103
|
+
readLine(maxLen: number = 512): string | null {
|
|
104
|
+
const startPos = this.pos;
|
|
105
|
+
for (let i = 0; i < maxLen && this.pos < this.view.byteLength; i++) {
|
|
106
|
+
const ch = this.view.getUint8(this.pos++);
|
|
107
|
+
if (ch === 0x0A) { // \n
|
|
108
|
+
const len = this.pos - startPos - 1;
|
|
109
|
+
const bytes = new Uint8Array(this.view.buffer, this.view.byteOffset + startPos, len);
|
|
110
|
+
let text = '';
|
|
111
|
+
for (let j = 0; j < len; j++) text += String.fromCharCode(bytes[j]);
|
|
112
|
+
if (text.endsWith('\r')) text = text.slice(0, -1);
|
|
113
|
+
return text;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
this.pos = startPos; // rewind on failure
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** Read an N-byte unsigned integer (1-4 bytes), using current endianness. */
|
|
121
|
+
readUintN(bytes: number): number {
|
|
122
|
+
const raw = this.readBytes(bytes);
|
|
123
|
+
let value = 0;
|
|
124
|
+
if (this.le) {
|
|
125
|
+
for (let i = bytes - 1; i >= 0; i--) value = value * 256 + raw[i];
|
|
126
|
+
} else {
|
|
127
|
+
for (let i = 0; i < bytes; i++) value = value * 256 + raw[i];
|
|
128
|
+
}
|
|
129
|
+
return value >>> 0;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
readInt32Array(count: number): Int32Array {
|
|
133
|
+
const arr = new Int32Array(count);
|
|
134
|
+
for (let i = 0; i < count; i++) {
|
|
135
|
+
arr[i] = this.readInt32();
|
|
136
|
+
}
|
|
137
|
+
return arr;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
readFloat64Array(count: number): Float64Array {
|
|
141
|
+
const arr = new Float64Array(count);
|
|
142
|
+
for (let i = 0; i < count; i++) {
|
|
143
|
+
arr[i] = this.readFloat64();
|
|
144
|
+
}
|
|
145
|
+
return arr;
|
|
146
|
+
}
|
|
147
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*************************************************************
|
|
2
|
+
* Swiss Ephemeris for TypeScript — Public API
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 1997 - 2021 Astrodienst AG, Switzerland. (AGPL)
|
|
5
|
+
*************************************************************/
|
|
6
|
+
|
|
7
|
+
export * from './constants';
|
|
8
|
+
export type { CalcResult, HouseResult, DateResult, UtcToJdResult, JdToUtcResult } from './types';
|
|
9
|
+
export { SE1FileReader } from './file-reader';
|
|
10
|
+
export { julDay, revJul, dateConversion, utcTimeZone, dayOfWeek } from './swedate';
|