# Corresponding third-party source

These unmodified archives contain only public upstream source. Include this directory in the downloadable application source distribution. Preserve both licenses in public/ephemeris and this notice.

- swisseph-wasm-source.tar.gz: https://codeload.github.com/prolaxu/swisseph-wasm/tar.gz/fe9065942986dd7a0cc3dada7d5396c87331198c
  SHA256 C9FD6326DDC1500DD66E9BC89D0FAC95029A22B9AFDC2A83E12157CC4698F49A
  This archive includes the complete vendored Swiss 2.10.03 C headers/source in deps/swisseph, ephemeris inputs in deps/sweph, GPL wrapper source and Emscripten build script tools/compile.sh. Its wasm/swisseph.js/.wasm/.data all match the shipped package/public assets byte for byte (SHA256s in docs/T2_VERIFICATION.md). Thus source identification does not rely only on a moving main URL or matching version label.
- swisseph-2.10.03-source.tar.gz: https://codeload.github.com/aloistr/swisseph/tar.gz/refs/tags/v2.10.03
  SHA256 8C166796767A560691581575B6EB4B4383D849E542B16647DCA2E0B127FB70B0
  Official core source and original license; the wrapper archive's vendored C is the actual corresponding build input.

To build third-party WASM, extract swisseph-wasm-source.tar.gz, enter its top-level directory in a bash environment with Emscripten emcc, run `bash tools/init-dependency.sh`, then `bash tools/compile.sh`. All C and ephemeris input files are included; no runtime ephemeris API is needed. The supplied generated files can be used directly without rebuilding. Toolchain version is not recorded by upstream; bit-identical recompilation across Emscripten versions is not claimed. No WASM rebuild was executed in this session.

To build the application, follow the application's README and locked npm install/build commands. The handwritten integration is src/core/astro-engine.ts and astronomy.ts. It imports the unmodified generated public loader with local asset locations and does not use the upstream high-level JS wrapper.

License clarification: commercial use is permitted under AGPL when its obligations are met. The separate Swiss professional license is an alternative for non-AGPL use. Preserve the upstream wrapper notice verbatim but consult public/ephemeris/SWISS-LICENSE.txt for authoritative core terms.
