Camoufox fpgen (TypeScript)
===========================

The files in this directory are a TypeScript port of fpgen 1.3.0
("fingerprint-generator", https://github.com/scrapfly/fingerprint-generator),
the browser fingerprint generator by daijro and Scrapfly.

fpgen is licensed under the Apache License, Version 2.0. This port is a
Derivative Work of it and is distributed under the same license:

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use these files except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

The upstream project ships no NOTICE file of its own.

Changes made in the port (Apache-2.0 section 4(b)):

  - Translated from Python to TypeScript. The generator, Bayesian network
    (beam-search trace), condition handling, query and trace follow the
    Python line for line; see the header of each file for any deliberate
    deviation.
  - The model is NOT fetched the way fpgen fetches it (unverified TLS, no
    checksum, first-listed GitHub release). It is downloaded from the release
    pinned in Camoufox's scripts/data/fpgen-model.json with TLS verification
    on, and its sha256 is checked before anything is extracted (model.ts).
  - values.dat is decompressed once with Node's built-in zstd and cached on
    disk, instead of being read through indexed_zstd.
  - The deprecated get_shared_possibilities / get_distribution_for_node
    helpers and the `python -m fpgen` CLI are not ported.

The fingerprint model data itself (fingerprint-network.json, values.json,
values.dat) is not part of this directory; it is downloaded at run time from
the upstream release and remains under its upstream terms.
