@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.
Files changed (561) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/FUNDING.md +141 -0
  3. package/LICENSE.md +21 -0
  4. package/README.md +162 -0
  5. package/SECURITY.md +82 -0
  6. package/THIRD_PARTY_LICENSES.md +13 -0
  7. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.cjs.js +7 -0
  8. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/array/index.esm.js +5 -0
  9. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/console/index.cjs.js +13 -0
  10. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/console/index.esm.js +8 -0
  11. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/date/index.cjs.js +5 -0
  12. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/date/index.esm.js +4 -0
  13. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/encoding/index.cjs.js +1 -0
  14. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/encoding/index.esm.js +1 -0
  15. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.cjs.js +6 -0
  16. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/error/index.esm.js +5 -0
  17. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/function/index.cjs.js +1 -0
  18. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/function/index.esm.js +1 -0
  19. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.cjs.js +7 -0
  20. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/json/index.esm.js +5 -0
  21. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/map/index.cjs.js +6 -0
  22. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/map/index.esm.js +5 -0
  23. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.cjs.js +7 -0
  24. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.esm.js +5 -0
  25. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/messaging/index.cjs.js +1 -0
  26. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/messaging/index.esm.js +1 -0
  27. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/number/index.cjs.js +1 -0
  28. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/number/index.esm.js +1 -0
  29. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.cjs.js +13 -0
  30. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js +8 -0
  31. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.cjs.js +6 -0
  32. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.esm.js +5 -0
  33. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/reflect/index.cjs.js +1 -0
  34. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/reflect/index.esm.js +1 -0
  35. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/regexp/index.cjs.js +6 -0
  36. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/regexp/index.esm.js +5 -0
  37. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.cjs.js +6 -0
  38. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/set/index.esm.js +5 -0
  39. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/string/index.cjs.js +1 -0
  40. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/string/index.esm.js +1 -0
  41. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/symbol/index.cjs.js +1 -0
  42. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/symbol/index.esm.js +1 -0
  43. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/timers/index.cjs.js +13 -0
  44. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/timers/index.esm.js +10 -0
  45. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/typed-arrays/index.cjs.js +1 -0
  46. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/typed-arrays/index.esm.js +1 -0
  47. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/url/index.cjs.js +6 -0
  48. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/url/index.esm.js +5 -0
  49. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/weak-map/index.cjs.js +1 -0
  50. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/weak-map/index.esm.js +1 -0
  51. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/weak-set/index.cjs.js +1 -0
  52. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/weak-set/index.esm.js +1 -0
  53. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/websocket/index.cjs.js +1 -0
  54. package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/websocket/index.esm.js +1 -0
  55. package/_dependencies/@hyperfrontend/immutable-api-utils/index.cjs.js +1 -0
  56. package/_dependencies/@hyperfrontend/immutable-api-utils/index.esm.js +1 -0
  57. package/_dependencies/@hyperfrontend/immutable-api-utils/locked/index.cjs.js +1 -0
  58. package/_dependencies/@hyperfrontend/immutable-api-utils/locked/index.esm.js +1 -0
  59. package/_dependencies/@hyperfrontend/immutable-api-utils/locked-prop-descriptors/index.cjs.js +1 -0
  60. package/_dependencies/@hyperfrontend/immutable-api-utils/locked-prop-descriptors/index.esm.js +1 -0
  61. package/_dependencies/@hyperfrontend/immutable-api-utils/locked-props/index.cjs.js +1 -0
  62. package/_dependencies/@hyperfrontend/immutable-api-utils/locked-props/index.esm.js +1 -0
  63. package/_dependencies/@hyperfrontend/logging/index.cjs.js +191 -0
  64. package/_dependencies/@hyperfrontend/logging/index.esm.js +186 -0
  65. package/_dependencies/@hyperfrontend/project-scope/cli/index.cjs.js +196 -0
  66. package/_dependencies/@hyperfrontend/project-scope/cli/index.esm.js +196 -0
  67. package/_dependencies/@hyperfrontend/project-scope/core/encoding/index.cjs.js +82 -0
  68. package/_dependencies/@hyperfrontend/project-scope/core/encoding/index.esm.js +82 -0
  69. package/_dependencies/@hyperfrontend/project-scope/core/fs/index.cjs.js +154 -0
  70. package/_dependencies/@hyperfrontend/project-scope/core/fs/index.esm.js +149 -0
  71. package/_dependencies/@hyperfrontend/project-scope/core/index.cjs.js +459 -0
  72. package/_dependencies/@hyperfrontend/project-scope/core/index.esm.js +440 -0
  73. package/_dependencies/@hyperfrontend/project-scope/core/logger/index.cjs.js +84 -0
  74. package/_dependencies/@hyperfrontend/project-scope/core/logger/index.esm.js +80 -0
  75. package/_dependencies/@hyperfrontend/project-scope/core/path/index.cjs.js +26 -0
  76. package/_dependencies/@hyperfrontend/project-scope/core/path/index.esm.js +22 -0
  77. package/_dependencies/@hyperfrontend/project-scope/core/platform/index.cjs.js +1 -0
  78. package/_dependencies/@hyperfrontend/project-scope/core/platform/index.esm.js +1 -0
  79. package/_dependencies/@hyperfrontend/project-scope/heuristics/dependencies/index.cjs.js +90 -0
  80. package/_dependencies/@hyperfrontend/project-scope/heuristics/dependencies/index.esm.js +90 -0
  81. package/_dependencies/@hyperfrontend/project-scope/heuristics/entry-points/index.cjs.js +174 -0
  82. package/_dependencies/@hyperfrontend/project-scope/heuristics/entry-points/index.esm.js +174 -0
  83. package/_dependencies/@hyperfrontend/project-scope/heuristics/framework/index.cjs.js +174 -0
  84. package/_dependencies/@hyperfrontend/project-scope/heuristics/framework/index.esm.js +172 -0
  85. package/_dependencies/@hyperfrontend/project-scope/heuristics/index.cjs.js +184 -0
  86. package/_dependencies/@hyperfrontend/project-scope/heuristics/index.esm.js +184 -0
  87. package/_dependencies/@hyperfrontend/project-scope/heuristics/project-type/index.cjs.js +172 -0
  88. package/_dependencies/@hyperfrontend/project-scope/heuristics/project-type/index.esm.js +172 -0
  89. package/_dependencies/@hyperfrontend/project-scope/index.cjs.js +222 -0
  90. package/_dependencies/@hyperfrontend/project-scope/index.esm.js +219 -0
  91. package/_dependencies/@hyperfrontend/project-scope/models/index.cjs.js +2 -0
  92. package/_dependencies/@hyperfrontend/project-scope/models/index.esm.js +1 -0
  93. package/_dependencies/@hyperfrontend/project-scope/nx/index.cjs.js +94 -0
  94. package/_dependencies/@hyperfrontend/project-scope/nx/index.esm.js +94 -0
  95. package/_dependencies/@hyperfrontend/project-scope/project/config/index.cjs.js +172 -0
  96. package/_dependencies/@hyperfrontend/project-scope/project/config/index.esm.js +172 -0
  97. package/_dependencies/@hyperfrontend/project-scope/project/index.cjs.js +176 -0
  98. package/_dependencies/@hyperfrontend/project-scope/project/index.esm.js +176 -0
  99. package/_dependencies/@hyperfrontend/project-scope/project/package/index.cjs.js +88 -0
  100. package/_dependencies/@hyperfrontend/project-scope/project/package/index.esm.js +88 -0
  101. package/_dependencies/@hyperfrontend/project-scope/project/root/index.cjs.js +154 -0
  102. package/_dependencies/@hyperfrontend/project-scope/project/root/index.esm.js +153 -0
  103. package/_dependencies/@hyperfrontend/project-scope/project/traversal/index.cjs.js +91 -0
  104. package/_dependencies/@hyperfrontend/project-scope/project/traversal/index.esm.js +89 -0
  105. package/_dependencies/@hyperfrontend/project-scope/tech/backend/index.cjs.js +88 -0
  106. package/_dependencies/@hyperfrontend/project-scope/tech/backend/index.esm.js +88 -0
  107. package/_dependencies/@hyperfrontend/project-scope/tech/build/index.cjs.js +88 -0
  108. package/_dependencies/@hyperfrontend/project-scope/tech/build/index.esm.js +88 -0
  109. package/_dependencies/@hyperfrontend/project-scope/tech/frontend/index.cjs.js +88 -0
  110. package/_dependencies/@hyperfrontend/project-scope/tech/frontend/index.esm.js +88 -0
  111. package/_dependencies/@hyperfrontend/project-scope/tech/index.cjs.js +171 -0
  112. package/_dependencies/@hyperfrontend/project-scope/tech/index.esm.js +169 -0
  113. package/_dependencies/@hyperfrontend/project-scope/tech/legacy/index.cjs.js +88 -0
  114. package/_dependencies/@hyperfrontend/project-scope/tech/legacy/index.esm.js +88 -0
  115. package/_dependencies/@hyperfrontend/project-scope/tech/linting/index.cjs.js +88 -0
  116. package/_dependencies/@hyperfrontend/project-scope/tech/linting/index.esm.js +88 -0
  117. package/_dependencies/@hyperfrontend/project-scope/tech/monorepo/index.cjs.js +88 -0
  118. package/_dependencies/@hyperfrontend/project-scope/tech/monorepo/index.esm.js +88 -0
  119. package/_dependencies/@hyperfrontend/project-scope/tech/testing/index.cjs.js +88 -0
  120. package/_dependencies/@hyperfrontend/project-scope/tech/testing/index.esm.js +88 -0
  121. package/_dependencies/@hyperfrontend/project-scope/tech/types/index.cjs.js +88 -0
  122. package/_dependencies/@hyperfrontend/project-scope/tech/types/index.esm.js +88 -0
  123. package/_dependencies/@hyperfrontend/project-scope/vfs/index.cjs.js +102 -0
  124. package/_dependencies/@hyperfrontend/project-scope/vfs/index.esm.js +102 -0
  125. package/_dependencies/@hyperfrontend/versioning/changelog/compare/index.cjs.js +1 -0
  126. package/_dependencies/@hyperfrontend/versioning/changelog/compare/index.esm.js +1 -0
  127. package/_dependencies/@hyperfrontend/versioning/changelog/index.cjs.js +1 -0
  128. package/_dependencies/@hyperfrontend/versioning/changelog/index.esm.js +1 -0
  129. package/_dependencies/@hyperfrontend/versioning/changelog/models/index.cjs.js +1 -0
  130. package/_dependencies/@hyperfrontend/versioning/changelog/models/index.esm.js +1 -0
  131. package/_dependencies/@hyperfrontend/versioning/changelog/operations/index.cjs.js +1 -0
  132. package/_dependencies/@hyperfrontend/versioning/changelog/operations/index.esm.js +1 -0
  133. package/_dependencies/@hyperfrontend/versioning/changelog/parse/index.cjs.js +1 -0
  134. package/_dependencies/@hyperfrontend/versioning/changelog/parse/index.esm.js +1 -0
  135. package/_dependencies/@hyperfrontend/versioning/changelog/serialize/index.cjs.js +1 -0
  136. package/_dependencies/@hyperfrontend/versioning/changelog/serialize/index.esm.js +1 -0
  137. package/_dependencies/@hyperfrontend/versioning/commits/author/index.cjs.js +2403 -0
  138. package/_dependencies/@hyperfrontend/versioning/commits/author/index.esm.js +2381 -0
  139. package/_dependencies/@hyperfrontend/versioning/commits/classify/index.cjs.js +38 -0
  140. package/_dependencies/@hyperfrontend/versioning/commits/classify/index.esm.js +30 -0
  141. package/_dependencies/@hyperfrontend/versioning/commits/format/index.cjs.js +1 -0
  142. package/_dependencies/@hyperfrontend/versioning/commits/format/index.esm.js +1 -0
  143. package/_dependencies/@hyperfrontend/versioning/commits/index.cjs.js +2457 -0
  144. package/_dependencies/@hyperfrontend/versioning/commits/index.esm.js +2407 -0
  145. package/_dependencies/@hyperfrontend/versioning/commits/models/index.cjs.js +1 -0
  146. package/_dependencies/@hyperfrontend/versioning/commits/models/index.esm.js +1 -0
  147. package/_dependencies/@hyperfrontend/versioning/commits/parse/index.cjs.js +1 -0
  148. package/_dependencies/@hyperfrontend/versioning/commits/parse/index.esm.js +1 -0
  149. package/_dependencies/@hyperfrontend/versioning/commits/validate/index.cjs.js +27 -0
  150. package/_dependencies/@hyperfrontend/versioning/commits/validate/index.esm.js +25 -0
  151. package/_dependencies/@hyperfrontend/versioning/flow/executor/index.cjs.js +36 -0
  152. package/_dependencies/@hyperfrontend/versioning/flow/executor/index.esm.js +36 -0
  153. package/_dependencies/@hyperfrontend/versioning/flow/index.cjs.js +51 -0
  154. package/_dependencies/@hyperfrontend/versioning/flow/index.esm.js +51 -0
  155. package/_dependencies/@hyperfrontend/versioning/flow/models/index.cjs.js +30 -0
  156. package/_dependencies/@hyperfrontend/versioning/flow/models/index.esm.js +28 -0
  157. package/_dependencies/@hyperfrontend/versioning/flow/presets/index.cjs.js +47 -0
  158. package/_dependencies/@hyperfrontend/versioning/flow/presets/index.esm.js +45 -0
  159. package/_dependencies/@hyperfrontend/versioning/flow/steps/index.cjs.js +47 -0
  160. package/_dependencies/@hyperfrontend/versioning/flow/steps/index.esm.js +45 -0
  161. package/_dependencies/@hyperfrontend/versioning/git/index.cjs.js +8 -0
  162. package/_dependencies/@hyperfrontend/versioning/git/index.esm.js +9 -0
  163. package/_dependencies/@hyperfrontend/versioning/git/models/index.cjs.js +1 -0
  164. package/_dependencies/@hyperfrontend/versioning/git/models/index.esm.js +1 -0
  165. package/_dependencies/@hyperfrontend/versioning/git/operations/index.cjs.js +3 -0
  166. package/_dependencies/@hyperfrontend/versioning/git/operations/index.esm.js +3 -0
  167. package/_dependencies/@hyperfrontend/versioning/index.cjs.js +2481 -0
  168. package/_dependencies/@hyperfrontend/versioning/index.esm.js +2423 -0
  169. package/_dependencies/@hyperfrontend/versioning/registry/index.cjs.js +1 -0
  170. package/_dependencies/@hyperfrontend/versioning/registry/index.esm.js +1 -0
  171. package/_dependencies/@hyperfrontend/versioning/registry/models/index.cjs.js +1 -0
  172. package/_dependencies/@hyperfrontend/versioning/registry/models/index.esm.js +1 -0
  173. package/_dependencies/@hyperfrontend/versioning/registry/npm/index.cjs.js +1 -0
  174. package/_dependencies/@hyperfrontend/versioning/registry/npm/index.esm.js +1 -0
  175. package/_dependencies/@hyperfrontend/versioning/repository/index.cjs.js +18 -0
  176. package/_dependencies/@hyperfrontend/versioning/repository/index.esm.js +17 -0
  177. package/_dependencies/@hyperfrontend/versioning/repository/models/index.cjs.js +11 -0
  178. package/_dependencies/@hyperfrontend/versioning/repository/models/index.esm.js +10 -0
  179. package/_dependencies/@hyperfrontend/versioning/repository/parse/index.cjs.js +184 -0
  180. package/_dependencies/@hyperfrontend/versioning/repository/parse/index.esm.js +185 -0
  181. package/_dependencies/@hyperfrontend/versioning/repository/url/index.cjs.js +10 -0
  182. package/_dependencies/@hyperfrontend/versioning/repository/url/index.esm.js +8 -0
  183. package/_dependencies/@hyperfrontend/versioning/semver/compare/index.cjs.js +1 -0
  184. package/_dependencies/@hyperfrontend/versioning/semver/compare/index.esm.js +1 -0
  185. package/_dependencies/@hyperfrontend/versioning/semver/format/index.cjs.js +1 -0
  186. package/_dependencies/@hyperfrontend/versioning/semver/format/index.esm.js +1 -0
  187. package/_dependencies/@hyperfrontend/versioning/semver/increment/index.cjs.js +1 -0
  188. package/_dependencies/@hyperfrontend/versioning/semver/increment/index.esm.js +1 -0
  189. package/_dependencies/@hyperfrontend/versioning/semver/index.cjs.js +1 -0
  190. package/_dependencies/@hyperfrontend/versioning/semver/index.esm.js +1 -0
  191. package/_dependencies/@hyperfrontend/versioning/semver/models/index.cjs.js +1 -0
  192. package/_dependencies/@hyperfrontend/versioning/semver/models/index.esm.js +1 -0
  193. package/_dependencies/@hyperfrontend/versioning/semver/parse/index.cjs.js +1 -0
  194. package/_dependencies/@hyperfrontend/versioning/semver/parse/index.esm.js +1 -0
  195. package/_dependencies/@hyperfrontend/versioning/workspace/discovery/index.cjs.js +29 -0
  196. package/_dependencies/@hyperfrontend/versioning/workspace/discovery/index.esm.js +29 -0
  197. package/_dependencies/@hyperfrontend/versioning/workspace/index.cjs.js +29 -0
  198. package/_dependencies/@hyperfrontend/versioning/workspace/index.esm.js +29 -0
  199. package/_dependencies/@hyperfrontend/versioning/workspace/models/index.cjs.js +1 -0
  200. package/_dependencies/@hyperfrontend/versioning/workspace/models/index.esm.js +1 -0
  201. package/_dependencies/@hyperfrontend/versioning/workspace/operations/index.cjs.js +2 -0
  202. package/_dependencies/@hyperfrontend/versioning/workspace/operations/index.esm.js +2 -0
  203. package/_dependencies/@rollup/plugin-commonjs/index.cjs.js +6629 -0
  204. package/_dependencies/@rollup/plugin-commonjs/index.esm.js +6608 -0
  205. package/_dependencies/@rollup/plugin-json/index.cjs.js +2324 -0
  206. package/_dependencies/@rollup/plugin-json/index.esm.js +2322 -0
  207. package/_dependencies/@rollup/plugin-node-resolve/index.cjs.js +5430 -0
  208. package/_dependencies/@rollup/plugin-node-resolve/index.esm.js +5424 -0
  209. package/_dependencies/@rollup/plugin-terser/index.cjs.js +33220 -0
  210. package/_dependencies/@rollup/plugin-terser/index.esm.js +33217 -0
  211. package/_dependencies/@rollup/plugin-typescript/index.cjs.js +4840 -0
  212. package/_dependencies/@rollup/plugin-typescript/index.esm.js +4819 -0
  213. package/_dependencies/postject/index.cjs.js +5140 -0
  214. package/_dependencies/postject/index.esm.js +5131 -0
  215. package/_dependencies/rollup/index.cjs.js +24668 -0
  216. package/_dependencies/rollup/index.d.ts +1921 -0
  217. package/_dependencies/rollup/index.esm.js +24652 -0
  218. package/_dependencies/rollup-plugin-dts/index.cjs.js +6547 -0
  219. package/_dependencies/rollup-plugin-dts/index.esm.js +6537 -0
  220. package/_shared/bin/format/index.cjs.js +7 -0
  221. package/_shared/bin/format/index.esm.js +5 -0
  222. package/_shared/bin/native/codesign/index.cjs.js +30 -0
  223. package/_shared/bin/native/codesign/index.esm.js +26 -0
  224. package/_shared/bin/native/host-binary/index.cjs.js +13 -0
  225. package/_shared/bin/native/host-binary/index.esm.js +11 -0
  226. package/_shared/bin/native/inject/index.cjs.js +25 -0
  227. package/_shared/bin/native/inject/index.esm.js +18 -0
  228. package/_shared/bin/native/platform-check/index.cjs.js +13 -0
  229. package/_shared/bin/native/platform-check/index.esm.js +10 -0
  230. package/_shared/bin/native/sea-blob/index.cjs.js +21 -0
  231. package/_shared/bin/native/sea-blob/index.esm.js +19 -0
  232. package/_shared/bin/native/sea-config/index.cjs.js +9 -0
  233. package/_shared/bin/native/sea-config/index.esm.js +7 -0
  234. package/_shared/bin/script/bootstrap-footer/index.cjs.js +22 -0
  235. package/_shared/bin/script/bootstrap-footer/index.esm.js +19 -0
  236. package/_shared/bundle/declarations/flatten-paths/index.cjs.js +34 -0
  237. package/_shared/bundle/declarations/flatten-paths/index.esm.js +29 -0
  238. package/_shared/bundle/dependencies/collect-workspace-deps/index.cjs.js +24 -0
  239. package/_shared/bundle/dependencies/collect-workspace-deps/index.esm.js +21 -0
  240. package/_shared/bundle/dependencies/externalize-plugin/index.cjs.js +93 -0
  241. package/_shared/bundle/dependencies/externalize-plugin/index.esm.js +86 -0
  242. package/_shared/bundle/dependencies/prune/ast-utils/index.esm.js +31 -0
  243. package/_shared/bundle/dependencies/prune/namespace-usage/index.esm.js +208 -0
  244. package/_shared/bundle/dependencies/prune/specifiers/index.cjs.js +62 -0
  245. package/_shared/bundle/dependencies/prune/specifiers/index.esm.js +53 -0
  246. package/_shared/bundle/entries/discover-entries/index.cjs.js +87 -0
  247. package/_shared/bundle/entries/discover-entries/index.esm.js +80 -0
  248. package/_shared/bundle/entries/resolve-entries/index.cjs.js +38 -0
  249. package/_shared/bundle/entries/resolve-entries/index.esm.js +34 -0
  250. package/_shared/bundle/externals/validate-globals/index.cjs.js +14 -0
  251. package/_shared/bundle/externals/validate-globals/index.esm.js +12 -0
  252. package/_shared/bundle/fs/deps-root/index.cjs.js +7 -0
  253. package/_shared/bundle/fs/deps-root/index.esm.js +5 -0
  254. package/_shared/bundle/fs/empty-dirs/index.cjs.js +23 -0
  255. package/_shared/bundle/fs/empty-dirs/index.esm.js +21 -0
  256. package/_shared/bundle/fs/entry-dir/index.cjs.js +7 -0
  257. package/_shared/bundle/fs/entry-dir/index.esm.js +5 -0
  258. package/_shared/bundle/fs/posix-path/index.cjs.js +9 -0
  259. package/_shared/bundle/fs/posix-path/index.esm.js +4 -0
  260. package/_shared/bundle/fs/under-dir/index.cjs.js +5 -0
  261. package/_shared/bundle/fs/under-dir/index.esm.js +3 -0
  262. package/_shared/memory/recover/index.cjs.js +15 -0
  263. package/_shared/memory/recover/index.esm.js +14 -0
  264. package/_shared/package/finalize-files/index.cjs.js +16 -0
  265. package/_shared/package/finalize-files/index.esm.js +15 -0
  266. package/_shared/package/json/cdn-paths/index.cjs.js +13 -0
  267. package/_shared/package/json/cdn-paths/index.esm.js +11 -0
  268. package/_shared/package/json/filter-deps/index.cjs.js +37 -0
  269. package/_shared/package/json/filter-deps/index.esm.js +34 -0
  270. package/_shared/package/json/generate-exports/index.cjs.js +56 -0
  271. package/_shared/package/json/generate-exports/index.esm.js +52 -0
  272. package/_shared/package/json/inherit-fields/index.cjs.js +19 -0
  273. package/_shared/package/json/inherit-fields/index.esm.js +17 -0
  274. package/_shared/package/json/read-package-json/index.cjs.js +7 -0
  275. package/_shared/package/json/read-package-json/index.esm.js +6 -0
  276. package/_shared/package/json/reflect-files-allowlist/index.cjs.js +39 -0
  277. package/_shared/package/json/reflect-files-allowlist/index.esm.js +33 -0
  278. package/_shared/package/json/synthesize/index.cjs.js +72 -0
  279. package/_shared/package/json/synthesize/index.esm.js +68 -0
  280. package/_shared/package/json/write/index.cjs.js +9 -0
  281. package/_shared/package/json/write/index.esm.js +8 -0
  282. package/_shared/package/licenses/generate-content/index.cjs.js +17 -0
  283. package/_shared/package/licenses/generate-content/index.esm.js +17 -0
  284. package/_shared/package/licenses/license-url/index.esm.js +29 -0
  285. package/_shared/package/licenses/write/index.cjs.js +9 -0
  286. package/_shared/package/licenses/write/index.esm.js +8 -0
  287. package/_shared/presets/by-names/index.cjs.js +10 -0
  288. package/_shared/presets/by-names/index.esm.js +8 -0
  289. package/_shared/presets/by-prefix/index.cjs.js +7 -0
  290. package/_shared/presets/by-prefix/index.esm.js +5 -0
  291. package/bin/format.d.ts +18 -0
  292. package/bin/format.d.ts.map +1 -0
  293. package/bin/hf-build.d.ts +81 -0
  294. package/bin/hf-build.d.ts.map +1 -0
  295. package/bin/hf-build.js +208533 -0
  296. package/bin/hf-build.linux-x64 +0 -0
  297. package/bin/index.cjs.js +548 -0
  298. package/bin/index.d.ts +26 -0
  299. package/bin/index.d.ts.map +1 -0
  300. package/bin/index.esm.js +546 -0
  301. package/bin/native/build-native.d.ts +44 -0
  302. package/bin/native/build-native.d.ts.map +1 -0
  303. package/bin/native/codesign.d.ts +65 -0
  304. package/bin/native/codesign.d.ts.map +1 -0
  305. package/bin/native/dispatch.d.ts +75 -0
  306. package/bin/native/dispatch.d.ts.map +1 -0
  307. package/bin/native/host-binary.d.ts +36 -0
  308. package/bin/native/host-binary.d.ts.map +1 -0
  309. package/bin/native/index.cjs.js +264 -0
  310. package/bin/native/index.d.ts +407 -0
  311. package/bin/native/index.d.ts.map +1 -0
  312. package/bin/native/index.esm.js +249 -0
  313. package/bin/native/inject.d.ts +61 -0
  314. package/bin/native/inject.d.ts.map +1 -0
  315. package/bin/native/platform-check.d.ts +39 -0
  316. package/bin/native/platform-check.d.ts.map +1 -0
  317. package/bin/native/sea-blob.d.ts +40 -0
  318. package/bin/native/sea-blob.d.ts.map +1 -0
  319. package/bin/native/sea-config.d.ts +45 -0
  320. package/bin/native/sea-config.d.ts.map +1 -0
  321. package/bin/native/worker/index.cjs.js +88 -0
  322. package/bin/native/worker/index.d.ts +68 -0
  323. package/bin/native/worker/index.d.ts.map +1 -0
  324. package/bin/native/worker/index.esm.js +86 -0
  325. package/bin/native/worker/job-runner.d.ts +29 -0
  326. package/bin/native/worker/job-runner.d.ts.map +1 -0
  327. package/bin/native/worker/types.d.ts +38 -0
  328. package/bin/native/worker/types.d.ts.map +1 -0
  329. package/bin/run-bin-phase.d.ts +24 -0
  330. package/bin/run-bin-phase.d.ts.map +1 -0
  331. package/bin/script/bootstrap-footer.d.ts +41 -0
  332. package/bin/script/bootstrap-footer.d.ts.map +1 -0
  333. package/bin/script/build-bin.d.ts +36 -0
  334. package/bin/script/build-bin.d.ts.map +1 -0
  335. package/bin/script/index.cjs.js +265 -0
  336. package/bin/script/index.d.ts +79 -0
  337. package/bin/script/index.d.ts.map +1 -0
  338. package/bin/script/index.esm.js +262 -0
  339. package/build.d.ts +56 -0
  340. package/build.d.ts.map +1 -0
  341. package/bundle/declarations/dts-per-entry.d.ts +27 -0
  342. package/bundle/declarations/dts-per-entry.d.ts.map +1 -0
  343. package/bundle/declarations/dts-pre-pass.d.ts +18 -0
  344. package/bundle/declarations/dts-pre-pass.d.ts.map +1 -0
  345. package/bundle/declarations/flatten-paths.d.ts +28 -0
  346. package/bundle/declarations/flatten-paths.d.ts.map +1 -0
  347. package/bundle/declarations/generate-declarations.d.ts +33 -0
  348. package/bundle/declarations/generate-declarations.d.ts.map +1 -0
  349. package/bundle/declarations/index.cjs.js +868 -0
  350. package/bundle/declarations/index.d.ts +262 -0
  351. package/bundle/declarations/index.d.ts.map +1 -0
  352. package/bundle/declarations/index.esm.js +857 -0
  353. package/bundle/declarations/prune-orphan-dts.d.ts +33 -0
  354. package/bundle/declarations/prune-orphan-dts.d.ts.map +1 -0
  355. package/bundle/declarations/sibling-resolver.d.ts +125 -0
  356. package/bundle/declarations/sibling-resolver.d.ts.map +1 -0
  357. package/bundle/dedupe/attribute-modules.d.ts +178 -0
  358. package/bundle/dedupe/attribute-modules.d.ts.map +1 -0
  359. package/bundle/dedupe/extract-chunk.d.ts +103 -0
  360. package/bundle/dedupe/extract-chunk.d.ts.map +1 -0
  361. package/bundle/dedupe/hoist-shared.d.ts +37 -0
  362. package/bundle/dedupe/hoist-shared.d.ts.map +1 -0
  363. package/bundle/dedupe/index.cjs.js +818 -0
  364. package/bundle/dedupe/index.d.ts +400 -0
  365. package/bundle/dedupe/index.d.ts.map +1 -0
  366. package/bundle/dedupe/index.esm.js +766 -0
  367. package/bundle/dedupe/plan-hoists.d.ts +46 -0
  368. package/bundle/dedupe/plan-hoists.d.ts.map +1 -0
  369. package/bundle/dedupe/rewrite-entry.d.ts +39 -0
  370. package/bundle/dedupe/rewrite-entry.d.ts.map +1 -0
  371. package/bundle/dependencies/collect-workspace-deps.d.ts +34 -0
  372. package/bundle/dependencies/collect-workspace-deps.d.ts.map +1 -0
  373. package/bundle/dependencies/externalize-plugin.d.ts +100 -0
  374. package/bundle/dependencies/externalize-plugin.d.ts.map +1 -0
  375. package/bundle/dependencies/index.cjs.js +964 -0
  376. package/bundle/dependencies/index.d.ts +388 -0
  377. package/bundle/dependencies/index.d.ts.map +1 -0
  378. package/bundle/dependencies/index.esm.js +947 -0
  379. package/bundle/dependencies/pre-pass.d.ts +154 -0
  380. package/bundle/dependencies/pre-pass.d.ts.map +1 -0
  381. package/bundle/dependencies/prune/ast-utils.d.ts +121 -0
  382. package/bundle/dependencies/prune/ast-utils.d.ts.map +1 -0
  383. package/bundle/dependencies/prune/chunk-graph.d.ts +175 -0
  384. package/bundle/dependencies/prune/chunk-graph.d.ts.map +1 -0
  385. package/bundle/dependencies/prune/dead-export-pass.d.ts +32 -0
  386. package/bundle/dependencies/prune/dead-export-pass.d.ts.map +1 -0
  387. package/bundle/dependencies/prune/dead-exports.d.ts +36 -0
  388. package/bundle/dependencies/prune/dead-exports.d.ts.map +1 -0
  389. package/bundle/dependencies/prune/destructure-requires-pass.d.ts +31 -0
  390. package/bundle/dependencies/prune/destructure-requires-pass.d.ts.map +1 -0
  391. package/bundle/dependencies/prune/destructure-requires.d.ts +42 -0
  392. package/bundle/dependencies/prune/destructure-requires.d.ts.map +1 -0
  393. package/bundle/dependencies/prune/edits.d.ts +30 -0
  394. package/bundle/dependencies/prune/edits.d.ts.map +1 -0
  395. package/bundle/dependencies/prune/namespace-usage.d.ts +104 -0
  396. package/bundle/dependencies/prune/namespace-usage.d.ts.map +1 -0
  397. package/bundle/dependencies/prune/orphan-chunks.d.ts +69 -0
  398. package/bundle/dependencies/prune/orphan-chunks.d.ts.map +1 -0
  399. package/bundle/dependencies/prune/property-strip-pass.d.ts +38 -0
  400. package/bundle/dependencies/prune/property-strip-pass.d.ts.map +1 -0
  401. package/bundle/dependencies/prune/property-strip.d.ts +69 -0
  402. package/bundle/dependencies/prune/property-strip.d.ts.map +1 -0
  403. package/bundle/dependencies/prune/prune-dependencies.d.ts +52 -0
  404. package/bundle/dependencies/prune/prune-dependencies.d.ts.map +1 -0
  405. package/bundle/dependencies/prune/reachability.d.ts +36 -0
  406. package/bundle/dependencies/prune/reachability.d.ts.map +1 -0
  407. package/bundle/dependencies/prune/specifiers.d.ts +39 -0
  408. package/bundle/dependencies/prune/specifiers.d.ts.map +1 -0
  409. package/bundle/dependencies/prune/strip-comments.d.ts +47 -0
  410. package/bundle/dependencies/prune/strip-comments.d.ts.map +1 -0
  411. package/bundle/dependencies/prune/used-exports.d.ts +32 -0
  412. package/bundle/dependencies/prune/used-exports.d.ts.map +1 -0
  413. package/bundle/dependencies/resolve-bundled-deps.d.ts +37 -0
  414. package/bundle/dependencies/resolve-bundled-deps.d.ts.map +1 -0
  415. package/bundle/dependencies/resolve-dep-entry.d.ts +38 -0
  416. package/bundle/dependencies/resolve-dep-entry.d.ts.map +1 -0
  417. package/bundle/dependencies/resolve-workspace-bundled-deps.d.ts +96 -0
  418. package/bundle/dependencies/resolve-workspace-bundled-deps.d.ts.map +1 -0
  419. package/bundle/dependencies/worker/index.cjs.js +524 -0
  420. package/bundle/dependencies/worker/index.d.ts +102 -0
  421. package/bundle/dependencies/worker/index.d.ts.map +1 -0
  422. package/bundle/dependencies/worker/index.esm.js +515 -0
  423. package/bundle/dependencies/worker/job-runner.d.ts +115 -0
  424. package/bundle/dependencies/worker/job-runner.d.ts.map +1 -0
  425. package/bundle/entries/by-platform.d.ts +27 -0
  426. package/bundle/entries/by-platform.d.ts.map +1 -0
  427. package/bundle/entries/discover-entries.d.ts +24 -0
  428. package/bundle/entries/discover-entries.d.ts.map +1 -0
  429. package/bundle/entries/index.cjs.js +38 -0
  430. package/bundle/entries/index.d.ts +70 -0
  431. package/bundle/entries/index.d.ts.map +1 -0
  432. package/bundle/entries/index.esm.js +33 -0
  433. package/bundle/entries/resolve-entries.d.ts +19 -0
  434. package/bundle/entries/resolve-entries.d.ts.map +1 -0
  435. package/bundle/externals/index.cjs.js +54 -0
  436. package/bundle/externals/index.d.ts +74 -0
  437. package/bundle/externals/index.d.ts.map +1 -0
  438. package/bundle/externals/index.esm.js +51 -0
  439. package/bundle/externals/resolve-externals.d.ts +52 -0
  440. package/bundle/externals/resolve-externals.d.ts.map +1 -0
  441. package/bundle/externals/validate-globals.d.ts +19 -0
  442. package/bundle/externals/validate-globals.d.ts.map +1 -0
  443. package/bundle/fs/deps-root.d.ts +17 -0
  444. package/bundle/fs/deps-root.d.ts.map +1 -0
  445. package/bundle/fs/empty-dirs.d.ts +18 -0
  446. package/bundle/fs/empty-dirs.d.ts.map +1 -0
  447. package/bundle/fs/entry-dir.d.ts +21 -0
  448. package/bundle/fs/entry-dir.d.ts.map +1 -0
  449. package/bundle/fs/posix-path.d.ts +30 -0
  450. package/bundle/fs/posix-path.d.ts.map +1 -0
  451. package/bundle/fs/under-dir.d.ts +19 -0
  452. package/bundle/fs/under-dir.d.ts.map +1 -0
  453. package/bundle/index.cjs.js +4046 -0
  454. package/bundle/index.d.ts +25 -0
  455. package/bundle/index.d.ts.map +1 -0
  456. package/bundle/index.esm.js +3689 -0
  457. package/bundle/rollup/descriptor.d.ts +99 -0
  458. package/bundle/rollup/descriptor.d.ts.map +1 -0
  459. package/bundle/rollup/dispatch.d.ts +72 -0
  460. package/bundle/rollup/dispatch.d.ts.map +1 -0
  461. package/bundle/rollup/index.cjs.js +715 -0
  462. package/bundle/rollup/index.d.ts +174 -0
  463. package/bundle/rollup/index.d.ts.map +1 -0
  464. package/bundle/rollup/index.esm.js +698 -0
  465. package/bundle/rollup/worker/index.cjs.js +290 -0
  466. package/bundle/rollup/worker/index.d.ts +131 -0
  467. package/bundle/rollup/worker/index.d.ts.map +1 -0
  468. package/bundle/rollup/worker/index.esm.js +280 -0
  469. package/bundle/rollup/worker/job-runner.d.ts +18 -0
  470. package/bundle/rollup/worker/job-runner.d.ts.map +1 -0
  471. package/bundle/rollup/worker/types.d.ts +111 -0
  472. package/bundle/rollup/worker/types.d.ts.map +1 -0
  473. package/bundle/run-bundle-phase.d.ts +23 -0
  474. package/bundle/run-bundle-phase.d.ts.map +1 -0
  475. package/clean-output.d.ts +26 -0
  476. package/clean-output.d.ts.map +1 -0
  477. package/index.cjs.js +5317 -0
  478. package/index.d.ts +64 -0
  479. package/index.d.ts.map +1 -0
  480. package/index.esm.js +4910 -0
  481. package/memory/index.cjs.js +101 -0
  482. package/memory/index.d.ts +81 -0
  483. package/memory/index.d.ts.map +1 -0
  484. package/memory/index.esm.js +98 -0
  485. package/memory/monitor.d.ts +59 -0
  486. package/memory/monitor.d.ts.map +1 -0
  487. package/memory/recover.d.ts +19 -0
  488. package/memory/recover.d.ts.map +1 -0
  489. package/models/build-config.d.ts +266 -0
  490. package/models/build-config.d.ts.map +1 -0
  491. package/models/build-context.d.ts +68 -0
  492. package/models/build-context.d.ts.map +1 -0
  493. package/models/build-result.d.ts +43 -0
  494. package/models/build-result.d.ts.map +1 -0
  495. package/models/entry-point.d.ts +45 -0
  496. package/models/entry-point.d.ts.map +1 -0
  497. package/models/format-output.d.ts +34 -0
  498. package/models/format-output.d.ts.map +1 -0
  499. package/models/index.cjs.js +2 -0
  500. package/models/index.d.ts +581 -0
  501. package/models/index.d.ts.map +1 -0
  502. package/models/index.esm.js +1 -0
  503. package/models/package-json.d.ts +130 -0
  504. package/models/package-json.d.ts.map +1 -0
  505. package/package/assets/copy-assets.d.ts +31 -0
  506. package/package/assets/copy-assets.d.ts.map +1 -0
  507. package/package/assets/index.cjs.js +84 -0
  508. package/package/assets/index.d.ts +33 -0
  509. package/package/assets/index.d.ts.map +1 -0
  510. package/package/assets/index.esm.js +82 -0
  511. package/package/finalize-files.d.ts +25 -0
  512. package/package/finalize-files.d.ts.map +1 -0
  513. package/package/index.cjs.js +276 -0
  514. package/package/index.d.ts +56 -0
  515. package/package/index.d.ts.map +1 -0
  516. package/package/index.esm.js +231 -0
  517. package/package/json/cdn-paths.d.ts +41 -0
  518. package/package/json/cdn-paths.d.ts.map +1 -0
  519. package/package/json/filter-deps.d.ts +39 -0
  520. package/package/json/filter-deps.d.ts.map +1 -0
  521. package/package/json/generate-exports.d.ts +29 -0
  522. package/package/json/generate-exports.d.ts.map +1 -0
  523. package/package/json/index.cjs.js +24 -0
  524. package/package/json/index.d.ts +252 -0
  525. package/package/json/index.d.ts.map +1 -0
  526. package/package/json/index.esm.js +14 -0
  527. package/package/json/inherit-fields.d.ts +25 -0
  528. package/package/json/inherit-fields.d.ts.map +1 -0
  529. package/package/json/read-package-json.d.ts +18 -0
  530. package/package/json/read-package-json.d.ts.map +1 -0
  531. package/package/json/reflect-files-allowlist.d.ts +32 -0
  532. package/package/json/reflect-files-allowlist.d.ts.map +1 -0
  533. package/package/json/synthesize.d.ts +53 -0
  534. package/package/json/synthesize.d.ts.map +1 -0
  535. package/package/json/write.d.ts +18 -0
  536. package/package/json/write.d.ts.map +1 -0
  537. package/package/licenses/collect.d.ts +25 -0
  538. package/package/licenses/collect.d.ts.map +1 -0
  539. package/package/licenses/generate-content.d.ts +20 -0
  540. package/package/licenses/generate-content.d.ts.map +1 -0
  541. package/package/licenses/index.cjs.js +135 -0
  542. package/package/licenses/index.d.ts +73 -0
  543. package/package/licenses/index.d.ts.map +1 -0
  544. package/package/licenses/index.esm.js +89 -0
  545. package/package/licenses/license-url.d.ts +20 -0
  546. package/package/licenses/license-url.d.ts.map +1 -0
  547. package/package/licenses/types.d.ts +12 -0
  548. package/package/licenses/types.d.ts.map +1 -0
  549. package/package/licenses/write.d.ts +16 -0
  550. package/package/licenses/write.d.ts.map +1 -0
  551. package/package/run-package-phase.d.ts +30 -0
  552. package/package/run-package-phase.d.ts.map +1 -0
  553. package/package.json +347 -0
  554. package/presets/by-names.d.ts +20 -0
  555. package/presets/by-names.d.ts.map +1 -0
  556. package/presets/by-prefix.d.ts +22 -0
  557. package/presets/by-prefix.d.ts.map +1 -0
  558. package/presets/index.cjs.js +8 -0
  559. package/presets/index.d.ts +43 -0
  560. package/presets/index.d.ts.map +1 -0
  561. 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"}