@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,24 +1,22 @@
1
- // @flow strict-local
2
-
3
1
  import {Readable} from 'stream';
4
2
 
5
3
  import {deserializeRaw} from '@atlaspack/build-cache';
6
4
  import type {AST, Blob} from '@atlaspack/types';
7
5
  import {bufferStream, blobToStream, streamFromPromise} from '@atlaspack/utils';
8
- import SourceMap from '@parcel/source-map';
6
+ import SourceMap from '@atlaspack/source-map';
9
7
 
10
8
  import {generateFromAST} from './assetUtils';
11
9
  import type {Asset, Dependency, AtlaspackOptions} from './types';
12
10
 
13
11
  export default class CommittedAsset {
14
- key: ?string;
12
+ key: string | null | undefined;
15
13
  value: Asset;
16
14
  options: AtlaspackOptions;
17
- content: ?Promise<Buffer | string>;
18
- mapBuffer: ?Promise<?Buffer>;
19
- map: ?Promise<?SourceMap>;
20
- ast: ?Promise<AST>;
21
- code: ?string;
15
+ content: Promise<Buffer | string> | null | undefined;
16
+ mapBuffer: Promise<Buffer | null | undefined> | null | undefined;
17
+ map: Promise<SourceMap | null | undefined> | null | undefined;
18
+ ast: Promise<AST> | null | undefined;
19
+ code: string | null | undefined;
22
20
 
23
21
  constructor(value: Asset, options: AtlaspackOptions) {
24
22
  this.value = value;
@@ -63,6 +61,7 @@ export default class CommittedAsset {
63
61
  if (typeof content === 'string' || content instanceof Buffer) {
64
62
  return content.toString();
65
63
  } else if (content != null) {
64
+ // @ts-expect-error TS2345
66
65
  this.content = bufferStream(content);
67
66
  return (await this.content).toString();
68
67
  }
@@ -79,7 +78,9 @@ export default class CommittedAsset {
79
78
  return Buffer.from(content);
80
79
  }
81
80
 
81
+ // @ts-expect-error TS2345
82
82
  this.content = bufferStream(content);
83
+ // @ts-expect-error TS2322
83
84
  return this.content;
84
85
  }
85
86
 
@@ -90,7 +91,7 @@ export default class CommittedAsset {
90
91
  : blobToStream(content);
91
92
  }
92
93
 
93
- getMapBuffer(): Promise<?Buffer> {
94
+ getMapBuffer(): Promise<Buffer | null | undefined> {
94
95
  let mapKey = this.value.mapKey;
95
96
  if (mapKey != null && this.mapBuffer == null) {
96
97
  this.mapBuffer = (async () => {
@@ -116,7 +117,7 @@ export default class CommittedAsset {
116
117
  }
117
118
 
118
119
  return await this.options.cache.getBlob(mapKey);
119
- } catch (err) {
120
+ } catch (err: any) {
120
121
  if (err.code === 'ENOENT' && this.value.astKey != null) {
121
122
  return (await generateFromAST(this)).map?.toBuffer();
122
123
  } else {
@@ -126,10 +127,11 @@ export default class CommittedAsset {
126
127
  })();
127
128
  }
128
129
 
130
+ // @ts-expect-error TS2322
129
131
  return this.mapBuffer ?? Promise.resolve();
130
132
  }
131
133
 
132
- getMap(): Promise<?SourceMap> {
134
+ getMap(): Promise<SourceMap | null | undefined> {
133
135
  if (this.map == null) {
134
136
  this.map = (async () => {
135
137
  let mapBuffer = await this.getMapBuffer();
@@ -143,7 +145,7 @@ export default class CommittedAsset {
143
145
  return this.map;
144
146
  }
145
147
 
146
- getAST(): Promise<?AST> {
148
+ getAST(): Promise<AST | null | undefined> {
147
149
  if (this.value.astKey == null) {
148
150
  return Promise.resolve(null);
149
151
  }
@@ -1,4 +1,3 @@
1
- // @flow
2
1
  import type {
3
2
  FilePath,
4
3
  Meta,
@@ -8,7 +7,7 @@ import type {
8
7
  BundleBehavior as IBundleBehavior,
9
8
  SemverRange,
10
9
  } from '@atlaspack/types';
11
- import type {Dependency, Environment, Target} from './types';
10
+ import type {Dependency, Target} from './types';
12
11
  import {createDependencyId as createDependencyIdRust} from '@atlaspack/rust';
13
12
  import {
14
13
  SpecifierType,
@@ -21,31 +20,41 @@ import {toInternalSourceLocation} from './utils';
21
20
  import {toProjectPath} from './projectPath';
22
21
  import assert from 'assert';
23
22
  import {identifierRegistry} from './IdentifierRegistry';
23
+ import {fromEnvironmentId, toEnvironmentId} from './EnvironmentManager';
24
+ import type {EnvironmentRef} from './EnvironmentManager';
24
25
 
25
- type DependencyOpts = {|
26
- id?: string,
27
- sourcePath?: FilePath,
28
- sourceAssetId?: string,
29
- specifier: DependencySpecifier,
30
- specifierType: $Keys<typeof SpecifierType>,
31
- priority?: $Keys<typeof Priority>,
32
- needsStableName?: boolean,
33
- bundleBehavior?: ?IBundleBehavior,
34
- isEntry?: boolean,
35
- isOptional?: boolean,
36
- loc?: SourceLocation,
37
- env: Environment,
38
- packageConditions?: Array<string>,
39
- meta?: Meta,
40
- resolveFrom?: FilePath,
41
- range?: SemverRange,
42
- target?: Target,
43
- symbols?: ?Map<
44
- Symbol,
45
- {|local: Symbol, loc: ?SourceLocation, isWeak: boolean, meta?: ?Meta|},
46
- >,
47
- pipeline?: ?string,
48
- |};
26
+ type DependencyOpts = {
27
+ id?: string;
28
+ sourcePath?: FilePath;
29
+ sourceAssetId?: string;
30
+ specifier: DependencySpecifier;
31
+ specifierType: keyof typeof SpecifierType;
32
+ priority?: keyof typeof Priority;
33
+ needsStableName?: boolean;
34
+ bundleBehavior?: IBundleBehavior | null | undefined;
35
+ isEntry?: boolean;
36
+ isOptional?: boolean;
37
+ loc?: SourceLocation;
38
+ env: EnvironmentRef;
39
+ packageConditions?: Array<string>;
40
+ meta?: Meta;
41
+ resolveFrom?: FilePath;
42
+ range?: SemverRange;
43
+ target?: Target;
44
+ symbols?:
45
+ | Map<
46
+ symbol,
47
+ {
48
+ local: symbol;
49
+ loc: SourceLocation | null | undefined;
50
+ isWeak: boolean;
51
+ meta?: Meta | null | undefined;
52
+ }
53
+ >
54
+ | null
55
+ | undefined;
56
+ pipeline?: string | null | undefined;
57
+ };
49
58
 
50
59
  export function createDependencyId({
51
60
  sourceAssetId,
@@ -57,30 +66,36 @@ export function createDependencyId({
57
66
  bundleBehavior,
58
67
  priority,
59
68
  packageConditions,
60
- }: {|
61
- sourceAssetId?: string | void,
62
- specifier: DependencySpecifier,
63
- env: Environment,
64
- target?: Target | void,
65
- pipeline?: ?string,
66
- specifierType: $Keys<typeof SpecifierType>,
67
- bundleBehavior?: ?IBundleBehavior,
68
- priority?: $Keys<typeof Priority> | void,
69
- packageConditions?: Array<string> | void,
70
- |}): string {
69
+ }: {
70
+ sourceAssetId?: string | undefined;
71
+ specifier: DependencySpecifier;
72
+ env: EnvironmentRef;
73
+ target?: Target | undefined;
74
+ pipeline?: string | null | undefined;
75
+ specifierType: keyof typeof SpecifierType;
76
+ bundleBehavior?: IBundleBehavior | null | undefined;
77
+ priority?: keyof typeof Priority | undefined;
78
+ packageConditions?: Array<string> | undefined;
79
+ }): string {
71
80
  assert(typeof specifierType === 'string');
72
81
  assert(typeof priority === 'string' || priority == null);
73
82
  const params = {
74
83
  sourceAssetId,
75
84
  specifier,
76
- environmentId: env.id,
77
- target,
85
+ environmentId: toEnvironmentId(env),
86
+ target:
87
+ target != null
88
+ ? {
89
+ ...target,
90
+ env: fromEnvironmentId(target.env),
91
+ }
92
+ : null,
78
93
  pipeline,
79
94
  specifierType: SpecifierType[specifierType],
80
95
  bundleBehavior,
81
96
  priority: priority ? Priority[priority] : Priority.sync,
82
97
  packageConditions,
83
- };
98
+ } as const;
84
99
  const id = createDependencyIdRust(params);
85
100
  identifierRegistry.addIdentifier('dependency', id, params);
86
101
  return id;
@@ -126,7 +141,7 @@ export function createDependency(
126
141
  symbols:
127
142
  opts.symbols &&
128
143
  new Map(
129
- [...opts.symbols].map(([k, v]) => [
144
+ [...opts.symbols].map(([k, v]: [any, any]) => [
130
145
  k,
131
146
  {
132
147
  local: v.local,
@@ -164,9 +179,11 @@ function convertConditions(conditions: Array<string>, dep: Dependency) {
164
179
  // Store common package conditions as bit flags to reduce size.
165
180
  // Custom conditions are stored as strings.
166
181
  let packageConditions = 0;
167
- let customConditions = [];
182
+ let customConditions: Array<string> = [];
168
183
  for (let condition of conditions) {
184
+ // @ts-expect-error TS7053
169
185
  if (ExportsCondition[condition]) {
186
+ // @ts-expect-error TS7053
170
187
  packageConditions |= ExportsCondition[condition];
171
188
  } else {
172
189
  customConditions.push(condition);
@@ -1,8 +1,8 @@
1
- // @flow
2
1
  import type {
3
2
  EnvironmentOptions,
4
3
  Environment as IEnvironment,
5
4
  FilePath,
5
+ EnvMap,
6
6
  } from '@atlaspack/types';
7
7
  import type {Environment, InternalSourceLocation} from './types';
8
8
  import {createEnvironmentId} from '@atlaspack/rust';
@@ -10,16 +10,18 @@ import {toInternalSourceLocation} from './utils';
10
10
  import PublicEnvironment from './public/Environment';
11
11
  import {environmentToInternalEnvironment} from './public/Environment';
12
12
  import {identifierRegistry} from './IdentifierRegistry';
13
+ import {toEnvironmentRef} from './EnvironmentManager';
14
+ import type {EnvironmentRef} from './EnvironmentManager';
13
15
 
14
16
  const DEFAULT_ENGINES = {
15
17
  browsers: ['> 0.25%'],
16
18
  node: '>= 8.0.0',
17
- };
19
+ } as const;
18
20
 
19
- type EnvironmentOpts = {|
20
- ...EnvironmentOptions,
21
- loc?: ?InternalSourceLocation,
22
- |};
21
+ type EnvironmentOpts = EnvironmentOptions & {
22
+ loc?: InternalSourceLocation | null | undefined;
23
+ customEnv?: EnvMap | null | undefined;
24
+ };
23
25
 
24
26
  export function createEnvironment({
25
27
  context,
@@ -33,9 +35,10 @@ export function createEnvironment({
33
35
  sourceMap,
34
36
  unstableSingleFileOutput = false,
35
37
  loc,
38
+ customEnv,
36
39
  }: EnvironmentOpts = {
37
40
  /*::...null*/
38
- }): Environment {
41
+ }): EnvironmentRef {
39
42
  if (context == null) {
40
43
  if (engines?.node) {
41
44
  context = 'node';
@@ -57,8 +60,10 @@ export function createEnvironment({
57
60
  case 'browser':
58
61
  case 'web-worker':
59
62
  case 'service-worker':
63
+ case 'tesseract':
60
64
  case 'electron-renderer':
61
65
  engines = {
66
+ // @ts-expect-error TS2322
62
67
  browsers: DEFAULT_ENGINES.browsers,
63
68
  };
64
69
  break;
@@ -77,6 +82,7 @@ export function createEnvironment({
77
82
  case 'browser':
78
83
  case 'web-worker':
79
84
  case 'service-worker':
85
+ case 'tesseract':
80
86
  default:
81
87
  includeNodeModules = true;
82
88
  break;
@@ -99,6 +105,7 @@ export function createEnvironment({
99
105
  let res: Environment = {
100
106
  id: '',
101
107
  context,
108
+ // @ts-expect-error TS2322
102
109
  engines,
103
110
  includeNodeModules,
104
111
  outputFormat,
@@ -109,27 +116,28 @@ export function createEnvironment({
109
116
  sourceMap,
110
117
  unstableSingleFileOutput,
111
118
  loc,
119
+ customEnv,
112
120
  };
113
121
 
114
122
  res.id = getEnvironmentHash(res);
115
- return Object.freeze(res);
123
+
124
+ return toEnvironmentRef(Object.freeze(res));
116
125
  }
117
126
 
118
127
  export function mergeEnvironments(
119
128
  projectRoot: FilePath,
120
129
  a: Environment,
121
- b: ?(EnvironmentOptions | IEnvironment),
122
- ): Environment {
130
+ b?: EnvironmentOptions | IEnvironment | null,
131
+ ): EnvironmentRef {
123
132
  // If merging the same object, avoid copying.
124
133
  if (a === b || !b) {
125
- return a;
134
+ return toEnvironmentRef(a);
126
135
  }
127
136
 
128
137
  if (b instanceof PublicEnvironment) {
129
- return environmentToInternalEnvironment(b);
138
+ return toEnvironmentRef(environmentToInternalEnvironment(b));
130
139
  }
131
140
 
132
- // $FlowFixMe - ignore the `id` that is already on a
133
141
  return createEnvironment({
134
142
  ...a,
135
143
  ...b,
@@ -137,7 +145,7 @@ export function mergeEnvironments(
137
145
  });
138
146
  }
139
147
 
140
- function getEnvironmentHash(env: Environment): string {
148
+ export function getEnvironmentHash(env: Environment): string {
141
149
  const data = {
142
150
  context: env.context,
143
151
  engines: env.engines,
@@ -148,7 +156,8 @@ function getEnvironmentHash(env: Environment): string {
148
156
  shouldOptimize: env.shouldOptimize,
149
157
  shouldScopeHoist: env.shouldScopeHoist,
150
158
  sourceMap: env.sourceMap,
151
- };
159
+ customEnv: env.customEnv,
160
+ } as const;
152
161
  const id = createEnvironmentId(data);
153
162
  identifierRegistry.addIdentifier('environment', id, data);
154
163
  return id;
@@ -0,0 +1,154 @@
1
+ /*!
2
+ * At the moment we're doing this change for `CoreEnvironment`,
3
+ * but the same change must be made for `TypesEnvironment` in @atlaspack/types.
4
+ */
5
+ import type {Environment as CoreEnvironment} from './types';
6
+ import {Cache} from '@atlaspack/cache';
7
+ import {
8
+ addEnvironment,
9
+ getEnvironment,
10
+ getAllEnvironments,
11
+ setAllEnvironments,
12
+ } from '@atlaspack/rust';
13
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
14
+ import {instrument} from '@atlaspack/logger';
15
+ import {ATLASPACK_VERSION} from './constants';
16
+
17
+ const localEnvironmentCache = new Map<string, CoreEnvironment>();
18
+
19
+ export type EnvironmentId = string;
20
+ /**
21
+ * When deduplication is cleaned-up this will always be a string.
22
+ */
23
+ export type EnvironmentRef = EnvironmentId | CoreEnvironment;
24
+
25
+ /**
26
+ * Convert environment to a ref.
27
+ * This is what we should be using to store environments.
28
+ */
29
+ export function toEnvironmentRef(env: CoreEnvironment): EnvironmentRef {
30
+ if (!getFeatureFlag('environmentDeduplication')) {
31
+ return env;
32
+ }
33
+
34
+ const id = toEnvironmentId(env);
35
+ return id;
36
+ }
37
+
38
+ /**
39
+ * Convert environment to a string ID
40
+ */
41
+ export function toEnvironmentId(
42
+ /**
43
+ * Redundant type during roll-out
44
+ */
45
+ env: CoreEnvironment | EnvironmentRef,
46
+ ): string {
47
+ if (!getFeatureFlag('environmentDeduplication')) {
48
+ return typeof env === 'string' ? env : env.id;
49
+ }
50
+
51
+ if (typeof env === 'string') {
52
+ return env;
53
+ }
54
+
55
+ addEnvironment(env);
56
+ return env.id;
57
+ }
58
+
59
+ export function fromEnvironmentId(id: EnvironmentRef): CoreEnvironment {
60
+ if (!getFeatureFlag('environmentDeduplication')) {
61
+ if (typeof id === 'string') {
62
+ throw new Error(
63
+ 'This should never happen when environmentDeduplication feature-flag is off',
64
+ );
65
+ } else {
66
+ return id;
67
+ }
68
+ }
69
+
70
+ if (typeof id !== 'string') {
71
+ return id;
72
+ }
73
+
74
+ const localEnv = localEnvironmentCache.get(id);
75
+
76
+ if (localEnv) {
77
+ return localEnv;
78
+ }
79
+
80
+ const env = Object.freeze(getEnvironment(id));
81
+ // @ts-expect-error TS2345
82
+ localEnvironmentCache.set(id, env);
83
+ // @ts-expect-error TS2322
84
+ return env;
85
+ }
86
+
87
+ /**
88
+ * Writes all environments and their IDs to the cache
89
+ * @param {Cache} cache
90
+ * @returns {Promise<void>}
91
+ */
92
+ export async function writeEnvironmentsToCache(cache: Cache): Promise<void> {
93
+ const environments = getAllEnvironments();
94
+ const environmentIds = new Set<string>();
95
+
96
+ // Store each environment individually
97
+ for (const env of environments) {
98
+ // @ts-expect-error TS18046
99
+ environmentIds.add(env.id);
100
+ // @ts-expect-error TS18046
101
+ const envKey = `Environment/${ATLASPACK_VERSION}/${env.id}`;
102
+
103
+ await instrument(
104
+ `RequestTracker::writeToCache::cache.put(${envKey})`,
105
+ async () => {
106
+ await cache.set(envKey, env);
107
+ },
108
+ );
109
+ }
110
+
111
+ // Store the list of environment IDs
112
+ await instrument(
113
+ `RequestTracker::writeToCache::cache.put(${`EnvironmentManager/${ATLASPACK_VERSION}`})`,
114
+ async () => {
115
+ await cache.set(
116
+ `EnvironmentManager/${ATLASPACK_VERSION}`,
117
+ Array.from(environmentIds),
118
+ );
119
+ },
120
+ );
121
+ }
122
+
123
+ /**
124
+ * Loads all environments and their IDs from the cache
125
+ * @param {Cache} cache
126
+ * @returns {Promise<void>}
127
+ */
128
+ export async function loadEnvironmentsFromCache(cache: Cache): Promise<void> {
129
+ const cachedEnvIds = await cache.get(
130
+ `EnvironmentManager/${ATLASPACK_VERSION}`,
131
+ );
132
+
133
+ if (cachedEnvIds == null) {
134
+ return;
135
+ }
136
+
137
+ const environments: Array<
138
+ // @ts-expect-error TS2552
139
+ Environment & {
140
+ id: string;
141
+ }
142
+ > = [];
143
+ // @ts-expect-error TS2488
144
+ for (const envId of cachedEnvIds) {
145
+ const envKey = `Environment/${ATLASPACK_VERSION}/${envId}`;
146
+ const cachedEnv = await cache.get(envKey);
147
+ if (cachedEnv != null) {
148
+ environments.push(cachedEnv);
149
+ }
150
+ }
151
+ if (environments.length > 0) {
152
+ setAllEnvironments(environments);
153
+ }
154
+ }
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import fs from 'fs';
4
2
 
5
3
  export class IdentifierRegistry {
@@ -10,7 +8,7 @@ export class IdentifierRegistry {
10
8
  this.#enabled = enabled;
11
9
  }
12
10
 
13
- addIdentifier(type: string, identifier: string, data: mixed) {
11
+ addIdentifier(type: string, identifier: string, data: unknown) {
14
12
  if (this.#enabled) {
15
13
  if (!this.#createdDirectory) {
16
14
  fs.mkdirSync('./.atlaspack', {recursive: true});
@@ -19,7 +17,6 @@ export class IdentifierRegistry {
19
17
 
20
18
  fs.appendFile(
21
19
  './.atlaspack/atlaspack-identifiers.txt',
22
- // $FlowFixMe
23
20
  `${type} ${identifier} ${JSON.stringify(data)}\n`,
24
21
  () => {},
25
22
  );
@@ -1,9 +1,6 @@
1
- // @flow strict-local
2
-
3
1
  import type {PackageName, ConfigResult} from '@atlaspack/types';
4
2
  import type {
5
3
  Config,
6
- Environment,
7
4
  InternalFileCreateInvalidation,
8
5
  InternalDevDepOptions,
9
6
  } from './types';
@@ -13,25 +10,27 @@ import {fromProjectPathRelative} from './projectPath';
13
10
  import {createEnvironment} from './Environment';
14
11
  import {hashString} from '@atlaspack/rust';
15
12
  import {identifierRegistry} from './IdentifierRegistry';
13
+ import type {EnvironmentRef} from './EnvironmentManager';
14
+ import {toEnvironmentId} from './EnvironmentManager';
16
15
 
17
- type ConfigOpts = {|
18
- plugin: PackageName,
19
- searchPath: ProjectPath,
20
- isSource?: boolean,
21
- env?: Environment,
22
- result?: ConfigResult,
23
- invalidateOnFileChange?: Set<ProjectPath>,
24
- invalidateOnConfigKeyChange?: Array<{|
25
- filePath: ProjectPath,
26
- configKey: string,
27
- |}>,
28
- invalidateOnFileCreate?: Array<InternalFileCreateInvalidation>,
29
- invalidateOnEnvChange?: Set<string>,
30
- invalidateOnOptionChange?: Set<string>,
31
- devDeps?: Array<InternalDevDepOptions>,
32
- invalidateOnStartup?: boolean,
33
- invalidateOnBuild?: boolean,
34
- |};
16
+ export type ConfigOpts = {
17
+ plugin: PackageName;
18
+ searchPath: ProjectPath;
19
+ isSource?: boolean;
20
+ env?: EnvironmentRef;
21
+ result?: ConfigResult;
22
+ invalidateOnFileChange?: Set<ProjectPath>;
23
+ invalidateOnConfigKeyChange?: Array<{
24
+ filePath: ProjectPath;
25
+ configKey: string[];
26
+ }>;
27
+ invalidateOnFileCreate?: Array<InternalFileCreateInvalidation>;
28
+ invalidateOnEnvChange?: Set<string>;
29
+ invalidateOnOptionChange?: Set<string>;
30
+ devDeps?: Array<InternalDevDepOptions>;
31
+ invalidateOnStartup?: boolean;
32
+ invalidateOnBuild?: boolean;
33
+ };
35
34
 
36
35
  export function createConfig({
37
36
  plugin,
@@ -52,13 +51,13 @@ export function createConfig({
52
51
  const configId = hashString(
53
52
  plugin +
54
53
  fromProjectPathRelative(searchPath) +
55
- environment.id +
54
+ toEnvironmentId(environment) +
56
55
  String(isSource),
57
56
  );
58
57
  identifierRegistry.addIdentifier('config_request', configId, {
59
58
  plugin,
60
59
  searchPath,
61
- environmentId: environment.id,
60
+ environmentId: toEnvironmentId(environment),
62
61
  isSource,
63
62
  });
64
63
  return {