@atlaspack/core 2.16.2-canary.27 → 2.16.2-canary.270

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 (358) hide show
  1. package/CHANGELOG.md +665 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +658 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +108 -0
  6. package/dist/BundleGraph.js +1635 -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 +545 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1360 -0
  16. package/dist/SymbolPropagation.js +620 -0
  17. package/dist/TargetDescriptor.schema.js +143 -0
  18. package/dist/Transformation.js +490 -0
  19. package/dist/UncommittedAsset.js +315 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +305 -0
  22. package/dist/assetUtils.js +168 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +70 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +57 -0
  25. package/dist/atlaspack-v3/fs.js +52 -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 +94 -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 +25 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +76 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-options.js +122 -0
  37. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  38. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  39. package/dist/atlaspack-v3/worker/worker.js +297 -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 +359 -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 +429 -0
  59. package/dist/requests/AssetGraphRequestRust.js +262 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +65 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +445 -0
  64. package/dist/requests/ConfigRequest.js +222 -0
  65. package/dist/requests/DevDepRequest.js +204 -0
  66. package/dist/requests/EntryRequest.js +314 -0
  67. package/dist/requests/PackageRequest.js +62 -0
  68. package/dist/requests/PathRequest.js +349 -0
  69. package/dist/requests/TargetRequest.js +1311 -0
  70. package/dist/requests/ValidationRequest.js +49 -0
  71. package/dist/requests/WriteBundleRequest.js +254 -0
  72. package/dist/requests/WriteBundlesRequest.js +184 -0
  73. package/dist/requests/asset-graph-diff.js +128 -0
  74. package/dist/requests/asset-graph-dot.js +131 -0
  75. package/dist/resolveOptions.js +268 -0
  76. package/dist/rustWorkerThreadDylibHack.js +19 -0
  77. package/dist/serializerCore.browser.js +43 -0
  78. package/dist/summarizeRequest.js +39 -0
  79. package/dist/types.js +31 -0
  80. package/dist/utils.js +172 -0
  81. package/dist/worker.js +123 -0
  82. package/lib/AssetGraph.js +111 -14
  83. package/lib/Atlaspack.js +81 -37
  84. package/lib/AtlaspackConfig.js +15 -3
  85. package/lib/AtlaspackConfig.schema.js +7 -5
  86. package/lib/BundleGraph.js +90 -32
  87. package/lib/CommittedAsset.js +6 -0
  88. package/lib/Dependency.js +8 -2
  89. package/lib/Environment.js +15 -8
  90. package/lib/EnvironmentManager.js +143 -0
  91. package/lib/IdentifierRegistry.js +1 -3
  92. package/lib/InternalConfig.js +3 -2
  93. package/lib/PackagerRunner.js +90 -27
  94. package/lib/ReporterRunner.js +6 -9
  95. package/lib/RequestTracker.js +266 -156
  96. package/lib/SymbolPropagation.js +42 -18
  97. package/lib/TargetDescriptor.schema.js +7 -1
  98. package/lib/Transformation.js +26 -10
  99. package/lib/UncommittedAsset.js +30 -9
  100. package/lib/Validation.js +18 -2
  101. package/lib/applyRuntimes.js +9 -1
  102. package/lib/assetUtils.js +7 -4
  103. package/lib/atlaspack-v3/AtlaspackV3.js +32 -7
  104. package/lib/atlaspack-v3/NapiWorkerPool.js +3 -0
  105. package/lib/atlaspack-v3/fs.js +3 -1
  106. package/lib/atlaspack-v3/index.js +28 -1
  107. package/lib/atlaspack-v3/jsCallable.js +0 -2
  108. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  109. package/lib/atlaspack-v3/worker/compat/bitflags.js +7 -6
  110. package/lib/atlaspack-v3/worker/compat/dependency.js +3 -0
  111. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  112. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +14 -9
  113. package/lib/atlaspack-v3/worker/compat/plugin-config.js +8 -10
  114. package/lib/atlaspack-v3/worker/compat/plugin-options.js +1 -0
  115. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  116. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  117. package/lib/atlaspack-v3/worker/index.js +3 -0
  118. package/lib/atlaspack-v3/worker/worker.js +43 -7
  119. package/lib/constants.js +0 -1
  120. package/lib/dumpGraphToGraphViz.js +71 -16
  121. package/lib/index.js +45 -1
  122. package/lib/loadDotEnv.js +4 -1
  123. package/lib/projectPath.js +5 -0
  124. package/lib/public/Asset.js +21 -11
  125. package/lib/public/Bundle.js +15 -16
  126. package/lib/public/BundleGraph.js +10 -4
  127. package/lib/public/BundleGroup.js +4 -5
  128. package/lib/public/Config.js +118 -17
  129. package/lib/public/Dependency.js +8 -6
  130. package/lib/public/Environment.js +12 -7
  131. package/lib/public/MutableBundleGraph.js +54 -12
  132. package/lib/public/PluginOptions.js +2 -2
  133. package/lib/public/Symbols.js +11 -11
  134. package/lib/public/Target.js +7 -6
  135. package/lib/registerCoreWithSerializer.js +5 -3
  136. package/lib/requests/AssetGraphRequest.js +42 -5
  137. package/lib/requests/AssetGraphRequestRust.js +126 -62
  138. package/lib/requests/AssetRequest.js +23 -6
  139. package/lib/requests/AtlaspackBuildRequest.js +10 -4
  140. package/lib/requests/AtlaspackConfigRequest.js +27 -16
  141. package/lib/requests/BundleGraphRequest.js +34 -19
  142. package/lib/requests/ConfigRequest.js +28 -4
  143. package/lib/requests/DevDepRequest.js +31 -5
  144. package/lib/requests/EntryRequest.js +2 -0
  145. package/lib/requests/PackageRequest.js +2 -1
  146. package/lib/requests/PathRequest.js +24 -3
  147. package/lib/requests/TargetRequest.js +122 -57
  148. package/lib/requests/ValidationRequest.js +5 -1
  149. package/lib/requests/WriteBundleRequest.js +39 -11
  150. package/lib/requests/WriteBundlesRequest.js +51 -4
  151. package/lib/requests/asset-graph-diff.js +12 -7
  152. package/lib/requests/asset-graph-dot.js +1 -7
  153. package/lib/resolveOptions.js +36 -10
  154. package/lib/rustWorkerThreadDylibHack.js +0 -1
  155. package/lib/types/AssetGraph.d.ts +80 -0
  156. package/lib/types/Atlaspack.d.ts +52 -0
  157. package/lib/types/AtlaspackConfig.d.ts +65 -0
  158. package/lib/types/AtlaspackConfig.schema.d.ts +46 -0
  159. package/lib/types/BundleGraph.d.ts +182 -0
  160. package/lib/types/CommittedAsset.d.ts +23 -0
  161. package/lib/types/Dependency.d.ts +44 -0
  162. package/lib/types/Environment.d.ts +11 -0
  163. package/lib/types/EnvironmentManager.d.ts +37 -0
  164. package/lib/types/IdentifierRegistry.d.ts +6 -0
  165. package/lib/types/InternalConfig.d.ts +24 -0
  166. package/lib/types/PackagerRunner.d.ts +85 -0
  167. package/lib/types/ReporterRunner.d.ts +25 -0
  168. package/lib/types/RequestTracker.d.ts +385 -0
  169. package/lib/types/SymbolPropagation.d.ts +11 -0
  170. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  171. package/lib/types/Transformation.d.ts +72 -0
  172. package/lib/types/UncommittedAsset.d.ts +61 -0
  173. package/lib/types/Validation.d.ts +37 -0
  174. package/lib/types/applyRuntimes.d.ts +25 -0
  175. package/lib/types/assetUtils.d.ts +42 -0
  176. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +26 -0
  177. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +12 -0
  178. package/lib/types/atlaspack-v3/fs.d.ts +12 -0
  179. package/lib/types/atlaspack-v3/index.d.ts +5 -0
  180. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  181. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  182. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +15 -0
  183. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  184. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  185. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
  186. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  187. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +37 -0
  188. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
  189. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +22 -0
  190. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  191. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  192. package/lib/types/atlaspack-v3/worker/worker.d.ts +60 -0
  193. package/lib/types/constants.d.ts +13 -0
  194. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  195. package/lib/types/index.d.ts +8 -0
  196. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  197. package/lib/types/loadDotEnv.d.ts +3 -0
  198. package/lib/types/projectPath.d.ts +19 -0
  199. package/lib/types/public/Asset.d.ts +74 -0
  200. package/lib/types/public/Bundle.d.ts +45 -0
  201. package/lib/types/public/BundleGraph.d.ts +70 -0
  202. package/lib/types/public/BundleGroup.d.ts +12 -0
  203. package/lib/types/public/Config.d.ts +75 -0
  204. package/lib/types/public/Dependency.d.ts +32 -0
  205. package/lib/types/public/Environment.d.ts +34 -0
  206. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  207. package/lib/types/public/PluginOptions.d.ts +25 -0
  208. package/lib/types/public/Symbols.d.ts +81 -0
  209. package/lib/types/public/Target.d.ts +16 -0
  210. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  211. package/lib/types/requests/AssetGraphRequest.d.ts +74 -0
  212. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  213. package/lib/types/requests/AssetRequest.d.ts +16 -0
  214. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  215. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  216. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  217. package/lib/types/requests/ConfigRequest.d.ts +59 -0
  218. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  219. package/lib/types/requests/EntryRequest.d.ts +36 -0
  220. package/lib/types/requests/PackageRequest.d.ts +27 -0
  221. package/lib/types/requests/PathRequest.d.ts +48 -0
  222. package/lib/types/requests/TargetRequest.d.ts +48 -0
  223. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  224. package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
  225. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  226. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  227. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  228. package/lib/types/resolveOptions.d.ts +3 -0
  229. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  230. package/lib/types/serializerCore.browser.d.ts +3 -0
  231. package/lib/types/summarizeRequest.d.ts +10 -0
  232. package/lib/types/types.d.ts +493 -0
  233. package/lib/types/utils.d.ts +23 -0
  234. package/lib/types/worker.d.ts +44 -0
  235. package/lib/types.js +8 -1
  236. package/lib/utils.js +17 -2
  237. package/lib/worker.js +29 -13
  238. package/package.json +24 -34
  239. package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
  240. package/src/{Atlaspack.js → Atlaspack.ts} +114 -61
  241. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +16 -19
  242. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  243. package/src/{BundleGraph.js → BundleGraph.ts} +231 -140
  244. package/src/{CommittedAsset.js → CommittedAsset.ts} +14 -12
  245. package/src/{Dependency.js → Dependency.ts} +59 -42
  246. package/src/{Environment.js → Environment.ts} +24 -15
  247. package/src/EnvironmentManager.ts +154 -0
  248. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  249. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  250. package/src/{PackagerRunner.js → PackagerRunner.ts} +178 -86
  251. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  252. package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
  253. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
  254. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  255. package/src/{Transformation.js → Transformation.ts} +71 -62
  256. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +57 -36
  257. package/src/{Validation.js → Validation.ts} +32 -17
  258. package/src/{applyRuntimes.js → applyRuntimes.ts} +35 -26
  259. package/src/{assetUtils.js → assetUtils.ts} +47 -35
  260. package/src/atlaspack-v3/AtlaspackV3.ts +122 -0
  261. package/src/atlaspack-v3/{NapiWorkerPool.js → NapiWorkerPool.ts} +10 -5
  262. package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
  263. package/src/atlaspack-v3/{index.js → index.ts} +2 -4
  264. package/src/atlaspack-v3/jsCallable.ts +14 -0
  265. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  266. package/src/atlaspack-v3/worker/compat/{bitflags.js → bitflags.ts} +9 -10
  267. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +12 -12
  268. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  269. package/src/atlaspack-v3/worker/compat/index.ts +9 -0
  270. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +20 -19
  271. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +27 -26
  272. package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
  273. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +4 -5
  274. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  275. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  276. package/src/atlaspack-v3/worker/index.js +2 -1
  277. package/src/atlaspack-v3/worker/{worker.js → worker.ts} +102 -66
  278. package/src/{constants.js → constants.ts} +0 -3
  279. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  280. package/src/index.ts +18 -0
  281. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  282. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  283. package/src/{projectPath.js → projectPath.ts} +20 -9
  284. package/src/public/{Asset.js → Asset.ts} +40 -27
  285. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  286. package/src/public/{BundleGraph.js → BundleGraph.ts} +81 -50
  287. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  288. package/src/public/{Config.js → Config.ts} +171 -33
  289. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  290. package/src/public/{Environment.js → Environment.ts} +28 -17
  291. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  292. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  293. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  294. package/src/public/{Target.js → Target.ts} +10 -8
  295. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  296. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +84 -49
  297. package/src/requests/AssetGraphRequestRust.ts +352 -0
  298. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  299. package/src/requests/{AtlaspackBuildRequest.js → AtlaspackBuildRequest.ts} +46 -32
  300. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  301. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +71 -58
  302. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +71 -50
  303. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  304. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  305. package/src/requests/{PackageRequest.js → PackageRequest.ts} +20 -22
  306. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  307. package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
  308. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  309. package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
  310. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
  311. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  312. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  313. package/src/{resolveOptions.js → resolveOptions.ts} +56 -24
  314. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  315. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  316. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  317. package/src/types.ts +647 -0
  318. package/src/{utils.js → utils.ts} +52 -21
  319. package/src/{worker.js → worker.ts} +49 -41
  320. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
  321. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  322. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  323. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +75 -15
  324. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  325. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  326. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  327. package/test/Environment.test.ts +153 -0
  328. package/test/EnvironmentManager.test.ts +188 -0
  329. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  330. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  331. package/test/PackagerRunner.test.ts +0 -0
  332. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  333. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  334. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  335. package/test/PublicEnvironment.test.ts +49 -0
  336. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  337. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
  338. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  339. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
  340. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  341. package/test/fixtures/custom-targets/package.json +6 -0
  342. package/test/public/Config.test.ts +104 -0
  343. package/test/requests/{AssetGraphRequestRust.test.js → AssetGraphRequestRust.test.ts} +164 -134
  344. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  345. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  346. package/test/{test-utils.js → test-utils.ts} +4 -11
  347. package/test/{utils.test.js → utils.test.ts} +1 -3
  348. package/tsconfig.json +57 -0
  349. package/tsconfig.tsbuildinfo +1 -0
  350. package/index.d.ts +0 -30
  351. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  352. package/src/atlaspack-v3/jsCallable.js +0 -18
  353. package/src/index.js +0 -13
  354. package/src/requests/AssetGraphRequestRust.js +0 -263
  355. package/src/types.js +0 -600
  356. package/test/Environment.test.js +0 -119
  357. package/test/PackagerRunner.test.js +0 -27
  358. package/test/PublicEnvironment.test.js +0 -27
