@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,265 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const index_cjs_js$5 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.cjs.js');
|
|
4
|
+
const index_cjs_js$2 = require('../../_dependencies/@hyperfrontend/logging/index.cjs.js');
|
|
5
|
+
const index_cjs_js = require('../../_dependencies/@hyperfrontend/project-scope/core/index.cjs.js');
|
|
6
|
+
const index_cjs_js$1 = require('../../_dependencies/@hyperfrontend/project-scope/core/path/index.cjs.js');
|
|
7
|
+
const { normalizeFormats } = require('../../_shared/bin/format/index.cjs.js');
|
|
8
|
+
const { defaultBootstrap } = require('../../_shared/bin/script/bootstrap-footer/index.cjs.js');
|
|
9
|
+
const { buildWorkspaceRoutes } = require('../../_shared/bundle/dependencies/externalize-plugin/index.cjs.js');
|
|
10
|
+
const { depsRootOf } = require('../../_shared/bundle/fs/deps-root/index.cjs.js');
|
|
11
|
+
require('node:module');
|
|
12
|
+
require('node:path');
|
|
13
|
+
const index_cjs_js$6 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.cjs.js');
|
|
14
|
+
require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.cjs.js');
|
|
15
|
+
require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.cjs.js');
|
|
16
|
+
require('../../_dependencies/@hyperfrontend/project-scope/core/fs/index.cjs.js');
|
|
17
|
+
const node_child_process = require('node:child_process');
|
|
18
|
+
const node_fs = require('node:fs');
|
|
19
|
+
const node_os = require('node:os');
|
|
20
|
+
const index_cjs_js$4 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.cjs.js');
|
|
21
|
+
const index_cjs_js$3 = require('../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.cjs.js');
|
|
22
|
+
|
|
23
|
+
const SHEBANG = '#!/usr/bin/env node';
|
|
24
|
+
const BIN_FILE_MODE = 0o755;
|
|
25
|
+
const resolveBinOutputFile = (binDir, name, format, formats) => {
|
|
26
|
+
if (format === 'esm')
|
|
27
|
+
return index_cjs_js$1.join(binDir, `${name}.mjs`);
|
|
28
|
+
return formats.length === 1 ? index_cjs_js$1.join(binDir, `${name}.js`) : index_cjs_js$1.join(binDir, `${name}.cjs.js`);
|
|
29
|
+
};
|
|
30
|
+
const resolveBinFooter = (bin, format) => bin.bootstrap ?? defaultBootstrap({ runner: bin.runner ?? 'default', format });
|
|
31
|
+
/**
|
|
32
|
+
* Builds the worker descriptor for a single bin output (one (bin, format) pair).
|
|
33
|
+
*
|
|
34
|
+
* Bins are self-contained executable scripts: workspace deps are inlined and the
|
|
35
|
+
* worker writes to `<outputPath>/bin/<name>.<ext>` with the shebang banner, the
|
|
36
|
+
* resolved bootstrap footer, and `chmod 0o755` applied.
|
|
37
|
+
*
|
|
38
|
+
* Output naming convention:
|
|
39
|
+
* - ESM: `<name>.mjs`
|
|
40
|
+
* - CJS only: `<name>.js`
|
|
41
|
+
* - CJS alongside ESM: `<name>.cjs.js`
|
|
42
|
+
*
|
|
43
|
+
* @param bin - Bin declaration including name, runner, and per-bin bootstrap override.
|
|
44
|
+
* @param context - Resolved build context.
|
|
45
|
+
* @param format - Format being built (one of `bin.format`'s entries).
|
|
46
|
+
* @param formats - Full list of formats requested for this bin (drives the CJS filename).
|
|
47
|
+
* @param reportPath - Absolute path the worker will write its JSON report to.
|
|
48
|
+
* @returns Descriptor ready to be JSON-serialized for the worker.
|
|
49
|
+
*
|
|
50
|
+
* @example Producing the descriptor for an `hf-build` CJS bin alongside an ESM twin
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const descriptor = toBinBuildDescriptor(bin, context, 'cjs', ['cjs', 'esm'], '/tmp/r.json')
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
const toBinBuildDescriptor = (bin, context, format, formats, reportPath) => {
|
|
56
|
+
const inputFile = index_cjs_js$1.join(context.projectRoot, 'src', 'bin', `${bin.name}.ts`);
|
|
57
|
+
const binDir = index_cjs_js$1.join(context.outputPath, 'bin');
|
|
58
|
+
const outputFile = resolveBinOutputFile(binDir, bin.name, format, formats);
|
|
59
|
+
const bundledDepsRoot = depsRootOf(context);
|
|
60
|
+
const workspaceRoutes = buildWorkspaceRoutes(context.workspaceBundledDeps);
|
|
61
|
+
const useExternalizePlugin = context.bundledDeps.length > 0 || workspaceRoutes.length > 0;
|
|
62
|
+
return {
|
|
63
|
+
format,
|
|
64
|
+
inputFile,
|
|
65
|
+
outputDir: index_cjs_js$1.getDirname(outputFile),
|
|
66
|
+
external: [],
|
|
67
|
+
sourcemap: false,
|
|
68
|
+
bundledDepsPlugin: useExternalizePlugin ? { deps: context.bundledDeps, depsRoot: bundledDepsRoot } : null,
|
|
69
|
+
workspaceRoutes,
|
|
70
|
+
tsConfigPath: context.tsConfigPath,
|
|
71
|
+
projectRoot: context.projectRoot,
|
|
72
|
+
workspaceRoot: context.workspaceRoot,
|
|
73
|
+
bundleWorkspaceDeps: true,
|
|
74
|
+
bundle: null,
|
|
75
|
+
bin: {
|
|
76
|
+
outputFile,
|
|
77
|
+
banner: SHEBANG,
|
|
78
|
+
footer: resolveBinFooter(bin, format),
|
|
79
|
+
exports: 'named',
|
|
80
|
+
inlineDynamicImports: true,
|
|
81
|
+
chmod: BIN_FILE_MODE,
|
|
82
|
+
},
|
|
83
|
+
reportPath,
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const log$1 = index_cjs_js$2.logger.channel('builder:bundle:rollup:dispatch');
|
|
88
|
+
const REPORT_DIR_PREFIX = 'hf-builder-rollup-';
|
|
89
|
+
const SWC_NODE_REGISTER = '@swc-node/register';
|
|
90
|
+
const swcNodeAvailable = (workspaceRoot) => node_fs.existsSync(index_cjs_js.join(workspaceRoot, 'node_modules', '@swc-node', 'register', 'index.js'));
|
|
91
|
+
/**
|
|
92
|
+
* Default worker-path resolution: prefers the built-and-published artifact, falls
|
|
93
|
+
* back to the workspace dist path, and finally to the in-source TypeScript file
|
|
94
|
+
* via `@swc-node/register` (bootstrap case where builder is building itself for
|
|
95
|
+
* the first time and the dist worker doesn't exist yet).
|
|
96
|
+
*
|
|
97
|
+
* Looks at, in order:
|
|
98
|
+
* 1. `<workspaceRoot>/dist/libs/builder/bundle/rollup/worker/index.cjs.js`
|
|
99
|
+
* 2. `<workspaceRoot>/node_modules/@hyperfrontend/builder/bundle/rollup/worker/index.cjs.js`
|
|
100
|
+
* 3. `<workspaceRoot>/libs/builder/src/bundle/rollup/worker/index.ts` (with `--require \@swc-node/register`)
|
|
101
|
+
*
|
|
102
|
+
* @param workspaceRoot - Absolute workspace root.
|
|
103
|
+
* @returns Worker invocation descriptor, or `undefined` if no candidate exists.
|
|
104
|
+
*
|
|
105
|
+
* @example Locating the worker for an in-workspace consumer
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const invocation = resolveDefaultRollupWorkerPath('/abs/repo')
|
|
108
|
+
* if (!invocation) throw new Error('builder rollup worker artifact not found')
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
const resolveDefaultRollupWorkerPath = (workspaceRoot) => {
|
|
112
|
+
const distCandidates = [
|
|
113
|
+
index_cjs_js.join(workspaceRoot, 'dist', 'libs', 'builder', 'bundle', 'rollup', 'worker', 'index.cjs.js'),
|
|
114
|
+
index_cjs_js.join(workspaceRoot, 'node_modules', '@hyperfrontend', 'builder', 'bundle', 'rollup', 'worker', 'index.cjs.js'),
|
|
115
|
+
];
|
|
116
|
+
for (const path of distCandidates) {
|
|
117
|
+
if (node_fs.existsSync(path))
|
|
118
|
+
return { path, execArgv: [] };
|
|
119
|
+
}
|
|
120
|
+
const sourcePath = index_cjs_js.join(workspaceRoot, 'libs', 'builder', 'src', 'bundle', 'rollup', 'worker', 'index.ts');
|
|
121
|
+
if (node_fs.existsSync(sourcePath) && swcNodeAvailable(workspaceRoot)) {
|
|
122
|
+
return { path: sourcePath, execArgv: ['--require', SWC_NODE_REGISTER] };
|
|
123
|
+
}
|
|
124
|
+
return undefined;
|
|
125
|
+
};
|
|
126
|
+
const createReportDir = () => node_fs.mkdtempSync(index_cjs_js.join(node_os.tmpdir(), REPORT_DIR_PREFIX));
|
|
127
|
+
const reportPathFor = (reportDir, descriptor) => {
|
|
128
|
+
const safeLabel = descriptor.inputFile.replace(/[^a-zA-Z0-9_-]+/g, '_');
|
|
129
|
+
return index_cjs_js.join(reportDir, `${descriptor.format}-${safeLabel}.json`);
|
|
130
|
+
};
|
|
131
|
+
const runOne = (descriptor, options, label) => index_cjs_js$3.createPromise((resolve, reject) => {
|
|
132
|
+
const execPath = options.execPath ?? process.execPath;
|
|
133
|
+
const argv = [...(options.execArgv ?? []), options.workerPath, index_cjs_js$4.stringify(descriptor)];
|
|
134
|
+
const child = node_child_process.spawn(execPath, argv, { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
135
|
+
let capturedStderr = '';
|
|
136
|
+
child.stdout?.on('data', (chunk) => {
|
|
137
|
+
process.stdout.write(chunk);
|
|
138
|
+
});
|
|
139
|
+
child.stderr?.on('data', (chunk) => {
|
|
140
|
+
const text = typeof chunk === 'string' ? chunk : chunk.toString();
|
|
141
|
+
capturedStderr += text;
|
|
142
|
+
process.stderr.write(text);
|
|
143
|
+
});
|
|
144
|
+
child.on('error', (error) => {
|
|
145
|
+
reject(index_cjs_js$5.createError(`rollup worker for ${label} failed to spawn: ${error.message}`));
|
|
146
|
+
});
|
|
147
|
+
child.on('exit', (code) => {
|
|
148
|
+
if (code !== 0) {
|
|
149
|
+
const tail = capturedStderr.trim().split('\n').slice(-10).join('\n');
|
|
150
|
+
reject(index_cjs_js$5.createError(`rollup worker for ${label} exited with code ${code}\n${tail}`));
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
resolve();
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
const readReport = (reportPath, label) => {
|
|
157
|
+
if (!node_fs.existsSync(reportPath)) {
|
|
158
|
+
throw index_cjs_js$5.createError(`rollup worker for ${label} did not write a report at ${reportPath}`);
|
|
159
|
+
}
|
|
160
|
+
const data = index_cjs_js$4.parse(node_fs.readFileSync(reportPath, 'utf8'));
|
|
161
|
+
return data;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Forks a single rollup worker for the supplied descriptor and waits for it
|
|
165
|
+
* to exit. The caller-provided descriptor's `reportPath` is overwritten with
|
|
166
|
+
* a temp-dir path created by this function.
|
|
167
|
+
*
|
|
168
|
+
* Each worker writes a JSON report at the temp path; this function reads it
|
|
169
|
+
* after the child exits and returns the per-job statistics. If the worker
|
|
170
|
+
* exits non-zero or fails to produce a report, the function throws with a
|
|
171
|
+
* label-rich message.
|
|
172
|
+
*
|
|
173
|
+
* The temp report directory is cleaned up before returning, regardless of
|
|
174
|
+
* success or failure.
|
|
175
|
+
*
|
|
176
|
+
* @param descriptor - Build descriptor to dispatch.
|
|
177
|
+
* @param options - Worker path + optional memory monitor.
|
|
178
|
+
* @returns Worker report (output size + memory + duration) for the dispatched job.
|
|
179
|
+
*
|
|
180
|
+
* @example Dispatching a single ESM build
|
|
181
|
+
* ```typescript
|
|
182
|
+
* const report = await dispatchRollupWorker(descriptor, { workerPath: '/abs/dist/.../worker.cjs.js' })
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
const dispatchRollupWorker = async (descriptor, options) => {
|
|
186
|
+
const reportDir = createReportDir();
|
|
187
|
+
const label = options.label ?? `${descriptor.format}:${descriptor.inputFile}`;
|
|
188
|
+
const reportPath = reportPathFor(reportDir, descriptor);
|
|
189
|
+
const job = { ...descriptor, reportPath };
|
|
190
|
+
try {
|
|
191
|
+
options.monitor?.check(`bundle:rollup:dispatch:${label}:start`);
|
|
192
|
+
log$1.info(`rollup dispatch: ${label}`);
|
|
193
|
+
await runOne(job, options, label);
|
|
194
|
+
const report = readReport(reportPath, label);
|
|
195
|
+
log$1.debug(`rollup dispatch done: ${label} size=${report.outputSize}B heap=${report.endHeapMB.toFixed(1)}MB rss=${report.endRssMB.toFixed(1)}MB t=${report.durationMs}ms`);
|
|
196
|
+
options.monitor?.check(`bundle:rollup:dispatch:${label}:end`);
|
|
197
|
+
return report;
|
|
198
|
+
}
|
|
199
|
+
finally {
|
|
200
|
+
node_fs.rmSync(reportDir, { recursive: true, force: true });
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
const log = index_cjs_js$2.logger.channel('builder:bin:script');
|
|
205
|
+
const resolveWorkerOrThrow = (workspaceRoot) => {
|
|
206
|
+
const invocation = resolveDefaultRollupWorkerPath(workspaceRoot);
|
|
207
|
+
if (!invocation) {
|
|
208
|
+
throw index_cjs_js$5.createError('rollup worker could not be resolved for bin script bundling. Build @hyperfrontend/builder at least once before invoking the bin phase, or ensure @swc-node/register is installed for source-mode bootstrap.');
|
|
209
|
+
}
|
|
210
|
+
return invocation;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Builds the JS outputs for a single bin declaration.
|
|
214
|
+
*
|
|
215
|
+
* For each declared format (CJS / ESM), forks a rollup worker that bundles
|
|
216
|
+
* `src/bin/<name>.ts`, prepends the `#!/usr/bin/env node` shebang, appends the
|
|
217
|
+
* resolved bootstrap footer (per-bin override or `defaultBootstrap`), writes
|
|
218
|
+
* the output to `<outputPath>/bin/<name>.<ext>`, and chmods it to `0o755` so
|
|
219
|
+
* the npm bin symlink is invokable. The worker isolates the heavy bin bundle
|
|
220
|
+
* (rollup + plugins + transitive deps loaded into the child) from the parent
|
|
221
|
+
* process.
|
|
222
|
+
*
|
|
223
|
+
* Output naming follows the convention:
|
|
224
|
+
* - ESM: `<name>.mjs`
|
|
225
|
+
* - CJS only: `<name>.js`
|
|
226
|
+
* - CJS alongside ESM: `<name>.cjs.js`
|
|
227
|
+
*
|
|
228
|
+
* Workspace dependencies are always inlined into bin bundles — bins are intended
|
|
229
|
+
* to ship as self-contained executable scripts.
|
|
230
|
+
*
|
|
231
|
+
* @param bin - Bin declaration including name, format(s), optional runner override, and bootstrap override.
|
|
232
|
+
* @param ctx - Resolved build context.
|
|
233
|
+
* @returns One `BinOutput` per emitted JS artifact.
|
|
234
|
+
*
|
|
235
|
+
* @example Building a CJS-only bin
|
|
236
|
+
* ```typescript
|
|
237
|
+
* const outputs = await buildJsBin({ name: 'cz', format: 'cjs', runner: 'runCz' }, context)
|
|
238
|
+
* ```
|
|
239
|
+
*
|
|
240
|
+
* @example Building dual CJS + ESM outputs
|
|
241
|
+
* ```typescript
|
|
242
|
+
* const outputs = await buildJsBin({ name: 'hf-build', format: ['cjs', 'esm'] }, context)
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
const buildJsBin = async (bin, ctx) => {
|
|
246
|
+
const formats = normalizeFormats(bin.format);
|
|
247
|
+
const binDir = index_cjs_js.join(ctx.outputPath, 'bin');
|
|
248
|
+
index_cjs_js.ensureDir(binDir);
|
|
249
|
+
const worker = resolveWorkerOrThrow(ctx.workspaceRoot);
|
|
250
|
+
const outputs = [];
|
|
251
|
+
for (const format of formats) {
|
|
252
|
+
const descriptor = toBinBuildDescriptor(bin, ctx, format, formats, '');
|
|
253
|
+
log.info(`building ${format} bin: ${bin.name}`);
|
|
254
|
+
await dispatchRollupWorker(descriptor, {
|
|
255
|
+
workerPath: worker.path,
|
|
256
|
+
execArgv: worker.execArgv,
|
|
257
|
+
label: `bin:${bin.name}:${format}`,
|
|
258
|
+
});
|
|
259
|
+
outputs.push({ name: bin.name, kind: format, outputPath: descriptor.bin?.outputFile });
|
|
260
|
+
}
|
|
261
|
+
return outputs;
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
exports.buildJsBin = buildJsBin;
|
|
265
|
+
exports.defaultBootstrap = defaultBootstrap;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { BinScriptFormat, BinConfig, BuildContext, BinOutput } from '../../models';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Inputs to {@link defaultBootstrap}.
|
|
5
|
+
*/
|
|
6
|
+
interface DefaultBootstrapOptions {
|
|
7
|
+
/** Runner export name to invoke. Use `'default'` to target the file's default export. */
|
|
8
|
+
runner: string;
|
|
9
|
+
/** Output format the bootstrap will be appended to. */
|
|
10
|
+
format: BinScriptFormat;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Builds the standard bootstrap footer appended to a JS bin's bundle output.
|
|
14
|
+
*
|
|
15
|
+
* The footer wires the resolved runner export to `process.argv` / `process.cwd()` /
|
|
16
|
+
* `process.stderr` / `process.stdout`, maps the returned exit code to `process.exit`,
|
|
17
|
+
* and surfaces unexpected rejections by writing to stderr and exiting `1`.
|
|
18
|
+
*
|
|
19
|
+
* When `runner === 'default'`, the runner reference is resolved differently per format:
|
|
20
|
+
* - CJS uses `module.exports.default`, available as a top-level reference inside the
|
|
21
|
+
* compiled CommonJS bundle.
|
|
22
|
+
* - ESM uses `(await import(import.meta.url)).default`, which re-imports the bundle's
|
|
23
|
+
* own module record to retrieve the default export. ESM top-level `await` is required.
|
|
24
|
+
*
|
|
25
|
+
* Otherwise the supplied named runner is referenced directly, which works for both
|
|
26
|
+
* formats because Rollup preserves the local function name at the file scope.
|
|
27
|
+
*
|
|
28
|
+
* @param options - Runner name + target format.
|
|
29
|
+
* @returns Bootstrap snippet suitable for `output.footer`.
|
|
30
|
+
*
|
|
31
|
+
* @example Default-export runner for an ESM bin
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const footer = defaultBootstrap({ runner: 'default', format: 'esm' })
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @example Named runner shared between CJS and ESM outputs
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const footer = defaultBootstrap({ runner: 'runCz', format: 'cjs' })
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
declare const defaultBootstrap: (options: DefaultBootstrapOptions) => string;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Builds the JS outputs for a single bin declaration.
|
|
45
|
+
*
|
|
46
|
+
* For each declared format (CJS / ESM), forks a rollup worker that bundles
|
|
47
|
+
* `src/bin/<name>.ts`, prepends the `#!/usr/bin/env node` shebang, appends the
|
|
48
|
+
* resolved bootstrap footer (per-bin override or `defaultBootstrap`), writes
|
|
49
|
+
* the output to `<outputPath>/bin/<name>.<ext>`, and chmods it to `0o755` so
|
|
50
|
+
* the npm bin symlink is invokable. The worker isolates the heavy bin bundle
|
|
51
|
+
* (rollup + plugins + transitive deps loaded into the child) from the parent
|
|
52
|
+
* process.
|
|
53
|
+
*
|
|
54
|
+
* Output naming follows the convention:
|
|
55
|
+
* - ESM: `<name>.mjs`
|
|
56
|
+
* - CJS only: `<name>.js`
|
|
57
|
+
* - CJS alongside ESM: `<name>.cjs.js`
|
|
58
|
+
*
|
|
59
|
+
* Workspace dependencies are always inlined into bin bundles — bins are intended
|
|
60
|
+
* to ship as self-contained executable scripts.
|
|
61
|
+
*
|
|
62
|
+
* @param bin - Bin declaration including name, format(s), optional runner override, and bootstrap override.
|
|
63
|
+
* @param ctx - Resolved build context.
|
|
64
|
+
* @returns One `BinOutput` per emitted JS artifact.
|
|
65
|
+
*
|
|
66
|
+
* @example Building a CJS-only bin
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const outputs = await buildJsBin({ name: 'cz', format: 'cjs', runner: 'runCz' }, context)
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @example Building dual CJS + ESM outputs
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const outputs = await buildJsBin({ name: 'hf-build', format: ['cjs', 'esm'] }, context)
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
declare const buildJsBin: (bin: BinConfig, ctx: BuildContext) => Promise<BinOutput[]>;
|
|
77
|
+
|
|
78
|
+
export { buildJsBin, defaultBootstrap };
|
|
79
|
+
export type { DefaultBootstrapOptions };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/builder/src/bin/script/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { createError } from '../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.esm.js';
|
|
2
|
+
import { logger } from '../../_dependencies/@hyperfrontend/logging/index.esm.js';
|
|
3
|
+
import { join, ensureDir } from '../../_dependencies/@hyperfrontend/project-scope/core/index.esm.js';
|
|
4
|
+
import { join as join$1, getDirname } from '../../_dependencies/@hyperfrontend/project-scope/core/path/index.esm.js';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
import 'node:path';
|
|
7
|
+
import { isArray } from '../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.esm.js';
|
|
8
|
+
import '../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js';
|
|
9
|
+
import '../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.esm.js';
|
|
10
|
+
import '../../_dependencies/@hyperfrontend/project-scope/core/fs/index.esm.js';
|
|
11
|
+
import { spawn } from 'node:child_process';
|
|
12
|
+
import { rmSync, existsSync, mkdtempSync, readFileSync } from 'node:fs';
|
|
13
|
+
import { tmpdir } from 'node:os';
|
|
14
|
+
import { stringify, parse } from '../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.esm.js';
|
|
15
|
+
import { createPromise } from '../../_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.esm.js';
|
|
16
|
+
import { normalizeFormats } from '../../_shared/bin/format/index.esm.js';
|
|
17
|
+
import { defaultBootstrap } from '../../_shared/bin/script/bootstrap-footer/index.esm.js';
|
|
18
|
+
import { buildWorkspaceRoutes } from '../../_shared/bundle/dependencies/externalize-plugin/index.esm.js';
|
|
19
|
+
import { depsRootOf } from '../../_shared/bundle/fs/deps-root/index.esm.js';
|
|
20
|
+
|
|
21
|
+
const SHEBANG = '#!/usr/bin/env node';
|
|
22
|
+
const BIN_FILE_MODE = 0o755;
|
|
23
|
+
const resolveBinOutputFile = (binDir, name, format, formats) => {
|
|
24
|
+
if (format === 'esm')
|
|
25
|
+
return join$1(binDir, `${name}.mjs`);
|
|
26
|
+
return formats.length === 1 ? join$1(binDir, `${name}.js`) : join$1(binDir, `${name}.cjs.js`);
|
|
27
|
+
};
|
|
28
|
+
const resolveBinFooter = (bin, format) => bin.bootstrap ?? defaultBootstrap({ runner: bin.runner ?? 'default', format });
|
|
29
|
+
/**
|
|
30
|
+
* Builds the worker descriptor for a single bin output (one (bin, format) pair).
|
|
31
|
+
*
|
|
32
|
+
* Bins are self-contained executable scripts: workspace deps are inlined and the
|
|
33
|
+
* worker writes to `<outputPath>/bin/<name>.<ext>` with the shebang banner, the
|
|
34
|
+
* resolved bootstrap footer, and `chmod 0o755` applied.
|
|
35
|
+
*
|
|
36
|
+
* Output naming convention:
|
|
37
|
+
* - ESM: `<name>.mjs`
|
|
38
|
+
* - CJS only: `<name>.js`
|
|
39
|
+
* - CJS alongside ESM: `<name>.cjs.js`
|
|
40
|
+
*
|
|
41
|
+
* @param bin - Bin declaration including name, runner, and per-bin bootstrap override.
|
|
42
|
+
* @param context - Resolved build context.
|
|
43
|
+
* @param format - Format being built (one of `bin.format`'s entries).
|
|
44
|
+
* @param formats - Full list of formats requested for this bin (drives the CJS filename).
|
|
45
|
+
* @param reportPath - Absolute path the worker will write its JSON report to.
|
|
46
|
+
* @returns Descriptor ready to be JSON-serialized for the worker.
|
|
47
|
+
*
|
|
48
|
+
* @example Producing the descriptor for an `hf-build` CJS bin alongside an ESM twin
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const descriptor = toBinBuildDescriptor(bin, context, 'cjs', ['cjs', 'esm'], '/tmp/r.json')
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
const toBinBuildDescriptor = (bin, context, format, formats, reportPath) => {
|
|
54
|
+
const inputFile = join$1(context.projectRoot, 'src', 'bin', `${bin.name}.ts`);
|
|
55
|
+
const binDir = join$1(context.outputPath, 'bin');
|
|
56
|
+
const outputFile = resolveBinOutputFile(binDir, bin.name, format, formats);
|
|
57
|
+
const bundledDepsRoot = depsRootOf(context);
|
|
58
|
+
const workspaceRoutes = buildWorkspaceRoutes(context.workspaceBundledDeps);
|
|
59
|
+
const useExternalizePlugin = context.bundledDeps.length > 0 || workspaceRoutes.length > 0;
|
|
60
|
+
return {
|
|
61
|
+
format,
|
|
62
|
+
inputFile,
|
|
63
|
+
outputDir: getDirname(outputFile),
|
|
64
|
+
external: [],
|
|
65
|
+
sourcemap: false,
|
|
66
|
+
bundledDepsPlugin: useExternalizePlugin ? { deps: context.bundledDeps, depsRoot: bundledDepsRoot } : null,
|
|
67
|
+
workspaceRoutes,
|
|
68
|
+
tsConfigPath: context.tsConfigPath,
|
|
69
|
+
projectRoot: context.projectRoot,
|
|
70
|
+
workspaceRoot: context.workspaceRoot,
|
|
71
|
+
bundleWorkspaceDeps: true,
|
|
72
|
+
bundle: null,
|
|
73
|
+
bin: {
|
|
74
|
+
outputFile,
|
|
75
|
+
banner: SHEBANG,
|
|
76
|
+
footer: resolveBinFooter(bin, format),
|
|
77
|
+
exports: 'named',
|
|
78
|
+
inlineDynamicImports: true,
|
|
79
|
+
chmod: BIN_FILE_MODE,
|
|
80
|
+
},
|
|
81
|
+
reportPath,
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const log$1 = logger.channel('builder:bundle:rollup:dispatch');
|
|
86
|
+
const REPORT_DIR_PREFIX = 'hf-builder-rollup-';
|
|
87
|
+
const SWC_NODE_REGISTER = '@swc-node/register';
|
|
88
|
+
const swcNodeAvailable = (workspaceRoot) => existsSync(join(workspaceRoot, 'node_modules', '@swc-node', 'register', 'index.js'));
|
|
89
|
+
/**
|
|
90
|
+
* Default worker-path resolution: prefers the built-and-published artifact, falls
|
|
91
|
+
* back to the workspace dist path, and finally to the in-source TypeScript file
|
|
92
|
+
* via `@swc-node/register` (bootstrap case where builder is building itself for
|
|
93
|
+
* the first time and the dist worker doesn't exist yet).
|
|
94
|
+
*
|
|
95
|
+
* Looks at, in order:
|
|
96
|
+
* 1. `<workspaceRoot>/dist/libs/builder/bundle/rollup/worker/index.cjs.js`
|
|
97
|
+
* 2. `<workspaceRoot>/node_modules/@hyperfrontend/builder/bundle/rollup/worker/index.cjs.js`
|
|
98
|
+
* 3. `<workspaceRoot>/libs/builder/src/bundle/rollup/worker/index.ts` (with `--require \@swc-node/register`)
|
|
99
|
+
*
|
|
100
|
+
* @param workspaceRoot - Absolute workspace root.
|
|
101
|
+
* @returns Worker invocation descriptor, or `undefined` if no candidate exists.
|
|
102
|
+
*
|
|
103
|
+
* @example Locating the worker for an in-workspace consumer
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const invocation = resolveDefaultRollupWorkerPath('/abs/repo')
|
|
106
|
+
* if (!invocation) throw new Error('builder rollup worker artifact not found')
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
const resolveDefaultRollupWorkerPath = (workspaceRoot) => {
|
|
110
|
+
const distCandidates = [
|
|
111
|
+
join(workspaceRoot, 'dist', 'libs', 'builder', 'bundle', 'rollup', 'worker', 'index.cjs.js'),
|
|
112
|
+
join(workspaceRoot, 'node_modules', '@hyperfrontend', 'builder', 'bundle', 'rollup', 'worker', 'index.cjs.js'),
|
|
113
|
+
];
|
|
114
|
+
for (const path of distCandidates) {
|
|
115
|
+
if (existsSync(path))
|
|
116
|
+
return { path, execArgv: [] };
|
|
117
|
+
}
|
|
118
|
+
const sourcePath = join(workspaceRoot, 'libs', 'builder', 'src', 'bundle', 'rollup', 'worker', 'index.ts');
|
|
119
|
+
if (existsSync(sourcePath) && swcNodeAvailable(workspaceRoot)) {
|
|
120
|
+
return { path: sourcePath, execArgv: ['--require', SWC_NODE_REGISTER] };
|
|
121
|
+
}
|
|
122
|
+
return undefined;
|
|
123
|
+
};
|
|
124
|
+
const createReportDir = () => mkdtempSync(join(tmpdir(), REPORT_DIR_PREFIX));
|
|
125
|
+
const reportPathFor = (reportDir, descriptor) => {
|
|
126
|
+
const safeLabel = descriptor.inputFile.replace(/[^a-zA-Z0-9_-]+/g, '_');
|
|
127
|
+
return join(reportDir, `${descriptor.format}-${safeLabel}.json`);
|
|
128
|
+
};
|
|
129
|
+
const runOne = (descriptor, options, label) => createPromise((resolve, reject) => {
|
|
130
|
+
const execPath = options.execPath ?? process.execPath;
|
|
131
|
+
const argv = [...(options.execArgv ?? []), options.workerPath, stringify(descriptor)];
|
|
132
|
+
const child = spawn(execPath, argv, { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
133
|
+
let capturedStderr = '';
|
|
134
|
+
child.stdout?.on('data', (chunk) => {
|
|
135
|
+
process.stdout.write(chunk);
|
|
136
|
+
});
|
|
137
|
+
child.stderr?.on('data', (chunk) => {
|
|
138
|
+
const text = typeof chunk === 'string' ? chunk : chunk.toString();
|
|
139
|
+
capturedStderr += text;
|
|
140
|
+
process.stderr.write(text);
|
|
141
|
+
});
|
|
142
|
+
child.on('error', (error) => {
|
|
143
|
+
reject(createError(`rollup worker for ${label} failed to spawn: ${error.message}`));
|
|
144
|
+
});
|
|
145
|
+
child.on('exit', (code) => {
|
|
146
|
+
if (code !== 0) {
|
|
147
|
+
const tail = capturedStderr.trim().split('\n').slice(-10).join('\n');
|
|
148
|
+
reject(createError(`rollup worker for ${label} exited with code ${code}\n${tail}`));
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
resolve();
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
const readReport = (reportPath, label) => {
|
|
155
|
+
if (!existsSync(reportPath)) {
|
|
156
|
+
throw createError(`rollup worker for ${label} did not write a report at ${reportPath}`);
|
|
157
|
+
}
|
|
158
|
+
const data = parse(readFileSync(reportPath, 'utf8'));
|
|
159
|
+
return data;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Forks a single rollup worker for the supplied descriptor and waits for it
|
|
163
|
+
* to exit. The caller-provided descriptor's `reportPath` is overwritten with
|
|
164
|
+
* a temp-dir path created by this function.
|
|
165
|
+
*
|
|
166
|
+
* Each worker writes a JSON report at the temp path; this function reads it
|
|
167
|
+
* after the child exits and returns the per-job statistics. If the worker
|
|
168
|
+
* exits non-zero or fails to produce a report, the function throws with a
|
|
169
|
+
* label-rich message.
|
|
170
|
+
*
|
|
171
|
+
* The temp report directory is cleaned up before returning, regardless of
|
|
172
|
+
* success or failure.
|
|
173
|
+
*
|
|
174
|
+
* @param descriptor - Build descriptor to dispatch.
|
|
175
|
+
* @param options - Worker path + optional memory monitor.
|
|
176
|
+
* @returns Worker report (output size + memory + duration) for the dispatched job.
|
|
177
|
+
*
|
|
178
|
+
* @example Dispatching a single ESM build
|
|
179
|
+
* ```typescript
|
|
180
|
+
* const report = await dispatchRollupWorker(descriptor, { workerPath: '/abs/dist/.../worker.cjs.js' })
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
const dispatchRollupWorker = async (descriptor, options) => {
|
|
184
|
+
const reportDir = createReportDir();
|
|
185
|
+
const label = options.label ?? `${descriptor.format}:${descriptor.inputFile}`;
|
|
186
|
+
const reportPath = reportPathFor(reportDir, descriptor);
|
|
187
|
+
const job = { ...descriptor, reportPath };
|
|
188
|
+
try {
|
|
189
|
+
options.monitor?.check(`bundle:rollup:dispatch:${label}:start`);
|
|
190
|
+
log$1.info(`rollup dispatch: ${label}`);
|
|
191
|
+
await runOne(job, options, label);
|
|
192
|
+
const report = readReport(reportPath, label);
|
|
193
|
+
log$1.debug(`rollup dispatch done: ${label} size=${report.outputSize}B heap=${report.endHeapMB.toFixed(1)}MB rss=${report.endRssMB.toFixed(1)}MB t=${report.durationMs}ms`);
|
|
194
|
+
options.monitor?.check(`bundle:rollup:dispatch:${label}:end`);
|
|
195
|
+
return report;
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
rmSync(reportDir, { recursive: true, force: true });
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
const log = logger.channel('builder:bin:script');
|
|
203
|
+
const resolveWorkerOrThrow = (workspaceRoot) => {
|
|
204
|
+
const invocation = resolveDefaultRollupWorkerPath(workspaceRoot);
|
|
205
|
+
if (!invocation) {
|
|
206
|
+
throw createError('rollup worker could not be resolved for bin script bundling. Build @hyperfrontend/builder at least once before invoking the bin phase, or ensure @swc-node/register is installed for source-mode bootstrap.');
|
|
207
|
+
}
|
|
208
|
+
return invocation;
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Builds the JS outputs for a single bin declaration.
|
|
212
|
+
*
|
|
213
|
+
* For each declared format (CJS / ESM), forks a rollup worker that bundles
|
|
214
|
+
* `src/bin/<name>.ts`, prepends the `#!/usr/bin/env node` shebang, appends the
|
|
215
|
+
* resolved bootstrap footer (per-bin override or `defaultBootstrap`), writes
|
|
216
|
+
* the output to `<outputPath>/bin/<name>.<ext>`, and chmods it to `0o755` so
|
|
217
|
+
* the npm bin symlink is invokable. The worker isolates the heavy bin bundle
|
|
218
|
+
* (rollup + plugins + transitive deps loaded into the child) from the parent
|
|
219
|
+
* process.
|
|
220
|
+
*
|
|
221
|
+
* Output naming follows the convention:
|
|
222
|
+
* - ESM: `<name>.mjs`
|
|
223
|
+
* - CJS only: `<name>.js`
|
|
224
|
+
* - CJS alongside ESM: `<name>.cjs.js`
|
|
225
|
+
*
|
|
226
|
+
* Workspace dependencies are always inlined into bin bundles — bins are intended
|
|
227
|
+
* to ship as self-contained executable scripts.
|
|
228
|
+
*
|
|
229
|
+
* @param bin - Bin declaration including name, format(s), optional runner override, and bootstrap override.
|
|
230
|
+
* @param ctx - Resolved build context.
|
|
231
|
+
* @returns One `BinOutput` per emitted JS artifact.
|
|
232
|
+
*
|
|
233
|
+
* @example Building a CJS-only bin
|
|
234
|
+
* ```typescript
|
|
235
|
+
* const outputs = await buildJsBin({ name: 'cz', format: 'cjs', runner: 'runCz' }, context)
|
|
236
|
+
* ```
|
|
237
|
+
*
|
|
238
|
+
* @example Building dual CJS + ESM outputs
|
|
239
|
+
* ```typescript
|
|
240
|
+
* const outputs = await buildJsBin({ name: 'hf-build', format: ['cjs', 'esm'] }, context)
|
|
241
|
+
* ```
|
|
242
|
+
*/
|
|
243
|
+
const buildJsBin = async (bin, ctx) => {
|
|
244
|
+
const formats = normalizeFormats(bin.format);
|
|
245
|
+
const binDir = join(ctx.outputPath, 'bin');
|
|
246
|
+
ensureDir(binDir);
|
|
247
|
+
const worker = resolveWorkerOrThrow(ctx.workspaceRoot);
|
|
248
|
+
const outputs = [];
|
|
249
|
+
for (const format of formats) {
|
|
250
|
+
const descriptor = toBinBuildDescriptor(bin, ctx, format, formats, '');
|
|
251
|
+
log.info(`building ${format} bin: ${bin.name}`);
|
|
252
|
+
await dispatchRollupWorker(descriptor, {
|
|
253
|
+
workerPath: worker.path,
|
|
254
|
+
execArgv: worker.execArgv,
|
|
255
|
+
label: `bin:${bin.name}:${format}`,
|
|
256
|
+
});
|
|
257
|
+
outputs.push({ name: bin.name, kind: format, outputPath: descriptor.bin?.outputFile });
|
|
258
|
+
}
|
|
259
|
+
return outputs;
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
export { buildJsBin, defaultBootstrap };
|
package/build.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { BuildConfig, BuildContext, BuildResult } from './models';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a {@link BuildContext} from a top-level {@link BuildConfig}.
|
|
4
|
+
*
|
|
5
|
+
* Defaults applied:
|
|
6
|
+
* - `outputPath` → `<workspaceRoot>/dist/<projectRelativePath>`
|
|
7
|
+
* - `tsConfigPath` → `<projectRoot>/tsconfig.lib.json`
|
|
8
|
+
* - `external` → `[]`
|
|
9
|
+
* - `assets` → `[]`
|
|
10
|
+
* - `isWorkspacePackage` → predicate that always returns `false`
|
|
11
|
+
*
|
|
12
|
+
* Entry-point discovery is performed against `<projectRoot>/src` exactly once
|
|
13
|
+
* during context creation.
|
|
14
|
+
*
|
|
15
|
+
* @param config - Top-level builder configuration.
|
|
16
|
+
* @returns Resolved context consumed by the bundle, package, and bin phases.
|
|
17
|
+
*
|
|
18
|
+
* @example Building a context manually for a custom orchestrator
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const context = createBuildContext({ projectRoot, workspaceRoot })
|
|
21
|
+
* await runBundlePhase(context, config)
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const createBuildContext: (config: BuildConfig) => BuildContext;
|
|
25
|
+
/**
|
|
26
|
+
* The single facade that orchestrates a complete build: resolves the context,
|
|
27
|
+
* optionally enables the memory monitor, then runs the bundle, package, and bin
|
|
28
|
+
* phases in order before reflecting `package.json#files` from the materialized
|
|
29
|
+
* output tree. Returns a {@link BuildResult} summarizing what was emitted and
|
|
30
|
+
* how long it took.
|
|
31
|
+
*
|
|
32
|
+
* A failure in any phase still flushes the memory-monitor summary (when
|
|
33
|
+
* enabled) before re-throwing the original error.
|
|
34
|
+
*
|
|
35
|
+
* @param config - Top-level builder configuration.
|
|
36
|
+
* @returns A `BuildResult` with per-format counts, raw format outputs, bin
|
|
37
|
+
* outputs, and total duration in milliseconds.
|
|
38
|
+
* @throws {Error} Whatever any phase throws — the facade does not swallow errors.
|
|
39
|
+
*
|
|
40
|
+
* @example Building a library with workspace-aware externals
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import { build } from '@hyperfrontend/builder'
|
|
43
|
+
* import { byPrefix } from '@hyperfrontend/builder/presets'
|
|
44
|
+
*
|
|
45
|
+
* const result = await build({
|
|
46
|
+
* projectRoot: '/abs/libs/foo',
|
|
47
|
+
* workspaceRoot: '/abs/repo',
|
|
48
|
+
* isWorkspacePackage: byPrefix('@hyperfrontend/'),
|
|
49
|
+
* esm: { bundleWorkspaceDeps: false },
|
|
50
|
+
* cjs: { bundleWorkspaceDeps: false },
|
|
51
|
+
* })
|
|
52
|
+
* result.formatCounts.esm // => number of ESM entries emitted
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare const build: (config: BuildConfig) => Promise<BuildResult>;
|
|
56
|
+
//# sourceMappingURL=build.d.ts.map
|
package/build.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../libs/builder/src/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EAQZ,MAAM,UAAU,CAAA;AAkFjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,WAAW,KAAG,YAmBxD,CAAA;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,KAAK,GAAU,QAAQ,WAAW,KAAG,OAAO,CAAC,WAAW,CAiCpE,CAAA"}
|