@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.
- package/CHANGELOG.md +941 -0
- package/dist/AssetGraph.js +591 -0
- package/dist/Atlaspack.js +666 -0
- package/dist/AtlaspackConfig.js +324 -0
- package/dist/AtlaspackConfig.schema.js +117 -0
- package/dist/BundleGraph.js +1740 -0
- package/dist/CommittedAsset.js +142 -0
- package/dist/Dependency.js +125 -0
- package/dist/Environment.js +132 -0
- package/dist/EnvironmentManager.js +108 -0
- package/dist/IdentifierRegistry.js +38 -0
- package/dist/InternalConfig.js +37 -0
- package/dist/PackagerRunner.js +545 -0
- package/dist/ReporterRunner.js +151 -0
- package/dist/RequestTracker.js +1360 -0
- package/dist/SymbolPropagation.js +620 -0
- package/dist/TargetDescriptor.schema.js +143 -0
- package/dist/Transformation.js +514 -0
- package/dist/UncommittedAsset.js +315 -0
- package/dist/Validation.js +196 -0
- package/dist/applyRuntimes.js +383 -0
- package/dist/assetUtils.js +169 -0
- package/dist/atlaspack-v3/AtlaspackV3.js +74 -0
- package/dist/atlaspack-v3/NapiWorkerPool.js +81 -0
- package/dist/atlaspack-v3/fs.js +52 -0
- package/dist/atlaspack-v3/index.js +25 -0
- package/dist/atlaspack-v3/jsCallable.js +16 -0
- package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
- package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
- package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
- package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
- package/dist/atlaspack-v3/worker/compat/index.js +25 -0
- package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
- package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
- package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
- package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
- package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
- package/dist/atlaspack-v3/worker/compat/target.js +14 -0
- package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
- package/dist/atlaspack-v3/worker/worker.js +381 -0
- package/dist/constants.js +17 -0
- package/dist/dumpGraphToGraphViz.js +281 -0
- package/dist/index.js +62 -0
- package/dist/loadAtlaspackPlugin.js +128 -0
- package/dist/loadDotEnv.js +41 -0
- package/dist/projectPath.js +83 -0
- package/dist/public/Asset.js +279 -0
- package/dist/public/Bundle.js +224 -0
- package/dist/public/BundleGraph.js +371 -0
- package/dist/public/BundleGroup.js +53 -0
- package/dist/public/Config.js +286 -0
- package/dist/public/Dependency.js +138 -0
- package/dist/public/Environment.js +278 -0
- package/dist/public/MutableBundleGraph.js +277 -0
- package/dist/public/PluginOptions.js +80 -0
- package/dist/public/Symbols.js +248 -0
- package/dist/public/Target.js +69 -0
- package/dist/registerCoreWithSerializer.js +38 -0
- package/dist/requests/AssetGraphRequest.js +439 -0
- package/dist/requests/AssetGraphRequestRust.js +273 -0
- package/dist/requests/AssetRequest.js +130 -0
- package/dist/requests/AtlaspackBuildRequest.js +92 -0
- package/dist/requests/AtlaspackConfigRequest.js +493 -0
- package/dist/requests/BundleGraphRequest.js +447 -0
- package/dist/requests/ConfigRequest.js +246 -0
- package/dist/requests/DevDepRequest.js +204 -0
- package/dist/requests/EntryRequest.js +314 -0
- package/dist/requests/PackageRequest.js +72 -0
- package/dist/requests/PathRequest.js +349 -0
- package/dist/requests/TargetRequest.js +1311 -0
- package/dist/requests/ValidationRequest.js +49 -0
- package/dist/requests/WriteBundleRequest.js +254 -0
- package/dist/requests/WriteBundlesRequest.js +184 -0
- package/dist/requests/asset-graph-diff.js +128 -0
- package/dist/requests/asset-graph-dot.js +131 -0
- package/dist/resolveOptions.js +269 -0
- package/dist/rustWorkerThreadDylibHack.js +19 -0
- package/dist/serializerCore.browser.js +43 -0
- package/dist/summarizeRequest.js +39 -0
- package/dist/types.js +31 -0
- package/dist/utils.js +172 -0
- package/dist/worker.js +123 -0
- package/lib/AssetGraph.js +111 -14
- package/lib/Atlaspack.js +94 -41
- package/lib/AtlaspackConfig.js +15 -3
- package/lib/AtlaspackConfig.schema.js +16 -5
- package/lib/BundleGraph.js +197 -32
- package/lib/CommittedAsset.js +7 -1
- package/lib/Dependency.js +8 -2
- package/lib/Environment.js +15 -8
- package/lib/EnvironmentManager.js +143 -0
- package/lib/IdentifierRegistry.js +1 -3
- package/lib/InternalConfig.js +3 -2
- package/lib/PackagerRunner.js +90 -27
- package/lib/ReporterRunner.js +6 -9
- package/lib/RequestTracker.js +266 -156
- package/lib/SymbolPropagation.js +42 -18
- package/lib/TargetDescriptor.schema.js +7 -1
- package/lib/Transformation.js +66 -15
- package/lib/UncommittedAsset.js +33 -12
- package/lib/Validation.js +18 -2
- package/lib/applyRuntimes.js +96 -4
- package/lib/assetUtils.js +15 -5
- package/lib/atlaspack-v3/AtlaspackV3.js +52 -14
- package/lib/atlaspack-v3/NapiWorkerPool.js +28 -1
- package/lib/atlaspack-v3/fs.js +3 -1
- package/lib/atlaspack-v3/index.js +28 -1
- package/lib/atlaspack-v3/jsCallable.js +0 -2
- package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
- package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
- package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
- package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
- package/lib/atlaspack-v3/worker/compat/mutable-asset.js +15 -10
- package/lib/atlaspack-v3/worker/compat/plugin-config.js +13 -34
- package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -0
- package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
- package/lib/atlaspack-v3/worker/compat/target.js +2 -0
- package/lib/atlaspack-v3/worker/index.js +3 -0
- package/lib/atlaspack-v3/worker/side-effect-detector.js +215 -0
- package/lib/atlaspack-v3/worker/worker.js +199 -71
- package/lib/constants.js +0 -1
- package/lib/dumpGraphToGraphViz.js +71 -16
- package/lib/index.js +45 -1
- package/lib/loadDotEnv.js +4 -1
- package/lib/projectPath.js +5 -0
- package/lib/public/Asset.js +21 -11
- package/lib/public/Bundle.js +15 -16
- package/lib/public/BundleGraph.js +25 -22
- package/lib/public/BundleGroup.js +4 -5
- package/lib/public/Config.js +118 -17
- package/lib/public/Dependency.js +8 -6
- package/lib/public/Environment.js +12 -7
- package/lib/public/MutableBundleGraph.js +54 -12
- package/lib/public/PluginOptions.js +2 -2
- package/lib/public/Symbols.js +11 -11
- package/lib/public/Target.js +7 -6
- package/lib/registerCoreWithSerializer.js +5 -3
- package/lib/requests/AssetGraphRequest.js +74 -27
- package/lib/requests/AssetGraphRequestRust.js +140 -64
- package/lib/requests/AssetRequest.js +23 -6
- package/lib/requests/AtlaspackBuildRequest.js +43 -4
- package/lib/requests/AtlaspackConfigRequest.js +27 -16
- package/lib/requests/BundleGraphRequest.js +41 -24
- package/lib/requests/ConfigRequest.js +53 -4
- package/lib/requests/DevDepRequest.js +31 -5
- package/lib/requests/EntryRequest.js +2 -0
- package/lib/requests/PackageRequest.js +16 -2
- package/lib/requests/PathRequest.js +24 -3
- package/lib/requests/TargetRequest.js +122 -57
- package/lib/requests/ValidationRequest.js +5 -1
- package/lib/requests/WriteBundleRequest.js +39 -11
- package/lib/requests/WriteBundlesRequest.js +51 -4
- package/lib/requests/asset-graph-diff.js +12 -7
- package/lib/requests/asset-graph-dot.js +1 -7
- package/lib/resolveOptions.js +38 -11
- package/lib/rustWorkerThreadDylibHack.js +0 -1
- package/lib/types/AssetGraph.d.ts +80 -0
- package/lib/types/Atlaspack.d.ts +52 -0
- package/lib/types/AtlaspackConfig.d.ts +65 -0
- package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
- package/lib/types/BundleGraph.d.ts +184 -0
- package/lib/types/CommittedAsset.d.ts +23 -0
- package/lib/types/Dependency.d.ts +44 -0
- package/lib/types/Environment.d.ts +11 -0
- package/lib/types/EnvironmentManager.d.ts +37 -0
- package/lib/types/IdentifierRegistry.d.ts +6 -0
- package/lib/types/InternalConfig.d.ts +23 -0
- package/lib/types/PackagerRunner.d.ts +85 -0
- package/lib/types/ReporterRunner.d.ts +25 -0
- package/lib/types/RequestTracker.d.ts +385 -0
- package/lib/types/SymbolPropagation.d.ts +11 -0
- package/lib/types/TargetDescriptor.schema.d.ts +5 -0
- package/lib/types/Transformation.d.ts +72 -0
- package/lib/types/UncommittedAsset.d.ts +61 -0
- package/lib/types/Validation.d.ts +37 -0
- package/lib/types/applyRuntimes.d.ts +25 -0
- package/lib/types/assetUtils.d.ts +42 -0
- package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +34 -0
- package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
- package/lib/types/atlaspack-v3/fs.d.ts +12 -0
- package/lib/types/atlaspack-v3/index.d.ts +6 -0
- package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
- package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
- package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
- package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
- package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
- package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
- package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
- package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
- package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
- package/lib/types/atlaspack-v3/worker/worker.d.ts +80 -0
- package/lib/types/constants.d.ts +13 -0
- package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
- package/lib/types/index.d.ts +8 -0
- package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
- package/lib/types/loadDotEnv.d.ts +3 -0
- package/lib/types/projectPath.d.ts +19 -0
- package/lib/types/public/Asset.d.ts +74 -0
- package/lib/types/public/Bundle.d.ts +45 -0
- package/lib/types/public/BundleGraph.d.ts +72 -0
- package/lib/types/public/BundleGroup.d.ts +12 -0
- package/lib/types/public/Config.d.ts +75 -0
- package/lib/types/public/Dependency.d.ts +32 -0
- package/lib/types/public/Environment.d.ts +34 -0
- package/lib/types/public/MutableBundleGraph.d.ts +26 -0
- package/lib/types/public/PluginOptions.d.ts +25 -0
- package/lib/types/public/Symbols.d.ts +81 -0
- package/lib/types/public/Target.d.ts +16 -0
- package/lib/types/registerCoreWithSerializer.d.ts +2 -0
- package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
- package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
- package/lib/types/requests/AssetRequest.d.ts +16 -0
- package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
- package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
- package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
- package/lib/types/requests/ConfigRequest.d.ts +67 -0
- package/lib/types/requests/DevDepRequest.d.ts +30 -0
- package/lib/types/requests/EntryRequest.d.ts +36 -0
- package/lib/types/requests/PackageRequest.d.ts +27 -0
- package/lib/types/requests/PathRequest.d.ts +48 -0
- package/lib/types/requests/TargetRequest.d.ts +48 -0
- package/lib/types/requests/ValidationRequest.d.ts +20 -0
- package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
- package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
- package/lib/types/requests/asset-graph-diff.d.ts +1 -0
- package/lib/types/requests/asset-graph-dot.d.ts +9 -0
- package/lib/types/resolveOptions.d.ts +3 -0
- package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
- package/lib/types/serializerCore.browser.d.ts +3 -0
- package/lib/types/summarizeRequest.d.ts +10 -0
- package/lib/types/types.d.ts +495 -0
- package/lib/types/utils.d.ts +23 -0
- package/lib/types/worker.d.ts +44 -0
- package/lib/types.js +8 -1
- package/lib/utils.js +17 -2
- package/lib/worker.js +30 -14
- package/package.json +25 -35
- package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
- package/src/{Atlaspack.js → Atlaspack.ts} +134 -67
- package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
- package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
- package/src/{BundleGraph.js → BundleGraph.ts} +383 -140
- package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
- package/src/{Dependency.js → Dependency.ts} +59 -42
- package/src/{Environment.js → Environment.ts} +24 -15
- package/src/EnvironmentManager.ts +154 -0
- package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
- package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
- package/src/{PackagerRunner.js → PackagerRunner.ts} +179 -87
- package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
- package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
- package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
- package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
- package/src/{Transformation.js → Transformation.ts} +110 -65
- package/src/{UncommittedAsset.js → UncommittedAsset.ts} +60 -39
- package/src/{Validation.js → Validation.ts} +32 -17
- package/src/{applyRuntimes.js → applyRuntimes.ts} +133 -26
- package/src/{assetUtils.js → assetUtils.ts} +49 -36
- package/src/atlaspack-v3/AtlaspackV3.ts +143 -0
- package/src/atlaspack-v3/NapiWorkerPool.ts +91 -0
- package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
- package/src/atlaspack-v3/{index.js → index.ts} +3 -4
- package/src/atlaspack-v3/jsCallable.ts +14 -0
- package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
- package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
- package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
- package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
- package/src/atlaspack-v3/worker/compat/index.ts +9 -0
- package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
- package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
- package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
- package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
- package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
- package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
- package/src/atlaspack-v3/worker/index.js +2 -1
- package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
- package/src/atlaspack-v3/worker/worker.ts +531 -0
- package/src/{constants.js → constants.ts} +0 -3
- package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
- package/src/index.ts +18 -0
- package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
- package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
- package/src/{projectPath.js → projectPath.ts} +20 -9
- package/src/public/{Asset.js → Asset.ts} +41 -28
- package/src/public/{Bundle.js → Bundle.ts} +28 -29
- package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
- package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
- package/src/public/{Config.js → Config.ts} +171 -33
- package/src/public/{Dependency.js → Dependency.ts} +20 -17
- package/src/public/{Environment.js → Environment.ts} +28 -17
- package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
- package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
- package/src/public/{Symbols.js → Symbols.ts} +75 -36
- package/src/public/{Target.js → Target.ts} +10 -8
- package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
- package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +129 -80
- package/src/requests/AssetGraphRequestRust.ts +364 -0
- package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
- package/src/requests/AtlaspackBuildRequest.ts +163 -0
- package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
- package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +97 -79
- package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
- package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
- package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
- package/src/requests/{PackageRequest.js → PackageRequest.ts} +34 -22
- package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
- package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
- package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
- package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
- package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
- package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
- package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
- package/src/{resolveOptions.js → resolveOptions.ts} +59 -25
- package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
- package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
- package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
- package/src/types.ts +650 -0
- package/src/{utils.js → utils.ts} +52 -21
- package/src/{worker.js → worker.ts} +50 -42
- package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
- package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
- package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
- package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
- package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
- package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
- package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
- package/test/Environment.test.ts +153 -0
- package/test/EnvironmentManager.test.ts +188 -0
- package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
- package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
- package/test/PackagerRunner.test.ts +0 -0
- package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
- package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
- package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
- package/test/PublicEnvironment.test.ts +49 -0
- package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
- package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
- package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
- package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
- package/test/fixtures/config-with-reporters/.parcelrc +7 -0
- package/test/fixtures/custom-targets/package.json +6 -0
- package/test/public/Config.test.ts +104 -0
- package/test/requests/AssetGraphRequestRust.test.ts +443 -0
- package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
- package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
- package/test/{test-utils.js → test-utils.ts} +4 -11
- package/test/{utils.test.js → utils.test.ts} +1 -3
- package/tsconfig.json +60 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/index.d.ts +0 -30
- package/src/atlaspack-v3/AtlaspackV3.js +0 -87
- package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
- package/src/atlaspack-v3/jsCallable.js +0 -18
- package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
- package/src/atlaspack-v3/worker/worker.js +0 -362
- package/src/index.js +0 -13
- package/src/requests/AssetGraphRequestRust.js +0 -263
- package/src/requests/AtlaspackBuildRequest.js +0 -111
- package/src/types.js +0 -600
- package/test/Environment.test.js +0 -119
- package/test/PackagerRunner.test.js +0 -27
- package/test/PublicEnvironment.test.js +0 -27
- package/test/requests/AssetGraphRequestRust.test.js +0 -411
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {NodeId} from '@atlaspack/graph';
|
|
4
2
|
import type {Async} from '@atlaspack/types';
|
|
5
3
|
import type {SharedReference} from '@atlaspack/workers';
|
|
@@ -20,6 +18,7 @@ import logger from '@atlaspack/logger';
|
|
|
20
18
|
|
|
21
19
|
import invariant from 'assert';
|
|
22
20
|
import nullthrows from 'nullthrows';
|
|
21
|
+
import {getFeatureFlag} from '@atlaspack/feature-flags';
|
|
23
22
|
import {PromiseQueue, setEqual} from '@atlaspack/utils';
|
|
24
23
|
import {hashString} from '@atlaspack/rust';
|
|
25
24
|
import ThrowableDiagnostic from '@atlaspack/diagnostic';
|
|
@@ -30,44 +29,47 @@ import createEntryRequest from './EntryRequest';
|
|
|
30
29
|
import createTargetRequest from './TargetRequest';
|
|
31
30
|
import createAssetRequest from './AssetRequest';
|
|
32
31
|
import createPathRequest from './PathRequest';
|
|
33
|
-
import {
|
|
32
|
+
import {ProjectPath, fromProjectPathRelative} from '../projectPath';
|
|
34
33
|
import dumpGraphToGraphViz from '../dumpGraphToGraphViz';
|
|
35
34
|
import {propagateSymbols} from '../SymbolPropagation';
|
|
36
35
|
import {requestTypes} from '../RequestTracker';
|
|
37
36
|
|
|
38
|
-
export type AssetGraphRequestInput = {
|
|
39
|
-
entries?: Array<ProjectPath
|
|
40
|
-
assetGroups?: Array<AssetGroup
|
|
41
|
-
optionsRef: SharedReference
|
|
42
|
-
name: string
|
|
43
|
-
shouldBuildLazily?: boolean
|
|
44
|
-
lazyIncludes?: RegExp[]
|
|
45
|
-
lazyExcludes?: RegExp[]
|
|
46
|
-
requestedAssetIds?: Set<string
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
37
|
+
export type AssetGraphRequestInput = {
|
|
38
|
+
entries?: Array<ProjectPath>;
|
|
39
|
+
assetGroups?: Array<AssetGroup>;
|
|
40
|
+
optionsRef: SharedReference;
|
|
41
|
+
name: string;
|
|
42
|
+
shouldBuildLazily?: boolean;
|
|
43
|
+
lazyIncludes?: RegExp[];
|
|
44
|
+
lazyExcludes?: RegExp[];
|
|
45
|
+
requestedAssetIds?: Set<string>;
|
|
46
|
+
skipSymbolProp?: boolean;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export type AssetGraphRequestResult = {
|
|
50
|
+
assetGraph: AssetGraph;
|
|
51
51
|
/** Assets added/modified since the last successful build. */
|
|
52
|
-
changedAssets: Map<string, Asset
|
|
52
|
+
changedAssets: Map<string, Asset>;
|
|
53
53
|
/** Assets added/modified since the last symbol propagation invocation. */
|
|
54
|
-
changedAssetsPropagation: Set<string
|
|
55
|
-
assetGroupsWithRemovedParents:
|
|
56
|
-
previousSymbolPropagationErrors:
|
|
57
|
-
|
|
58
|
-
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
54
|
+
changedAssetsPropagation: Set<string>;
|
|
55
|
+
assetGroupsWithRemovedParents: Set<NodeId> | null | undefined;
|
|
56
|
+
previousSymbolPropagationErrors:
|
|
57
|
+
| Map<NodeId, Array<Diagnostic>>
|
|
58
|
+
| null
|
|
59
|
+
| undefined;
|
|
60
|
+
assetRequests: Array<AssetGroup>;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
type RunInput = {
|
|
64
|
+
input: AssetGraphRequestInput;
|
|
65
|
+
} & StaticRunOpts<AssetGraphRequestResult>;
|
|
66
|
+
|
|
67
|
+
type AssetGraphRequest = {
|
|
68
|
+
id: string;
|
|
69
|
+
readonly type: typeof requestTypes.asset_graph_request;
|
|
70
|
+
run: (arg1: RunInput) => Async<AssetGraphRequestResult>;
|
|
71
|
+
input: AssetGraphRequestInput;
|
|
72
|
+
};
|
|
71
73
|
|
|
72
74
|
export default function createAssetGraphRequest(
|
|
73
75
|
requestInput: AssetGraphRequestInput,
|
|
@@ -80,9 +82,14 @@ export default function createAssetGraphRequest(
|
|
|
80
82
|
await input.api.getPreviousResult<AssetGraphRequestResult>();
|
|
81
83
|
|
|
82
84
|
let builder = new AssetGraphBuilder(input, prevResult);
|
|
83
|
-
let assetGraphRequest = await
|
|
85
|
+
let assetGraphRequest = await builder.build();
|
|
84
86
|
|
|
85
87
|
// early break for incremental bundling if production or flag is off;
|
|
88
|
+
assetGraphRequest.assetGraph.setDisableIncrementalBundling(
|
|
89
|
+
!input.options.shouldBundleIncrementally ||
|
|
90
|
+
input.options.mode === 'production',
|
|
91
|
+
);
|
|
92
|
+
|
|
86
93
|
if (
|
|
87
94
|
!input.options.shouldBundleIncrementally ||
|
|
88
95
|
input.options.mode === 'production'
|
|
@@ -106,10 +113,10 @@ const typesWithRequests = new Set([
|
|
|
106
113
|
export class AssetGraphBuilder {
|
|
107
114
|
assetGraph: AssetGraph;
|
|
108
115
|
assetRequests: Array<AssetGroup> = [];
|
|
109
|
-
queue: PromiseQueue<
|
|
116
|
+
queue: PromiseQueue<unknown>;
|
|
110
117
|
changedAssets: Map<string, Asset>;
|
|
111
118
|
changedAssetsPropagation: Set<string>;
|
|
112
|
-
prevChangedAssetsPropagation:
|
|
119
|
+
prevChangedAssetsPropagation: Set<string> | null | undefined;
|
|
113
120
|
optionsRef: SharedReference;
|
|
114
121
|
options: AtlaspackOptions;
|
|
115
122
|
api: RunAPI<AssetGraphRequestResult>;
|
|
@@ -122,10 +129,11 @@ export class AssetGraphBuilder {
|
|
|
122
129
|
isSingleChangeRebuild: boolean;
|
|
123
130
|
assetGroupsWithRemovedParents: Set<NodeId>;
|
|
124
131
|
previousSymbolPropagationErrors: Map<NodeId, Array<Diagnostic>>;
|
|
132
|
+
skipSymbolProp: boolean;
|
|
125
133
|
|
|
126
134
|
constructor(
|
|
127
135
|
{input, api, options}: RunInput,
|
|
128
|
-
prevResult
|
|
136
|
+
prevResult?: AssetGraphRequestResult | null,
|
|
129
137
|
) {
|
|
130
138
|
let {
|
|
131
139
|
entries,
|
|
@@ -161,20 +169,32 @@ export class AssetGraphBuilder {
|
|
|
161
169
|
this.shouldBuildLazily = shouldBuildLazily ?? false;
|
|
162
170
|
this.lazyIncludes = lazyIncludes ?? [];
|
|
163
171
|
this.lazyExcludes = lazyExcludes ?? [];
|
|
164
|
-
this.
|
|
165
|
-
|
|
172
|
+
this.skipSymbolProp = input.skipSymbolProp ?? false;
|
|
173
|
+
|
|
174
|
+
if (getFeatureFlag('cachePerformanceImprovements')) {
|
|
175
|
+
const key = hashString(
|
|
166
176
|
`${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
|
|
167
177
|
options.mode
|
|
168
178
|
}${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
|
|
169
|
-
)
|
|
179
|
+
);
|
|
180
|
+
this.cacheKey = `AssetGraph/${ATLASPACK_VERSION}/${options.mode}/${key}`;
|
|
181
|
+
} else {
|
|
182
|
+
this.cacheKey =
|
|
183
|
+
hashString(
|
|
184
|
+
`${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
|
|
185
|
+
options.mode
|
|
186
|
+
}${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
|
|
187
|
+
) + '-AssetGraph';
|
|
188
|
+
}
|
|
170
189
|
|
|
171
190
|
this.isSingleChangeRebuild =
|
|
172
191
|
api
|
|
173
192
|
.getInvalidSubRequests()
|
|
193
|
+
// @ts-expect-error TS2367
|
|
174
194
|
.filter((req) => req.requestType === 'asset_request').length === 1;
|
|
175
195
|
this.queue = new PromiseQueue();
|
|
176
196
|
|
|
177
|
-
assetGraph.onNodeRemoved = (nodeId) => {
|
|
197
|
+
assetGraph.onNodeRemoved = (nodeId: NodeId) => {
|
|
178
198
|
this.assetGroupsWithRemovedParents.delete(nodeId);
|
|
179
199
|
|
|
180
200
|
// This needs to mark all connected nodes that doesn't become orphaned
|
|
@@ -196,7 +216,7 @@ export class AssetGraphBuilder {
|
|
|
196
216
|
}
|
|
197
217
|
|
|
198
218
|
async build(): Promise<AssetGraphRequestResult> {
|
|
199
|
-
let errors = [];
|
|
219
|
+
let errors: Array<Error> = [];
|
|
200
220
|
let rootNodeId = nullthrows(
|
|
201
221
|
this.assetGraph.rootNodeId,
|
|
202
222
|
'A root node is required to traverse',
|
|
@@ -224,6 +244,7 @@ export class AssetGraphBuilder {
|
|
|
224
244
|
for (let childNodeId of this.assetGraph.getNodeIdsConnectedFrom(nodeId)) {
|
|
225
245
|
let child = nullthrows(this.assetGraph.getNode(childNodeId));
|
|
226
246
|
if (
|
|
247
|
+
// @ts-expect-error TS2339
|
|
227
248
|
(!visited.has(childNodeId) || child.hasDeferred) &&
|
|
228
249
|
this.shouldVisitChild(nodeId, childNodeId)
|
|
229
250
|
) {
|
|
@@ -281,41 +302,51 @@ export class AssetGraphBuilder {
|
|
|
281
302
|
this.assetGraph,
|
|
282
303
|
'AssetGraph_' + this.name + '_before_prop',
|
|
283
304
|
);
|
|
284
|
-
try {
|
|
285
|
-
let errors = propagateSymbols({
|
|
286
|
-
options: this.options,
|
|
287
|
-
assetGraph: this.assetGraph,
|
|
288
|
-
changedAssetsPropagation: this.changedAssetsPropagation,
|
|
289
|
-
assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
|
|
290
|
-
previousErrors: this.previousSymbolPropagationErrors,
|
|
291
|
-
});
|
|
292
|
-
this.changedAssetsPropagation.clear();
|
|
293
|
-
|
|
294
|
-
if (errors.size > 0) {
|
|
295
|
-
this.api.storeResult(
|
|
296
|
-
{
|
|
297
|
-
assetGraph: this.assetGraph,
|
|
298
|
-
changedAssets: this.changedAssets,
|
|
299
|
-
changedAssetsPropagation: this.changedAssetsPropagation,
|
|
300
|
-
assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
|
|
301
|
-
previousSymbolPropagationErrors: errors,
|
|
302
|
-
assetRequests: [],
|
|
303
|
-
},
|
|
304
|
-
this.cacheKey,
|
|
305
|
-
);
|
|
306
305
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
306
|
+
// Skip symbol propagation for runtime assets - they have pre-computed symbol data
|
|
307
|
+
if (this.skipSymbolProp) {
|
|
308
|
+
logger.verbose({
|
|
309
|
+
origin: '@atlaspack/core',
|
|
310
|
+
message: 'Skipping symbol propagation for runtime asset graph',
|
|
311
|
+
});
|
|
312
|
+
} else {
|
|
313
|
+
try {
|
|
314
|
+
let errors = propagateSymbols({
|
|
315
|
+
options: this.options,
|
|
316
|
+
assetGraph: this.assetGraph,
|
|
317
|
+
changedAssetsPropagation: this.changedAssetsPropagation,
|
|
318
|
+
assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
|
|
319
|
+
previousErrors: this.previousSymbolPropagationErrors,
|
|
311
320
|
});
|
|
321
|
+
this.changedAssetsPropagation.clear();
|
|
322
|
+
|
|
323
|
+
if (errors.size > 0) {
|
|
324
|
+
this.api.storeResult(
|
|
325
|
+
{
|
|
326
|
+
assetGraph: this.assetGraph,
|
|
327
|
+
changedAssets: this.changedAssets,
|
|
328
|
+
changedAssetsPropagation: this.changedAssetsPropagation,
|
|
329
|
+
assetGroupsWithRemovedParents:
|
|
330
|
+
this.assetGroupsWithRemovedParents,
|
|
331
|
+
previousSymbolPropagationErrors: errors,
|
|
332
|
+
assetRequests: [],
|
|
333
|
+
},
|
|
334
|
+
this.cacheKey,
|
|
335
|
+
);
|
|
336
|
+
|
|
337
|
+
// Just throw the first error. Since errors can bubble (e.g. reexporting a reexported symbol also fails),
|
|
338
|
+
// determining which failing export is the root cause is nontrivial (because of circular dependencies).
|
|
339
|
+
throw new ThrowableDiagnostic({
|
|
340
|
+
diagnostic: [...errors.values()][0],
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
} catch (e: any) {
|
|
344
|
+
await dumpGraphToGraphViz(
|
|
345
|
+
this.assetGraph,
|
|
346
|
+
'AssetGraph_' + this.name + '_failed',
|
|
347
|
+
);
|
|
348
|
+
throw e;
|
|
312
349
|
}
|
|
313
|
-
} catch (e) {
|
|
314
|
-
await dumpGraphToGraphViz(
|
|
315
|
-
this.assetGraph,
|
|
316
|
-
'AssetGraph_' + this.name + '_failed',
|
|
317
|
-
);
|
|
318
|
-
throw e;
|
|
319
350
|
}
|
|
320
351
|
}
|
|
321
352
|
await dumpGraphToGraphViz(this.assetGraph, 'AssetGraph_' + this.name);
|
|
@@ -428,9 +459,12 @@ export class AssetGraphBuilder {
|
|
|
428
459
|
shouldSkipRequest(nodeId: NodeId): boolean {
|
|
429
460
|
let node = nullthrows(this.assetGraph.getNode(nodeId));
|
|
430
461
|
return (
|
|
462
|
+
// @ts-expect-error TS2339
|
|
431
463
|
node.complete === true ||
|
|
432
464
|
!typesWithRequests.has(node.type) ||
|
|
465
|
+
// @ts-expect-error TS2339
|
|
433
466
|
(node.correspondingRequest != null &&
|
|
467
|
+
// @ts-expect-error TS2339
|
|
434
468
|
this.api.canSkipSubrequest(node.correspondingRequest))
|
|
435
469
|
);
|
|
436
470
|
}
|
|
@@ -459,7 +493,7 @@ export class AssetGraphBuilder {
|
|
|
459
493
|
`Can not queue corresponding request of node with type ${node.type}`,
|
|
460
494
|
);
|
|
461
495
|
}
|
|
462
|
-
return new Promise((resolve) => {
|
|
496
|
+
return new Promise((resolve: (result: Promise<null> | null) => void) => {
|
|
463
497
|
this.queue.add(() =>
|
|
464
498
|
promise.then(
|
|
465
499
|
() => {
|
|
@@ -501,6 +535,7 @@ export class AssetGraphBuilder {
|
|
|
501
535
|
|
|
502
536
|
if (didEntriesChange) {
|
|
503
537
|
this.assetGraph.safeToIncrementallyBundle = false;
|
|
538
|
+
this.assetGraph.setNeedsBundling();
|
|
504
539
|
}
|
|
505
540
|
}
|
|
506
541
|
}
|
|
@@ -515,15 +550,16 @@ export class AssetGraphBuilder {
|
|
|
515
550
|
|
|
516
551
|
async runPathRequest(input: Dependency) {
|
|
517
552
|
let request = createPathRequest({dependency: input, name: this.name});
|
|
518
|
-
let result = await this.api.runRequest<
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
);
|
|
553
|
+
let result = await this.api.runRequest<
|
|
554
|
+
PathRequestInput,
|
|
555
|
+
AssetGroup | null | undefined
|
|
556
|
+
>(request, {force: true});
|
|
522
557
|
this.assetGraph.resolveDependency(input, result, request.id);
|
|
523
558
|
}
|
|
524
559
|
|
|
525
560
|
async runAssetRequest(input: AssetGroup) {
|
|
526
561
|
this.assetRequests.push(input);
|
|
562
|
+
// @ts-expect-error TS2345
|
|
527
563
|
let request = createAssetRequest({
|
|
528
564
|
...input,
|
|
529
565
|
name: this.name,
|
|
@@ -538,16 +574,28 @@ export class AssetGraphBuilder {
|
|
|
538
574
|
|
|
539
575
|
if (assets != null) {
|
|
540
576
|
for (let asset of assets) {
|
|
577
|
+
// Pass the runtimeAssetRequiringExecutionOnLoad flag from the asset
|
|
578
|
+
// group down to the asset itself, for reading in the packager.
|
|
579
|
+
if (input.runtimeAssetRequiringExecutionOnLoad) {
|
|
580
|
+
asset.meta = {
|
|
581
|
+
...(asset.meta ?? {}),
|
|
582
|
+
runtimeAssetRequiringExecutionOnLoad:
|
|
583
|
+
input.runtimeAssetRequiringExecutionOnLoad,
|
|
584
|
+
};
|
|
585
|
+
}
|
|
586
|
+
|
|
541
587
|
if (this.assetGraph.safeToIncrementallyBundle) {
|
|
542
588
|
let otherAsset = this.assetGraph.getNodeByContentKey(asset.id);
|
|
543
589
|
if (otherAsset != null) {
|
|
544
590
|
invariant(otherAsset.type === 'asset');
|
|
545
591
|
if (!this._areDependenciesEqualForAssets(asset, otherAsset.value)) {
|
|
546
592
|
this.assetGraph.safeToIncrementallyBundle = false;
|
|
593
|
+
this.assetGraph.setNeedsBundling();
|
|
547
594
|
}
|
|
548
595
|
} else {
|
|
549
596
|
// adding a new entry or dependency
|
|
550
597
|
this.assetGraph.safeToIncrementallyBundle = false;
|
|
598
|
+
this.assetGraph.setNeedsBundling();
|
|
551
599
|
}
|
|
552
600
|
}
|
|
553
601
|
this.changedAssets.set(asset.id, asset);
|
|
@@ -556,6 +604,7 @@ export class AssetGraphBuilder {
|
|
|
556
604
|
this.assetGraph.resolveAssetGroup(input, assets, request.id);
|
|
557
605
|
} else {
|
|
558
606
|
this.assetGraph.safeToIncrementallyBundle = false;
|
|
607
|
+
this.assetGraph.setNeedsBundling();
|
|
559
608
|
}
|
|
560
609
|
|
|
561
610
|
this.isSingleChangeRebuild = false;
|