@atlaspack/core 2.16.2-canary.37 → 2.16.2-canary.371

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 (367) hide show
  1. package/CHANGELOG.md +941 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +666 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1740 -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 +514 -0
  19. package/dist/UncommittedAsset.js +315 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +383 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +74 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +81 -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 +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 +25 -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-logger.js +26 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -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/side-effect-detector.js +243 -0
  40. package/dist/atlaspack-v3/worker/worker.js +381 -0
  41. package/dist/constants.js +17 -0
  42. package/dist/dumpGraphToGraphViz.js +281 -0
  43. package/dist/index.js +62 -0
  44. package/dist/loadAtlaspackPlugin.js +128 -0
  45. package/dist/loadDotEnv.js +41 -0
  46. package/dist/projectPath.js +83 -0
  47. package/dist/public/Asset.js +279 -0
  48. package/dist/public/Bundle.js +224 -0
  49. package/dist/public/BundleGraph.js +371 -0
  50. package/dist/public/BundleGroup.js +53 -0
  51. package/dist/public/Config.js +286 -0
  52. package/dist/public/Dependency.js +138 -0
  53. package/dist/public/Environment.js +278 -0
  54. package/dist/public/MutableBundleGraph.js +277 -0
  55. package/dist/public/PluginOptions.js +80 -0
  56. package/dist/public/Symbols.js +248 -0
  57. package/dist/public/Target.js +69 -0
  58. package/dist/registerCoreWithSerializer.js +38 -0
  59. package/dist/requests/AssetGraphRequest.js +439 -0
  60. package/dist/requests/AssetGraphRequestRust.js +273 -0
  61. package/dist/requests/AssetRequest.js +130 -0
  62. package/dist/requests/AtlaspackBuildRequest.js +92 -0
  63. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  64. package/dist/requests/BundleGraphRequest.js +447 -0
  65. package/dist/requests/ConfigRequest.js +246 -0
  66. package/dist/requests/DevDepRequest.js +204 -0
  67. package/dist/requests/EntryRequest.js +314 -0
  68. package/dist/requests/PackageRequest.js +72 -0
  69. package/dist/requests/PathRequest.js +349 -0
  70. package/dist/requests/TargetRequest.js +1311 -0
  71. package/dist/requests/ValidationRequest.js +49 -0
  72. package/dist/requests/WriteBundleRequest.js +254 -0
  73. package/dist/requests/WriteBundlesRequest.js +184 -0
  74. package/dist/requests/asset-graph-diff.js +128 -0
  75. package/dist/requests/asset-graph-dot.js +131 -0
  76. package/dist/resolveOptions.js +269 -0
  77. package/dist/rustWorkerThreadDylibHack.js +19 -0
  78. package/dist/serializerCore.browser.js +43 -0
  79. package/dist/summarizeRequest.js +39 -0
  80. package/dist/types.js +31 -0
  81. package/dist/utils.js +172 -0
  82. package/dist/worker.js +123 -0
  83. package/lib/AssetGraph.js +111 -14
  84. package/lib/Atlaspack.js +94 -41
  85. package/lib/AtlaspackConfig.js +15 -3
  86. package/lib/AtlaspackConfig.schema.js +16 -5
  87. package/lib/BundleGraph.js +197 -32
  88. package/lib/CommittedAsset.js +7 -1
  89. package/lib/Dependency.js +8 -2
  90. package/lib/Environment.js +15 -8
  91. package/lib/EnvironmentManager.js +143 -0
  92. package/lib/IdentifierRegistry.js +1 -3
  93. package/lib/InternalConfig.js +3 -2
  94. package/lib/PackagerRunner.js +90 -27
  95. package/lib/ReporterRunner.js +6 -9
  96. package/lib/RequestTracker.js +266 -156
  97. package/lib/SymbolPropagation.js +42 -18
  98. package/lib/TargetDescriptor.schema.js +7 -1
  99. package/lib/Transformation.js +66 -15
  100. package/lib/UncommittedAsset.js +33 -12
  101. package/lib/Validation.js +18 -2
  102. package/lib/applyRuntimes.js +96 -4
  103. package/lib/assetUtils.js +15 -5
  104. package/lib/atlaspack-v3/AtlaspackV3.js +52 -14
  105. package/lib/atlaspack-v3/NapiWorkerPool.js +28 -1
  106. package/lib/atlaspack-v3/fs.js +3 -1
  107. package/lib/atlaspack-v3/index.js +28 -1
  108. package/lib/atlaspack-v3/jsCallable.js +0 -2
  109. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  110. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  111. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  112. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  113. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +15 -10
  114. package/lib/atlaspack-v3/worker/compat/plugin-config.js +13 -34
  115. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -0
  116. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  117. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  118. package/lib/atlaspack-v3/worker/index.js +3 -0
  119. package/lib/atlaspack-v3/worker/side-effect-detector.js +215 -0
  120. package/lib/atlaspack-v3/worker/worker.js +199 -71
  121. package/lib/constants.js +0 -1
  122. package/lib/dumpGraphToGraphViz.js +71 -16
  123. package/lib/index.js +45 -1
  124. package/lib/loadDotEnv.js +4 -1
  125. package/lib/projectPath.js +5 -0
  126. package/lib/public/Asset.js +21 -11
  127. package/lib/public/Bundle.js +15 -16
  128. package/lib/public/BundleGraph.js +25 -22
  129. package/lib/public/BundleGroup.js +4 -5
  130. package/lib/public/Config.js +118 -17
  131. package/lib/public/Dependency.js +8 -6
  132. package/lib/public/Environment.js +12 -7
  133. package/lib/public/MutableBundleGraph.js +54 -12
  134. package/lib/public/PluginOptions.js +2 -2
  135. package/lib/public/Symbols.js +11 -11
  136. package/lib/public/Target.js +7 -6
  137. package/lib/registerCoreWithSerializer.js +5 -3
  138. package/lib/requests/AssetGraphRequest.js +74 -27
  139. package/lib/requests/AssetGraphRequestRust.js +140 -64
  140. package/lib/requests/AssetRequest.js +23 -6
  141. package/lib/requests/AtlaspackBuildRequest.js +43 -4
  142. package/lib/requests/AtlaspackConfigRequest.js +27 -16
  143. package/lib/requests/BundleGraphRequest.js +41 -24
  144. package/lib/requests/ConfigRequest.js +53 -4
  145. package/lib/requests/DevDepRequest.js +31 -5
  146. package/lib/requests/EntryRequest.js +2 -0
  147. package/lib/requests/PackageRequest.js +16 -2
  148. package/lib/requests/PathRequest.js +24 -3
  149. package/lib/requests/TargetRequest.js +122 -57
  150. package/lib/requests/ValidationRequest.js +5 -1
  151. package/lib/requests/WriteBundleRequest.js +39 -11
  152. package/lib/requests/WriteBundlesRequest.js +51 -4
  153. package/lib/requests/asset-graph-diff.js +12 -7
  154. package/lib/requests/asset-graph-dot.js +1 -7
  155. package/lib/resolveOptions.js +38 -11
  156. package/lib/rustWorkerThreadDylibHack.js +0 -1
  157. package/lib/types/AssetGraph.d.ts +80 -0
  158. package/lib/types/Atlaspack.d.ts +52 -0
  159. package/lib/types/AtlaspackConfig.d.ts +65 -0
  160. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  161. package/lib/types/BundleGraph.d.ts +184 -0
  162. package/lib/types/CommittedAsset.d.ts +23 -0
  163. package/lib/types/Dependency.d.ts +44 -0
  164. package/lib/types/Environment.d.ts +11 -0
  165. package/lib/types/EnvironmentManager.d.ts +37 -0
  166. package/lib/types/IdentifierRegistry.d.ts +6 -0
  167. package/lib/types/InternalConfig.d.ts +23 -0
  168. package/lib/types/PackagerRunner.d.ts +85 -0
  169. package/lib/types/ReporterRunner.d.ts +25 -0
  170. package/lib/types/RequestTracker.d.ts +385 -0
  171. package/lib/types/SymbolPropagation.d.ts +11 -0
  172. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  173. package/lib/types/Transformation.d.ts +72 -0
  174. package/lib/types/UncommittedAsset.d.ts +61 -0
  175. package/lib/types/Validation.d.ts +37 -0
  176. package/lib/types/applyRuntimes.d.ts +25 -0
  177. package/lib/types/assetUtils.d.ts +42 -0
  178. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +34 -0
  179. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  180. package/lib/types/atlaspack-v3/fs.d.ts +12 -0
  181. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  182. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  183. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  184. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  185. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  186. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  187. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
  188. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  189. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  190. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
  191. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  192. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  193. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  194. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  195. package/lib/types/atlaspack-v3/worker/worker.d.ts +80 -0
  196. package/lib/types/constants.d.ts +13 -0
  197. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  198. package/lib/types/index.d.ts +8 -0
  199. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  200. package/lib/types/loadDotEnv.d.ts +3 -0
  201. package/lib/types/projectPath.d.ts +19 -0
  202. package/lib/types/public/Asset.d.ts +74 -0
  203. package/lib/types/public/Bundle.d.ts +45 -0
  204. package/lib/types/public/BundleGraph.d.ts +72 -0
  205. package/lib/types/public/BundleGroup.d.ts +12 -0
  206. package/lib/types/public/Config.d.ts +75 -0
  207. package/lib/types/public/Dependency.d.ts +32 -0
  208. package/lib/types/public/Environment.d.ts +34 -0
  209. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  210. package/lib/types/public/PluginOptions.d.ts +25 -0
  211. package/lib/types/public/Symbols.d.ts +81 -0
  212. package/lib/types/public/Target.d.ts +16 -0
  213. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  214. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  215. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  216. package/lib/types/requests/AssetRequest.d.ts +16 -0
  217. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  218. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  219. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  220. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  221. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  222. package/lib/types/requests/EntryRequest.d.ts +36 -0
  223. package/lib/types/requests/PackageRequest.d.ts +27 -0
  224. package/lib/types/requests/PathRequest.d.ts +48 -0
  225. package/lib/types/requests/TargetRequest.d.ts +48 -0
  226. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  227. package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
  228. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  229. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  230. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  231. package/lib/types/resolveOptions.d.ts +3 -0
  232. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  233. package/lib/types/serializerCore.browser.d.ts +3 -0
  234. package/lib/types/summarizeRequest.d.ts +10 -0
  235. package/lib/types/types.d.ts +495 -0
  236. package/lib/types/utils.d.ts +23 -0
  237. package/lib/types/worker.d.ts +44 -0
  238. package/lib/types.js +8 -1
  239. package/lib/utils.js +17 -2
  240. package/lib/worker.js +30 -14
  241. package/package.json +25 -35
  242. package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
  243. package/src/{Atlaspack.js → Atlaspack.ts} +134 -67
  244. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  245. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  246. package/src/{BundleGraph.js → BundleGraph.ts} +383 -140
  247. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  248. package/src/{Dependency.js → Dependency.ts} +59 -42
  249. package/src/{Environment.js → Environment.ts} +24 -15
  250. package/src/EnvironmentManager.ts +154 -0
  251. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  252. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  253. package/src/{PackagerRunner.js → PackagerRunner.ts} +179 -87
  254. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  255. package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
  256. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
  257. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  258. package/src/{Transformation.js → Transformation.ts} +110 -65
  259. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +60 -39
  260. package/src/{Validation.js → Validation.ts} +32 -17
  261. package/src/{applyRuntimes.js → applyRuntimes.ts} +133 -26
  262. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  263. package/src/atlaspack-v3/AtlaspackV3.ts +143 -0
  264. package/src/atlaspack-v3/NapiWorkerPool.ts +91 -0
  265. package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
  266. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  267. package/src/atlaspack-v3/jsCallable.ts +14 -0
  268. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  269. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  270. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  271. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  272. package/src/atlaspack-v3/worker/compat/index.ts +9 -0
  273. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  274. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  275. package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
  276. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  277. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  278. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  279. package/src/atlaspack-v3/worker/index.js +2 -1
  280. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  281. package/src/atlaspack-v3/worker/worker.ts +531 -0
  282. package/src/{constants.js → constants.ts} +0 -3
  283. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  284. package/src/index.ts +18 -0
  285. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  286. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  287. package/src/{projectPath.js → projectPath.ts} +20 -9
  288. package/src/public/{Asset.js → Asset.ts} +41 -28
  289. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  290. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  291. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  292. package/src/public/{Config.js → Config.ts} +171 -33
  293. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  294. package/src/public/{Environment.js → Environment.ts} +28 -17
  295. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  296. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  297. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  298. package/src/public/{Target.js → Target.ts} +10 -8
  299. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  300. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +129 -80
  301. package/src/requests/AssetGraphRequestRust.ts +364 -0
  302. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  303. package/src/requests/AtlaspackBuildRequest.ts +163 -0
  304. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  305. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +97 -79
  306. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  307. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  308. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  309. package/src/requests/{PackageRequest.js → PackageRequest.ts} +34 -22
  310. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  311. package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
  312. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  313. package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
  314. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
  315. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  316. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  317. package/src/{resolveOptions.js → resolveOptions.ts} +59 -25
  318. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  319. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  320. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  321. package/src/types.ts +650 -0
  322. package/src/{utils.js → utils.ts} +52 -21
  323. package/src/{worker.js → worker.ts} +50 -42
  324. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
  325. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  326. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  327. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  328. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  329. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  330. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  331. package/test/Environment.test.ts +153 -0
  332. package/test/EnvironmentManager.test.ts +188 -0
  333. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  334. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  335. package/test/PackagerRunner.test.ts +0 -0
  336. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  337. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  338. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  339. package/test/PublicEnvironment.test.ts +49 -0
  340. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  341. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
  342. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  343. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
  344. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  345. package/test/fixtures/custom-targets/package.json +6 -0
  346. package/test/public/Config.test.ts +104 -0
  347. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  348. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  349. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  350. package/test/{test-utils.js → test-utils.ts} +4 -11
  351. package/test/{utils.test.js → utils.test.ts} +1 -3
  352. package/tsconfig.json +60 -0
  353. package/tsconfig.tsbuildinfo +1 -0
  354. package/index.d.ts +0 -30
  355. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  356. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  357. package/src/atlaspack-v3/jsCallable.js +0 -18
  358. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  359. package/src/atlaspack-v3/worker/worker.js +0 -362
  360. package/src/index.js +0 -13
  361. package/src/requests/AssetGraphRequestRust.js +0 -263
  362. package/src/requests/AtlaspackBuildRequest.js +0 -111
  363. package/src/types.js +0 -600
  364. package/test/Environment.test.js +0 -119
  365. package/test/PackagerRunner.test.js +0 -27
  366. package/test/PublicEnvironment.test.js +0 -27
  367. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -69,6 +69,14 @@ function _utils() {
69
69
  };
