@neilberkman/sidereon 0.34.0 → 0.36.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.
@@ -4721,6 +4721,7 @@ export class ObservationQcReport {
4721
4721
  readonly eventRecords: number;
4722
4722
  readonly intervalS: number | undefined;
4723
4723
  readonly intervalSource: string;
4724
+ readonly lintFindings: any;
4724
4725
  readonly missingEpochs: number;
4725
4726
  readonly multipath: any;
4726
4727
  readonly notes: any;
@@ -10757,6 +10758,15 @@ export function nequickGStecTecu(_eval: any): number;
10757
10758
  */
10758
10759
  export function networkField(input: any): any;
10759
10760
 
10761
+ /**
10762
+ * Newest published issue for one center + product family within a listing
10763
+ * body, or `null` when the listing is readable but holds no object of the
10764
+ * line - deliberately distinct from an unreadable listing, which throws.
10765
+ *
10766
+ * Returns `{date, issue, filename, observedAt}` or `null`.
10767
+ */
10768
+ export function newestPublishedProduct(center: string, family: string, listing_body: string): any;
10769
+
10760
10770
  /**
10761
10771
  * Scalar normalized innovation squared statistic.
10762
10772
  */
@@ -10927,6 +10937,20 @@ export function overlappingAdev(series: any, tau0_s: number, averaging_factors:
10927
10937
  */
10928
10938
  export function parallacticAngleDeg(observer_latitude_deg: number, hour_angle_deg: number, declination_deg: number): number;
10929
10939
 
10940
+ /**
10941
+ * Parse the object entries out of an archive listing body.
10942
+ *
10943
+ * Dialect detection is closed: a body that fits none of the recognized
10944
+ * listing surfaces (Apache/XHTML autoindex, AIUB whole-tree CSV, FTP
10945
+ * `LIST`) throws instead of returning a best-effort empty result - a silent
10946
+ * empty parse would be indistinguishable from "nothing published".
10947
+ * `observedAt` is the archive-reported modification text, verbatim; archives
10948
+ * disagree on format and time zone, so it is never reinterpreted.
10949
+ *
10950
+ * Returns an array of `{path, observedAt}`.
10951
+ */
10952
+ export function parseArchiveListing(body: string): any;
10953
+
10930
10954
  /**
10931
10955
  * Parse CCSDS CDM KVN text. Throws an `Error` on a parse failure.
10932
10956
  */
@@ -11165,6 +11189,21 @@ export function predictBatchBroadcast(broadcast: BroadcastEphemeris, satellites:
11165
11189
  */
11166
11190
  export function predictBatchSp3(sp3: Sp3, satellites: string[], receivers_ecef_m: Float64Array, epochs_j2000_s: Float64Array, options: any): PredictBatch;
11167
11191
 
11192
+ /**
11193
+ * Ordered cross-line candidates for one predicted IONEX map date.
11194
+ *
11195
+ * Both CODE predicted lines publish the same official filename for a map
11196
+ * date, but the two-day line is produced a day earlier, so `cod_prd2` is
11197
+ * routinely published while `cod_prd1` is still absent when CODE runs
11198
+ * behind. Candidates are ordered `cod_prd1` first, all cover the SAME map
11199
+ * date (never a neighboring day's map), and each keeps its own line
11200
+ * identity so resolved provenance names the line actually served. The walk
11201
+ * is opt-in; single-line requests keep their fail-closed behavior.
11202
+ *
11203
+ * Returns an array of `{center, date, sample, issue, filename, url}`.
11204
+ */
11205
+ export function predictedIonexLineCandidates(year: number, month: number, day: number, sample?: string | null): any;
11206
+
11168
11207
  /**
11169
11208
  * Prepare ionosphere-free single-frequency RTK arc inputs from a
11170
11209
  * dual-frequency arc and fixed wide-lane ambiguities.
@@ -11238,6 +11277,22 @@ export function pseudorangeDropReasonLabel(reason: PseudorangeDropReason): strin
11238
11277
  */
11239
11278
  export function pseudorangeVariance(elevation_deg: number, options: any): number;
11240
11279
 
11280
+ /**
11281
+ * Bounded archive listing URLs answering "newest published issue" for one
11282
+ * center + product family: at most two URLs, newest directory first (or one
11283
+ * whole-tree listing); never a polling loop. Browser and Node callers own
11284
+ * the fetch itself.
11285
+ */
11286
+ export function publicationListingUrls(center: string, family: string, year: number, month: number, day: number): string[];
11287
+
11288
+ /**
11289
+ * Whole minutes from a published issue's nominal epoch to a caller-supplied
11290
+ * UTC instant - the "N hours behind nominal" lag number. The verbatim
11291
+ * `observedAt` text carries the archive's own modification claim where one
11292
+ * exists.
11293
+ */
11294
+ export function publishedIssueAgeMinutes(year: number, month: number, day: number, issue: string, filename: string, now_year: number, now_month: number, now_day: number, now_hour: number, now_minute: number, now_second: number): bigint;
11295
+
11241
11296
  /**
11242
11297
  * Run direct post-solve residual RAIM.
11243
11298
  *
@@ -11319,6 +11374,15 @@ export function repeatPeriod(system: GnssSystem): number;
11319
11374
  */
11320
11375
  export function replica(prn: bigint, options: any): Int8Array;
11321
11376
 
11377
+ /**
11378
+ * Index of the first cross-line predicted-IONEX candidate whose exact
11379
+ * archive object appears in a listing body, or `null` when neither line is
11380
+ * published. Candidates stay in preference order and keep their own
11381
+ * identities, so the resolved index preserves the line actually served in
11382
+ * provenance.
11383
+ */
11384
+ export function resolveFirstPublishedPredictedIonex(year: number, month: number, day: number, sample: string | null | undefined, listing_body: string): number | undefined;
11385
+
11322
11386
  export function ricRotation(position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
11323
11387
 
11324
11388
  /**
@@ -10581,6 +10581,16 @@ class ObservationQcReport {
10581
10581
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
10582
10582
  }
10583
10583
  }
10584
+ /**
10585
+ * @returns {any}
10586
+ */
10587
+ get lintFindings() {
10588
+ const ret = wasm.observationqcreport_lintFindings(this.__wbg_ptr);
10589
+ if (ret[2]) {
10590
+ throw takeFromExternrefTable0(ret[1]);
10591
+ }
10592
+ return takeFromExternrefTable0(ret[0]);
10593
+ }
10584
10594
  /**
10585
10595
  * @returns {number}
10586
10596
  */
@@ -26774,6 +26784,32 @@ function networkField(input) {
26774
26784
  }
26775
26785
  exports.networkField = networkField;
26776
26786
 
26787
+ /**
26788
+ * Newest published issue for one center + product family within a listing
26789
+ * body, or `null` when the listing is readable but holds no object of the
26790
+ * line - deliberately distinct from an unreadable listing, which throws.
26791
+ *
26792
+ * Returns `{date, issue, filename, observedAt}` or `null`.
26793
+ * @param {string} center
26794
+ * @param {string} family
26795
+ * @param {string} listing_body
26796
+ * @returns {any}
26797
+ */
26798
+ function newestPublishedProduct(center, family, listing_body) {
26799
+ const ptr0 = passStringToWasm0(center, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26800
+ const len0 = WASM_VECTOR_LEN;
26801
+ const ptr1 = passStringToWasm0(family, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26802
+ const len1 = WASM_VECTOR_LEN;
26803
+ const ptr2 = passStringToWasm0(listing_body, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26804
+ const len2 = WASM_VECTOR_LEN;
26805
+ const ret = wasm.newestPublishedProduct(ptr0, len0, ptr1, len1, ptr2, len2);
26806
+ if (ret[2]) {
26807
+ throw takeFromExternrefTable0(ret[1]);
26808
+ }
26809
+ return takeFromExternrefTable0(ret[0]);
26810
+ }
26811
+ exports.newestPublishedProduct = newestPublishedProduct;
26812
+
26777
26813
  /**
26778
26814
  * Scalar normalized innovation squared statistic.
26779
26815
  * @param {number} innovation
@@ -27270,6 +27306,31 @@ function parallacticAngleDeg(observer_latitude_deg, hour_angle_deg, declination_
27270
27306
  }
27271
27307
  exports.parallacticAngleDeg = parallacticAngleDeg;
27272
27308
 
27309
+ /**
27310
+ * Parse the object entries out of an archive listing body.
27311
+ *
27312
+ * Dialect detection is closed: a body that fits none of the recognized
27313
+ * listing surfaces (Apache/XHTML autoindex, AIUB whole-tree CSV, FTP
27314
+ * `LIST`) throws instead of returning a best-effort empty result - a silent
27315
+ * empty parse would be indistinguishable from "nothing published".
27316
+ * `observedAt` is the archive-reported modification text, verbatim; archives
27317
+ * disagree on format and time zone, so it is never reinterpreted.
27318
+ *
27319
+ * Returns an array of `{path, observedAt}`.
27320
+ * @param {string} body
27321
+ * @returns {any}
27322
+ */
27323
+ function parseArchiveListing(body) {
27324
+ const ptr0 = passStringToWasm0(body, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
27325
+ const len0 = WASM_VECTOR_LEN;
27326
+ const ret = wasm.parseArchiveListing(ptr0, len0);
27327
+ if (ret[2]) {
27328
+ throw takeFromExternrefTable0(ret[1]);
27329
+ }
27330
+ return takeFromExternrefTable0(ret[0]);
27331
+ }
27332
+ exports.parseArchiveListing = parseArchiveListing;
27333
+
27273
27334
  /**
27274
27335
  * Parse CCSDS CDM KVN text. Throws an `Error` on a parse failure.
27275
27336
  * @param {string} text
@@ -27992,6 +28053,35 @@ function predictBatchSp3(sp3, satellites, receivers_ecef_m, epochs_j2000_s, opti
27992
28053
  }
27993
28054
  exports.predictBatchSp3 = predictBatchSp3;
27994
28055
 
28056
+ /**
28057
+ * Ordered cross-line candidates for one predicted IONEX map date.
28058
+ *
28059
+ * Both CODE predicted lines publish the same official filename for a map
28060
+ * date, but the two-day line is produced a day earlier, so `cod_prd2` is
28061
+ * routinely published while `cod_prd1` is still absent when CODE runs
28062
+ * behind. Candidates are ordered `cod_prd1` first, all cover the SAME map
28063
+ * date (never a neighboring day's map), and each keeps its own line
28064
+ * identity so resolved provenance names the line actually served. The walk
28065
+ * is opt-in; single-line requests keep their fail-closed behavior.
28066
+ *
28067
+ * Returns an array of `{center, date, sample, issue, filename, url}`.
28068
+ * @param {number} year
28069
+ * @param {number} month
28070
+ * @param {number} day
28071
+ * @param {string | null} [sample]
28072
+ * @returns {any}
28073
+ */
28074
+ function predictedIonexLineCandidates(year, month, day, sample) {
28075
+ var ptr0 = isLikeNone(sample) ? 0 : passStringToWasm0(sample, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
28076
+ var len0 = WASM_VECTOR_LEN;
28077
+ const ret = wasm.predictedIonexLineCandidates(year, month, day, ptr0, len0);
28078
+ if (ret[2]) {
28079
+ throw takeFromExternrefTable0(ret[1]);
28080
+ }
28081
+ return takeFromExternrefTable0(ret[0]);
28082
+ }
28083
+ exports.predictedIonexLineCandidates = predictedIonexLineCandidates;
28084
+
27995
28085
  /**
27996
28086
  * Prepare ionosphere-free single-frequency RTK arc inputs from a
27997
28087
  * dual-frequency arc and fixed wide-lane ambiguities.
@@ -28193,6 +28283,64 @@ function pseudorangeVariance(elevation_deg, options) {
28193
28283
  }
28194
28284
  exports.pseudorangeVariance = pseudorangeVariance;
28195
28285
 
28286
+ /**
28287
+ * Bounded archive listing URLs answering "newest published issue" for one
28288
+ * center + product family: at most two URLs, newest directory first (or one
28289
+ * whole-tree listing); never a polling loop. Browser and Node callers own
28290
+ * the fetch itself.
28291
+ * @param {string} center
28292
+ * @param {string} family
28293
+ * @param {number} year
28294
+ * @param {number} month
28295
+ * @param {number} day
28296
+ * @returns {string[]}
28297
+ */
28298
+ function publicationListingUrls(center, family, year, month, day) {
28299
+ const ptr0 = passStringToWasm0(center, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
28300
+ const len0 = WASM_VECTOR_LEN;
28301
+ const ptr1 = passStringToWasm0(family, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
28302
+ const len1 = WASM_VECTOR_LEN;
28303
+ const ret = wasm.publicationListingUrls(ptr0, len0, ptr1, len1, year, month, day);
28304
+ if (ret[3]) {
28305
+ throw takeFromExternrefTable0(ret[2]);
28306
+ }
28307
+ var v3 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
28308
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
28309
+ return v3;
28310
+ }
28311
+ exports.publicationListingUrls = publicationListingUrls;
28312
+
28313
+ /**
28314
+ * Whole minutes from a published issue's nominal epoch to a caller-supplied
28315
+ * UTC instant - the "N hours behind nominal" lag number. The verbatim
28316
+ * `observedAt` text carries the archive's own modification claim where one
28317
+ * exists.
28318
+ * @param {number} year
28319
+ * @param {number} month
28320
+ * @param {number} day
28321
+ * @param {string} issue
28322
+ * @param {string} filename
28323
+ * @param {number} now_year
28324
+ * @param {number} now_month
28325
+ * @param {number} now_day
28326
+ * @param {number} now_hour
28327
+ * @param {number} now_minute
28328
+ * @param {number} now_second
28329
+ * @returns {bigint}
28330
+ */
28331
+ function publishedIssueAgeMinutes(year, month, day, issue, filename, now_year, now_month, now_day, now_hour, now_minute, now_second) {
28332
+ const ptr0 = passStringToWasm0(issue, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
28333
+ const len0 = WASM_VECTOR_LEN;
28334
+ const ptr1 = passStringToWasm0(filename, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
28335
+ const len1 = WASM_VECTOR_LEN;
28336
+ const ret = wasm.publishedIssueAgeMinutes(year, month, day, ptr0, len0, ptr1, len1, now_year, now_month, now_day, now_hour, now_minute, now_second);
28337
+ if (ret[2]) {
28338
+ throw takeFromExternrefTable0(ret[1]);
28339
+ }
28340
+ return ret[0];
28341
+ }
28342
+ exports.publishedIssueAgeMinutes = publishedIssueAgeMinutes;
28343
+
28196
28344
  /**
28197
28345
  * Run direct post-solve residual RAIM.
28198
28346
  *
@@ -28390,6 +28538,32 @@ function replica(prn, options) {
28390
28538
  }
28391
28539
  exports.replica = replica;
28392
28540
 
28541
+ /**
28542
+ * Index of the first cross-line predicted-IONEX candidate whose exact
28543
+ * archive object appears in a listing body, or `null` when neither line is
28544
+ * published. Candidates stay in preference order and keep their own
28545
+ * identities, so the resolved index preserves the line actually served in
28546
+ * provenance.
28547
+ * @param {number} year
28548
+ * @param {number} month
28549
+ * @param {number} day
28550
+ * @param {string | null | undefined} sample
28551
+ * @param {string} listing_body
28552
+ * @returns {number | undefined}
28553
+ */
28554
+ function resolveFirstPublishedPredictedIonex(year, month, day, sample, listing_body) {
28555
+ var ptr0 = isLikeNone(sample) ? 0 : passStringToWasm0(sample, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
28556
+ var len0 = WASM_VECTOR_LEN;
28557
+ const ptr1 = passStringToWasm0(listing_body, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
28558
+ const len1 = WASM_VECTOR_LEN;
28559
+ const ret = wasm.resolveFirstPublishedPredictedIonex(year, month, day, ptr0, len0, ptr1, len1);
28560
+ if (ret[2]) {
28561
+ throw takeFromExternrefTable0(ret[1]);
28562
+ }
28563
+ return ret[0] === Number.MAX_SAFE_INTEGER ? undefined : ret[0];
28564
+ }
28565
+ exports.resolveFirstPublishedPredictedIonex = resolveFirstPublishedPredictedIonex;
28566
+
28393
28567
  /**
28394
28568
  * @param {Float64Array} position_km
28395
28569
  * @param {Float64Array} velocity_km_s
Binary file