fix: retain third-party license notices in distributions
Summary
Published bundles include third-party code but omitted its license texts. Generate dist/src/THIRD_PARTY_NOTICES.txt from modules retained in each build, including upstream NOTICE files and jpeg-js's source-level notices. Externalized or tree-shaken dependencies drop out automatically. Identical texts are shared, while distinct copyrights remain separate.
Retain the Apache-2.0 license and provenance for vendored Maestro fixtures and the Gradle wrapper. Require a non-empty generated notice file in the actual npm tarball.
13 files changed. Packaging and development compliance only; no CLI, Node.js, or device behavior changes.
Validation
Current head: c80338229d.
-
Missing-notice regression, same test command with the new test added to the base:
base 0f7e668007head 7410a5be4bFails: missing expected exception Passes: missing/empty notices rejected -
Focused license-generation and package-content tests: 8 passed, including shared-text deduplication, distinct copyrights, minification, external/tree-shaken dependencies, missing license text, and jpeg-js source notices.
-
pnpm buildgenerated the license report for the real bundle. -
Full checks passed at
7410a5be4b.pnpm check:affected --base 7410a5be4b --run --head c80338229dalso passed all runnable checks withexactCommit: true. -
Size versus
7410a5be4b: notices 92,631 → 47,966 bytes; packed tarball 1,543,992 → 1,541,891 bytes. All 27 packages and 57 distinct copyright lines retained. -
Independent review of the initial change and the compact formatter: no actionable findings.
-
GitHub CI pending; no device runs required for this packaging-only change.