@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,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {WorkerApi} from '@atlaspack/workers';
4
2
  import type {AssetGroup, AtlaspackOptions, ReportFn} from './types';
5
3
  import type {Validator, ValidateResult} from '@atlaspack/types';
@@ -18,29 +16,34 @@ import summarizeRequest from './summarizeRequest';
18
16
  import {fromProjectPath, fromProjectPathRelative} from './projectPath';
19
17
  import {PluginTracer} from '@atlaspack/profiler';
20
18
 
21
- export type ValidationOpts = {|
22
- config: AtlaspackConfig,
19
+ export type ValidationOpts = {
20
+ config: AtlaspackConfig;
23
21
  /**
24
22
  * If true, this Validation instance will run all validators that implement the single-threaded "validateAll" method.
25
23
  * If falsy, it will run validators that implement the one-asset-at-a-time "validate" method.
26
24
  */
27
- dedicatedThread?: boolean,
28
- options: AtlaspackOptions,
29
- requests: AssetGroup[],
30
- report: ReportFn,
31
- workerApi?: WorkerApi,
32
- |};
25
+ dedicatedThread?: boolean;
26
+ options: AtlaspackOptions;
27
+ requests: AssetGroup[];
28
+ report: ReportFn;
29
+ workerApi?: WorkerApi;
30
+ };
33
31
 
