@neilberkman/sidereon 0.31.2 → 0.33.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.
@@ -36,7 +36,7 @@ export interface Sp3ArtifactIdentityInput {
36
36
  archiveSha256: string;
37
37
  /** Positive integer no greater than Number.MAX_SAFE_INTEGER. */
38
38
  archiveByteLength: number;
39
- compression: "none" | "gzip";
39
+ compression: "none" | "gzip" | "unix_compress";
40
40
  }
41
41
 
42
42
  /** Validated canonical artifact record returned by merged-SP3 identity APIs. */
@@ -505,68 +505,44 @@ export interface PppTemporalCorrelation {
505
505
 
506
506
  export type PppScalarMap = Record<string, number>;
507
507
 
508
+ /**
509
+ * Fusion serde contracts are intentionally unrefined until their complete
510
+ * current input and serialized-output surfaces are audited together.
511
+ */
508
512
  export interface FusionConfig {
509
- filterKind?: "ekf" | "ukf";
510
- initialState?: Record<string, number | number[]>;
511
- processNoise?: Record<string, number>;
512
- leverArmBodyM?: Vec3;
513
- timeSync?: FusionTimeSyncConfig;
513
+ [key: string]: any;
514
514
  }
515
515
 
516
516
  export interface FusionTimeSyncConfig {
517
- maxRetainedSamples?: number;
518
- maxRetainedEpochs?: number;
517
+ [key: string]: any;
519
518
  }
520
519
 
521
520
  export interface ImuSampleInput {
522
- dtS: number;
523
- accelMps2?: Vec3;
524
- gyroRadS?: Vec3;
525
- deltaVelocityMps?: Vec3;
526
- deltaAngleRad?: Vec3;
521
+ [key: string]: any;
527
522
  }
528
523
 
529
524
  export interface FusionLooseMeasurement {
530
- epochJ2000S?: number;
531
- positionM: Vec3;
532
- velocityMps?: Vec3;
533
- positionCovarianceM2?: Matrix3;
534
- velocityCovarianceM2?: Matrix3;
525
+ [key: string]: any;
535
526
  }
536
527
 
537
528
  export interface FusionTightEpoch {
538
- observations: SppObservation[];
539
- tRxJ2000S: number;
540
- tRxSecondOfDayS: number;
541
- dayOfYear: number;
542
- corrections?: SppCorrections;
543
- met?: SurfaceMetInput;
529
+ [key: string]: any;
544
530
  }
545
531
 
546
532
  export interface FusionUpdate {
547
- accepted: boolean;
548
- normalizedInnovationSquared?: number;
549
- reason?: string;
533
+ [key: string]: any;
550
534
  }
551
535
 
552
536
  export interface FusionState {
553
- epochJ2000S?: number;
554
- positionM: [number, number, number];
555
- velocityMps: [number, number, number];
556
- attitudeQuaternion?: [number, number, number, number];
557
- covariance?: number[];
537
+ [key: string]: any;
558
538
  }
559
539
 
560
540
  export interface FusionTimeSyncStatus {
561
- retainedSamples: number;
562
- retainedEpochs: number;
563
- maxRetainedSamples: number;
564
- maxRetainedEpochs: number;
541
+ [key: string]: any;
565
542
  }
566
543
 
567
544
  export interface FusionRtsEpoch {
568
- epochJ2000S: number;
569
- state: FusionState;
545
+ [key: string]: any;
570
546
  }
571
547
 
572
548
  export interface DllJitterOptions {
@@ -2500,6 +2476,62 @@ export class ErrorEllipse2 {
2500
2476
  readonly semiMinor: number;
2501
2477
  }
2502
2478
 
2479
+ /**
2480
+ * Accepted boundary convention for a validated exact SP3 product.
2481
+ */
2482
+ export enum ExactSp3Coverage {
2483
+ /**
2484
+ * The declared boundary is excluded (288 five-minute epochs in one day).
2485
+ */
2486
+ HalfOpen = 0,
2487
+ /**
2488
+ * The declared boundary epoch is present (289 five-minute epochs).
2489
+ */
2490
+ Inclusive = 1,
2491
+ }
2492
+
2493
+ /**
2494
+ * Result of parsing and validating exact SP3 bytes in one core call.
2495
+ */
2496
+ export class ExactSp3ParseResult {
2497
+ private constructor();
2498
+ free(): void;
2499
+ [Symbol.dispose](): void;
2500
+ readonly coverage: ExactSp3Coverage;
2501
+ /**
2502
+ * Return the validated parsed product.
2503
+ */
2504
+ readonly product: Sp3;
2505
+ }
2506
+
2507
+ /**
2508
+ * Source-independent exact SP3 content request.
2509
+ */
2510
+ export class ExactSp3Request {
2511
+ free(): void;
2512
+ [Symbol.dispose](): void;
2513
+ /**
2514
+ * Construct an exact request from a complete catalog product identity.
2515
+ */
2516
+ static fromIdentity(identity: GnssProductIdentity): ExactSp3Request;
2517
+ /**
2518
+ * Construct an exact request from explicit catalog identity fields.
2519
+ */
2520
+ constructor(year: number, month: number, day: number, span: string, sample: string, issue?: string | null);
2521
+ /**
2522
+ * Require a particular SP3 line-1 producing-agency code.
2523
+ */
2524
+ requireAgency(agency: string): void;
2525
+ readonly day: number;
2526
+ readonly expectedAgency: string | undefined;
2527
+ readonly formatVersion: string | undefined;
2528
+ readonly issue: string | undefined;
2529
+ readonly month: number;
2530
+ readonly sample: string;
2531
+ readonly span: string;
2532
+ readonly year: number;
2533
+ }
2534
+
2503
2535
  /**
2504
2536
  * A fault-detection-and-exclusion result: the surviving solution, the excluded
2505
2537
  * satellites in exclusion order, and the number of exclusions performed.
@@ -2665,7 +2697,7 @@ export class FusionRtsHistory {
2665
2697
  /**
2666
2698
  * Recorded epochs in forward time order.
2667
2699
  */
2668
- readonly epochs: FusionRtsEpoch[];
2700
+ readonly epochs: any;
2669
2701
  }
2670
2702
 
2671
2703
  /**
@@ -3021,7 +3053,7 @@ export class GnssInsFilter {
3021
3053
  /**
3022
3054
  * Replace retained-history capacities for later time-sync replay.
3023
3055
  */
3024
- configureTimeSync(config: FusionTimeSyncConfig): void;
3056
+ configureTimeSync(config: any): void;
3025
3057
  /**
3026
3058
  * Encode the current fusion state with the core versioned binary codec.
3027
3059
  */
@@ -3029,23 +3061,23 @@ export class GnssInsFilter {
3029
3061
  /**
3030
3062
  * Build a filter, then restore its state from versioned fusion-state bytes.
3031
3063
  */
3032
- static fromStateBytes(config: FusionConfig, bytes: Uint8Array): GnssInsFilter;
3064
+ static fromStateBytes(config: any, bytes: Uint8Array): GnssInsFilter;
3033
3065
  /**
3034
3066
  * Build a filter from a JS configuration object.
3035
3067
  */
3036
- constructor(config: FusionConfig);
3068
+ constructor(config: any);
3037
3069
  /**
3038
3070
  * Propagate the filter with one IMU rate or increment sample.
3039
3071
  */
3040
- propagate(sample: ImuSampleInput): FusionState;
3072
+ propagate(sample: any): any;
3041
3073
  /**
3042
3074
  * Propagate the filter with a JS array of IMU samples.
3043
3075
  */
3044
- propagateBatch(samples: ImuSampleInput[]): FusionState[];
3076
+ propagateBatch(samples: any): any;
3045
3077
  /**
3046
3078
  * Propagate and record the transition for later fusion RTS smoothing.
3047
3079
  */
3048
- propagateRecorded(sample: ImuSampleInput, history: FusionRtsHistoryBuilder): FusionState;
3080
+ propagateRecorded(sample: any, history: FusionRtsHistoryBuilder): any;
3049
3081
  /**
3050
3082
  * Restore this filter from versioned fusion-state bytes.
3051
3083
  */
@@ -3053,67 +3085,67 @@ export class GnssInsFilter {
3053
3085
  /**
3054
3086
  * Current INS state, covariance, and last body-rate diagnostic.
3055
3087
  */
3056
- state(): FusionState;
3088
+ state(): any;
3057
3089
  /**
3058
3090
  * Current tight-coupling receiver-clock state.
3059
3091
  */
3060
- tightClockState(): Record<string, number>;
3092
+ tightClockState(): any;
3061
3093
  /**
3062
3094
  * Current retained-history capacity and occupancy.
3063
3095
  */
3064
- timeSyncStatus(): FusionTimeSyncStatus;
3096
+ timeSyncStatus(): any;
3065
3097
  /**
3066
3098
  * Apply a loose position or position-velocity GNSS fix at the current epoch.
3067
3099
  */
3068
- updateLoose(measurement: FusionLooseMeasurement): FusionUpdate;
3100
+ updateLoose(measurement: any): any;
3069
3101
  /**
3070
3102
  * Apply a loose GNSS fix and record checkpoints for fusion RTS smoothing.
3071
3103
  */
3072
- updateLooseRecorded(measurement: FusionLooseMeasurement, history: FusionRtsHistoryBuilder): FusionUpdate;
3104
+ updateLooseRecorded(measurement: any, history: FusionRtsHistoryBuilder): any;
3073
3105
  /**
3074
3106
  * Apply a loose GNSS fix, replaying retained IMU checkpoints when it is late.
3075
3107
  */
3076
- updateLooseTimeSync(measurement: FusionLooseMeasurement): FusionUpdate;
3108
+ updateLooseTimeSync(measurement: any): any;
3077
3109
  /**
3078
3110
  * Apply a gated wheeled-vehicle non-holonomic constraint update.
3079
3111
  */
3080
- updateNonHolonomic(): FusionUpdate;
3112
+ updateNonHolonomic(): any;
3081
3113
  /**
3082
3114
  * Apply a non-holonomic constraint and record checkpoints when an update applies.
3083
3115
  */
3084
- updateNonHolonomicRecorded(history: FusionRtsHistoryBuilder): FusionUpdate;
3116
+ updateNonHolonomicRecorded(history: FusionRtsHistoryBuilder): any;
3085
3117
  /**
3086
3118
  * Apply a gated zero-velocity and zero-angular-rate update.
3087
3119
  */
3088
- updateStationary(): FusionUpdate;
3120
+ updateStationary(): any;
3089
3121
  /**
3090
3122
  * Apply a stationary update and record checkpoints when an update applies.
3091
3123
  */
3092
- updateStationaryRecorded(history: FusionRtsHistoryBuilder): FusionUpdate;
3124
+ updateStationaryRecorded(history: FusionRtsHistoryBuilder): any;
3093
3125
  /**
3094
3126
  * Apply a tight raw-observation epoch against a broadcast ephemeris source.
3095
3127
  */
3096
- updateTightBroadcast(broadcast: BroadcastEphemeris, epoch: FusionTightEpoch): FusionUpdate;
3128
+ updateTightBroadcast(broadcast: BroadcastEphemeris, epoch: any): any;
3097
3129
  /**
3098
3130
  * Apply a tight broadcast update and record checkpoints for fusion RTS smoothing.
3099
3131
  */
3100
- updateTightBroadcastRecorded(broadcast: BroadcastEphemeris, epoch: FusionTightEpoch, history: FusionRtsHistoryBuilder): FusionUpdate;
3132
+ updateTightBroadcastRecorded(broadcast: BroadcastEphemeris, epoch: any, history: FusionRtsHistoryBuilder): any;
3101
3133
  /**
3102
3134
  * Apply a tight broadcast update, replaying retained IMU checkpoints when it is late.
3103
3135
  */
3104
- updateTightBroadcastTimeSync(broadcast: BroadcastEphemeris, epoch: FusionTightEpoch): FusionUpdate;
3136
+ updateTightBroadcastTimeSync(broadcast: BroadcastEphemeris, epoch: any): any;
3105
3137
  /**
3106
3138
  * Apply a tight raw-observation epoch against an SP3 source.
3107
3139
  */
3108
- updateTightSp3(sp3: Sp3, epoch: FusionTightEpoch): FusionUpdate;
3140
+ updateTightSp3(sp3: Sp3, epoch: any): any;
3109
3141
  /**
3110
3142
  * Apply a tight SP3 update and record checkpoints for fusion RTS smoothing.
3111
3143
  */
3112
- updateTightSp3Recorded(sp3: Sp3, epoch: FusionTightEpoch, history: FusionRtsHistoryBuilder): FusionUpdate;
3144
+ updateTightSp3Recorded(sp3: Sp3, epoch: any, history: FusionRtsHistoryBuilder): any;
3113
3145
  /**
3114
3146
  * Apply a tight SP3 update, replaying retained IMU checkpoints when it is late.
3115
3147
  */
3116
- updateTightSp3TimeSync(sp3: Sp3, epoch: FusionTightEpoch): FusionUpdate;
3148
+ updateTightSp3TimeSync(sp3: Sp3, epoch: any): any;
3117
3149
  }
3118
3150
 
3119
3151
  /**
@@ -4431,7 +4463,7 @@ export class NmeaParseResult {
4431
4463
  [Symbol.dispose](): void;
4432
4464
  readonly diagnostics: any;
4433
4465
  readonly epochCount: number;
4434
- readonly epochs: FusionRtsEpoch[];
4466
+ readonly epochs: any;
4435
4467
  readonly sentenceCount: number;
4436
4468
  readonly sentences: any;
4437
4469
  }
@@ -4445,7 +4477,7 @@ export class NtripClientMachine {
4445
4477
  connectionRequest(): Uint8Array;
4446
4478
  finish(): any;
4447
4479
  ggaMessage(now_s: number, position: any, utc_seconds_of_day: number): any;
4448
- constructor(config: FusionConfig);
4480
+ constructor(config: any);
4449
4481
  push(bytes: Uint8Array): any;
4450
4482
  reset(): void;
4451
4483
  readonly state: NtripState;
@@ -6520,7 +6552,7 @@ export class RtkFloatSolution {
6520
6552
  /**
6521
6553
  * Float single-difference ambiguities, metres, as an id-keyed object.
6522
6554
  */
6523
- readonly ambiguitiesM: PppScalarMap;
6555
+ readonly ambiguitiesM: any;
6524
6556
  /**
6525
6557
  * Baseline (rover minus base) as a `Float64Array` `[dx, dy, dz]`, metres.
6526
6558
  */
@@ -7025,7 +7057,7 @@ export class SmoothedFusionTrajectory {
7025
7057
  /**
7026
7058
  * Smoothed epochs in the same order as the recorded history.
7027
7059
  */
7028
- readonly epochs: FusionRtsEpoch[];
7060
+ readonly epochs: any;
7029
7061
  }
7030
7062
 
7031
7063
  export class SmoothedTrack {
@@ -7033,7 +7065,7 @@ export class SmoothedTrack {
7033
7065
  free(): void;
7034
7066
  [Symbol.dispose](): void;
7035
7067
  readonly epochCount: number;
7036
- readonly epochs: FusionRtsEpoch[];
7068
+ readonly epochs: any;
7037
7069
  }
7038
7070
 
7039
7071
  /**
@@ -7226,6 +7258,16 @@ export class Sp3 {
7226
7258
  * `d`). Deterministic: the same product always produces byte-identical text.
7227
7259
  */
7228
7260
  toSp3String(): string;
7261
+ /**
7262
+ * Epoch count declared by SP3 header line 1, independent of the parsed
7263
+ * body count used by [`Sp3::epochCount`].
7264
+ */
7265
+ readonly declaredEpochCount: number;
7266
+ /**
7267
+ * Start epoch declared by SP3 header line 1, in product-scale seconds
7268
+ * since J2000. Missing or malformed legacy header fields return undefined.
7269
+ */
7270
+ readonly declaredStartJ2000Seconds: number | undefined;
7229
7271
  /**
7230
7272
  * Number of epochs in the product.
7231
7273
  */
@@ -8007,7 +8049,7 @@ export class StaticSolution {
8007
8049
  /**
8008
8050
  * Post-fit residuals as `{ epochIndex, satelliteId, residualM, ... }[]`.
8009
8051
  */
8010
- readonly residuals: PppResidual[];
8052
+ readonly residuals: any;
8011
8053
  /**
8012
8054
  * Full state covariance, flat row-major square matrix in square metres.
8013
8055
  */
@@ -8709,7 +8751,7 @@ export class TrackFilterConfig {
8709
8751
  /**
8710
8752
  * Build a no-IMU track filter config from a JS object.
8711
8753
  */
8712
- constructor(config: FusionConfig);
8754
+ constructor(config: any);
8713
8755
  toObject(): any;
8714
8756
  readonly dimension: number;
8715
8757
  readonly frame: string;
@@ -8721,7 +8763,7 @@ export class TrackRtsHistory {
8721
8763
  free(): void;
8722
8764
  [Symbol.dispose](): void;
8723
8765
  readonly epochCount: number;
8724
- readonly epochs: FusionRtsEpoch[];
8766
+ readonly epochs: any;
8725
8767
  }
8726
8768
 
8727
8769
  export class TrackRtsHistoryBuilder {
@@ -9361,6 +9403,17 @@ export function decodeSsr(bytes: Uint8Array, framed?: boolean | null): any;
9361
9403
  */
9362
9404
  export function defaultPair(system: GnssSystem): CarrierPair | undefined;
9363
9405
 
9406
+ /**
9407
+ * Return the officially cataloged default sampling token for a product date.
9408
+ *
9409
+ * Unlike the legacy date-free default, this preserves historical cadence
9410
+ * changes such as the GFZ rapid and ultra-rapid transitions. On ESA
9411
+ * ultra-rapid's issue-level transition date this reports the `0000`/
9412
+ * start-of-day default; [`productIdentity`](product_identity) also considers
9413
+ * the requested issue.
9414
+ */
9415
+ export function defaultSampleForDate(center: string, family: string, year: number, month: number, day: number): string;
9416
+
9364
9417
  /**
9365
9418
  * Default scenario seed as a hexadecimal string.
9366
9419
  */
@@ -10533,6 +10586,11 @@ export function melbourneWubbena(phi1_cycles: number, phi2_cycles: number, p1_m:
10533
10586
  */
10534
10587
  export function mergeNavcen(records: any, statuses: any): any;
10535
10588
 
10589
+ /**
10590
+ * Merge time-aware NAVCEN assessments into records by PRN.
10591
+ */
10592
+ export function mergeNavcenAt(records: any, assessments: any): any;
10593
+
10536
10594
  /**
10537
10595
  * Merge SP3 products with the core consensus merge path.
10538
10596
  *
@@ -10862,6 +10920,11 @@ export function parseCdmKvn(text: string): Cdm;
10862
10920
  */
10863
10921
  export function parseCdmXml(text: string): Cdm;
10864
10922
 
10923
+ /**
10924
+ * Parse and exact-validate SP3 bytes, returning both product and coverage.
10925
+ */
10926
+ export function parseExactSp3(bytes: Uint8Array, request: ExactSp3Request): ExactSp3ParseResult;
10927
+
10865
10928
  /**
10866
10929
  * Parse NAVCEN's GPS constellation status HTML into status rows.
10867
10930
  *
@@ -10870,6 +10933,13 @@ export function parseCdmXml(text: string): Cdm;
10870
10933
  */
10871
10934
  export function parseNavcen(html: string): any;
10872
10935
 
10936
+ /**
10937
+ * Parse NAVCEN status HTML and evaluate usability at explicit UTC Unix
10938
+ * microseconds. Parsed intervals are half-open; ambiguous forecasts are
10939
+ * retained without disabling the satellite.
10940
+ */
10941
+ export function parseNavcenAt(html: string, evaluated_at_unix_us: bigint): any;
10942
+
10873
10943
  /**
10874
10944
  * Parse NMEA sentences from bytes.
10875
10945
  */
@@ -11090,10 +11160,19 @@ export function predictBatchSp3(sp3: Sp3, satellites: string[], receivers_ecef_m
11090
11160
  export function prepareIonosphereFreeRtkArc(epochs: RtkDualFrequencyArcEpoch[], wide_lane_cycles: Record<string, number>, config: RtkIonosphereFreeArcConfig): RtkIonosphereFreeArcResult;
11091
11161
 
11092
11162
  /**
11093
- * Resolve an exact catalog product independently from distributor.
11163
+ * Resolve an exact catalog product independently from distributor. When the
11164
+ * sample is omitted, ultra-rapid issue-level cadence transitions are applied.
11094
11165
  */
11095
11166
  export function productIdentity(center: string, family: string, year: number, month: number, day: number, sample?: string | null, issue?: string | null): GnssProductIdentity;
11096
11167
 
11168
+ /**
11169
+ * Return the catalog solution class for one center/product family.
11170
+ *
11171
+ * This product-aware query distinguishes IGS combined final SP3 (`final`)
11172
+ * from IGS broadcast navigation (`broadcast`).
11173
+ */
11174
+ export function productSolutionClass(center: string, family: string): string;
11175
+
11097
11176
  /**
11098
11177
  * Propagate a fleet of already-initialized [`Tle`]s over a shared epoch grid in
11099
11178
  * a single call: the batched form of [`Tle.propagate`].
@@ -11999,6 +12078,11 @@ export function validate(records: any): any;
11999
12078
  */
12000
12079
  export function validateAgainstSp3Ids(records: any, ids: any): any;
12001
12080
 
12081
+ /**
12082
+ * Validate an already parsed SP3 product against an exact request.
12083
+ */
12084
+ export function validateExactSp3(product: Sp3, request: ExactSp3Request): ExactSp3Coverage;
12085
+
12002
12086
  /**
12003
12087
  * Blend a first good post-outage fix back over an outage span.
12004
12088
  */