@@ -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';
@@ -34,13 +32,14 @@ import {createDevDependency, runDevDepRequest} from './requests/DevDepRequest';
34
32
  import {toProjectPath, fromProjectPathRelative} from './projectPath';
35
33
  import {tracer, PluginTracer} from '@atlaspack/profiler';
36
34
  import {DefaultMap} from '@atlaspack/utils';
35
+ import {fromEnvironmentId} from './EnvironmentManager';
37
36
 
38
- type RuntimeConnection = {|
39
- bundle: InternalBundle,
40
- assetGroup: AssetGroup,
41
- dependency: ?Dependency,
42
- isEntry: ?boolean,
43
- |};
37
+ type RuntimeConnection = {
38
+ bundle: InternalBundle;
39
+ assetGroup: AssetGroup;
40
+ dependency: Dependency | null | undefined;
41
+ isEntry: boolean | null | undefined;
42
+ };
44
43
 
45
44
  function nameRuntimeBundle(
46
45
  bundle: InternalBundle,
@@ -70,7 +69,7 @@ function nameRuntimeBundle(
70
69
  * Introduction of manifest bundles: https://github.com/parcel-bundler/parcel/pull/8837
71
70
  * Introduction of reverse topology: https://github.com/parcel-bundler/parcel/pull/8981
72
71
  */
73
- export default async function applyRuntimes<TResult: RequestResult>({
72
+ export default async function applyRuntimes<TResult extends RequestResult>({
74
73
  bundleGraph,
75
74
  config,
76
75
  options,
@@ -80,17 +79,17 @@ export default async function applyRuntimes<TResult: RequestResult>({
80
79
  previousDevDeps,
81
80
  devDepRequests,
82
81
  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>> {
82
+ }: {
83
+ bundleGraph: InternalBundleGraph;
84
+ config: AtlaspackConfig;
85
+ options: AtlaspackOptions;
86
+ optionsRef: SharedReference;
87
+ pluginOptions: PluginOptions;
88
+ api: RunAPI<TResult>;
89
+ previousDevDeps: Map<string, string>;
90
+ devDepRequests: Map<string, DevDepRequest | DevDepRequestRef>;
91
+ configs: Map<string, Config>;
92
+ }): Promise<Map<string, Asset>> {
94
93
  let runtimes = await config.getRuntimes();
95
94
 
96
95
  /**
@@ -106,9 +105,11 @@ export default async function applyRuntimes<TResult: RequestResult>({
106
105
  * order), so that children will always be available when parents try to reference
107
106
  * them.
108
107
  */
109
- let bundles = [];
108
+ // @ts-expect-error TS2304
109
+ let bundles: Array<Bundle> = [];
110
110
  bundleGraph.traverseBundles({
111
- exit(bundle) {
111
+ // @ts-expect-error TS2304
112
+ exit(bundle: Bundle) {
112
113
  bundles.push(bundle);
113
114
  },
114
115
  });
@@ -149,6 +150,7 @@ export default async function applyRuntimes<TResult: RequestResult>({
149
150
  filePath,
150
151
  isEntry,
151
152
  env,
153
+ runtimeAssetRequiringExecutionOnLoad,
152
154
  priority,
153
155
  } of runtimeAssets) {
154
156
  let sourceName = path.join(
@@ -158,8 +160,13 @@ export default async function applyRuntimes<TResult: RequestResult>({
158
160
 
159
161
  let assetGroup = {
160
162
  code,
163
+ runtimeAssetRequiringExecutionOnLoad,
161
164
  filePath: toProjectPath(options.projectRoot, sourceName),
162
- env: mergeEnvironments(options.projectRoot, bundle.env, env),
165
+ env: mergeEnvironments(
166
+ options.projectRoot,
167
+ fromEnvironmentId(bundle.env),
168
+ env,
169
+ ),
163
170
  // Runtime assets should be considered source, as they should be
164
171
  // e.g. compiled to run in the target environment
165
172
  isSource: true,
@@ -200,6 +207,7 @@ export default async function applyRuntimes<TResult: RequestResult>({
200
207
  nameRuntimeBundle(connectionBundle, bundle);
201
208
  }
202
209
 
210
+ // @ts-expect-error TS2345
203
211
  connectionMap.get(connectionBundle).push({
204
212
  bundle: connectionBundle,
205
213
  assetGroup,
@@ -208,7 +216,7 @@ export default async function applyRuntimes<TResult: RequestResult>({
208
216
  });
209
217
  }
210
218
  }
211
- } catch (e) {
219
+ } catch (e: any) {
212
220
  throw new ThrowableDiagnostic({
213
221
  diagnostic: errorToDiagnostic(e, {
214
222
  origin: runtime.name,
@@ -238,7 +246,8 @@ export default async function applyRuntimes<TResult: RequestResult>({
238
246
  */
239
247
  let connections: Array<RuntimeConnection> = [];
240
248
  bundleGraph.traverseBundles({
241
- enter(bundle) {
249
+ // @ts-expect-error TS2304
250
+ enter(bundle: Bundle) {
242
251
  connections.push(...connectionMap.get(bundle));
243
252
  },
244
253
  });
@@ -389,7 +398,7 @@ export default async function applyRuntimes<TResult: RequestResult>({
389
398
  return changedAssets;
390
399
  }
391
400
 
392
- function reconcileNewRuntimes<TResult: RequestResult>(
401
+ function reconcileNewRuntimes<TResult extends RequestResult>(
393
402
  api: RunAPI<TResult>,
394
403
  connections: Array<RuntimeConnection>,
395
404
  optionsRef: SharedReference,
@@ -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,57 @@ 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';
43
42
 
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
- |};
43
+ export type AssetOptions = {
44
+ id?: string;
45
+ committed?: boolean;
46
+ code: string | undefined | null;
47
+ filePath: ProjectPath;
48
+ query?: string | null | undefined;
49
+ type: string;
50
+ contentKey?: string | null | undefined;
51
+ mapKey?: string | null | undefined;
52
+ astKey?: string | null | undefined;
53
+ astGenerator?: ASTGenerator | null | undefined;
54
+ dependencies?: Map<string, Dependency>;
55
+ bundleBehavior?: BundleBehavior | null | undefined;
56
+ isBundleSplittable?: boolean | null | undefined;
57
+ isSource: boolean;
58
+ env: EnvironmentRef;
59
+ meta?: Meta;
60
+ outputHash?: string | null | undefined;
61
+ pipeline?: string | null | undefined;
62
+ stats: Stats;
63
+ symbols?:
64
+ | Map<
65
+ symbol,
66
+ {
67
+ local: symbol;
68
+ loc: SourceLocation | null | undefined;
69
+ meta?: Meta | null | undefined;
70
+ }
71
+ >
72
+ | null
73
+ | undefined;
74
+ sideEffects?: boolean;
75
+ uniqueKey?: string | null | undefined;
76
+ plugin?: PackageName;
77
+ configPath?: ProjectPath;
78
+ configKeyPath?: string;
79
+ };
71
80
 
72
81
  export function createAssetIdFromOptions(options: AssetOptions): string {
73
82
  const data = {
74
- environmentId: options.env.id,
83
+ environmentId: toEnvironmentId(options.env),
75
84
  filePath: options.filePath,
76
85
  code: options.code,
77
86
  pipeline: options.pipeline,
78
87
  query: options.query,
79
88
  uniqueKey: options.uniqueKey,
80
89
  fileType: options.type,
81
- };
90
+ } as const;
82
91
  const id = createAssetIdRust(data);
83
92
  identifierRegistry.addIdentifier('asset', id, data);
84
93
  return id;
@@ -112,7 +121,7 @@ export function createAsset(
112
121
  symbols:
113
122
  options.symbols &&
114
123
  new Map(
115
- [...options.symbols].map(([k, v]) => [
124
+ [...options.symbols].map(([k, v]: [any, any]) => [
116
125
  k,
117
126
  {
118
127
  local: v.local,
@@ -149,7 +158,7 @@ async function _generateFromAST(asset: CommittedAsset | UncommittedAsset) {
149
158
  }
150
159
 
151
160
  let pluginName = nullthrows(asset.value.plugin);
152
- let {plugin} = await loadPlugin<Transformer<mixed>>(
161
+ let {plugin} = await loadPlugin<Transformer<unknown>>(
153
162
  pluginName,
154
163
  fromProjectPath(
155
164
  asset.options.projectRoot,
@@ -200,6 +209,7 @@ export function getInvalidationId(invalidation: RequestInvalidation): string {
200
209
  case 'option':
201
210
  return 'option:' + invalidation.key;
202
211
  default:
212
+ // @ts-expect-error TS2339
203
213
  throw new Error('Unknown invalidation type: ' + invalidation.type);
204
214
  }
205
215
  }
@@ -240,9 +250,11 @@ export async function getInvalidationHash(
240
250
  break;
241
251
  case 'option':
242
252
  hashes +=
253
+ // @ts-expect-error TS7053
243
254
  invalidation.key + ':' + hashFromOption(options[invalidation.key]);
244
255
  break;
245
256
  default:
257
+ // @ts-expect-error TS2339
246
258
  throw new Error('Unknown invalidation type: ' + invalidation.type);
247
259
  }
248
260
  }
@@ -0,0 +1,122 @@
1
+ import {
2
+ atlaspackNapiCreate,
3
+ atlaspackNapiBuildAssetGraph,
4
+ atlaspackNapiRespondToFsEvents,
5
+ AtlaspackNapi,
6
+ Lmdb,
7
+ AtlaspackNapiOptions,
8
+ } from '@atlaspack/rust';
9
+ import {NapiWorkerPool} from './NapiWorkerPool';
10
+ import ThrowableDiagnostic from '@atlaspack/diagnostic';
11
+ import type {Event} from '@parcel/watcher';
12
+ import type {NapiWorkerPool as INapiWorkerPool} from '@atlaspack/types';
13
+
14
+ export type AtlaspackV3Options = {
15
+ fs?: AtlaspackNapiOptions['fs'];
16
+ packageManager?: AtlaspackNapiOptions['packageManager'];
17
+ threads?: number;
18
+ /**
19
+ * A reference to LMDB lite's rust object
20
+ */
21
+ lmdb: Lmdb;
22
+ featureFlags?: {
23
+ [key: string]: string | boolean;
24
+ };
25
+ napiWorkerPool?: INapiWorkerPool;
26
+ } & AtlaspackNapiOptions['options'];
27
+
28
+ export class AtlaspackV3 {
29
+ _atlaspack_napi: AtlaspackNapi;
30
+ _napiWorkerPool: INapiWorkerPool;
31
+ _isDefaultNapiWorkerPool: boolean;
32
+
33
+ constructor(
34
+ atlaspack_napi: AtlaspackNapi,
35
+ napiWorkerPool: INapiWorkerPool,
36
+ isDefaultNapiWorkerPool: boolean,
37
+ ) {
38
+ this._atlaspack_napi = atlaspack_napi;
39
+ this._napiWorkerPool = napiWorkerPool;
40
+ this._isDefaultNapiWorkerPool = isDefaultNapiWorkerPool;
41
+ }
42
+
43
+ static async create({
44
+ fs,
45
+ packageManager,
46
+ threads,
47
+ lmdb,
48
+ napiWorkerPool,
49
+ ...options
50
+ }: AtlaspackV3Options): Promise<AtlaspackV3> {
51
+ // @ts-expect-error TS2339
52
+ options.logLevel = options.logLevel || 'error';
53
+ // @ts-expect-error TS2339
54
+ options.defaultTargetOptions = options.defaultTargetOptions || {};
55
+ // @ts-expect-error TS2339
56
+ options.defaultTargetOptions.engines =
57
+ // @ts-expect-error TS2339
58
+ options.defaultTargetOptions.engines || {};
59
+
60
+ let isDefaultNapiWorkerPool = false;
61
+ if (!napiWorkerPool) {
62
+ napiWorkerPool = new NapiWorkerPool();
63
+ isDefaultNapiWorkerPool = true;
64
+ }
65
+
66
+ // @ts-expect-error TS2488
67
+ const [internal, error] = await atlaspackNapiCreate(
68
+ {
69
+ fs,
70
+ packageManager,
71
+ threads,
72
+ options,
73
+ napiWorkerPool,
74
+ },
75
+ lmdb,
76
+ );
77
+
78
+ if (error !== null) {
79
+ throw new ThrowableDiagnostic({
80
+ diagnostic: error,
81
+ });
82
+ }
83
+
84
+ return new AtlaspackV3(internal, napiWorkerPool, isDefaultNapiWorkerPool);
85
+ }
86
+
87
+ end(): void {
88
+ // If the worker pool was provided to us, don't shut it down, it's up to the provider.
89
+ if (this._isDefaultNapiWorkerPool) {
90
+ this._napiWorkerPool.shutdown();
91
+ }
92
+ }
93
+
94
+ async buildAssetGraph(): Promise<any> {
95
+ // @ts-expect-error TS2488
96
+ let [graph, error] = await atlaspackNapiBuildAssetGraph(
97
+ this._atlaspack_napi,
98
+ );
99
+
100
+ if (error !== null) {
101
+ throw new ThrowableDiagnostic({
102
+ diagnostic: error,
103
+ });
104
+ }
105
+
106
+ return graph;
107
+ }
108
+
109
+ async respondToFsEvents(events: Array<Event>): Promise<boolean> {
110
+ // @ts-expect-error TS2488
111
+ let [needsRebuild, error] = await atlaspackNapiRespondToFsEvents(
112
+ this._atlaspack_napi,
113
+ events,
114
+ );
115
+
116
+ if (error) {
117
+ throw new Error(error);
118
+ }
119
+
120
+ return needsRebuild;
121
+ }
122
+ }
@@ -1,8 +1,8 @@
1
- // @flow
2
1
  import type {NapiWorkerPool as INapiWorkerPool} from '@atlaspack/types';
3
2
  import {Worker} from 'worker_threads';
4
3
  import path from 'path';
5
4
  import process from 'process';
5
+ // @ts-expect-error TS2724
6
6
  import type {Transferable} from '@atlaspack/rust';
7
7
  import {getAvailableThreads} from '@atlaspack/rust';
8
8
 
@@ -11,9 +11,9 @@ const ATLASPACK_NAPI_WORKERS =
11
11
  process.env.ATLASPACK_NAPI_WORKERS &&
12
12
  parseInt(process.env.ATLASPACK_NAPI_WORKERS, 10);
13
13
 
14
- export type NapiWorkerPoolOptions = {|
15
- workerCount?: number,
16
- |};
14
+ export type NapiWorkerPoolOptions = {
15
+ workerCount?: number;
16
+ };
17
17
 
18
18
  export class NapiWorkerPool implements INapiWorkerPool {
19
19
  #workers: Worker[];
@@ -21,6 +21,7 @@ export class NapiWorkerPool implements INapiWorkerPool {
21
21
  #workerCount: number;
22
22
 
23
23
  constructor({workerCount}: NapiWorkerPoolOptions = {workerCount: undefined}) {
24
+ // @ts-expect-error TS2322
24
25
  this.#workerCount =
25
26
  workerCount ?? ATLASPACK_NAPI_WORKERS ?? getAvailableThreads();
26
27
  if (!this.#workerCount) {
@@ -33,7 +34,11 @@ export class NapiWorkerPool implements INapiWorkerPool {
33
34
  for (let i = 0; i < this.#workerCount; i++) {
34
35
  let worker = new Worker(WORKER_PATH);
35
36
  this.#workers.push(worker);
36
- this.#napiWorkers.push(new Promise((res) => worker.once('message', res)));
37
+ this.#napiWorkers.push(
38
+ new Promise((res: (result: Promise<never>) => void) =>
39
+ worker.once('message', res),
40
+ ),
41
+ );
37
42
  }
38
43
  }
39
44
 
@@ -1,5 +1,4 @@
1
- // @flow strict-local
2
-
1
+ // @ts-expect-error TS2305
3
2
  import type {FileSystem, JsCallable} from '@atlaspack/rust';
4
3
  import type {
5
4
  Encoding,
@@ -9,6 +8,7 @@ import type {
9
8
 
10
9
  import {jsCallable} from './jsCallable';
11
10
 
11
+ // @ts-expect-error TS2420
12
12
  export class FileSystemV3 implements FileSystem {
13
13
  #fs: IFileSystem;
14
14
 
@@ -20,7 +20,7 @@ export class FileSystemV3 implements FileSystem {
20
20
  (path: FilePath) => this.#fs.realpathSync(path),
21
21
  );
22
22
 
23
- createDirectory: JsCallable<[FilePath], Promise<void>> = jsCallable(
23
+ createDirectory: JsCallable<[FilePath], Promise<undefined>> = jsCallable(
24
24
  (path: FilePath) => this.#fs.mkdirp(path),
25
25
  );
26
26
 
@@ -45,7 +45,6 @@ export class FileSystemV3 implements FileSystem {
45
45
  readFile: JsCallable<[FilePath, Encoding], string> = jsCallable(
46
46
  (path: string, encoding?: Encoding) => {
47
47
  if (!encoding) {
48
- // $FlowFixMe
49
48
  return [...this.#fs.readFileSync(path)];
50
49
  } else {
51
50
  return this.#fs.readFileSync(path, encoding);
@@ -1,7 +1,5 @@
1
- // @flow
2
-
3
1
  export {FileSystemV3} from './fs';
4
2
  export {AtlaspackV3} from './AtlaspackV3';
5
3
  export {NapiWorkerPool} from './NapiWorkerPool';
6
- export type * from './AtlaspackV3';
7
- export type * from './NapiWorkerPool';
4
+ export * from './AtlaspackV3';
5
+ export * from './NapiWorkerPool';
@@ -0,0 +1,14 @@
1
+ export function jsCallable<Args extends ReadonlyArray<unknown>, Return>(
2
+ fn: (...rest: Args) => Return | Promise<Return>,
3
+ ): (...rest: Args) => Promise<Return> {
4
+ return async (...args: Args): Promise<Return> => {
5
+ try {
6
+ // Promises and is safe to use on non-promises
7
+ return await fn(...args);
8
+ } catch (error: any) {
9
+ // eslint-disable-next-line no-console
10
+ console.error(error);
11
+ throw error;
12
+ }
13
+ };
14
+ }
@@ -1,5 +1,3 @@
1
- // @flow
2
-
3
1
  import type {Symbol as NapiSymbol} from '@atlaspack/rust';
4
2
  import type {
5
3
  AssetSymbols as IAssetSymbols,
@@ -18,7 +16,7 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
18
16
  return this.#symbols.size === 0;
19
17
  }
20
18
 
21
- constructor(inner: ?(NapiSymbol[]) | null) {
19
+ constructor(inner: NapiSymbol[] | null | undefined | null) {
22
20
  this.#symbols = new Map();
23
21
  this.#locals = new Set();
24
22
  for (const {exported, local, loc, isWeak} of inner || []) {
@@ -30,7 +28,7 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
30
28
  throw new Error('MutableDependencySymbols.ensure()');
31
29
  }
32
30
 
33
- get(exportSymbol: Symbol): ?DependencyAssetSymbol {
31
+ get(exportSymbol: Symbol): DependencyAssetSymbol | null | undefined {
34
32
  return this.#symbols.get(exportSymbol);
35
33
  }
36
34
 
@@ -49,8 +47,8 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
49
47
  set(
50
48
  exportSymbol: Symbol,
51
49
  local: Symbol,
52
- loc: ?SourceLocation,
53
- isWeak: ?boolean,
50
+ loc?: SourceLocation | null,
51
+ isWeak?: boolean | null,
54
52
  ): void {
55
53
  this.#locals.add(local);
56
54
  this.#symbols.set(exportSymbol, {
@@ -69,7 +67,7 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
69
67
  }
70
68
 
71
69
  /*:: @@iterator(): Iterator<[Symbol, DependencyAssetSymbol]> { return ({}: any); } */
72
- // $FlowFixMe Flow can't do computed properties
70
+ // @ts-expect-error TS2416
73
71
  [Symbol.iterator]() {
74
72
  return this.#symbols.values();
75
73
  }
@@ -83,7 +81,7 @@ export class AssetSymbols implements IAssetSymbols {
83
81
  return this.#symbols.size === 0;
84
82
  }
85
83
 
86
- constructor(inner: ?(NapiSymbol[]) | null) {
84
+ constructor(inner: NapiSymbol[] | null | undefined | null) {
87
85
  this.#symbols = new Map();
88
86
  this.#locals = new Set();
89
87
  for (const {exported, local, loc} of inner || []) {
@@ -91,7 +89,11 @@ export class AssetSymbols implements IAssetSymbols {
91
89
  }
92
90
  }
93
91
 
94
- #set(exportSymbol: Symbol, local: Symbol, loc: ?SourceLocation): void {
92
+ #set(
93
+ exportSymbol: Symbol,
94
+ local: Symbol,
95
+ loc?: SourceLocation | null,
96
+ ): undefined {
95
97
  this.#locals.add(local);
96
98
  this.#symbols.set(exportSymbol, {
97
99
  local,
@@ -100,7 +102,7 @@ export class AssetSymbols implements IAssetSymbols {
100
102
  });
101
103
  }
102
104
 
103
- get(exportSymbol: Symbol): ?AssetSymbol {
105
+ get(exportSymbol: Symbol): AssetSymbol | null | undefined {
104
106
  return this.#symbols.get(exportSymbol);
105
107
  }
106
108
 
@@ -121,7 +123,7 @@ export class AssetSymbols implements IAssetSymbols {
121
123
  }
122
124
 
123
125
  /*:: @@iterator(): Iterator<[Symbol, AssetSymbol]> { return ({}: any); } */
124
- // $FlowFixMe Flow can't do computed properties
126
+ // @ts-expect-error TS2416
125
127
  [Symbol.iterator]() {
126
128
  return this.#symbols.values();
127
129
  }
@@ -135,13 +137,20 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
135
137
  return this.#symbols.size === 0;
136
138
  }
137
139
 
138
- constructor(inner: ?(NapiSymbol[]) | null) {
140
+ constructor(inner: NapiSymbol[] | null | undefined | null) {
139
141
  this.#symbols = new Map();
140
142
  this.#locals = new Set();
141
- for (const {exported, loc, local, isEsmExport, selfReferenced} of inner ||
142
- []) {
143
+ for (const {
144
+ exported,
145
+ loc,
146
+ local,
147
+ isEsmExport,
148
+ selfReferenced,
149
+ isStaticBindingSafe,
150
+ } of inner || []) {
143
151
  this.set(exported, local, loc, {
144
152
  isEsm: isEsmExport,
153
+ isStaticBindingSafe,
145
154
  selfReferenced,
146
155
  });
147
156
  }
@@ -167,6 +176,7 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
167
176
  }
168
177
  : undefined,
169
178
  isEsmExport: Boolean(meta?.isEsm),
179
+ isStaticBindingSafe: Boolean(meta?.isStaticBindingSafe),
170
180
  isWeak: false,
171
181
  selfReferenced: Boolean(meta?.selfReferenced),
172
182
  });
@@ -181,8 +191,8 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
181
191
  set(
182
192
  exportSymbol: Symbol,
183
193
  local: Symbol,
184
- loc: ?SourceLocation,
185
- meta: ?Meta,
194
+ loc?: SourceLocation | null,
195
+ meta?: Meta | null,
186
196
  ): void {
187
197
  this.#locals.add(local);
188
198
  this.#symbols.set(exportSymbol, {
@@ -192,7 +202,7 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
192
202
  });
193
203
  }
194
204
 
195
- get(exportSymbol: Symbol): ?AssetSymbol {
205
+ get(exportSymbol: Symbol): AssetSymbol | null | undefined {
196
206
  return this.#symbols.get(exportSymbol);
197
207
  }
198
208
 
@@ -216,21 +226,21 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
216
226
  }
217
227
 
218
228
  /*:: @@iterator(): Iterator<[Symbol, AssetSymbol]> { return ({}: any); } */
219
- // $FlowFixMe Flow can't do computed properties
229
+ // @ts-expect-error TS2416
220
230
  [Symbol.iterator]() {
221
231
  return this.#symbols.values();
222
232
  }
223
233
  }
224
234
 
225
- export type AssetSymbol = {|
226
- local: Symbol,
227
- loc: ?SourceLocation,
228
- meta?: ?Meta,
229
- |};
230
-
231
- export type DependencyAssetSymbol = {|
232
- local: Symbol,
233
- loc: ?SourceLocation,
234
- meta?: ?Meta,
235
- isWeak: boolean,
236
- |};
235
+ export type AssetSymbol = {
236
+ local: Symbol;
237
+ loc: SourceLocation | null | undefined;
238
+ meta?: Meta | null | undefined;
239
+ };
240
+
241
+ export type DependencyAssetSymbol = {
242
+ local: Symbol;
243
+ loc: SourceLocation | null | undefined;
244
+ meta?: Meta | null | undefined;
245
+ isWeak: boolean;
246
+ };