# Third-party notices and data provenance

CycleCalcs incorporates third-party software and data. This file
reproduces, in full, every licence that requires reproduction, and
records the provenance of every dataset named in CREDITS.md, verified
against the files this repository actually ships.

CREDITS.md points here. A machine-readable form of the same rights
position is served from `GET /v2/attribution`, and the plain-language
version for API callers is at `/api/terms.html`.

---

## PART 1. LICENCES REPRODUCED IN FULL

### 1.1 Astronomy Engine (MIT)

Vendored at `netlify/lib/vendor/astronomy-engine.mjs` and
`assets/vendor/astronomy.browser.min.js`, version 2.1.19. This is the
astronomy library behind every computed value the site and the API
return.

Upstream: https://github.com/cosinekitty/astronomy

The vendored file's own notice, reproduced in full and unedited:

    MIT License

    Copyright (c) 2019-2023 Don Cross <cosinekitty@gmail.com>

    Permission is hereby granted, free of charge, to any person obtaining
    a copy of this software and associated documentation files (the
    "Software"), to deal in the Software without restriction, including
    without limitation the rights to use, copy, modify, merge, publish,
    distribute, sublicense, and/or sell copies of the Software, and to
    permit persons to whom the Software is furnished to do so, subject to
    the following conditions:

    The above copyright notice and this permission notice shall be
    included in all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
    BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

The "2019-2023" year range above is printed in the vendored file itself
and is reproduced unchanged. It is older than the current year because
the notice obligation attaches to the copy this repository redistributes,
not to whatever copyright line the upstream project carries today.

Serving computed output over HTTP is not distributing this Software; the
MIT licence has no network clause, so an API response built with this
engine carries no MIT obligation of its own. See PART 3.

### 1.2 d3-celestial (BSD-3-Clause)

Data derived from d3-celestial ships in four places:

  - `assets/data/constellation-lines.json`, the 88-constellation figure
    lines
  - `assets/data/milkyway.json`, the Milky Way isophote outline (see the
    open item in PART 4: d3-celestial attributes this specific dataset to
    a third party, Jose R. Vieira, whose own licence position is
    unresolved)
    (`assets/data/sky-stars-deep.json` NO LONGER comes from d3-celestial.
    It was built from d3-celestial's `stars.8.json`, which carries the XHIP
    compilation and so ESA astrometry; it is now built from the SAO catalog.
    See PART 2.1.)
  - `assets/data/messier.json`, the base layer of designation, type,
    magnitude, angular size and coordinates for the Messier and Caldwell
    objects

Upstream: https://github.com/ofrohn/d3-celestial

Full text, reproduced because BSD-3-Clause clause 2 requires reproduction
rather than a bare citation:

    Copyright (c) 2015, Olaf Frohn
    All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are
    met:

    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.

    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the
       distribution.

    3. Neither the name of the copyright holder nor the names of its
       contributors may be used to endorse or promote products derived
       from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Olaf Frohn does not endorse CycleCalcs. Clause 3 above forbids using his
name or the d3-celestial name to suggest otherwise.

### 1.3 GeoNames place index (CC BY 4.0)

Backs `GET /v2/places` and the `place` parameter accepted by every
location-taking `/v2` endpoint, generated into
`netlify/lib/v2/data/places-top.mjs` and `places-rest.mjs`; the site's
own place search uses the sibling reduction in `assets/data/cities-top.txt`
and `assets/data/cities-rest.txt`.

Source: https://download.geonames.org/export/dump/
Terms: https://www.geonames.org/about.html: "available for download free
of charge under a creative commons attribution license"
Licence: CC BY 4.0, https://creativecommons.org/licenses/by/4.0/

Attribution is a condition of this licence, not a courtesy, and it is
discharged per response rather than once for the whole API: any `/v2`
response that resolves a place name carries `meta.rights` of
`"attribution_required"` and the exact required credit line in
`meta.attribution.text` and in `meta.attribution.sources`. That credit
line, reproduced here verbatim because it is the string the API actually
emits:

> "Place names and coordinates from GeoNames (geonames.org), CC BY 4.0."

A response that does not resolve a place name carries `meta.rights` of
`"unrestricted"` and owes GeoNames nothing, because it never touched the
index. See `/api/terms.html` for what this means for a caller.

---

## PART 2. OTHER DATASETS NAMED IN CREDITS.md

None of the entries below requires reproduction of licence text (the
underlying licences are short permissive grants, public domain notices,
or, in one case, an open question rather than a grant). Each is recorded
here because CREDITS.md names it, verified against the files this
repository actually ships as of this notice.

### 2.1 Star catalogues (NASA HEASARC) - CLOSED, formerly ESA Hipparcos

Files: `assets/data/sky-stars.json`, `assets/data/sky-stars2.json`,
`assets/data/star-names.json` and `assets/data/constellations.json`
(naked-eye star positions, magnitudes, colour index, the name-to-star join
and per-constellation metadata), plus `assets/data/sky-stars-deep.json`
(the binocular-depth tier). All are generated at build time and none
redistributes a catalogue in raw form.

Sources, both served by NASA's High Energy Astrophysics Science Archive
Research Center:

  - **Bright Star Catalog, 5th Revised Ed. (Preliminary)**, Hoffleit, D.
    and Warren, Jr., W.H., 1991. Naked-eye stars.
    https://heasarc.gsfc.nasa.gov/W3Browse/star-catalog/bsc5p.html
  - **Smithsonian Astrophysical Observatory Star Catalog**, SAO Staff
    1966, J2000 revision. The depth tier fainter than magnitude 6.5.
    https://heasarc.gsfc.nasa.gov/W3Browse/star-catalog/sao.html

