@neilberkman/sidereon 0.33.1 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.34.0 - 2026-07-21
6
+
7
+ - Adds `supportedSamples`, returning the core's complete date- and issue-aware
8
+ cadence set as a JavaScript array. `productIdentity` enforces that same set,
9
+ including the GFZ ultra-rapid overlap and ESA ultra-rapid issue transition.
10
+ - Adds the `Sp3ContentStartConvention` enum,
11
+ `sp3ContentStartConvention`, and `sp3ContentStartOffsetSeconds` with strict
12
+ issue validation. Historical GFZ ultra-rapid identity-derived exact requests
13
+ now inherit the cataloged one-day content-start offset, including across a
14
+ GPS week boundary.
15
+ - Exact SP3 parsing now inherits the core's complete-record terminal validation:
16
+ standards-compatible ASCII-space padding and LF/CRLF endings are accepted,
17
+ while malformed, missing, premature, or followed-by-data `EOF` records still
18
+ fail closed. The shared cross-interface corpus exercises all accepted and
19
+ rejected forms through `parseExactSp3`; numerical behavior is unchanged.
20
+ - Caller-built exact identities now reject a span that is syntactically valid
21
+ but not cataloged for that product family. This is an integrity-policy change
22
+ only; JavaScript/TypeScript APIs and numerical calculations are unchanged.
23
+ - Builds against `sidereon` and `sidereon-core` 0.34.0.
24
+
5
25
  ## 0.33.1 - 2026-07-20
6
26
 
7
27
  - Node ESM and CommonJS now both select the synchronous Node build; browser and
package/README.md CHANGED
@@ -125,7 +125,11 @@ import {
125
125
  parseExactSp3,
126
126
  productIdentity,
127
127
  productSolutionClass,
128
+ Sp3ContentStartConvention,
129
+ sp3ContentStartConvention,
130
+ sp3ContentStartOffsetSeconds,
128
131
  sp3MergeInputIdentity,
132
+ supportedSamples,
129
133
  } from "@neilberkman/sidereon";
130
134
 
131
135
  const identity = productIdentity("cod", "sp3", 2026, 7, 12);
@@ -164,6 +168,11 @@ console.log(productSolutionClass("igs", "sp3")); // final
164
168
  console.log(productSolutionClass("igs", "nav")); // broadcast
165
169
  console.log(defaultSampleForDate("gfz", "sp3", 2021, 5, 17)); // 15M
166
170
  console.log(defaultSampleForDate("gfz_ult", "sp3", 2021, 5, 16)); // 05M
171
+ console.log(supportedSamples("gfz_ult", "sp3", 2021, 5, 15, "0000"));
172
+ // ["15M", "05M"]; the 2100 issue supports only "15M"
173
+ const start = sp3ContentStartConvention("gfz_ult", 2022, 9, 7, "0300");
174
+ console.log(start === Sp3ContentStartConvention.FilenameEpochMinusOneDay); // true
175
+ console.log(sp3ContentStartOffsetSeconds(start)); // -86400n
167
176
 
168
177
  // Exact acquisition accepts either the official half-open or inclusive epoch
169
178
  // grid, but rejects malformed, irregular, wrong-cadence, or wrong-span bytes.
@@ -173,6 +182,15 @@ console.log(validated.coverage); // ExactSp3Coverage.HalfOpen or .Inclusive
173
182
  const sp3 = validated.product;
174
183
  ```
175
184
 
185
+ `supportedSamples` reports the complete officially evidenced cadence set for
186
+ the selected product date and issue; `productIdentity` rejects any cadence not
187
+ in that set. The content-start query is strict catalog metadata: an ultra-rapid
188
+ issue is required and validated, while product lines without issue times reject
189
+ one.
190
+ Its offset is a JavaScript `bigint`, matching this interface's other exact
191
+ `i64` values. `ExactSp3Request.fromIdentity` applies the same convention
192
+ internally and does not expose an override.
193
+
176
194
  `artifactRecord` contains the requested and parsed/resolved product identities,
177
195
  explicit distributor, official filename, decompressed and archive SHA-256/length
178
196
  pairs, and archive compression. Contributor enumeration does not affect mean or
@@ -76,9 +76,9 @@ source documents how it is based on and differs from the original. The complete
76
76
  official IERS notice is reproduced in
77
77
  `licenses/IERS-Conventions-Software-License.txt`.
78
78
 
79
- The exact public non-test tide sources distributed in `sidereon-core` 0.33.1
79
+ The exact public non-test tide sources distributed in `sidereon-core` 0.34.0
80
80
  are included under
81
- `third_party_source/sidereon-core-0.33.1/tides/`. These copies provide the
81
+ `third_party_source/sidereon-core-0.34.0/tides/`. These copies provide the
82
82
  source for every tide routine in the compiled WebAssembly artifact; they are
83
83
  not represented as original IERS software or as endorsed by the IERS
84
84
  Conventions Center.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neilberkman/sidereon",
3
- "version": "0.33.1",
3
+ "version": "0.34.0",
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",
@@ -46,9 +46,9 @@
46
46
  "licenses/IERS-Conventions-Software-License.txt",
47
47
  "licenses/SciPy-BSD-3-Clause.txt",
48
48
  "licenses/libloading-ISC.txt",
49
- "third_party_source/sidereon-core-0.33.1/tides/mod.rs",
50
- "third_party_source/sidereon-core-0.33.1/tides/ocean.rs",
51
- "third_party_source/sidereon-core-0.33.1/tides/pole.rs",
49
+ "third_party_source/sidereon-core-0.34.0/tides/mod.rs",
50
+ "third_party_source/sidereon-core-0.34.0/tides/ocean.rs",
51
+ "third_party_source/sidereon-core-0.34.0/tides/pole.rs",
52
52
  "pkg/sidereon.js",
53
53
  "pkg/sidereon.d.ts",
54
54
  "pkg/sidereon_bg.wasm",