@neilberkman/sidereon 0.28.1 → 0.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 0.29.1 - 2026-07-15
6
+
7
+ - Derives CODE predicted IONEX P1 and P2 direct locations from their current
8
+ official tier-specific HTTPS directories, including identity-year rollover.
9
+ - Keeps same-filename P1 and P2 exact product cache keys distinct.
10
+ - Builds against `sidereon` and `sidereon-core` 0.29.1.
11
+
12
+ ## 0.29.0 - 2026-07-15
13
+
14
+ - Adds pure exact GNSS product identity and explicit distribution-location
15
+ derivation for direct archives, NASA CDDIS/Earthdata, local files, and
16
+ in-memory input. The WASM package performs no hidden network or credential IO.
17
+ - Builds against `sidereon` and `sidereon-core` 0.29.0.
18
+
3
19
  ## 0.28.1 - 2026-07-15
4
20
 
5
21
  - Builds against `sidereon` and `sidereon-core` 0.28.1, inheriting the repaired
package/README.md CHANGED
@@ -102,6 +102,47 @@ console.log(solution.rxClockS); // receiver clock bias, seconds
102
102
  the same pattern: an options object in, a result object with `Float64Array`
103
103
  positions and scalar attributes out.
104
104
 
105
+ ## Exact GNSS product sources
106
+
107
+ Product identity and distribution are separate. The pure derivation functions
108
+ perform no network or file IO:
109
+
110
+ ```js
111
+ import { distributionLocation, productIdentity } from "@neilberkman/sidereon";
112
+
113
+ const identity = productIdentity("cod", "sp3", 2026, 7, 12);
114
+ console.log(identity.officialFilename);
115
+ // COD0MGXFIN_20261930000_01D_05M_ORB.SP3
116
+
117
+ const cddis = distributionLocation(
118
+ "cod",
119
+ "sp3",
120
+ 2026,
121
+ 7,
122
+ 12,
123
+ undefined, // catalog default cadence
124
+ undefined, // no ultra-rapid issue
125
+ "nasa_cddis",
126
+ );
127
+ console.log(cddis.originalUrl);
128
+ console.log(cddis.compression); // gzip
129
+ ```
130
+
131
+ `productIdentity` returns publisher, solution class, campaign, date, issue,
132
+ coverage span, cadence, official filename, format, and a validated cache key.
133
+ `distributionLocation` accepts `direct`, `nasa_cddis`, `local_file`, or
134
+ `in_memory` and returns public URL, archive filename, and transport compression.
135
+ Changing the source cannot change the exact product. Unsupported combinations
136
+ throw instead of selecting another center, tier, issue, date, cadence, or
137
+ family.
138
+
139
+ Browser and Node callers retain control of `fetch`, Earthdata credentials,
140
+ retries, and cache policy. Send credentials only to NASA's documented hosts;
141
+ remove URL queries from diagnostics; reject HTML success bodies; validate
142
+ content length, gzip completion, and hashes; then parse with `loadSp3` or
143
+ `loadIonex`. See [NASA CDDIS archive access](https://www.earthdata.nasa.gov/centers/cddis-daac/archive-access)
144
+ and [Earthdata Login data access](https://urs.earthdata.nasa.gov/documentation/for_users/data_access/curl_and_wget).
145
+
105
146
  ## Example: post-solve integrity
106
147
 
107
148
  Use `raim` on per-satellite post-fit residuals after a solve. The direct result
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neilberkman/sidereon",
3
- "version": "0.28.1",
3
+ "version": "0.29.1",
4
4
  "description": "WebAssembly / JavaScript interface over the sidereon GNSS + astrodynamics engine: SP3 loading and multi-product merge, SPP / RTK (float + fixed) / PPP (float + fixed) positioning, IONEX slant delay, SGP4 and numerical orbit propagation, RINEX observation/navigation/clock parsing, CRINEX (Hatanaka) decoding, observable-domain math (carrier combinations, cycle slips, Hatch smoothing, weighting, velocity, GPS C/A signal), and the astro domain (scale-tagged time, frame transforms, Sun/Moon ephemerides, eclipse / body angles, DOP, passes / visibility, conjunction + collision probability, CDM / OMM / ANTEX parsing, RF link budget)",
5
5
  "type": "module",
6
6
  "license": "MIT",