@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
@@ -1,4 +1,3 @@
1
- // @flow strict-local
2
1
  import type {
3
2
  Asset,
4
3
  AsyncSubscription,
@@ -44,64 +43,84 @@ import createPathRequest from './requests/PathRequest';
44
43
  import {createEnvironment} from './Environment';
45
44
  import {createDependency} from './Dependency';
46
45
  import {Disposable} from '@atlaspack/events';
47
- import {init as initSourcemaps} from '@parcel/source-map';
46
+ import {init as initSourcemaps} from '@atlaspack/source-map';
48
47
  import {LMDBLiteCache} from '@atlaspack/cache';
49
48
  import {
49
+ // @ts-expect-error TS2305
50
50
  init as initRust,
51
51
  initializeMonitoring,
52
52
  closeMonitoring,
53
- type Lmdb,
53
+ Lmdb,
54
54
  } from '@atlaspack/rust';
55
55
  import {
56
56
  fromProjectPath,
57
57
  toProjectPath,
58
58
  fromProjectPathRelative,
59
59
  } from './projectPath';
60
- import {tracer} from '@atlaspack/profiler';
61
- import {setFeatureFlags, DEFAULT_FEATURE_FLAGS} from '@atlaspack/feature-flags';
60
+ import {tracer, NativeProfiler} from '@atlaspack/profiler';
61
+ import {
62
+ setFeatureFlags,
63
+ DEFAULT_FEATURE_FLAGS,
64
+ getFeatureFlag,
65
+ } from '@atlaspack/feature-flags';
62
66
  import {AtlaspackV3, FileSystemV3} from './atlaspack-v3';
63
67
  import createAssetGraphRequestJS from './requests/AssetGraphRequest';
64
68
  import {createAssetGraphRequestRust} from './requests/AssetGraphRequestRust';
65
69
  import type {AssetGraphRequestResult} from './requests/AssetGraphRequest';
70
+ import {getBundleGraph} from './requests/BundleGraphRequestRust';
66
71
  import {loadRustWorkerThreadDylibHack} from './rustWorkerThreadDylibHack';
67
72
 
68
73
  registerCoreWithSerializer();
69
74
 
70
75
  export const INTERNAL_TRANSFORM: symbol = Symbol('internal_transform');
71
76
  export const INTERNAL_RESOLVE: symbol = Symbol('internal_resolve');
72
- export const WORKER_PATH: string = path.join(__dirname, 'worker.js');
77
+ export let WORKER_PATH: string = path.join(__dirname, 'worker.js');
78
+ if (__filename.endsWith('.ts')) {
79
+ WORKER_PATH = path.join(__dirname, 'worker.ts');
80
+ }
73
81
 
74
82
  export default class Atlaspack {
75
- #requestTracker /*: RequestTracker*/;
76
- #config /*: AtlaspackConfig*/;
77
- #farm /*: WorkerFarm*/;
78
- #initialized /*: boolean*/ = false;
79
- #disposable /*: Disposable */;
80
- #initialOptions /*: InitialAtlaspackOptions */;
81
- #reporterRunner /*: ReporterRunner*/;
82
- #resolvedOptions /*: ?AtlaspackOptions*/ = null;
83
- #optionsRef /*: SharedReference */;
84
- #watchAbortController /*: AbortController*/;
85
- #watchQueue /*: PromiseQueue<?BuildEvent>*/ = new PromiseQueue<?BuildEvent>({
83
+ // @ts-expect-error TS2564
84
+ #requestTracker: RequestTracker;
85
+ // @ts-expect-error TS2564
86
+ #config: AtlaspackConfig;
87
+ // @ts-expect-error TS2564
88
+ #farm: WorkerFarm;
89
+ #initialized: boolean = false;
90
+ // @ts-expect-error TS2564
91
+ #disposable: Disposable;
92
+ #initialOptions: InitialAtlaspackOptions;
93
+ // @ts-expect-error TS2564
94
+ #reporterRunner: ReporterRunner;
95
+ #resolvedOptions: AtlaspackOptions | null | undefined = null;
96
+ // @ts-expect-error TS2564
97
+ #optionsRef: SharedReference;
98
+ // @ts-expect-error TS2564
99
+ #watchAbortController: AbortController;
100
+ #watchQueue: PromiseQueue<BuildEvent | null | undefined> = new PromiseQueue<
101
+ BuildEvent | null | undefined
102
+ >({
86
103
  maxConcurrent: 1,
87
104
  });
88
- #watchEvents /*: ValueEmitter<
89
- | {|
90
- +error: Error,
91
- +buildEvent?: void,
92
- |}
93
- | {|
94
- +buildEvent: BuildEvent,
95
- +error?: void,
96
- |},
97
- > */;
98
- #watcherSubscription /*: ?AsyncSubscription*/;
99
- #watcherCount /*: number*/ = 0;
100
- #requestedAssetIds /*: Set<string>*/ = new Set();
101
-
102
- rustAtlaspack: AtlaspackV3 | null | void;
103
-
104
- isProfiling /*: boolean */;
105
+ // @ts-expect-error TS2564
106
+ #watchEvents: ValueEmitter<
107
+ | {
108
+ readonly error: Error;
109
+ readonly buildEvent?: undefined;
110
+ }
111
+ | {
112
+ readonly buildEvent: BuildEvent;
113
+ readonly error?: undefined;
114
+ }
115
+ >;
116
+ #watcherSubscription: AsyncSubscription | null | undefined;
117
+ #watcherCount: number = 0;
118
+ #requestedAssetIds: Set<string> = new Set();
119
+
120
+ rustAtlaspack: AtlaspackV3 | null | undefined;
121
+
122
+ // @ts-expect-error TS2564
123
+ isProfiling: boolean;
105
124
 
106
125
  constructor(options: InitialAtlaspackOptions) {
107
126
  this.#initialOptions = options;
@@ -115,7 +134,7 @@ export default class Atlaspack {
115
134
  const featureFlags = {
116
135
  ...DEFAULT_FEATURE_FLAGS,
117
136
  ...this.#initialOptions.featureFlags,
118
- };
137
+ } as const;
119
138
  setFeatureFlags(featureFlags);
120
139
 
121
140
  loadRustWorkerThreadDylibHack();
@@ -138,7 +157,7 @@ export default class Atlaspack {
138
157
  process.off('exit', onExit);
139
158
  onExit();
140
159
  });
141
- } catch (e) {
160
+ } catch (e: any) {
142
161
  // Fallthrough
143
162
  // eslint-disable-next-line no-console
144
163
  console.warn(e);
@@ -151,7 +170,11 @@ export default class Atlaspack {
151
170
  this.#resolvedOptions = resolvedOptions;
152
171
 
153
172
  let rustAtlaspack: AtlaspackV3;
154
- if (resolvedOptions.featureFlags.atlaspackV3) {
173
+ if (
174
+ resolvedOptions.featureFlags.atlaspackV3 ||
175
+ resolvedOptions.featureFlags.fullNative ||
176
+ resolvedOptions.featureFlags.nativePackager
177
+ ) {
155
178
  // eslint-disable-next-line no-unused-vars
156
179
  let {entries, inputFS, outputFS, ...options} = this.#initialOptions;
157
180
 
@@ -161,7 +184,6 @@ export default class Atlaspack {
161
184
 
162
185
  const lmdb: Lmdb = resolvedOptions.cache.getNativeRef();
163
186
 
164
- // $FlowFixMe
165
187
  const version = require('../package.json').version;
166
188
  await lmdb.put('current_session_version', Buffer.from(version));
167
189
 
@@ -174,20 +196,26 @@ export default class Atlaspack {
174
196
 
175
197
  rustAtlaspack = await AtlaspackV3.create({
176
198
  ...options,
199
+ // @ts-expect-error TS2353
177
200
  corePath: path.join(__dirname, '..'),
178
201
  threads,
179
202
  entries: Array.isArray(entries)
180
203
  ? entries
181
204
  : entries == null
182
- ? undefined
183
- : [entries],
205
+ ? undefined
206
+ : [entries],
184
207
  env: resolvedOptions.env,
185
208
  fs: inputFS && new FileSystemV3(inputFS),
186
- // $FlowFixMe ProjectPath is a string
187
209
  defaultTargetOptions: resolvedOptions.defaultTargetOptions,
210
+ serveOptions: resolvedOptions.serveOptions,
188
211
  lmdb,
212
+ featureFlags: resolvedOptions.featureFlags,
213
+ });
214
+ this.#disposable.add(() => {
215
+ rustAtlaspack.end();
189
216
  });
190
217
  }
218
+ // @ts-expect-error TS2454
191
219
  this.rustAtlaspack = rustAtlaspack;
192
220
 
193
221
  let {config} = await loadAtlaspackConfig(resolvedOptions);
@@ -238,6 +266,7 @@ export default class Atlaspack {
238
266
  this.#requestTracker = await RequestTracker.init({
239
267
  farm: this.#farm,
240
268
  options: resolvedOptions,
269
+ // @ts-expect-error TS2454
241
270
  rustAtlaspack,
242
271
  });
243
272
 
@@ -279,7 +308,7 @@ export default class Atlaspack {
279
308
 
280
309
  try {
281
310
  await this.#requestTracker.writeToCache(abortController.signal);
282
- } catch (err) {
311
+ } catch (err: any) {
283
312
  if (!abortController.signal.aborted) {
284
313
  // We expect abort errors if we interrupt the cache write
285
314
  throw err;
@@ -290,7 +319,7 @@ export default class Atlaspack {
290
319
  }
291
320
  }
292
321
 
293
- async _startNextBuild(): Promise<?BuildEvent> {
322
+ async _startNextBuild(): Promise<BuildEvent | null | undefined> {
294
323
  this.#watchAbortController = new AbortController();
295
324
  await this.clearBuildCaches();
296
325
 
@@ -304,7 +333,7 @@ export default class Atlaspack {
304
333
  });
305
334
 
306
335
  return buildEvent;
307
- } catch (err) {
336
+ } catch (err: any) {
308
337
  // Ignore BuildAbortErrors and only emit critical errors.
309
338
  if (!(err instanceof BuildAbortError)) {
310
339
  throw err;
@@ -316,12 +345,13 @@ export default class Atlaspack {
316
345
  }
317
346
 
318
347
  async watch(
319
- cb?: (err: ?Error, buildEvent?: BuildEvent) => mixed,
348
+ cb?: (err?: Error | null | undefined, buildEvent?: BuildEvent) => unknown,
320
349
  ): Promise<AsyncSubscription> {
321
350
  if (!this.#initialized) {
322
351
  await this._init();
323
352
  }
324
353
 
354
+ // @ts-expect-error TS7034
325
355
  let watchEventsDisposable;
326
356
  if (cb) {
327
357
  watchEventsDisposable = this.#watchEvents.addListener(
@@ -341,8 +371,10 @@ export default class Atlaspack {
341
371
 
342
372
  this.#watcherCount++;
343
373
 
374
+ // @ts-expect-error TS7034
344
375
  let unsubscribePromise;
345
376
  const unsubscribe = async () => {
377
+ // @ts-expect-error TS7005
346
378
  if (watchEventsDisposable) {
347
379
  watchEventsDisposable.dispose();
348
380
  }
@@ -360,10 +392,12 @@ export default class Atlaspack {
360
392
 
361
393
  return {
362
394
  unsubscribe() {
395
+ // @ts-expect-error TS7005
363
396
  if (unsubscribePromise == null) {
364
397
  unsubscribePromise = unsubscribe();
365
398
  }
366
399
 
400
+ // @ts-expect-error TS7005
367
401
  return unsubscribePromise;
368
402
  },
369
403
  };
@@ -372,20 +406,28 @@ export default class Atlaspack {
372
406
  async _build({
373
407
  signal,
374
408
  startTime = Date.now(),
375
- }: {|
376
- signal?: AbortSignal,
377
- startTime?: number,
378
- |} = {
409
+ }: {
410
+ signal?: AbortSignal;
411
+ startTime?: number;
412
+ } = {
379
413
  /*::...null*/
380
414
  }): Promise<BuildEvent> {
381
- this.#requestTracker.setSignal(signal);
382
415
  let options = nullthrows(this.#resolvedOptions);
383
416
  try {
384
417
  if (options.shouldProfile) {
385
418
  await this.startProfiling();
386
419
  }
420
+ if (options.nativeProfiler) {
421
+ const nativeProfiler = new NativeProfiler();
422
+ await nativeProfiler.startProfiling(options.nativeProfiler);
423
+ }
387
424
  if (options.shouldTrace) {
388
425
  tracer.enable();
426
+ // We need to ensure the tracer is disabled when Atlaspack is disposed as it is a module level object.
427
+ // While rare (except for tests), if another instance is created later it should not have tracing enabled.
428
+ this.#disposable.add(() => {
429
+ tracer.disable();
430
+ });
389
431
  }
390
432
  await this.#reporterRunner.report({
391
433
  type: 'buildStart',
@@ -393,19 +435,64 @@ export default class Atlaspack {
393
435
 
394
436
  this.#requestTracker.graph.invalidateOnBuildNodes();
395
437
 
396
- let request = createAtlaspackBuildRequest({
397
- optionsRef: this.#optionsRef,
398
- requestedAssetIds: this.#requestedAssetIds,
399
- signal,
400
- });
438
+ let bundleGraph: any;
439
+ let bundleInfo: Map<any, any>;
440
+ let changedAssets: Map<any, any>;
441
+ let assetRequests: Array<any>;
442
+ let scopeHoistingStats: any;
443
+
444
+ if (getFeatureFlag('fullNative') && this.rustAtlaspack) {
445
+ let [result, error] = await this.rustAtlaspack.build(
446
+ (eventJson: string) => {
447
+ let event = JSON.parse(eventJson);
448
+ this.#reporterRunner.report(event);
449
+ },
450
+ );
451
+
452
+ if (error) {
453
+ throw new ThrowableDiagnostic({diagnostic: error});
454
+ }
455
+ ({bundleGraph, changedAssets} = getBundleGraph(result));
456
+ bundleInfo = new Map(
457
+ (result.bundleInfo ?? []).map(
458
+ (info: {
459
+ bundleId: string;
460
+ filePath: string;
461
+ type: string;
462
+ size: number;
463
+ time: number;
464
+ }) => [
465
+ info.bundleId,
466
+ {
467
+ filePath: toProjectPath(options.projectRoot, info.filePath),
468
+ bundleId: info.bundleId,
469
+ type: info.type,
470
+ stats: {size: info.size, time: info.time},
471
+ },
472
+ ],
473
+ ),
474
+ );
475
+ assetRequests = result.assetRequests ?? [];
476
+ } else {
477
+ let request = createAtlaspackBuildRequest({
478
+ optionsRef: this.#optionsRef,
479
+ requestedAssetIds: this.#requestedAssetIds,
480
+ signal,
481
+ });
401
482
 
402
- let {bundleGraph, bundleInfo, changedAssets, assetRequests} =
403
- await this.#requestTracker.runRequest(request, {force: true});
483
+ ({
484
+ bundleGraph,
485
+ bundleInfo,
486
+ changedAssets,
487
+ assetRequests,
488
+ scopeHoistingStats,
489
+ } = await this.#requestTracker.runRequest(request, {force: true}));
490
+ }
404
491
 
405
492
  this.#requestedAssetIds.clear();
406
493
 
407
494
  await dumpGraphToGraphViz(
408
- // $FlowFixMe
495
+ // @ts-expect-error TS2345
409
496
  this.#requestTracker.graph,
410
497
  'RequestGraph',
411
498
  requestGraphEdgeTypes,
@@ -414,14 +501,20 @@ export default class Atlaspack {
414
501
  let event = {
415
502
  type: 'buildSuccess',
416
503
  changedAssets: new Map(
417
- Array.from(changedAssets).map(([id, asset]) => [
504
+ Array.from(changedAssets).map(([id, asset]: [any, any]) => [
418
505
  id,
419
506
  assetFromValue(asset, options),
420
507
  ]),
421
508
  ),
422
509
  bundleGraph: new BundleGraph<IPackagedBundle>(
423
510
  bundleGraph,
424
- (bundle, bundleGraph, options) =>
511
+ (
512
+ // @ts-expect-error TS2304
513
+ bundle: Bundle,
514
+ // @ts-expect-error TS2314
515
+ bundleGraph: BundleGraph,
516
+ options: AtlaspackOptions,
517
+ ) =>
425
518
  PackagedBundle.getWithInfo(
426
519
  bundle,
427
520
  bundleGraph,
@@ -431,6 +524,7 @@ export default class Atlaspack {
431
524
  options,
432
525
  ),
433
526
  buildTime: Date.now() - startTime,
527
+ // @ts-expect-error TS7006
434
528
  requestBundle: async (bundle) => {
435
529
  let bundleNode = bundleGraph._graph.getNodeByContentKey(bundle.id);
436
530
  invariant(bundleNode?.type === 'bundle', 'Bundle does not exist');
@@ -444,6 +538,7 @@ export default class Atlaspack {
444
538
  buildTime: 0,
445
539
  requestBundle: event.requestBundle,
446
540
  unstable_requestStats: {},
541
+ scopeHoistingStats: event.scopeHoistingStats,
447
542
  };
448
543
  }
449
544
 
@@ -461,17 +556,23 @@ export default class Atlaspack {
461
556
 
462
557
  let results = await this.#watchQueue.run();
463
558
  let result = results.filter(Boolean).pop();
559
+ // @ts-expect-error TS18049
464
560
  if (result.type === 'buildFailure') {
561
+ // @ts-expect-error TS18049
465
562
  throw new BuildError(result.diagnostics);
466
563
  }
467
564
 
468
565
  return result;
469
566
  },
470
567
  unstable_requestStats: this.#requestTracker.flushStats(),
568
+ nativeCacheStats: await this.rustAtlaspack?.completeCacheSession(),
569
+ scopeHoistingStats,
471
570
  };
472
571
 
572
+ // @ts-expect-error TS2345
473
573
  await this.#reporterRunner.report(event);
474
574
  await this.#requestTracker.runRequest(
575
+ // @ts-expect-error TS2345
475
576
  createValidationRequest({optionsRef: this.#optionsRef, assetRequests}),
476
577
  {force: assetRequests.length > 0},
477
578
  );
@@ -480,8 +581,9 @@ export default class Atlaspack {
480
581
  throw this.#reporterRunner.errors;
481
582
  }
482
583
 
584
+ // @ts-expect-error TS2322
483
585
  return event;
484
- } catch (e) {
586
+ } catch (e: any) {
485
587
  if (e instanceof BuildAbortError) {
486
588
  throw e;
487
589
  }
@@ -491,9 +593,12 @@ export default class Atlaspack {
491
593
  type: 'buildFailure',
492
594
  diagnostics: Array.isArray(diagnostic) ? diagnostic : [diagnostic],
493
595
  unstable_requestStats: this.#requestTracker.flushStats(),
596
+ nativeCacheStats: await this.rustAtlaspack?.completeCacheSession(),
494
597
  };
495
598
 
599
+ // @ts-expect-error TS2345
496
600
  await this.#reporterRunner.report(event);
601
+ // @ts-expect-error TS2322
497
602
  return event;
498
603
  } finally {
499
604
  if (this.isProfiling) {
@@ -529,14 +634,15 @@ export default class Atlaspack {
529
634
  });
530
635
 
531
636
  let nativeInvalid = false;
532
- if (this.rustAtlaspack) {
637
+ if (getFeatureFlag('atlaspackV3') && this.rustAtlaspack) {
533
638
  nativeInvalid = await this.rustAtlaspack.respondToFsEvents(events);
534
639
  }
535
640
 
536
- let isInvalid = await this.#requestTracker.respondToFSEvents(
537
- events,
538
- Number.POSITIVE_INFINITY,
539
- );
641
+ let {didInvalidate: isInvalid} =
642
+ await this.#requestTracker.respondToFSEvents(
643
+ events,
644
+ Number.POSITIVE_INFINITY,
645
+ );
540
646
 
541
647
  if (
542
648
  (nativeInvalid || isInvalid) &&
@@ -620,13 +726,15 @@ export default class Atlaspack {
620
726
  lazyIncludes: [],
621
727
  lazyExcludes: [],
622
728
  requestedAssetIds: this.#requestedAssetIds,
623
- };
729
+ } as const;
624
730
 
625
731
  const start = Date.now();
626
732
  const result = await this.#requestTracker.runRequest(
627
- this.rustAtlaspack != null
628
- ? createAssetGraphRequestRust(this.rustAtlaspack)(input)
629
- : createAssetGraphRequestJS(input),
733
+ getFeatureFlag('atlaspackV3') && this.rustAtlaspack != null
734
+ ? // @ts-expect-error TS2345
735
+ createAssetGraphRequestRust(this.rustAtlaspack)(input)
736
+ : // @ts-expect-error TS2345
737
+ createAssetGraphRequestJS(input),
630
738
  {force: true},
631
739
  );
632
740
 
@@ -694,7 +802,7 @@ export default class Atlaspack {
694
802
 
695
803
  async unstable_resolve(
696
804
  request: AtlaspackResolveOptions,
697
- ): Promise<?AtlaspackResolveResult> {
805
+ ): Promise<AtlaspackResolveResult | null | undefined> {
698
806
  if (!this.#initialized) {
699
807
  await this._init();
700
808
  }
@@ -733,6 +841,7 @@ export default class Atlaspack {
733
841
  }
734
842
 
735
843
  return {
844
+ // @ts-expect-error TS2322
736
845
  filePath: fromProjectPath(projectRoot, res.filePath),
737
846
  code: res.code,
738
847
  query: res.query,
@@ -749,7 +858,7 @@ export class BuildError extends ThrowableDiagnostic {
749
858
  }
750
859
 
751
860
  export function createWorkerFarm(
752
- options: $Shape<FarmOptions> = {},
861
+ options: Partial<FarmOptions> = {},
753
862
  ): WorkerFarm {
754
863
  return new WorkerFarm({
755
864
  ...options,
@@ -1,19 +1,14 @@
1
- // @flow strict-local
2
1
  import type {PackageName} from '@atlaspack/types';
3
2
  import type {SchemaEntity} from '@atlaspack/utils';
4
3
 
5
4
  // Parcel validates plugin package names due to:
6
- //
7
5
  // * https://github.com/parcel-bundler/parcel/issues/3397#issuecomment-521353931
8
- //
9
6
  // Ultimately:
10
- //
11
7
  // * We do not care about package names
12
8
  // * Validation makes interop between parcel/atlaspack confusing.
13
- //
14
9
  export function validatePackageName(
15
10
  // eslint-disable-next-line no-unused-vars
16
- pkg: ?PackageName,
11
+ pkg: PackageName | null | undefined,
17
12
  // eslint-disable-next-line no-unused-vars
18
13
  pluginType: string,
19
14
  // eslint-disable-next-line no-unused-vars
@@ -27,7 +22,7 @@ const validatePluginName = (pluginType: string, key: string) => {
27
22
 
28
23
  try {
29
24
  validatePackageName(val, pluginType, key);
30
- } catch (e) {
25
+ } catch (e: any) {
31
26
  return e.message;
32
27
  }
33
28
  };
@@ -39,7 +34,7 @@ const validateExtends = (val: string): void => {
39
34
 
40
35
  try {
41
36
  validatePackageName(val, 'config', 'extends');
42
- } catch (e) {
37
+ } catch (e: any) {
43
38
  return e.message;
44
39
  }
45
40
  };
@@ -96,20 +91,31 @@ export default {
96
91
  },
97
92
  bundler: {
98
93
  type: 'string',
99
- __validate: (validatePluginName('bundler', 'bundler'): (string) => void),
94
+ __validate: validatePluginName('bundler', 'bundler') as (
95
+ arg1: string,
96
+ ) => void,
100
97
  },
101
- resolvers: (pipelineSchema('resolver', 'resolvers'): SchemaEntity),
102
- transformers: (mapPipelineSchema(
98
+ resolvers: pipelineSchema('resolver', 'resolvers') as SchemaEntity,
99
+ transformers: mapPipelineSchema(
103
100
  'transformer',
104
101
  'transformers',
105
- ): SchemaEntity),
106
- validators: (mapPipelineSchema('validator', 'validators'): SchemaEntity),
107
- namers: (pipelineSchema('namer', 'namers'): SchemaEntity),
108
- packagers: (mapStringSchema('packager', 'packagers'): SchemaEntity),
109
- optimizers: (mapPipelineSchema('optimizer', 'optimizers'): SchemaEntity),
110
- compressors: (mapPipelineSchema('compressor', 'compressors'): SchemaEntity),
111
- reporters: (pipelineSchema('reporter', 'reporters'): SchemaEntity),
112
- runtimes: (pipelineSchema('runtime', 'runtimes'): SchemaEntity),
102
+ ) as SchemaEntity,
103
+ validators: mapPipelineSchema('validator', 'validators') as SchemaEntity,
104
+ namers: pipelineSchema('namer', 'namers') as SchemaEntity,
105
+ packagers: mapStringSchema('packager', 'packagers') as SchemaEntity,
106
+ optimizers: mapPipelineSchema('optimizer', 'optimizers') as SchemaEntity,
107
+ compressors: mapPipelineSchema('compressor', 'compressors') as SchemaEntity,
108
+ reporters: pipelineSchema('reporter', 'reporters') as SchemaEntity,
109
+ runtimes: pipelineSchema('runtime', 'runtimes') as SchemaEntity,
110
+ // This isn't currently supported in V2, however we need to allow it to
111
+ // parse as even V3 builds need the AtlaspackConfigRequest
112
+ unstable_alias: {
113
+ type: 'object',
114
+ properties: {},
115
+ additionalProperties: {
116
+ type: 'string',
117
+ },
118
+ },
113
119
  filePath: {
114
120
  type: 'string',
115
121
  },