@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
@@ -69,9 +69,16 @@ function _utils() {
69
69
  };
70
70
  return data;
71
71
  }
72
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
73
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
74
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
72
+ var _EnvironmentManager = require("./EnvironmentManager");
73
+ function _featureFlags() {
74
+ const data = require("@atlaspack/feature-flags");
75
+ _featureFlags = function () {
76
+ return data;
77
+ };
78
+ return data;
79
+ }
80
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
81
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
75
82
  function nameRuntimeBundle(bundle, siblingBundle) {
76
83
  // We don't run custom namers on runtime bundles as the runtime assumes that they are
77
84
  // located at the same nesting level as their owning bundle. Custom naming could
@@ -123,8 +130,10 @@ async function applyRuntimes({
123
130
  * order), so that children will always be available when parents try to reference
124
131
  * them.
125
132
  */
133
+ // @ts-expect-error TS2304
126
134
  let bundles = [];
127
135
  bundleGraph.traverseBundles({
136
+ // @ts-expect-error TS2304
128
137
  exit(bundle) {
129
138
  bundles.push(bundle);
130
139
  }
@@ -158,16 +167,20 @@ async function applyRuntimes({
158
167
  filePath,
159
168
  isEntry,
160
169
  env,
161
- priority
170
+ runtimeAssetRequiringExecutionOnLoad,
171
+ priority,
172
+ symbolData
162
173
  } of runtimeAssets) {
163
174
  let sourceName = _path().default.join(_path().default.dirname(filePath), `runtime-${(0, _rust().hashString)(code)}.${bundle.type}`);
164
175
  let assetGroup = {
165
176
  code,
177
+ runtimeAssetRequiringExecutionOnLoad,
166
178
  filePath: (0, _projectPath.toProjectPath)(options.projectRoot, sourceName),
167
- env: (0, _Environment.mergeEnvironments)(options.projectRoot, bundle.env, env),
179
+ env: (0, _Environment.mergeEnvironments)(options.projectRoot, (0, _EnvironmentManager.fromEnvironmentId)(bundle.env), env),
168
180
  // Runtime assets should be considered source, as they should be
169
181
  // e.g. compiled to run in the target environment
170
- isSource: true
182
+ isSource: true,
183
+ symbolData
171
184
  };
172
185
  let connectionBundle = bundle;
173
186
 
@@ -195,6 +208,8 @@ async function applyRuntimes({
195
208
  // been named as this point.
196
209
  nameRuntimeBundle(connectionBundle, bundle);
197
210
  }
211
+
212
+ // @ts-expect-error TS2345
198
213
  connectionMap.get(connectionBundle).push({
199
214
  bundle: connectionBundle,
200
215
  assetGroup,
@@ -233,6 +248,7 @@ async function applyRuntimes({
233
248
  */
234
249
  let connections = [];
235
250
  bundleGraph.traverseBundles({
251
+ // @ts-expect-error TS2304
236
252
  enter(bundle) {
237
253
  connections.push(...connectionMap.get(bundle));
238
254
  }
@@ -254,6 +270,10 @@ async function applyRuntimes({
254
270
  assetGraph: runtimesAssetGraph,
255
271
  changedAssets
256
272
  } = await reconcileNewRuntimes(api, connections, optionsRef);
273
+ if ((0, _featureFlags().getFeatureFlag)('skipRuntimeSymbolProp')) {
274
+ // Apply pre-computed symbol data from runtime assets to skip symbol propagation
275
+ applyRuntimeSymbolData(runtimesAssetGraph, connections);
276
+ }
257
277
 
258
278
  // Convert the runtime AssetGraph into a BundleGraph, this includes assigning
259
279
  // the assets their public ids
@@ -340,12 +360,83 @@ async function applyRuntimes({
340
360
  }
341
361
  return changedAssets;
342
362
  }
363
+
364
+ /**
365
+ * Apply pre-computed symbol data from runtime assets to the asset graph
366
+ * to avoid running symbol propagation on runtime code we control.
367
+ */
368
+ function applyRuntimeSymbolData(assetGraph, connections) {
369
+ for (let {
370
+ assetGroup
371
+ } of connections) {
372
+ let assetGroupNode = (0, _AssetGraph.nodeFromAssetGroup)(assetGroup);
373
+ let assetGroupAssetNodeIds = assetGraph.getNodeIdsConnectedFrom(assetGraph.getNodeIdByContentKey(assetGroupNode.id));
374
+ if (assetGroupAssetNodeIds.length !== 1) {
375
+ continue;
376
+ }
377
+ let runtimeAssetNodeId = assetGroupAssetNodeIds[0];
378
+ let runtimeAssetNode = assetGraph.getNode(runtimeAssetNodeId);
379
+ if (!runtimeAssetNode || runtimeAssetNode.type !== 'asset') {
380
+ continue;
381
+ }
382
+ let symbolData = assetGroup.symbolData;
383
+ if (!symbolData) {
384
+ // We completely skip symbol propagation for runtime assets, so symbolData
385
+ // is required
386
+ throw new Error('Runtime asset is missing symbol data');
387
+ }
388
+ if (symbolData.symbols) {
389
+ // Convert from SymbolData format to internal Asset.symbols format
390
+ let internalSymbols = new Map();
391
+ for (let [symbol, data] of symbolData.symbols) {
392
+ internalSymbols.set(symbol, {
393
+ local: data.local,
394
+ loc: data.loc || null,
395
+ meta: data.meta
396
+ });
397
+ }
398
+ runtimeAssetNode.value.symbols = internalSymbols;
399
+ }
400
+ if (symbolData.dependencies && symbolData.dependencies.length > 0) {
401
+ let outgoingDeps = assetGraph.getNodeIdsConnectedFrom(runtimeAssetNodeId).map(id => assetGraph.getNode(id)).filter(node => (node === null || node === void 0 ? void 0 : node.type) === 'dependency').map(node => node);
402
+ for (let depSymbolData of symbolData.dependencies) {
403
+ let matchingDep = outgoingDeps.find(depNode => depNode.value.specifier === depSymbolData.specifier);
404
+ if (matchingDep) {
405
+ if (depSymbolData.symbols) {
406
+ let internalDepSymbols = new Map();
407
+ for (let [symbol, data] of depSymbolData.symbols) {
408
+ internalDepSymbols.set(symbol, {
409
+ local: data.local,
410
+ loc: data.loc || null,
411
+ isWeak: data.isWeak,
412
+ meta: data.meta
413
+ });
414
+ }
415
+ matchingDep.value.symbols = internalDepSymbols;
416
+ }
417
+ if (depSymbolData.usedSymbols) {
418
+ matchingDep.usedSymbolsDown = new Set(depSymbolData.usedSymbols);
419
+ // For runtime assets, usedSymbolsUp will be the same as usedSymbolsDown
420
+ // since we know exactly what we're using
421
+ let usedSymbolsUp = new Map();
422
+ for (let symbol of depSymbolData.usedSymbols) {
423
+ // Mark as resolved to external (null) since runtime deps are typically external
424
+ usedSymbolsUp.set(symbol, null);
425
+ }
426
+ matchingDep.usedSymbolsUp = usedSymbolsUp;
427
+ }
428
+ }
429
+ }
430
+ }
431
+ }
432
+ }
343
433
  function reconcileNewRuntimes(api, connections, optionsRef) {
344
434
  let assetGroups = connections.map(t => t.assetGroup);
345
435
  let request = (0, _AssetGraphRequest.default)({
346
436
  name: 'Runtimes',
347
437
  assetGroups,
348
- optionsRef
438
+ optionsRef,
439
+ skipSymbolProp: (0, _featureFlags().getFeatureFlag)('skipRuntimeSymbolProp') || (0, _featureFlags().getFeatureFlag)('rustSymbolTracker')
349
440
  });
350
441
 
351
442
  // rebuild the graph
package/lib/assetUtils.js CHANGED
@@ -36,8 +36,6 @@ function _nullthrows() {
36
36
  };
37
37
  return data;
38
38
  }
39
- var _CommittedAsset = _interopRequireDefault(require("./CommittedAsset"));
40
- var _UncommittedAsset = _interopRequireDefault(require("./UncommittedAsset"));
41
39
  var _loadAtlaspackPlugin = _interopRequireDefault(require("./loadAtlaspackPlugin"));
42
40
  var _Asset = require("./public/Asset");
43
41
  var _PluginOptions = _interopRequireDefault(require("./public/PluginOptions"));
@@ -66,10 +64,18 @@ function _profiler() {
66
64
  return data;
67
65
  }
68
66
  var _IdentifierRegistry = require("./IdentifierRegistry");
69
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
67
+ var _EnvironmentManager = require("./EnvironmentManager");
68
+ function _sourceMap() {
69
+ const data = _interopRequireDefault(require("@atlaspack/source-map"));
70
+ _sourceMap = function () {
71
+ return data;
72
+ };
73
+ return data;
74
+ }
75
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
70
76
  function createAssetIdFromOptions(options) {
71
77
  const data = {
72
- environmentId: options.env.id,
78
+ environmentId: (0, _EnvironmentManager.toEnvironmentId)(options.env),
73
79
  filePath: options.filePath,
74
80
  code: options.code,
75
81
  pipeline: options.pipeline,
@@ -151,7 +157,7 @@ async function _generateFromAST(asset) {
151
157
  category: 'asset-generate'
152
158
  })
153
159
  });
154
- let mapBuffer = map === null || map === void 0 ? void 0 : map.toBuffer();
160
+ let mapBuffer = _sourceMap().default.safeToBuffer(map);
155
161
  // Store the results in the cache so we can avoid generating again next time
156
162
  await Promise.all([asset.options.cache.setStream((0, _nullthrows().default)(asset.value.contentKey), (0, _utils().blobToStream)(content)), mapBuffer != null && asset.options.cache.setBlob((0, _nullthrows().default)(asset.value.mapKey), mapBuffer)]);
157
163
  return {
@@ -168,6 +174,7 @@ function getInvalidationId(invalidation) {
168
174
  case 'option':
169
175
  return 'option:' + invalidation.key;
170
176
  default:
177
+ // @ts-expect-error TS2339
171
178
  throw new Error('Unknown invalidation type: ' + invalidation.type);
172
179
  }
173
180
  }
@@ -195,9 +202,12 @@ async function getInvalidationHash(invalidations, options) {
195
202
  hashes += invalidation.key + ':' + (options.env[invalidation.key] || '');
196
203
  break;
197
204
  case 'option':
198
- hashes += invalidation.key + ':' + (0, _utils2.hashFromOption)(options[invalidation.key]);
205
+ hashes +=
206
+ // @ts-expect-error TS7053
207
+ invalidation.key + ':' + (0, _utils2.hashFromOption)(options[invalidation.key]);
199
208
  break;
200
209
  default:
210
+ // @ts-expect-error TS2339
201
211
  throw new Error('Unknown invalidation type: ' + invalidation.type);
202
212
  }
203
213
  }
@@ -19,23 +19,36 @@ function _diagnostic() {
19
19
  };
20
20
  return data;
21
21
  }
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
23
  class AtlaspackV3 {
24
- constructor(atlaspack_napi) {
24
+ constructor(atlaspack_napi, napiWorkerPool, isDefaultNapiWorkerPool) {
25
25
  this._atlaspack_napi = atlaspack_napi;
26
+ this._napiWorkerPool = napiWorkerPool;
27
+ this._isDefaultNapiWorkerPool = isDefaultNapiWorkerPool;
26
28
  }
27
29
  static async create({
28
30
  fs,
29
31
  packageManager,
30
32
  threads,
31
33
  lmdb,
32
- napiWorkerPool = new _NapiWorkerPool.NapiWorkerPool(),
34
+ napiWorkerPool,
33
35
  ...options
34
36
  }) {
37
+ // @ts-expect-error TS2339
35
38
  options.logLevel = options.logLevel || 'error';
39
+ // @ts-expect-error TS2339
36
40
  options.defaultTargetOptions = options.defaultTargetOptions || {};
37
- // $FlowFixMe "engines" are readonly
38
- options.defaultTargetOptions.engines = options.defaultTargetOptions.engines || {};
41
+ // @ts-expect-error TS2339
42
+ options.defaultTargetOptions.engines =
43
+ // @ts-expect-error TS2339
44
+ options.defaultTargetOptions.engines || {};
45
+ let isDefaultNapiWorkerPool = false;
46
+ if (!napiWorkerPool) {
47
+ napiWorkerPool = new _NapiWorkerPool.NapiWorkerPool();
48
+ isDefaultNapiWorkerPool = true;
49
+ }
50
+
51
+ // @ts-expect-error TS2488
39
52
  const [internal, error] = await (0, _rust().atlaspackNapiCreate)({
40
53
  fs,
41
54
  packageManager,
@@ -48,19 +61,49 @@ class AtlaspackV3 {
48
61
  diagnostic: error
49
62
  });
50
63
  }
51
- return new AtlaspackV3(internal);
64
+ return new AtlaspackV3(internal, napiWorkerPool, isDefaultNapiWorkerPool);
52
65
  }
53
- async buildAssetGraph() {
54
- let [graph, error] = await (0, _rust().atlaspackNapiBuildAssetGraph)(this._atlaspack_napi);
55
- if (error !== null) {
56
- throw new (_diagnostic().default)({
57
- diagnostic: error
58
- });
66
+ end() {
67
+ // If the worker pool was provided to us, don't shut it down, it's up to the provider.
68
+ if (this._isDefaultNapiWorkerPool) {
69
+ this._napiWorkerPool.shutdown();
70
+ }
71
+ }
72
+ buildAssetGraph(progressCallback) {
73
+ return (0, _rust().atlaspackNapiBuildAssetGraph)(this._atlaspack_napi, progressCallback);
74
+ }
75
+ buildBundleGraph(progressCallback) {
76
+ return (0, _rust().atlaspackNapiBuildBundleGraph)(this._atlaspack_napi, progressCallback);
77
+ }
78
+ build(progressCallback) {
79
+ return (0, _rust().atlaspackNapiBuild)(this._atlaspack_napi, progressCallback);
80
+ }
81
+ loadBundleGraph(bundleGraph) {
82
+ const {
83
+ nodesJson,
84
+ edges,
85
+ publicIdByAssetId,
86
+ environmentsJson
87
+ } = bundleGraph.serializeForNative();
88
+ return (0, _rust().atlaspackNapiLoadBundleGraph)(this._atlaspack_napi, nodesJson, edges, publicIdByAssetId, environmentsJson);
89
+ }
90
+ updateBundleGraph(bundleGraph, changedAssetIds) {
91
+ const nodesJson = bundleGraph.serializeAssetNodesForNative(changedAssetIds);
92
+ return (0, _rust().atlaspackNapiUpdateBundleGraph)(this._atlaspack_napi, nodesJson);
93
+ }
94
+ package(bundleId, options) {
95
+ return (0, _rust().atlaspackNapiPackage)(this._atlaspack_napi, bundleId, options);
96
+ }
97
+ async respondToFsEvents(events) {
98
+ // @ts-expect-error TS2488
99
+ let [needsRebuild, error] = await (0, _rust().atlaspackNapiRespondToFsEvents)(this._atlaspack_napi, events);
100
+ if (error) {
101
+ throw new Error(error);
59
102
  }
60
- return graph;
103
+ return needsRebuild;
61
104
  }
62
- respondToFsEvents(events) {
63
- return (0, _rust().atlaspackNapiRespondToFsEvents)(this._atlaspack_napi, events);
105
+ async completeCacheSession() {
106
+ return await (0, _rust().atlaspackNapiCompleteSession)(this._atlaspack_napi);
64
107
  }
65
108
  }
66
109
  exports.AtlaspackV3 = AtlaspackV3;
@@ -32,7 +32,16 @@ function _rust() {
32
32
  };
33
33
  return data;
34
34
  }
35
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+ function _logger() {
36
+ const data = _interopRequireDefault(require("@atlaspack/logger"));
37
+ _logger = function () {
38
+ return data;
39
+ };
40
+ return data;
41
+ }
42
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
43
+ // @ts-expect-error TS2724
44
+
36
45
  const WORKER_PATH = _path().default.join(__dirname, 'worker', 'index.js');
37
46
  const ATLASPACK_NAPI_WORKERS = _process().default.env.ATLASPACK_NAPI_WORKERS && parseInt(_process().default.env.ATLASPACK_NAPI_WORKERS, 10);
38
47
  class NapiWorkerPool {
@@ -44,7 +53,11 @@ class NapiWorkerPool {
44
53
  } = {
45
54
  workerCount: undefined
46
55
  }) {
47
- this.#workerCount = workerCount ?? ATLASPACK_NAPI_WORKERS ?? (0, _rust().getAvailableThreads)();
56
+ // @ts-expect-error TS2322
57
+ this.#workerCount = workerCount ?? ATLASPACK_NAPI_WORKERS ??
58
+ // Default to a maximum of 4 workers as performance worsens beyond that
59
+ // point in most cases
60
+ Math.min((0, _rust().getAvailableThreads)(), 4);
48
61
  if (!this.#workerCount) {
49
62
  // TODO use main thread if workerCount is 0
50
63
  }
@@ -54,8 +67,56 @@ class NapiWorkerPool {
54
67
  let worker = new (_worker_threads().Worker)(WORKER_PATH);
55
68
  this.#workers.push(worker);
56
69
  this.#napiWorkers.push(new Promise(res => worker.once('message', res)));
70
+
71
+ // Re-emit log events from the worker thread into the main-thread logger
72
+ // so they reach reporters and are subject to log-level filtering.
73
+ worker.on('message', message => {
74
+ if (message != null && typeof message === 'object' && message.type === 'logEvent') {
75
+ const event = message.event;
76
+ switch (event.level) {
77
+ case 'verbose':
78
+ _logger().default.verbose(event.diagnostics);
79
+ break;
80
+ case 'info':
81
+ _logger().default.info(event.diagnostics);
82
+ break;
83
+ case 'warn':
84
+ _logger().default.warn(event.diagnostics);
85
+ break;
86
+ case 'error':
87
+ _logger().default.error(event.diagnostics);
88
+ break;
89
+ case 'progress':
90
+ _logger().default.progress(event.message);
91
+ break;
92
+ }
93
+ }
94
+ });
57
95
  }
58
96
  }
97
+ clearAllWorkerState() {
98
+ return Promise.all(this.#workers.map(worker => new Promise(res => {
99
+ worker.postMessage('clearState');
100
+
101
+ // Set up a message handler that only resolves on 'stateCleared'
102
+ // and ignores all other messages (like the initial napiWorker Transferable)
103
+ const messageHandler = message => {
104
+ if (message === 'stateCleared') {
105
+ worker.removeListener('message', messageHandler);
106
+ res();
107
+ } else if (message != null && typeof message === 'object' && message.type === 'logEvent') {
108
+ // logEvent messages are forwarded asynchronously from the worker
109
+ // logger bridge and are expected at any time; ignore them here.
110
+ } else {
111
+ // Log unexpected messages for debugging
112
+ // eslint-disable-next-line no-console
113
+ console.warn(`[NapiWorkerPool] Received unexpected message during clearAllWorkerState: ${JSON.stringify(message)} (type: ${typeof message})`);
114
+ // Keep listening for 'stateCleared' - don't remove the listener
115
+ }
116
+ };
117
+ worker.on('message', messageHandler);
118
+ })));
119
+ }
59
120
  workerCount() {
60
121
  return this.#workerCount;
61
122
  }
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.FileSystemV3 = void 0;
7
7
  var _jsCallable = require("./jsCallable");
8
+ // @ts-expect-error TS2305
9
+
10
+ // @ts-expect-error TS2420
8
11
  class FileSystemV3 {
9
12
  #fs;
10
13
  constructor(fs) {
@@ -29,11 +32,11 @@ class FileSystemV3 {
29
32
  };
30
33
  readFile = (0, _jsCallable.jsCallable)((path, encoding) => {
31
34
  if (!encoding) {
32
- // $FlowFixMe
33
35
  return [...this.#fs.readFileSync(path)];
34
36
  } else {
35
37
  return this.#fs.readFileSync(path, encoding);
36
38
  }
37
39
  });
40
+ writeFile = (0, _jsCallable.jsCallable)((path, contents) => this.#fs.writeFile(path, Buffer.from(contents)));
38
41
  }
39
42
  exports.FileSystemV3 = FileSystemV3;
@@ -3,6 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ FileSystemV3: true,
8
+ AtlaspackV3: true,
9
+ NapiWorkerPool: true
10
+ };
6
11
  Object.defineProperty(exports, "AtlaspackV3", {
7
12
  enumerable: true,
8
13
  get: function () {
@@ -23,4 +28,26 @@ Object.defineProperty(exports, "NapiWorkerPool", {
23
28
  });
24
29
  var _fs = require("./fs");
25
30
  var _AtlaspackV = require("./AtlaspackV3");
26
- var _NapiWorkerPool = require("./NapiWorkerPool");
31
+ Object.keys(_AtlaspackV).forEach(function (key) {
32
+ if (key === "default" || key === "__esModule") return;
33
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
34
+ if (key in exports && exports[key] === _AtlaspackV[key]) return;
35
+ Object.defineProperty(exports, key, {
36
+ enumerable: true,
37
+ get: function () {
38
+ return _AtlaspackV[key];
39
+ }
40
+ });
41
+ });
42
+ var _NapiWorkerPool = require("./NapiWorkerPool");
43
+ Object.keys(_NapiWorkerPool).forEach(function (key) {
44
+ if (key === "default" || key === "__esModule") return;
45
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
46
+ if (key in exports && exports[key] === _NapiWorkerPool[key]) return;
47
+ Object.defineProperty(exports, key, {
48
+ enumerable: true,
49
+ get: function () {
50
+ return _NapiWorkerPool[key];
51
+ }
52
+ });
53
+ });
@@ -7,10 +7,8 @@ exports.jsCallable = jsCallable;
7
7
  function jsCallable(fn) {
8
8
  return async (...args) => {
9
9
  try {
10
- // $FlowFixMe "await" is needed to log the error from
11
10
  // Promises and is safe to use on non-promises
12
11
  return await fn(...args);
13
- // $FlowFixMe
14
12
  } catch (error) {
15
13
  // eslint-disable-next-line no-console
16
14
  console.error(error);
@@ -54,7 +54,7 @@ class MutableDependencySymbols {
54
54
  }
55
55
 
56
56
  /*:: @@iterator(): Iterator<[Symbol, DependencyAssetSymbol]> { return ({}: any); } */
57
- // $FlowFixMe Flow can't do computed properties
57
+ // @ts-expect-error TS2416
58
58
  [Symbol.iterator]() {
59
59
  return this.#symbols.values();
60
60
  }
@@ -102,7 +102,7 @@ class AssetSymbols {
102
102
  }
103
103
 
104
104
  /*:: @@iterator(): Iterator<[Symbol, AssetSymbol]> { return ({}: any); } */
105
- // $FlowFixMe Flow can't do computed properties
105
+ // @ts-expect-error TS2416
106
106
  [Symbol.iterator]() {
107
107
  return this.#symbols.values();
108
108
  }
@@ -122,10 +122,12 @@ class MutableAssetSymbols {
122
122
  loc,
123
123
  local,
124
124
  isEsmExport,
125
- selfReferenced
125
+ selfReferenced,
126
+ isStaticBindingSafe
126
127
  } of inner || []) {
127
128
  this.set(exported, local, loc, {
128
129
  isEsm: isEsmExport,
130
+ isStaticBindingSafe,
129
131
  selfReferenced
130
132
  });
131
133
  }
@@ -152,6 +154,7 @@ class MutableAssetSymbols {
152
154
  }
153
155
  } : undefined,
154
156
  isEsmExport: Boolean(meta === null || meta === void 0 ? void 0 : meta.isEsm),
157
+ isStaticBindingSafe: Boolean(meta === null || meta === void 0 ? void 0 : meta.isStaticBindingSafe),
155
158
  isWeak: false,
156
159
  selfReferenced: Boolean(meta === null || meta === void 0 ? void 0 : meta.selfReferenced)
157
160
  });
@@ -189,7 +192,7 @@ class MutableAssetSymbols {
189
192
  }
190
193
 
191
194
  /*:: @@iterator(): Iterator<[Symbol, AssetSymbol]> { return ({}: any); } */
192
- // $FlowFixMe Flow can't do computed properties
195
+ // @ts-expect-error TS2416
193
196
  [Symbol.iterator]() {
194
197
  return this.#symbols.values();
195
198
  }
@@ -6,18 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.specifierTypeMap = exports.packageConditionsMap = exports.dependencyPriorityMap = exports.bundleBehaviorMap = exports.BitFlags = void 0;
7
7
  /// BitFlags is used to map number/string types from napi types
8
8
  class BitFlags {
9
+ // @ts-expect-error TS2344
9
10
  #kv;
10
11
  #vk;
12
+
13
+ // @ts-expect-error TS2344
11
14
  constructor(source) {
12
15
  this.#kv = source;
13
- this.#vk = Object.fromEntries(
14
- // $FlowFixMe
15
- Object.entries(source).map(a => a.reverse()));
16
+ this.#vk = Object.fromEntries(Object.entries(source).map(a => a.reverse()));
16
17
  }
17
18
  into(key) {
18
19
  const found = this.#kv[key];
19
20
  if (found === undefined) {
20
- // $FlowFixMe
21
21
  throw new Error(`Invalid BundleBehavior(${key})`);
22
22
  }
23
23
  return found;
@@ -28,13 +28,9 @@ class BitFlags {
28
28
  }
29
29
  return this.into(key);
30
30
  }
31
- intoArray(keys) {
32
- return keys.map(key => this.into(key));
33
- }
34
31
  from(key) {
35
32
  const found = this.#vk[key];
36
33
  if (found === undefined) {
37
- // $FlowFixMe
38
34
  throw new Error(`Invalid BundleBehavior(${key})`);
39
35
  }
40
36
  return found;
@@ -45,14 +41,21 @@ class BitFlags {
45
41
  }
46
42
  return this.from(key);
47
43
  }
48
- fromArray(keys) {
49
- return keys.map(key => this.from(key));
44
+ toArray(keys) {
45
+ let values = [];
46
+ for (let [key, value] of Object.entries(this.#kv)) {
47
+ if ((keys & value) !== 0) {
48
+ values.push(key);
49
+ }
50
+ }
51
+ return values;
50
52
  }
51
53
  }
52
54
  exports.BitFlags = BitFlags;
53
55
  const bundleBehaviorMap = exports.bundleBehaviorMap = new BitFlags({
54
56
  inline: 0,
55
- isolated: 1
57
+ isolated: 1,
58
+ inlineIsolated: 2
56
59
  });
57
60
  const dependencyPriorityMap = exports.dependencyPriorityMap = new BitFlags({
58
61
  sync: 0,
@@ -60,21 +63,24 @@ const dependencyPriorityMap = exports.dependencyPriorityMap = new BitFlags({
60
63
  lazy: 2,
61
64
  conditional: 3
62
65
  });
66
+
67
+ // Note: The bitflags must match the bitflags in the Rust code.
68
+ // crates/atlaspack_core/src/types/package_json.rs
63
69
  const packageConditionsMap = exports.packageConditionsMap = new BitFlags({
64
- import: 0,
65
- require: 1,
66
- module: 2,
67
- node: 3,
68
- browser: 4,
69
- worker: 5,
70
- worklet: 6,
71
- electron: 7,
72
- development: 8,
73
- production: 9,
74
- types: 10,
75
- default: 11,
76
- style: 12,
77
- sass: 13
70
+ import: 1 << 0,
71
+ require: 1 << 1,
72
+ module: 1 << 2,
73
+ node: 1 << 3,
74
+ browser: 1 << 4,
75
+ worker: 1 << 5,
76
+ worklet: 1 << 6,
77
+ electron: 1 << 7,
78
+ development: 1 << 8,
79
+ production: 1 << 9,
80
+ types: 1 << 10,
81
+ default: 1 << 11,
82
+ style: 1 << 12,
83
+ sass: 1 << 13
78
84
  });
79
85
  const specifierTypeMap = exports.specifierTypeMap = new BitFlags({
80
86
  esm: 0,
@@ -7,6 +7,8 @@ exports.Dependency = void 0;
7
7
  var _target = require("./target");
8
8
  var _assetSymbols = require("./asset-symbols");
9
9
  var _bitflags = require("./bitflags");
10
+ // @ts-expect-error TS2305
11
+
10
12
  class Dependency {
11
13
  get id() {
12
14
  throw new Error('Dependency.id');
@@ -24,6 +26,7 @@ class Dependency {
24
26
  this.bundleBehavior = _bitflags.bundleBehaviorMap.from(inner.bundleBehavior);
25
27
  }
26
28
  this.bundleBehavior = undefined;
29
+ // @ts-expect-error TS2322
27
30
  this.symbols = new _assetSymbols.MutableDependencySymbols(inner.symbols || []);
28
31
  this.specifier = inner.specifier;
29
32
  this.specifierType = _bitflags.specifierTypeMap.from(inner.specifierType);
@@ -32,7 +35,7 @@ class Dependency {
32
35
  this.isOptional = inner.isOptional;
33
36
  this.isEntry = inner.isEntry;
34
37
  this.loc = inner.loc;
35
- this.packageConditions = _bitflags.packageConditionsMap.fromArray(inner.packageConditions || []);
38
+ this.packageConditions = _bitflags.packageConditionsMap.toArray(inner.packageConditions || []);
36
39
  this.sourceAssetId = inner.sourceAssetId;
37
40
  this.sourcePath = inner.sourcePath;
38
41
  this.sourceAssetType = inner.sourceAssetType;