34
32
  export default class Validation {
35
- allAssets: {[validatorName: string]: UncommittedAsset[], ...} = {};
36
- allValidators: {[validatorName: string]: Validator, ...} = {};
33
+ allAssets: {
34
+ [validatorName: string]: UncommittedAsset[];
35
+ } = {};
36
+ allValidators: {
37
+ [validatorName: string]: Validator;
38
+ } = {};
37
39
  dedicatedThread: boolean;
38
- impactfulOptions: $Shape<AtlaspackOptions>;
40
+ // @ts-expect-error TS2564
41
+ impactfulOptions: Partial<AtlaspackOptions>;
39
42
  options: AtlaspackOptions;
40
43
  atlaspackConfig: AtlaspackConfig;
41
44
  report: ReportFn;
42
45
  requests: AssetGroup[];
43
- workerApi: ?WorkerApi;
46
+ workerApi: WorkerApi | null | undefined;
44
47
 
45
48
  constructor({
46
49
  config,
@@ -71,10 +74,12 @@ export default class Validation {
71
74
  origin: validatorName,
72
75
  category: 'validator',
73
76
  });
74
- let validatorResults: Array<?ValidateResult> = [];
77
+ let validatorResults: Array<ValidateResult | null | undefined> = [];
75
78
  try {
76
79
  // If the plugin supports the single-threading validateAll method, pass all assets to it.
80
+ // @ts-expect-error TS2339
77
81
  if (plugin.validateAll && this.dedicatedThread) {
82
+ // @ts-expect-error TS2339
78
83
  validatorResults = await plugin.validateAll({
79
84
  assets: assets.map((asset) => new Asset(asset)),
80
85
  options: pluginOptions,
@@ -94,12 +99,15 @@ export default class Validation {
94
99
  }
95
100
 
96
101
  // Otherwise, pass the assets one-at-a-time
102
+ // @ts-expect-error TS2339
97
103
  else if (plugin.validate && !this.dedicatedThread) {
98
104
  await Promise.all(
99
105
  assets.map(async (input) => {
100
106
  let config = null;
101
107
  let publicAsset = new Asset(input);
108
+ // @ts-expect-error TS2339
102
109
  if (plugin.getConfig) {
110
+ // @ts-expect-error TS2339
103
111
  config = await plugin.getConfig({
104
112
  asset: publicAsset,
105
113
  options: pluginOptions,
@@ -115,6 +123,7 @@ export default class Validation {
115
123
  });
116
124
  }
117
125
 
126
+ // @ts-expect-error TS2339
118
127
  let validatorResult = await plugin.validate({
119
128
  asset: publicAsset,
120
129
  options: pluginOptions,
@@ -127,7 +136,7 @@ export default class Validation {
127
136
  );
128
137
  }
129
138
  this.handleResults(validatorResults);
130
- } catch (e) {
139
+ } catch (e: any) {
131
140
  throw new ThrowableDiagnostic({
132
141
  diagnostic: errorToDiagnostic(e, {
133
142
  origin: validatorName,
@@ -145,12 +154,14 @@ export default class Validation {
145
154
  this.requests.map(async (request) => {
146
155
  this.report({
147
156
  type: 'validation',
157
+ // @ts-expect-error TS2322
148
158
  filePath: fromProjectPath(this.options.projectRoot, request.filePath),
149
159
  });
150
160
 
151
161
  let asset = await this.loadAsset(request);
152
162
 
153
163
  let validators = await this.atlaspackConfig.getValidators(
164
+ // @ts-expect-error TS2345
154
165
  request.filePath,
155
166
  );
156
167
 
@@ -166,7 +177,7 @@ export default class Validation {
166
177
  );
167
178
  }
168
179
 
169
- handleResults(validatorResults: Array<?ValidateResult>) {
180
+ handleResults(validatorResults: Array<ValidateResult | null | undefined>) {
170
181
  let warnings: Array<Diagnostic> = [];
171
182
  let errors: Array<Diagnostic> = [];
172
183
  validatorResults.forEach((result) => {
@@ -192,6 +203,7 @@ export default class Validation {
192
203
  let {content, size, isSource} = await summarizeRequest(
193
204
  this.options.inputFS,
194
205
  {
206
+ // @ts-expect-error TS2322
195
207
  filePath: fromProjectPath(this.options.projectRoot, request.filePath),
196
208
  },
197
209
  );
@@ -199,10 +211,13 @@ export default class Validation {
199
211
  return new UncommittedAsset({
200
212
  value: createAsset(this.options.projectRoot, {
201
213
  code,
214
+ // @ts-expect-error TS2322
202
215
  filePath: filePath,
203
216
  isSource,
217
+ // @ts-expect-error TS2345
204
218
  type: path.extname(fromProjectPathRelative(filePath)).slice(1),
205
219
  query,
220
+ // @ts-expect-error TS2322
206
221
  env: env,
207
222
  stats: {
208
223
  time: 0,
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {ContentKey} from '@atlaspack/graph';
4
2
  import type {Dependency, NamedBundle as INamedBundle} from '@atlaspack/types';
5
3
  import type {SharedReference} from '@atlaspack/workers';
@@ -11,6 +9,7 @@ import type {
11
9
  DevDepRequest,
12
10
  AtlaspackOptions,
13
11
  DevDepRequestRef,
12
+ DependencyNode,
14
13
  } from './types';
15
14
  import type {AtlaspackConfig} from './AtlaspackConfig';
16
15
  import type PluginOptions from './public/PluginOptions';
@@ -21,6 +20,7 @@ import assert from 'assert';
21
20
  import invariant from 'assert';
22
21
  import nullthrows from 'nullthrows';
23
22
  import {nodeFromAssetGroup} from './AssetGraph';
23
+ import type AssetGraph from './AssetGraph';
24
24
  import BundleGraph from './public/BundleGraph';
25
25
  import InternalBundleGraph, {bundleGraphEdgeTypes} from './BundleGraph';
26
26
  import {NamedBundle} from './public/Bundle';
@@ -34,13 +34,15 @@ import {createDevDependency, runDevDepRequest} from './requests/DevDepRequest';
34
34
  import {toProjectPath, fromProjectPathRelative} from './projectPath';
35
35
  import {tracer, PluginTracer} from '@atlaspack/profiler';
36
36
  import {DefaultMap} from '@atlaspack/utils';
37
+ import {fromEnvironmentId} from './EnvironmentManager';
38
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
37
39
 
38
- type RuntimeConnection = {|
39
- bundle: InternalBundle,
40
- assetGroup: AssetGroup,
41
- dependency: ?Dependency,
42
- isEntry: ?boolean,
43
- |};
40
+ type RuntimeConnection = {
41
+ bundle: InternalBundle;
42
+ assetGroup: AssetGroup;
43
+ dependency: Dependency | null | undefined;
44
+ isEntry: boolean | null | undefined;
45
+ };
44
46
 
45
47
  function nameRuntimeBundle(
46
48
  bundle: InternalBundle,
@@ -70,7 +72,7 @@ function nameRuntimeBundle(
70
72
  * Introduction of manifest bundles: https://github.com/parcel-bundler/parcel/pull/8837
71
73
  * Introduction of reverse topology: https://github.com/parcel-bundler/parcel/pull/8981
72
74
  */
73
- export default async function applyRuntimes<TResult: RequestResult>({
75
+ export default async function applyRuntimes<TResult extends RequestResult>({
74
76
  bundleGraph,
75
77
  config,
76
78
  options,
@@ -80,17 +82,17 @@ export default async function applyRuntimes<TResult: RequestResult>({
80
82
  previousDevDeps,
81
83
  devDepRequests,
82
84
  configs,
83
- }: {|
84
- bundleGraph: InternalBundleGraph,
85
- config: AtlaspackConfig,
86
- options: AtlaspackOptions,
87
- optionsRef: SharedReference,
88
- pluginOptions: PluginOptions,
89
- api: RunAPI<TResult>,
90
- previousDevDeps: Map<string, string>,
91
- devDepRequests: Map<string, DevDepRequest | DevDepRequestRef>,
92
- configs: Map<string, Config>,
93
- |}): Promise<Map<string, Asset>> {
85
+ }: {
86
+ bundleGraph: InternalBundleGraph;
87
+ config: AtlaspackConfig;
88
+ options: AtlaspackOptions;
89
+ optionsRef: SharedReference;
90
+ pluginOptions: PluginOptions;
91
+ api: RunAPI<TResult>;
92
+ previousDevDeps: Map<string, string>;
93
+ devDepRequests: Map<string, DevDepRequest | DevDepRequestRef>;
94
+ configs: Map<string, Config>;
95
+ }): Promise<Map<string, Asset>> {
94
96
  let runtimes = await config.getRuntimes();
95
97
 
96
98
  /**
@@ -106,9 +108,11 @@ export default async function applyRuntimes<TResult: RequestResult>({
106
108
  * order), so that children will always be available when parents try to reference
107
109
  * them.
108
110
  */
109
- let bundles = [];
111
+ // @ts-expect-error TS2304
112
+ let bundles: Array<Bundle> = [];
110
113
  bundleGraph.traverseBundles({
111
- exit(bundle) {
114
+ // @ts-expect-error TS2304
115
+ exit(bundle: Bundle) {
112
116
  bundles.push(bundle);
113
117
  },
114
118
  });
@@ -149,7 +153,9 @@ export default async function applyRuntimes<TResult: RequestResult>({
149
153
  filePath,
150
154
  isEntry,
151
155
  env,
156
+ runtimeAssetRequiringExecutionOnLoad,
152
157
  priority,
158
+ symbolData,
153
159
  } of runtimeAssets) {
154
160
  let sourceName = path.join(
155
161
  path.dirname(filePath),
@@ -158,11 +164,17 @@ export default async function applyRuntimes<TResult: RequestResult>({
158
164
 
159
165
  let assetGroup = {
160
166
  code,
167
+ runtimeAssetRequiringExecutionOnLoad,
161
168
  filePath: toProjectPath(options.projectRoot, sourceName),
162
- env: mergeEnvironments(options.projectRoot, bundle.env, env),
169
+ env: mergeEnvironments(
170
+ options.projectRoot,
171
+ fromEnvironmentId(bundle.env),
172
+ env,
173
+ ),
163
174
  // Runtime assets should be considered source, as they should be
164
175
  // e.g. compiled to run in the target environment
165
176
  isSource: true,
177
+ symbolData,
166
178
  };
167
179
 
168
180
  let connectionBundle = bundle;
@@ -200,6 +212,7 @@ export default async function applyRuntimes<TResult: RequestResult>({
200
212
  nameRuntimeBundle(connectionBundle, bundle);
201
213
  }
202
214
 
215
+ // @ts-expect-error TS2345
203
216
  connectionMap.get(connectionBundle).push({
204
217
  bundle: connectionBundle,
205
218
  assetGroup,
@@ -208,7 +221,7 @@ export default async function applyRuntimes<TResult: RequestResult>({
208
221
  });
209
222
  }
210
223
  }
211
- } catch (e) {
224
+ } catch (e: any) {
212
225
  throw new ThrowableDiagnostic({
213
226
  diagnostic: errorToDiagnostic(e, {
214
227
  origin: runtime.name,
@@ -238,7 +251,8 @@ export default async function applyRuntimes<TResult: RequestResult>({
238
251
  */
239
252
  let connections: Array<RuntimeConnection> = [];
240
253
  bundleGraph.traverseBundles({
241
- enter(bundle) {
254
+ // @ts-expect-error TS2304
255
+ enter(bundle: Bundle) {
242
256
  connections.push(...connectionMap.get(bundle));
243
257
  },
244
258
  });
@@ -267,6 +281,11 @@ export default async function applyRuntimes<TResult: RequestResult>({
267
281
  let {assetGraph: runtimesAssetGraph, changedAssets} =
268
282
  await reconcileNewRuntimes(api, connections, optionsRef);
269
283
 
284
+ if (getFeatureFlag('skipRuntimeSymbolProp')) {
285
+ // Apply pre-computed symbol data from runtime assets to skip symbol propagation
286
+ applyRuntimeSymbolData(runtimesAssetGraph, connections);
287
+ }
288
+
270
289
  // Convert the runtime AssetGraph into a BundleGraph, this includes assigning
271
290
  // the assets their public ids
272
291
  let runtimesBundleGraph = InternalBundleGraph.fromAssetGraph(
@@ -389,7 +408,94 @@ export default async function applyRuntimes<TResult: RequestResult>({
389
408
  return changedAssets;
390
409
  }
391
410
 
392
- function reconcileNewRuntimes<TResult: RequestResult>(
411
+ /**
412
+ * Apply pre-computed symbol data from runtime assets to the asset graph
413
+ * to avoid running symbol propagation on runtime code we control.
414
+ */
415
+ function applyRuntimeSymbolData(
416
+ assetGraph: AssetGraph,
417
+ connections: Array<RuntimeConnection>,
418
+ ) {
419
+ for (let {assetGroup} of connections) {
420
+ let assetGroupNode = nodeFromAssetGroup(assetGroup);
421
+ let assetGroupAssetNodeIds = assetGraph.getNodeIdsConnectedFrom(
422
+ assetGraph.getNodeIdByContentKey(assetGroupNode.id),
423
+ );
424
+
425
+ if (assetGroupAssetNodeIds.length !== 1) {
426
+ continue;
427
+ }
428
+
429
+ let runtimeAssetNodeId = assetGroupAssetNodeIds[0];
430
+ let runtimeAssetNode = assetGraph.getNode(runtimeAssetNodeId);
431
+ if (!runtimeAssetNode || runtimeAssetNode.type !== 'asset') {
432
+ continue;
433
+ }
434
+
435
+ let symbolData = assetGroup.symbolData;
436
+ if (!symbolData) {
437
+ // We completely skip symbol propagation for runtime assets, so symbolData
438
+ // is required
439
+ throw new Error('Runtime asset is missing symbol data');
440
+ }
441
+
442
+ if (symbolData.symbols) {
443
+ // Convert from SymbolData format to internal Asset.symbols format
444
+ let internalSymbols = new Map();
445
+ for (let [symbol, data] of symbolData.symbols) {
446
+ internalSymbols.set(symbol, {
447
+ local: data.local,
448
+ loc: data.loc || null,
449
+ meta: data.meta,
450
+ });
451
+ }
452
+ runtimeAssetNode.value.symbols = internalSymbols;
453
+ }
454
+
455
+ if (symbolData.dependencies && symbolData.dependencies.length > 0) {
456
+ let outgoingDeps = assetGraph
457
+ .getNodeIdsConnectedFrom(runtimeAssetNodeId)
458
+ .map((id) => assetGraph.getNode(id))
459
+ .filter((node) => node?.type === 'dependency')
460
+ .map((node) => node as DependencyNode);
461
+
462
+ for (let depSymbolData of symbolData.dependencies) {
463
+ let matchingDep = outgoingDeps.find(
464
+ (depNode) => depNode.value.specifier === depSymbolData.specifier,
465
+ );
466
+
467
+ if (matchingDep) {
468
+ if (depSymbolData.symbols) {
469
+ let internalDepSymbols = new Map();
470
+ for (let [symbol, data] of depSymbolData.symbols) {
471
+ internalDepSymbols.set(symbol, {
472
+ local: data.local,
473
+ loc: data.loc || null,
474
+ isWeak: data.isWeak,
475
+ meta: data.meta,
476
+ });
477
+ }
478
+ matchingDep.value.symbols = internalDepSymbols;
479
+ }
480
+
481
+ if (depSymbolData.usedSymbols) {
482
+ matchingDep.usedSymbolsDown = new Set(depSymbolData.usedSymbols);
483
+ // For runtime assets, usedSymbolsUp will be the same as usedSymbolsDown
484
+ // since we know exactly what we're using
485
+ let usedSymbolsUp = new Map();
486
+ for (let symbol of depSymbolData.usedSymbols) {
487
+ // Mark as resolved to external (null) since runtime deps are typically external
488
+ usedSymbolsUp.set(symbol, null);
489
+ }
490
+ matchingDep.usedSymbolsUp = usedSymbolsUp;
491
+ }
492
+ }
493
+ }
494
+ }
495
+ }
496
+ }
497
+
498
+ function reconcileNewRuntimes<TResult extends RequestResult>(
393
499
  api: RunAPI<TResult>,
394
500
  connections: Array<RuntimeConnection>,
395
501
  optionsRef: SharedReference,
@@ -399,6 +505,9 @@ function reconcileNewRuntimes<TResult: RequestResult>(
399
505
  name: 'Runtimes',
400
506
  assetGroups,
401
507
  optionsRef,
508
+ skipSymbolProp:
509
+ getFeatureFlag('skipRuntimeSymbolProp') ||
510
+ getFeatureFlag('rustSymbolTracker'),
402
511
  });
403
512
 
404
513
  // rebuild the graph
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {
4
2
  ASTGenerator,
5
3
  BundleBehavior,
@@ -16,7 +14,6 @@ import type {
16
14
  Asset,
17
15
  RequestInvalidation,
18
16
  Dependency,
19
- Environment,
20
17
  AtlaspackOptions,
21
18
  } from './types';
22
19
 
@@ -32,7 +29,7 @@ import PluginOptions from './public/PluginOptions';
32
29
  import {blobToStream, hashFile} from '@atlaspack/utils';
33
30
  import {hashFromOption, toInternalSourceLocation} from './utils';
34
31
  import {
35
- type ProjectPath,
32
+ ProjectPath,
36
33
  fromProjectPath,
37
34
  fromProjectPathRelative,
38
35
  } from './projectPath';
@@ -40,45 +37,58 @@ import {hashString, createAssetId as createAssetIdRust} from '@atlaspack/rust';
40
37
  import {BundleBehavior as BundleBehaviorMap} from './types';
41
38
  import {PluginTracer} from '@atlaspack/profiler';
42
39
  import {identifierRegistry} from './IdentifierRegistry';
40
+ import type {EnvironmentRef} from './EnvironmentManager';
41
+ import {toEnvironmentId} from './EnvironmentManager';
42
+ import SourceMap from '@atlaspack/source-map';
43
43
 
44
- export type AssetOptions = {|
45
- id?: string,
46
- committed?: boolean,
47
- code: string | void | null,
48
- filePath: ProjectPath,
49
- query?: ?string,
50
- type: string,
51
- contentKey?: ?string,
52
- mapKey?: ?string,
53
- astKey?: ?string,
54
- astGenerator?: ?ASTGenerator,
55
- dependencies?: Map<string, Dependency>,
56
- bundleBehavior?: ?BundleBehavior,
57
- isBundleSplittable?: ?boolean,
58
- isSource: boolean,
59
- env: Environment,
60
- meta?: Meta,
61
- outputHash?: ?string,
62
- pipeline?: ?string,
63
- stats: Stats,
64
- symbols?: ?Map<Symbol, {|local: Symbol, loc: ?SourceLocation, meta?: ?Meta|}>,
65
- sideEffects?: boolean,
66
- uniqueKey?: ?string,
67
- plugin?: PackageName,
68
- configPath?: ProjectPath,
69
- configKeyPath?: string,
70
- |};
44
+ export type AssetOptions = {
45
+ id?: string;
46
+ committed?: boolean;
47
+ code: string | undefined | null;
48
+ filePath: ProjectPath;
49
+ query?: string | null | undefined;
50
+ type: string;
51
+ contentKey?: string | null | undefined;
52
+ mapKey?: string | null | undefined;
53
+ astKey?: string | null | undefined;
54
+ astGenerator?: ASTGenerator | null | undefined;
55
+ dependencies?: Map<string, Dependency>;
56
+ bundleBehavior?: BundleBehavior | null | undefined;
57
+ isBundleSplittable?: boolean | null | undefined;
58
+ isSource: boolean;
59
+ env: EnvironmentRef;
60
+ meta?: Meta;
61
+ outputHash?: string | null | undefined;
62
+ pipeline?: string | null | undefined;
63
+ stats: Stats;
64
+ symbols?:
65
+ | Map<
66
+ symbol,
67
+ {
68
+ local: symbol;
69
+ loc: SourceLocation | null | undefined;
70
+ meta?: Meta | null | undefined;
71
+ }
72
+ >
73
+ | null
74
+ | undefined;
75
+ sideEffects?: boolean;
76
+ uniqueKey?: string | null | undefined;
77
+ plugin?: PackageName;
78
+ configPath?: ProjectPath;
79
+ configKeyPath?: string;
80
+ };
71
81
 
72
82
  export function createAssetIdFromOptions(options: AssetOptions): string {
73
83
  const data = {
74
- environmentId: options.env.id,
84
+ environmentId: toEnvironmentId(options.env),
75
85
  filePath: options.filePath,
76
86
  code: options.code,
77
87
  pipeline: options.pipeline,
78
88
  query: options.query,
79
89
  uniqueKey: options.uniqueKey,
80
90
  fileType: options.type,
81
- };
91
+ } as const;
82
92
  const id = createAssetIdRust(data);
83
93
  identifierRegistry.addIdentifier('asset', id, data);
84
94
  return id;
@@ -112,7 +122,7 @@ export function createAsset(
112
122
  symbols:
113
123
  options.symbols &&
114
124
  new Map(
115
- [...options.symbols].map(([k, v]) => [
125
+ [...options.symbols].map(([k, v]: [any, any]) => [
116
126
  k,
117
127
  {
118
128
  local: v.local,
@@ -149,7 +159,7 @@ async function _generateFromAST(asset: CommittedAsset | UncommittedAsset) {
149
159
  }
150
160
 
151
161
  let pluginName = nullthrows(asset.value.plugin);
152
- let {plugin} = await loadPlugin<Transformer<mixed>>(
162
+ let {plugin} = await loadPlugin<Transformer<unknown>>(
153
163
  pluginName,
154
164
  fromProjectPath(
155
165
  asset.options.projectRoot,
@@ -171,7 +181,7 @@ async function _generateFromAST(asset: CommittedAsset | UncommittedAsset) {
171
181
  tracer: new PluginTracer({origin: pluginName, category: 'asset-generate'}),
172
182
  });
173
183
 
174
- let mapBuffer = map?.toBuffer();
184
+ let mapBuffer = SourceMap.safeToBuffer(map);
175
185
  // Store the results in the cache so we can avoid generating again next time
176
186
  await Promise.all([
177
187
  asset.options.cache.setStream(
@@ -200,6 +210,7 @@ export function getInvalidationId(invalidation: RequestInvalidation): string {
200
210
  case 'option':
201
211
  return 'option:' + invalidation.key;
202
212
  default:
213
+ // @ts-expect-error TS2339
203
214
  throw new Error('Unknown invalidation type: ' + invalidation.type);
204
215
  }
205
216
  }
@@ -240,9 +251,11 @@ export async function getInvalidationHash(
240
251
  break;
241
252
  case 'option':
242
253
  hashes +=
254
+ // @ts-expect-error TS7053
243
255
  invalidation.key + ':' + hashFromOption(options[invalidation.key]);
244
256
  break;
245
257
  default:
258
+ // @ts-expect-error TS2339
246
259
  throw new Error('Unknown invalidation type: ' + invalidation.type);
247
260
  }
248
261
  }