70
70
  return data;
71
71
  }
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
+ }
72
80
  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
81
  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
82
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -123,8 +131,10 @@ async function applyRuntimes({
123
131
  * order), so that children will always be available when parents try to reference
124
132
  * them.
125
133
  */
134
+ // @ts-expect-error TS2304
126
135
  let bundles = [];
127
136
  bundleGraph.traverseBundles({
137
+ // @ts-expect-error TS2304
128
138
  exit(bundle) {
129
139
  bundles.push(bundle);
130
140
  }
@@ -158,16 +168,20 @@ async function applyRuntimes({
158
168
  filePath,
159
169
  isEntry,
160
170
  env,
161
- priority
171
+ runtimeAssetRequiringExecutionOnLoad,
172
+ priority,
173
+ symbolData
162
174
  } of runtimeAssets) {
163
175
  let sourceName = _path().default.join(_path().default.dirname(filePath), `runtime-${(0, _rust().hashString)(code)}.${bundle.type}`);
164
176
  let assetGroup = {
165
177
  code,
178
+ runtimeAssetRequiringExecutionOnLoad,
166
179
  filePath: (0, _projectPath.toProjectPath)(options.projectRoot, sourceName),
167
- env: (0, _Environment.mergeEnvironments)(options.projectRoot, bundle.env, env),
180
+ env: (0, _Environment.mergeEnvironments)(options.projectRoot, (0, _EnvironmentManager.fromEnvironmentId)(bundle.env), env),
168
181
  // Runtime assets should be considered source, as they should be
169
182
  // e.g. compiled to run in the target environment
170
- isSource: true
183
+ isSource: true,
184
+ symbolData
171
185
  };
172
186
  let connectionBundle = bundle;
173
187
 
@@ -195,6 +209,8 @@ async function applyRuntimes({
195
209
  // been named as this point.
196
210
  nameRuntimeBundle(connectionBundle, bundle);
197
211
  }
212
+
213
+ // @ts-expect-error TS2345
198
214
  connectionMap.get(connectionBundle).push({
199
215
  bundle: connectionBundle,
200
216
  assetGroup,
@@ -233,6 +249,7 @@ async function applyRuntimes({
233
249
  */
234
250
  let connections = [];
235
251
  bundleGraph.traverseBundles({
252
+ // @ts-expect-error TS2304
236
253
  enter(bundle) {
237
254
  connections.push(...connectionMap.get(bundle));
238
255
  }
@@ -254,6 +271,10 @@ async function applyRuntimes({
254
271
  assetGraph: runtimesAssetGraph,
255
272
  changedAssets
256
273
  } = await reconcileNewRuntimes(api, connections, optionsRef);
274
+ if ((0, _featureFlags().getFeatureFlag)('skipRuntimeSymbolProp')) {
275
+ // Apply pre-computed symbol data from runtime assets to skip symbol propagation
276
+ applyRuntimeSymbolData(runtimesAssetGraph, connections);
277
+ }
257
278
 
258
279
  // Convert the runtime AssetGraph into a BundleGraph, this includes assigning
259
280
  // the assets their public ids
@@ -340,12 +361,83 @@ async function applyRuntimes({
340
361
  }
341
362
  return changedAssets;
342
363
  }
364
+
365
+ /**
366
+ * Apply pre-computed symbol data from runtime assets to the asset graph
367
+ * to avoid running symbol propagation on runtime code we control.
368
+ */
369
+ function applyRuntimeSymbolData(assetGraph, connections) {
370
+ for (let {
371
+ assetGroup
372
+ } of connections) {
373
+ let assetGroupNode = (0, _AssetGraph.nodeFromAssetGroup)(assetGroup);
374
+ let assetGroupAssetNodeIds = assetGraph.getNodeIdsConnectedFrom(assetGraph.getNodeIdByContentKey(assetGroupNode.id));
375
+ if (assetGroupAssetNodeIds.length !== 1) {
376
+ continue;
377
+ }
378
+ let runtimeAssetNodeId = assetGroupAssetNodeIds[0];
379
+ let runtimeAssetNode = assetGraph.getNode(runtimeAssetNodeId);
380
+ if (!runtimeAssetNode || runtimeAssetNode.type !== 'asset') {
381
+ continue;
382
+ }
383
+ let symbolData = assetGroup.symbolData;
384
+ if (!symbolData) {
385
+ // We completely skip symbol propagation for runtime assets, so symbolData
386
+ // is required
387
+ throw new Error('Runtime asset is missing symbol data');
388
+ }
389
+ if (symbolData.symbols) {
390
+ // Convert from SymbolData format to internal Asset.symbols format
391
+ let internalSymbols = new Map();
392
+ for (let [symbol, data] of symbolData.symbols) {
393
+ internalSymbols.set(symbol, {
394
+ local: data.local,
395
+ loc: data.loc || null,
396
+ meta: data.meta
397
+ });
398
+ }
399
+ runtimeAssetNode.value.symbols = internalSymbols;
400
+ }
401
+ if (symbolData.dependencies && symbolData.dependencies.length > 0) {
402
+ 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);
403
+ for (let depSymbolData of symbolData.dependencies) {
404
+ let matchingDep = outgoingDeps.find(depNode => depNode.value.specifier === depSymbolData.specifier);
405
+ if (matchingDep) {
406
+ if (depSymbolData.symbols) {
407
+ let internalDepSymbols = new Map();
408
+ for (let [symbol, data] of depSymbolData.symbols) {
409
+ internalDepSymbols.set(symbol, {
410
+ local: data.local,
411
+ loc: data.loc || null,
412
+ isWeak: data.isWeak,
413
+ meta: data.meta
414
+ });
415
+ }
416
+ matchingDep.value.symbols = internalDepSymbols;
417
+ }
418
+ if (depSymbolData.usedSymbols) {
419
+ matchingDep.usedSymbolsDown = new Set(depSymbolData.usedSymbols);
420
+ // For runtime assets, usedSymbolsUp will be the same as usedSymbolsDown
421
+ // since we know exactly what we're using
422
+ let usedSymbolsUp = new Map();
423
+ for (let symbol of depSymbolData.usedSymbols) {
424
+ // Mark as resolved to external (null) since runtime deps are typically external
425
+ usedSymbolsUp.set(symbol, null);
426
+ }
427
+ matchingDep.usedSymbolsUp = usedSymbolsUp;
428
+ }
429
+ }
430
+ }
431
+ }
432
+ }
433
+ }
343
434
  function reconcileNewRuntimes(api, connections, optionsRef) {
344
435
  let assetGroups = connections.map(t => t.assetGroup);
345
436
  let request = (0, _AssetGraphRequest.default)({
346
437
  name: 'Runtimes',
347
438
  assetGroups,
348
- optionsRef
439
+ optionsRef,
440
+ skipSymbolProp: (0, _featureFlags().getFeatureFlag)('skipRuntimeSymbolProp')
349
441
  });
350
442
 
351
443
  // 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");
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
+ }
69
75
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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,43 @@ function _diagnostic() {
19
19
  };
20
20
  return data;
21
21
  }
22
+ function _assert() {
23
+ const data = _interopRequireDefault(require("assert"));
24
+ _assert = function () {
25
+ return data;
26
+ };
27
+ return data;
28
+ }
22
29
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
30
  class AtlaspackV3 {
24
- constructor(atlaspack_napi) {
31
+ constructor(atlaspack_napi, napiWorkerPool, isDefaultNapiWorkerPool) {
25
32
  this._atlaspack_napi = atlaspack_napi;
33
+ this._napiWorkerPool = napiWorkerPool;
34
+ this._isDefaultNapiWorkerPool = isDefaultNapiWorkerPool;
26
35
  }
27
36
  static async create({
28
37
  fs,
29
38
  packageManager,
30
39
  threads,
31
40
  lmdb,
32
- napiWorkerPool = new _NapiWorkerPool.NapiWorkerPool(),
41
+ napiWorkerPool,
33
42
  ...options
34
43
  }) {
44
+ // @ts-expect-error TS2339
35
45
  options.logLevel = options.logLevel || 'error';
46
+ // @ts-expect-error TS2339
36
47
  options.defaultTargetOptions = options.defaultTargetOptions || {};
37
- // $FlowFixMe "engines" are readonly
38
- options.defaultTargetOptions.engines = options.defaultTargetOptions.engines || {};
48
+ // @ts-expect-error TS2339
49
+ options.defaultTargetOptions.engines =
50
+ // @ts-expect-error TS2339
51
+ options.defaultTargetOptions.engines || {};
52
+ let isDefaultNapiWorkerPool = false;
53
+ if (!napiWorkerPool) {
54
+ napiWorkerPool = new _NapiWorkerPool.NapiWorkerPool();
55
+ isDefaultNapiWorkerPool = true;
56
+ }
57
+
58
+ // @ts-expect-error TS2488
39
59
  const [internal, error] = await (0, _rust().atlaspackNapiCreate)({
40
60
  fs,
41
61
  packageManager,
@@ -48,19 +68,37 @@ class AtlaspackV3 {
48
68
  diagnostic: error
49
69
  });
50
70
  }
51
- return new AtlaspackV3(internal);
71
+ return new AtlaspackV3(internal, napiWorkerPool, isDefaultNapiWorkerPool);
52
72
  }
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
- });
73
+ end() {
74
+ // If the worker pool was provided to us, don't shut it down, it's up to the provider.
75
+ if (this._isDefaultNapiWorkerPool) {
76
+ this._napiWorkerPool.shutdown();
77
+ }
78
+ }
79
+ buildAssetGraph() {
80
+ return (0, _rust().atlaspackNapiBuildAssetGraph)(this._atlaspack_napi);
81
+ }
82
+ loadBundleGraph({
83
+ nodes,
84
+ edges
85
+ }) {
86
+ (0, _assert().default)(nodes.length > 0, 'Bundle graph must have at least one node');
87
+ return (0, _rust().atlaspackNapiLoadBundleGraph)(this._atlaspack_napi, nodes, edges);
88
+ }
89
+ package() {
90
+ return (0, _rust().atlaspackNapiPackage)(this._atlaspack_napi);
91
+ }
92
+ async respondToFsEvents(events) {
93
+ // @ts-expect-error TS2488
94
+ let [needsRebuild, error] = await (0, _rust().atlaspackNapiRespondToFsEvents)(this._atlaspack_napi, events);
95
+ if (error) {
96
+ throw new Error(error);
59
97
  }
60
- return graph;
98
+ return needsRebuild;
61
99
  }
62
- respondToFsEvents(events) {
63
- return (0, _rust().atlaspackNapiRespondToFsEvents)(this._atlaspack_napi, events);
100
+ async completeCacheSession() {
101
+ return await (0, _rust().atlaspackNapiCompleteSession)(this._atlaspack_napi);
64
102
  }
65
103
  }
66
104
  exports.AtlaspackV3 = AtlaspackV3;
@@ -33,6 +33,8 @@ function _rust() {
33
33
  return data;
34
34
  }
35
35
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36
+ // @ts-expect-error TS2724
37
+
36
38
  const WORKER_PATH = _path().default.join(__dirname, 'worker', 'index.js');
37
39
  const ATLASPACK_NAPI_WORKERS = _process().default.env.ATLASPACK_NAPI_WORKERS && parseInt(_process().default.env.ATLASPACK_NAPI_WORKERS, 10);
38
40
  class NapiWorkerPool {
@@ -44,7 +46,11 @@ class NapiWorkerPool {
44
46
  } = {
45
47
  workerCount: undefined
46
48
  }) {
47
- this.#workerCount = workerCount ?? ATLASPACK_NAPI_WORKERS ?? (0, _rust().getAvailableThreads)();
49
+ // @ts-expect-error TS2322
50
+ this.#workerCount = workerCount ?? ATLASPACK_NAPI_WORKERS ??
51
+ // Default to a maximum of 4 workers as performance worsens beyond that
52
+ // point in most cases
53
+ Math.min((0, _rust().getAvailableThreads)(), 4);
48
54
  if (!this.#workerCount) {
49
55
  // TODO use main thread if workerCount is 0
50
56
  }
@@ -56,6 +62,27 @@ class NapiWorkerPool {
56
62
  this.#napiWorkers.push(new Promise(res => worker.once('message', res)));
57
63
  }
58
64
  }
65
+ clearAllWorkerState() {
66
+ return Promise.all(this.#workers.map(worker => new Promise(res => {
67
+ worker.postMessage('clearState');
68
+
69
+ // Set up a message handler that only resolves on 'stateCleared'
70
+ // and ignores all other messages (like the initial napiWorker Transferable)
71
+ const messageHandler = message => {
72
+ if (message === 'stateCleared') {
73
+ worker.removeListener('message', messageHandler);
74
+ res();
75
+ } else {
76
+ // Log unexpected messages for debugging
77
+ // eslint-disable-next-line no-console
78
+ console.warn(`[NapiWorkerPool] Received unexpected message during clearAllWorkerState: ${JSON.stringify(message)} (type: ${typeof message})`);
79
+ // Keep listening for 'stateCleared' - don't remove the listener
80
+ }
81
+ };
82
+
83
+ worker.on('message', messageHandler);
84
+ })));
85
+ }
59
86
  workerCount() {
60
87
  return this.#workerCount;
61
88
  }
@@ -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,7 +32,6 @@ 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);
@@ -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;
@@ -4,17 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Environment = void 0;
7
+ // @ts-expect-error TS2724
8
+
7
9
  class Environment {
8
10
  constructor(inner) {
9
11
  // TODO
10
12
  this.id = '';
11
13
  this.includeNodeModules = inner.includeNodeModules;
12
- // $FlowFixMe
13
14
  this.context = inner.context;
14
15
  this.engines = inner.engines;
15
- // $FlowFixMe
16
16
  this.outputFormat = inner.outputFormat;
17
- // $FlowFixMe
18
17
  this.sourceType = inner.sourceType;
19
18
  this.isLibrary = inner.isLibrary;
20
19
  this.shouldOptimize = inner.shouldOptimize;
@@ -22,9 +21,10 @@ class Environment {
22
21
  this.sourceMap = inner.sourceMap;
23
22
  this.loc = inner.loc;
24
23
  this.unstableSingleFileOutput = false;
24
+ this.customEnv = inner.customEnv;
25
25
  }
26
26
  isBrowser() {
27
- return this.context === 'browser' || this.isWorker() || this.isWorklet() || this.context === 'electron-renderer';
27
+ return this.context === 'browser' || this.isWorker() || this.isTesseract() || this.isWorklet() || this.context === 'electron-renderer';
28
28
  }
29
29
  isNode() {
30
30
  return this.context === 'node' || this.isElectron();
@@ -38,19 +38,22 @@ class Environment {
38
38
  isWorklet() {
39
39
  return this.context === 'worklet';
40
40
  }
41
+ isTesseract() {
42
+ return this.context === 'tesseract';
43
+ }
41
44
  isIsolated() {
42
- return this.isWorker() || this.isWorklet();
45
+ return this.isWorker() || this.isTesseract() || this.isWorklet();
43
46
  }
44
47
 
45
48
  // TODO
46
49
  // eslint-disable-next-line no-unused-vars
47
- matchesEngines() {
50
+ matchesEngines(minVersions, defaultValue) {
48
51
  return true;
49
52
  }
50
53
 
51
54
  // TODO
52
55
  // eslint-disable-next-line no-unused-vars
53
- supports() {
56
+ supports(feature, defaultValue) {
54
57
  return true;
55
58
  }
56
59
  }