@neilberkman/sidereon 0.32.0 → 0.34.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.
@@ -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
  */
@@ -7304,6 +7346,23 @@ export class Sp3ClockReferenceOffset {
7304
7346
  readonly satellites: number;
7305
7347
  }
7306
7348
 
7349
+ /**
7350
+ * Cataloged relationship between an SP3 filename epoch and its first content
7351
+ * epoch.
7352
+ *
7353
+ * New values may be appended in later interface releases.
7354
+ */
7355
+ export enum Sp3ContentStartConvention {
7356
+ /**
7357
+ * The first content epoch equals the filename epoch.
7358
+ */
7359
+ FilenameEpoch = 0,
7360
+ /**
7361
+ * The first content epoch is exactly 24 hours before the filename epoch.
7362
+ */
7363
+ FilenameEpochMinusOneDay = 1,
7364
+ }
7365
+
7307
7366
  /**
7308
7367
  * One coordinate-label reconciliation applied before SP3 merge consensus.
7309
7368
  */
@@ -8007,7 +8066,7 @@ export class StaticSolution {
8007
8066
  /**
8008
8067
  * Post-fit residuals as `{ epochIndex, satelliteId, residualM, ... }[]`.
8009
8068
  */
8010
- readonly residuals: PppResidual[];
8069
+ readonly residuals: any;
8011
8070
  /**
8012
8071
  * Full state covariance, flat row-major square matrix in square metres.
8013
8072
  */
@@ -8709,7 +8768,7 @@ export class TrackFilterConfig {
8709
8768
  /**
8710
8769
  * Build a no-IMU track filter config from a JS object.
8711
8770
  */
8712
- constructor(config: FusionConfig);
8771
+ constructor(config: any);
8713
8772
  toObject(): any;
8714
8773
  readonly dimension: number;
8715
8774
  readonly frame: string;
@@ -8721,7 +8780,7 @@ export class TrackRtsHistory {
8721
8780
  free(): void;
8722
8781
  [Symbol.dispose](): void;
8723
8782
  readonly epochCount: number;
8724
- readonly epochs: FusionRtsEpoch[];
8783
+ readonly epochs: any;
8725
8784
  }
8726
8785
 
8727
8786
  export class TrackRtsHistoryBuilder {
@@ -9361,6 +9420,17 @@ export function decodeSsr(bytes: Uint8Array, framed?: boolean | null): any;
9361
9420
  */
9362
9421
  export function defaultPair(system: GnssSystem): CarrierPair | undefined;
9363
9422
 
9423
+ /**
9424
+ * Return the officially cataloged default sampling token for a product date.
9425
+ *
9426
+ * Unlike the legacy date-free default, this preserves historical cadence
9427
+ * changes such as the GFZ rapid and ultra-rapid transitions. On ESA
9428
+ * ultra-rapid's issue-level transition date this reports the `0000`/
9429
+ * start-of-day default; [`productIdentity`](product_identity) also considers
9430
+ * the requested issue.
9431
+ */
9432
+ export function defaultSampleForDate(center: string, family: string, year: number, month: number, day: number): string;
9433
+
9364
9434
  /**
9365
9435
  * Default scenario seed as a hexadecimal string.
9366
9436
  */
@@ -10867,6 +10937,11 @@ export function parseCdmKvn(text: string): Cdm;
10867
10937
  */
10868
10938
  export function parseCdmXml(text: string): Cdm;
10869
10939
 
10940
+ /**
10941
+ * Parse and exact-validate SP3 bytes, returning both product and coverage.
10942
+ */
10943
+ export function parseExactSp3(bytes: Uint8Array, request: ExactSp3Request): ExactSp3ParseResult;
10944
+
10870
10945
  /**
10871
10946
  * Parse NAVCEN's GPS constellation status HTML into status rows.
10872
10947
  *
@@ -11102,10 +11177,19 @@ export function predictBatchSp3(sp3: Sp3, satellites: string[], receivers_ecef_m
11102
11177
  export function prepareIonosphereFreeRtkArc(epochs: RtkDualFrequencyArcEpoch[], wide_lane_cycles: Record<string, number>, config: RtkIonosphereFreeArcConfig): RtkIonosphereFreeArcResult;
11103
11178
 
11104
11179
  /**
11105
- * Resolve an exact catalog product independently from distributor.
11180
+ * Resolve an exact catalog product independently from distributor. When the
11181
+ * sample is omitted, ultra-rapid issue-level cadence transitions are applied.
11106
11182
  */
11107
11183
  export function productIdentity(center: string, family: string, year: number, month: number, day: number, sample?: string | null, issue?: string | null): GnssProductIdentity;
11108
11184
 
11185
+ /**
11186
+ * Return the catalog solution class for one center/product family.
11187
+ *
11188
+ * This product-aware query distinguishes IGS combined final SP3 (`final`)
11189
+ * from IGS broadcast navigation (`broadcast`).
11190
+ */
11191
+ export function productSolutionClass(center: string, family: string): string;
11192
+
11109
11193
  /**
11110
11194
  * Propagate a fleet of already-initialized [`Tle`]s over a shared epoch grid in
11111
11195
  * a single call: the batched form of [`Tle.propagate`].
@@ -11744,6 +11828,25 @@ export function sourceSolveModeTdoa(reference_sensor: number): any;
11744
11828
  */
11745
11829
  export function sourceSolveModeToa(): string;
11746
11830
 
11831
+ /**
11832
+ * Return the cataloged relationship between an SP3 filename epoch and its
11833
+ * first content epoch.
11834
+ *
11835
+ * `issue` is required for ultra-rapid centers, must name a published issue,
11836
+ * and must be omitted for product lines without issue times. Exact requests
11837
+ * built with `ExactSp3Request.fromIdentity` apply this same catalog fact.
11838
+ */
11839
+ export function sp3ContentStartConvention(center: string, year: number, month: number, day: number, issue?: string | null): Sp3ContentStartConvention;
11840
+
11841
+ /**
11842
+ * Return the signed whole seconds added to the filename epoch for a public
11843
+ * content-start convention.
11844
+ *
11845
+ * JavaScript receives the `i64` result as a `bigint`, consistent with other
11846
+ * exact integral values in this interface.
11847
+ */
11848
+ export function sp3ContentStartOffsetSeconds(convention: Sp3ContentStartConvention): bigint;
11849
+
11747
11850
  /**
11748
11851
  * Validate complete exact artifact records and return their canonical merge
11749
11852
  * input identity.
@@ -11867,6 +11970,18 @@ export function sunMoonEcef(epochs_unix_us: BigInt64Array): SunMoon;
11867
11970
  */
11868
11971
  export function sunMoonEci(epochs_unix_us: BigInt64Array): SunMoon;
11869
11972
 
11973
+ /**
11974
+ * Return every officially cataloged sampling token for a product date and
11975
+ * issue.
11976
+ *
11977
+ * Syntax alone is not publication evidence: this is the complete catalog set
11978
+ * enforced by [`productIdentity`](product_identity). For issue-based product
11979
+ * lines, omitting `issue` selects `0000`, matching
11980
+ * [`defaultSampleForDate`](default_sample_for_date). Product construction
11981
+ * itself still requires an explicit issue.
11982
+ */
11983
+ export function supportedSamples(center: string, family: string, year: number, month: number, day: number, issue?: string | null): string[];
11984
+
11870
11985
  /**
11871
11986
  * TAI-UTC (cumulative leap seconds) in effect on a UTC calendar date.
11872
11987
  *
@@ -12011,6 +12126,11 @@ export function validate(records: any): any;
12011
12126
  */
12012
12127
  export function validateAgainstSp3Ids(records: any, ids: any): any;
12013
12128
 
12129
+ /**
12130
+ * Validate an already parsed SP3 product against an exact request.
12131
+ */
12132
+ export function validateExactSp3(product: Sp3, request: ExactSp3Request): ExactSp3Coverage;
12133
+
12014
12134
  /**
12015
12135
  * Blend a first good post-outage fix back over an outage span.
12016
12136
  */