@hyperfrontend/builder 0.1.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 +63 -0
- package/FUNDING.md +141 -0
- package/LICENSE.md +21 -0
- package/README.md +162 -0
- package/SECURITY.md +82 -0
- package/THIRD_PARTY_LICENSES.md +13 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.cjs.js +7 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/console/index.cjs.js +13 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/console/index.esm.js +8 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/date/index.cjs.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/date/index.esm.js +4 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/encoding/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/encoding/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.cjs.js +6 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/function/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/function/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.cjs.js +7 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/map/index.cjs.js +6 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/map/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.cjs.js +7 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/messaging/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/messaging/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/number/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/number/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.cjs.js +13 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js +8 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.cjs.js +6 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/reflect/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/reflect/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/regexp/index.cjs.js +6 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/regexp/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.cjs.js +6 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/string/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/string/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/symbol/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/symbol/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/timers/index.cjs.js +13 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/timers/index.esm.js +10 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/typed-arrays/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/typed-arrays/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/url/index.cjs.js +6 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/url/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/weak-map/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/weak-map/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/weak-set/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/weak-set/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/websocket/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/websocket/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/locked/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/locked/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/locked-prop-descriptors/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/locked-prop-descriptors/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/locked-props/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/locked-props/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/logging/index.cjs.js +191 -0
- package/_dependencies/@hyperfrontend/logging/index.esm.js +186 -0
- package/_dependencies/@hyperfrontend/project-scope/cli/index.cjs.js +196 -0
- package/_dependencies/@hyperfrontend/project-scope/cli/index.esm.js +196 -0
- package/_dependencies/@hyperfrontend/project-scope/core/encoding/index.cjs.js +82 -0
- package/_dependencies/@hyperfrontend/project-scope/core/encoding/index.esm.js +82 -0
- package/_dependencies/@hyperfrontend/project-scope/core/fs/index.cjs.js +154 -0
- package/_dependencies/@hyperfrontend/project-scope/core/fs/index.esm.js +149 -0
- package/_dependencies/@hyperfrontend/project-scope/core/index.cjs.js +459 -0
- package/_dependencies/@hyperfrontend/project-scope/core/index.esm.js +440 -0
- package/_dependencies/@hyperfrontend/project-scope/core/logger/index.cjs.js +84 -0
- package/_dependencies/@hyperfrontend/project-scope/core/logger/index.esm.js +80 -0
- package/_dependencies/@hyperfrontend/project-scope/core/path/index.cjs.js +26 -0
- package/_dependencies/@hyperfrontend/project-scope/core/path/index.esm.js +22 -0
- package/_dependencies/@hyperfrontend/project-scope/core/platform/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/project-scope/core/platform/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/dependencies/index.cjs.js +90 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/dependencies/index.esm.js +90 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/entry-points/index.cjs.js +174 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/entry-points/index.esm.js +174 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/framework/index.cjs.js +174 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/framework/index.esm.js +172 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/index.cjs.js +184 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/index.esm.js +184 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/project-type/index.cjs.js +172 -0
- package/_dependencies/@hyperfrontend/project-scope/heuristics/project-type/index.esm.js +172 -0
- package/_dependencies/@hyperfrontend/project-scope/index.cjs.js +222 -0
- package/_dependencies/@hyperfrontend/project-scope/index.esm.js +219 -0
- package/_dependencies/@hyperfrontend/project-scope/models/index.cjs.js +2 -0
- package/_dependencies/@hyperfrontend/project-scope/models/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/project-scope/nx/index.cjs.js +94 -0
- package/_dependencies/@hyperfrontend/project-scope/nx/index.esm.js +94 -0
- package/_dependencies/@hyperfrontend/project-scope/project/config/index.cjs.js +172 -0
- package/_dependencies/@hyperfrontend/project-scope/project/config/index.esm.js +172 -0
- package/_dependencies/@hyperfrontend/project-scope/project/index.cjs.js +176 -0
- package/_dependencies/@hyperfrontend/project-scope/project/index.esm.js +176 -0
- package/_dependencies/@hyperfrontend/project-scope/project/package/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/project/package/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/project/root/index.cjs.js +154 -0
- package/_dependencies/@hyperfrontend/project-scope/project/root/index.esm.js +153 -0
- package/_dependencies/@hyperfrontend/project-scope/project/traversal/index.cjs.js +91 -0
- package/_dependencies/@hyperfrontend/project-scope/project/traversal/index.esm.js +89 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/backend/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/backend/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/build/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/build/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/frontend/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/frontend/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/index.cjs.js +171 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/index.esm.js +169 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/legacy/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/legacy/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/linting/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/linting/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/monorepo/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/monorepo/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/testing/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/testing/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/types/index.cjs.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/tech/types/index.esm.js +88 -0
- package/_dependencies/@hyperfrontend/project-scope/vfs/index.cjs.js +102 -0
- package/_dependencies/@hyperfrontend/project-scope/vfs/index.esm.js +102 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/compare/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/compare/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/models/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/models/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/operations/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/operations/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/parse/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/parse/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/serialize/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/changelog/serialize/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/commits/author/index.cjs.js +2403 -0
- package/_dependencies/@hyperfrontend/versioning/commits/author/index.esm.js +2381 -0
- package/_dependencies/@hyperfrontend/versioning/commits/classify/index.cjs.js +38 -0
- package/_dependencies/@hyperfrontend/versioning/commits/classify/index.esm.js +30 -0
- package/_dependencies/@hyperfrontend/versioning/commits/format/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/commits/format/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/commits/index.cjs.js +2457 -0
- package/_dependencies/@hyperfrontend/versioning/commits/index.esm.js +2407 -0
- package/_dependencies/@hyperfrontend/versioning/commits/models/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/commits/models/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/commits/parse/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/commits/parse/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/commits/validate/index.cjs.js +27 -0
- package/_dependencies/@hyperfrontend/versioning/commits/validate/index.esm.js +25 -0
- package/_dependencies/@hyperfrontend/versioning/flow/executor/index.cjs.js +36 -0
- package/_dependencies/@hyperfrontend/versioning/flow/executor/index.esm.js +36 -0
- package/_dependencies/@hyperfrontend/versioning/flow/index.cjs.js +51 -0
- package/_dependencies/@hyperfrontend/versioning/flow/index.esm.js +51 -0
- package/_dependencies/@hyperfrontend/versioning/flow/models/index.cjs.js +30 -0
- package/_dependencies/@hyperfrontend/versioning/flow/models/index.esm.js +28 -0
- package/_dependencies/@hyperfrontend/versioning/flow/presets/index.cjs.js +47 -0
- package/_dependencies/@hyperfrontend/versioning/flow/presets/index.esm.js +45 -0
- package/_dependencies/@hyperfrontend/versioning/flow/steps/index.cjs.js +47 -0
- package/_dependencies/@hyperfrontend/versioning/flow/steps/index.esm.js +45 -0
- package/_dependencies/@hyperfrontend/versioning/git/index.cjs.js +8 -0
- package/_dependencies/@hyperfrontend/versioning/git/index.esm.js +9 -0
- package/_dependencies/@hyperfrontend/versioning/git/models/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/git/models/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/git/operations/index.cjs.js +3 -0
- package/_dependencies/@hyperfrontend/versioning/git/operations/index.esm.js +3 -0
- package/_dependencies/@hyperfrontend/versioning/index.cjs.js +2481 -0
- package/_dependencies/@hyperfrontend/versioning/index.esm.js +2423 -0
- package/_dependencies/@hyperfrontend/versioning/registry/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/registry/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/registry/models/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/registry/models/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/registry/npm/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/registry/npm/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/repository/index.cjs.js +18 -0
- package/_dependencies/@hyperfrontend/versioning/repository/index.esm.js +17 -0
- package/_dependencies/@hyperfrontend/versioning/repository/models/index.cjs.js +11 -0
- package/_dependencies/@hyperfrontend/versioning/repository/models/index.esm.js +10 -0
- package/_dependencies/@hyperfrontend/versioning/repository/parse/index.cjs.js +184 -0
- package/_dependencies/@hyperfrontend/versioning/repository/parse/index.esm.js +185 -0
- package/_dependencies/@hyperfrontend/versioning/repository/url/index.cjs.js +10 -0
- package/_dependencies/@hyperfrontend/versioning/repository/url/index.esm.js +8 -0
- package/_dependencies/@hyperfrontend/versioning/semver/compare/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/compare/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/format/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/format/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/increment/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/increment/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/models/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/models/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/parse/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/semver/parse/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/workspace/discovery/index.cjs.js +29 -0
- package/_dependencies/@hyperfrontend/versioning/workspace/discovery/index.esm.js +29 -0
- package/_dependencies/@hyperfrontend/versioning/workspace/index.cjs.js +29 -0
- package/_dependencies/@hyperfrontend/versioning/workspace/index.esm.js +29 -0
- package/_dependencies/@hyperfrontend/versioning/workspace/models/index.cjs.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/workspace/models/index.esm.js +1 -0
- package/_dependencies/@hyperfrontend/versioning/workspace/operations/index.cjs.js +2 -0
- package/_dependencies/@hyperfrontend/versioning/workspace/operations/index.esm.js +2 -0
- package/_dependencies/@rollup/plugin-commonjs/index.cjs.js +6629 -0
- package/_dependencies/@rollup/plugin-commonjs/index.esm.js +6608 -0
- package/_dependencies/@rollup/plugin-json/index.cjs.js +2324 -0
- package/_dependencies/@rollup/plugin-json/index.esm.js +2322 -0
- package/_dependencies/@rollup/plugin-node-resolve/index.cjs.js +5430 -0
- package/_dependencies/@rollup/plugin-node-resolve/index.esm.js +5424 -0
- package/_dependencies/@rollup/plugin-terser/index.cjs.js +33220 -0
- package/_dependencies/@rollup/plugin-terser/index.esm.js +33217 -0
- package/_dependencies/@rollup/plugin-typescript/index.cjs.js +4840 -0
- package/_dependencies/@rollup/plugin-typescript/index.esm.js +4819 -0
- package/_dependencies/postject/index.cjs.js +5140 -0
- package/_dependencies/postject/index.esm.js +5131 -0
- package/_dependencies/rollup/index.cjs.js +24668 -0
- package/_dependencies/rollup/index.d.ts +1921 -0
- package/_dependencies/rollup/index.esm.js +24652 -0
- package/_dependencies/rollup-plugin-dts/index.cjs.js +6547 -0
- package/_dependencies/rollup-plugin-dts/index.esm.js +6537 -0
- package/_shared/bin/format/index.cjs.js +7 -0
- package/_shared/bin/format/index.esm.js +5 -0
- package/_shared/bin/native/codesign/index.cjs.js +30 -0
- package/_shared/bin/native/codesign/index.esm.js +26 -0
- package/_shared/bin/native/host-binary/index.cjs.js +13 -0
- package/_shared/bin/native/host-binary/index.esm.js +11 -0
- package/_shared/bin/native/inject/index.cjs.js +25 -0
- package/_shared/bin/native/inject/index.esm.js +18 -0
- package/_shared/bin/native/platform-check/index.cjs.js +13 -0
- package/_shared/bin/native/platform-check/index.esm.js +10 -0
- package/_shared/bin/native/sea-blob/index.cjs.js +21 -0
- package/_shared/bin/native/sea-blob/index.esm.js +19 -0
- package/_shared/bin/native/sea-config/index.cjs.js +9 -0
- package/_shared/bin/native/sea-config/index.esm.js +7 -0
- package/_shared/bin/script/bootstrap-footer/index.cjs.js +22 -0
- package/_shared/bin/script/bootstrap-footer/index.esm.js +19 -0
- package/_shared/bundle/declarations/flatten-paths/index.cjs.js +34 -0
- package/_shared/bundle/declarations/flatten-paths/index.esm.js +29 -0
- package/_shared/bundle/dependencies/collect-workspace-deps/index.cjs.js +24 -0
- package/_shared/bundle/dependencies/collect-workspace-deps/index.esm.js +21 -0
- package/_shared/bundle/dependencies/externalize-plugin/index.cjs.js +93 -0
- package/_shared/bundle/dependencies/externalize-plugin/index.esm.js +86 -0
- package/_shared/bundle/dependencies/prune/ast-utils/index.esm.js +31 -0
- package/_shared/bundle/dependencies/prune/namespace-usage/index.esm.js +208 -0
- package/_shared/bundle/dependencies/prune/specifiers/index.cjs.js +62 -0
- package/_shared/bundle/dependencies/prune/specifiers/index.esm.js +53 -0
- package/_shared/bundle/entries/discover-entries/index.cjs.js +87 -0
- package/_shared/bundle/entries/discover-entries/index.esm.js +80 -0
- package/_shared/bundle/entries/resolve-entries/index.cjs.js +38 -0
- package/_shared/bundle/entries/resolve-entries/index.esm.js +34 -0
- package/_shared/bundle/externals/validate-globals/index.cjs.js +14 -0
- package/_shared/bundle/externals/validate-globals/index.esm.js +12 -0
- package/_shared/bundle/fs/deps-root/index.cjs.js +7 -0
- package/_shared/bundle/fs/deps-root/index.esm.js +5 -0
- package/_shared/bundle/fs/empty-dirs/index.cjs.js +23 -0
- package/_shared/bundle/fs/empty-dirs/index.esm.js +21 -0
- package/_shared/bundle/fs/entry-dir/index.cjs.js +7 -0
- package/_shared/bundle/fs/entry-dir/index.esm.js +5 -0
- package/_shared/bundle/fs/posix-path/index.cjs.js +9 -0
- package/_shared/bundle/fs/posix-path/index.esm.js +4 -0
- package/_shared/bundle/fs/under-dir/index.cjs.js +5 -0
- package/_shared/bundle/fs/under-dir/index.esm.js +3 -0
- package/_shared/memory/recover/index.cjs.js +15 -0
- package/_shared/memory/recover/index.esm.js +14 -0
- package/_shared/package/finalize-files/index.cjs.js +16 -0
- package/_shared/package/finalize-files/index.esm.js +15 -0
- package/_shared/package/json/cdn-paths/index.cjs.js +13 -0
- package/_shared/package/json/cdn-paths/index.esm.js +11 -0
- package/_shared/package/json/filter-deps/index.cjs.js +37 -0
- package/_shared/package/json/filter-deps/index.esm.js +34 -0
- package/_shared/package/json/generate-exports/index.cjs.js +56 -0
- package/_shared/package/json/generate-exports/index.esm.js +52 -0
- package/_shared/package/json/inherit-fields/index.cjs.js +19 -0
- package/_shared/package/json/inherit-fields/index.esm.js +17 -0
- package/_shared/package/json/read-package-json/index.cjs.js +7 -0
- package/_shared/package/json/read-package-json/index.esm.js +6 -0
- package/_shared/package/json/reflect-files-allowlist/index.cjs.js +39 -0
- package/_shared/package/json/reflect-files-allowlist/index.esm.js +33 -0
- package/_shared/package/json/synthesize/index.cjs.js +72 -0
- package/_shared/package/json/synthesize/index.esm.js +68 -0
- package/_shared/package/json/write/index.cjs.js +9 -0
- package/_shared/package/json/write/index.esm.js +8 -0
- package/_shared/package/licenses/generate-content/index.cjs.js +17 -0
- package/_shared/package/licenses/generate-content/index.esm.js +17 -0
- package/_shared/package/licenses/license-url/index.esm.js +29 -0
- package/_shared/package/licenses/write/index.cjs.js +9 -0
- package/_shared/package/licenses/write/index.esm.js +8 -0
- package/_shared/presets/by-names/index.cjs.js +10 -0
- package/_shared/presets/by-names/index.esm.js +8 -0
- package/_shared/presets/by-prefix/index.cjs.js +7 -0
- package/_shared/presets/by-prefix/index.esm.js +5 -0
- package/bin/format.d.ts +18 -0
- package/bin/format.d.ts.map +1 -0
- package/bin/hf-build.d.ts +81 -0
- package/bin/hf-build.d.ts.map +1 -0
- package/bin/hf-build.js +208533 -0
- package/bin/hf-build.linux-x64 +0 -0
- package/bin/index.cjs.js +548 -0
- package/bin/index.d.ts +26 -0
- package/bin/index.d.ts.map +1 -0
- package/bin/index.esm.js +546 -0
- package/bin/native/build-native.d.ts +44 -0
- package/bin/native/build-native.d.ts.map +1 -0
- package/bin/native/codesign.d.ts +65 -0
- package/bin/native/codesign.d.ts.map +1 -0
- package/bin/native/dispatch.d.ts +75 -0
- package/bin/native/dispatch.d.ts.map +1 -0
- package/bin/native/host-binary.d.ts +36 -0
- package/bin/native/host-binary.d.ts.map +1 -0
- package/bin/native/index.cjs.js +264 -0
- package/bin/native/index.d.ts +407 -0
- package/bin/native/index.d.ts.map +1 -0
- package/bin/native/index.esm.js +249 -0
- package/bin/native/inject.d.ts +61 -0
- package/bin/native/inject.d.ts.map +1 -0
- package/bin/native/platform-check.d.ts +39 -0
- package/bin/native/platform-check.d.ts.map +1 -0
- package/bin/native/sea-blob.d.ts +40 -0
- package/bin/native/sea-blob.d.ts.map +1 -0
- package/bin/native/sea-config.d.ts +45 -0
- package/bin/native/sea-config.d.ts.map +1 -0
- package/bin/native/worker/index.cjs.js +88 -0
- package/bin/native/worker/index.d.ts +68 -0
- package/bin/native/worker/index.d.ts.map +1 -0
- package/bin/native/worker/index.esm.js +86 -0
- package/bin/native/worker/job-runner.d.ts +29 -0
- package/bin/native/worker/job-runner.d.ts.map +1 -0
- package/bin/native/worker/types.d.ts +38 -0
- package/bin/native/worker/types.d.ts.map +1 -0
- package/bin/run-bin-phase.d.ts +24 -0
- package/bin/run-bin-phase.d.ts.map +1 -0
- package/bin/script/bootstrap-footer.d.ts +41 -0
- package/bin/script/bootstrap-footer.d.ts.map +1 -0
- package/bin/script/build-bin.d.ts +36 -0
- package/bin/script/build-bin.d.ts.map +1 -0
- package/bin/script/index.cjs.js +265 -0
- package/bin/script/index.d.ts +79 -0
- package/bin/script/index.d.ts.map +1 -0
- package/bin/script/index.esm.js +262 -0
- package/build.d.ts +56 -0
- package/build.d.ts.map +1 -0
- package/bundle/declarations/dts-per-entry.d.ts +27 -0
- package/bundle/declarations/dts-per-entry.d.ts.map +1 -0
- package/bundle/declarations/dts-pre-pass.d.ts +18 -0
- package/bundle/declarations/dts-pre-pass.d.ts.map +1 -0
- package/bundle/declarations/flatten-paths.d.ts +28 -0
- package/bundle/declarations/flatten-paths.d.ts.map +1 -0
- package/bundle/declarations/generate-declarations.d.ts +33 -0
- package/bundle/declarations/generate-declarations.d.ts.map +1 -0
- package/bundle/declarations/index.cjs.js +868 -0
- package/bundle/declarations/index.d.ts +262 -0
- package/bundle/declarations/index.d.ts.map +1 -0
- package/bundle/declarations/index.esm.js +857 -0
- package/bundle/declarations/prune-orphan-dts.d.ts +33 -0
- package/bundle/declarations/prune-orphan-dts.d.ts.map +1 -0
- package/bundle/declarations/sibling-resolver.d.ts +125 -0
- package/bundle/declarations/sibling-resolver.d.ts.map +1 -0
- package/bundle/dedupe/attribute-modules.d.ts +178 -0
- package/bundle/dedupe/attribute-modules.d.ts.map +1 -0
- package/bundle/dedupe/extract-chunk.d.ts +103 -0
- package/bundle/dedupe/extract-chunk.d.ts.map +1 -0
- package/bundle/dedupe/hoist-shared.d.ts +37 -0
- package/bundle/dedupe/hoist-shared.d.ts.map +1 -0
- package/bundle/dedupe/index.cjs.js +818 -0
- package/bundle/dedupe/index.d.ts +400 -0
- package/bundle/dedupe/index.d.ts.map +1 -0
- package/bundle/dedupe/index.esm.js +766 -0
- package/bundle/dedupe/plan-hoists.d.ts +46 -0
- package/bundle/dedupe/plan-hoists.d.ts.map +1 -0
- package/bundle/dedupe/rewrite-entry.d.ts +39 -0
- package/bundle/dedupe/rewrite-entry.d.ts.map +1 -0
- package/bundle/dependencies/collect-workspace-deps.d.ts +34 -0
- package/bundle/dependencies/collect-workspace-deps.d.ts.map +1 -0
- package/bundle/dependencies/externalize-plugin.d.ts +100 -0
- package/bundle/dependencies/externalize-plugin.d.ts.map +1 -0
- package/bundle/dependencies/index.cjs.js +964 -0
- package/bundle/dependencies/index.d.ts +388 -0
- package/bundle/dependencies/index.d.ts.map +1 -0
- package/bundle/dependencies/index.esm.js +947 -0
- package/bundle/dependencies/pre-pass.d.ts +154 -0
- package/bundle/dependencies/pre-pass.d.ts.map +1 -0
- package/bundle/dependencies/prune/ast-utils.d.ts +121 -0
- package/bundle/dependencies/prune/ast-utils.d.ts.map +1 -0
- package/bundle/dependencies/prune/chunk-graph.d.ts +175 -0
- package/bundle/dependencies/prune/chunk-graph.d.ts.map +1 -0
- package/bundle/dependencies/prune/dead-export-pass.d.ts +32 -0
- package/bundle/dependencies/prune/dead-export-pass.d.ts.map +1 -0
- package/bundle/dependencies/prune/dead-exports.d.ts +36 -0
- package/bundle/dependencies/prune/dead-exports.d.ts.map +1 -0
- package/bundle/dependencies/prune/destructure-requires-pass.d.ts +31 -0
- package/bundle/dependencies/prune/destructure-requires-pass.d.ts.map +1 -0
- package/bundle/dependencies/prune/destructure-requires.d.ts +42 -0
- package/bundle/dependencies/prune/destructure-requires.d.ts.map +1 -0
- package/bundle/dependencies/prune/edits.d.ts +30 -0
- package/bundle/dependencies/prune/edits.d.ts.map +1 -0
- package/bundle/dependencies/prune/namespace-usage.d.ts +104 -0
- package/bundle/dependencies/prune/namespace-usage.d.ts.map +1 -0
- package/bundle/dependencies/prune/orphan-chunks.d.ts +69 -0
- package/bundle/dependencies/prune/orphan-chunks.d.ts.map +1 -0
- package/bundle/dependencies/prune/property-strip-pass.d.ts +38 -0
- package/bundle/dependencies/prune/property-strip-pass.d.ts.map +1 -0
- package/bundle/dependencies/prune/property-strip.d.ts +69 -0
- package/bundle/dependencies/prune/property-strip.d.ts.map +1 -0
- package/bundle/dependencies/prune/prune-dependencies.d.ts +52 -0
- package/bundle/dependencies/prune/prune-dependencies.d.ts.map +1 -0
- package/bundle/dependencies/prune/reachability.d.ts +36 -0
- package/bundle/dependencies/prune/reachability.d.ts.map +1 -0
- package/bundle/dependencies/prune/specifiers.d.ts +39 -0
- package/bundle/dependencies/prune/specifiers.d.ts.map +1 -0
- package/bundle/dependencies/prune/strip-comments.d.ts +47 -0
- package/bundle/dependencies/prune/strip-comments.d.ts.map +1 -0
- package/bundle/dependencies/prune/used-exports.d.ts +32 -0
- package/bundle/dependencies/prune/used-exports.d.ts.map +1 -0
- package/bundle/dependencies/resolve-bundled-deps.d.ts +37 -0
- package/bundle/dependencies/resolve-bundled-deps.d.ts.map +1 -0
- package/bundle/dependencies/resolve-dep-entry.d.ts +38 -0
- package/bundle/dependencies/resolve-dep-entry.d.ts.map +1 -0
- package/bundle/dependencies/resolve-workspace-bundled-deps.d.ts +96 -0
- package/bundle/dependencies/resolve-workspace-bundled-deps.d.ts.map +1 -0
- package/bundle/dependencies/worker/index.cjs.js +524 -0
- package/bundle/dependencies/worker/index.d.ts +102 -0
- package/bundle/dependencies/worker/index.d.ts.map +1 -0
- package/bundle/dependencies/worker/index.esm.js +515 -0
- package/bundle/dependencies/worker/job-runner.d.ts +115 -0
- package/bundle/dependencies/worker/job-runner.d.ts.map +1 -0
- package/bundle/entries/by-platform.d.ts +27 -0
- package/bundle/entries/by-platform.d.ts.map +1 -0
- package/bundle/entries/discover-entries.d.ts +24 -0
- package/bundle/entries/discover-entries.d.ts.map +1 -0
- package/bundle/entries/index.cjs.js +38 -0
- package/bundle/entries/index.d.ts +70 -0
- package/bundle/entries/index.d.ts.map +1 -0
- package/bundle/entries/index.esm.js +33 -0
- package/bundle/entries/resolve-entries.d.ts +19 -0
- package/bundle/entries/resolve-entries.d.ts.map +1 -0
- package/bundle/externals/index.cjs.js +54 -0
- package/bundle/externals/index.d.ts +74 -0
- package/bundle/externals/index.d.ts.map +1 -0
- package/bundle/externals/index.esm.js +51 -0
- package/bundle/externals/resolve-externals.d.ts +52 -0
- package/bundle/externals/resolve-externals.d.ts.map +1 -0
- package/bundle/externals/validate-globals.d.ts +19 -0
- package/bundle/externals/validate-globals.d.ts.map +1 -0
- package/bundle/fs/deps-root.d.ts +17 -0
- package/bundle/fs/deps-root.d.ts.map +1 -0
- package/bundle/fs/empty-dirs.d.ts +18 -0
- package/bundle/fs/empty-dirs.d.ts.map +1 -0
- package/bundle/fs/entry-dir.d.ts +21 -0
- package/bundle/fs/entry-dir.d.ts.map +1 -0
- package/bundle/fs/posix-path.d.ts +30 -0
- package/bundle/fs/posix-path.d.ts.map +1 -0
- package/bundle/fs/under-dir.d.ts +19 -0
- package/bundle/fs/under-dir.d.ts.map +1 -0
- package/bundle/index.cjs.js +4046 -0
- package/bundle/index.d.ts +25 -0
- package/bundle/index.d.ts.map +1 -0
- package/bundle/index.esm.js +3689 -0
- package/bundle/rollup/descriptor.d.ts +99 -0
- package/bundle/rollup/descriptor.d.ts.map +1 -0
- package/bundle/rollup/dispatch.d.ts +72 -0
- package/bundle/rollup/dispatch.d.ts.map +1 -0
- package/bundle/rollup/index.cjs.js +715 -0
- package/bundle/rollup/index.d.ts +174 -0
- package/bundle/rollup/index.d.ts.map +1 -0
- package/bundle/rollup/index.esm.js +698 -0
- package/bundle/rollup/worker/index.cjs.js +290 -0
- package/bundle/rollup/worker/index.d.ts +131 -0
- package/bundle/rollup/worker/index.d.ts.map +1 -0
- package/bundle/rollup/worker/index.esm.js +280 -0
- package/bundle/rollup/worker/job-runner.d.ts +18 -0
- package/bundle/rollup/worker/job-runner.d.ts.map +1 -0
- package/bundle/rollup/worker/types.d.ts +111 -0
- package/bundle/rollup/worker/types.d.ts.map +1 -0
- package/bundle/run-bundle-phase.d.ts +23 -0
- package/bundle/run-bundle-phase.d.ts.map +1 -0
- package/clean-output.d.ts +26 -0
- package/clean-output.d.ts.map +1 -0
- package/index.cjs.js +5317 -0
- package/index.d.ts +64 -0
- package/index.d.ts.map +1 -0
- package/index.esm.js +4910 -0
- package/memory/index.cjs.js +101 -0
- package/memory/index.d.ts +81 -0
- package/memory/index.d.ts.map +1 -0
- package/memory/index.esm.js +98 -0
- package/memory/monitor.d.ts +59 -0
- package/memory/monitor.d.ts.map +1 -0
- package/memory/recover.d.ts +19 -0
- package/memory/recover.d.ts.map +1 -0
- package/models/build-config.d.ts +266 -0
- package/models/build-config.d.ts.map +1 -0
- package/models/build-context.d.ts +68 -0
- package/models/build-context.d.ts.map +1 -0
- package/models/build-result.d.ts +43 -0
- package/models/build-result.d.ts.map +1 -0
- package/models/entry-point.d.ts +45 -0
- package/models/entry-point.d.ts.map +1 -0
- package/models/format-output.d.ts +34 -0
- package/models/format-output.d.ts.map +1 -0
- package/models/index.cjs.js +2 -0
- package/models/index.d.ts +581 -0
- package/models/index.d.ts.map +1 -0
- package/models/index.esm.js +1 -0
- package/models/package-json.d.ts +130 -0
- package/models/package-json.d.ts.map +1 -0
- package/package/assets/copy-assets.d.ts +31 -0
- package/package/assets/copy-assets.d.ts.map +1 -0
- package/package/assets/index.cjs.js +84 -0
- package/package/assets/index.d.ts +33 -0
- package/package/assets/index.d.ts.map +1 -0
- package/package/assets/index.esm.js +82 -0
- package/package/finalize-files.d.ts +25 -0
- package/package/finalize-files.d.ts.map +1 -0
- package/package/index.cjs.js +276 -0
- package/package/index.d.ts +56 -0
- package/package/index.d.ts.map +1 -0
- package/package/index.esm.js +231 -0
- package/package/json/cdn-paths.d.ts +41 -0
- package/package/json/cdn-paths.d.ts.map +1 -0
- package/package/json/filter-deps.d.ts +39 -0
- package/package/json/filter-deps.d.ts.map +1 -0
- package/package/json/generate-exports.d.ts +29 -0
- package/package/json/generate-exports.d.ts.map +1 -0
- package/package/json/index.cjs.js +24 -0
- package/package/json/index.d.ts +252 -0
- package/package/json/index.d.ts.map +1 -0
- package/package/json/index.esm.js +14 -0
- package/package/json/inherit-fields.d.ts +25 -0
- package/package/json/inherit-fields.d.ts.map +1 -0
- package/package/json/read-package-json.d.ts +18 -0
- package/package/json/read-package-json.d.ts.map +1 -0
- package/package/json/reflect-files-allowlist.d.ts +32 -0
- package/package/json/reflect-files-allowlist.d.ts.map +1 -0
- package/package/json/synthesize.d.ts +53 -0
- package/package/json/synthesize.d.ts.map +1 -0
- package/package/json/write.d.ts +18 -0
- package/package/json/write.d.ts.map +1 -0
- package/package/licenses/collect.d.ts +25 -0
- package/package/licenses/collect.d.ts.map +1 -0
- package/package/licenses/generate-content.d.ts +20 -0
- package/package/licenses/generate-content.d.ts.map +1 -0
- package/package/licenses/index.cjs.js +135 -0
- package/package/licenses/index.d.ts +73 -0
- package/package/licenses/index.d.ts.map +1 -0
- package/package/licenses/index.esm.js +89 -0
- package/package/licenses/license-url.d.ts +20 -0
- package/package/licenses/license-url.d.ts.map +1 -0
- package/package/licenses/types.d.ts +12 -0
- package/package/licenses/types.d.ts.map +1 -0
- package/package/licenses/write.d.ts +16 -0
- package/package/licenses/write.d.ts.map +1 -0
- package/package/run-package-phase.d.ts +30 -0
- package/package/run-package-phase.d.ts.map +1 -0
- package/package.json +347 -0
- package/presets/by-names.d.ts +20 -0
- package/presets/by-names.d.ts.map +1 -0
- package/presets/by-prefix.d.ts +22 -0
- package/presets/by-prefix.d.ts.map +1 -0
- package/presets/index.cjs.js +8 -0
- package/presets/index.d.ts +43 -0
- package/presets/index.d.ts.map +1 -0
- package/presets/index.esm.js +5 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const index_cjs_js$1 = require('../_dependencies/@hyperfrontend/project-scope/core/index.cjs.js');
|
|
4
|
+
const index_cjs_js = require('../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.cjs.js');
|
|
5
|
+
const index_cjs_js$3 = require('../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.cjs.js');
|
|
6
|
+
const index_cjs_js$4 = require('../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.cjs.js');
|
|
7
|
+
const node_fs = require('node:fs');
|
|
8
|
+
const index_cjs_js$2 = require('../_dependencies/@hyperfrontend/logging/index.cjs.js');
|
|
9
|
+
const index_cjs_js$6 = require('../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/regexp/index.cjs.js');
|
|
10
|
+
const index_cjs_js$5 = require('../_dependencies/@hyperfrontend/versioning/repository/parse/index.cjs.js');
|
|
11
|
+
const { writeOutputPackageJson } = require('../_shared/package/json/write/index.cjs.js');
|
|
12
|
+
const { finalizeFilesAllowlist } = require('../_shared/package/finalize-files/index.cjs.js');
|
|
13
|
+
const { readProjectPackageJson } = require('../_shared/package/json/read-package-json/index.cjs.js');
|
|
14
|
+
const { filterWorkspaceDepsFromOutput } = require('../_shared/package/json/filter-deps/index.cjs.js');
|
|
15
|
+
const { synthesizePackageJson } = require('../_shared/package/json/synthesize/index.cjs.js');
|
|
16
|
+
const { generateThirdPartyLicensesContent } = require('../_shared/package/licenses/generate-content/index.cjs.js');
|
|
17
|
+
const { writeThirdPartyLicensesFile } = require('../_shared/package/licenses/write/index.cjs.js');
|
|
18
|
+
|
|
19
|
+
const log$1 = index_cjs_js$2.logger.channel('builder:package:assets');
|
|
20
|
+
const resolveTargetDir = (outputPath, to) => (!to || to === '.' ? outputPath : index_cjs_js$1.join(outputPath, to));
|
|
21
|
+
const collectFromFiles = (from, files) => {
|
|
22
|
+
const collected = [];
|
|
23
|
+
for (const file of files) {
|
|
24
|
+
const srcFile = index_cjs_js$1.join(from, file);
|
|
25
|
+
if (index_cjs_js$1.exists(srcFile) && index_cjs_js$1.isFile(srcFile))
|
|
26
|
+
collected.push(file);
|
|
27
|
+
}
|
|
28
|
+
return collected;
|
|
29
|
+
};
|
|
30
|
+
const collectFromGlob = (from, pattern) => {
|
|
31
|
+
const collected = [];
|
|
32
|
+
for (const entry of index_cjs_js$1.readDirectoryRecursive(from)) {
|
|
33
|
+
if (!entry.isFile)
|
|
34
|
+
continue;
|
|
35
|
+
const rel = index_cjs_js$1.relativePath(from, entry.path);
|
|
36
|
+
if (index_cjs_js$1.matchGlobPattern(rel, pattern))
|
|
37
|
+
collected.push(rel);
|
|
38
|
+
}
|
|
39
|
+
return collected;
|
|
40
|
+
};
|
|
41
|
+
const collectAssetFiles = (spec) => {
|
|
42
|
+
if (spec.files)
|
|
43
|
+
return collectFromFiles(spec.from, spec.files);
|
|
44
|
+
if (spec.glob)
|
|
45
|
+
return collectFromGlob(spec.from, spec.glob);
|
|
46
|
+
return [];
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Copies one or more asset specs into the build output directory.
|
|
50
|
+
*
|
|
51
|
+
* Each spec selects its inputs in one of two ways:
|
|
52
|
+
* - `spec.files`: explicit list of relative paths under `spec.from`. Missing entries
|
|
53
|
+
* are silently skipped.
|
|
54
|
+
* - `spec.glob`: POSIX-style glob evaluated relative to `spec.from`.
|
|
55
|
+
*
|
|
56
|
+
* The destination is `<outputPath>/<spec.to>`, defaulting to the dist root when
|
|
57
|
+
* `spec.to` is omitted or equal to `'.'`. Specs whose `condition` predicate returns
|
|
58
|
+
* `false` are skipped entirely.
|
|
59
|
+
*
|
|
60
|
+
* @param specs - Asset specifications to materialize.
|
|
61
|
+
* @param outputPath - Absolute path to the build output directory.
|
|
62
|
+
* @param srcPkg - Source `package.json`, supplied to each spec's `condition` predicate.
|
|
63
|
+
*
|
|
64
|
+
* @example Copying README + LICENSE into the dist root
|
|
65
|
+
* ```typescript
|
|
66
|
+
* copyAssets(
|
|
67
|
+
* [
|
|
68
|
+
* { from: '/abs/libs/foo', files: ['README.md', 'CHANGELOG.md'] },
|
|
69
|
+
* { from: '/abs/repo', files: ['LICENSE.md', 'SECURITY.md'] },
|
|
70
|
+
* ],
|
|
71
|
+
* '/abs/dist/libs/foo',
|
|
72
|
+
* srcPkg
|
|
73
|
+
* )
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
const copyAssets = (specs, outputPath, srcPkg) => {
|
|
77
|
+
for (const spec of specs) {
|
|
78
|
+
if (spec.condition && !spec.condition(srcPkg))
|
|
79
|
+
continue;
|
|
80
|
+
if (!index_cjs_js$1.exists(spec.from)) {
|
|
81
|
+
log$1.debug(`asset source missing, skipping: ${spec.from}`);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const target = resolveTargetDir(outputPath, spec.to);
|
|
85
|
+
const files = collectAssetFiles(spec);
|
|
86
|
+
for (const file of files) {
|
|
87
|
+
const srcPath = index_cjs_js$1.join(spec.from, file);
|
|
88
|
+
const destPath = index_cjs_js$1.join(target, file);
|
|
89
|
+
index_cjs_js$1.ensureDir(index_cjs_js$1.getDirname(destPath));
|
|
90
|
+
node_fs.copyFileSync(srcPath, destPath);
|
|
91
|
+
log$1.debug(`copied ${file}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const extractRepositoryUrl = (repository) => {
|
|
97
|
+
if (typeof repository === 'string')
|
|
98
|
+
return repository;
|
|
99
|
+
if (repository && typeof repository === 'object')
|
|
100
|
+
return repository.url;
|
|
101
|
+
return null;
|
|
102
|
+
};
|
|
103
|
+
const formatLicenseUrl = (platform, baseUrl, fileName) => {
|
|
104
|
+
if (platform === 'github')
|
|
105
|
+
return `${baseUrl}/blob/HEAD/${fileName}`;
|
|
106
|
+
if (platform === 'gitlab')
|
|
107
|
+
return `${baseUrl}/-/blob/HEAD/${fileName}`;
|
|
108
|
+
if (platform === 'bitbucket')
|
|
109
|
+
return `${baseUrl}/src/HEAD/${fileName}`;
|
|
110
|
+
return null;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Derives a canonical license-file URL for a dependency from its `package.json`
|
|
114
|
+
* `repository` field and the discovered LICENSE filename.
|
|
115
|
+
*
|
|
116
|
+
* Returns `null` for missing repository fields, unparseable URLs, and platforms
|
|
117
|
+
* outside the supported set (GitHub, GitLab, Bitbucket).
|
|
118
|
+
*
|
|
119
|
+
* @param repository - Source `package.json` `repository` field (string or object form).
|
|
120
|
+
* @param licenseFileName - Filename of the LICENSE inside the upstream repo.
|
|
121
|
+
* @returns Resolved license URL, or `null` when one cannot be derived.
|
|
122
|
+
*
|
|
123
|
+
* @example Resolving a GitHub LICENSE URL from a string-form repository field
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const url = constructLicenseUrl('https://github.com/x/y.git', 'LICENSE')
|
|
126
|
+
* // → 'https://github.com/x/y/blob/HEAD/LICENSE'
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
const constructLicenseUrl = (repository, licenseFileName) => {
|
|
130
|
+
const url = extractRepositoryUrl(repository);
|
|
131
|
+
if (!url)
|
|
132
|
+
return null;
|
|
133
|
+
const parsed = index_cjs_js$5.parseRepositoryUrl(url);
|
|
134
|
+
if (!parsed)
|
|
135
|
+
return null;
|
|
136
|
+
return formatLicenseUrl(parsed.platform, parsed.baseUrl, licenseFileName);
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
const log = index_cjs_js$2.logger.channel('builder:package:licenses');
|
|
140
|
+
const matchPattern = (content, source) =>
|
|
141
|
+
// eslint-disable-next-line workspace/no-unsafe-regex -- @preserve: SPDX patterns are static, vetted strings declared inline
|
|
142
|
+
index_cjs_js$6.createRegExp(source, 'i').test(content);
|
|
143
|
+
const findLicenseFile = (packageDir) => {
|
|
144
|
+
const match = index_cjs_js$1.readDirectory(packageDir).find((f) => f.isFile && /^license(\.md|\.txt)?$/i.test(f.name));
|
|
145
|
+
return match?.name ?? null;
|
|
146
|
+
};
|
|
147
|
+
const detectLicenseFromContent = (content) => {
|
|
148
|
+
if (matchPattern(content, 'MIT License'))
|
|
149
|
+
return 'MIT';
|
|
150
|
+
if (matchPattern(content, 'Apache License.*Version 2\\.0'))
|
|
151
|
+
return 'Apache-2.0';
|
|
152
|
+
if (matchPattern(content, 'BSD 3-Clause License'))
|
|
153
|
+
return 'BSD-3-Clause';
|
|
154
|
+
if (matchPattern(content, 'BSD 2-Clause License'))
|
|
155
|
+
return 'BSD-2-Clause';
|
|
156
|
+
if (matchPattern(content, 'ISC License'))
|
|
157
|
+
return 'ISC';
|
|
158
|
+
if (matchPattern(content, 'GNU General Public License.*version 3'))
|
|
159
|
+
return 'GPL-3.0';
|
|
160
|
+
if (matchPattern(content, 'GNU Lesser General Public License.*version 3'))
|
|
161
|
+
return 'LGPL-3.0';
|
|
162
|
+
if (matchPattern(content, 'Mozilla Public License.*2\\.0'))
|
|
163
|
+
return 'MPL-2.0';
|
|
164
|
+
return null;
|
|
165
|
+
};
|
|
166
|
+
const resolvePackageDir = (workspaceRoot, depName) => depName.startsWith('@') ? index_cjs_js$1.join(workspaceRoot, 'node_modules', ...depName.split('/')) : index_cjs_js$1.join(workspaceRoot, 'node_modules', depName);
|
|
167
|
+
const collectDependencyLicense = (depName, workspaceRoot) => {
|
|
168
|
+
const packageDir = resolvePackageDir(workspaceRoot, depName);
|
|
169
|
+
const pkgPath = index_cjs_js$1.join(packageDir, 'package.json');
|
|
170
|
+
if (!index_cjs_js$1.exists(pkgPath)) {
|
|
171
|
+
log.warn(`could not find package.json for ${depName}`);
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
const pkg = index_cjs_js$1.readJsonFile(pkgPath);
|
|
175
|
+
const licenseFileName = findLicenseFile(packageDir);
|
|
176
|
+
let licenseType = typeof pkg.license === 'string' ? pkg.license : 'Unknown';
|
|
177
|
+
if (licenseFileName) {
|
|
178
|
+
const detected = detectLicenseFromContent(index_cjs_js$1.readFileContent(index_cjs_js$1.join(packageDir, licenseFileName)));
|
|
179
|
+
if (detected)
|
|
180
|
+
licenseType = detected;
|
|
181
|
+
}
|
|
182
|
+
const licenseUrl = licenseFileName ? constructLicenseUrl(pkg.repository, licenseFileName) : null;
|
|
183
|
+
return { name: depName, licenseType, licenseUrl };
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Collects license information for every external dependency of the project
|
|
187
|
+
* being built.
|
|
188
|
+
*
|
|
189
|
+
* The dependency list is supplied by the caller (typically the resolved external
|
|
190
|
+
* list from the bundle phase, with workspace-internal entries already removed).
|
|
191
|
+
* For each dependency, the function locates the installed package under
|
|
192
|
+
* `<workspaceRoot>/node_modules`, parses its `package.json`, scans for a LICENSE
|
|
193
|
+
* file, and attempts to derive a canonical license URL from the upstream
|
|
194
|
+
* repository field. Missing dependencies are logged at warn level and dropped
|
|
195
|
+
* from the result.
|
|
196
|
+
*
|
|
197
|
+
* @param workspaceRoot - Absolute path to the workspace root containing
|
|
198
|
+
* `node_modules`.
|
|
199
|
+
* @param externals - List of external (non-workspace) dependency names to inspect.
|
|
200
|
+
* @returns Sorted list of license entries, one per resolvable dependency.
|
|
201
|
+
*
|
|
202
|
+
* @example Collecting licenses for a built library's bundle phase externals
|
|
203
|
+
* ```typescript
|
|
204
|
+
* const entries = collectThirdPartyLicenses('/abs/repo', ['rollup', 'typescript'])
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
const collectThirdPartyLicenses = (workspaceRoot, externals) => {
|
|
208
|
+
if (externals.length === 0)
|
|
209
|
+
return [];
|
|
210
|
+
const entries = [];
|
|
211
|
+
for (const dep of externals) {
|
|
212
|
+
const entry = collectDependencyLicense(dep, workspaceRoot);
|
|
213
|
+
if (entry)
|
|
214
|
+
entries.push(entry);
|
|
215
|
+
}
|
|
216
|
+
return entries.sort((a, b) => a.name.localeCompare(b.name));
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
const resolveThirdPartyLicensesFlag = (config, ctx) => {
|
|
220
|
+
if (typeof config.thirdPartyLicenses === 'boolean')
|
|
221
|
+
return config.thirdPartyLicenses;
|
|
222
|
+
return ctx.bundledDeps.length > 0;
|
|
223
|
+
};
|
|
224
|
+
const collectLicenseDeps = (ctx, distDeps) => index_cjs_js$3.from(index_cjs_js.createSet([...ctx.bundledDeps, ...distDeps]));
|
|
225
|
+
/**
|
|
226
|
+
* Runs the complete package phase: synthesizes and writes the dist
|
|
227
|
+
* `package.json`, materializes any configured asset specs, and (when
|
|
228
|
+
* `config.thirdPartyLicenses` is enabled — defaulting to `true` for builds
|
|
229
|
+
* with at least one bundled dep) emits `THIRD_PARTY_LICENSES.md`.
|
|
230
|
+
*
|
|
231
|
+
* The phase consumes:
|
|
232
|
+
* - the source `package.json` (read fresh from `ctx.projectRoot`)
|
|
233
|
+
* - the resolved {@link BuildContext} (output path, workspace predicate, assets, discovery)
|
|
234
|
+
* - the {@link FormatOutputs} aggregated by the bundle phase
|
|
235
|
+
*
|
|
236
|
+
* Workspace-internal entries are stripped from the published `dependencies`
|
|
237
|
+
* map only when both `config.filterWorkspaceDepsFromOutput` and
|
|
238
|
+
* `ctx.isWorkspacePackage` are present. Inheritance and CDN overrides are
|
|
239
|
+
* forwarded verbatim to {@link synthesizePackageJson}.
|
|
240
|
+
*
|
|
241
|
+
* @param ctx - Resolved build context.
|
|
242
|
+
* @param config - Top-level builder configuration. Reads `inheritFieldsFrom`,
|
|
243
|
+
* `filterWorkspaceDepsFromOutput`, `unpkg`, `jsdelivr`, `bin`, and `thirdPartyLicenses`.
|
|
244
|
+
* The `files` allowlist is owned by {@link finalizeFilesAllowlist}, not this phase.
|
|
245
|
+
* @param formatOutputs - Outputs collected during the bundle phase.
|
|
246
|
+
*
|
|
247
|
+
* @example Driving the package phase from a custom orchestrator
|
|
248
|
+
* ```typescript
|
|
249
|
+
* await runPackagePhase(context, config, formatOutputs)
|
|
250
|
+
* ```
|
|
251
|
+
*/
|
|
252
|
+
const runPackagePhase = async (ctx, config, formatOutputs) => {
|
|
253
|
+
const srcPkg = readProjectPackageJson(ctx.projectRoot);
|
|
254
|
+
const bins = config.bin ?? [];
|
|
255
|
+
const distPkg = synthesizePackageJson(srcPkg, ctx, formatOutputs, {
|
|
256
|
+
inheritFieldsFrom: config.inheritFieldsFrom,
|
|
257
|
+
filterWorkspaceDepsFromOutput: config.filterWorkspaceDepsFromOutput,
|
|
258
|
+
isWorkspacePackage: ctx.isWorkspacePackage,
|
|
259
|
+
unpkg: config.unpkg,
|
|
260
|
+
jsdelivr: config.jsdelivr,
|
|
261
|
+
bins,
|
|
262
|
+
});
|
|
263
|
+
writeOutputPackageJson(ctx.outputPath, distPkg);
|
|
264
|
+
copyAssets(ctx.assets, ctx.outputPath, srcPkg);
|
|
265
|
+
if (resolveThirdPartyLicensesFlag(config, ctx)) {
|
|
266
|
+
const distDeps = index_cjs_js$4.keys(distPkg.dependencies ?? {});
|
|
267
|
+
const externals = collectLicenseDeps(ctx, distDeps);
|
|
268
|
+
const entries = collectThirdPartyLicenses(ctx.workspaceRoot, externals);
|
|
269
|
+
if (entries.length > 0) {
|
|
270
|
+
writeThirdPartyLicensesFile(ctx.outputPath, generateThirdPartyLicensesContent(entries));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
exports.finalizeFilesAllowlist = finalizeFilesAllowlist;
|
|
276
|
+
exports.runPackagePhase = runPackagePhase;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { BuildContext, BuildConfig, FormatOutputs } from '../models';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Finalizes `package.json#files` as the last build step, after every emit phase
|
|
5
|
+
* (bundle → package → bin → license/asset) and the orphan prune have run.
|
|
6
|
+
*
|
|
7
|
+
* The allowlist is reflected from the materialized output tree rather than
|
|
8
|
+
* predicted from config, so the field names exactly what ships. Call this last:
|
|
9
|
+
* earlier phases (notably the bin phase) emit files after the package phase
|
|
10
|
+
* writes the manifest, and reflecting before then would miss those survivors.
|
|
11
|
+
* An explicit `config.files` short-circuits reflection and is honored verbatim.
|
|
12
|
+
*
|
|
13
|
+
* An empty allowlist (only possible via an explicit `config.files: []`) leaves
|
|
14
|
+
* the manifest untouched.
|
|
15
|
+
*
|
|
16
|
+
* @param ctx - Resolved build context (provides `outputPath`).
|
|
17
|
+
* @param config - Top-level builder configuration; reads the `files` override.
|
|
18
|
+
*
|
|
19
|
+
* @example Finalizing the allowlist after the bin phase
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const binOutputs = await runBinPhase(ctx, config.bin ?? [])
|
|
22
|
+
* finalizeFilesAllowlist(ctx, config)
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare const finalizeFilesAllowlist: (ctx: BuildContext, config: BuildConfig) => void;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Runs the complete package phase: synthesizes and writes the dist
|
|
29
|
+
* `package.json`, materializes any configured asset specs, and (when
|
|
30
|
+
* `config.thirdPartyLicenses` is enabled — defaulting to `true` for builds
|
|
31
|
+
* with at least one bundled dep) emits `THIRD_PARTY_LICENSES.md`.
|
|
32
|
+
*
|
|
33
|
+
* The phase consumes:
|
|
34
|
+
* - the source `package.json` (read fresh from `ctx.projectRoot`)
|
|
35
|
+
* - the resolved {@link BuildContext} (output path, workspace predicate, assets, discovery)
|
|
36
|
+
* - the {@link FormatOutputs} aggregated by the bundle phase
|
|
37
|
+
*
|
|
38
|
+
* Workspace-internal entries are stripped from the published `dependencies`
|
|
39
|
+
* map only when both `config.filterWorkspaceDepsFromOutput` and
|
|
40
|
+
* `ctx.isWorkspacePackage` are present. Inheritance and CDN overrides are
|
|
41
|
+
* forwarded verbatim to {@link synthesizePackageJson}.
|
|
42
|
+
*
|
|
43
|
+
* @param ctx - Resolved build context.
|
|
44
|
+
* @param config - Top-level builder configuration. Reads `inheritFieldsFrom`,
|
|
45
|
+
* `filterWorkspaceDepsFromOutput`, `unpkg`, `jsdelivr`, `bin`, and `thirdPartyLicenses`.
|
|
46
|
+
* The `files` allowlist is owned by {@link finalizeFilesAllowlist}, not this phase.
|
|
47
|
+
* @param formatOutputs - Outputs collected during the bundle phase.
|
|
48
|
+
*
|
|
49
|
+
* @example Driving the package phase from a custom orchestrator
|
|
50
|
+
* ```typescript
|
|
51
|
+
* await runPackagePhase(context, config, formatOutputs)
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
declare const runPackagePhase: (ctx: BuildContext, config: BuildConfig, formatOutputs: FormatOutputs) => Promise<void>;
|
|
55
|
+
|
|
56
|
+
export { finalizeFilesAllowlist, runPackagePhase };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../libs/builder/src/package/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { exists, readDirectory, relativePath, matchGlobPattern, writeJsonFile, join, readJsonFile, ensureDir, getDirname, isFile, readDirectoryRecursive, readFileContent, writeFileContent } from '../_dependencies/@hyperfrontend/project-scope/core/index.esm.js';
|
|
2
|
+
import { createSet } from '../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.esm.js';
|
|
3
|
+
import { isArray, from } from '../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.esm.js';
|
|
4
|
+
import { entries, fromEntries, keys } from '../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js';
|
|
5
|
+
import { copyFileSync } from 'node:fs';
|
|
6
|
+
import { logger } from '../_dependencies/@hyperfrontend/logging/index.esm.js';
|
|
7
|
+
import { createRegExp } from '../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/regexp/index.esm.js';
|
|
8
|
+
import { parseRepositoryUrl } from '../_dependencies/@hyperfrontend/versioning/repository/parse/index.esm.js';
|
|
9
|
+
import { writeOutputPackageJson } from '../_shared/package/json/write/index.esm.js';
|
|
10
|
+
import { finalizeFilesAllowlist } from '../_shared/package/finalize-files/index.esm.js';
|
|
11
|
+
import { readProjectPackageJson } from '../_shared/package/json/read-package-json/index.esm.js';
|
|
12
|
+
import { filterWorkspaceDepsFromOutput } from '../_shared/package/json/filter-deps/index.esm.js';
|
|
13
|
+
import { synthesizePackageJson } from '../_shared/package/json/synthesize/index.esm.js';
|
|
14
|
+
import { constructLicenseUrl } from '../_shared/package/licenses/license-url/index.esm.js';
|
|
15
|
+
import { generateThirdPartyLicensesContent } from '../_shared/package/licenses/generate-content/index.esm.js';
|
|
16
|
+
import { writeThirdPartyLicensesFile } from '../_shared/package/licenses/write/index.esm.js';
|
|
17
|
+
|
|
18
|
+
const log$1 = logger.channel('builder:package:assets');
|
|
19
|
+
const resolveTargetDir = (outputPath, to) => (!to || to === '.' ? outputPath : join(outputPath, to));
|
|
20
|
+
const collectFromFiles = (from, files) => {
|
|
21
|
+
const collected = [];
|
|
22
|
+
for (const file of files) {
|
|
23
|
+
const srcFile = join(from, file);
|
|
24
|
+
if (exists(srcFile) && isFile(srcFile))
|
|
25
|
+
collected.push(file);
|
|
26
|
+
}
|
|
27
|
+
return collected;
|
|
28
|
+
};
|
|
29
|
+
const collectFromGlob = (from, pattern) => {
|
|
30
|
+
const collected = [];
|
|
31
|
+
for (const entry of readDirectoryRecursive(from)) {
|
|
32
|
+
if (!entry.isFile)
|
|
33
|
+
continue;
|
|
34
|
+
const rel = relativePath(from, entry.path);
|
|
35
|
+
if (matchGlobPattern(rel, pattern))
|
|
36
|
+
collected.push(rel);
|
|
37
|
+
}
|
|
38
|
+
return collected;
|
|
39
|
+
};
|
|
40
|
+
const collectAssetFiles = (spec) => {
|
|
41
|
+
if (spec.files)
|
|
42
|
+
return collectFromFiles(spec.from, spec.files);
|
|
43
|
+
if (spec.glob)
|
|
44
|
+
return collectFromGlob(spec.from, spec.glob);
|
|
45
|
+
return [];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Copies one or more asset specs into the build output directory.
|
|
49
|
+
*
|
|
50
|
+
* Each spec selects its inputs in one of two ways:
|
|
51
|
+
* - `spec.files`: explicit list of relative paths under `spec.from`. Missing entries
|
|
52
|
+
* are silently skipped.
|
|
53
|
+
* - `spec.glob`: POSIX-style glob evaluated relative to `spec.from`.
|
|
54
|
+
*
|
|
55
|
+
* The destination is `<outputPath>/<spec.to>`, defaulting to the dist root when
|
|
56
|
+
* `spec.to` is omitted or equal to `'.'`. Specs whose `condition` predicate returns
|
|
57
|
+
* `false` are skipped entirely.
|
|
58
|
+
*
|
|
59
|
+
* @param specs - Asset specifications to materialize.
|
|
60
|
+
* @param outputPath - Absolute path to the build output directory.
|
|
61
|
+
* @param srcPkg - Source `package.json`, supplied to each spec's `condition` predicate.
|
|
62
|
+
*
|
|
63
|
+
* @example Copying README + LICENSE into the dist root
|
|
64
|
+
* ```typescript
|
|
65
|
+
* copyAssets(
|
|
66
|
+
* [
|
|
67
|
+
* { from: '/abs/libs/foo', files: ['README.md', 'CHANGELOG.md'] },
|
|
68
|
+
* { from: '/abs/repo', files: ['LICENSE.md', 'SECURITY.md'] },
|
|
69
|
+
* ],
|
|
70
|
+
* '/abs/dist/libs/foo',
|
|
71
|
+
* srcPkg
|
|
72
|
+
* )
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
const copyAssets = (specs, outputPath, srcPkg) => {
|
|
76
|
+
for (const spec of specs) {
|
|
77
|
+
if (spec.condition && !spec.condition(srcPkg))
|
|
78
|
+
continue;
|
|
79
|
+
if (!exists(spec.from)) {
|
|
80
|
+
log$1.debug(`asset source missing, skipping: ${spec.from}`);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const target = resolveTargetDir(outputPath, spec.to);
|
|
84
|
+
const files = collectAssetFiles(spec);
|
|
85
|
+
for (const file of files) {
|
|
86
|
+
const srcPath = join(spec.from, file);
|
|
87
|
+
const destPath = join(target, file);
|
|
88
|
+
ensureDir(getDirname(destPath));
|
|
89
|
+
copyFileSync(srcPath, destPath);
|
|
90
|
+
log$1.debug(`copied ${file}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const log = logger.channel('builder:package:licenses');
|
|
96
|
+
const matchPattern = (content, source) =>
|
|
97
|
+
// eslint-disable-next-line workspace/no-unsafe-regex -- @preserve: SPDX patterns are static, vetted strings declared inline
|
|
98
|
+
createRegExp(source, 'i').test(content);
|
|
99
|
+
const findLicenseFile = (packageDir) => {
|
|
100
|
+
const match = readDirectory(packageDir).find((f) => f.isFile && /^license(\.md|\.txt)?$/i.test(f.name));
|
|
101
|
+
return match?.name ?? null;
|
|
102
|
+
};
|
|
103
|
+
const detectLicenseFromContent = (content) => {
|
|
104
|
+
if (matchPattern(content, 'MIT License'))
|
|
105
|
+
return 'MIT';
|
|
106
|
+
if (matchPattern(content, 'Apache License.*Version 2\\.0'))
|
|
107
|
+
return 'Apache-2.0';
|
|
108
|
+
if (matchPattern(content, 'BSD 3-Clause License'))
|
|
109
|
+
return 'BSD-3-Clause';
|
|
110
|
+
if (matchPattern(content, 'BSD 2-Clause License'))
|
|
111
|
+
return 'BSD-2-Clause';
|
|
112
|
+
if (matchPattern(content, 'ISC License'))
|
|
113
|
+
return 'ISC';
|
|
114
|
+
if (matchPattern(content, 'GNU General Public License.*version 3'))
|
|
115
|
+
return 'GPL-3.0';
|
|
116
|
+
if (matchPattern(content, 'GNU Lesser General Public License.*version 3'))
|
|
117
|
+
return 'LGPL-3.0';
|
|
118
|
+
if (matchPattern(content, 'Mozilla Public License.*2\\.0'))
|
|
119
|
+
return 'MPL-2.0';
|
|
120
|
+
return null;
|
|
121
|
+
};
|
|
122
|
+
const resolvePackageDir = (workspaceRoot, depName) => depName.startsWith('@') ? join(workspaceRoot, 'node_modules', ...depName.split('/')) : join(workspaceRoot, 'node_modules', depName);
|
|
123
|
+
const collectDependencyLicense = (depName, workspaceRoot) => {
|
|
124
|
+
const packageDir = resolvePackageDir(workspaceRoot, depName);
|
|
125
|
+
const pkgPath = join(packageDir, 'package.json');
|
|
126
|
+
if (!exists(pkgPath)) {
|
|
127
|
+
log.warn(`could not find package.json for ${depName}`);
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
const pkg = readJsonFile(pkgPath);
|
|
131
|
+
const licenseFileName = findLicenseFile(packageDir);
|
|
132
|
+
let licenseType = typeof pkg.license === 'string' ? pkg.license : 'Unknown';
|
|
133
|
+
if (licenseFileName) {
|
|
134
|
+
const detected = detectLicenseFromContent(readFileContent(join(packageDir, licenseFileName)));
|
|
135
|
+
if (detected)
|
|
136
|
+
licenseType = detected;
|
|
137
|
+
}
|
|
138
|
+
const licenseUrl = licenseFileName ? constructLicenseUrl(pkg.repository, licenseFileName) : null;
|
|
139
|
+
return { name: depName, licenseType, licenseUrl };
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Collects license information for every external dependency of the project
|
|
143
|
+
* being built.
|
|
144
|
+
*
|
|
145
|
+
* The dependency list is supplied by the caller (typically the resolved external
|
|
146
|
+
* list from the bundle phase, with workspace-internal entries already removed).
|
|
147
|
+
* For each dependency, the function locates the installed package under
|
|
148
|
+
* `<workspaceRoot>/node_modules`, parses its `package.json`, scans for a LICENSE
|
|
149
|
+
* file, and attempts to derive a canonical license URL from the upstream
|
|
150
|
+
* repository field. Missing dependencies are logged at warn level and dropped
|
|
151
|
+
* from the result.
|
|
152
|
+
*
|
|
153
|
+
* @param workspaceRoot - Absolute path to the workspace root containing
|
|
154
|
+
* `node_modules`.
|
|
155
|
+
* @param externals - List of external (non-workspace) dependency names to inspect.
|
|
156
|
+
* @returns Sorted list of license entries, one per resolvable dependency.
|
|
157
|
+
*
|
|
158
|
+
* @example Collecting licenses for a built library's bundle phase externals
|
|
159
|
+
* ```typescript
|
|
160
|
+
* const entries = collectThirdPartyLicenses('/abs/repo', ['rollup', 'typescript'])
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
const collectThirdPartyLicenses = (workspaceRoot, externals) => {
|
|
164
|
+
if (externals.length === 0)
|
|
165
|
+
return [];
|
|
166
|
+
const entries = [];
|
|
167
|
+
for (const dep of externals) {
|
|
168
|
+
const entry = collectDependencyLicense(dep, workspaceRoot);
|
|
169
|
+
if (entry)
|
|
170
|
+
entries.push(entry);
|
|
171
|
+
}
|
|
172
|
+
return entries.sort((a, b) => a.name.localeCompare(b.name));
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
const resolveThirdPartyLicensesFlag = (config, ctx) => {
|
|
176
|
+
if (typeof config.thirdPartyLicenses === 'boolean')
|
|
177
|
+
return config.thirdPartyLicenses;
|
|
178
|
+
return ctx.bundledDeps.length > 0;
|
|
179
|
+
};
|
|
180
|
+
const collectLicenseDeps = (ctx, distDeps) => from(createSet([...ctx.bundledDeps, ...distDeps]));
|
|
181
|
+
/**
|
|
182
|
+
* Runs the complete package phase: synthesizes and writes the dist
|
|
183
|
+
* `package.json`, materializes any configured asset specs, and (when
|
|
184
|
+
* `config.thirdPartyLicenses` is enabled — defaulting to `true` for builds
|
|
185
|
+
* with at least one bundled dep) emits `THIRD_PARTY_LICENSES.md`.
|
|
186
|
+
*
|
|
187
|
+
* The phase consumes:
|
|
188
|
+
* - the source `package.json` (read fresh from `ctx.projectRoot`)
|
|
189
|
+
* - the resolved {@link BuildContext} (output path, workspace predicate, assets, discovery)
|
|
190
|
+
* - the {@link FormatOutputs} aggregated by the bundle phase
|
|
191
|
+
*
|
|
192
|
+
* Workspace-internal entries are stripped from the published `dependencies`
|
|
193
|
+
* map only when both `config.filterWorkspaceDepsFromOutput` and
|
|
194
|
+
* `ctx.isWorkspacePackage` are present. Inheritance and CDN overrides are
|
|
195
|
+
* forwarded verbatim to {@link synthesizePackageJson}.
|
|
196
|
+
*
|
|
197
|
+
* @param ctx - Resolved build context.
|
|
198
|
+
* @param config - Top-level builder configuration. Reads `inheritFieldsFrom`,
|
|
199
|
+
* `filterWorkspaceDepsFromOutput`, `unpkg`, `jsdelivr`, `bin`, and `thirdPartyLicenses`.
|
|
200
|
+
* The `files` allowlist is owned by {@link finalizeFilesAllowlist}, not this phase.
|
|
201
|
+
* @param formatOutputs - Outputs collected during the bundle phase.
|
|
202
|
+
*
|
|
203
|
+
* @example Driving the package phase from a custom orchestrator
|
|
204
|
+
* ```typescript
|
|
205
|
+
* await runPackagePhase(context, config, formatOutputs)
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
const runPackagePhase = async (ctx, config, formatOutputs) => {
|
|
209
|
+
const srcPkg = readProjectPackageJson(ctx.projectRoot);
|
|
210
|
+
const bins = config.bin ?? [];
|
|
211
|
+
const distPkg = synthesizePackageJson(srcPkg, ctx, formatOutputs, {
|
|
212
|
+
inheritFieldsFrom: config.inheritFieldsFrom,
|
|
213
|
+
filterWorkspaceDepsFromOutput: config.filterWorkspaceDepsFromOutput,
|
|
214
|
+
isWorkspacePackage: ctx.isWorkspacePackage,
|
|
215
|
+
unpkg: config.unpkg,
|
|
216
|
+
jsdelivr: config.jsdelivr,
|
|
217
|
+
bins,
|
|
218
|
+
});
|
|
219
|
+
writeOutputPackageJson(ctx.outputPath, distPkg);
|
|
220
|
+
copyAssets(ctx.assets, ctx.outputPath, srcPkg);
|
|
221
|
+
if (resolveThirdPartyLicensesFlag(config, ctx)) {
|
|
222
|
+
const distDeps = keys(distPkg.dependencies ?? {});
|
|
223
|
+
const externals = collectLicenseDeps(ctx, distDeps);
|
|
224
|
+
const entries = collectThirdPartyLicenses(ctx.workspaceRoot, externals);
|
|
225
|
+
if (entries.length > 0) {
|
|
226
|
+
writeThirdPartyLicensesFile(ctx.outputPath, generateThirdPartyLicensesContent(entries));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
export { finalizeFilesAllowlist, runPackagePhase };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { FormatOutputs } from '../../models';
|
|
2
|
+
/**
|
|
3
|
+
* Resolved CDN paths for `unpkg` and `jsdelivr` package.json fields.
|
|
4
|
+
*/
|
|
5
|
+
export interface CdnPaths {
|
|
6
|
+
/** Path advertised on the `unpkg` field. */
|
|
7
|
+
unpkg: string;
|
|
8
|
+
/** Path advertised on the `jsdelivr` field. */
|
|
9
|
+
jsdelivr: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Optional overrides accepted by {@link getCdnPaths}.
|
|
13
|
+
*/
|
|
14
|
+
export interface CdnPathOverrides {
|
|
15
|
+
/** Explicit path for the `unpkg` field. */
|
|
16
|
+
unpkg?: string;
|
|
17
|
+
/** Explicit path for the `jsdelivr` field. */
|
|
18
|
+
jsdelivr?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Computes the CDN entry paths advertised on the published `package.json`.
|
|
22
|
+
*
|
|
23
|
+
* Priority order:
|
|
24
|
+
* 1. Explicit `opts.unpkg` / `opts.jsdelivr` overrides win for their respective field.
|
|
25
|
+
* 2. The first UMD bundle, when one was emitted, supplies the default path.
|
|
26
|
+
* 3. The first IIFE bundle is used when no UMD bundle exists.
|
|
27
|
+
* 4. When no UMD or IIFE bundles were produced, returns `undefined` so callers can
|
|
28
|
+
* skip emitting the fields entirely.
|
|
29
|
+
*
|
|
30
|
+
* @param formatOutputs - Aggregated bundle-phase output.
|
|
31
|
+
* @param opts - Optional explicit overrides for either CDN field.
|
|
32
|
+
* @returns Resolved CDN paths or `undefined` when no CDN-eligible bundle was produced.
|
|
33
|
+
*
|
|
34
|
+
* @example Resolving CDN paths from a UMD-only build
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const cdn = getCdnPaths(formatOutputs)
|
|
37
|
+
* // → { unpkg: './bundle/index.umd.min.js', jsdelivr: './bundle/index.umd.min.js' }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare const getCdnPaths: (formatOutputs: FormatOutputs, opts?: CdnPathOverrides) => CdnPaths | undefined;
|
|
41
|
+
//# sourceMappingURL=cdn-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdn-paths.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/builder/src/package/json/cdn-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,GAAI,eAAe,aAAa,EAAE,OAAO,gBAAgB,KAAG,QAAQ,GAAG,SAS9F,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { IsWorkspacePackagePredicate, PackageJson } from '../../models';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a new `PackageJson` with workspace-internal entries stripped from
|
|
4
|
+
* `dependencies`. `peerDependencies` and `optionalDependencies` are preserved
|
|
5
|
+
* verbatim so consumers retain optional integrations.
|
|
6
|
+
*
|
|
7
|
+
* If filtering empties the `dependencies` map, the field is removed from the
|
|
8
|
+
* returned object instead of left as `{}`.
|
|
9
|
+
*
|
|
10
|
+
* @param pkg - Source `PackageJson` to filter.
|
|
11
|
+
* @param isWorkspacePackage - Predicate returning `true` for workspace-internal packages.
|
|
12
|
+
* @returns Filtered `PackageJson` clone.
|
|
13
|
+
*
|
|
14
|
+
* @example Stripping `@hyperfrontend/*` deps before publishing
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const filtered = filterWorkspaceDepsFromOutput(srcPkg, byPrefix('@hyperfrontend/'))
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const filterWorkspaceDepsFromOutput: (pkg: PackageJson, isWorkspacePackage: IsWorkspacePackagePredicate) => PackageJson;
|
|
20
|
+
/**
|
|
21
|
+
* Returns a new `PackageJson` with bundled-dep entries stripped from `dependencies`.
|
|
22
|
+
*
|
|
23
|
+
* When the dist contains pre-passed copies under `_dependencies/<dep>/`, those packages
|
|
24
|
+
* are no longer transitive runtime requirements — consumers get them inside the tarball.
|
|
25
|
+
* Removing them from the published `dependencies` field keeps the manifest honest.
|
|
26
|
+
*
|
|
27
|
+
* If filtering empties the `dependencies` map, the field is removed entirely.
|
|
28
|
+
*
|
|
29
|
+
* @param pkg - Source `PackageJson` to filter.
|
|
30
|
+
* @param bundledDeps - Bundled-dep package names (typically `BuildContext.bundledDeps`).
|
|
31
|
+
* @returns Filtered `PackageJson` clone.
|
|
32
|
+
*
|
|
33
|
+
* @example Stripping bundled deps from the published dependencies map
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const filtered = filterBundledDepsFromOutput(srcPkg, ['rollup', 'postject'])
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare const filterBundledDepsFromOutput: (pkg: PackageJson, bundledDeps: string[]) => PackageJson;
|
|
39
|
+
//# sourceMappingURL=filter-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-deps.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/builder/src/package/json/filter-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI5E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,GAAI,KAAK,WAAW,EAAE,oBAAoB,2BAA2B,KAAG,WAWjH,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,2BAA2B,GAAI,KAAK,WAAW,EAAE,aAAa,MAAM,EAAE,KAAG,WAarF,CAAA"}
|