@neilberkman/sidereon 0.29.1 → 0.30.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.
@@ -2941,6 +2941,25 @@ export class GnssDistributionLocation {
2941
2941
  readonly source: string;
2942
2942
  }
2943
2943
 
2944
+ /**
2945
+ * Require available identities to be exactly the declared product set.
2946
+ *
2947
+ * The expected set must be non-empty. Both lists reject duplicates; missing
2948
+ * and undeclared identities fail. Comparison includes every identity field,
2949
+ * not only the official filename. SP3 observed/predicted timing comes from
2950
+ * `Sp3.predictionSummary()`, not catalog fields or issue times.
2951
+ */
2952
+ export class GnssExactProductSet {
2953
+ free(): void;
2954
+ [Symbol.dispose](): void;
2955
+ addAvailable(identity: GnssProductIdentity): void;
2956
+ addExpected(identity: GnssProductIdentity): void;
2957
+ constructor();
2958
+ validate(): void;
2959
+ readonly availableCount: number;
2960
+ readonly expectedCount: number;
2961
+ }
2962
+
2944
2963
  /**
2945
2964
  * Stateful GNSS/INS filter resource.
2946
2965
  */
@@ -3081,6 +3100,7 @@ export class GnssProductIdentity {
3081
3100
  private constructor();
3082
3101
  free(): void;
3083
3102
  [Symbol.dispose](): void;
3103
+ readonly analysisCenter: string;
3084
3104
  /**
3085
3105
  * Stable validated identity key suitable for caller-managed cache paths.
3086
3106
  */
@@ -3090,6 +3110,7 @@ export class GnssProductIdentity {
3090
3110
  readonly family: string;
3091
3111
  readonly filenameVersion: number;
3092
3112
  readonly format: string;
3113
+ readonly formatVersion: string | undefined;
3093
3114
  readonly issue: string | undefined;
3094
3115
  readonly month: number;
3095
3116
  readonly officialFilename: string;
@@ -8991,6 +9012,14 @@ export function boundedIlsSearch(float_cycles: Float64Array, covariance: any, ra
8991
9012
  */
8992
9013
  export function buildDualFrequencyRinexRtkArc(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, options?: RtkRinexDualArcOptions | null): { epochs: RtkDualFrequencyArcEpoch[] };
8993
9014
 
9015
+ /**
9016
+ * Build the shared exact-cache commit bytes for a complete immutable candidate.
9017
+ *
9018
+ * Browser hosts should stage product, archive, and provenance under `entry_id`
9019
+ * and make the returned marker visible in the same IndexedDB transaction.
9020
+ */
9021
+ export function buildExactCacheCommit(identity: GnssProductIdentity, source: string, entry_id: string, product: Uint8Array, archive: Uint8Array, provenance: Uint8Array): Uint8Array;
9022
+
8994
9023
  /**
8995
9024
  * Build single-frequency RTK arc records from parsed RINEX OBS products.
8996
9025
  *
@@ -11892,6 +11921,12 @@ export function velocityMatchOutage(states: any, first_good_fix: any, config: an
11892
11921
  */
11893
11922
  export function velocityMidas(series: any, options: any): any;
11894
11923
 
11924
+ /**
11925
+ * Verify a shared commit marker against the requested full identity, source,
11926
+ * and all three immutable byte objects. Returns the committed entry id.
11927
+ */
11928
+ export function verifyExactCacheCommit(identity: GnssProductIdentity, source: string, marker: Uint8Array, product: Uint8Array, archive: Uint8Array, provenance: Uint8Array): string;
11929
+
11895
11930
  /**
11896
11931
  * Vertical one-dimensional percentile radius from an up variance.
11897
11932
  */
@@ -5959,6 +5959,69 @@ class GnssDistributionLocation {
5959
5959
  if (Symbol.dispose) GnssDistributionLocation.prototype[Symbol.dispose] = GnssDistributionLocation.prototype.free;
5960
5960
  exports.GnssDistributionLocation = GnssDistributionLocation;
5961
5961
 
5962
+ /**
5963
+ * Require available identities to be exactly the declared product set.
5964
+ *
5965
+ * The expected set must be non-empty. Both lists reject duplicates; missing
5966
+ * and undeclared identities fail. Comparison includes every identity field,
5967
+ * not only the official filename. SP3 observed/predicted timing comes from
5968
+ * `Sp3.predictionSummary()`, not catalog fields or issue times.
5969
+ */
5970
+ class GnssExactProductSet {
5971
+ __destroy_into_raw() {
5972
+ const ptr = this.__wbg_ptr;
5973
+ this.__wbg_ptr = 0;
5974
+ GnssExactProductSetFinalization.unregister(this);
5975
+ return ptr;
5976
+ }
5977
+ free() {
5978
+ const ptr = this.__destroy_into_raw();
5979
+ wasm.__wbg_gnssexactproductset_free(ptr, 0);
5980
+ }
5981
+ /**
5982
+ * @param {GnssProductIdentity} identity
5983
+ */
5984
+ addAvailable(identity) {
5985
+ _assertClass(identity, GnssProductIdentity);
5986
+ wasm.gnssexactproductset_addAvailable(this.__wbg_ptr, identity.__wbg_ptr);
5987
+ }
5988
+ /**
5989
+ * @param {GnssProductIdentity} identity
5990
+ */
5991
+ addExpected(identity) {
5992
+ _assertClass(identity, GnssProductIdentity);
5993
+ wasm.gnssexactproductset_addExpected(this.__wbg_ptr, identity.__wbg_ptr);
5994
+ }
5995
+ /**
5996
+ * @returns {number}
5997
+ */
5998
+ get availableCount() {
5999
+ const ret = wasm.gnssexactproductset_availableCount(this.__wbg_ptr);
6000
+ return ret >>> 0;
6001
+ }
6002
+ /**
6003
+ * @returns {number}
6004
+ */
6005
+ get expectedCount() {
6006
+ const ret = wasm.gnssexactproductset_expectedCount(this.__wbg_ptr);
6007
+ return ret >>> 0;
6008
+ }
6009
+ constructor() {
6010
+ const ret = wasm.gnssexactproductset_new();
6011
+ this.__wbg_ptr = ret;
6012
+ GnssExactProductSetFinalization.register(this, this.__wbg_ptr, this);
6013
+ return this;
6014
+ }
6015
+ validate() {
6016
+ const ret = wasm.gnssexactproductset_validate(this.__wbg_ptr);
6017
+ if (ret[1]) {
6018
+ throw takeFromExternrefTable0(ret[0]);
6019
+ }
6020
+ }
6021
+ }
6022
+ if (Symbol.dispose) GnssExactProductSet.prototype[Symbol.dispose] = GnssExactProductSet.prototype.free;
6023
+ exports.GnssExactProductSet = GnssExactProductSet;
6024
+
5962
6025
  /**
5963
6026
  * Stateful GNSS/INS filter resource.
5964
6027
  */
@@ -6383,6 +6446,21 @@ class GnssProductIdentity {
6383
6446
  const ptr = this.__destroy_into_raw();
6384
6447
  wasm.__wbg_gnssproductidentity_free(ptr, 0);
6385
6448
  }
6449
+ /**
6450
+ * @returns {string}
6451
+ */
6452
+ get analysisCenter() {
6453
+ let deferred1_0;
6454
+ let deferred1_1;
6455
+ try {
6456
+ const ret = wasm.gnssproductidentity_analysisCenter(this.__wbg_ptr);
6457
+ deferred1_0 = ret[0];
6458
+ deferred1_1 = ret[1];
6459
+ return getStringFromWasm0(ret[0], ret[1]);
6460
+ } finally {
6461
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
6462
+ }
6463
+ }
6386
6464
  /**
6387
6465
  * Stable validated identity key suitable for caller-managed cache paths.
6388
6466
  * @returns {string}
@@ -6464,6 +6542,18 @@ class GnssProductIdentity {
6464
6542
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
6465
6543
  }
6466
6544
  }
6545
+ /**
6546
+ * @returns {string | undefined}
6547
+ */
6548
+ get formatVersion() {
6549
+ const ret = wasm.gnssproductidentity_formatVersion(this.__wbg_ptr);
6550
+ let v1;
6551
+ if (ret[0] !== 0) {
6552
+ v1 = getStringFromWasm0(ret[0], ret[1]).slice();
6553
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
6554
+ }
6555
+ return v1;
6556
+ }
6467
6557
  /**
6468
6558
  * @returns {string | undefined}
6469
6559
  */
@@ -21835,6 +21925,41 @@ function buildDualFrequencyRinexRtkArc(ephemeris, base_obs, rover_obs, options)
21835
21925
  }
21836
21926
  exports.buildDualFrequencyRinexRtkArc = buildDualFrequencyRinexRtkArc;
21837
21927
 
21928
+ /**
21929
+ * Build the shared exact-cache commit bytes for a complete immutable candidate.
21930
+ *
21931
+ * Browser hosts should stage product, archive, and provenance under `entry_id`
21932
+ * and make the returned marker visible in the same IndexedDB transaction.
21933
+ * @param {GnssProductIdentity} identity
21934
+ * @param {string} source
21935
+ * @param {string} entry_id
21936
+ * @param {Uint8Array} product
21937
+ * @param {Uint8Array} archive
21938
+ * @param {Uint8Array} provenance
21939
+ * @returns {Uint8Array}
21940
+ */
21941
+ function buildExactCacheCommit(identity, source, entry_id, product, archive, provenance) {
21942
+ _assertClass(identity, GnssProductIdentity);
21943
+ const ptr0 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
21944
+ const len0 = WASM_VECTOR_LEN;
21945
+ const ptr1 = passStringToWasm0(entry_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
21946
+ const len1 = WASM_VECTOR_LEN;
21947
+ const ptr2 = passArray8ToWasm0(product, wasm.__wbindgen_malloc);
21948
+ const len2 = WASM_VECTOR_LEN;
21949
+ const ptr3 = passArray8ToWasm0(archive, wasm.__wbindgen_malloc);
21950
+ const len3 = WASM_VECTOR_LEN;
21951
+ const ptr4 = passArray8ToWasm0(provenance, wasm.__wbindgen_malloc);
21952
+ const len4 = WASM_VECTOR_LEN;
21953
+ const ret = wasm.buildExactCacheCommit(identity.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
21954
+ if (ret[3]) {
21955
+ throw takeFromExternrefTable0(ret[2]);
21956
+ }
21957
+ var v6 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
21958
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
21959
+ return v6;
21960
+ }
21961
+ exports.buildExactCacheCommit = buildExactCacheCommit;
21962
+
21838
21963
  /**
21839
21964
  * Build single-frequency RTK arc records from parsed RINEX OBS products.
21840
21965
  *
@@ -30057,6 +30182,48 @@ function velocityMidas(series, options) {
30057
30182
  }
30058
30183
  exports.velocityMidas = velocityMidas;
30059
30184
 
30185
+ /**
30186
+ * Verify a shared commit marker against the requested full identity, source,
30187
+ * and all three immutable byte objects. Returns the committed entry id.
30188
+ * @param {GnssProductIdentity} identity
30189
+ * @param {string} source
30190
+ * @param {Uint8Array} marker
30191
+ * @param {Uint8Array} product
30192
+ * @param {Uint8Array} archive
30193
+ * @param {Uint8Array} provenance
30194
+ * @returns {string}
30195
+ */
30196
+ function verifyExactCacheCommit(identity, source, marker, product, archive, provenance) {
30197
+ let deferred7_0;
30198
+ let deferred7_1;
30199
+ try {
30200
+ _assertClass(identity, GnssProductIdentity);
30201
+ const ptr0 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
30202
+ const len0 = WASM_VECTOR_LEN;
30203
+ const ptr1 = passArray8ToWasm0(marker, wasm.__wbindgen_malloc);
30204
+ const len1 = WASM_VECTOR_LEN;
30205
+ const ptr2 = passArray8ToWasm0(product, wasm.__wbindgen_malloc);
30206
+ const len2 = WASM_VECTOR_LEN;
30207
+ const ptr3 = passArray8ToWasm0(archive, wasm.__wbindgen_malloc);
30208
+ const len3 = WASM_VECTOR_LEN;
30209
+ const ptr4 = passArray8ToWasm0(provenance, wasm.__wbindgen_malloc);
30210
+ const len4 = WASM_VECTOR_LEN;
30211
+ const ret = wasm.verifyExactCacheCommit(identity.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
30212
+ var ptr6 = ret[0];
30213
+ var len6 = ret[1];
30214
+ if (ret[3]) {
30215
+ ptr6 = 0; len6 = 0;
30216
+ throw takeFromExternrefTable0(ret[2]);
30217
+ }
30218
+ deferred7_0 = ptr6;
30219
+ deferred7_1 = len6;
30220
+ return getStringFromWasm0(ptr6, len6);
30221
+ } finally {
30222
+ wasm.__wbindgen_free(deferred7_0, deferred7_1, 1);
30223
+ }
30224
+ }
30225
+ exports.verifyExactCacheCommit = verifyExactCacheCommit;
30226
+
30060
30227
  /**
30061
30228
  * Vertical one-dimensional percentile radius from an up variance.
30062
30229
  * @param {number} sigma_u_m2
@@ -30865,6 +31032,9 @@ const GlonassRecordJsFinalization = (typeof FinalizationRegistry === 'undefined'
30865
31032
  const GnssDistributionLocationFinalization = (typeof FinalizationRegistry === 'undefined')
30866
31033
  ? { register: () => {}, unregister: () => {} }
30867
31034
  : new FinalizationRegistry(ptr => wasm.__wbg_gnssdistributionlocation_free(ptr, 1));
31035
+ const GnssExactProductSetFinalization = (typeof FinalizationRegistry === 'undefined')
31036
+ ? { register: () => {}, unregister: () => {} }
31037
+ : new FinalizationRegistry(ptr => wasm.__wbg_gnssexactproductset_free(ptr, 1));
30868
31038
  const GnssInsFilterFinalization = (typeof FinalizationRegistry === 'undefined')
30869
31039
  ? { register: () => {}, unregister: () => {} }
30870
31040
  : new FinalizationRegistry(ptr => wasm.__wbg_gnssinsfilter_free(ptr, 1));
Binary file