@essrt/physics 23.3.3 → 24.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.
Files changed (65) hide show
  1. package/README.md +4 -1
  2. package/package.json +2 -2
  3. package/src/cardinal/one-source-structure.cjs +3 -1
  4. package/src/constants/coefficients.d.ts +5 -1
  5. package/src/constants/coefficients.js +3 -2
  6. package/src/constants/generated.d.ts +13 -14
  7. package/src/constants/generated.js +14 -15
  8. package/src/constants/units.cjs +4 -1
  9. package/src/deltat/deep-time.cjs +37 -72
  10. package/src/earth/deep-orbital-history.cjs +48 -34
  11. package/src/earth/year-lengths.cjs +2 -1
  12. package/src/eclipse/besselian.cjs +24 -11
  13. package/src/index.js +30 -48
  14. package/src/model/cardinal-instants.js +101 -0
  15. package/src/model/context.js +54 -0
  16. package/src/model/deep-time-chain.js +79 -0
  17. package/src/model/delta-t.js +38 -0
  18. package/src/model/derived-constants.js +58 -0
  19. package/src/model/earth-scalars.js +47 -0
  20. package/src/model/inv-plane-elements.js +56 -0
  21. package/src/model/lunar-theory.js +216 -0
  22. package/src/model/moon-epoch.js +28 -0
  23. package/src/model/one-source-movement.js +192 -0
  24. package/src/model/planet-elements-of-date.js +61 -0
  25. package/src/model/planet-records.js +63 -0
  26. package/src/model/planet-spin-channel.js +41 -0
  27. package/src/model/published-periods.js +38 -0
  28. package/src/model/sun-and-eclipses.js +199 -0
  29. package/src/model/surface.js +332 -0
  30. package/src/model/time-axis.js +24 -0
  31. package/src/model/year-day-lengths.js +42 -0
  32. package/src/model.js +62 -1612
  33. package/src/moon/arguments.cjs +27 -43
  34. package/src/planets/chain-artifact.js +2 -2
  35. package/src/planets/keplerian-chain.cjs +3 -3
  36. package/src/planets/model.cjs +2 -2
  37. package/types/constants/coefficients.d.ts +5 -1
  38. package/types/constants/generated.d.ts +13 -14
  39. package/types/constants/units.d.cts +3 -0
  40. package/types/deltat/deep-time.d.cts +18 -24
  41. package/types/earth/deep-orbital-history.d.cts +23 -0
  42. package/types/eclipse/besselian.d.cts +37 -18
  43. package/types/index.d.ts +1 -1
  44. package/types/model/cardinal-instants.d.ts +14 -0
  45. package/types/model/context.d.ts +87 -0
  46. package/types/model/deep-time-chain.d.ts +288 -0
  47. package/types/model/delta-t.d.ts +11 -0
  48. package/types/model/derived-constants.d.ts +25 -0
  49. package/types/model/earth-scalars.d.ts +14 -0
  50. package/types/model/inv-plane-elements.d.ts +6 -0
  51. package/types/model/lunar-theory.d.ts +72 -0
  52. package/types/model/moon-epoch.d.ts +10 -0
  53. package/types/model/one-source-movement.d.ts +74 -0
  54. package/types/model/planet-elements-of-date.d.ts +9 -0
  55. package/types/model/planet-records.d.ts +7 -0
  56. package/types/model/planet-spin-channel.d.ts +29 -0
  57. package/types/model/published-periods.d.ts +7 -0
  58. package/types/model/sun-and-eclipses.d.ts +53 -0
  59. package/types/model/surface.d.ts +281 -0
  60. package/types/model/time-axis.d.ts +12 -0
  61. package/types/model/year-day-lengths.d.ts +8 -0
  62. package/types/model.d.ts +10 -81
  63. package/types/moon/arguments.d.cts +5 -11
  64. package/types/planets/keplerian-chain.d.cts +4 -2
  65. package/types/planets/model.d.cts +3 -3
