@neilberkman/sidereon 0.16.1 → 0.18.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.
@@ -3545,6 +3545,22 @@ class DgnssSolution {
3545
3545
  if (Symbol.dispose) DgnssSolution.prototype[Symbol.dispose] = DgnssSolution.prototype.free;
3546
3546
  exports.DgnssSolution = DgnssSolution;
3547
3547
 
3548
+ /**
3549
+ * Early-late DLL processing mode for thermal-noise jitter.
3550
+ * @enum {0 | 1}
3551
+ */
3552
+ const DllProcessing = Object.freeze({
3553
+ /**
3554
+ * Coherent early-minus-late processing.
3555
+ */
3556
+ Coherent: 0, "0": "Coherent",
3557
+ /**
3558
+ * Non-coherent early-minus-late power processing with squaring loss.
3559
+ */
3560
+ NonCoherent: 1, "1": "NonCoherent",
3561
+ });
3562
+ exports.DllProcessing = DllProcessing;
3563
+
3548
3564
  /**
3549
3565
  * GNSS dilution-of-precision scalars.
3550
3566
  */
@@ -4328,6 +4344,153 @@ class EllipsoidalHeightM {
4328
4344
  if (Symbol.dispose) EllipsoidalHeightM.prototype[Symbol.dispose] = EllipsoidalHeightM.prototype.free;
4329
4345
  exports.EllipsoidalHeightM = EllipsoidalHeightM;
4330
4346
 
4347
+ /**
4348
+ * Contiguous state and media-correction arrays from one emission batch.
4349
+ */
4350
+ class EmissionMediaBatch {
4351
+ static __wrap(ptr) {
4352
+ const obj = Object.create(EmissionMediaBatch.prototype);
4353
+ obj.__wbg_ptr = ptr;
4354
+ EmissionMediaBatchFinalization.register(obj, obj.__wbg_ptr, obj);
4355
+ return obj;
4356
+ }
4357
+ __destroy_into_raw() {
4358
+ const ptr = this.__wbg_ptr;
4359
+ this.__wbg_ptr = 0;
4360
+ EmissionMediaBatchFinalization.unregister(this);
4361
+ return ptr;
4362
+ }
4363
+ free() {
4364
+ const ptr = this.__destroy_into_raw();
4365
+ wasm.__wbg_emissionmediabatch_free(ptr, 0);
4366
+ }
4367
+ /**
4368
+ * Satellite clock offsets in seconds, with `NaN` for unavailable rows.
4369
+ * @returns {Float64Array}
4370
+ */
4371
+ get clockS() {
4372
+ const ret = wasm.emissionmediabatch_clockS(this.__wbg_ptr);
4373
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
4374
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
4375
+ return v1;
4376
+ }
4377
+ /**
4378
+ * Number of satellite rows in the batch.
4379
+ * @returns {number}
4380
+ */
4381
+ get count() {
4382
+ const ret = wasm.emissionmediabatch_count(this.__wbg_ptr);
4383
+ return ret >>> 0;
4384
+ }
4385
+ /**
4386
+ * Per-row success and error messages as `{ ok, error }[]`.
4387
+ * @returns {any}
4388
+ */
4389
+ get elementResults() {
4390
+ const ret = wasm.emissionmediabatch_elementResults(this.__wbg_ptr);
4391
+ if (ret[2]) {
4392
+ throw takeFromExternrefTable0(ret[1]);
4393
+ }
4394
+ return takeFromExternrefTable0(ret[0]);
4395
+ }
4396
+ /**
4397
+ * Error message for row `index`, or `undefined` when the row has no error.
4398
+ * @param {number} index
4399
+ * @returns {string | undefined}
4400
+ */
4401
+ error(index) {
4402
+ const ret = wasm.emissionmediabatch_error(this.__wbg_ptr, index);
4403
+ if (ret[3]) {
4404
+ throw takeFromExternrefTable0(ret[2]);
4405
+ }
4406
+ let v1;
4407
+ if (ret[0] !== 0) {
4408
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
4409
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
4410
+ }
4411
+ return v1;
4412
+ }
4413
+ /**
4414
+ * Ionospheric slant group delays in metres, with `NaN` for unavailable rows.
4415
+ * @returns {Float64Array}
4416
+ */
4417
+ get ionosphereSlantDelayM() {
4418
+ const ret = wasm.emissionmediabatch_ionosphereSlantDelayM(this.__wbg_ptr);
4419
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
4420
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
4421
+ return v1;
4422
+ }
4423
+ /**
4424
+ * Satellite ECEF positions as flat `[x0, y0, z0, ...]`, metres.
4425
+ *
4426
+ * Rows without a usable position are filled with `NaN`; check `statuses`
4427
+ * before consuming the corresponding row.
4428
+ * @returns {Float64Array}
4429
+ */
4430
+ get positionEcefM() {
4431
+ const ret = wasm.emissionmediabatch_positionEcefM(this.__wbg_ptr);
4432
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
4433
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
4434
+ return v1;
4435
+ }
4436
+ /**
4437
+ * Per-row status labels, index-aligned with the numeric arrays.
4438
+ * @returns {string[]}
4439
+ */
4440
+ get statusLabels() {
4441
+ const ret = wasm.emissionmediabatch_statusLabels(this.__wbg_ptr);
4442
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
4443
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
4444
+ return v1;
4445
+ }
4446
+ /**
4447
+ * Per-row typed status values, index-aligned with the numeric arrays.
4448
+ * @returns {any[]}
4449
+ */
4450
+ get statuses() {
4451
+ const ret = wasm.emissionmediabatch_statuses(this.__wbg_ptr);
4452
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
4453
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
4454
+ return v1;
4455
+ }
4456
+ /**
4457
+ * Tropospheric slant delays in metres, with `NaN` for unavailable rows.
4458
+ * @returns {Float64Array}
4459
+ */
4460
+ get troposphereDelayM() {
4461
+ const ret = wasm.emissionmediabatch_troposphereDelayM(this.__wbg_ptr);
4462
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
4463
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
4464
+ return v1;
4465
+ }
4466
+ }
4467
+ if (Symbol.dispose) EmissionMediaBatch.prototype[Symbol.dispose] = EmissionMediaBatch.prototype.free;
4468
+ exports.EmissionMediaBatch = EmissionMediaBatch;
4469
+
4470
+ /**
4471
+ * Per-satellite status for an emission media batch row.
4472
+ * @enum {0 | 1 | 2 | 3}
4473
+ */
4474
+ const EmissionMediaStatus = Object.freeze({
4475
+ /**
4476
+ * State, clock, and requested media corrections were produced.
4477
+ */
4478
+ Valid: 0, "0": "Valid",
4479
+ /**
4480
+ * The ephemeris product has no usable state for this satellite and epoch.
4481
+ */
4482
+ Gap: 1, "1": "Gap",
4483
+ /**
4484
+ * A state was available, but elevation was below the requested cutoff.
4485
+ */
4486
+ BelowElevationCutoff: 2, "2": "BelowElevationCutoff",
4487
+ /**
4488
+ * A non-gap scalar evaluation error occurred.
4489
+ */
4490
+ Error: 3, "3": "Error",
4491
+ });
4492
+ exports.EmissionMediaStatus = EmissionMediaStatus;
4493
+
4331
4494
  /**
4332
4495
  * Orthonormal encounter frame built from two relative states.
4333
4496
  */
@@ -4953,6 +5116,205 @@ const GeodesicError = Object.freeze({
4953
5116
  });
4954
5117
  exports.GeodesicError = GeodesicError;
4955
5118
 
5119
+ /**
5120
+ * A geodesic polygon fence on WGS84.
5121
+ */
5122
+ class Geofence {
5123
+ static __wrap(ptr) {
5124
+ const obj = Object.create(Geofence.prototype);
5125
+ obj.__wbg_ptr = ptr;
5126
+ GeofenceFinalization.register(obj, obj.__wbg_ptr, obj);
5127
+ return obj;
5128
+ }
5129
+ __destroy_into_raw() {
5130
+ const ptr = this.__wbg_ptr;
5131
+ this.__wbg_ptr = 0;
5132
+ GeofenceFinalization.unregister(this);
5133
+ return ptr;
5134
+ }
5135
+ free() {
5136
+ const ptr = this.__destroy_into_raw();
5137
+ wasm.__wbg_geofence_free(ptr, 0);
5138
+ }
5139
+ /**
5140
+ * Containment probability for one position and uncertainty object.
5141
+ *
5142
+ * `uncertainty.kind` is one of `"enuCovarianceM2"`, `"ecefCovarianceM2"`,
5143
+ * `"cepRadiusM"`, or `"horizontalRadius"`. `options.method` is
5144
+ * `"boundaryNormal"` or `"planarQuadrature"`.
5145
+ * @param {number} lat_rad
5146
+ * @param {number} lon_rad
5147
+ * @param {number} height_m
5148
+ * @param {any} uncertainty_value
5149
+ * @param {any} options
5150
+ * @returns {number}
5151
+ */
5152
+ containmentProbability(lat_rad, lon_rad, height_m, uncertainty_value, options) {
5153
+ const ret = wasm.geofence_containmentProbability(this.__wbg_ptr, lat_rad, lon_rad, height_m, uncertainty_value, options);
5154
+ if (ret[2]) {
5155
+ throw takeFromExternrefTable0(ret[1]);
5156
+ }
5157
+ return ret[0];
5158
+ }
5159
+ /**
5160
+ * Boolean containment for one WGS84 geodetic position.
5161
+ * @param {number} lat_rad
5162
+ * @param {number} lon_rad
5163
+ * @param {number} height_m
5164
+ * @returns {boolean}
5165
+ */
5166
+ contains(lat_rad, lon_rad, height_m) {
5167
+ const ret = wasm.geofence_contains(this.__wbg_ptr, lat_rad, lon_rad, height_m);
5168
+ if (ret[2]) {
5169
+ throw takeFromExternrefTable0(ret[1]);
5170
+ }
5171
+ return ret[0] !== 0;
5172
+ }
5173
+ /**
5174
+ * Probabilistic crossing detection over geodetic position estimates.
5175
+ *
5176
+ * `samples` is an array of `{ latRad, lonRad, heightM?, uncertainty }`.
5177
+ * `options.enterConfidence` and `options.leaveConfidence` configure
5178
+ * hysteresis; absent values use the core defaults.
5179
+ * @param {any} samples
5180
+ * @param {any} options
5181
+ * @returns {any}
5182
+ */
5183
+ crossingProbability(samples, options) {
5184
+ const ret = wasm.geofence_crossingProbability(this.__wbg_ptr, samples, options);
5185
+ if (ret[2]) {
5186
+ throw takeFromExternrefTable0(ret[1]);
5187
+ }
5188
+ return takeFromExternrefTable0(ret[0]);
5189
+ }
5190
+ /**
5191
+ * Signed distance to the fence boundary in metres.
5192
+ * @param {number} lat_rad
5193
+ * @param {number} lon_rad
5194
+ * @param {number} height_m
5195
+ * @returns {number}
5196
+ */
5197
+ distanceToBoundary(lat_rad, lon_rad, height_m) {
5198
+ const ret = wasm.geofence_distanceToBoundary(this.__wbg_ptr, lat_rad, lon_rad, height_m);
5199
+ if (ret[2]) {
5200
+ throw takeFromExternrefTable0(ret[1]);
5201
+ }
5202
+ return ret[0];
5203
+ }
5204
+ /**
5205
+ * Number of polygon edges.
5206
+ * @returns {number}
5207
+ */
5208
+ get edgeCount() {
5209
+ const ret = wasm.geofence_edgeCount(this.__wbg_ptr);
5210
+ return ret >>> 0;
5211
+ }
5212
+ /**
5213
+ * Construct a geodesic WGS84 polygon from flat 2D radian vertices.
5214
+ *
5215
+ * `vertices` is `[latRad, lonRad, ...]`. Use `geofenceFromVertices3d`
5216
+ * for `[latRad, lonRad, heightM, ...]` rows.
5217
+ * @param {Float64Array} vertices
5218
+ */
5219
+ constructor(vertices) {
5220
+ const ptr0 = passArrayF64ToWasm0(vertices, wasm.__wbindgen_malloc);
5221
+ const len0 = WASM_VECTOR_LEN;
5222
+ const ret = wasm.geofence_new(ptr0, len0);
5223
+ if (ret[2]) {
5224
+ throw takeFromExternrefTable0(ret[1]);
5225
+ }
5226
+ this.__wbg_ptr = ret[0];
5227
+ GeofenceFinalization.register(this, this.__wbg_ptr, this);
5228
+ return this;
5229
+ }
5230
+ /**
5231
+ * Whether the core small-region planar path can evaluate this position.
5232
+ * @param {number} lat_rad
5233
+ * @param {number} lon_rad
5234
+ * @param {number} height_m
5235
+ * @returns {boolean}
5236
+ */
5237
+ planarFastPathApplies(lat_rad, lon_rad, height_m) {
5238
+ const ret = wasm.geofence_planarFastPathApplies(this.__wbg_ptr, lat_rad, lon_rad, height_m);
5239
+ if (ret[2]) {
5240
+ throw takeFromExternrefTable0(ret[1]);
5241
+ }
5242
+ return ret[0] !== 0;
5243
+ }
5244
+ /**
5245
+ * Fence vertices in open-polygon form as flat `[latRad, lonRad, heightM]` rows.
5246
+ * @returns {Float64Array}
5247
+ */
5248
+ get vertices() {
5249
+ const ret = wasm.geofence_vertices(this.__wbg_ptr);
5250
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
5251
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
5252
+ return v1;
5253
+ }
5254
+ }
5255
+ if (Symbol.dispose) Geofence.prototype[Symbol.dispose] = Geofence.prototype.free;
5256
+ exports.Geofence = Geofence;
5257
+
5258
+ /**
5259
+ * Geofence crossing event direction.
5260
+ * @enum {0 | 1}
5261
+ */
5262
+ const GeofenceCrossingKind = Object.freeze({
5263
+ /**
5264
+ * The sample sequence entered the fence.
5265
+ */
5266
+ Entered: 0, "0": "Entered",
5267
+ /**
5268
+ * The sample sequence left the fence.
5269
+ */
5270
+ Left: 1, "1": "Left",
5271
+ });
5272
+ exports.GeofenceCrossingKind = GeofenceCrossingKind;
5273
+
5274
+ /**
5275
+ * Geofence construction and evaluation error variants.
5276
+ * @enum {0 | 1 | 2 | 3 | 4}
5277
+ */
5278
+ const GeofenceError = Object.freeze({
5279
+ /**
5280
+ * Fewer than three distinct vertices were supplied.
5281
+ */
5282
+ TooFewVertices: 0, "0": "TooFewVertices",
5283
+ /**
5284
+ * A geofence input value was outside its domain.
5285
+ */
5286
+ InvalidInput: 1, "1": "InvalidInput",
5287
+ /**
5288
+ * The geodesic direct or inverse calculation failed.
5289
+ */
5290
+ Geodesic: 2, "2": "Geodesic",
5291
+ /**
5292
+ * ECEF covariance rotation failed.
5293
+ */
5294
+ Dop: 3, "3": "Dop",
5295
+ /**
5296
+ * Covariance or radius validation failed.
5297
+ */
5298
+ ErrorMetrics: 4, "4": "ErrorMetrics",
5299
+ });
5300
+ exports.GeofenceError = GeofenceError;
5301
+
5302
+ /**
5303
+ * Probability integration method for geofence uncertainty.
5304
+ * @enum {0 | 1}
5305
+ */
5306
+ const GeofenceProbabilityMethod = Object.freeze({
5307
+ /**
5308
+ * Gaussian half-space approximation from boundary distance and normal variance.
5309
+ */
5310
+ BoundaryNormal: 0, "0": "BoundaryNormal",
5311
+ /**
5312
+ * Fixed quadrature over the local planarized fence.
5313
+ */
5314
+ PlanarQuadrature: 1, "1": "PlanarQuadrature",
5315
+ });
5316
+ exports.GeofenceProbabilityMethod = GeofenceProbabilityMethod;
5317
+
4956
5318
  /**
4957
5319
  * A regular latitude/longitude grid of geoid undulation samples with bilinear
4958
5320
  * interpolation, wrapping a real (loaded) geoid model.
@@ -5367,6 +5729,230 @@ class GlonassRecordJs {
5367
5729
  if (Symbol.dispose) GlonassRecordJs.prototype[Symbol.dispose] = GlonassRecordJs.prototype.free;
5368
5730
  exports.GlonassRecordJs = GlonassRecordJs;
5369
5731
 
5732
+ /**
5733
+ * Stateful GNSS/INS filter resource.
5734
+ */
5735
+ class GnssInsFilter {
5736
+ static __wrap(ptr) {
5737
+ const obj = Object.create(GnssInsFilter.prototype);
5738
+ obj.__wbg_ptr = ptr;
5739
+ GnssInsFilterFinalization.register(obj, obj.__wbg_ptr, obj);
5740
+ return obj;
5741
+ }
5742
+ __destroy_into_raw() {
5743
+ const ptr = this.__wbg_ptr;
5744
+ this.__wbg_ptr = 0;
5745
+ GnssInsFilterFinalization.unregister(this);
5746
+ return ptr;
5747
+ }
5748
+ free() {
5749
+ const ptr = this.__destroy_into_raw();
5750
+ wasm.__wbg_gnssinsfilter_free(ptr, 0);
5751
+ }
5752
+ /**
5753
+ * Replace retained-history capacities for later time-sync replay.
5754
+ * @param {any} config
5755
+ */
5756
+ configureTimeSync(config) {
5757
+ const ret = wasm.gnssinsfilter_configureTimeSync(this.__wbg_ptr, config);
5758
+ if (ret[1]) {
5759
+ throw takeFromExternrefTable0(ret[0]);
5760
+ }
5761
+ }
5762
+ /**
5763
+ * Encode the current fusion state with the core versioned binary codec.
5764
+ * @returns {Uint8Array}
5765
+ */
5766
+ encodeState() {
5767
+ const ret = wasm.gnssinsfilter_encodeState(this.__wbg_ptr);
5768
+ if (ret[3]) {
5769
+ throw takeFromExternrefTable0(ret[2]);
5770
+ }
5771
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
5772
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
5773
+ return v1;
5774
+ }
5775
+ /**
5776
+ * Build a filter, then restore its state from versioned fusion-state bytes.
5777
+ * @param {any} config
5778
+ * @param {Uint8Array} bytes
5779
+ * @returns {GnssInsFilter}
5780
+ */
5781
+ static fromStateBytes(config, bytes) {
5782
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
5783
+ const len0 = WASM_VECTOR_LEN;
5784
+ const ret = wasm.gnssinsfilter_fromStateBytes(config, ptr0, len0);
5785
+ if (ret[2]) {
5786
+ throw takeFromExternrefTable0(ret[1]);
5787
+ }
5788
+ return GnssInsFilter.__wrap(ret[0]);
5789
+ }
5790
+ /**
5791
+ * Build a filter from a JS configuration object.
5792
+ * @param {any} config
5793
+ */
5794
+ constructor(config) {
5795
+ const ret = wasm.gnssinsfilter_new(config);
5796
+ if (ret[2]) {
5797
+ throw takeFromExternrefTable0(ret[1]);
5798
+ }
5799
+ this.__wbg_ptr = ret[0];
5800
+ GnssInsFilterFinalization.register(this, this.__wbg_ptr, this);
5801
+ return this;
5802
+ }
5803
+ /**
5804
+ * Propagate the filter with one IMU rate or increment sample.
5805
+ * @param {any} sample
5806
+ * @returns {any}
5807
+ */
5808
+ propagate(sample) {
5809
+ const ret = wasm.gnssinsfilter_propagate(this.__wbg_ptr, sample);
5810
+ if (ret[2]) {
5811
+ throw takeFromExternrefTable0(ret[1]);
5812
+ }
5813
+ return takeFromExternrefTable0(ret[0]);
5814
+ }
5815
+ /**
5816
+ * Propagate the filter with a JS array of IMU samples.
5817
+ * @param {any} samples
5818
+ * @returns {any}
5819
+ */
5820
+ propagateBatch(samples) {
5821
+ const ret = wasm.gnssinsfilter_propagateBatch(this.__wbg_ptr, samples);
5822
+ if (ret[2]) {
5823
+ throw takeFromExternrefTable0(ret[1]);
5824
+ }
5825
+ return takeFromExternrefTable0(ret[0]);
5826
+ }
5827
+ /**
5828
+ * Restore this filter from versioned fusion-state bytes.
5829
+ * @param {Uint8Array} bytes
5830
+ */
5831
+ restoreState(bytes) {
5832
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
5833
+ const len0 = WASM_VECTOR_LEN;
5834
+ const ret = wasm.gnssinsfilter_restoreState(this.__wbg_ptr, ptr0, len0);
5835
+ if (ret[1]) {
5836
+ throw takeFromExternrefTable0(ret[0]);
5837
+ }
5838
+ }
5839
+ /**
5840
+ * Current INS state, covariance, and last body-rate diagnostic.
5841
+ * @returns {any}
5842
+ */
5843
+ state() {
5844
+ const ret = wasm.gnssinsfilter_state(this.__wbg_ptr);
5845
+ if (ret[2]) {
5846
+ throw takeFromExternrefTable0(ret[1]);
5847
+ }
5848
+ return takeFromExternrefTable0(ret[0]);
5849
+ }
5850
+ /**
5851
+ * Current tight-coupling receiver-clock state.
5852
+ * @returns {any}
5853
+ */
5854
+ tightClockState() {
5855
+ const ret = wasm.gnssinsfilter_tightClockState(this.__wbg_ptr);
5856
+ if (ret[2]) {
5857
+ throw takeFromExternrefTable0(ret[1]);
5858
+ }
5859
+ return takeFromExternrefTable0(ret[0]);
5860
+ }
5861
+ /**
5862
+ * Current retained-history capacity and occupancy.
5863
+ * @returns {any}
5864
+ */
5865
+ timeSyncStatus() {
5866
+ const ret = wasm.gnssinsfilter_timeSyncStatus(this.__wbg_ptr);
5867
+ if (ret[2]) {
5868
+ throw takeFromExternrefTable0(ret[1]);
5869
+ }
5870
+ return takeFromExternrefTable0(ret[0]);
5871
+ }
5872
+ /**
5873
+ * Apply a loose position or position-velocity GNSS fix at the current epoch.
5874
+ * @param {any} measurement
5875
+ * @returns {any}
5876
+ */
5877
+ updateLoose(measurement) {
5878
+ const ret = wasm.gnssinsfilter_updateLoose(this.__wbg_ptr, measurement);
5879
+ if (ret[2]) {
5880
+ throw takeFromExternrefTable0(ret[1]);
5881
+ }
5882
+ return takeFromExternrefTable0(ret[0]);
5883
+ }
5884
+ /**
5885
+ * Apply a loose GNSS fix, replaying retained IMU checkpoints when it is late.
5886
+ * @param {any} measurement
5887
+ * @returns {any}
5888
+ */
5889
+ updateLooseTimeSync(measurement) {
5890
+ const ret = wasm.gnssinsfilter_updateLooseTimeSync(this.__wbg_ptr, measurement);
5891
+ if (ret[2]) {
5892
+ throw takeFromExternrefTable0(ret[1]);
5893
+ }
5894
+ return takeFromExternrefTable0(ret[0]);
5895
+ }
5896
+ /**
5897
+ * Apply a tight raw-observation epoch against a broadcast ephemeris source.
5898
+ * @param {BroadcastEphemeris} broadcast
5899
+ * @param {any} epoch
5900
+ * @returns {any}
5901
+ */
5902
+ updateTightBroadcast(broadcast, epoch) {
5903
+ _assertClass(broadcast, BroadcastEphemeris);
5904
+ const ret = wasm.gnssinsfilter_updateTightBroadcast(this.__wbg_ptr, broadcast.__wbg_ptr, epoch);
5905
+ if (ret[2]) {
5906
+ throw takeFromExternrefTable0(ret[1]);
5907
+ }
5908
+ return takeFromExternrefTable0(ret[0]);
5909
+ }
5910
+ /**
5911
+ * Apply a tight broadcast update, replaying retained IMU checkpoints when it is late.
5912
+ * @param {BroadcastEphemeris} broadcast
5913
+ * @param {any} epoch
5914
+ * @returns {any}
5915
+ */
5916
+ updateTightBroadcastTimeSync(broadcast, epoch) {
5917
+ _assertClass(broadcast, BroadcastEphemeris);
5918
+ const ret = wasm.gnssinsfilter_updateTightBroadcastTimeSync(this.__wbg_ptr, broadcast.__wbg_ptr, epoch);
5919
+ if (ret[2]) {
5920
+ throw takeFromExternrefTable0(ret[1]);
5921
+ }
5922
+ return takeFromExternrefTable0(ret[0]);
5923
+ }
5924
+ /**
5925
+ * Apply a tight raw-observation epoch against an SP3 source.
5926
+ * @param {Sp3} sp3
5927
+ * @param {any} epoch
5928
+ * @returns {any}
5929
+ */
5930
+ updateTightSp3(sp3, epoch) {
5931
+ _assertClass(sp3, Sp3);
5932
+ const ret = wasm.gnssinsfilter_updateTightSp3(this.__wbg_ptr, sp3.__wbg_ptr, epoch);
5933
+ if (ret[2]) {
5934
+ throw takeFromExternrefTable0(ret[1]);
5935
+ }
5936
+ return takeFromExternrefTable0(ret[0]);
5937
+ }
5938
+ /**
5939
+ * Apply a tight SP3 update, replaying retained IMU checkpoints when it is late.
5940
+ * @param {Sp3} sp3
5941
+ * @param {any} epoch
5942
+ * @returns {any}
5943
+ */
5944
+ updateTightSp3TimeSync(sp3, epoch) {
5945
+ _assertClass(sp3, Sp3);
5946
+ const ret = wasm.gnssinsfilter_updateTightSp3TimeSync(this.__wbg_ptr, sp3.__wbg_ptr, epoch);
5947
+ if (ret[2]) {
5948
+ throw takeFromExternrefTable0(ret[1]);
5949
+ }
5950
+ return takeFromExternrefTable0(ret[0]);
5951
+ }
5952
+ }
5953
+ if (Symbol.dispose) GnssInsFilter.prototype[Symbol.dispose] = GnssInsFilter.prototype.free;
5954
+ exports.GnssInsFilter = GnssInsFilter;
5955
+
5370
5956
  /**
5371
5957
  * One sampled rise/set/peak visibility pass, from `gnssPasses`.
5372
5958
  */
@@ -12231,33 +12817,154 @@ class PreciseEphemerisSampleSource {
12231
12817
  return takeFromExternrefTable0(ret[0]);
12232
12818
  }
12233
12819
  /**
12234
- * Predict geometric ranges for many requests in one call. See the shared
12235
- * [`predictRanges`](crate::precise_samples::predict_ranges_over) contract;
12236
- * this is the sample-source entry point.
12237
- * @param {any} requests
12238
- * @param {any} options
12239
- * @returns {any}
12820
+ * Predict geometric ranges for many requests in one call. See the shared
12821
+ * [`predictRanges`](crate::precise_samples::predict_ranges_over) contract;
12822
+ * this is the sample-source entry point.
12823
+ * @param {any} requests
12824
+ * @param {any} options
12825
+ * @returns {any}
12826
+ */
12827
+ predictRanges(requests, options) {
12828
+ const ret = wasm.preciseephemerissamplesource_predictRanges(this.__wbg_ptr, requests, options);
12829
+ if (ret[2]) {
12830
+ throw takeFromExternrefTable0(ret[1]);
12831
+ }
12832
+ return takeFromExternrefTable0(ret[0]);
12833
+ }
12834
+ /**
12835
+ * The satellites this source can interpolate (e.g. `"G01"`), ascending.
12836
+ * @returns {string[]}
12837
+ */
12838
+ get satellites() {
12839
+ const ret = wasm.preciseephemerissamplesource_satellites(this.__wbg_ptr);
12840
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
12841
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
12842
+ return v1;
12843
+ }
12844
+ }
12845
+ if (Symbol.dispose) PreciseEphemerisSampleSource.prototype[Symbol.dispose] = PreciseEphemerisSampleSource.prototype.free;
12846
+ exports.PreciseEphemerisSampleSource = PreciseEphemerisSampleSource;
12847
+
12848
+ /**
12849
+ * Evaluable precise-interpolant artifact opened from canonical store bytes.
12850
+ */
12851
+ class PreciseInterpolantArtifact {
12852
+ static __wrap(ptr) {
12853
+ const obj = Object.create(PreciseInterpolantArtifact.prototype);
12854
+ obj.__wbg_ptr = ptr;
12855
+ PreciseInterpolantArtifactFinalization.register(obj, obj.__wbg_ptr, obj);
12856
+ return obj;
12857
+ }
12858
+ __destroy_into_raw() {
12859
+ const ptr = this.__wbg_ptr;
12860
+ this.__wbg_ptr = 0;
12861
+ PreciseInterpolantArtifactFinalization.unregister(this);
12862
+ return ptr;
12863
+ }
12864
+ free() {
12865
+ const ptr = this.__destroy_into_raw();
12866
+ wasm.__wbg_preciseinterpolantartifact_free(ptr, 0);
12867
+ }
12868
+ /**
12869
+ * Number of bytes retained by this artifact handle.
12870
+ * @returns {number}
12871
+ */
12872
+ get byteLength() {
12873
+ const ret = wasm.preciseinterpolantartifact_byteLength(this.__wbg_ptr);
12874
+ return ret >>> 0;
12875
+ }
12876
+ /**
12877
+ * File-level artifact checksum.
12878
+ * @returns {bigint}
12879
+ */
12880
+ get checksum64() {
12881
+ const ret = wasm.preciseinterpolantartifact_checksum64(this.__wbg_ptr);
12882
+ return BigInt.asUintN(64, ret);
12883
+ }
12884
+ /**
12885
+ * Evaluate one satellite state at a J2000-second epoch.
12886
+ * @param {string} satellite
12887
+ * @param {number} j2000_seconds
12888
+ * @returns {Sp3State}
12889
+ */
12890
+ evaluate(satellite, j2000_seconds) {
12891
+ const ptr0 = passStringToWasm0(satellite, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
12892
+ const len0 = WASM_VECTOR_LEN;
12893
+ const ret = wasm.preciseinterpolantartifact_evaluate(this.__wbg_ptr, ptr0, len0, j2000_seconds);
12894
+ if (ret[2]) {
12895
+ throw takeFromExternrefTable0(ret[1]);
12896
+ }
12897
+ return Sp3State.__wrap(ret[0]);
12898
+ }
12899
+ /**
12900
+ * Satellite tokens present in the artifact, ascending.
12901
+ * @returns {string[]}
12902
+ */
12903
+ get satellites() {
12904
+ const ret = wasm.preciseinterpolantartifact_satellites(this.__wbg_ptr);
12905
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
12906
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
12907
+ return v1;
12908
+ }
12909
+ /**
12910
+ * Artifact time scale label from the stored epoch axis.
12911
+ * @returns {string}
12912
+ */
12913
+ get timeScale() {
12914
+ let deferred1_0;
12915
+ let deferred1_1;
12916
+ try {
12917
+ const ret = wasm.preciseinterpolantartifact_timeScale(this.__wbg_ptr);
12918
+ deferred1_0 = ret[0];
12919
+ deferred1_1 = ret[1];
12920
+ return getStringFromWasm0(ret[0], ret[1]);
12921
+ } finally {
12922
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
12923
+ }
12924
+ }
12925
+ }
12926
+ if (Symbol.dispose) PreciseInterpolantArtifact.prototype[Symbol.dispose] = PreciseInterpolantArtifact.prototype.free;
12927
+ exports.PreciseInterpolantArtifact = PreciseInterpolantArtifact;
12928
+
12929
+ /**
12930
+ * Error category for precise-interpolant artifact open or serialization.
12931
+ * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7}
12932
+ */
12933
+ const PreciseInterpolantArtifactError = Object.freeze({
12934
+ /**
12935
+ * File I/O failed in the core artifact API.
12936
+ */
12937
+ Io: 0, "0": "Io",
12938
+ /**
12939
+ * Artifact bytes could not be parsed.
12940
+ */
12941
+ Parse: 1, "1": "Parse",
12942
+ /**
12943
+ * The artifact version tag is unsupported.
12944
+ */
12945
+ UnsupportedVersion: 2, "2": "UnsupportedVersion",
12946
+ /**
12947
+ * The artifact time-scale tag is unsupported.
12948
+ */
12949
+ UnsupportedTimeScale: 3, "3": "UnsupportedTimeScale",
12950
+ /**
12951
+ * A satellite-system tag is unsupported.
12952
+ */
12953
+ UnsupportedSatelliteSystem: 4, "4": "UnsupportedSatelliteSystem",
12954
+ /**
12955
+ * A satellite appears more than once in the artifact index.
12956
+ */
12957
+ DuplicateSatellite: 5, "5": "DuplicateSatellite",
12958
+ /**
12959
+ * The artifact file-level checksum did not match.
12240
12960
  */
12241
- predictRanges(requests, options) {
12242
- const ret = wasm.preciseephemerissamplesource_predictRanges(this.__wbg_ptr, requests, options);
12243
- if (ret[2]) {
12244
- throw takeFromExternrefTable0(ret[1]);
12245
- }
12246
- return takeFromExternrefTable0(ret[0]);
12247
- }
12961
+ Checksum: 6, "6": "Checksum",
12248
12962
  /**
12249
- * The satellites this source can interpolate (e.g. `"G01"`), ascending.
12250
- * @returns {string[]}
12963
+ * A satellite payload checksum did not match its index record.
12251
12964
  */
12252
- get satellites() {
12253
- const ret = wasm.preciseephemerissamplesource_satellites(this.__wbg_ptr);
12254
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
12255
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
12256
- return v1;
12257
- }
12258
- }
12259
- if (Symbol.dispose) PreciseEphemerisSampleSource.prototype[Symbol.dispose] = PreciseEphemerisSampleSource.prototype.free;
12260
- exports.PreciseEphemerisSampleSource = PreciseEphemerisSampleSource;
12965
+ SatelliteChecksum: 7, "7": "SatelliteChecksum",
12966
+ });
12967
+ exports.PreciseInterpolantArtifactError = PreciseInterpolantArtifactError;
12261
12968
 
12262
12969
  /**
12263
12970
  * The per-request results of a batch observable prediction, index-aligned to
@@ -14352,6 +15059,240 @@ class SbasSisError {
14352
15059
  if (Symbol.dispose) SbasSisError.prototype[Symbol.dispose] = SbasSisError.prototype.free;
14353
15060
  exports.SbasSisError = SbasSisError;
14354
15061
 
15062
+ /**
15063
+ * Stable GNSS signal modulation used by the analysis functions.
15064
+ */
15065
+ class SignalAnalysisModulation {
15066
+ static __wrap(ptr) {
15067
+ const obj = Object.create(SignalAnalysisModulation.prototype);
15068
+ obj.__wbg_ptr = ptr;
15069
+ SignalAnalysisModulationFinalization.register(obj, obj.__wbg_ptr, obj);
15070
+ return obj;
15071
+ }
15072
+ __destroy_into_raw() {
15073
+ const ptr = this.__wbg_ptr;
15074
+ this.__wbg_ptr = 0;
15075
+ SignalAnalysisModulationFinalization.unregister(this);
15076
+ return ptr;
15077
+ }
15078
+ free() {
15079
+ const ptr = this.__destroy_into_raw();
15080
+ wasm.__wbg_signalanalysismodulation_free(ptr, 0);
15081
+ }
15082
+ /**
15083
+ * Normalized in-band autocorrelation at a delay.
15084
+ * @param {number} delay_s
15085
+ * @param {number} receiver_bandwidth_hz
15086
+ * @returns {number}
15087
+ */
15088
+ autocorrelation(delay_s, receiver_bandwidth_hz) {
15089
+ const ret = wasm.signalanalysismodulation_autocorrelation(this.__wbg_ptr, delay_s, receiver_bandwidth_hz);
15090
+ if (ret[2]) {
15091
+ throw takeFromExternrefTable0(ret[1]);
15092
+ }
15093
+ return ret[0];
15094
+ }
15095
+ /**
15096
+ * Build a BPSK(n) modulation, where the code rate is `n * 1.023 MHz`.
15097
+ * @param {number} order
15098
+ * @returns {SignalAnalysisModulation}
15099
+ */
15100
+ static bpsk(order) {
15101
+ const ret = wasm.signalanalysismodulation_bpsk(order);
15102
+ if (ret[2]) {
15103
+ throw takeFromExternrefTable0(ret[1]);
15104
+ }
15105
+ return SignalAnalysisModulation.__wrap(ret[0]);
15106
+ }
15107
+ /**
15108
+ * Build Galileo E1 CBOC(6,1,1/11) with the minus chip-pulse convention.
15109
+ * @returns {SignalAnalysisModulation}
15110
+ */
15111
+ static cboc611Over11Minus() {
15112
+ const ret = wasm.signalanalysismodulation_cboc611Over11Minus();
15113
+ return SignalAnalysisModulation.__wrap(ret);
15114
+ }
15115
+ /**
15116
+ * Build Galileo E1 CBOC(6,1,1/11) with the plus chip-pulse convention.
15117
+ * @returns {SignalAnalysisModulation}
15118
+ */
15119
+ static cboc611Over11Plus() {
15120
+ const ret = wasm.signalanalysismodulation_cboc611Over11Plus();
15121
+ return SignalAnalysisModulation.__wrap(ret);
15122
+ }
15123
+ /**
15124
+ * Code rate in hertz when the modulation has one unambiguous rate.
15125
+ * @returns {number}
15126
+ */
15127
+ get codeRateHz() {
15128
+ const ret = wasm.signalanalysismodulation_codeRateHz(this.__wbg_ptr);
15129
+ if (ret[2]) {
15130
+ throw takeFromExternrefTable0(ret[1]);
15131
+ }
15132
+ return ret[0];
15133
+ }
15134
+ /**
15135
+ * Build a cosine-phased BOC(m,n) modulation.
15136
+ * @param {number} m
15137
+ * @param {number} n
15138
+ * @returns {SignalAnalysisModulation}
15139
+ */
15140
+ static cosineBoc(m, n) {
15141
+ const ret = wasm.signalanalysismodulation_cosineBoc(m, n);
15142
+ if (ret[2]) {
15143
+ throw takeFromExternrefTable0(ret[1]);
15144
+ }
15145
+ return SignalAnalysisModulation.__wrap(ret[0]);
15146
+ }
15147
+ /**
15148
+ * Published lower bound for DLL code-delay jitter.
15149
+ * @param {any} options
15150
+ * @returns {any}
15151
+ */
15152
+ dllLowerBound(options) {
15153
+ const ret = wasm.signalanalysismodulation_dllLowerBound(this.__wbg_ptr, options);
15154
+ if (ret[2]) {
15155
+ throw takeFromExternrefTable0(ret[1]);
15156
+ }
15157
+ return takeFromExternrefTable0(ret[0]);
15158
+ }
15159
+ /**
15160
+ * Early-late DLL thermal-noise jitter for this modulation.
15161
+ * @param {any} options
15162
+ * @param {DllProcessing} processing
15163
+ * @returns {any}
15164
+ */
15165
+ dllThermalNoiseJitter(options, processing) {
15166
+ const ret = wasm.signalanalysismodulation_dllThermalNoiseJitter(this.__wbg_ptr, options, processing);
15167
+ if (ret[2]) {
15168
+ throw takeFromExternrefTable0(ret[1]);
15169
+ }
15170
+ return takeFromExternrefTable0(ret[0]);
15171
+ }
15172
+ /**
15173
+ * Fraction of total signal power inside a two-sided receiver bandwidth.
15174
+ * @param {number} receiver_bandwidth_hz
15175
+ * @returns {number}
15176
+ */
15177
+ fractionPowerInBand(receiver_bandwidth_hz) {
15178
+ const ret = wasm.signalanalysismodulation_fractionPowerInBand(this.__wbg_ptr, receiver_bandwidth_hz);
15179
+ if (ret[2]) {
15180
+ throw takeFromExternrefTable0(ret[1]);
15181
+ }
15182
+ return ret[0];
15183
+ }
15184
+ /**
15185
+ * Stable core label for this modulation.
15186
+ * @returns {string}
15187
+ */
15188
+ get label() {
15189
+ let deferred1_0;
15190
+ let deferred1_1;
15191
+ try {
15192
+ const ret = wasm.signalanalysismodulation_label(this.__wbg_ptr);
15193
+ deferred1_0 = ret[0];
15194
+ deferred1_1 = ret[1];
15195
+ return getStringFromWasm0(ret[0], ret[1]);
15196
+ } finally {
15197
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
15198
+ }
15199
+ }
15200
+ /**
15201
+ * Build the normalized MBOC(6,1,1/11) spectrum.
15202
+ * @returns {SignalAnalysisModulation}
15203
+ */
15204
+ static mboc611Over11() {
15205
+ const ret = wasm.signalanalysismodulation_mboc611Over11();
15206
+ return SignalAnalysisModulation.__wrap(ret);
15207
+ }
15208
+ /**
15209
+ * One-path early-late multipath error envelope on a delay grid.
15210
+ * @param {any} options
15211
+ * @param {Float64Array} delay_chips
15212
+ * @returns {any}
15213
+ */
15214
+ multipathErrorEnvelope(options, delay_chips) {
15215
+ const ptr0 = passArrayF64ToWasm0(delay_chips, wasm.__wbindgen_malloc);
15216
+ const len0 = WASM_VECTOR_LEN;
15217
+ const ret = wasm.signalanalysismodulation_multipathErrorEnvelope(this.__wbg_ptr, options, ptr0, len0);
15218
+ if (ret[2]) {
15219
+ throw takeFromExternrefTable0(ret[1]);
15220
+ }
15221
+ return takeFromExternrefTable0(ret[0]);
15222
+ }
15223
+ /**
15224
+ * Signal power inside a two-sided receiver bandwidth.
15225
+ * @param {number} receiver_bandwidth_hz
15226
+ * @returns {number}
15227
+ */
15228
+ powerInBand(receiver_bandwidth_hz) {
15229
+ const ret = wasm.signalanalysismodulation_powerInBand(this.__wbg_ptr, receiver_bandwidth_hz);
15230
+ if (ret[2]) {
15231
+ throw takeFromExternrefTable0(ret[1]);
15232
+ }
15233
+ return ret[0];
15234
+ }
15235
+ /**
15236
+ * Normalized power spectral density at an offset frequency, in `1/Hz`.
15237
+ * @param {number} offset_hz
15238
+ * @returns {number}
15239
+ */
15240
+ psdHz(offset_hz) {
15241
+ const ret = wasm.signalanalysismodulation_psdHz(this.__wbg_ptr, offset_hz);
15242
+ if (ret[2]) {
15243
+ throw takeFromExternrefTable0(ret[1]);
15244
+ }
15245
+ return ret[0];
15246
+ }
15247
+ /**
15248
+ * RMS, or Gabor, bandwidth over a two-sided receiver bandwidth.
15249
+ * @param {number} receiver_bandwidth_hz
15250
+ * @returns {number}
15251
+ */
15252
+ rmsBandwidthHz(receiver_bandwidth_hz) {
15253
+ const ret = wasm.signalanalysismodulation_rmsBandwidthHz(this.__wbg_ptr, receiver_bandwidth_hz);
15254
+ if (ret[2]) {
15255
+ throw takeFromExternrefTable0(ret[1]);
15256
+ }
15257
+ return ret[0];
15258
+ }
15259
+ /**
15260
+ * Build a sine-phased BOC(m,n) modulation.
15261
+ * @param {number} m
15262
+ * @param {number} n
15263
+ * @returns {SignalAnalysisModulation}
15264
+ */
15265
+ static sineBoc(m, n) {
15266
+ const ret = wasm.signalanalysismodulation_sineBoc(m, n);
15267
+ if (ret[2]) {
15268
+ throw takeFromExternrefTable0(ret[1]);
15269
+ }
15270
+ return SignalAnalysisModulation.__wrap(ret[0]);
15271
+ }
15272
+ /**
15273
+ * Build the GPS L1C pilot TMBOC(6,1,4/33) spectrum.
15274
+ * @returns {SignalAnalysisModulation}
15275
+ */
15276
+ static tmboc614Over33() {
15277
+ const ret = wasm.signalanalysismodulation_tmboc614Over33();
15278
+ return SignalAnalysisModulation.__wrap(ret);
15279
+ }
15280
+ /**
15281
+ * SSC against white interference normalized over the receiver bandwidth.
15282
+ * @param {number} receiver_bandwidth_hz
15283
+ * @returns {number}
15284
+ */
15285
+ whiteNoiseSpectralSeparationHz(receiver_bandwidth_hz) {
15286
+ const ret = wasm.signalanalysismodulation_whiteNoiseSpectralSeparationHz(this.__wbg_ptr, receiver_bandwidth_hz);
15287
+ if (ret[2]) {
15288
+ throw takeFromExternrefTable0(ret[1]);
15289
+ }
15290
+ return ret[0];
15291
+ }
15292
+ }
15293
+ if (Symbol.dispose) SignalAnalysisModulation.prototype[Symbol.dispose] = SignalAnalysisModulation.prototype.free;
15294
+ exports.SignalAnalysisModulation = SignalAnalysisModulation;
15295
+
14355
15296
  /**
14356
15297
  * Per-constellation single-frequency pseudorange code-selection policy. Build
14357
15298
  * with `new SignalPolicy()` then chain `.withSystem(system, codes)`, or use
@@ -14689,6 +15630,57 @@ class Sp3 {
14689
15630
  }
14690
15631
  return DgnssSolution.__wrap(ret[0]);
14691
15632
  }
15633
+ /**
15634
+ * Evaluate emission-time state and media corrections for index-aligned satellites.
15635
+ *
15636
+ * `satellites` and `emissionEpochsJ2000S` share a row count. `receiverEcefM`
15637
+ * is `[x, y, z]` metres. Without an IONEX product this can still request
15638
+ * troposphere corrections by passing `{ troposphere: true }`.
15639
+ * @param {string[]} satellites
15640
+ * @param {Float64Array} emission_epochs_j2000_s
15641
+ * @param {Float64Array} receiver_ecef_m
15642
+ * @param {any} options
15643
+ * @returns {EmissionMediaBatch}
15644
+ */
15645
+ emissionMediaBatch(satellites, emission_epochs_j2000_s, receiver_ecef_m, options) {
15646
+ const ptr0 = passArrayJsValueToWasm0(satellites, wasm.__wbindgen_malloc);
15647
+ const len0 = WASM_VECTOR_LEN;
15648
+ const ptr1 = passArrayF64ToWasm0(emission_epochs_j2000_s, wasm.__wbindgen_malloc);
15649
+ const len1 = WASM_VECTOR_LEN;
15650
+ const ptr2 = passArrayF64ToWasm0(receiver_ecef_m, wasm.__wbindgen_malloc);
15651
+ const len2 = WASM_VECTOR_LEN;
15652
+ const ret = wasm.sp3_emissionMediaBatch(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, options);
15653
+ if (ret[2]) {
15654
+ throw takeFromExternrefTable0(ret[1]);
15655
+ }
15656
+ return EmissionMediaBatch.__wrap(ret[0]);
15657
+ }
15658
+ /**
15659
+ * Evaluate emission-time state plus IONEX/troposphere media corrections.
15660
+ *
15661
+ * `options.ionosphere` defaults to `true` on this IONEX-bearing path.
15662
+ * `options.troposphere` defaults to `false`.
15663
+ * @param {Ionex} ionex
15664
+ * @param {string[]} satellites
15665
+ * @param {Float64Array} emission_epochs_j2000_s
15666
+ * @param {Float64Array} receiver_ecef_m
15667
+ * @param {any} options
15668
+ * @returns {EmissionMediaBatch}
15669
+ */
15670
+ emissionMediaBatchIonex(ionex, satellites, emission_epochs_j2000_s, receiver_ecef_m, options) {
15671
+ _assertClass(ionex, Ionex);
15672
+ const ptr0 = passArrayJsValueToWasm0(satellites, wasm.__wbindgen_malloc);
15673
+ const len0 = WASM_VECTOR_LEN;
15674
+ const ptr1 = passArrayF64ToWasm0(emission_epochs_j2000_s, wasm.__wbindgen_malloc);
15675
+ const len1 = WASM_VECTOR_LEN;
15676
+ const ptr2 = passArrayF64ToWasm0(receiver_ecef_m, wasm.__wbindgen_malloc);
15677
+ const len2 = WASM_VECTOR_LEN;
15678
+ const ret = wasm.sp3_emissionMediaBatchIonex(this.__wbg_ptr, ionex.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, options);
15679
+ if (ret[2]) {
15680
+ throw takeFromExternrefTable0(ret[1]);
15681
+ }
15682
+ return EmissionMediaBatch.__wrap(ret[0]);
15683
+ }
14692
15684
  /**
14693
15685
  * Number of epochs in the product.
14694
15686
  * @returns {number}
@@ -14787,6 +15779,19 @@ class Sp3 {
14787
15779
  }
14788
15780
  return takeFromExternrefTable0(ret[0]);
14789
15781
  }
15782
+ /**
15783
+ * Build deterministic precise-interpolant artifact bytes from this SP3 product.
15784
+ * @returns {Uint8Array}
15785
+ */
15786
+ preciseInterpolantArtifactBytes() {
15787
+ const ret = wasm.sp3_preciseInterpolantArtifactBytes(this.__wbg_ptr);
15788
+ if (ret[3]) {
15789
+ throw takeFromExternrefTable0(ret[2]);
15790
+ }
15791
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
15792
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
15793
+ return v1;
15794
+ }
14790
15795
  /**
14791
15796
  * Predict geometric ranges for many `(satellite, receiver, epoch)` requests
14792
15797
  * against this ephemeris in one call. `requests` is an array of
@@ -14850,6 +15855,40 @@ class Sp3 {
14850
15855
  }
14851
15856
  return SppBatchSolution.__wrap(ret[0]);
14852
15857
  }
15858
+ /**
15859
+ * Run SPP and attach a Doppler velocity/clock-drift solve when Doppler rows solve.
15860
+ *
15861
+ * `request` is the normal SPP request object. `dopplerObservations` is an
15862
+ * array of `{ satelliteId, dopplerHz, carrierHz, satClockDriftSS? }`. The
15863
+ * returned receiver solution carries `rxClockDriftSS` when velocity solved.
15864
+ * @param {any} request
15865
+ * @param {any} doppler_observations
15866
+ * @returns {SppDopplerSolution}
15867
+ */
15868
+ solveSppWithDopplerVelocity(request, doppler_observations) {
15869
+ const ret = wasm.sp3_solveSppWithDopplerVelocity(this.__wbg_ptr, request, doppler_observations);
15870
+ if (ret[2]) {
15871
+ throw takeFromExternrefTable0(ret[1]);
15872
+ }
15873
+ return SppDopplerSolution.__wrap(ret[0]);
15874
+ }
15875
+ /**
15876
+ * Solve one static receiver position from multiple SPP-shaped epochs.
15877
+ *
15878
+ * `epochs` is an array of SPP request objects. `options` accepts
15879
+ * `{ initialPositionM?, withGeodetic?, robust? }` and returns shared
15880
+ * position, per-epoch clocks, covariance, residual, and influence surfaces.
15881
+ * @param {any} epochs
15882
+ * @param {any} options
15883
+ * @returns {StaticSolution}
15884
+ */
15885
+ solveStatic(epochs, options) {
15886
+ const ret = wasm.sp3_solveStatic(this.__wbg_ptr, epochs, options);
15887
+ if (ret[2]) {
15888
+ throw takeFromExternrefTable0(ret[1]);
15889
+ }
15890
+ return StaticSolution.__wrap(ret[0]);
15891
+ }
14853
15892
  /**
14854
15893
  * Run the core robust-reweighted SPP driver under the RAIM/FDE exclusion loop.
14855
15894
  *
@@ -16045,11 +17084,64 @@ class SppBatchSolution {
16045
17084
  if (ret[2]) {
16046
17085
  throw takeFromExternrefTable0(ret[1]);
16047
17086
  }
16048
- return SppSolution.__wrap(ret[0]);
17087
+ return SppSolution.__wrap(ret[0]);
17088
+ }
17089
+ }
17090
+ if (Symbol.dispose) SppBatchSolution.prototype[Symbol.dispose] = SppBatchSolution.prototype.free;
17091
+ exports.SppBatchSolution = SppBatchSolution;
17092
+
17093
+ /**
17094
+ * Position solution with an optional Doppler velocity solve.
17095
+ */
17096
+ class SppDopplerSolution {
17097
+ static __wrap(ptr) {
17098
+ const obj = Object.create(SppDopplerSolution.prototype);
17099
+ obj.__wbg_ptr = ptr;
17100
+ SppDopplerSolutionFinalization.register(obj, obj.__wbg_ptr, obj);
17101
+ return obj;
17102
+ }
17103
+ __destroy_into_raw() {
17104
+ const ptr = this.__wbg_ptr;
17105
+ this.__wbg_ptr = 0;
17106
+ SppDopplerSolutionFinalization.unregister(this);
17107
+ return ptr;
17108
+ }
17109
+ free() {
17110
+ const ptr = this.__destroy_into_raw();
17111
+ wasm.__wbg_sppdopplersolution_free(ptr, 0);
17112
+ }
17113
+ /**
17114
+ * Receiver position, clock, and covariance solution.
17115
+ * @returns {SppSolution}
17116
+ */
17117
+ get receiver() {
17118
+ const ret = wasm.sppdopplersolution_receiver(this.__wbg_ptr);
17119
+ return SppSolution.__wrap(ret);
17120
+ }
17121
+ /**
17122
+ * Doppler-derived receiver velocity and clock drift, if the velocity rows solved.
17123
+ * @returns {VelocitySolution | undefined}
17124
+ */
17125
+ get velocity() {
17126
+ const ret = wasm.sppdopplersolution_velocity(this.__wbg_ptr);
17127
+ return ret === 0 ? undefined : VelocitySolution.__wrap(ret);
17128
+ }
17129
+ /**
17130
+ * Velocity-solve failure text when Doppler rows were present but unusable.
17131
+ * @returns {string | undefined}
17132
+ */
17133
+ get velocityError() {
17134
+ const ret = wasm.sppdopplersolution_velocityError(this.__wbg_ptr);
17135
+ let v1;
17136
+ if (ret[0] !== 0) {
17137
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
17138
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
17139
+ }
17140
+ return v1;
16049
17141
  }
16050
17142
  }
16051
- if (Symbol.dispose) SppBatchSolution.prototype[Symbol.dispose] = SppBatchSolution.prototype.free;
16052
- exports.SppBatchSolution = SppBatchSolution;
17143
+ if (Symbol.dispose) SppDopplerSolution.prototype[Symbol.dispose] = SppDopplerSolution.prototype.free;
17144
+ exports.SppDopplerSolution = SppDopplerSolution;
16053
17145
 
16054
17146
  /**
16055
17147
  * The result of an SPP solve.
@@ -16106,6 +17198,26 @@ class SppSolution {
16106
17198
  const ret = wasm.sppsolution_geometryQuality(this.__wbg_ptr);
16107
17199
  return GeometryQuality.__wrap(ret);
16108
17200
  }
17201
+ /**
17202
+ * ECEF position covariance, flat row-major 3-by-3 in square metres.
17203
+ * @returns {Float64Array}
17204
+ */
17205
+ get positionCovarianceEcefM2() {
17206
+ const ret = wasm.sppsolution_positionCovarianceEcefM2(this.__wbg_ptr);
17207
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
17208
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
17209
+ return v1;
17210
+ }
17211
+ /**
17212
+ * ENU position covariance, flat row-major 3-by-3 in square metres.
17213
+ * @returns {Float64Array}
17214
+ */
17215
+ get positionCovarianceEnuM2() {
17216
+ const ret = wasm.sppsolution_positionCovarianceEnuM2(this.__wbg_ptr);
17217
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
17218
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
17219
+ return v1;
17220
+ }
16109
17221
  /**
16110
17222
  * ECEF position as a `Float64Array` `[x, y, z]`, metres.
16111
17223
  * @returns {Float64Array}
@@ -16142,6 +17254,14 @@ class SppSolution {
16142
17254
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
16143
17255
  return v1;
16144
17256
  }
17257
+ /**
17258
+ * Receiver clock drift in seconds per second when a Doppler solve was fused.
17259
+ * @returns {number | undefined}
17260
+ */
17261
+ get rxClockDriftSS() {
17262
+ const ret = wasm.sppsolution_rxClockDriftSS(this.__wbg_ptr);
17263
+ return ret[0] === 0 ? undefined : ret[1];
17264
+ }
16145
17265
  /**
16146
17266
  * Receiver clock bias, seconds.
16147
17267
  * @returns {number}
@@ -16295,6 +17415,251 @@ const SsrSource = Object.freeze({
16295
17415
  });
16296
17416
  exports.SsrSource = SsrSource;
16297
17417
 
17418
+ /**
17419
+ * Status for a leave-one-out static positioning diagnostic.
17420
+ * @enum {0 | 1 | 2 | 3 | 4 | 5}
17421
+ */
17422
+ const StaticInfluenceStatus = Object.freeze({
17423
+ /**
17424
+ * The diagnostic solve completed.
17425
+ */
17426
+ Solved: 0, "0": "Solved",
17427
+ /**
17428
+ * The omitted subset left too few measurements.
17429
+ */
17430
+ TooFewMeasurements: 1, "1": "TooFewMeasurements",
17431
+ /**
17432
+ * The diagnostic geometry was singular.
17433
+ */
17434
+ SingularGeometry: 2, "2": "SingularGeometry",
17435
+ /**
17436
+ * Input validation failed for the diagnostic subset.
17437
+ */
17438
+ InvalidInput: 3, "3": "InvalidInput",
17439
+ /**
17440
+ * Ephemeris was unavailable for the diagnostic subset.
17441
+ */
17442
+ EphemerisUnavailable: 4, "4": "EphemerisUnavailable",
17443
+ /**
17444
+ * The diagnostic subset failed for another reason.
17445
+ */
17446
+ SolveFailed: 5, "5": "SolveFailed",
17447
+ });
17448
+ exports.StaticInfluenceStatus = StaticInfluenceStatus;
17449
+
17450
+ /**
17451
+ * Multi-epoch static receiver solution.
17452
+ */
17453
+ class StaticSolution {
17454
+ static __wrap(ptr) {
17455
+ const obj = Object.create(StaticSolution.prototype);
17456
+ obj.__wbg_ptr = ptr;
17457
+ StaticSolutionFinalization.register(obj, obj.__wbg_ptr, obj);
17458
+ return obj;
17459
+ }
17460
+ __destroy_into_raw() {
17461
+ const ptr = this.__wbg_ptr;
17462
+ this.__wbg_ptr = 0;
17463
+ StaticSolutionFinalization.unregister(this);
17464
+ return ptr;
17465
+ }
17466
+ free() {
17467
+ const ptr = this.__destroy_into_raw();
17468
+ wasm.__wbg_staticsolution_free(ptr, 0);
17469
+ }
17470
+ /**
17471
+ * `[latRad, lonRad, heightM]` when geodetic output was requested.
17472
+ * @returns {Float64Array | undefined}
17473
+ */
17474
+ get geodetic() {
17475
+ const ret = wasm.staticsolution_geodetic(this.__wbg_ptr);
17476
+ let v1;
17477
+ if (ret[0] !== 0) {
17478
+ v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
17479
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
17480
+ }
17481
+ return v1;
17482
+ }
17483
+ /**
17484
+ * Geometry observability and covariance-validation diagnostics.
17485
+ * @returns {GeometryQuality}
17486
+ */
17487
+ get geometryQuality() {
17488
+ const ret = wasm.staticsolution_geometryQuality(this.__wbg_ptr);
17489
+ return GeometryQuality.__wrap(ret);
17490
+ }
17491
+ /**
17492
+ * Solver iteration, convergence, and redundancy metadata.
17493
+ * @returns {any}
17494
+ */
17495
+ get metadata() {
17496
+ const ret = wasm.staticsolution_metadata(this.__wbg_ptr);
17497
+ if (ret[2]) {
17498
+ throw takeFromExternrefTable0(ret[1]);
17499
+ }
17500
+ return takeFromExternrefTable0(ret[0]);
17501
+ }
17502
+ /**
17503
+ * Epoch-local receiver clocks as `{ epochIndex, system, clockS }[]`.
17504
+ * @returns {any}
17505
+ */
17506
+ get perEpochClocks() {
17507
+ const ret = wasm.staticsolution_perEpochClocks(this.__wbg_ptr);
17508
+ if (ret[2]) {
17509
+ throw takeFromExternrefTable0(ret[1]);
17510
+ }
17511
+ return takeFromExternrefTable0(ret[0]);
17512
+ }
17513
+ /**
17514
+ * Leave-one-epoch-out diagnostics.
17515
+ * @returns {any}
17516
+ */
17517
+ get perEpochInfluence() {
17518
+ const ret = wasm.staticsolution_perEpochInfluence(this.__wbg_ptr);
17519
+ if (ret[2]) {
17520
+ throw takeFromExternrefTable0(ret[1]);
17521
+ }
17522
+ return takeFromExternrefTable0(ret[0]);
17523
+ }
17524
+ /**
17525
+ * Leave-one-satellite-out diagnostics across every epoch.
17526
+ * @returns {any}
17527
+ */
17528
+ get perSatelliteBatchInfluence() {
17529
+ const ret = wasm.staticsolution_perSatelliteBatchInfluence(this.__wbg_ptr);
17530
+ if (ret[2]) {
17531
+ throw takeFromExternrefTable0(ret[1]);
17532
+ }
17533
+ return takeFromExternrefTable0(ret[0]);
17534
+ }
17535
+ /**
17536
+ * Leave-one-satellite-out diagnostics per epoch.
17537
+ * @returns {any}
17538
+ */
17539
+ get perSatelliteInfluence() {
17540
+ const ret = wasm.staticsolution_perSatelliteInfluence(this.__wbg_ptr);
17541
+ if (ret[2]) {
17542
+ throw takeFromExternrefTable0(ret[1]);
17543
+ }
17544
+ return takeFromExternrefTable0(ret[0]);
17545
+ }
17546
+ /**
17547
+ * ECEF position covariance, flat row-major 3-by-3 in square metres.
17548
+ * @returns {Float64Array}
17549
+ */
17550
+ get positionCovarianceEcefM2() {
17551
+ const ret = wasm.staticsolution_positionCovarianceEcefM2(this.__wbg_ptr);
17552
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
17553
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
17554
+ return v1;
17555
+ }
17556
+ /**
17557
+ * ENU position covariance, flat row-major 3-by-3 in square metres.
17558
+ * @returns {Float64Array}
17559
+ */
17560
+ get positionCovarianceEnuM2() {
17561
+ const ret = wasm.staticsolution_positionCovarianceEnuM2(this.__wbg_ptr);
17562
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
17563
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
17564
+ return v1;
17565
+ }
17566
+ /**
17567
+ * ECEF position as `[x, y, z]`, metres.
17568
+ * @returns {Float64Array}
17569
+ */
17570
+ get positionM() {
17571
+ const ret = wasm.staticsolution_positionM(this.__wbg_ptr);
17572
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
17573
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
17574
+ return v1;
17575
+ }
17576
+ /**
17577
+ * Rejected satellites grouped by input epoch.
17578
+ * @returns {any}
17579
+ */
17580
+ get rejectedSats() {
17581
+ const ret = wasm.staticsolution_rejectedSats(this.__wbg_ptr);
17582
+ if (ret[2]) {
17583
+ throw takeFromExternrefTable0(ret[1]);
17584
+ }
17585
+ return takeFromExternrefTable0(ret[0]);
17586
+ }
17587
+ /**
17588
+ * Root-mean-square of the unweighted post-fit residuals, metres.
17589
+ * @returns {number}
17590
+ */
17591
+ get residualRmsM() {
17592
+ const ret = wasm.staticsolution_residualRmsM(this.__wbg_ptr);
17593
+ return ret;
17594
+ }
17595
+ /**
17596
+ * Post-fit residuals as `{ epochIndex, satelliteId, residualM, ... }[]`.
17597
+ * @returns {any}
17598
+ */
17599
+ get residuals() {
17600
+ const ret = wasm.staticsolution_residuals(this.__wbg_ptr);
17601
+ if (ret[2]) {
17602
+ throw takeFromExternrefTable0(ret[1]);
17603
+ }
17604
+ return takeFromExternrefTable0(ret[0]);
17605
+ }
17606
+ /**
17607
+ * Full state covariance, flat row-major square matrix in square metres.
17608
+ * @returns {Float64Array}
17609
+ */
17610
+ get stateCovarianceM2() {
17611
+ const ret = wasm.staticsolution_stateCovarianceM2(this.__wbg_ptr);
17612
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
17613
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
17614
+ return v1;
17615
+ }
17616
+ /**
17617
+ * State covariance matrix dimension.
17618
+ * @returns {number}
17619
+ */
17620
+ get stateParameterCount() {
17621
+ const ret = wasm.staticsolution_stateParameterCount(this.__wbg_ptr);
17622
+ return ret >>> 0;
17623
+ }
17624
+ /**
17625
+ * Used satellite tokens grouped by input epoch.
17626
+ * @returns {any}
17627
+ */
17628
+ get usedSats() {
17629
+ const ret = wasm.staticsolution_usedSats(this.__wbg_ptr);
17630
+ if (ret[2]) {
17631
+ throw takeFromExternrefTable0(ret[1]);
17632
+ }
17633
+ return takeFromExternrefTable0(ret[0]);
17634
+ }
17635
+ /**
17636
+ * ECEF X, metres.
17637
+ * @returns {number}
17638
+ */
17639
+ get xM() {
17640
+ const ret = wasm.staticsolution_xM(this.__wbg_ptr);
17641
+ return ret;
17642
+ }
17643
+ /**
17644
+ * ECEF Y, metres.
17645
+ * @returns {number}
17646
+ */
17647
+ get yM() {
17648
+ const ret = wasm.staticsolution_yM(this.__wbg_ptr);
17649
+ return ret;
17650
+ }
17651
+ /**
17652
+ * ECEF Z, metres.
17653
+ * @returns {number}
17654
+ */
17655
+ get zM() {
17656
+ const ret = wasm.staticsolution_zM(this.__wbg_ptr);
17657
+ return ret;
17658
+ }
17659
+ }
17660
+ if (Symbol.dispose) StaticSolution.prototype[Symbol.dispose] = StaticSolution.prototype.free;
17661
+ exports.StaticSolution = StaticSolution;
17662
+
16298
17663
  /**
16299
17664
  * A batch of Sun and Moon positions, one per epoch: flat row-major `sun` and
16300
17665
  * `moon` `Float64Array`s of length `3 * epochCount`, in **metres**.
@@ -17998,6 +19363,16 @@ class VelocitySolution {
17998
19363
  const ret = wasm.velocitysolution_speedMS(this.__wbg_ptr);
17999
19364
  return ret;
18000
19365
  }
19366
+ /**
19367
+ * Unit-variance covariance of `[vx, vy, vz, clockDrift]`, flat row-major.
19368
+ * @returns {Float64Array}
19369
+ */
19370
+ get stateCovariance() {
19371
+ const ret = wasm.velocitysolution_stateCovariance(this.__wbg_ptr);
19372
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
19373
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
19374
+ return v1;
19375
+ }
18001
19376
  /**
18002
19377
  * Satellite tokens contributing rows, in residual order.
18003
19378
  * @returns {string[]}
@@ -19312,6 +20687,24 @@ function defaultPair(system) {
19312
20687
  }
19313
20688
  exports.defaultPair = defaultPair;
19314
20689
 
20690
+ /**
20691
+ * Default scenario seed as a hexadecimal string.
20692
+ * @returns {string}
20693
+ */
20694
+ function defaultScenarioSeedHex() {
20695
+ let deferred1_0;
20696
+ let deferred1_1;
20697
+ try {
20698
+ const ret = wasm.defaultScenarioSeedHex();
20699
+ deferred1_0 = ret[0];
20700
+ deferred1_1 = ret[1];
20701
+ return getStringFromWasm0(ret[0], ret[1]);
20702
+ } finally {
20703
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
20704
+ }
20705
+ }
20706
+ exports.defaultScenarioSeedHex = defaultScenarioSeedHex;
20707
+
19315
20708
  /**
19316
20709
  * Single-frequency carrier used by the SPP ionosphere-scaling policy.
19317
20710
  * @param {GnssSystem} system
@@ -19642,6 +21035,26 @@ function eclipseStatus(satellite_position_km, sun_position_km) {
19642
21035
  }
19643
21036
  exports.eclipseStatus = eclipseStatus;
19644
21037
 
21038
+ /**
21039
+ * Effective C/N0 degradation for one finite-band interference term.
21040
+ * @param {SignalAnalysisModulation} desired
21041
+ * @param {SignalAnalysisModulation} interference
21042
+ * @param {number} cn0_db_hz
21043
+ * @param {number} receiver_bandwidth_hz
21044
+ * @param {number} power_ratio_to_carrier
21045
+ * @returns {any}
21046
+ */
21047
+ function effectiveCn0Degradation(desired, interference, cn0_db_hz, receiver_bandwidth_hz, power_ratio_to_carrier) {
21048
+ _assertClass(desired, SignalAnalysisModulation);
21049
+ _assertClass(interference, SignalAnalysisModulation);
21050
+ const ret = wasm.effectiveCn0Degradation(desired.__wbg_ptr, interference.__wbg_ptr, cn0_db_hz, receiver_bandwidth_hz, power_ratio_to_carrier);
21051
+ if (ret[2]) {
21052
+ throw takeFromExternrefTable0(ret[1]);
21053
+ }
21054
+ return takeFromExternrefTable0(ret[0]);
21055
+ }
21056
+ exports.effectiveCn0Degradation = effectiveCn0Degradation;
21057
+
19645
21058
  /**
19646
21059
  * Ellipsoidal height `h = H + N` (metres above the WGS84 ellipsoid) from an
19647
21060
  * orthometric height and a geodetic position in radians, using the embedded
@@ -19759,6 +21172,25 @@ function ellipsoidalHeightM(orthometric_height_m, lat_rad, lon_rad) {
19759
21172
  }
19760
21173
  exports.ellipsoidalHeightM = ellipsoidalHeightM;
19761
21174
 
21175
+ /**
21176
+ * Stable string label for an [`EmissionMediaStatus`] enum value.
21177
+ * @param {EmissionMediaStatus} status
21178
+ * @returns {string}
21179
+ */
21180
+ function emissionMediaStatusLabel(status) {
21181
+ let deferred1_0;
21182
+ let deferred1_1;
21183
+ try {
21184
+ const ret = wasm.emissionMediaStatusLabel(status);
21185
+ deferred1_0 = ret[0];
21186
+ deferred1_1 = ret[1];
21187
+ return getStringFromWasm0(ret[0], ret[1]);
21188
+ } finally {
21189
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
21190
+ }
21191
+ }
21192
+ exports.emissionMediaStatusLabel = emissionMediaStatusLabel;
21193
+
19762
21194
  /**
19763
21195
  * Encode plain RINEX observation text into a Compact RINEX (Hatanaka) stream,
19764
21196
  * the inverse of [`decodeCrinex`]. RINEX 2 is emitted as CRINEX 1.0 and RINEX 3
@@ -20670,9 +22102,27 @@ function fspl(distance_km, frequency_mhz) {
20670
22102
  if (ret[2]) {
20671
22103
  throw takeFromExternrefTable0(ret[1]);
20672
22104
  }
20673
- return ret[0];
22105
+ return ret[0];
22106
+ }
22107
+ exports.fspl = fspl;
22108
+
22109
+ /**
22110
+ * Decode and re-encode fusion-state bytes through the core codec.
22111
+ * @param {Uint8Array} bytes
22112
+ * @returns {Uint8Array}
22113
+ */
22114
+ function fusionStateBytesRoundTrip(bytes) {
22115
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
22116
+ const len0 = WASM_VECTOR_LEN;
22117
+ const ret = wasm.fusionStateBytesRoundTrip(ptr0, len0);
22118
+ if (ret[3]) {
22119
+ throw takeFromExternrefTable0(ret[2]);
22120
+ }
22121
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
22122
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
22123
+ return v2;
20674
22124
  }
20675
- exports.fspl = fspl;
22125
+ exports.fusionStateBytesRoundTrip = fusionStateBytesRoundTrip;
20676
22126
 
20677
22127
  /**
20678
22128
  * Galileo NeQuick-G single-frequency ionospheric group delay (positive metres).
@@ -20834,6 +22284,155 @@ function geodeticToEcef(geodetic) {
20834
22284
  }
20835
22285
  exports.geodeticToEcef = geodeticToEcef;
20836
22286
 
22287
+ /**
22288
+ * Containment probability using default probability options.
22289
+ * @param {Float64Array} vertices
22290
+ * @param {number} lat_rad
22291
+ * @param {number} lon_rad
22292
+ * @param {number} height_m
22293
+ * @param {any} uncertainty_value
22294
+ * @returns {number}
22295
+ */
22296
+ function geofenceContainmentProbability(vertices, lat_rad, lon_rad, height_m, uncertainty_value) {
22297
+ const ptr0 = passArrayF64ToWasm0(vertices, wasm.__wbindgen_malloc);
22298
+ const len0 = WASM_VECTOR_LEN;
22299
+ const ret = wasm.geofenceContainmentProbability(ptr0, len0, lat_rad, lon_rad, height_m, uncertainty_value);
22300
+ if (ret[2]) {
22301
+ throw takeFromExternrefTable0(ret[1]);
22302
+ }
22303
+ return ret[0];
22304
+ }
22305
+ exports.geofenceContainmentProbability = geofenceContainmentProbability;
22306
+
22307
+ /**
22308
+ * Boolean containment for one position and flat vertex array.
22309
+ * @param {Float64Array} vertices
22310
+ * @param {number} lat_rad
22311
+ * @param {number} lon_rad
22312
+ * @param {number} height_m
22313
+ * @returns {boolean}
22314
+ */
22315
+ function geofenceContains(vertices, lat_rad, lon_rad, height_m) {
22316
+ const ptr0 = passArrayF64ToWasm0(vertices, wasm.__wbindgen_malloc);
22317
+ const len0 = WASM_VECTOR_LEN;
22318
+ const ret = wasm.geofenceContains(ptr0, len0, lat_rad, lon_rad, height_m);
22319
+ if (ret[2]) {
22320
+ throw takeFromExternrefTable0(ret[1]);
22321
+ }
22322
+ return ret[0] !== 0;
22323
+ }
22324
+ exports.geofenceContains = geofenceContains;
22325
+
22326
+ /**
22327
+ * Stable string label for a [`GeofenceCrossingKind`] enum value.
22328
+ * @param {GeofenceCrossingKind} kind
22329
+ * @returns {string}
22330
+ */
22331
+ function geofenceCrossingKindLabel(kind) {
22332
+ let deferred1_0;
22333
+ let deferred1_1;
22334
+ try {
22335
+ const ret = wasm.geofenceCrossingKindLabel(kind);
22336
+ deferred1_0 = ret[0];
22337
+ deferred1_1 = ret[1];
22338
+ return getStringFromWasm0(ret[0], ret[1]);
22339
+ } finally {
22340
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
22341
+ }
22342
+ }
22343
+ exports.geofenceCrossingKindLabel = geofenceCrossingKindLabel;
22344
+
22345
+ /**
22346
+ * Probabilistic crossing detection with default hysteresis.
22347
+ * @param {Float64Array} vertices
22348
+ * @param {any} samples
22349
+ * @param {any} options
22350
+ * @returns {any}
22351
+ */
22352
+ function geofenceCrossingProbability(vertices, samples, options) {
22353
+ const ptr0 = passArrayF64ToWasm0(vertices, wasm.__wbindgen_malloc);
22354
+ const len0 = WASM_VECTOR_LEN;
22355
+ const ret = wasm.geofenceCrossingProbability(ptr0, len0, samples, options);
22356
+ if (ret[2]) {
22357
+ throw takeFromExternrefTable0(ret[1]);
22358
+ }
22359
+ return takeFromExternrefTable0(ret[0]);
22360
+ }
22361
+ exports.geofenceCrossingProbability = geofenceCrossingProbability;
22362
+
22363
+ /**
22364
+ * Stable string label for a [`GeofenceError`] enum value.
22365
+ * @param {GeofenceError} error
22366
+ * @returns {string}
22367
+ */
22368
+ function geofenceErrorLabel(error) {
22369
+ let deferred1_0;
22370
+ let deferred1_1;
22371
+ try {
22372
+ const ret = wasm.geofenceErrorLabel(error);
22373
+ deferred1_0 = ret[0];
22374
+ deferred1_1 = ret[1];
22375
+ return getStringFromWasm0(ret[0], ret[1]);
22376
+ } finally {
22377
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
22378
+ }
22379
+ }
22380
+ exports.geofenceErrorLabel = geofenceErrorLabel;
22381
+
22382
+ /**
22383
+ * Construct a geodesic WGS84 polygon from flat 2D radian vertices.
22384
+ * @param {Float64Array} vertices
22385
+ * @returns {Geofence}
22386
+ */
22387
+ function geofenceFromVertices(vertices) {
22388
+ const ptr0 = passArrayF64ToWasm0(vertices, wasm.__wbindgen_malloc);
22389
+ const len0 = WASM_VECTOR_LEN;
22390
+ const ret = wasm.geofenceFromVertices(ptr0, len0);
22391
+ if (ret[2]) {
22392
+ throw takeFromExternrefTable0(ret[1]);
22393
+ }
22394
+ return Geofence.__wrap(ret[0]);
22395
+ }
22396
+ exports.geofenceFromVertices = geofenceFromVertices;
22397
+
22398
+ /**
22399
+ * Construct a geodesic WGS84 polygon from flat 3D radian vertices.
22400
+ *
22401
+ * `vertices` is `[latRad, lonRad, heightM, ...]`. Heights are accepted but
22402
+ * ignored by the core geofence model.
22403
+ * @param {Float64Array} vertices
22404
+ * @returns {Geofence}
22405
+ */
22406
+ function geofenceFromVertices3d(vertices) {
22407
+ const ptr0 = passArrayF64ToWasm0(vertices, wasm.__wbindgen_malloc);
22408
+ const len0 = WASM_VECTOR_LEN;
22409
+ const ret = wasm.geofenceFromVertices3d(ptr0, len0);
22410
+ if (ret[2]) {
22411
+ throw takeFromExternrefTable0(ret[1]);
22412
+ }
22413
+ return Geofence.__wrap(ret[0]);
22414
+ }
22415
+ exports.geofenceFromVertices3d = geofenceFromVertices3d;
22416
+
22417
+ /**
22418
+ * Stable string label for a [`GeofenceProbabilityMethod`] enum value.
22419
+ * @param {GeofenceProbabilityMethod} method
22420
+ * @returns {string}
22421
+ */
22422
+ function geofenceProbabilityMethodLabel(method) {
22423
+ let deferred1_0;
22424
+ let deferred1_1;
22425
+ try {
22426
+ const ret = wasm.geofenceProbabilityMethodLabel(method);
22427
+ deferred1_0 = ret[0];
22428
+ deferred1_1 = ret[1];
22429
+ return getStringFromWasm0(ret[0], ret[1]);
22430
+ } finally {
22431
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
22432
+ }
22433
+ }
22434
+ exports.geofenceProbabilityMethodLabel = geofenceProbabilityMethodLabel;
22435
+
20837
22436
  /**
20838
22437
  * Geoid undulation `N` (metres above the WGS84 ellipsoid) at a geodetic
20839
22438
  * position in radians, from the COARSE built-in global grid. Latitude is
@@ -23106,6 +24705,25 @@ function oceanTideLoading(station_ecef_m, year, month, day, fractional_hour, amp
23106
24705
  }
23107
24706
  exports.oceanTideLoading = oceanTideLoading;
23108
24707
 
24708
+ /**
24709
+ * Open precise-interpolant artifact bytes as an evaluable in-memory product.
24710
+ *
24711
+ * The returned handle owns its byte buffer because JS byte slices cannot be
24712
+ * borrowed across calls by this class boundary.
24713
+ * @param {Uint8Array} bytes
24714
+ * @returns {PreciseInterpolantArtifact}
24715
+ */
24716
+ function openPreciseInterpolantArtifact(bytes) {
24717
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
24718
+ const len0 = WASM_VECTOR_LEN;
24719
+ const ret = wasm.openPreciseInterpolantArtifact(ptr0, len0);
24720
+ if (ret[2]) {
24721
+ throw takeFromExternrefTable0(ret[1]);
24722
+ }
24723
+ return PreciseInterpolantArtifact.__wrap(ret[0]);
24724
+ }
24725
+ exports.openPreciseInterpolantArtifact = openPreciseInterpolantArtifact;
24726
+
23109
24727
  /**
23110
24728
  * Broadcast-derived per-satellite orbit-repeat lag, in seconds.
23111
24729
  *
@@ -23777,6 +25395,38 @@ function preciseEphemerisSamplesFromSamples(samples) {
23777
25395
  }
23778
25396
  exports.preciseEphemerisSamplesFromSamples = preciseEphemerisSamplesFromSamples;
23779
25397
 
25398
+ /**
25399
+ * Compute the precise-interpolant artifact file-level checksum for byte content.
25400
+ * @param {Uint8Array} bytes
25401
+ * @returns {bigint}
25402
+ */
25403
+ function preciseInterpolantArtifactChecksum64(bytes) {
25404
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
25405
+ const len0 = WASM_VECTOR_LEN;
25406
+ const ret = wasm.preciseInterpolantArtifactChecksum64(ptr0, len0);
25407
+ return BigInt.asUintN(64, ret);
25408
+ }
25409
+ exports.preciseInterpolantArtifactChecksum64 = preciseInterpolantArtifactChecksum64;
25410
+
25411
+ /**
25412
+ * Stable string label for a [`PreciseInterpolantArtifactError`] enum value.
25413
+ * @param {PreciseInterpolantArtifactError} error
25414
+ * @returns {string}
25415
+ */
25416
+ function preciseInterpolantArtifactErrorLabel(error) {
25417
+ let deferred1_0;
25418
+ let deferred1_1;
25419
+ try {
25420
+ const ret = wasm.preciseInterpolantArtifactErrorLabel(error);
25421
+ deferred1_0 = ret[0];
25422
+ deferred1_1 = ret[1];
25423
+ return getStringFromWasm0(ret[0], ret[1]);
25424
+ } finally {
25425
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25426
+ }
25427
+ }
25428
+ exports.preciseInterpolantArtifactErrorLabel = preciseInterpolantArtifactErrorLabel;
25429
+
23780
25430
  /**
23781
25431
  * Predict observables for many `(satellite, receiver, epoch)` requests from a
23782
25432
  * broadcast ephemeris store, serially. See [`predictBatchSp3`] for the argument
@@ -24591,6 +26241,34 @@ function sbasProtectionLevels(geometry, model, k) {
24591
26241
  }
24592
26242
  exports.sbasProtectionLevels = sbasProtectionLevels;
24593
26243
 
26244
+ /**
26245
+ * Core scenario engine version string used in deterministic outputs.
26246
+ * @returns {string}
26247
+ */
26248
+ function scenarioEngineVersion() {
26249
+ let deferred1_0;
26250
+ let deferred1_1;
26251
+ try {
26252
+ const ret = wasm.scenarioEngineVersion();
26253
+ deferred1_0 = ret[0];
26254
+ deferred1_1 = ret[1];
26255
+ return getStringFromWasm0(ret[0], ret[1]);
26256
+ } finally {
26257
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
26258
+ }
26259
+ }
26260
+ exports.scenarioEngineVersion = scenarioEngineVersion;
26261
+
26262
+ /**
26263
+ * Core scenario schema version accepted by the binding.
26264
+ * @returns {number}
26265
+ */
26266
+ function scenarioSchemaVersion() {
26267
+ const ret = wasm.scenarioSchemaVersion();
26268
+ return ret >>> 0;
26269
+ }
26270
+ exports.scenarioSchemaVersion = scenarioSchemaVersion;
26271
+
24594
26272
  /**
24595
26273
  * Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
24596
26274
  *
@@ -24875,6 +26553,70 @@ function sigmas(entries, options) {
24875
26553
  }
24876
26554
  exports.sigmas = sigmas;
24877
26555
 
26556
+ /**
26557
+ * Simulate a scenario from a JS object or JSON string and return JS arrays.
26558
+ * @param {any} value
26559
+ * @returns {any}
26560
+ */
26561
+ function simulateScenario(value) {
26562
+ const ret = wasm.simulateScenario(value);
26563
+ if (ret[2]) {
26564
+ throw takeFromExternrefTable0(ret[1]);
26565
+ }
26566
+ return takeFromExternrefTable0(ret[0]);
26567
+ }
26568
+ exports.simulateScenario = simulateScenario;
26569
+
26570
+ /**
26571
+ * Simulate a scenario from a JS object or JSON string and return deterministic JSON bytes.
26572
+ * @param {any} value
26573
+ * @returns {Uint8Array}
26574
+ */
26575
+ function simulateScenarioBytes(value) {
26576
+ const ret = wasm.simulateScenarioBytes(value);
26577
+ if (ret[3]) {
26578
+ throw takeFromExternrefTable0(ret[2]);
26579
+ }
26580
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
26581
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
26582
+ return v1;
26583
+ }
26584
+ exports.simulateScenarioBytes = simulateScenarioBytes;
26585
+
26586
+ /**
26587
+ * Simulate a scenario from JSON text and return JS arrays.
26588
+ * @param {string} text
26589
+ * @returns {any}
26590
+ */
26591
+ function simulateScenarioJson(text) {
26592
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26593
+ const len0 = WASM_VECTOR_LEN;
26594
+ const ret = wasm.simulateScenarioJson(ptr0, len0);
26595
+ if (ret[2]) {
26596
+ throw takeFromExternrefTable0(ret[1]);
26597
+ }
26598
+ return takeFromExternrefTable0(ret[0]);
26599
+ }
26600
+ exports.simulateScenarioJson = simulateScenarioJson;
26601
+
26602
+ /**
26603
+ * Simulate a scenario from JSON text and return deterministic JSON bytes.
26604
+ * @param {string} text
26605
+ * @returns {Uint8Array}
26606
+ */
26607
+ function simulateScenarioJsonBytes(text) {
26608
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26609
+ const len0 = WASM_VECTOR_LEN;
26610
+ const ret = wasm.simulateScenarioJsonBytes(ptr0, len0);
26611
+ if (ret[3]) {
26612
+ throw takeFromExternrefTable0(ret[2]);
26613
+ }
26614
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
26615
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
26616
+ return v2;
26617
+ }
26618
+ exports.simulateScenarioJsonBytes = simulateScenarioJsonBytes;
26619
+
24878
26620
  /**
24879
26621
  * Sample skewness of a residual set.
24880
26622
  *
@@ -25249,6 +26991,23 @@ function solveSppSbas(broadcast, store, geo, request, mode) {
25249
26991
  }
25250
26992
  exports.solveSppSbas = solveSppSbas;
25251
26993
 
26994
+ /**
26995
+ * Solve one static receiver position from multiple SPP-shaped epochs over SP3.
26996
+ * @param {Sp3} sp3
26997
+ * @param {any} epochs
26998
+ * @param {any} options
26999
+ * @returns {StaticSolution}
27000
+ */
27001
+ function solveStatic(sp3, epochs, options) {
27002
+ _assertClass(sp3, Sp3);
27003
+ const ret = wasm.solveStatic(sp3.__wbg_ptr, epochs, options);
27004
+ if (ret[2]) {
27005
+ throw takeFromExternrefTable0(ret[1]);
27006
+ }
27007
+ return StaticSolution.__wrap(ret[0]);
27008
+ }
27009
+ exports.solveStatic = solveStatic;
27010
+
25252
27011
  /**
25253
27012
  * Solve a static RTK arc with one batch float solution and one validated fixed
25254
27013
  * solution over the whole arc.
@@ -25439,6 +27198,42 @@ function sp3PreciseEphemerisSamples(sp3) {
25439
27198
  }
25440
27199
  exports.sp3PreciseEphemerisSamples = sp3PreciseEphemerisSamples;
25441
27200
 
27201
+ /**
27202
+ * Spectral separation coefficient between two modulations, in dB-Hz.
27203
+ * @param {SignalAnalysisModulation} desired
27204
+ * @param {SignalAnalysisModulation} interference
27205
+ * @param {number} receiver_bandwidth_hz
27206
+ * @returns {number}
27207
+ */
27208
+ function spectralSeparationCoefficientDbHz(desired, interference, receiver_bandwidth_hz) {
27209
+ _assertClass(desired, SignalAnalysisModulation);
27210
+ _assertClass(interference, SignalAnalysisModulation);
27211
+ const ret = wasm.spectralSeparationCoefficientDbHz(desired.__wbg_ptr, interference.__wbg_ptr, receiver_bandwidth_hz);
27212
+ if (ret[2]) {
27213
+ throw takeFromExternrefTable0(ret[1]);
27214
+ }
27215
+ return ret[0];
27216
+ }
27217
+ exports.spectralSeparationCoefficientDbHz = spectralSeparationCoefficientDbHz;
27218
+
27219
+ /**
27220
+ * Spectral separation coefficient between two modulations, in hertz.
27221
+ * @param {SignalAnalysisModulation} desired
27222
+ * @param {SignalAnalysisModulation} interference
27223
+ * @param {number} receiver_bandwidth_hz
27224
+ * @returns {number}
27225
+ */
27226
+ function spectralSeparationCoefficientHz(desired, interference, receiver_bandwidth_hz) {
27227
+ _assertClass(desired, SignalAnalysisModulation);
27228
+ _assertClass(interference, SignalAnalysisModulation);
27229
+ const ret = wasm.spectralSeparationCoefficientHz(desired.__wbg_ptr, interference.__wbg_ptr, receiver_bandwidth_hz);
27230
+ if (ret[2]) {
27231
+ throw takeFromExternrefTable0(ret[1]);
27232
+ }
27233
+ return ret[0];
27234
+ }
27235
+ exports.spectralSeparationCoefficientHz = spectralSeparationCoefficientHz;
27236
+
25442
27237
  /**
25443
27238
  * Continuous seconds since J2000 for a split Julian date.
25444
27239
  * @param {number} jd_whole
@@ -25492,6 +27287,25 @@ function ssrSourceLabel(source) {
25492
27287
  }
25493
27288
  exports.ssrSourceLabel = ssrSourceLabel;
25494
27289
 
27290
+ /**
27291
+ * Stable string label for a [`StaticInfluenceStatus`] enum value.
27292
+ * @param {StaticInfluenceStatus} status
27293
+ * @returns {string}
27294
+ */
27295
+ function staticInfluenceStatusLabel(status) {
27296
+ let deferred1_0;
27297
+ let deferred1_1;
27298
+ try {
27299
+ const ret = wasm.staticInfluenceStatusLabel(status);
27300
+ deferred1_0 = ret[0];
27301
+ deferred1_1 = ret[1];
27302
+ return getStringFromWasm0(ret[0], ret[1]);
27303
+ } finally {
27304
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
27305
+ }
27306
+ }
27307
+ exports.staticInfluenceStatusLabel = staticInfluenceStatusLabel;
27308
+
25495
27309
  /**
25496
27310
  * Sub-observer point (planetary central meridian) on a rotating body.
25497
27311
  *
@@ -26303,6 +28117,10 @@ function __wbg_get_imports() {
26303
28117
  const ret = String.fromCodePoint(arg0 >>> 0);
26304
28118
  return ret;
26305
28119
  }, arguments); },
28120
+ __wbg_from_13e323c65fc8f464: function(arg0) {
28121
+ const ret = Array.from(arg0);
28122
+ return ret;
28123
+ },
26306
28124
  __wbg_get_507a50627bffa49b: function(arg0, arg1) {
26307
28125
  const ret = arg0[arg1 >>> 0];
26308
28126
  return ret;
@@ -26762,6 +28580,9 @@ const Egm96FifteenMinuteGeoidFinalization = (typeof FinalizationRegistry === 'un
26762
28580
  const EllipsoidalHeightMFinalization = (typeof FinalizationRegistry === 'undefined')
26763
28581
  ? { register: () => {}, unregister: () => {} }
26764
28582
  : new FinalizationRegistry(ptr => wasm.__wbg_ellipsoidalheightm_free(ptr, 1));
28583
+ const EmissionMediaBatchFinalization = (typeof FinalizationRegistry === 'undefined')
28584
+ ? { register: () => {}, unregister: () => {} }
28585
+ : new FinalizationRegistry(ptr => wasm.__wbg_emissionmediabatch_free(ptr, 1));
26765
28586
  const EncounterFrameFinalization = (typeof FinalizationRegistry === 'undefined')
26766
28587
  ? { register: () => {}, unregister: () => {} }
26767
28588
  : new FinalizationRegistry(ptr => wasm.__wbg_encounterframe_free(ptr, 1));
@@ -26789,6 +28610,9 @@ const FrameScannerFinalization = (typeof FinalizationRegistry === 'undefined')
26789
28610
  const FrameStatesFinalization = (typeof FinalizationRegistry === 'undefined')
26790
28611
  ? { register: () => {}, unregister: () => {} }
26791
28612
  : new FinalizationRegistry(ptr => wasm.__wbg_framestates_free(ptr, 1));
28613
+ const GeofenceFinalization = (typeof FinalizationRegistry === 'undefined')
28614
+ ? { register: () => {}, unregister: () => {} }
28615
+ : new FinalizationRegistry(ptr => wasm.__wbg_geofence_free(ptr, 1));
26792
28616
  const GeoidGridFinalization = (typeof FinalizationRegistry === 'undefined')
26793
28617
  ? { register: () => {}, unregister: () => {} }
26794
28618
  : new FinalizationRegistry(ptr => wasm.__wbg_geoidgrid_free(ptr, 1));
@@ -26798,6 +28622,9 @@ const GeometryQualityFinalization = (typeof FinalizationRegistry === 'undefined'
26798
28622
  const GlonassRecordJsFinalization = (typeof FinalizationRegistry === 'undefined')
26799
28623
  ? { register: () => {}, unregister: () => {} }
26800
28624
  : new FinalizationRegistry(ptr => wasm.__wbg_glonassrecordjs_free(ptr, 1));
28625
+ const GnssInsFilterFinalization = (typeof FinalizationRegistry === 'undefined')
28626
+ ? { register: () => {}, unregister: () => {} }
28627
+ : new FinalizationRegistry(ptr => wasm.__wbg_gnssinsfilter_free(ptr, 1));
26801
28628
  const GnssPassFinalization = (typeof FinalizationRegistry === 'undefined')
26802
28629
  ? { register: () => {}, unregister: () => {} }
26803
28630
  : new FinalizationRegistry(ptr => wasm.__wbg_gnsspass_free(ptr, 1));
@@ -27002,6 +28829,9 @@ const PreciseEphemerisInterpolantFinalization = (typeof FinalizationRegistry ===
27002
28829
  const PreciseEphemerisSampleSourceFinalization = (typeof FinalizationRegistry === 'undefined')
27003
28830
  ? { register: () => {}, unregister: () => {} }
27004
28831
  : new FinalizationRegistry(ptr => wasm.__wbg_preciseephemerissamplesource_free(ptr, 1));
28832
+ const PreciseInterpolantArtifactFinalization = (typeof FinalizationRegistry === 'undefined')
28833
+ ? { register: () => {}, unregister: () => {} }
28834
+ : new FinalizationRegistry(ptr => wasm.__wbg_preciseinterpolantartifact_free(ptr, 1));
27005
28835
  const PredictBatchFinalization = (typeof FinalizationRegistry === 'undefined')
27006
28836
  ? { register: () => {}, unregister: () => {} }
27007
28837
  : new FinalizationRegistry(ptr => wasm.__wbg_predictbatch_free(ptr, 1));
@@ -27068,6 +28898,9 @@ const SbasProtectionFinalization = (typeof FinalizationRegistry === 'undefined')
27068
28898
  const SbasSisErrorFinalization = (typeof FinalizationRegistry === 'undefined')
27069
28899
  ? { register: () => {}, unregister: () => {} }
27070
28900
  : new FinalizationRegistry(ptr => wasm.__wbg_sbassiserror_free(ptr, 1));
28901
+ const SignalAnalysisModulationFinalization = (typeof FinalizationRegistry === 'undefined')
28902
+ ? { register: () => {}, unregister: () => {} }
28903
+ : new FinalizationRegistry(ptr => wasm.__wbg_signalanalysismodulation_free(ptr, 1));
27071
28904
  const SignalPolicyFinalization = (typeof FinalizationRegistry === 'undefined')
27072
28905
  ? { register: () => {}, unregister: () => {} }
27073
28906
  : new FinalizationRegistry(ptr => wasm.__wbg_signalpolicy_free(ptr, 1));
@@ -27128,12 +28961,18 @@ const SpkStateFinalization = (typeof FinalizationRegistry === 'undefined')
27128
28961
  const SppBatchSolutionFinalization = (typeof FinalizationRegistry === 'undefined')
27129
28962
  ? { register: () => {}, unregister: () => {} }
27130
28963
  : new FinalizationRegistry(ptr => wasm.__wbg_sppbatchsolution_free(ptr, 1));
28964
+ const SppDopplerSolutionFinalization = (typeof FinalizationRegistry === 'undefined')
28965
+ ? { register: () => {}, unregister: () => {} }
28966
+ : new FinalizationRegistry(ptr => wasm.__wbg_sppdopplersolution_free(ptr, 1));
27131
28967
  const SppSolutionFinalization = (typeof FinalizationRegistry === 'undefined')
27132
28968
  ? { register: () => {}, unregister: () => {} }
27133
28969
  : new FinalizationRegistry(ptr => wasm.__wbg_sppsolution_free(ptr, 1));
27134
28970
  const SsrCorrectionStoreFinalization = (typeof FinalizationRegistry === 'undefined')
27135
28971
  ? { register: () => {}, unregister: () => {} }
27136
28972
  : new FinalizationRegistry(ptr => wasm.__wbg_ssrcorrectionstore_free(ptr, 1));
28973
+ const StaticSolutionFinalization = (typeof FinalizationRegistry === 'undefined')
28974
+ ? { register: () => {}, unregister: () => {} }
28975
+ : new FinalizationRegistry(ptr => wasm.__wbg_staticsolution_free(ptr, 1));
27137
28976
  const SunMoonFinalization = (typeof FinalizationRegistry === 'undefined')
27138
28977
  ? { register: () => {}, unregister: () => {} }
27139
28978
  : new FinalizationRegistry(ptr => wasm.__wbg_sunmoon_free(ptr, 1));