@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.
- package/CHANGELOG.md +1324 -0
- package/dist/AssetGraph.js +523 -0
- package/dist/Atlaspack.js +701 -0
- package/dist/AtlaspackConfig.js +324 -0
- package/dist/AtlaspackConfig.schema.js +117 -0
- package/dist/BundleGraph.js +1906 -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 +470 -0
- package/dist/ReporterRunner.js +151 -0
- package/dist/RequestTracker.js +1297 -0
- package/dist/SymbolPropagation.js +624 -0
- package/dist/TargetDescriptor.schema.js +146 -0
- package/dist/Transformation.js +514 -0
- package/dist/UncommittedAsset.js +310 -0
- package/dist/Validation.js +196 -0
- package/dist/applyRuntimes.js +384 -0
- package/dist/assetUtils.js +169 -0
- package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
- package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
- package/dist/atlaspack-v3/fs.js +53 -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 +24 -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-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 +398 -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 +430 -0
- package/dist/requests/AssetGraphRequestRust.js +471 -0
- package/dist/requests/AssetRequest.js +130 -0
- package/dist/requests/AtlaspackBuildRequest.js +98 -0
- package/dist/requests/AtlaspackConfigRequest.js +493 -0
- package/dist/requests/BundleGraphRequest.js +381 -0
- package/dist/requests/BundleGraphRequestRust.js +324 -0
- package/dist/requests/BundleGraphRequestUtils.js +262 -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 +89 -0
- package/dist/requests/PathRequest.js +349 -0
- package/dist/requests/TargetRequest.js +1316 -0
- package/dist/requests/ValidationRequest.js +49 -0
- package/dist/requests/WriteBundleRequest.js +522 -0
- package/dist/requests/WriteBundlesRequest.js +190 -0
- package/dist/requests/asset-graph-diff.js +128 -0
- package/dist/requests/asset-graph-dot.js +131 -0
- package/dist/resolveOptions.js +267 -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 +53 -15
- package/lib/Atlaspack.js +140 -56
- package/lib/AtlaspackConfig.js +17 -6
- package/lib/AtlaspackConfig.schema.js +16 -5
- package/lib/BundleGraph.js +390 -43
- package/lib/CommittedAsset.js +8 -2
- package/lib/Dependency.js +9 -3
- package/lib/Environment.js +16 -10
- package/lib/EnvironmentManager.js +143 -0
- package/lib/IdentifierRegistry.js +2 -4
- package/lib/InternalConfig.js +3 -2
- package/lib/PackagerRunner.js +46 -82
- package/lib/ReporterRunner.js +8 -12
- package/lib/RequestTracker.js +191 -152
- package/lib/SymbolPropagation.js +52 -29
- package/lib/TargetDescriptor.schema.js +10 -1
- package/lib/Transformation.js +68 -19
- package/lib/UncommittedAsset.js +17 -24
- package/lib/Validation.js +20 -5
- package/lib/applyRuntimes.js +98 -7
- package/lib/assetUtils.js +16 -6
- package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
- package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
- package/lib/atlaspack-v3/fs.js +4 -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/index.js +0 -11
- package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
- package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
- package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
- 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 +214 -0
- package/lib/atlaspack-v3/worker/worker.js +231 -79
- package/lib/constants.js +0 -1
- package/lib/dumpGraphToGraphViz.js +72 -17
- package/lib/index.js +46 -3
- package/lib/loadAtlaspackPlugin.js +2 -3
- package/lib/loadDotEnv.js +5 -2
- package/lib/projectPath.js +6 -1
- package/lib/public/Asset.js +22 -12
- package/lib/public/Bundle.js +16 -18
- package/lib/public/BundleGraph.js +27 -25
- package/lib/public/BundleGroup.js +5 -6
- package/lib/public/Config.js +118 -18
- package/lib/public/Dependency.js +9 -7
- package/lib/public/Environment.js +13 -8
- package/lib/public/MutableBundleGraph.js +56 -15
- package/lib/public/PluginOptions.js +2 -2
- package/lib/public/Symbols.js +12 -12
- package/lib/public/Target.js +8 -7
- package/lib/registerCoreWithSerializer.js +7 -4
- package/lib/requests/AssetGraphRequest.js +61 -40
- package/lib/requests/AssetGraphRequestRust.js +314 -82
- package/lib/requests/AssetRequest.js +24 -7
- package/lib/requests/AtlaspackBuildRequest.js +53 -7
- package/lib/requests/AtlaspackConfigRequest.js +29 -19
- package/lib/requests/BundleGraphRequest.js +61 -130
- package/lib/requests/BundleGraphRequestRust.js +381 -0
- package/lib/requests/BundleGraphRequestUtils.js +280 -0
- package/lib/requests/ConfigRequest.js +55 -7
- package/lib/requests/DevDepRequest.js +32 -6
- package/lib/requests/EntryRequest.js +4 -3
- package/lib/requests/PackageRequest.js +56 -12
- package/lib/requests/PathRequest.js +26 -6
- package/lib/requests/TargetRequest.js +129 -60
- package/lib/requests/ValidationRequest.js +6 -2
- package/lib/requests/WriteBundleRequest.js +329 -20
- package/lib/requests/WriteBundlesRequest.js +64 -10
- package/lib/requests/asset-graph-diff.js +13 -8
- package/lib/requests/asset-graph-dot.js +2 -8
- package/lib/resolveOptions.js +37 -14
- package/lib/rustWorkerThreadDylibHack.js +0 -1
- package/lib/serializerCore.browser.js +1 -2
- package/lib/summarizeRequest.js +1 -1
- package/lib/types/AssetGraph.d.ts +55 -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 +232 -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 +35 -0
- package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
- package/lib/types/atlaspack-v3/fs.d.ts +13 -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 -2
- 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-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 +81 -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/BundleGraphRequestRust.d.ts +34 -0
- package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -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 +80 -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 +496 -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 +18 -3
- package/lib/worker.js +32 -15
- package/package.json +26 -36
- package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
- package/src/{Atlaspack.js → Atlaspack.ts} +181 -72
- package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
- package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
- package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
- 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} +114 -159
- package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
- package/src/{RequestTracker.js → RequestTracker.ts} +444 -355
- package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
- package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
- package/src/{Transformation.js → Transformation.ts} +110 -65
- package/src/{UncommittedAsset.js → UncommittedAsset.ts} +45 -49
- package/src/{Validation.js → Validation.ts} +32 -17
- package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
- package/src/{assetUtils.js → assetUtils.ts} +49 -36
- package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
- package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
- package/src/atlaspack-v3/{fs.js → fs.ts} +8 -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 +8 -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-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 +548 -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} +117 -90
- package/src/requests/AssetGraphRequestRust.ts +557 -0
- package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
- package/src/requests/AtlaspackBuildRequest.ts +168 -0
- package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
- package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +119 -199
- package/src/requests/BundleGraphRequestRust.ts +470 -0
- package/src/requests/BundleGraphRequestUtils.ts +323 -0
- 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} +52 -25
- package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
- package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
- package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
- package/src/requests/WriteBundleRequest.ts +734 -0
- package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
- 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} +57 -27
- 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 +651 -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} +5 -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} +136 -58
- package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
- package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -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/requests/WriteBundleRequest.test.ts +602 -0
- package/test/{test-utils.js → test-utils.ts} +3 -4
- 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/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
- 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/compat/plugin-logger.js +0 -47
- package/src/atlaspack-v3/worker/worker.js +0 -369
- package/src/index.js +0 -13
- package/src/requests/AssetGraphRequestRust.js +0 -263
- package/src/requests/AtlaspackBuildRequest.js +0 -111
- package/src/requests/WriteBundleRequest.js +0 -369
- 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,14 +1,18 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {ContentKey} from '@atlaspack/graph';
|
|
4
2
|
import type {Async} from '@atlaspack/types';
|
|
5
3
|
import {getFeatureFlag} from '@atlaspack/feature-flags';
|
|
6
4
|
import type {SharedReference} from '@atlaspack/workers';
|
|
7
5
|
import type {StaticRunOpts} from '../RequestTracker';
|
|
8
6
|
import {requestTypes} from '../RequestTracker';
|
|
9
|
-
import
|
|
7
|
+
import {
|
|
8
|
+
BundleBehavior,
|
|
9
|
+
type PackagedBundleInfo,
|
|
10
|
+
type Bundle,
|
|
11
|
+
type AtlaspackOptions,
|
|
12
|
+
} from '../types';
|
|
10
13
|
import type BundleGraph from '../BundleGraph';
|
|
11
14
|
import type {BundleInfo} from '../PackagerRunner';
|
|
15
|
+
import {report} from '../ReporterRunner';
|
|
12
16
|
|
|
13
17
|
import {HASH_REF_PREFIX} from '../constants';
|
|
14
18
|
import {joinProjectPath} from '../projectPath';
|
|
@@ -16,27 +20,59 @@ import nullthrows from 'nullthrows';
|
|
|
16
20
|
import {hashString} from '@atlaspack/rust';
|
|
17
21
|
import {createPackageRequest} from './PackageRequest';
|
|
18
22
|
import createWriteBundleRequest from './WriteBundleRequest';
|
|
23
|
+
import {debugTools} from '@atlaspack/utils';
|
|
19
24
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
optionsRef: SharedReference,
|
|
23
|
-
|};
|
|
25
|
+
/** Length of the hash suffix in output filenames (e.g. .runtime.13dc01ac.js). */
|
|
26
|
+
const NAME_HASH_DISPLAY_LEN = 8;
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
/** Use at most NAME_HASH_DISPLAY_LEN chars for the name hash so filenames stay short. */
|
|
29
|
+
function nameHashForFilename(hash: string): string {
|
|
30
|
+
return hash.length <= NAME_HASH_DISPLAY_LEN
|
|
31
|
+
? hash
|
|
32
|
+
: hash.slice(-NAME_HASH_DISPLAY_LEN);
|
|
33
|
+
}
|
|
26
34
|
|
|
27
|
-
type
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
35
|
+
type WriteBundlesRequestInput = {
|
|
36
|
+
bundleGraph: BundleGraph;
|
|
37
|
+
optionsRef: SharedReference;
|
|
38
|
+
};
|
|
31
39
|
|
|
32
|
-
export type
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
export type WriteBundlesRequestResult = {
|
|
41
|
+
bundleInfo: Map<string, PackagedBundleInfo>;
|
|
42
|
+
scopeHoistingStats?: {
|
|
43
|
+
totalAssets: number;
|
|
44
|
+
wrappedAssets: number;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
type RunInput<TResult> = {
|
|
49
|
+
input: WriteBundlesRequestInput;
|
|
50
|
+
} & StaticRunOpts<TResult>;
|
|
51
|
+
|
|
52
|
+
export type WriteBundlesRequest = {
|
|
53
|
+
id: ContentKey;
|
|
54
|
+
readonly type: typeof requestTypes.write_bundles_request;
|
|
35
55
|
run: (
|
|
36
|
-
RunInput<WriteBundlesRequestResult>,
|
|
37
|
-
) => Async<WriteBundlesRequestResult
|
|
38
|
-
input: WriteBundlesRequestInput
|
|
39
|
-
|
|
56
|
+
arg1: RunInput<WriteBundlesRequestResult>,
|
|
57
|
+
) => Async<WriteBundlesRequestResult>;
|
|
58
|
+
input: WriteBundlesRequestInput;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
function reportPackagingProgress(
|
|
62
|
+
completeBundles: number,
|
|
63
|
+
totalBundles: number,
|
|
64
|
+
) {
|
|
65
|
+
if (!getFeatureFlag('cliProgressReportingImprovements')) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
report({
|
|
70
|
+
type: 'buildProgress',
|
|
71
|
+
phase: 'packagingAndOptimizing',
|
|
72
|
+
totalBundles,
|
|
73
|
+
completeBundles,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
40
76
|
|
|
41
77
|
/**
|
|
42
78
|
* Packages, optimizes, and writes all bundles to the dist directory.
|
|
@@ -52,17 +88,22 @@ export default function createWriteBundlesRequest(
|
|
|
52
88
|
};
|
|
53
89
|
}
|
|
54
90
|
|
|
55
|
-
async function run({
|
|
91
|
+
async function run({
|
|
92
|
+
input,
|
|
93
|
+
api,
|
|
94
|
+
farm,
|
|
95
|
+
options,
|
|
96
|
+
}: RunInput<WriteBundlesRequestResult>) {
|
|
56
97
|
let {bundleGraph, optionsRef} = input;
|
|
57
98
|
let {ref, dispose} = await farm.createSharedReference(bundleGraph);
|
|
58
99
|
|
|
59
100
|
api.invalidateOnOptionChange('shouldContentHash');
|
|
60
101
|
|
|
61
102
|
let res = new Map();
|
|
62
|
-
let bundleInfoMap: {
|
|
63
|
-
[string]: BundleInfo
|
|
64
|
-
|
|
65
|
-
let writeEarlyPromises = {};
|
|
103
|
+
let bundleInfoMap: {
|
|
104
|
+
[key: string]: BundleInfo;
|
|
105
|
+
} = {};
|
|
106
|
+
let writeEarlyPromises: Record<string, Promise<PackagedBundleInfo>> = {};
|
|
66
107
|
let hashRefToNameHash = new Map();
|
|
67
108
|
|
|
68
109
|
// Include inline bundles so that non-inline bundles referenced from inline bundles are written to
|
|
@@ -71,19 +112,24 @@ async function run({input, api, farm, options}) {
|
|
|
71
112
|
includeInline: getFeatureFlag('inlineBundlesSourceMapFixes'),
|
|
72
113
|
});
|
|
73
114
|
const bundles = allBundles
|
|
74
|
-
.filter(
|
|
115
|
+
.filter(
|
|
116
|
+
(bundle) =>
|
|
117
|
+
bundle.bundleBehavior !== BundleBehavior.inline &&
|
|
118
|
+
bundle.bundleBehavior !== BundleBehavior.inlineIsolated,
|
|
119
|
+
)
|
|
75
120
|
.filter((bundle) => {
|
|
76
121
|
// Do not package and write placeholder bundles to disk. We just
|
|
77
122
|
// need to update the name so other bundles can reference it.
|
|
78
123
|
if (bundle.isPlaceholder) {
|
|
79
|
-
|
|
80
|
-
hashRefToNameHash.set(bundle.hashReference,
|
|
124
|
+
const nameHash = nameHashForFilename(bundle.id);
|
|
125
|
+
hashRefToNameHash.set(bundle.hashReference, nameHash);
|
|
81
126
|
let name = nullthrows(
|
|
82
127
|
bundle.name,
|
|
83
128
|
`Expected ${bundle.type} bundle to have a name`,
|
|
84
|
-
).replace(bundle.hashReference,
|
|
129
|
+
).replace(bundle.hashReference, nameHash);
|
|
85
130
|
res.set(bundle.id, {
|
|
86
131
|
filePath: joinProjectPath(bundle.target.distDir, name),
|
|
132
|
+
bundleId: bundle.id,
|
|
87
133
|
type: bundle.type, // FIXME: this is wrong if the packager changes the type...
|
|
88
134
|
stats: {
|
|
89
135
|
time: 0,
|
|
@@ -96,14 +142,19 @@ async function run({input, api, farm, options}) {
|
|
|
96
142
|
return true;
|
|
97
143
|
});
|
|
98
144
|
|
|
145
|
+
let cachedBundles = new Set(
|
|
146
|
+
bundles.filter((b) => api.canSkipSubrequest(bundleGraph.getHash(b))),
|
|
147
|
+
);
|
|
148
|
+
|
|
99
149
|
// Package on the main thread if there is only one bundle to package.
|
|
100
150
|
// This avoids the cost of serializing the bundle graph for single file change builds.
|
|
101
151
|
let useMainThread =
|
|
102
|
-
bundles.length === 1 ||
|
|
103
|
-
bundles.filter((b) => !api.canSkipSubrequest(bundleGraph.getHash(b)))
|
|
104
|
-
.length === 1;
|
|
152
|
+
bundles.length === 1 || bundles.length - cachedBundles.size <= 1;
|
|
105
153
|
|
|
106
154
|
try {
|
|
155
|
+
let completeBundles = cachedBundles.size;
|
|
156
|
+
reportPackagingProgress(completeBundles, bundles.length);
|
|
157
|
+
|
|
107
158
|
await Promise.all(
|
|
108
159
|
bundles.map(async (bundle) => {
|
|
109
160
|
let request = createPackageRequest({
|
|
@@ -116,6 +167,11 @@ async function run({input, api, farm, options}) {
|
|
|
116
167
|
|
|
117
168
|
let info = await api.runRequest(request);
|
|
118
169
|
|
|
170
|
+
if (!cachedBundles.has(bundle)) {
|
|
171
|
+
completeBundles++;
|
|
172
|
+
reportPackagingProgress(completeBundles, bundles.length);
|
|
173
|
+
}
|
|
174
|
+
|
|
119
175
|
if (!useMainThread) {
|
|
120
176
|
// Force a refresh of the cache to avoid a race condition
|
|
121
177
|
// between threaded reads and writes that can result in an LMDB cache miss:
|
|
@@ -132,9 +188,9 @@ async function run({input, api, farm, options}) {
|
|
|
132
188
|
if (!info.hashReferences.length) {
|
|
133
189
|
hashRefToNameHash.set(
|
|
134
190
|
bundle.hashReference,
|
|
135
|
-
|
|
136
|
-
? info.hash.
|
|
137
|
-
|
|
191
|
+
nameHashForFilename(
|
|
192
|
+
options.shouldContentHash ? info.hash : bundle.id,
|
|
193
|
+
),
|
|
138
194
|
);
|
|
139
195
|
let writeBundleRequest = createWriteBundleRequest({
|
|
140
196
|
bundle,
|
|
@@ -167,18 +223,42 @@ async function run({input, api, farm, options}) {
|
|
|
167
223
|
}),
|
|
168
224
|
);
|
|
169
225
|
|
|
170
|
-
|
|
171
|
-
|
|
226
|
+
let result: WriteBundlesRequestResult = {bundleInfo: res};
|
|
227
|
+
|
|
228
|
+
if (debugTools['scope-hoisting-stats']) {
|
|
229
|
+
// Aggregate scope hoisting stats from all bundles
|
|
230
|
+
let aggregatedScopeHoistingStats = {
|
|
231
|
+
totalAssets: 0,
|
|
232
|
+
wrappedAssets: 0,
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
for (let bundle of bundles) {
|
|
236
|
+
let bundleInfo = bundleInfoMap[bundle.id];
|
|
237
|
+
if (bundleInfo?.scopeHoistingStats) {
|
|
238
|
+
aggregatedScopeHoistingStats.totalAssets +=
|
|
239
|
+
bundleInfo.scopeHoistingStats.totalAssets;
|
|
240
|
+
aggregatedScopeHoistingStats.wrappedAssets +=
|
|
241
|
+
bundleInfo.scopeHoistingStats.wrappedAssets;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
result.scopeHoistingStats = aggregatedScopeHoistingStats;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
api.storeResult(result);
|
|
249
|
+
return result;
|
|
172
250
|
} finally {
|
|
173
251
|
await dispose();
|
|
174
252
|
}
|
|
175
253
|
}
|
|
176
254
|
|
|
177
255
|
function assignComplexNameHashes(
|
|
178
|
-
hashRefToNameHash,
|
|
179
|
-
bundles
|
|
180
|
-
bundleInfoMap
|
|
181
|
-
|
|
256
|
+
hashRefToNameHash: Map<string, string>,
|
|
257
|
+
bundles: Array<Bundle>,
|
|
258
|
+
bundleInfoMap: {
|
|
259
|
+
[key: string]: BundleInfo;
|
|
260
|
+
},
|
|
261
|
+
options: AtlaspackOptions,
|
|
182
262
|
) {
|
|
183
263
|
for (let bundle of bundles) {
|
|
184
264
|
if (hashRefToNameHash.get(bundle.hashReference) != null) {
|
|
@@ -186,21 +266,25 @@ function assignComplexNameHashes(
|
|
|
186
266
|
}
|
|
187
267
|
hashRefToNameHash.set(
|
|
188
268
|
bundle.hashReference,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
.
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
269
|
+
nameHashForFilename(
|
|
270
|
+
options.shouldContentHash
|
|
271
|
+
? hashString(
|
|
272
|
+
[...getBundlesIncludedInHash(bundle.id, bundleInfoMap)]
|
|
273
|
+
.map((bundleId) => bundleInfoMap[bundleId].hash)
|
|
274
|
+
.join(':'),
|
|
275
|
+
)
|
|
276
|
+
: bundle.id,
|
|
277
|
+
),
|
|
196
278
|
);
|
|
197
279
|
}
|
|
198
280
|
}
|
|
199
281
|
|
|
200
282
|
function getBundlesIncludedInHash(
|
|
201
|
-
bundleId,
|
|
202
|
-
bundleInfoMap
|
|
203
|
-
|
|
283
|
+
bundleId: ContentKey | string,
|
|
284
|
+
bundleInfoMap: {
|
|
285
|
+
[key: string]: BundleInfo;
|
|
286
|
+
},
|
|
287
|
+
included = new Set<string>(),
|
|
204
288
|
) {
|
|
205
289
|
included.add(bundleId);
|
|
206
290
|
for (let hashRef of bundleInfoMap[bundleId]?.hashReferences ?? []) {
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
// @
|
|
3
|
-
|
|
4
|
-
// $FlowFixMe
|
|
2
|
+
// @ts-expect-error missing types
|
|
5
3
|
import deepClone from 'rfdc/default';
|
|
6
|
-
// $FlowFixMe
|
|
7
4
|
import {diff} from 'jest-diff';
|
|
8
5
|
import AssetGraph from '../AssetGraph';
|
|
9
6
|
import type {AssetGraphNode} from '../types';
|
|
10
|
-
import {
|
|
7
|
+
import {toProjectPath} from '../projectPath';
|
|
11
8
|
|
|
12
|
-
function filterNode(node) {
|
|
9
|
+
function filterNode(node: any) {
|
|
13
10
|
let clone = deepClone(node);
|
|
14
11
|
|
|
15
12
|
// Clean up anything you don't want to see in the diff
|
|
@@ -35,24 +32,26 @@ function filterNode(node) {
|
|
|
35
32
|
return clone;
|
|
36
33
|
}
|
|
37
34
|
|
|
35
|
+
// @ts-expect-error missing return type
|
|
38
36
|
function compactDeep(
|
|
39
|
-
obj:
|
|
37
|
+
obj: unknown,
|
|
40
38
|
ignoredPatterns: Array<string> = [],
|
|
41
39
|
currentPath: string = '$',
|
|
42
40
|
) {
|
|
43
41
|
if (obj instanceof Map) {
|
|
44
|
-
const copy = {};
|
|
45
|
-
Array.from(obj.entries()).forEach(([k, v]) => {
|
|
42
|
+
const copy: Record<string, any> = {};
|
|
43
|
+
Array.from(obj.entries()).forEach(([k, v]: [any, any]) => {
|
|
46
44
|
if (v != null) {
|
|
47
45
|
copy[k] = compactDeep(v, ignoredPatterns, `${currentPath}.${k}`);
|
|
48
46
|
}
|
|
49
47
|
});
|
|
50
48
|
return copy;
|
|
51
49
|
} else if (Array.isArray(obj)) {
|
|
50
|
+
// @ts-expect-error implicit any
|
|
52
51
|
return obj.map((v) => compactDeep(v, ignoredPatterns, `${currentPath}[]`));
|
|
53
52
|
} else if (typeof obj === 'object') {
|
|
54
|
-
const copy = {};
|
|
55
|
-
Object.entries(obj ?? {}).forEach(([key, value]) => {
|
|
53
|
+
const copy: Record<string, any> = {};
|
|
54
|
+
Object.entries(obj ?? {}).forEach(([key, value]: [any, any]) => {
|
|
56
55
|
const path = `${currentPath}.${key}`;
|
|
57
56
|
if (ignoredPatterns.some((pattern) => path.includes(pattern))) {
|
|
58
57
|
return;
|
|
@@ -72,21 +71,26 @@ function compactDeep(
|
|
|
72
71
|
}
|
|
73
72
|
}
|
|
74
73
|
|
|
75
|
-
function assetGraphDiff(
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
function assetGraphDiff(
|
|
75
|
+
jsAssetGraph: AssetGraph,
|
|
76
|
+
rustAssetGraph: AssetGraph,
|
|
77
|
+
projectRoot: string,
|
|
78
|
+
) {
|
|
79
|
+
const getNodes = (graph: any) => {
|
|
80
|
+
let nodes: Record<string, any> = {};
|
|
78
81
|
|
|
82
|
+
// @ts-expect-error implicit any
|
|
79
83
|
graph.traverse((nodeId) => {
|
|
80
84
|
let node: AssetGraphNode | null = graph.getNode(nodeId) ?? null;
|
|
81
85
|
if (!node) return;
|
|
82
86
|
|
|
83
87
|
if (node.type === 'dependency') {
|
|
84
|
-
let sourcePath = node.value.sourcePath
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
] = filterNode(node);
|
|
88
|
+
let sourcePath = node.value.sourcePath
|
|
89
|
+
? toProjectPath(projectRoot, node.value.sourcePath)
|
|
90
|
+
: toProjectPath(projectRoot, 'entry');
|
|
91
|
+
nodes[`dep:${sourcePath}:${node.value.specifier}`] = filterNode(node);
|
|
88
92
|
} else if (node.type === 'asset') {
|
|
89
|
-
nodes[`asset:${
|
|
93
|
+
nodes[`asset:${toProjectPath(projectRoot, node.value.filePath)}`] =
|
|
90
94
|
filterNode(node);
|
|
91
95
|
}
|
|
92
96
|
});
|
|
@@ -98,8 +102,8 @@ function assetGraphDiff(jsAssetGraph: AssetGraph, rustAssetGraph: AssetGraph) {
|
|
|
98
102
|
const rustNodes = getNodes(rustAssetGraph);
|
|
99
103
|
|
|
100
104
|
const all = new Set([...Object.keys(jsNodes), ...Object.keys(rustNodes)]);
|
|
101
|
-
const missing = [];
|
|
102
|
-
const extra = [];
|
|
105
|
+
const missing: Array<any | string> = [];
|
|
106
|
+
const extra: Array<any | string> = [];
|
|
103
107
|
|
|
104
108
|
for (const key of all.keys()) {
|
|
105
109
|
if (process.env.NATIVE_COMPARE !== 'true') {
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
// @flow
|
|
2
1
|
import path from 'path';
|
|
3
2
|
|
|
4
3
|
import type {AssetGraphNode} from '../types';
|
|
5
4
|
import AssetGraph from '../AssetGraph';
|
|
6
5
|
|
|
7
6
|
export type AssetGraphToDotOptions = {
|
|
8
|
-
style?: boolean
|
|
9
|
-
sort?: boolean
|
|
10
|
-
...
|
|
7
|
+
style?: boolean;
|
|
8
|
+
sort?: boolean;
|
|
11
9
|
};
|
|
12
10
|
|
|
13
11
|
/** @description Renders AssetGraph into GraphViz Dot format */
|
|
@@ -15,8 +13,10 @@ export function assetGraphToDot(
|
|
|
15
13
|
assetGraph: AssetGraph,
|
|
16
14
|
{sort = false, style = true}: AssetGraphToDotOptions = {},
|
|
17
15
|
): string {
|
|
18
|
-
const edges = [];
|
|
19
|
-
const nodeStyles: {
|
|
16
|
+
const edges: Array<string> = [];
|
|
17
|
+
const nodeStyles: {
|
|
18
|
+
[key: string]: string;
|
|
19
|
+
} = {};
|
|
20
20
|
|
|
21
21
|
assetGraph.traverse((nodeId) => {
|
|
22
22
|
let node: AssetGraphNode | null = assetGraph.getNode(nodeId) ?? null;
|
|
@@ -43,7 +43,6 @@ export function assetGraphToDot(
|
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
-
// $FlowFixMe
|
|
47
46
|
const nodeStylesList: Array<[string, string]> = Object.entries(nodeStyles);
|
|
48
47
|
if (sort) {
|
|
49
48
|
edges.sort();
|
|
@@ -53,7 +52,7 @@ export function assetGraphToDot(
|
|
|
53
52
|
let digraph = `digraph {\n\tnode [shape=rectangle]\n`;
|
|
54
53
|
if (style) {
|
|
55
54
|
digraph += nodeStylesList
|
|
56
|
-
.map(([node, style]) => `\t"${node}" [${style}]\n`)
|
|
55
|
+
.map(([node, style]: [any, any]) => `\t"${node}" [${style}]\n`)
|
|
57
56
|
.join('');
|
|
58
57
|
}
|
|
59
58
|
digraph += edges.map((v) => `\t${v}\n`).join('');
|
|
@@ -94,18 +93,15 @@ function fromCwd(input: string): string {
|
|
|
94
93
|
|
|
95
94
|
function getNodeName(node: AssetGraphNode): string {
|
|
96
95
|
if (node.type === 'asset_group') {
|
|
97
|
-
//
|
|
96
|
+
// @ts-expect-error TS2345
|
|
98
97
|
return [`asset_group`, node.id, fromCwd(node.value.filePath)].join('\\n');
|
|
99
98
|
} else if (node.type === 'asset') {
|
|
100
|
-
// $FlowFixMe
|
|
101
99
|
return [`asset`, node.id, fromCwd(node.value.filePath)].join('\\n');
|
|
102
100
|
} else if (node.type === 'dependency') {
|
|
103
101
|
return [`dependency`, node.id, node.value.specifier].join('\\n');
|
|
104
102
|
} else if (node.type === 'entry_specifier') {
|
|
105
|
-
// $FlowFixMe
|
|
106
103
|
return [`entry_specifier`, node.value].join('\\n');
|
|
107
104
|
} else if (node.type === 'entry_file') {
|
|
108
|
-
// $FlowFixMe
|
|
109
105
|
return [`entry_file`, fromCwd(node.value.filePath)].join('\\n');
|
|
110
106
|
}
|
|
111
107
|
return 'ROOT';
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {
|
|
4
2
|
FilePath,
|
|
5
3
|
InitialAtlaspackOptions,
|
|
@@ -93,6 +91,29 @@ export default async function resolveOptions(
|
|
|
93
91
|
entries = [path.resolve(inputCwd, initialOptions.entries)];
|
|
94
92
|
}
|
|
95
93
|
|
|
94
|
+
// When allowExplicitTargetEntries is enabled and no entries are provided,
|
|
95
|
+
// automatically derive entries from target sources
|
|
96
|
+
if (
|
|
97
|
+
getFeatureFlag('allowExplicitTargetEntries') &&
|
|
98
|
+
initialOptions.targets &&
|
|
99
|
+
!Array.isArray(initialOptions.targets) &&
|
|
100
|
+
entries.length === 0
|
|
101
|
+
) {
|
|
102
|
+
const targetSources = new Set<string>();
|
|
103
|
+
|
|
104
|
+
for (const [, target] of Object.entries(initialOptions.targets)) {
|
|
105
|
+
if (target.source) {
|
|
106
|
+
const sources = Array.isArray(target.source)
|
|
107
|
+
? target.source
|
|
108
|
+
: [target.source];
|
|
109
|
+
for (const source of sources) {
|
|
110
|
+
targetSources.add(source);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
entries = Array.from(targetSources);
|
|
115
|
+
}
|
|
116
|
+
|
|
96
117
|
let shouldMakeEntryReferFolder = false;
|
|
97
118
|
if (entries.length === 1 && !isGlob(entries[0])) {
|
|
98
119
|
let [entry] = entries;
|
|
@@ -103,20 +124,29 @@ export default async function resolveOptions(
|
|
|
103
124
|
}
|
|
104
125
|
}
|
|
105
126
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
127
|
+
let projectRoot;
|
|
128
|
+
if (initialOptions.projectRoot) {
|
|
129
|
+
// Use explicitly provided projectRoot
|
|
130
|
+
if (!path.isAbsolute(initialOptions.projectRoot)) {
|
|
131
|
+
throw new Error('Specified project root must be an absolute path');
|
|
132
|
+
}
|
|
133
|
+
projectRoot = initialOptions.projectRoot;
|
|
134
|
+
} else {
|
|
135
|
+
// getRootDir treats the input as files, so getRootDir(["/home/user/myproject"]) returns "/home/user".
|
|
136
|
+
// Instead we need to make the the entry refer to some file inside the specified folders if entries refers to the directory.
|
|
137
|
+
let entryRoot = getRootDir(
|
|
138
|
+
shouldMakeEntryReferFolder ? [path.join(entries[0], 'index')] : entries,
|
|
139
|
+
);
|
|
140
|
+
let projectRootFile =
|
|
141
|
+
(await resolveConfig(
|
|
142
|
+
inputFS,
|
|
143
|
+
path.join(entryRoot, 'index'),
|
|
144
|
+
[...LOCK_FILE_NAMES, '.git', '.hg'],
|
|
145
|
+
path.parse(entryRoot).root,
|
|
146
|
+
)) || path.join(inputCwd, 'index'); // ? Should this just be rootDir
|
|
147
|
+
|
|
148
|
+
projectRoot = path.dirname(projectRootFile);
|
|
149
|
+
}
|
|
120
150
|
|
|
121
151
|
const gitRoot = await findGitRepositoryRoot(inputFS, projectRoot);
|
|
122
152
|
if (inputFS instanceof NodeVCSAwareFS) {
|
|
@@ -151,12 +181,11 @@ export default async function resolveOptions(
|
|
|
151
181
|
return initialOptions.cache;
|
|
152
182
|
}
|
|
153
183
|
|
|
154
|
-
const needsRustLmdbCache =
|
|
184
|
+
const needsRustLmdbCache =
|
|
185
|
+
getFeatureFlag('atlaspackV3') || getFeatureFlag('nativePackager');
|
|
155
186
|
|
|
156
|
-
if (!
|
|
157
|
-
|
|
158
|
-
return new FSCache(outputFS, cacheDir);
|
|
159
|
-
}
|
|
187
|
+
if (!needsRustLmdbCache && !(outputFS instanceof NodeFS)) {
|
|
188
|
+
return new FSCache(outputFS, cacheDir);
|
|
160
189
|
}
|
|
161
190
|
|
|
162
191
|
return new LMDBLiteCache(cacheDir);
|
|
@@ -239,6 +268,7 @@ export default async function resolveOptions(
|
|
|
239
268
|
: false,
|
|
240
269
|
shouldDisableCache: initialOptions.shouldDisableCache ?? false,
|
|
241
270
|
shouldProfile: initialOptions.shouldProfile ?? false,
|
|
271
|
+
nativeProfiler: initialOptions.nativeProfiler,
|
|
242
272
|
shouldTrace: initialOptions.shouldTrace ?? false,
|
|
243
273
|
cacheDir,
|
|
244
274
|
watchDir,
|
|
@@ -283,7 +313,7 @@ export default async function resolveOptions(
|
|
|
283
313
|
function getRelativeConfigSpecifier(
|
|
284
314
|
fs: FileSystem,
|
|
285
315
|
projectRoot: FilePath,
|
|
286
|
-
specifier
|
|
316
|
+
specifier?: DependencySpecifier | null,
|
|
287
317
|
) {
|
|
288
318
|
if (specifier == null) {
|
|
289
319
|
return undefined;
|
|
@@ -299,11 +329,11 @@ function getRelativeConfigSpecifier(
|
|
|
299
329
|
}
|
|
300
330
|
|
|
301
331
|
function determinePort(
|
|
302
|
-
initialServerOptions
|
|
303
|
-
portInEnv
|
|
332
|
+
initialServerOptions?: InitialServerOptions | false,
|
|
333
|
+
portInEnv?: string,
|
|
304
334
|
defaultPort: number = 1234,
|
|
305
335
|
): number {
|
|
306
|
-
function parsePort(port: string): number |
|
|
336
|
+
function parsePort(port: string): number | undefined {
|
|
307
337
|
let parsedPort = Number(port);
|
|
308
338
|
|
|
309
339
|
// return undefined if port number defined in .env is not valid integer
|
|
@@ -315,7 +345,7 @@ function determinePort(
|
|
|
315
345
|
|
|
316
346
|
if (!initialServerOptions) {
|
|
317
347
|
return typeof portInEnv !== 'undefined'
|
|
318
|
-
? parsePort(portInEnv) ?? defaultPort
|
|
348
|
+
? (parsePort(portInEnv) ?? defaultPort)
|
|
319
349
|
: defaultPort;
|
|
320
350
|
}
|
|
321
351
|
|
|
@@ -325,6 +355,6 @@ function determinePort(
|
|
|
325
355
|
}
|
|
326
356
|
|
|
327
357
|
return typeof portInEnv !== 'undefined'
|
|
328
|
-
? parsePort(portInEnv) ?? defaultPort
|
|
358
|
+
? (parsePort(portInEnv) ?? defaultPort)
|
|
329
359
|
: defaultPort;
|
|
330
360
|
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* This is a workaround for https://github.com/rust-lang/rust/issues/91979
|
|
5
3
|
* when running atlaspack with parcel bindings, it is possible that the parcel
|
|
@@ -10,9 +8,8 @@
|
|
|
10
8
|
*/
|
|
11
9
|
export function loadRustWorkerThreadDylibHack() {
|
|
12
10
|
try {
|
|
13
|
-
// $FlowFixMe
|
|
14
11
|
require('@parcel/rust'); // eslint-disable-line
|
|
15
|
-
} catch (err) {
|
|
12
|
+
} catch (err: any) {
|
|
16
13
|
/* ignore */
|
|
17
14
|
}
|
|
18
15
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
// @flow
|
|
2
1
|
import {Buffer} from 'buffer';
|
|
3
2
|
import * as msgpackr from 'msgpackr';
|
|
4
3
|
|
|
5
4
|
let encoder = new msgpackr.Encoder({structuredClone: true});
|
|
6
5
|
|
|
7
|
-
export let serializeRaw: (any) => Buffer = (v) =>
|
|
6
|
+
export let serializeRaw: (arg1?: any) => Buffer = (v) =>
|
|
8
7
|
Buffer.from(encoder.encode(v));
|
|
9
|
-
export let deserializeRaw: (Buffer) => any = (v) => encoder.decode(v);
|
|
8
|
+
export let deserializeRaw: (arg1: Buffer) => any = (v) => encoder.decode(v);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
1
|
import type {Blob, FilePath} from '@atlaspack/types';
|
|
3
2
|
import type {FileSystem} from '@atlaspack/fs';
|
|
4
3
|
|
|
@@ -10,8 +9,15 @@ const BUFFER_LIMIT = 5000000; // 5mb
|
|
|
10
9
|
|
|
11
10
|
export default async function summarizeRequest(
|
|
12
11
|
fs: FileSystem,
|
|
13
|
-
req: {
|
|
14
|
-
|
|
12
|
+
req: {
|
|
13
|
+
filePath: FilePath;
|
|
14
|
+
code?: string;
|
|
15
|
+
},
|
|
16
|
+
): Promise<{
|
|
17
|
+
content: Blob;
|
|
18
|
+
size: number;
|
|
19
|
+
isSource: boolean;
|
|
20
|
+
}> {
|
|
15
21
|
let {content, size} = await summarizeDiskRequest(fs, req);
|
|
16
22
|
let isSource = isFilePathSource(fs, req.filePath);
|
|
17
23
|
return {content, size, isSource};
|
|
@@ -23,8 +29,14 @@ function isFilePathSource(fs: FileSystem, filePath: FilePath) {
|
|
|
23
29
|
|
|
24
30
|
async function summarizeDiskRequest(
|
|
25
31
|
fs: FileSystem,
|
|
26
|
-
req: {
|
|
27
|
-
|
|
32
|
+
req: {
|
|
33
|
+
filePath: FilePath;
|
|
34
|
+
code?: string;
|
|
35
|
+
},
|
|
36
|
+
): Promise<{
|
|
37
|
+
content: Blob;
|
|
38
|
+
size: number;
|
|
39
|
+
}> {
|
|
28
40
|
let code = req.code;
|
|
29
41
|
let content: Blob;
|
|
30
42
|
let size: number;
|