@atlaspack/core 2.16.2-canary.48 → 2.16.2-canary.481

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 (380) hide show
  1. package/CHANGELOG.md +1324 -0
  2. package/dist/AssetGraph.js +523 -0
  3. package/dist/Atlaspack.js +701 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1906 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +470 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1297 -0
  16. package/dist/SymbolPropagation.js +624 -0
  17. package/dist/TargetDescriptor.schema.js +146 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +310 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +384 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
  25. package/dist/atlaspack-v3/fs.js +53 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
  30. package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
  31. package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
  32. package/dist/atlaspack-v3/worker/compat/index.js +24 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  37. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  38. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  39. package/dist/atlaspack-v3/worker/worker.js +398 -0
  40. package/dist/constants.js +17 -0
  41. package/dist/dumpGraphToGraphViz.js +281 -0
  42. package/dist/index.js +62 -0
  43. package/dist/loadAtlaspackPlugin.js +128 -0
  44. package/dist/loadDotEnv.js +41 -0
  45. package/dist/projectPath.js +83 -0
  46. package/dist/public/Asset.js +279 -0
  47. package/dist/public/Bundle.js +224 -0
  48. package/dist/public/BundleGraph.js +371 -0
  49. package/dist/public/BundleGroup.js +53 -0
  50. package/dist/public/Config.js +286 -0
  51. package/dist/public/Dependency.js +138 -0
  52. package/dist/public/Environment.js +278 -0
  53. package/dist/public/MutableBundleGraph.js +277 -0
  54. package/dist/public/PluginOptions.js +80 -0
  55. package/dist/public/Symbols.js +248 -0
  56. package/dist/public/Target.js +69 -0
  57. package/dist/registerCoreWithSerializer.js +38 -0
  58. package/dist/requests/AssetGraphRequest.js +430 -0
  59. package/dist/requests/AssetGraphRequestRust.js +471 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +98 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +381 -0
  64. package/dist/requests/BundleGraphRequestRust.js +324 -0
  65. package/dist/requests/BundleGraphRequestUtils.js +262 -0
  66. package/dist/requests/ConfigRequest.js +246 -0
  67. package/dist/requests/DevDepRequest.js +204 -0
  68. package/dist/requests/EntryRequest.js +314 -0
  69. package/dist/requests/PackageRequest.js +89 -0
  70. package/dist/requests/PathRequest.js +349 -0
  71. package/dist/requests/TargetRequest.js +1316 -0
  72. package/dist/requests/ValidationRequest.js +49 -0
  73. package/dist/requests/WriteBundleRequest.js +522 -0
  74. package/dist/requests/WriteBundlesRequest.js +190 -0
  75. package/dist/requests/asset-graph-diff.js +128 -0
  76. package/dist/requests/asset-graph-dot.js +131 -0
  77. package/dist/resolveOptions.js +267 -0
  78. package/dist/rustWorkerThreadDylibHack.js +19 -0
  79. package/dist/serializerCore.browser.js +43 -0
  80. package/dist/summarizeRequest.js +39 -0
  81. package/dist/types.js +31 -0
  82. package/dist/utils.js +172 -0
  83. package/dist/worker.js +123 -0
  84. package/lib/AssetGraph.js +53 -15
  85. package/lib/Atlaspack.js +140 -56
  86. package/lib/AtlaspackConfig.js +17 -6
  87. package/lib/AtlaspackConfig.schema.js +16 -5
  88. package/lib/BundleGraph.js +390 -43
  89. package/lib/CommittedAsset.js +8 -2
  90. package/lib/Dependency.js +9 -3
  91. package/lib/Environment.js +16 -10
  92. package/lib/EnvironmentManager.js +143 -0
  93. package/lib/IdentifierRegistry.js +2 -4
  94. package/lib/InternalConfig.js +3 -2
  95. package/lib/PackagerRunner.js +46 -82
  96. package/lib/ReporterRunner.js +8 -12
  97. package/lib/RequestTracker.js +191 -152
  98. package/lib/SymbolPropagation.js +52 -29
  99. package/lib/TargetDescriptor.schema.js +10 -1
  100. package/lib/Transformation.js +68 -19
  101. package/lib/UncommittedAsset.js +17 -24
  102. package/lib/Validation.js +20 -5
  103. package/lib/applyRuntimes.js +98 -7
  104. package/lib/assetUtils.js +16 -6
  105. package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
  106. package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
  107. package/lib/atlaspack-v3/fs.js +4 -1
  108. package/lib/atlaspack-v3/index.js +28 -1
  109. package/lib/atlaspack-v3/jsCallable.js +0 -2
  110. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  111. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  112. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  113. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  114. package/lib/atlaspack-v3/worker/compat/index.js +0 -11
  115. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
  116. package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
  117. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
  118. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  119. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  120. package/lib/atlaspack-v3/worker/index.js +3 -0
  121. package/lib/atlaspack-v3/worker/side-effect-detector.js +214 -0
  122. package/lib/atlaspack-v3/worker/worker.js +231 -79
  123. package/lib/constants.js +0 -1
  124. package/lib/dumpGraphToGraphViz.js +72 -17
  125. package/lib/index.js +46 -3
  126. package/lib/loadAtlaspackPlugin.js +2 -3
  127. package/lib/loadDotEnv.js +5 -2
  128. package/lib/projectPath.js +6 -1
  129. package/lib/public/Asset.js +22 -12
  130. package/lib/public/Bundle.js +16 -18
  131. package/lib/public/BundleGraph.js +27 -25
  132. package/lib/public/BundleGroup.js +5 -6
  133. package/lib/public/Config.js +118 -18
  134. package/lib/public/Dependency.js +9 -7
  135. package/lib/public/Environment.js +13 -8
  136. package/lib/public/MutableBundleGraph.js +56 -15
  137. package/lib/public/PluginOptions.js +2 -2
  138. package/lib/public/Symbols.js +12 -12
  139. package/lib/public/Target.js +8 -7
  140. package/lib/registerCoreWithSerializer.js +7 -4
  141. package/lib/requests/AssetGraphRequest.js +61 -40
  142. package/lib/requests/AssetGraphRequestRust.js +314 -82
  143. package/lib/requests/AssetRequest.js +24 -7
  144. package/lib/requests/AtlaspackBuildRequest.js +53 -7
  145. package/lib/requests/AtlaspackConfigRequest.js +29 -19
  146. package/lib/requests/BundleGraphRequest.js +61 -130
  147. package/lib/requests/BundleGraphRequestRust.js +381 -0
  148. package/lib/requests/BundleGraphRequestUtils.js +280 -0
  149. package/lib/requests/ConfigRequest.js +55 -7
  150. package/lib/requests/DevDepRequest.js +32 -6
  151. package/lib/requests/EntryRequest.js +4 -3
  152. package/lib/requests/PackageRequest.js +56 -12
  153. package/lib/requests/PathRequest.js +26 -6
  154. package/lib/requests/TargetRequest.js +129 -60
  155. package/lib/requests/ValidationRequest.js +6 -2
  156. package/lib/requests/WriteBundleRequest.js +329 -20
  157. package/lib/requests/WriteBundlesRequest.js +64 -10
  158. package/lib/requests/asset-graph-diff.js +13 -8
  159. package/lib/requests/asset-graph-dot.js +2 -8
  160. package/lib/resolveOptions.js +37 -14
  161. package/lib/rustWorkerThreadDylibHack.js +0 -1
  162. package/lib/serializerCore.browser.js +1 -2
  163. package/lib/summarizeRequest.js +1 -1
  164. package/lib/types/AssetGraph.d.ts +55 -0
  165. package/lib/types/Atlaspack.d.ts +52 -0
  166. package/lib/types/AtlaspackConfig.d.ts +65 -0
  167. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  168. package/lib/types/BundleGraph.d.ts +232 -0
  169. package/lib/types/CommittedAsset.d.ts +23 -0
  170. package/lib/types/Dependency.d.ts +44 -0
  171. package/lib/types/Environment.d.ts +11 -0
  172. package/lib/types/EnvironmentManager.d.ts +37 -0
  173. package/lib/types/IdentifierRegistry.d.ts +6 -0
  174. package/lib/types/InternalConfig.d.ts +23 -0
  175. package/lib/types/PackagerRunner.d.ts +85 -0
  176. package/lib/types/ReporterRunner.d.ts +25 -0
  177. package/lib/types/RequestTracker.d.ts +385 -0
  178. package/lib/types/SymbolPropagation.d.ts +11 -0
  179. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  180. package/lib/types/Transformation.d.ts +72 -0
  181. package/lib/types/UncommittedAsset.d.ts +61 -0
  182. package/lib/types/Validation.d.ts +37 -0
  183. package/lib/types/applyRuntimes.d.ts +25 -0
  184. package/lib/types/assetUtils.d.ts +42 -0
  185. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +35 -0
  186. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  187. package/lib/types/atlaspack-v3/fs.d.ts +13 -0
  188. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  189. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  190. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  191. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  192. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  193. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  194. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -2
  195. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  196. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  197. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  198. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  199. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  200. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  201. package/lib/types/atlaspack-v3/worker/worker.d.ts +81 -0
  202. package/lib/types/constants.d.ts +13 -0
  203. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  204. package/lib/types/index.d.ts +8 -0
  205. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  206. package/lib/types/loadDotEnv.d.ts +3 -0
  207. package/lib/types/projectPath.d.ts +19 -0
  208. package/lib/types/public/Asset.d.ts +74 -0
  209. package/lib/types/public/Bundle.d.ts +45 -0
  210. package/lib/types/public/BundleGraph.d.ts +72 -0
  211. package/lib/types/public/BundleGroup.d.ts +12 -0
  212. package/lib/types/public/Config.d.ts +75 -0
  213. package/lib/types/public/Dependency.d.ts +32 -0
  214. package/lib/types/public/Environment.d.ts +34 -0
  215. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  216. package/lib/types/public/PluginOptions.d.ts +25 -0
  217. package/lib/types/public/Symbols.d.ts +81 -0
  218. package/lib/types/public/Target.d.ts +16 -0
  219. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  220. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  221. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  222. package/lib/types/requests/AssetRequest.d.ts +16 -0
  223. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  224. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  225. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  226. package/lib/types/requests/BundleGraphRequestRust.d.ts +34 -0
  227. package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -0
  228. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  229. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  230. package/lib/types/requests/EntryRequest.d.ts +36 -0
  231. package/lib/types/requests/PackageRequest.d.ts +27 -0
  232. package/lib/types/requests/PathRequest.d.ts +48 -0
  233. package/lib/types/requests/TargetRequest.d.ts +48 -0
  234. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  235. package/lib/types/requests/WriteBundleRequest.d.ts +80 -0
  236. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  237. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  238. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  239. package/lib/types/resolveOptions.d.ts +3 -0
  240. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  241. package/lib/types/serializerCore.browser.d.ts +3 -0
  242. package/lib/types/summarizeRequest.d.ts +10 -0
  243. package/lib/types/types.d.ts +496 -0
  244. package/lib/types/utils.d.ts +23 -0
  245. package/lib/types/worker.d.ts +44 -0
  246. package/lib/types.js +8 -1
  247. package/lib/utils.js +18 -3
  248. package/lib/worker.js +32 -15
  249. package/package.json +26 -36
  250. package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
  251. package/src/{Atlaspack.js → Atlaspack.ts} +181 -72
  252. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  253. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  254. package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
  255. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  256. package/src/{Dependency.js → Dependency.ts} +59 -42
  257. package/src/{Environment.js → Environment.ts} +24 -15
  258. package/src/EnvironmentManager.ts +154 -0
  259. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  260. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  261. package/src/{PackagerRunner.js → PackagerRunner.ts} +114 -159
  262. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  263. package/src/{RequestTracker.js → RequestTracker.ts} +444 -355
  264. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
  265. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
  266. package/src/{Transformation.js → Transformation.ts} +110 -65
  267. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +45 -49
  268. package/src/{Validation.js → Validation.ts} +32 -17
  269. package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
  270. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  271. package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
  272. package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
  273. package/src/atlaspack-v3/{fs.js → fs.ts} +8 -4
  274. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  275. package/src/atlaspack-v3/jsCallable.ts +14 -0
  276. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  277. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  278. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  279. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  280. package/src/atlaspack-v3/worker/compat/index.ts +8 -0
  281. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  282. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  283. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  284. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  285. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  286. package/src/atlaspack-v3/worker/index.js +2 -1
  287. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  288. package/src/atlaspack-v3/worker/worker.ts +548 -0
  289. package/src/{constants.js → constants.ts} +0 -3
  290. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  291. package/src/index.ts +18 -0
  292. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  293. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  294. package/src/{projectPath.js → projectPath.ts} +20 -9
  295. package/src/public/{Asset.js → Asset.ts} +41 -28
  296. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  297. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  298. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  299. package/src/public/{Config.js → Config.ts} +171 -33
  300. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  301. package/src/public/{Environment.js → Environment.ts} +28 -17
  302. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  303. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  304. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  305. package/src/public/{Target.js → Target.ts} +10 -8
  306. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  307. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +117 -90
  308. package/src/requests/AssetGraphRequestRust.ts +557 -0
  309. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  310. package/src/requests/AtlaspackBuildRequest.ts +168 -0
  311. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  312. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +119 -199
  313. package/src/requests/BundleGraphRequestRust.ts +470 -0
  314. package/src/requests/BundleGraphRequestUtils.ts +323 -0
  315. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  316. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  317. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  318. package/src/requests/{PackageRequest.js → PackageRequest.ts} +52 -25
  319. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  320. package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
  321. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  322. package/src/requests/WriteBundleRequest.ts +734 -0
  323. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
  324. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  325. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  326. package/src/{resolveOptions.js → resolveOptions.ts} +57 -27
  327. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  328. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  329. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  330. package/src/types.ts +651 -0
  331. package/src/{utils.js → utils.ts} +52 -21
  332. package/src/{worker.js → worker.ts} +50 -42
  333. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +5 -8
  334. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  335. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  336. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  337. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  338. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  339. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  340. package/test/Environment.test.ts +153 -0
  341. package/test/EnvironmentManager.test.ts +188 -0
  342. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  343. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  344. package/test/PackagerRunner.test.ts +0 -0
  345. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  346. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  347. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  348. package/test/PublicEnvironment.test.ts +49 -0
  349. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  350. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +136 -58
  351. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  352. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -92
  353. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  354. package/test/fixtures/custom-targets/package.json +6 -0
  355. package/test/public/Config.test.ts +104 -0
  356. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  357. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  358. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  359. package/test/requests/WriteBundleRequest.test.ts +602 -0
  360. package/test/{test-utils.js → test-utils.ts} +3 -4
  361. package/test/{utils.test.js → utils.test.ts} +1 -3
  362. package/tsconfig.json +60 -0
  363. package/tsconfig.tsbuildinfo +1 -0
  364. package/index.d.ts +0 -30
  365. package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
  366. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  367. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  368. package/src/atlaspack-v3/jsCallable.js +0 -18
  369. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  370. package/src/atlaspack-v3/worker/compat/plugin-logger.js +0 -47
  371. package/src/atlaspack-v3/worker/worker.js +0 -369
  372. package/src/index.js +0 -13
  373. package/src/requests/AssetGraphRequestRust.js +0 -263
  374. package/src/requests/AtlaspackBuildRequest.js +0 -111
  375. package/src/requests/WriteBundleRequest.js +0 -369
  376. package/src/types.js +0 -600
  377. package/test/Environment.test.js +0 -119
  378. package/test/PackagerRunner.test.js +0 -27
  379. package/test/PublicEnvironment.test.js +0 -27
  380. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = resolveOptions;