Neither HEASARC page asserts any copyright, licence or usage restriction,
and both tables declare `table_security = public` in the data files
themselves. The quantities used are positions, magnitudes, colour indices
and catalogue cross-identifiers: measurements of the sky rather than
authorship. Credit is given here because crediting a source is right even
where no licence compels it.

**THIS ITEM WAS PREVIOUSLY OPEN AND IS NOW CLOSED.** These files were
built from the ESA Hipparcos Catalogue, and `sky-stars-deep.json` from the
XHIP compilation by way of d3-celestial, which is the same ESA
observations at one remove. ESA licenses Hipparcos under **CC BY-NC 3.0
IGO** and requires written authorisation for any use that "directly or
indirectly generates a financial gain". This site carries advertising and
sells API access, so that term could not be satisfied by a credit line.
No authorisation was sought; the dependency was removed instead. No ESA
data, and nothing derived from ESA data, remains in any shipped file.

Deep-tier colour is an **estimate, not a measurement**, and the payload
says so: SAO carries no B-V, so `sky-stars-deep.json` sets
`bv_source: "spectral_type_estimate"` and the value is derived from the
star's spectral type. The naked-eye tiers use BSC5P's measured B-V.

One residual mention of Hipparcos is deliberate and is not a data
dependency. `tools/constellation-facts.mjs` carries 21 hand-curated
`distLy` values for individual bright stars, cited as "Hipparcos/Gaia
values as commonly quoted". Those are twenty-one individual published
quantities quoted as facts, not an extraction from a database, and the
per-star distance of Betelgeuse is not a protectable element of anyone's
catalogue. Naming the measuring mission is a citation. No file in
`assets/data/` derives from ESA data in any amount.

### 2.2 NOAA Space Weather Prediction Center

File: `assets/js/sunspot-planets.js` (yearly mean total sunspot number).

Source: https://www.swpc.noaa.gov/products/solar-cycle-progression
Licence: United States Government work, public domain (17 U.S.C. 105). No
attribution condition; credited as good practice and for provenance.

### 2.3 Wikipedia, "List of Messier objects"

Used at build time only, as a cross-validation source in
`tools/build-messier-facts.mjs`: only uncopyrightable measurements (NGC
identifier, distance, common name) are taken, and each is checked against
an independent source before it ships.

Source: https://en.wikipedia.org/wiki/List_of_Messier_objects
Licence: the article text is CC BY-SA 4.0. The values taken here are
facts, not the licensed prose; credited as good practice.

### 2.4 IAU Catalog of Star Names (IAU Working Group on Star Names, WGSN)

Files: `tools/star-names-wgsn.json`, `assets/data/star-names.json`,
`assets/data/star-names-index.json`.

Source: https://exopla.net/star-names/modern-iau-star-names/ (an IAU-data
mirror; recorded as the source in the fetched file itself)
Licence: CC BY 4.0. The IAU states: "All IAU-produced products (Images,
Videos, Texts) are released under Creative Commons Attribution (i.e. free
to use in all perpetuity, world-wide, as long as the source is
mentioned)."

Credit: "Star names: IAU Catalog of Star Names (IAU-CSN), IAU Working
Group on Star Names (WGSN). International Astronomical Union, CC BY 4.0."

### 2.5 International Meteor Organization Working List of Visual Meteor Showers

Files: `assets/js/meteors.js`, `tools/meteor-catalog.mjs` (peak solar
longitudes, radiants, drifts, ZHR values and entry speeds, cross-checked
against the American Meteor Society calendar).

Source: https://www.imo.net/resources/calendar/
Licence position: the IMO publishes no commercial redistribution grant
and asserts copyright in its website text, graphics and table layout. The
values taken here are astronomical parameters, independently tabulated in
this repository's own files rather than reproduced as the IMO's table; no
IMO prose, graphic or table layout ships. Credited as good practice and
for provenance.

---

## PART 3. RIGHTS IN COMPUTED OUTPUT

Values computed by this software (positions, phases, rise and set times,
twilight, eclipse circumstances, conjunctions, seasons, aspect angles and
every other quantity CycleCalcs calculates rather than obtains from a
third party) are facts about the physical universe. CycleCalcs LLC, a
Virginia limited liability company, asserts no copyright and no database
right in them. See LICENSE clause 3 for the
repository-level grant, and `/api/terms.html` for the version published to
API callers, which is kept byte-consistent with the `output_rights`
string `GET /v2` publishes.

---

## PART 4. OPEN ITEMS

Recorded openly rather than omitted.

  1. ~~Hipparcos and Tycho are distributed by ESA under CC BY-NC 3.0
     IGO.~~ **CLOSED.** The ESA dependency was removed rather than
     licensed: star data now comes from the Bright Star Catalog and the
     SAO catalog via NASA HEASARC, neither of which asserts a
     restriction. See PART 2.1. Kept here, struck through rather than
     deleted, so the history of the decision stays legible.
  2. No licence statement has been located for the Milky Way Outline
     Catalog attributed to Jose R. Vieira, which underlies
     `assets/data/milkyway.json` by way of d3-celestial's `mw.json`.
     d3-celestial's own BSD-3-Clause notice (PART 1.2) covers Olaf
     Frohn's compilation and cannot convey rights in an underlying
     catalogue Frohn may not himself hold.

Neither item currently blocks anything this repository ships to a
browser or to the frozen `/v1` API. Both are recorded here so they are
not lost, and so this file states the honest position rather than a
convenient one.