@@ -0,0 +1,288 @@
1
+ /** @param {import('./derived-constants.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assembleDeepTimeChain(ctx: import("./derived-constants.js").Ctx): {
3
+ EPOCH_PARAMS: import("../layer0/index.js").EpochParams;
4
+ alphaGia: {
5
+ alphaAt: (year: number) => number;
6
+ j2RatioAt: (year: number) => number;
7
+ laggedL1PermilAt: (year: number) => number;
8
+ kPerPermille: number;
9
+ relaxationKyr: number;
10
+ laggedL1Terms: Array<{
11
+ period_kyr: number;
12
+ a: number;
13
+ b: number;
14
+ }>;
15
+ };
16
+ chain: Readonly<{
17
+ meanSolarYearDays: number;
18
+ meanSiderealYearDays: any;
19
+ meanSiderealYearSeconds: number;
20
+ meanLengthOfDay: any;
21
+ meanTropicalYearJ2000Seconds: number;
22
+ siTropicalYearDays: number;
23
+ axialPrecessionJ2000Years: number;
24
+ axialPrecessionJ2000Days: number;
25
+ G_CONSTANT: any;
26
+ MASS_RATIO_EARTH_MOON: any;
27
+ currentAUDistance: any;
28
+ earthMoiFactorJ2000: any;
29
+ moonDistanceKm: any;
30
+ moonSiderealMonthInput: any;
31
+ moonOrbitalShift: number;
32
+ moonDistanceCorrected: number;
33
+ GM_EARTH_MOON_SYSTEM: number;
34
+ GM_EARTH_ALONE: number;
35
+ GM_MOON_ALONE: number;
36
+ GM_SUN_PLUS_EARTH: number;
37
+ GM_SUN: number;
38
+ M_SUN: number;
39
+ moonApsidalJ2000Seconds: number;
40
+ moonNodalJ2000Seconds: number;
41
+ moonSiderealMonthJ2000Seconds: number;
42
+ moonPeriods: {
43
+ moonApsidalPrecessionDaysEarth: number;
44
+ moonNodalPrecessionDaysEarth: number;
45
+ moonApsidalJ2000Seconds: number;
46
+ moonNodalJ2000Seconds: number;
47
+ moonSiderealMonthJ2000Seconds: number;
48
+ moonAnomalisticMonthDays: number;
49
+ moonNodalMonthDays: number;
50
+ moonSynodicMonthDays: number;
51
+ moonTropicalMonthDays: number;
52
+ moonFullMoonCycleEarthDays: number;
53
+ moonFullMoonCycleICRFDays: number;
54
+ moonApsidalMeetsNodalDays: number;
55
+ moonLunarLevelingCycleDays: number;
56
+ moonDraconicYearICRFDays: number;
57
+ moonDraconicYearEarthDays: number;
58
+ };
59
+ certifiedAxialPrecessionJ2000Years: () => number;
60
+ precessionRateJ2000ArcsecPerYr: () => number;
61
+ EPOCH_PARAMS: import("../layer0/index.js").EpochParams;
62
+ ageAnchorYear: any;
63
+ alphaGia: {
64
+ alphaAt: (year: number) => number;
65
+ j2RatioAt: (year: number) => number;
66
+ laggedL1PermilAt: (year: number) => number;
67
+ kPerPermille: number;
68
+ relaxationKyr: number;
69
+ laggedL1Terms: Array<{
70
+ period_kyr: number;
71
+ a: number;
72
+ b: number;
73
+ }>;
74
+ };
75
+ earthMoiFactorAtAge: (tMa: number) => number;
76
+ withLatticeAlpha: (build: () => void) => void;
77
+ j2RatioAtYear: (year: number) => number;
78
+ iEarthAtAge: (tMa: number) => number;
79
+ recession: {
80
+ distanceMetresAtAge: (tMa: number) => number | null;
81
+ slopeMetresPerMaAtAge: (tMa: number) => number | null;
82
+ ratioAtAge: (tMa: number) => number | null;
83
+ spanMa: number;
84
+ };
85
+ meanObliquity: {
86
+ meanObliquityDegAtAge: (tMa: number) => number | null;
87
+ cosRatioAtAge: (tMa: number) => number | null;
88
+ meanObliquityJ2000Deg: number;
89
+ spanMa: number;
90
+ };
91
+ dtCycles: {
92
+ taperAt: (year: number) => number;
93
+ taperDerivativeAt: (year: number) => number;
94
+ cycleDeltaTSecondsAt: (cycleKey: string, year: number) => number;
95
+ cycleLodSecondsAt: (cycleKey: string, year: number) => number;
96
+ swingDeltaTSecondsAt: (year: number) => number;
97
+ swingLodSecondsAt: (year: number) => number;
98
+ swingLodRateAt: (year: number) => number;
99
+ };
100
+ s3ArcsecPerYr: number;
101
+ deepLod: {
102
+ lodSecondsAtAge: (t_Ma: number) => number | null;
103
+ lodSecondsAtAgeWithAlpha: (t_Ma: number, alpha: number) => number | null;
104
+ lodHoursAtAge: (t_Ma: number) => number | null;
105
+ lunisolarPrecessionRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
106
+ lunisolarPrecessionPeriodYearsAtAge: (t_Ma: number) => number | null;
107
+ lunisolarTorqueRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
108
+ lunisolarTorquePeriodYearsAtAge: (t_Ma: number) => number | null;
109
+ precessionObliquityFactorAtAge: (t_Ma: number) => number | null;
110
+ lunarTorqueFactorAtAge: (tMa: number) => (number | null);
111
+ precessionTorqueTermAtAge: (tMa: number) => (number | null);
112
+ siderealYearSecondsAtAge: (t_Ma: number) => number;
113
+ tropicalYearSecondsAtAge: (t_Ma: number) => number;
114
+ tropicalYearDaysAtAge: (t_Ma: number) => number | null;
115
+ tropicalYearSecondsFromLod: (t_Ma: number, LOD_s: number | null) => number;
116
+ eclipticLodCorrectionSecondsAtAge: (t_Ma: number) => number | null;
117
+ yearInDaysAtAge: (t_Ma: number) => number | null;
118
+ deltaTRawSecondsAtAge: (t_Ma: number) => number;
119
+ lodSecondsWithCorrectionsAtAge: (t_Ma: number) => number | null;
120
+ dLodDtDecompositionAtAge: (t_Ma: number) => {
121
+ tidal: number | null;
122
+ gia: number | null;
123
+ stack: number | null;
124
+ resonator: number | null;
125
+ net_L2: number | null;
126
+ net_L3: number | null;
127
+ net_L4: number | null;
128
+ };
129
+ };
130
+ l0: import("../layer0/index.js").EpochPrimitives;
131
+ deepEcc: {
132
+ eccAt: (tYr: number) => number;
133
+ eccRateAt: (tYr: number) => number;
134
+ modulation: (tMa: number, s: number) => number;
135
+ channelIntegral: (T: number, s: number) => number;
136
+ eFactorAt: (tYr: number) => number;
137
+ e0: number;
138
+ g0: number;
139
+ };
140
+ eCompModulation: (tMa: number, s: number) => number;
141
+ moonChain: {
142
+ distanceMetresAtAge: (tMa: number) => number | null;
143
+ distanceKmAtAge: (tMa: number) => number | null;
144
+ solarDeltaAKmAtAge: (tMa: number, aApparentKm: number) => number | null;
145
+ distanceCorrectedKmAtAge: (tMa: number) => number | null;
146
+ siderealMonthSecondsAtAge: (tMa: number) => number | null;
147
+ synodicMonthSecondsAtAge: (tMa: number) => number | null;
148
+ tropicalMonthSecondsAtAge: (tMa: number) => number | null;
149
+ perigeePrecessionSecondsAtAge: (tMa: number) => number | null;
150
+ nodePrecessionSecondsAtAge: (tMa: number) => number | null;
151
+ anomalisticMonthSecondsAtAge: (tMa: number) => number | null;
152
+ nodalMonthSecondsAtAge: (tMa: number) => number | null;
153
+ apsidalMeetsNodalSecondsAtAge: (tMa: number) => number | null;
154
+ lunarLevelingSecondsAtAge: (tMa: number) => number | null;
155
+ };
156
+ meanMoonDistanceMetresAtAge: (tMa: number) => number | null;
157
+ meanMoonDistanceAtAge: (tMa: number) => number | null;
158
+ meanLodSecondsAtAge: (tMa: number) => number | null;
159
+ meanLodHoursAtAge: (t_Ma: number) => number | null;
160
+ meanLunisolarPrecessionRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
161
+ meanLunisolarPrecessionPeriodYearsAtAge: (tMa: number) => number | null;
162
+ meanLunisolarTorqueRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
163
+ meanLunisolarTorquePeriodYearsAtAge: (t_Ma: number) => number | null;
164
+ precessionObliquityFactorAtAge: (t_Ma: number) => number | null;
165
+ meanObliquityCitedDegAtAge: (tMa: number) => number | null;
166
+ meanAuAtAge: (tMa: number) => number;
167
+ meanSiderealYearSecondsAtAge: (tMa: number) => number;
168
+ meanTropicalYearSecondsAtAge: (t_Ma: number) => number;
169
+ meanTropicalYearDaysAtAge: (t_Ma: number) => number | null;
170
+ meanYearInDaysAtAge: (t_Ma: number) => number | null;
171
+ meanDeltaTSecondsAtAge: (tMa: number) => number;
172
+ bondCycleDeltaTCorrection: (year: number) => number;
173
+ hallstattCycleDeltaTCorrection: (year: number) => number;
174
+ jose5CycleDeltaTCorrection: (year: number) => number;
175
+ jose4CycleDeltaTCorrection: (year: number) => number;
176
+ bondCycleLodCorrection: (year: number) => number;
177
+ hallstattCycleLodCorrection: (year: number) => number;
178
+ jose5CycleLodCorrection: (year: number) => number;
179
+ jose4CycleLodCorrection: (year: number) => number;
180
+ dtCycleLodCorrectionSum: (year: number) => number;
181
+ resonatorSwingDeltaTCorrection: (year: number) => number;
182
+ resonatorSwingLodCorrection: (year: number) => number;
183
+ resonatorSwingLodRate: (year: number) => number;
184
+ meanLodSecondsWithCorrectionsAtAge: (t_Ma: number) => number | null;
185
+ dLodDtDecompositionAtAge: (t_Ma: number) => {
186
+ tidal: number | null;
187
+ gia: number | null;
188
+ stack: number | null;
189
+ resonator: number | null;
190
+ net_L2: number | null;
191
+ net_L3: number | null;
192
+ net_L4: number | null;
193
+ };
194
+ h5Correction: (year: number) => number;
195
+ computeLodKinematicSecondsAtEpoch: (year: number) => number;
196
+ computeLodRealSecondsAtEpoch: (year: number) => number;
197
+ meanSolarDeltaAAtAge: (tMa: number, aApparentKm: number) => number | null;
198
+ meanMoonDistanceCorrectedAtAge: (tMa: number) => number | null;
199
+ meanMoonSiderealMonthAtAge: (tMa: number) => number | null;
200
+ meanSynodicMonthAtAge: (tMa: number) => number | null;
201
+ meanTropicalMonthAtAge: (tMa: number) => number | null;
202
+ meanLunarPerigeePrecessionAtAge: (tMa: number) => number | null;
203
+ meanLunarNodePrecessionAtAge: (tMa: number) => number | null;
204
+ meanAnomalisticMonthAtAge: (tMa: number) => number | null;
205
+ meanNodalMonthAtAge: (tMa: number) => number | null;
206
+ meanApsidalMeetsNodalAtAge: (tMa: number) => number | null;
207
+ meanLunarLevelingCycleAtAge: (tMa: number) => number | null;
208
+ meanStellarDayAtAge: (tMa: number) => number | null;
209
+ meanStellarDayProjectedAtAge: (tMa: number) => number | null;
210
+ meanSiderealDayAtAge: (tMa: number) => number | null;
211
+ meanPlanetSemiMajorAxisAtAge: (planetName: string, tMa: number) => number | null;
212
+ meanPlanetOrbitalPeriodAtAge: (tMa: number, periodJ2000Seconds: number) => number;
213
+ meanEarthPlanetSynodicPeriodAtAge: (tMa: number, periodJ2000Seconds: number) => number;
214
+ }>;
215
+ deepEcc: {
216
+ eccAt: (tYr: number) => number;
217
+ eccRateAt: (tYr: number) => number;
218
+ modulation: (tMa: number, s: number) => number;
219
+ channelIntegral: (T: number, s: number) => number;
220
+ eFactorAt: (tYr: number) => number;
221
+ e0: number;
222
+ g0: number;
223
+ };
224
+ deepLod: {
225
+ lodSecondsAtAge: (t_Ma: number) => number | null;
226
+ lodSecondsAtAgeWithAlpha: (t_Ma: number, alpha: number) => number | null;
227
+ lodHoursAtAge: (t_Ma: number) => number | null;
228
+ lunisolarPrecessionRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
229
+ lunisolarPrecessionPeriodYearsAtAge: (t_Ma: number) => number | null;
230
+ lunisolarTorqueRateArcsecPerYrAtAge: (t_Ma: number) => number | null;
231
+ lunisolarTorquePeriodYearsAtAge: (t_Ma: number) => number | null;
232
+ precessionObliquityFactorAtAge: (t_Ma: number) => number | null;
233
+ lunarTorqueFactorAtAge: (tMa: number) => (number | null);
234
+ precessionTorqueTermAtAge: (tMa: number) => (number | null);
235
+ siderealYearSecondsAtAge: (t_Ma: number) => number;
236
+ tropicalYearSecondsAtAge: (t_Ma: number) => number;
237
+ tropicalYearDaysAtAge: (t_Ma: number) => number | null;
238
+ tropicalYearSecondsFromLod: (t_Ma: number, LOD_s: number | null) => number;
239
+ eclipticLodCorrectionSecondsAtAge: (t_Ma: number) => number | null;
240
+ yearInDaysAtAge: (t_Ma: number) => number | null;
241
+ deltaTRawSecondsAtAge: (t_Ma: number) => number;
242
+ lodSecondsWithCorrectionsAtAge: (t_Ma: number) => number | null;
243
+ dLodDtDecompositionAtAge: (t_Ma: number) => {
244
+ tidal: number | null;
245
+ gia: number | null;
246
+ stack: number | null;
247
+ resonator: number | null;
248
+ net_L2: number | null;
249
+ net_L3: number | null;
250
+ net_L4: number | null;
251
+ };
252
+ };
253
+ dtCycleLodCorrectionSum: (year: number) => number;
254
+ dtCycles: {
255
+ taperAt: (year: number) => number;
256
+ taperDerivativeAt: (year: number) => number;
257
+ cycleDeltaTSecondsAt: (cycleKey: string, year: number) => number;
258
+ cycleLodSecondsAt: (cycleKey: string, year: number) => number;
259
+ swingDeltaTSecondsAt: (year: number) => number;
260
+ swingLodSecondsAt: (year: number) => number;
261
+ swingLodRateAt: (year: number) => number;
262
+ };
263
+ earthMoiFactorAtAge: (tMa: number) => number;
264
+ evalClimateL1: (year: number) => number;
265
+ moonChain: {
266
+ distanceMetresAtAge: (tMa: number) => number | null;
267
+ distanceKmAtAge: (tMa: number) => number | null;
268
+ solarDeltaAKmAtAge: (tMa: number, aApparentKm: number) => number | null;
269
+ distanceCorrectedKmAtAge: (tMa: number) => number | null;
270
+ siderealMonthSecondsAtAge: (tMa: number) => number | null;
271
+ synodicMonthSecondsAtAge: (tMa: number) => number | null;
272
+ tropicalMonthSecondsAtAge: (tMa: number) => number | null;
273
+ perigeePrecessionSecondsAtAge: (tMa: number) => number | null;
274
+ nodePrecessionSecondsAtAge: (tMa: number) => number | null;
275
+ anomalisticMonthSecondsAtAge: (tMa: number) => number | null;
276
+ nodalMonthSecondsAtAge: (tMa: number) => number | null;
277
+ apsidalMeetsNodalSecondsAtAge: (tMa: number) => number | null;
278
+ lunarLevelingSecondsAtAge: (tMa: number) => number | null;
279
+ };
280
+ moonDistanceKmAtYearOrNaN: (year: number) => number;
281
+ moonDistanceMetresAtAge: (tMa: number) => number | null;
282
+ s3ArcsecPerYr: number;
283
+ spinAxisInertialRateMeanArcsecPerYr: (yearFrom: number, yearTo: number, stepYears?: number, opts?: {
284
+ ellipticity?: boolean;
285
+ }) => number;
286
+ yearToTMa: (year: number) => number;
287
+ };
288
+ export type Ctx = import("./derived-constants.js").Ctx & ReturnType<typeof assembleDeepTimeChain>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ΔT (TT − UT1) — the raw integral plus the cycle stack, memoized on the exact argument.
3
+ *
4
+ * One slice of `assembleModel` (../model.js): receives the context the earlier slices built, returns the bindings the later ones read.
5
+ */
6
+ /** @param {import('./moon-epoch.js').Ctx} ctx @returns the bindings the later slices read */
7
+ export function assembleDeltaT(ctx: import("./moon-epoch.js").Ctx): {
8
+ deltaTSeconds: (year: number) => number;
9
+ meanDeltaTSecondsAtAge: (tMa: number) => number;
10
+ };
11
+ export type Ctx = import("./moon-epoch.js").Ctx & ReturnType<typeof assembleDeltaT>;
@@ -0,0 +1,25 @@
1
+ /** @param {import('./context.js').ModelInputs} ctx @returns the bindings the later slices read */
2
+ export function assembleDerivedConstants(ctx: import("./context.js").ModelInputs): {
3
+ GM_EARTH_ALONE: number;
4
+ GM_EARTH_MOON_SYSTEM: number;
5
+ GM_MOON_ALONE: number;
6
+ GM_SUN: number;
7
+ GM_SUN_PLUS_EARTH: number;
8
+ G_CONSTANT: any;
9
+ MASS_RATIO_EARTH_MOON: any;
10
+ M_SUN: number;
11
+ axialPrecessionJ2000Days: number;
12
+ currentAUDistance: any;
13
+ meanLengthOfDay: any;
14
+ meanSiderealYearDays: any;
15
+ meanSolarYearDays: number;
16
+ meanTropicalYearJ2000Seconds: number;
17
+ moonDistanceCorrected: number;
18
+ moonDistanceKm: any;
19
+ moonOrbitalShift: number;
20
+ moonSiderealMonth: any;
21
+ moonSiderealMonthInput: any;
22
+ startmodelJD: any;
23
+ startmodelYear: any;
24
+ };
25
+ export type Ctx = import("./context.js").ModelInputs & ReturnType<typeof assembleDerivedConstants>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Earth scalars of date — e, ϖ, ε read from the one-source movement; the eclipse Sun's mean elements (the research `laws` hook).
3
+ *
4
+ * One slice of `assembleModel` (../model.js): receives the context the earlier slices built, returns the bindings the later ones read.
5
+ */
6
+ /** @param {import('./deep-time-chain.js').Ctx} ctx @returns the bindings the later slices read */
7
+ export function assembleEarthScalars(ctx: import("./deep-time-chain.js").Ctx): {
8
+ earthPerihelionDeg: (year: number) => number;
9
+ eccentricityAt: (year: number) => number;
10
+ obliquityDeg: (year: number) => number;
11
+ sunEccentricityAt: (year: number) => any;
12
+ sunPerihelionDegAt: (year: number) => number;
13
+ };
14
+ export type Ctx = import("./deep-time-chain.js").Ctx & ReturnType<typeof assembleEarthScalars>;
@@ -0,0 +1,6 @@
1
+ /** @param {import('./planet-elements-of-date.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assembleInvPlaneElements(ctx: import("./planet-elements-of-date.js").Ctx): {
3
+ ascendingNodeDeg: (year: number) => number;
4
+ inclinationDeg: (year: number) => number;
5
+ };
6
+ export type Ctx = import("./planet-elements-of-date.js").Ctx & ReturnType<typeof assembleInvPlaneElements>;
@@ -0,0 +1,72 @@
1
+ /** @param {import('./time-axis.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assembleLunarTheory(ctx: import("./time-axis.js").Ctx): {
3
+ frameworkDeltaTSecondsAtJD: (jd: number) => number;
4
+ j2000JD: number;
5
+ jdTTFromUT: (jd: number) => number;
6
+ julianCenturyDays: number;
7
+ moonArgs: {
8
+ argsAt: (jdTT: number) => MoonArgsDeg;
9
+ fwArgs: (jdTT: number) => MoonArgsDeg;
10
+ fwArgsDeep: (jd: number) => MoonArgsDeg | null;
11
+ pureMeeusArgs: (jdTT: number) => MoonArgsDeg;
12
+ planetaryCarrier: (T: number) => number;
13
+ obliquityCarrier: (T: number) => number;
14
+ lpSecularCompletion: (T: number) => number;
15
+ bundle: {
16
+ LP0: number;
17
+ D0: number;
18
+ M0: number;
19
+ MP0: number;
20
+ F0: number;
21
+ LPR: number;
22
+ DR: number;
23
+ MR: number;
24
+ WDOT: number;
25
+ NDOT: number;
26
+ T2_W: number;
27
+ T2_N: number;
28
+ T3_W: number;
29
+ T3_N: number;
30
+ T2_LP: number;
31
+ T2_LP_TIDAL: number;
32
+ S_W: number;
33
+ S_N: number;
34
+ };
35
+ _rateCompletion: () => {
36
+ rc: {
37
+ ok: boolean;
38
+ pFix: (dyYears: number) => number;
39
+ pdSlopeDegPerCy2: number;
40
+ };
41
+ anchors: {
42
+ ok: boolean;
43
+ Lp: number;
44
+ w: number;
45
+ om: number;
46
+ Lsun: number;
47
+ ws: number;
48
+ Tq: number;
49
+ };
50
+ };
51
+ };
52
+ moonSeries: {
53
+ sceneEvalAt: (dDaysTT: number) => {
54
+ thetaAddRad: number;
55
+ lonDeg: number;
56
+ latRad: number;
57
+ latDeg: number;
58
+ distKm: number;
59
+ T: number;
60
+ };
61
+ truncatedLonDeg: (jdUT: number) => number;
62
+ truncatedBetaDeg: (jdUT: number) => number;
63
+ truncatedDistanceKm: (jdUT: number) => number;
64
+ additionalArgs: (T: number, dDaysTT: number) => {
65
+ A1: number;
66
+ A2: number;
67
+ A3: number;
68
+ };
69
+ };
70
+ moonSynodicMonthDays: number;
71
+ };
72
+ export type Ctx = import("./time-axis.js").Ctx & ReturnType<typeof assembleLunarTheory>;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The Moon at epoch — the solar-Δa-corrected Kepler month.
3
+ *
4
+ * One slice of `assembleModel` (../model.js): receives the context the earlier slices built, returns the bindings the later ones read.
5
+ */
6
+ /** @param {import('./one-source-movement.js').Ctx} ctx @returns the bindings the later slices read */
7
+ export function assembleMoonEpoch(ctx: import("./one-source-movement.js").Ctx): {
8
+ moonSiderealMonthDaysAt: (year: number) => number;
9
+ };
10
+ export type Ctx = import("./one-source-movement.js").Ctx & ReturnType<typeof assembleMoonEpoch>;
@@ -0,0 +1,74 @@
1
+ /** @param {import('./year-day-lengths.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assembleOneSourceMovement(ctx: import("./year-day-lengths.js").Ctx): {
3
+ lodRealSeconds: (year: number) => number;
4
+ oneFamilyTropicalYearSeconds: (year: number) => number;
5
+ oneSourceM: {
6
+ yearLengths: Readonly<{
7
+ tropicalYearSecondsAtYear: (year: number) => number;
8
+ siderealYearSecondsAtYear: (year: number) => number;
9
+ anomalisticYearSecondsAtYear: (year: number) => number;
10
+ axialPrecessionYearsAtYear: (y: number) => number;
11
+ perihelionPrecessionYearsAtYear: (y: number) => number;
12
+ inclinationPrecessionYearsAtYear: (y: number) => number;
13
+ generalPrecessionArcsecPerJulianYr: (y: number) => number;
14
+ apsidalRateFixedArcsecPerJulianYr: (y: number) => number;
15
+ cardinal: Readonly<{
16
+ yearLengthSeconds: (y: number, type: "VE" | "SS" | "AE" | "WS") => number;
17
+ eocOffsetSeconds: (y: number, type: "VE" | "SS" | "AE" | "WS") => number;
18
+ spreadSeconds: (y: number) => {
19
+ VE: number;
20
+ SS: number;
21
+ AE: number;
22
+ WS: number;
23
+ meanSeconds: number;
24
+ };
25
+ }>;
26
+ planetaryRelAtYear: (year: number) => number;
27
+ }>;
28
+ /** The one-source sample at a decimal year (the engine year) — ε, e, ϖ of date, the Earth-orbit normal (the fields the frame of date and the invariable-plane elements read). @param {number} year */
29
+ sampleAt: (year: number) => any;
30
+ /** EXPERIMENT accessors: the series' e and equinox-referenced ϖ of date. @param {number} year @returns {number} */
31
+ eAt: (year: number) => number;
32
+ /** @param {number} year @returns {number} */
33
+ periOfDateDegAt: (year: number) => number;
34
+ /** The hybrid's obliquity at a decimal year, degrees — the banked series inside its span, the α(t)-coupled ζ-tail integration beyond (the deep sampler grows ~0.1 s/Myr). @param {number} year @returns {number} */
35
+ epsAt: (year: number) => number;
36
+ /** The hybrid's own domain, [yearFrom, yearTo] — the banked ζ series' span (plan 12 §8.5); null without a series. */
37
+ obliquityHybridDomainYears: [number, number] | null;
38
+ /** The precession of date's two factors at a decimal year (the factory's own — ONE home). @param {number} year @returns {{solarTorque: number, ellipticity: number}} */
39
+ precessionOfDateFactorsAt: (year: number) => {
40
+ solarTorque: number;
41
+ ellipticity: number;
42
+ };
43
+ /** The spin axis's INERTIAL precession period at J2000, years — the self-anchored
44
+ * lunisolar rate the hybrid integrates ŝ on (deep-orbital-history D4e): the general
45
+ * precession anchor plus the planetary mean the ecliptic's own motion carries. */
46
+ axialPrecessionYearsLunisolarJ2000: number;
47
+ };
48
+ siderealDaySeconds: (year: number) => number;
49
+ stellarDaySeconds: (year: number) => number;
50
+ tropicalYearDays: (year: number) => number;
51
+ yearLengthsM: Readonly<{
52
+ tropicalYearSecondsAtYear: (year: number) => number;
53
+ siderealYearSecondsAtYear: (year: number) => number;
54
+ anomalisticYearSecondsAtYear: (year: number) => number;
55
+ axialPrecessionYearsAtYear: (y: number) => number;
56
+ perihelionPrecessionYearsAtYear: (y: number) => number;
57
+ inclinationPrecessionYearsAtYear: (y: number) => number;
58
+ generalPrecessionArcsecPerJulianYr: (y: number) => number;
59
+ apsidalRateFixedArcsecPerJulianYr: (y: number) => number;
60
+ cardinal: Readonly<{
61
+ yearLengthSeconds: (y: number, type: "VE" | "SS" | "AE" | "WS") => number;
62
+ eocOffsetSeconds: (y: number, type: "VE" | "SS" | "AE" | "WS") => number;
63
+ spreadSeconds: (y: number) => {
64
+ VE: number;
65
+ SS: number;
66
+ AE: number;
67
+ WS: number;
68
+ meanSeconds: number;
69
+ };
70
+ }>;
71
+ planetaryRelAtYear: (year: number) => number;
72
+ }>;
73
+ };
74
+ export type Ctx = import("./year-day-lengths.js").Ctx & ReturnType<typeof assembleOneSourceMovement>;
@@ -0,0 +1,9 @@
1
+ /** @param {import('./planet-spin-channel.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assemblePlanetElementsOfDate(ctx: import("./planet-spin-channel.js").Ctx): {
3
+ nodeOriginSSDeg: () => number;
4
+ planetAscNodeDeg: (k: string, year: number) => number;
5
+ planetEccentricity: (k: string, year: number) => number;
6
+ planetInclinationDeg: (k: string, year: number) => number;
7
+ planetPerihelionDeg: (k: string, year: number) => number;
8
+ };
9
+ export type Ctx = import("./planet-spin-channel.js").Ctx & ReturnType<typeof assemblePlanetElementsOfDate>;
@@ -0,0 +1,7 @@
1
+ /** @param {import('./delta-t.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assemblePlanetRecords(ctx: import("./delta-t.js").Ctx): {
3
+ PLANET_KEYS: string[];
4
+ PUBLISHED_PLANET_RECORDS: Record<string, Record<string, any>>;
5
+ massFraction: Record<string, number>;
6
+ };
7
+ export type Ctx = import("./delta-t.js").Ctx & ReturnType<typeof assemblePlanetRecords>;
@@ -0,0 +1,29 @@
1
+ /** @param {import('./planet-records.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assemblePlanetSpinChannel(ctx: import("./planet-records.js").Ctx): {
3
+ planetSpin: (k: string) => Readonly<{
4
+ key: string;
5
+ cassiniLocked: boolean;
6
+ momentOfInertiaFactor: number;
7
+ momentOfInertiaFactorClass: string;
8
+ alphaArcsecPerYr: number;
9
+ satelliteQuadrupole: number;
10
+ satelliteAngularMomentum: number;
11
+ spinRetrograde: boolean;
12
+ meanMotionRadPerYr: number;
13
+ obliquityJ2000Deg: number;
14
+ spinPrecessionRateArcsecPerYrJ2000: number | null;
15
+ axialPrecessionPeriodYearsJ2000: number | null;
16
+ obliquityDegAtYear: (year: number) => number | null;
17
+ spinPrecessionRateArcsecPerYrAtYear: (year: number) => number | null;
18
+ obliquityEnvelopeDeg: (year: number, spanYr: number) => {
19
+ minDeg: number;
20
+ meanDeg: number;
21
+ maxDeg: number;
22
+ } | null;
23
+ spinAxisEclipticJ2000AtYear: (year: number) => number[] | null;
24
+ orbitNormalEclipticJ2000AtYear: (year: number) => number[];
25
+ stepYr: number;
26
+ maxSpanYr: 10000000;
27
+ }>;
28
+ };
29
+ export type Ctx = import("./planet-records.js").Ctx & ReturnType<typeof assemblePlanetSpinChannel>;
@@ -0,0 +1,7 @@
1
+ /** @param {import('./sun-and-eclipses.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assemblePublishedPeriods(ctx: import("./sun-and-eclipses.js").Ctx): {
3
+ publishedAxialPrecessionYearsAtYear: (year: number) => number;
4
+ publishedSiderealYearSecondsAtYear: (year: number) => number;
5
+ publishedTropicalYearSecondsAtYear: (year: number) => number;
6
+ };
7
+ export type Ctx = import("./sun-and-eclipses.js").Ctx & ReturnType<typeof assemblePublishedPeriods>;
@@ -0,0 +1,53 @@
1
+ /** @param {import('./lunar-theory.js').Ctx} ctx @returns the bindings the later slices read */
2
+ export function assembleSunAndEclipses(ctx: import("./lunar-theory.js").Ctx): {
3
+ besselian: {
4
+ umbraGroundAt: (jdUT: number) => {
5
+ latDeg: number;
6
+ lonDeg: number;
7
+ } | null;
8
+ shadowStateAt: (jdUT: number, latDeg: number, lonDeg: number) => {
9
+ offsetKm: number;
10
+ penumbraKm: number;
11
+ umbraKm: number;
12
+ magnitude: number;
13
+ };
14
+ localCircumstances: (jdGreatest: number, latDeg: number, lonDeg: number) => {
15
+ kind: "none" | "partial" | "annular" | "total";
16
+ magnitude: number;
17
+ maxJd: number;
18
+ contacts: {
19
+ c1: number | null;
20
+ c2: number | null;
21
+ c3: number | null;
22
+ c4: number | null;
23
+ };
24
+ centralDurationSeconds: number | null;
25
+ };
26
+ gmstDeg: (jdUT: number) => number;
27
+ };
28
+ eclipseFinders: {
29
+ sunLonDegAt: (jd: number) => number;
30
+ findLunarEclipsesInRange: (jdStart: number, jdEnd: number) => Array<{
31
+ jd: number;
32
+ beta: number;
33
+ moonDistance_km: number;
34
+ type: string;
35
+ magnitudeUmbral: number;
36
+ magnitudePenumbral: number;
37
+ }>;
38
+ findSolarEclipsesInRange: (jdStart: number, jdEnd: number) => Array<{
39
+ jd: number;
40
+ beta: number;
41
+ moonDistance_km: number;
42
+ type: string;
43
+ moonAppR_topo: number;
44
+ sunAppR: number;
45
+ moonSunRatio: number;
46
+ }>;
47
+ };
48
+ sunL0Deg: any;
49
+ sunMeanLongitudeDegAt: (year: number) => number;
50
+ sunPlanetaryCompletionDeg: (T: number) => number;
51
+ sunTropicalRateDegPerCy: number;
52
+ };
53
+ export type Ctx = import("./lunar-theory.js").Ctx & ReturnType<typeof assembleSunAndEclipses>;