7
+ const path_1 = __importDefault(require("path"));
8
+ const rust_1 = require("@atlaspack/rust");
9
+ const fs_1 = require("@atlaspack/fs");
10
+ const cache_1 = require("@atlaspack/cache");
11
+ const feature_flags_1 = require("@atlaspack/feature-flags");
12
+ const package_manager_1 = require("@atlaspack/package-manager");
13
+ const utils_1 = require("@atlaspack/utils");
14
+ const loadDotEnv_1 = __importDefault(require("./loadDotEnv"));
15
+ const projectPath_1 = require("./projectPath");
16
+ const AtlaspackConfigRequest_1 = require("./requests/AtlaspackConfigRequest");
17
+ const feature_flags_2 = require("@atlaspack/feature-flags");
18
+ const constants_1 = require("./constants");
19
+ // Default cache directory name
20
+ const DEFAULT_CACHE_DIRNAME = '.parcel-cache';
21
+ const LOCK_FILE_NAMES = ['yarn.lock', 'package-lock.json', 'pnpm-lock.yaml'];
22
+ // Generate a unique instanceId, will change on every run of parcel
23
+ function generateInstanceId(entries) {
24
+ return (0, rust_1.hashString)(`${entries.join(',')}-${Date.now()}-${Math.round(Math.random() * 100)}`);
25
+ }
26
+ // Compiles an array of globs to regex - used for lazy include/excludes
27
+ function compileGlobs(globs) {
28
+ return globs.map((glob) => (0, utils_1.globToRegex)(glob));
29
+ }
30
+ function getDefaultFS() {
31
+ if ((0, feature_flags_1.getFeatureFlagValue)('vcsMode') !== 'OLD') {
32
+ return new fs_1.NodeVCSAwareFS({
33
+ gitRepoPath: null,
34
+ excludePatterns: [],
35
+ logEventDiff: () => { },
36
+ });
37
+ }
38
+ return new fs_1.NodeFS();
39
+ }
40
+ async function findGitRepositoryRoot(inputFS, projectRoot) {
41
+ let candidate = projectRoot;
42
+ while (candidate !== path_1.default.parse(candidate).root) {
43
+ const gitRepoPath = path_1.default.join(candidate, '.git');
44
+ if (await inputFS.exists(gitRepoPath)) {
45
+ return candidate;
46
+ }
47
+ candidate = path_1.default.dirname(candidate);
48
+ }
49
+ return null;
50
+ }
51
+ async function resolveOptions(initialOptions) {
52
+ const inputFS = initialOptions.inputFS || getDefaultFS();
53
+ const outputFS = initialOptions.outputFS || getDefaultFS();
54
+ let inputCwd = inputFS.cwd();
55
+ let outputCwd = outputFS.cwd();
56
+ let entries;
57
+ if (initialOptions.entries == null || initialOptions.entries === '') {
58
+ entries = [];
59
+ }
60
+ else if (Array.isArray(initialOptions.entries)) {
61
+ entries = initialOptions.entries.map((entry) => path_1.default.resolve(inputCwd, entry));
62
+ }
63
+ else {
64
+ entries = [path_1.default.resolve(inputCwd, initialOptions.entries)];
65
+ }
66
+ // When allowExplicitTargetEntries is enabled and no entries are provided,
67
+ // automatically derive entries from target sources
68
+ if ((0, feature_flags_1.getFeatureFlag)('allowExplicitTargetEntries') &&
69
+ initialOptions.targets &&
70
+ !Array.isArray(initialOptions.targets) &&
71
+ entries.length === 0) {
72
+ const targetSources = new Set();
73
+ for (const [, target] of Object.entries(initialOptions.targets)) {
74
+ if (target.source) {
75
+ const sources = Array.isArray(target.source)
76
+ ? target.source
77
+ : [target.source];
78
+ for (const source of sources) {
79
+ targetSources.add(source);
80
+ }
81
+ }
82
+ }
83
+ entries = Array.from(targetSources);
84
+ }
85
+ let shouldMakeEntryReferFolder = false;
86
+ if (entries.length === 1 && !(0, utils_1.isGlob)(entries[0])) {
87
+ let [entry] = entries;
88
+ try {
89
+ shouldMakeEntryReferFolder = (await inputFS.stat(entry)).isDirectory();
90
+ }
91
+ catch {
92
+ // ignore failing stat call
93
+ }
94
+ }
95
+ let projectRoot;
96
+ if (initialOptions.projectRoot) {
97
+ // Use explicitly provided projectRoot
98
+ if (!path_1.default.isAbsolute(initialOptions.projectRoot)) {
99
+ throw new Error('Specified project root must be an absolute path');
100
+ }
101
+ projectRoot = initialOptions.projectRoot;
102
+ }
103
+ else {
104
+ // getRootDir treats the input as files, so getRootDir(["/home/user/myproject"]) returns "/home/user".
105
+ // Instead we need to make the the entry refer to some file inside the specified folders if entries refers to the directory.
106
+ let entryRoot = (0, utils_1.getRootDir)(shouldMakeEntryReferFolder ? [path_1.default.join(entries[0], 'index')] : entries);
107
+ let projectRootFile = (await (0, utils_1.resolveConfig)(inputFS, path_1.default.join(entryRoot, 'index'), [...LOCK_FILE_NAMES, '.git', '.hg'], path_1.default.parse(entryRoot).root)) || path_1.default.join(inputCwd, 'index'); // ? Should this just be rootDir
108
+ projectRoot = path_1.default.dirname(projectRootFile);
109
+ }
110
+ const gitRoot = await findGitRepositoryRoot(inputFS, projectRoot);
111
+ if (inputFS instanceof fs_1.NodeVCSAwareFS) {
112
+ inputFS.setGitRepoPath(gitRoot);
113
+ }
114
+ if (outputFS instanceof fs_1.NodeVCSAwareFS) {
115
+ outputFS.setGitRepoPath(gitRoot);
116
+ }
117
+ let packageManager = initialOptions.packageManager ||
118
+ new package_manager_1.NodePackageManager(inputFS, projectRoot);
119
+ let cacheDir =
120
+ // If a cacheDir is provided, resolve it relative to cwd. Otherwise,
121
+ // use a default directory resolved relative to the project root.
122
+ initialOptions.cacheDir != null
123
+ ? path_1.default.resolve(outputCwd, initialOptions.cacheDir)
124
+ : path_1.default.resolve(projectRoot, DEFAULT_CACHE_DIRNAME);
125
+ // Make the root watch directory configurable. This is useful in some cases
126
+ // where symlinked dependencies outside the project root need to trigger HMR
127
+ // updates. Default to the project root if not provided.
128
+ let watchDir = initialOptions.watchDir != null
129
+ ? path_1.default.resolve(initialOptions.watchDir)
130
+ : projectRoot;
131
+ function createCache() {
132
+ if (initialOptions.cache) {
133
+ return initialOptions.cache;
134
+ }
135
+ const needsRustLmdbCache = (0, feature_flags_1.getFeatureFlag)('atlaspackV3') || (0, feature_flags_1.getFeatureFlag)('nativePackager');
136
+ if (!needsRustLmdbCache && !(outputFS instanceof fs_1.NodeFS)) {
137
+ return new cache_1.FSCache(outputFS, cacheDir);
138
+ }
139
+ return new cache_1.LMDBLiteCache(cacheDir);
140
+ }
141
+ let cache = createCache();
142
+ let mode = initialOptions.mode ?? 'development';
143
+ let shouldOptimize = initialOptions?.defaultTargetOptions?.shouldOptimize ??
144
+ mode === 'production';
145
+ let publicUrl = initialOptions?.defaultTargetOptions?.publicUrl ?? '/';
146
+ let distDir = initialOptions?.defaultTargetOptions?.distDir != null
147
+ ? path_1.default.resolve(inputCwd, initialOptions?.defaultTargetOptions?.distDir)
148
+ : undefined;
149
+ let shouldBuildLazily = initialOptions.shouldBuildLazily ?? false;
150
+ let lazyIncludes = compileGlobs(initialOptions.lazyIncludes ?? []);
151
+ if (lazyIncludes.length > 0 && !shouldBuildLazily) {
152
+ throw new Error('Lazy includes can only be provided when lazy building is enabled');
153
+ }
154
+ let lazyExcludes = compileGlobs(initialOptions.lazyExcludes ?? []);
155
+ if (lazyExcludes.length > 0 && !shouldBuildLazily) {
156
+ throw new Error('Lazy excludes can only be provided when lazy building is enabled');
157
+ }
158
+ let shouldContentHash = initialOptions.shouldContentHash ?? initialOptions.mode === 'production';
159
+ if (shouldBuildLazily && shouldContentHash) {
160
+ throw new Error('Lazy bundling does not work with content hashing');
161
+ }
162
+ let env = {
163
+ ...(await (0, loadDotEnv_1.default)(initialOptions.env ?? {}, inputFS, path_1.default.join(projectRoot, 'index'), projectRoot)),
164
+ ...process.env,
165
+ ...initialOptions.env,
166
+ };
167
+ let port = determinePort(initialOptions.serveOptions, env.PORT);
168
+ return {
169
+ config: getRelativeConfigSpecifier(inputFS, projectRoot, initialOptions.config),
170
+ defaultConfig: getRelativeConfigSpecifier(inputFS, projectRoot, initialOptions.defaultConfig),
171
+ shouldPatchConsole: initialOptions.shouldPatchConsole ?? false,
172
+ env,
173
+ mode,
174
+ shouldAutoInstall: initialOptions.shouldAutoInstall ?? false,
175
+ hmrOptions: initialOptions.hmrOptions ?? null,
176
+ shouldBuildLazily,
177
+ lazyIncludes,
178
+ lazyExcludes,
179
+ unstableFileInvalidations: initialOptions.unstableFileInvalidations,
180
+ shouldBundleIncrementally: initialOptions.shouldBundleIncrementally ?? true,
181
+ shouldContentHash,
182
+ serveOptions: initialOptions.serveOptions
183
+ ? {
184
+ ...initialOptions.serveOptions,
185
+ distDir: distDir ?? path_1.default.join(outputCwd, 'dist'),
186
+ port,
187
+ }
188
+ : false,
189
+ shouldDisableCache: initialOptions.shouldDisableCache ?? false,
190
+ shouldProfile: initialOptions.shouldProfile ?? false,
191
+ nativeProfiler: initialOptions.nativeProfiler,
192
+ shouldTrace: initialOptions.shouldTrace ?? false,
193
+ cacheDir,
194
+ watchDir,
195
+ watchBackend: initialOptions.watchBackend ?? 'watchman',
196
+ watchIgnore: initialOptions.watchIgnore,
197
+ entries: entries.map((e) => (0, projectPath_1.toProjectPath)(projectRoot, e)),
198
+ targets: initialOptions.targets,
199
+ logLevel: initialOptions.logLevel ?? 'info',
200
+ projectRoot,
201
+ inputFS,
202
+ outputFS,
203
+ cache,
204
+ packageManager,
205
+ additionalReporters: initialOptions.additionalReporters?.map(({ packageName, resolveFrom }) => ({
206
+ packageName,
207
+ resolveFrom: (0, projectPath_1.toProjectPath)(projectRoot, resolveFrom),
208
+ })) ?? [],
209
+ instanceId: generateInstanceId(entries),
210
+ detailedReport: initialOptions.detailedReport,
211
+ defaultTargetOptions: {
212
+ shouldOptimize,
213
+ shouldScopeHoist: initialOptions?.defaultTargetOptions?.shouldScopeHoist,
214
+ sourceMaps: initialOptions?.defaultTargetOptions?.sourceMaps ?? true,
215
+ publicUrl,
216
+ ...(distDir != null
217
+ ? { distDir: (0, projectPath_1.toProjectPath)(projectRoot, distDir) }
218
+ : {
219
+ /*::...null*/
220
+ }),
221
+ engines: initialOptions?.defaultTargetOptions?.engines,
222
+ outputFormat: initialOptions?.defaultTargetOptions?.outputFormat,
223
+ isLibrary: initialOptions?.defaultTargetOptions?.isLibrary,
224
+ },
225
+ // unused, feature-flags are set above this to allow this function to use
226
+ // feature-flags
227
+ featureFlags: { ...feature_flags_2.DEFAULT_FEATURE_FLAGS, ...initialOptions?.featureFlags },
228
+ parcelVersion: constants_1.ATLASPACK_VERSION,
229
+ };
230
+ }
231
+ function getRelativeConfigSpecifier(fs, projectRoot, specifier) {
232
+ if (specifier == null) {
233
+ return undefined;
234
+ }
235
+ else if (path_1.default.isAbsolute(specifier)) {
236
+ let resolveFrom = (0, AtlaspackConfigRequest_1.getResolveFrom)(fs, projectRoot);
237
+ let relative = (0, utils_1.relativePath)(path_1.default.dirname(resolveFrom), specifier);
238
+ // If the config is outside the project root, use an absolute path so that if the project root
239
+ // moves the path still works. Otherwise, use a relative path so that the cache is portable.
240
+ return relative.startsWith('..') ? specifier : relative;
241
+ }
242
+ else {
243
+ return specifier;
244
+ }
245
+ }
246
+ function determinePort(initialServerOptions, portInEnv, defaultPort = 1234) {
247
+ function parsePort(port) {
248
+ let parsedPort = Number(port);
249
+ // return undefined if port number defined in .env is not valid integer
250
+ if (!Number.isInteger(parsedPort)) {
251
+ return undefined;
252
+ }
253
+ return parsedPort;
254
+ }
255
+ if (!initialServerOptions) {
256
+ return typeof portInEnv !== 'undefined'
257
+ ? (parsePort(portInEnv) ?? defaultPort)
258
+ : defaultPort;
259
+ }
260
+ // if initialServerOptions.port is equal to defaultPort, then this means that port number is provided via PORT=~~~~ on cli. In this case, we should ignore port number defined in .env.
261
+ if (initialServerOptions.port !== defaultPort) {
262
+ return initialServerOptions.port;
263
+ }
264
+ return typeof portInEnv !== 'undefined'
265
+ ? (parsePort(portInEnv) ?? defaultPort)
266
+ : defaultPort;
267
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadRustWorkerThreadDylibHack = loadRustWorkerThreadDylibHack;
4
+ /**
5
+ * This is a workaround for https://github.com/rust-lang/rust/issues/91979
6
+ * when running atlaspack with parcel bindings, it is possible that the parcel
7
+ * dylib will be loaded from a node worker thread, which causes a crash on exit.
8
+ *
9
+ * This is a workaround to ensure that the parcel dylib is loaded in the main
10
+ * thread, which fixes the crash.
11
+ */
12
+ function loadRustWorkerThreadDylibHack() {
13
+ try {
14
+ require('@parcel/rust'); // eslint-disable-line
15
+ }
16
+ catch (err) {
17
+ /* ignore */
18
+ }
19
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.deserializeRaw = exports.serializeRaw = void 0;
37
+ const buffer_1 = require("buffer");
38
+ const msgpackr = __importStar(require("msgpackr"));
39
+ let encoder = new msgpackr.Encoder({ structuredClone: true });
40
+ let serializeRaw = (v) => buffer_1.Buffer.from(encoder.encode(v));
41
+ exports.serializeRaw = serializeRaw;
42
+ let deserializeRaw = (v) => encoder.decode(v);
43
+ exports.deserializeRaw = deserializeRaw;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = summarizeRequest;
7
+ const path_1 = __importDefault(require("path"));
8
+ const NODE_MODULES = `${path_1.default.sep}node_modules${path_1.default.sep}`;
9
+ const BUFFER_LIMIT = 5000000; // 5mb
10
+ async function summarizeRequest(fs, req) {
11
+ let { content, size } = await summarizeDiskRequest(fs, req);
12
+ let isSource = isFilePathSource(fs, req.filePath);
13
+ return { content, size, isSource };
14
+ }
15
+ function isFilePathSource(fs, filePath) {
16
+ return !filePath.includes(NODE_MODULES);
17
+ }
18
+ async function summarizeDiskRequest(fs, req) {
19
+ let code = req.code;
20
+ let content;
21
+ let size;
22
+ if (code == null) {
23
+ // Get the filesize. If greater than BUFFER_LIMIT, use a stream to
24
+ // compute the hash. In the common case, it's faster to just read the entire
25
+ // file first and do the hash all at once without the overhead of streams.
26
+ size = (await fs.stat(req.filePath)).size;
27
+ if (size > BUFFER_LIMIT) {
28
+ content = fs.createReadStream(req.filePath);
29
+ }
30
+ else {
31
+ content = await fs.readFile(req.filePath);
32
+ }
33
+ }
34
+ else {
35
+ content = code;
36
+ size = Buffer.byteLength(code);
37
+ }
38
+ return { content, size };
39
+ }
package/dist/types.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BundleBehaviorNames = exports.BundleBehavior = exports.ExportsCondition = exports.Priority = exports.SpecifierType = void 0;
4
+ exports.SpecifierType = {
5
+ esm: 0,
6
+ commonjs: 1,
7
+ url: 2,
8
+ custom: 3,
9
+ };
10
+ exports.Priority = {
11
+ sync: 0,
12
+ parallel: 1,
13
+ lazy: 2,
14
+ conditional: 3,
15
+ };
16
+ // Must match package_json.rs in node-resolver-rs.
17
+ exports.ExportsCondition = {
18
+ import: 1 << 0,
19
+ require: 1 << 1,
20
+ module: 1 << 2,
21
+ style: 1 << 12,
22
+ sass: 1 << 13,
23
+ less: 1 << 14,
24
+ };
25
+ exports.BundleBehavior = {
26
+ inline: 0,
27
+ isolated: 1,
28
+ inlineIsolated: 2,
29
+ };
30
+ // @ts-expect-error TS2322
31
+ exports.BundleBehaviorNames = Object.keys(exports.BundleBehavior);
package/dist/utils.js ADDED
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BuildAbortError = void 0;
7
+ exports.getBundleGroupId = getBundleGroupId;
8
+ exports.assertSignalNotAborted = assertSignalNotAborted;
9
+ exports.getPublicId = getPublicId;
10
+ exports.optionsProxy = optionsProxy;
11
+ exports.hashFromOption = hashFromOption;
12
+ exports.invalidateOnFileCreateToInternal = invalidateOnFileCreateToInternal;
13
+ exports.createInvalidations = createInvalidations;
14
+ exports.fromInternalSourceLocation = fromInternalSourceLocation;
15
+ exports.toInternalSourceLocation = toInternalSourceLocation;
16
+ exports.toInternalSymbols = toInternalSymbols;
17
+ const assert_1 = __importDefault(require("assert"));
18
+ const base_x_1 = __importDefault(require("base-x"));
19
+ const utils_1 = require("@atlaspack/utils");
20
+ const projectPath_1 = require("./projectPath");
21
+ // /flow-to-ts helpers
22
+ const base62 = (0, base_x_1.default)('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
23
+ function getBundleGroupId(bundleGroup) {
24
+ return 'bundle_group:' + bundleGroup.target.name + bundleGroup.entryAssetId;
25
+ }
26
+ function assertSignalNotAborted(signal) {
27
+ if (signal && signal.aborted) {
28
+ throw new BuildAbortError();
29
+ }
30
+ }
31
+ class BuildAbortError extends Error {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.name = 'BuildAbortError';
35
+ }
36
+ }
37
+ exports.BuildAbortError = BuildAbortError;
38
+ function getPublicId(id, alreadyExists) {
39
+ let encoded = base62.encode(Buffer.from(id, 'hex'));
40
+ for (let end = 5; end <= encoded.length; end++) {
41
+ let candidate = encoded.slice(0, end);
42
+ if (!alreadyExists(candidate)) {
43
+ return candidate;
44
+ }
45
+ }
46
+ throw new Error('Original id was not unique');
47
+ }
48
+ // These options don't affect compilation and should cause invalidations
49
+ const ignoreOptions = new Set([
50
+ 'env', // handled by separate invalidateOnEnvChange
51
+ 'inputFS',
52
+ 'outputFS',
53
+ 'workerFarm',
54
+ 'packageManager',
55
+ 'detailedReport',
56
+ 'shouldDisableCache',
57
+ 'cacheDir',
58
+ 'shouldAutoInstall',
59
+ 'logLevel',
60
+ 'shouldProfile',
61
+ 'shouldTrace',
62
+ 'shouldPatchConsole',
63
+ 'projectRoot',
64
+ 'additionalReporters',
65
+ ]);
66
+ function optionsProxy(options, invalidateOnOptionChange, addDevDependency) {
67
+ let packageManager = addDevDependency
68
+ ? proxyPackageManager(options.projectRoot, options.packageManager, addDevDependency)
69
+ : options.packageManager;
70
+ return new Proxy(options, {
71
+ get(target, prop) {
72
+ if (prop === 'packageManager') {
73
+ return packageManager;
74
+ }
75
+ if (!ignoreOptions.has(prop)) {
76
+ invalidateOnOptionChange(prop);
77
+ }
78
+ // @ts-expect-error TS7053
79
+ return target[prop];
80
+ },
81
+ });
82
+ }
83
+ function proxyPackageManager(projectRoot, packageManager, addDevDependency) {
84
+ let require = (id, from, opts) => {
85
+ addDevDependency({
86
+ specifier: id,
87
+ resolveFrom: (0, projectPath_1.toProjectPath)(projectRoot, from),
88
+ range: opts?.range,
89
+ });
90
+ return packageManager.require(id, from, opts);
91
+ };
92
+ return new Proxy(packageManager, {
93
+ get(target, prop) {
94
+ if (prop === 'require') {
95
+ return require;
96
+ }
97
+ // @ts-expect-error TS7053
98
+ return target[prop];
99
+ },
100
+ });
101
+ }
102
+ function hashFromOption(value) {
103
+ if (typeof value === 'object' && value != null) {
104
+ // @ts-expect-error TS2345
105
+ return (0, utils_1.hashObject)(value);
106
+ }
107
+ return String(value);
108
+ }
109
+ function invalidateOnFileCreateToInternal(projectRoot, invalidation) {
110
+ // @ts-expect-error TS2339
111
+ if (invalidation.glob != null) {
112
+ // @ts-expect-error TS2339
113
+ return { glob: (0, projectPath_1.toProjectPath)(projectRoot, invalidation.glob) };
114
+ // @ts-expect-error TS2339
115
+ }
116
+ else if (invalidation.filePath != null) {
117
+ return {
118
+ // @ts-expect-error TS2339
119
+ filePath: (0, projectPath_1.toProjectPath)(projectRoot, invalidation.filePath),
120
+ };
121
+ }
122
+ else {
123
+ (0, assert_1.default)(
124
+ // @ts-expect-error TS2339
125
+ invalidation.aboveFilePath != null && invalidation.fileName != null);
126
+ return {
127
+ // @ts-expect-error TS2339
128
+ fileName: invalidation.fileName,
129
+ // @ts-expect-error TS2339
130
+ aboveFilePath: (0, projectPath_1.toProjectPath)(projectRoot, invalidation.aboveFilePath),
131
+ };
132
+ }
133
+ }
134
+ function createInvalidations() {
135
+ return {
136
+ invalidateOnBuild: false,
137
+ invalidateOnStartup: false,
138
+ invalidateOnOptionChange: new Set(),
139
+ invalidateOnEnvChange: new Set(),
140
+ invalidateOnFileChange: new Set(),
141
+ invalidateOnFileCreate: [],
142
+ };
143
+ }
144
+ function fromInternalSourceLocation(projectRoot, loc) {
145
+ if (!loc)
146
+ return loc;
147
+ return {
148
+ filePath: (0, projectPath_1.fromProjectPath)(projectRoot, loc.filePath),
149
+ start: loc.start,
150
+ end: loc.end,
151
+ };
152
+ }
153
+ function toInternalSourceLocation(projectRoot, loc) {
154
+ if (!loc)
155
+ return loc;
156
+ return {
157
+ filePath: (0, projectPath_1.toProjectPath)(projectRoot, loc.filePath),
158
+ start: loc.start,
159
+ end: loc.end,
160
+ };
161
+ }
162
+ function toInternalSymbols(projectRoot, symbols) {
163
+ if (!symbols)
164
+ return symbols;
165
+ return new Map([...symbols].map(([k, { loc, ...v }]) => [
166
+ k,
167
+ {
168
+ ...v,
169
+ loc: toInternalSourceLocation(projectRoot, loc),
170
+ },
171
+ ]));
172
+ }