@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
|
@@ -13,8 +13,7 @@ function _path() {
|
|
|
13
13
|
};
|
|
14
14
|
return data;
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
17
|
/** @description Renders AssetGraph into GraphViz Dot format */
|
|
19
18
|
function assetGraphToDot(assetGraph, {
|
|
20
19
|
sort = false,
|
|
@@ -41,8 +40,6 @@ function assetGraphToDot(assetGraph, {
|
|
|
41
40
|
edges.push(entry);
|
|
42
41
|
}
|
|
43
42
|
});
|
|
44
|
-
|
|
45
|
-
// $FlowFixMe
|
|
46
43
|
const nodeStylesList = Object.entries(nodeStyles);
|
|
47
44
|
if (sort) {
|
|
48
45
|
edges.sort();
|
|
@@ -83,18 +80,15 @@ function fromCwd(input) {
|
|
|
83
80
|
}
|
|
84
81
|
function getNodeName(node) {
|
|
85
82
|
if (node.type === 'asset_group') {
|
|
86
|
-
//
|
|
83
|
+
// @ts-expect-error TS2345
|
|
87
84
|
return [`asset_group`, node.id, fromCwd(node.value.filePath)].join('\\n');
|
|
88
85
|
} else if (node.type === 'asset') {
|
|
89
|
-
// $FlowFixMe
|
|
90
86
|
return [`asset`, node.id, fromCwd(node.value.filePath)].join('\\n');
|
|
91
87
|
} else if (node.type === 'dependency') {
|
|
92
88
|
return [`dependency`, node.id, node.value.specifier].join('\\n');
|
|
93
89
|
} else if (node.type === 'entry_specifier') {
|
|
94
|
-
// $FlowFixMe
|
|
95
90
|
return [`entry_specifier`, node.value].join('\\n');
|
|
96
91
|
} else if (node.type === 'entry_file') {
|
|
97
|
-
// $FlowFixMe
|
|
98
92
|
return [`entry_file`, fromCwd(node.value.filePath)].join('\\n');
|
|
99
93
|
}
|
|
100
94
|
return 'ROOT';
|
package/lib/resolveOptions.js
CHANGED
|
@@ -57,7 +57,7 @@ var _loadDotEnv = _interopRequireDefault(require("./loadDotEnv"));
|
|
|
57
57
|
var _projectPath = require("./projectPath");
|
|
58
58
|
var _AtlaspackConfigRequest = require("./requests/AtlaspackConfigRequest");
|
|
59
59
|
var _constants = require("./constants");
|
|
60
|
-
function _interopRequireDefault(
|
|
60
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
61
61
|
// Default cache directory name
|
|
62
62
|
const DEFAULT_CACHE_DIRNAME = '.parcel-cache';
|
|
63
63
|
const LOCK_FILE_NAMES = ['yarn.lock', 'package-lock.json', 'pnpm-lock.yaml'];
|
|
@@ -106,6 +106,21 @@ async function resolveOptions(initialOptions) {
|
|
|
106
106
|
} else {
|
|
107
107
|
entries = [_path().default.resolve(inputCwd, initialOptions.entries)];
|
|
108
108
|
}
|
|
109
|
+
|
|
110
|
+
// When allowExplicitTargetEntries is enabled and no entries are provided,
|
|
111
|
+
// automatically derive entries from target sources
|
|
112
|
+
if ((0, _featureFlags().getFeatureFlag)('allowExplicitTargetEntries') && initialOptions.targets && !Array.isArray(initialOptions.targets) && entries.length === 0) {
|
|
113
|
+
const targetSources = new Set();
|
|
114
|
+
for (const [, target] of Object.entries(initialOptions.targets)) {
|
|
115
|
+
if (target.source) {
|
|
116
|
+
const sources = Array.isArray(target.source) ? target.source : [target.source];
|
|
117
|
+
for (const source of sources) {
|
|
118
|
+
targetSources.add(source);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
entries = Array.from(targetSources);
|
|
123
|
+
}
|
|
109
124
|
let shouldMakeEntryReferFolder = false;
|
|
110
125
|
if (entries.length === 1 && !(0, _utils().isGlob)(entries[0])) {
|
|
111
126
|
let [entry] = entries;
|
|
@@ -115,13 +130,21 @@ async function resolveOptions(initialOptions) {
|
|
|
115
130
|
// ignore failing stat call
|
|
116
131
|
}
|
|
117
132
|
}
|
|
133
|
+
let projectRoot;
|
|
134
|
+
if (initialOptions.projectRoot) {
|
|
135
|
+
// Use explicitly provided projectRoot
|
|
136
|
+
if (!_path().default.isAbsolute(initialOptions.projectRoot)) {
|
|
137
|
+
throw new Error('Specified project root must be an absolute path');
|
|
138
|
+
}
|
|
139
|
+
projectRoot = initialOptions.projectRoot;
|
|
140
|
+
} else {
|
|
141
|
+
// getRootDir treats the input as files, so getRootDir(["/home/user/myproject"]) returns "/home/user".
|
|
142
|
+
// Instead we need to make the the entry refer to some file inside the specified folders if entries refers to the directory.
|
|
143
|
+
let entryRoot = (0, _utils().getRootDir)(shouldMakeEntryReferFolder ? [_path().default.join(entries[0], 'index')] : entries);
|
|
144
|
+
let projectRootFile = (await (0, _utils().resolveConfig)(inputFS, _path().default.join(entryRoot, 'index'), [...LOCK_FILE_NAMES, '.git', '.hg'], _path().default.parse(entryRoot).root)) || _path().default.join(inputCwd, 'index'); // ? Should this just be rootDir
|
|
118
145
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
let entryRoot = (0, _utils().getRootDir)(shouldMakeEntryReferFolder ? [_path().default.join(entries[0], 'index')] : entries);
|
|
122
|
-
let projectRootFile = (await (0, _utils().resolveConfig)(inputFS, _path().default.join(entryRoot, 'index'), [...LOCK_FILE_NAMES, '.git', '.hg'], _path().default.parse(entryRoot).root)) || _path().default.join(inputCwd, 'index'); // ? Should this just be rootDir
|
|
123
|
-
|
|
124
|
-
let projectRoot = _path().default.dirname(projectRootFile);
|
|
146
|
+
projectRoot = _path().default.dirname(projectRootFile);
|
|
147
|
+
}
|
|
125
148
|
const gitRoot = await findGitRepositoryRoot(inputFS, projectRoot);
|
|
126
149
|
if (inputFS instanceof _fs().NodeVCSAwareFS) {
|
|
127
150
|
inputFS.setGitRepoPath(gitRoot);
|
|
@@ -139,18 +162,17 @@ async function resolveOptions(initialOptions) {
|
|
|
139
162
|
// where symlinked dependencies outside the project root need to trigger HMR
|
|
140
163
|
// updates. Default to the project root if not provided.
|
|
141
164
|
let watchDir = initialOptions.watchDir != null ? _path().default.resolve(initialOptions.watchDir) : projectRoot;
|
|
142
|
-
|
|
165
|
+
function createCache() {
|
|
143
166
|
if (initialOptions.cache) {
|
|
144
167
|
return initialOptions.cache;
|
|
145
168
|
}
|
|
146
|
-
const needsRustLmdbCache = (0, _featureFlags().getFeatureFlag)('atlaspackV3');
|
|
147
|
-
if (!(
|
|
148
|
-
|
|
149
|
-
return new (_cache().FSCache)(outputFS, cacheDir);
|
|
150
|
-
}
|
|
169
|
+
const needsRustLmdbCache = (0, _featureFlags().getFeatureFlag)('atlaspackV3') || (0, _featureFlags().getFeatureFlag)('nativePackager');
|
|
170
|
+
if (!needsRustLmdbCache && !(outputFS instanceof _fs().NodeFS)) {
|
|
171
|
+
return new (_cache().FSCache)(outputFS, cacheDir);
|
|
151
172
|
}
|
|
152
173
|
return new (_cache().LMDBLiteCache)(cacheDir);
|
|
153
|
-
}
|
|
174
|
+
}
|
|
175
|
+
let cache = createCache();
|
|
154
176
|
let mode = initialOptions.mode ?? 'development';
|
|
155
177
|
let shouldOptimize = (initialOptions === null || initialOptions === void 0 || (_initialOptions$defau = initialOptions.defaultTargetOptions) === null || _initialOptions$defau === void 0 ? void 0 : _initialOptions$defau.shouldOptimize) ?? mode === 'production';
|
|
156
178
|
let publicUrl = (initialOptions === null || initialOptions === void 0 || (_initialOptions$defau2 = initialOptions.defaultTargetOptions) === null || _initialOptions$defau2 === void 0 ? void 0 : _initialOptions$defau2.publicUrl) ?? '/';
|
|
@@ -195,6 +217,7 @@ async function resolveOptions(initialOptions) {
|
|
|
195
217
|
} : false,
|
|
196
218
|
shouldDisableCache: initialOptions.shouldDisableCache ?? false,
|
|
197
219
|
shouldProfile: initialOptions.shouldProfile ?? false,
|
|
220
|
+
nativeProfiler: initialOptions.nativeProfiler,
|
|
198
221
|
shouldTrace: initialOptions.shouldTrace ?? false,
|
|
199
222
|
cacheDir,
|
|
200
223
|
watchDir,
|
|
@@ -18,8 +18,7 @@ function msgpackr() {
|
|
|
18
18
|
};
|
|
19
19
|
return data;
|
|
20
20
|
}
|
|
21
|
-
function
|
|
22
|
-
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; }
|
|
21
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
23
22
|
let encoder = new (msgpackr().Encoder)({
|
|
24
23
|
structuredClone: true
|
|
25
24
|
});
|
package/lib/summarizeRequest.js
CHANGED
|
@@ -11,7 +11,7 @@ function _path() {
|
|
|
11
11
|
};
|
|
12
12
|
return data;
|
|
13
13
|
}
|
|
14
|
-
function _interopRequireDefault(
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
15
|
const NODE_MODULES = `${_path().default.sep}node_modules${_path().default.sep}`;
|
|
16
16
|
const BUFFER_LIMIT = 5000000; // 5mb
|
|
17
17
|
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { GraphVisitor } from '@atlaspack/types';
|
|
2
|
+
import type { ContentGraphOpts, ContentKey, NodeId, SerializedContentGraph } from '@atlaspack/graph';
|
|
3
|
+
import type { Asset, AssetGraphNode, AssetGroup, AssetGroupNode, AssetNode, Dependency, DependencyNode, Entry, EntryFileNode, EntrySpecifierNode, Environment, Target } from './types';
|
|
4
|
+
import { ContentGraph } from '@atlaspack/graph';
|
|
5
|
+
import { ProjectPath } from './projectPath';
|
|
6
|
+
type InitOpts = {
|
|
7
|
+
entries?: Array<ProjectPath>;
|
|
8
|
+
targets?: Array<Target>;
|
|
9
|
+
assetGroups?: Array<AssetGroup>;
|
|
10
|
+
};
|
|
11
|
+
type AssetGraphOpts = ContentGraphOpts<AssetGraphNode> & {
|
|
12
|
+
hash?: string | null | undefined;
|
|
13
|
+
};
|
|
14
|
+
type SerializedAssetGraph = SerializedContentGraph<AssetGraphNode> & {
|
|
15
|
+
hash?: string | null | undefined;
|
|
16
|
+
};
|
|
17
|
+
export declare function nodeFromDep(dep: Dependency): DependencyNode;
|
|
18
|
+
export declare function nodeFromAssetGroup(assetGroup: AssetGroup): AssetGroupNode;
|
|
19
|
+
export declare function nodeFromAsset(asset: Asset): AssetNode;
|
|
20
|
+
export declare function nodeFromEntrySpecifier(entry: ProjectPath): EntrySpecifierNode;
|
|
21
|
+
export declare function nodeFromEntryFile(entry: Entry): EntryFileNode;
|
|
22
|
+
export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
23
|
+
onNodeRemoved: ((nodeId: NodeId) => unknown) | null | undefined;
|
|
24
|
+
hash: string | null | undefined;
|
|
25
|
+
envCache: Map<string, Environment>;
|
|
26
|
+
safeToIncrementallyBundle: boolean;
|
|
27
|
+
undeferredDependencies: Set<Dependency>;
|
|
28
|
+
constructor(opts?: AssetGraphOpts | null);
|
|
29
|
+
static deserialize(opts: AssetGraphOpts): AssetGraph;
|
|
30
|
+
serialize(): SerializedAssetGraph;
|
|
31
|
+
/**
|
|
32
|
+
* Determine if we can incrementally bundle, which will not require a full bundling pass
|
|
33
|
+
* but just update assets into the bundle graph output.
|
|
34
|
+
*/
|
|
35
|
+
canIncrementallyBundle(): boolean;
|
|
36
|
+
normalizeEnvironment(input: Asset | Dependency | AssetGroup): void;
|
|
37
|
+
setRootConnections({ entries, assetGroups }: InitOpts): void;
|
|
38
|
+
addNode(node: AssetGraphNode): NodeId;
|
|
39
|
+
removeNode(nodeId: NodeId): void;
|
|
40
|
+
resolveEntry(entry: ProjectPath, resolved: Array<Entry>, correspondingRequest: ContentKey): void;
|
|
41
|
+
resolveTargets(entry: Entry, targets: Array<Target>, correspondingRequest: string): void;
|
|
42
|
+
resolveDependency(dependency: Dependency, assetGroup: AssetGroup | null | undefined, correspondingRequest: string): void;
|
|
43
|
+
shouldVisitChild(nodeId: NodeId, childNodeId: NodeId): boolean;
|
|
44
|
+
markParentsWithHasDeferred(nodeId: NodeId): void;
|
|
45
|
+
unmarkParentsWithHasDeferred(nodeId: NodeId): void;
|
|
46
|
+
shouldDeferDependency(dependency: Dependency, sideEffects: boolean | null | undefined, canDefer: boolean): boolean;
|
|
47
|
+
resolveAssetGroup(assetGroup: AssetGroup, assets: Array<Asset>, correspondingRequest: ContentKey): void;
|
|
48
|
+
resolveAsset(assetNode: AssetNode, dependentAssets: Array<Asset>): void;
|
|
49
|
+
getIncomingDependencies(asset: Asset): Array<Dependency>;
|
|
50
|
+
traverseAssets<TContext>(visit: GraphVisitor<Asset, TContext>, startNodeId?: NodeId | null): TContext | null | undefined;
|
|
51
|
+
getEntryAssetGroupNodes(): Array<AssetGroupNode>;
|
|
52
|
+
getEntryAssets(): Array<Asset>;
|
|
53
|
+
getHash(): string;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Asset, AsyncSubscription, BuildEvent, BuildSuccessEvent, InitialAtlaspackOptions, AtlaspackTransformOptions, AtlaspackResolveOptions, AtlaspackResolveResult } from '@atlaspack/types';
|
|
2
|
+
import type { AtlaspackOptions } from './types';
|
|
3
|
+
import type { FarmOptions } from '@atlaspack/workers';
|
|
4
|
+
import type { Diagnostic } from '@atlaspack/diagnostic';
|
|
5
|
+
import ThrowableDiagnostic from '@atlaspack/diagnostic';
|
|
6
|
+
import WorkerFarm from '@atlaspack/workers';
|
|
7
|
+
import { AtlaspackV3 } from './atlaspack-v3';
|
|
8
|
+
import type { AssetGraphRequestResult } from './requests/AssetGraphRequest';
|
|
9
|
+
export declare const INTERNAL_TRANSFORM: symbol;
|
|
10
|
+
export declare const INTERNAL_RESOLVE: symbol;
|
|
11
|
+
export declare let WORKER_PATH: string;
|
|
12
|
+
export default class Atlaspack {
|
|
13
|
+
#private;
|
|
14
|
+
rustAtlaspack: AtlaspackV3 | null | undefined;
|
|
15
|
+
isProfiling: boolean;
|
|
16
|
+
constructor(options: InitialAtlaspackOptions);
|
|
17
|
+
_init(): Promise<void>;
|
|
18
|
+
run(): Promise<BuildSuccessEvent>;
|
|
19
|
+
_end(): Promise<void>;
|
|
20
|
+
writeRequestTrackerToCache(): Promise<void>;
|
|
21
|
+
_startNextBuild(): Promise<BuildEvent | null | undefined>;
|
|
22
|
+
watch(cb?: (err?: Error | null | undefined, buildEvent?: BuildEvent) => unknown): Promise<AsyncSubscription>;
|
|
23
|
+
_build({ signal, startTime, }?: {
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
startTime?: number;
|
|
26
|
+
}): Promise<BuildEvent>;
|
|
27
|
+
_getWatcherSubscription(): Promise<AsyncSubscription>;
|
|
28
|
+
_getResolvedAtlaspackOptions(): AtlaspackOptions;
|
|
29
|
+
startProfiling(): Promise<void>;
|
|
30
|
+
stopProfiling(): Promise<void>;
|
|
31
|
+
takeHeapSnapshot(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Must be called between builds otherwise there is global state that will
|
|
34
|
+
* break things unexpectedly.
|
|
35
|
+
*/
|
|
36
|
+
clearBuildCaches(): Promise<void>;
|
|
37
|
+
unstable_invalidate(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Build the asset graph
|
|
40
|
+
*/
|
|
41
|
+
unstable_buildAssetGraph(writeToCache?: boolean): Promise<AssetGraphRequestResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Copy the cache to a new directory and compact it.
|
|
44
|
+
*/
|
|
45
|
+
unstable_compactCache(): Promise<void>;
|
|
46
|
+
unstable_transform(options: AtlaspackTransformOptions): Promise<Array<Asset>>;
|
|
47
|
+
unstable_resolve(request: AtlaspackResolveOptions): Promise<AtlaspackResolveResult | null | undefined>;
|
|
48
|
+
}
|
|
49
|
+
export declare class BuildError extends ThrowableDiagnostic {
|
|
50
|
+
constructor(diagnostic: Array<Diagnostic> | Diagnostic);
|
|
51
|
+
}
|
|
52
|
+
export declare function createWorkerFarm(options?: Partial<FarmOptions>): WorkerFarm;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Glob, Transformer, Resolver, Bundler, Namer, Runtime, PackageName, Optimizer, Compressor, Packager, Reporter, Semver, Validator, FilePath } from '@atlaspack/types';
|
|
2
|
+
import type { ProcessedAtlaspackConfig, AtlaspackPluginNode, PureAtlaspackConfigPipeline, ExtendableAtlaspackConfigPipeline, AtlaspackOptions } from './types';
|
|
3
|
+
import ThrowableDiagnostic from '@atlaspack/diagnostic';
|
|
4
|
+
import { ProjectPath } from './projectPath';
|
|
5
|
+
type GlobMap<T> = Partial<Record<Glob, T>>;
|
|
6
|
+
type SerializedAtlaspackConfig = {
|
|
7
|
+
$$raw: boolean;
|
|
8
|
+
config: ProcessedAtlaspackConfig;
|
|
9
|
+
options: AtlaspackOptions;
|
|
10
|
+
};
|
|
11
|
+
export type LoadedPlugin<T> = {
|
|
12
|
+
name: string;
|
|
13
|
+
version: Semver;
|
|
14
|
+
plugin: T;
|
|
15
|
+
resolveFrom: ProjectPath;
|
|
16
|
+
keyPath?: string;
|
|
17
|
+
};
|
|
18
|
+
export declare class AtlaspackConfig {
|
|
19
|
+
options: AtlaspackOptions;
|
|
20
|
+
filePath: ProjectPath;
|
|
21
|
+
resolvers: PureAtlaspackConfigPipeline;
|
|
22
|
+
transformers: GlobMap<ExtendableAtlaspackConfigPipeline>;
|
|
23
|
+
bundler: AtlaspackPluginNode | null | undefined;
|
|
24
|
+
namers: PureAtlaspackConfigPipeline;
|
|
25
|
+
runtimes: PureAtlaspackConfigPipeline;
|
|
26
|
+
packagers: GlobMap<AtlaspackPluginNode>;
|
|
27
|
+
validators: GlobMap<ExtendableAtlaspackConfigPipeline>;
|
|
28
|
+
optimizers: GlobMap<ExtendableAtlaspackConfigPipeline>;
|
|
29
|
+
compressors: GlobMap<ExtendableAtlaspackConfigPipeline>;
|
|
30
|
+
reporters: PureAtlaspackConfigPipeline;
|
|
31
|
+
pluginCache: Map<PackageName, any>;
|
|
32
|
+
regexCache: Map<string, RegExp>;
|
|
33
|
+
constructor(config: ProcessedAtlaspackConfig, options: AtlaspackOptions);
|
|
34
|
+
static deserialize(serialized: SerializedAtlaspackConfig): AtlaspackConfig;
|
|
35
|
+
getConfig(): ProcessedAtlaspackConfig;
|
|
36
|
+
serialize(): SerializedAtlaspackConfig;
|
|
37
|
+
_loadPlugin<T>(node: AtlaspackPluginNode): Promise<{
|
|
38
|
+
plugin: T;
|
|
39
|
+
version: Semver;
|
|
40
|
+
resolveFrom: ProjectPath;
|
|
41
|
+
}>;
|
|
42
|
+
loadPlugin<T>(node: AtlaspackPluginNode): Promise<LoadedPlugin<T>>;
|
|
43
|
+
invalidatePlugin(packageName: PackageName): void;
|
|
44
|
+
loadPlugins<T>(plugins: PureAtlaspackConfigPipeline): Promise<Array<LoadedPlugin<T>>>;
|
|
45
|
+
getResolvers(): Promise<Array<LoadedPlugin<Resolver<unknown>>>>;
|
|
46
|
+
_getValidatorNodes(filePath: ProjectPath): ReadonlyArray<AtlaspackPluginNode>;
|
|
47
|
+
getValidatorNames(filePath: ProjectPath): Array<string>;
|
|
48
|
+
getValidators(filePath: ProjectPath): Promise<Array<LoadedPlugin<Validator>>>;
|
|
49
|
+
getNamedPipelines(): ReadonlyArray<string>;
|
|
50
|
+
getTransformers(filePath: ProjectPath, pipeline?: string | null, allowEmpty?: boolean): Promise<Array<LoadedPlugin<Transformer<unknown>>>>;
|
|
51
|
+
getBundler(): Promise<LoadedPlugin<Bundler<unknown>>>;
|
|
52
|
+
getNamers(): Promise<Array<LoadedPlugin<Namer<unknown>>>>;
|
|
53
|
+
getRuntimes(): Promise<Array<LoadedPlugin<Runtime<unknown>>>>;
|
|
54
|
+
getPackager(filePath: FilePath): Promise<LoadedPlugin<Packager<unknown, unknown>>>;
|
|
55
|
+
_getOptimizerNodes(filePath: FilePath, pipeline?: string | null): PureAtlaspackConfigPipeline;
|
|
56
|
+
getOptimizerNames(filePath: FilePath, pipeline?: string | null): Array<string>;
|
|
57
|
+
getOptimizers(filePath: FilePath, pipeline?: string | null): Promise<Array<LoadedPlugin<Optimizer<unknown, unknown>>>>;
|
|
58
|
+
getCompressors(filePath: FilePath): Promise<Array<LoadedPlugin<Compressor>>>;
|
|
59
|
+
getReporters(): Promise<Array<LoadedPlugin<Reporter>>>;
|
|
60
|
+
isGlobMatch(projectPath: ProjectPath, pattern: Glob, pipeline?: string | null): boolean;
|
|
61
|
+
matchGlobMap<T>(filePath: ProjectPath, globMap: Partial<Record<Glob, T>>): T | null | undefined;
|
|
62
|
+
matchGlobMapPipelines(filePath: ProjectPath, globMap: Partial<Record<Glob, ExtendableAtlaspackConfigPipeline>>, pipeline?: string | null): PureAtlaspackConfigPipeline;
|
|
63
|
+
missingPluginError(plugins: GlobMap<ExtendableAtlaspackConfigPipeline> | GlobMap<AtlaspackPluginNode> | PureAtlaspackConfigPipeline, message: string, key: string): Promise<ThrowableDiagnostic>;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { PackageName } from '@atlaspack/types';
|
|
2
|
+
import type { SchemaEntity } from '@atlaspack/utils';
|
|
3
|
+
export declare function validatePackageName(pkg: PackageName | null | undefined, pluginType: string, key: string): void;
|
|
4
|
+
declare const _default: {
|
|
5
|
+
type: string;
|
|
6
|
+
properties: {
|
|
7
|
+
$schema: {
|
|
8
|
+
type: string;
|
|
9
|
+
};
|
|
10
|
+
extends: {
|
|
11
|
+
oneOf: ({
|
|
12
|
+
type: string;
|
|
13
|
+
__validate: (val: string) => void;
|
|
14
|
+
items?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
type: string;
|
|
17
|
+
items: {
|
|
18
|
+
type: string;
|
|
19
|
+
__validate: (val: string) => void;
|
|
20
|
+
};
|
|
21
|
+
__validate?: undefined;
|
|
22
|
+
})[];
|
|
23
|
+
};
|
|
24
|
+
bundler: {
|
|
25
|
+
type: string;
|
|
26
|
+
__validate: (arg1: string) => void;
|
|
27
|
+
};
|
|
28
|
+
resolvers: SchemaEntity;
|
|
29
|
+
transformers: SchemaEntity;
|
|
30
|
+
validators: SchemaEntity;
|
|
31
|
+
namers: SchemaEntity;
|
|
32
|
+
packagers: SchemaEntity;
|
|
33
|
+
optimizers: SchemaEntity;
|
|
34
|
+
compressors: SchemaEntity;
|
|
35
|
+
reporters: SchemaEntity;
|
|
36
|
+
runtimes: SchemaEntity;
|
|
37
|
+
unstable_alias: {
|
|
38
|
+
type: string;
|
|
39
|
+
properties: {};
|
|
40
|
+
additionalProperties: {
|
|
41
|
+
type: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
filePath: {
|
|
45
|
+
type: string;
|
|
46
|
+
};
|
|
47
|
+
resolveFrom: {
|
|
48
|
+
type: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
additionalProperties: boolean;
|
|
52
|
+
};
|
|
53
|
+
export default _default;
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { GraphVisitor, FilePath, TraversalActions, BundleBehavior as IBundleBehavior, Symbol } from '@atlaspack/types';
|
|
2
|
+
import type { ContentGraphOpts, NodeId, SerializedContentGraph } from '@atlaspack/graph';
|
|
3
|
+
import type { Asset, AssetNode, Bundle, BundleGraphNode, BundleGroup, Dependency, DependencyNode, InternalSourceLocation, Target, Condition } from './types';
|
|
4
|
+
import type AssetGraph from './AssetGraph';
|
|
5
|
+
import type { ProjectPath } from './projectPath';
|
|
6
|
+
import { ContentGraph } from '@atlaspack/graph';
|
|
7
|
+
import type { EnvironmentRef } from './EnvironmentManager';
|
|
8
|
+
export declare const bundleGraphEdgeTypes: {
|
|
9
|
+
readonly null: 1;
|
|
10
|
+
readonly contains: 2;
|
|
11
|
+
readonly bundle: 3;
|
|
12
|
+
readonly references: 4;
|
|
13
|
+
readonly internal_async: 5;
|
|
14
|
+
readonly conditional: 6;
|
|
15
|
+
};
|
|
16
|
+
export type BundleGraphEdgeType = (typeof bundleGraphEdgeTypes)[keyof typeof bundleGraphEdgeTypes];
|
|
17
|
+
type InternalSymbolResolution = {
|
|
18
|
+
asset: Asset;
|
|
19
|
+
exportSymbol: string;
|
|
20
|
+
symbol: Symbol | null | undefined | false;
|
|
21
|
+
loc: InternalSourceLocation | null | undefined;
|
|
22
|
+
};
|
|
23
|
+
type InternalExportSymbolResolution = InternalSymbolResolution & {
|
|
24
|
+
readonly exportAs: Symbol | string;
|
|
25
|
+
};
|
|
26
|
+
type BundleGraphOpts = {
|
|
27
|
+
graph: ContentGraphOpts<BundleGraphNode, BundleGraphEdgeType>;
|
|
28
|
+
bundleContentHashes: Map<string, string>;
|
|
29
|
+
assetPublicIds: Set<string>;
|
|
30
|
+
publicIdByAssetId: Map<string, string>;
|
|
31
|
+
conditions: Map<string, Condition>;
|
|
32
|
+
};
|
|
33
|
+
type SerializedBundleGraph = {
|
|
34
|
+
$$raw: true;
|
|
35
|
+
graph: SerializedContentGraph<BundleGraphNode, BundleGraphEdgeType>;
|
|
36
|
+
bundleContentHashes: Map<string, string>;
|
|
37
|
+
assetPublicIds: Set<string>;
|
|
38
|
+
publicIdByAssetId: Map<string, string>;
|
|
39
|
+
conditions: Map<string, Condition>;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Stores assets, dependencies, bundle groups, bundles, and the relationships between them.
|
|
43
|
+
* The BundleGraph is passed to the bundler plugin wrapped in a MutableBundleGraph,
|
|
44
|
+
* and is passed to packagers and optimizers wrapped in the public BundleGraph object, both
|
|
45
|
+
* of which implement public api for this structure. This is the internal structure.
|
|
46
|
+
*/
|
|
47
|
+
export default class BundleGraph {
|
|
48
|
+
/** A set of all existing concise asset ids present in the BundleGraph */
|
|
49
|
+
_assetPublicIds: Set<string>;
|
|
50
|
+
/** Maps full asset ids (currently 32-character strings) to concise ids (minimum of 5 character strings) */
|
|
51
|
+
_publicIdByAssetId: Map<string, string>;
|
|
52
|
+
/**
|
|
53
|
+
* A cache of bundle hashes by bundle id.
|
|
54
|
+
*
|
|
55
|
+
* TODO: These hashes are being invalidated in mutative methods, but this._graph is not a private
|
|
56
|
+
* property so it is possible to reach in and mutate the graph without invalidating these hashes.
|
|
57
|
+
* It needs to be exposed in BundlerRunner for now based on how applying runtimes works and the
|
|
58
|
+
* BundlerRunner takes care of invalidating hashes when runtimes are applied, but this is not ideal.
|
|
59
|
+
*/
|
|
60
|
+
_bundleContentHashes: Map<string, string>;
|
|
61
|
+
_targetEntryRoots: Map<ProjectPath, FilePath>;
|
|
62
|
+
/** The internal core Graph structure */
|
|
63
|
+
_graph: ContentGraph<BundleGraphNode, BundleGraphEdgeType>;
|
|
64
|
+
_bundlePublicIds: Set<string>;
|
|
65
|
+
_conditions: Map<string, Condition>;
|
|
66
|
+
constructor({ graph, publicIdByAssetId, assetPublicIds, bundleContentHashes, conditions, }: {
|
|
67
|
+
graph: ContentGraph<BundleGraphNode, BundleGraphEdgeType>;
|
|
68
|
+
publicIdByAssetId: Map<string, string>;
|
|
69
|
+
assetPublicIds: Set<string>;
|
|
70
|
+
bundleContentHashes: Map<string, string>;
|
|
71
|
+
conditions: Map<string, Condition>;
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* Produce a BundleGraph from an AssetGraph by removing asset groups and retargeting dependencies
|
|
75
|
+
* based on the symbol data (resolving side-effect free reexports).
|
|
76
|
+
*/
|
|
77
|
+
static fromAssetGraph(assetGraph: AssetGraph, isProduction: boolean, publicIdByAssetId?: Map<string, string>, assetPublicIds?: Set<string>): BundleGraph;
|
|
78
|
+
serialize(): SerializedBundleGraph;
|
|
79
|
+
static deserialize(serialized: BundleGraphOpts): BundleGraph;
|
|
80
|
+
/**
|
|
81
|
+
* Serialize the bundle graph for efficient transfer to native Rust code.
|
|
82
|
+
* Returns a JSON string of nodes, an array of edges, and a map of asset IDs to public IDs.
|
|
83
|
+
*/
|
|
84
|
+
serializeForNative(): {
|
|
85
|
+
nodesJson: string;
|
|
86
|
+
edges: [number, number, BundleGraphEdgeType][];
|
|
87
|
+
publicIdByAssetId: Record<string, string>;
|
|
88
|
+
environmentsJson: string;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Serialize only the given asset nodes for native incremental update.
|
|
92
|
+
* Same node shape and env/omit logic as serializeForNative.
|
|
93
|
+
*/
|
|
94
|
+
serializeAssetNodesForNative(assetIds: Array<string>): string;
|
|
95
|
+
/**
|
|
96
|
+
* Remove null and undefined values from an object to reduce JSON size.
|
|
97
|
+
* Preserves false, 0, empty strings, and arrays.
|
|
98
|
+
*/
|
|
99
|
+
private _omitNulls;
|
|
100
|
+
createBundle(opts: {
|
|
101
|
+
readonly entryAsset: Asset;
|
|
102
|
+
readonly bundleRoots?: Array<Asset>;
|
|
103
|
+
readonly target: Target;
|
|
104
|
+
readonly needsStableName?: boolean | null | undefined;
|
|
105
|
+
readonly bundleBehavior?: IBundleBehavior | null | undefined;
|
|
106
|
+
readonly shouldContentHash: boolean;
|
|
107
|
+
readonly env: EnvironmentRef;
|
|
108
|
+
} | {
|
|
109
|
+
readonly type: string;
|
|
110
|
+
readonly env: EnvironmentRef;
|
|
111
|
+
readonly uniqueKey: string;
|
|
112
|
+
readonly target: Target;
|
|
113
|
+
readonly needsStableName?: boolean | null | undefined;
|
|
114
|
+
readonly bundleBehavior?: IBundleBehavior | null | undefined;
|
|
115
|
+
readonly isSplittable?: boolean | null | undefined;
|
|
116
|
+
readonly pipeline?: string | null | undefined;
|
|
117
|
+
readonly shouldContentHash: boolean;
|
|
118
|
+
}): Bundle;
|
|
119
|
+
addAssetToBundle(asset: Asset, bundle: Bundle): void;
|
|
120
|
+
addAssetGraphToBundle(asset: Asset, bundle: Bundle, shouldSkipDependency?: (arg1: Dependency) => boolean): void;
|
|
121
|
+
markDependencyReferenceable(dependency: Dependency): void;
|
|
122
|
+
addEntryToBundle(asset: Asset, bundle: Bundle, shouldSkipDependency?: (arg1: Dependency) => boolean): void;
|
|
123
|
+
internalizeAsyncDependency(bundle: Bundle, dependency: Dependency): void;
|
|
124
|
+
isDependencySkipped(dependency: Dependency): boolean;
|
|
125
|
+
getParentBundlesOfBundleGroup(bundleGroup: BundleGroup): Array<Bundle>;
|
|
126
|
+
resolveAsyncDependency(dependency: Dependency, bundle?: Bundle | null): {
|
|
127
|
+
type: 'bundle_group';
|
|
128
|
+
value: BundleGroup;
|
|
129
|
+
} | {
|
|
130
|
+
type: 'asset';
|
|
131
|
+
value: Asset;
|
|
132
|
+
} | null | undefined;
|
|
133
|
+
getReferencedBundle(dependency: Dependency, fromBundle: Bundle): Bundle | null | undefined;
|
|
134
|
+
removeAssetGraphFromBundle(asset: Asset, bundle: Bundle): void;
|
|
135
|
+
/**
|
|
136
|
+
* Remove a bundle from the bundle graph. Remove its bundle group if it is
|
|
137
|
+
* the only bundle in the group.
|
|
138
|
+
*/
|
|
139
|
+
removeBundle(bundle: Bundle): Set<BundleGroup>;
|
|
140
|
+
removeBundleGroup(bundleGroup: BundleGroup): void;
|
|
141
|
+
_removeExternalDependency(bundle: Bundle, dependency: Dependency): void;
|
|
142
|
+
createAssetReference(dependency: Dependency, asset: Asset, bundle: Bundle): void;
|
|
143
|
+
createBundleReference(from: Bundle, to: Bundle): void;
|
|
144
|
+
createBundleConditionalReference(from: Bundle, to: Bundle): void;
|
|
145
|
+
getBundlesWithAsset(asset: Asset): Array<Bundle>;
|
|
146
|
+
getBundlesWithDependency(dependency: Dependency): Array<Bundle>;
|
|
147
|
+
getDependencyAssets(dependency: Dependency): Array<Asset>;
|
|
148
|
+
getResolvedAsset(dep: Dependency, bundle?: Bundle | null): Asset | null | undefined;
|
|
149
|
+
getDependencies(asset: Asset): Array<Dependency>;
|
|
150
|
+
traverseAssets<TContext>(bundle: Bundle, visit: GraphVisitor<Asset, TContext>, startAsset?: Asset): TContext | null | undefined;
|
|
151
|
+
isAssetReferenced(bundle: Bundle, asset: Asset): boolean;
|
|
152
|
+
isAssetReferencedFastCheck(bundle: Bundle, asset: Asset): boolean | null;
|
|
153
|
+
getReferencedAssets(bundle: Bundle): Set<Asset>;
|
|
154
|
+
hasParentBundleOfType(bundle: Bundle, type: string): boolean;
|
|
155
|
+
getParentBundles(bundle: Bundle): Array<Bundle>;
|
|
156
|
+
isAssetReachableFromBundle(asset: Asset, bundle: Bundle): boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Performs a depth-first traversal of all assets and dependencies contained
|
|
159
|
+
* within a bundle. Only visits nodes that are directly contained in the bundle
|
|
160
|
+
* (connected via a `contains` edge).
|
|
161
|
+
*
|
|
162
|
+
* Entry Asset Ordering:
|
|
163
|
+
* The traversal guarantees that entry assets are visited in the exact order they
|
|
164
|
+
* appear in `bundle.entryAssetIds`. This ordering is critical for several reasons:
|
|
165
|
+
*
|
|
166
|
+
* 1. **Code Execution Order in Packagers**: Packagers (ScopeHoistingPackager,
|
|
167
|
+
* DevPackager) use this traversal to concatenate assets into the final bundle.
|
|
168
|
+
* The traversal order determines the execution order of code in the output.
|
|
169
|
+
* Entry assets must be processed in their defined order to ensure correct
|
|
170
|
+
* initialization sequences.
|
|
171
|
+
*
|
|
172
|
+
* 2. **Runtime Injection**: Runtime assets (HMR, bundle manifests) are prepended
|
|
173
|
+
* to `entryAssetIds` via `unshift()` in `applyRuntimes.ts`. By honoring the
|
|
174
|
+
* array order, runtimes are guaranteed to be visited (and thus output) before
|
|
175
|
+
* application entry points, ensuring the runtime infrastructure is available
|
|
176
|
+
* when application code executes.
|
|
177
|
+
*
|
|
178
|
+
* 3. **Deterministic Builds**: Consistent traversal order ensures reproducible
|
|
179
|
+
* bundle output, which is essential for caching and build verification.
|
|
180
|
+
*
|
|
181
|
+
* The sorting only applies at the first traversal level (direct children of the
|
|
182
|
+
* start node). Subsequent levels follow standard DFS order based on the graph's
|
|
183
|
+
* edge structure.
|
|
184
|
+
*
|
|
185
|
+
* @param bundle - The bundle to traverse
|
|
186
|
+
* @param visit - Visitor callback receiving asset or dependency nodes
|
|
187
|
+
* @param startAsset - Optional asset to start traversal from (defaults to bundle root)
|
|
188
|
+
*/
|
|
189
|
+
traverseBundle<TContext>(bundle: Bundle, visit: GraphVisitor<AssetNode | DependencyNode, TContext>, startAsset?: Asset): TContext | null | undefined;
|
|
190
|
+
traverse<TContext>(visit: GraphVisitor<AssetNode | DependencyNode, TContext>, start?: Asset): TContext | null | undefined;
|
|
191
|
+
getChildBundles(bundle: Bundle): Array<Bundle>;
|
|
192
|
+
traverseBundles<TContext>(visit: GraphVisitor<Bundle, TContext>, startBundle?: Bundle | null): TContext | null | undefined;
|
|
193
|
+
getBundles(opts?: {
|
|
194
|
+
includeInline: boolean;
|
|
195
|
+
}): Array<Bundle>;
|
|
196
|
+
getTotalSize(asset: Asset): number;
|
|
197
|
+
getReferencingBundles(bundle: Bundle): Array<Bundle>;
|
|
198
|
+
getBundleGroupsContainingBundle(bundle: Bundle): Array<BundleGroup>;
|
|
199
|
+
getDirectParentBundleGroups(bundle: Bundle): Array<BundleGroup>;
|
|
200
|
+
getBundlesInBundleGroup(bundleGroup: BundleGroup, opts?: {
|
|
201
|
+
includeInline: boolean;
|
|
202
|
+
}): Array<Bundle>;
|
|
203
|
+
getReferencedBundles(bundle: Bundle, opts?: {
|
|
204
|
+
recursive?: boolean;
|
|
205
|
+
includeInline?: boolean;
|
|
206
|
+
}): Array<Bundle>;
|
|
207
|
+
getIncomingDependencies(asset: Asset): Array<Dependency>;
|
|
208
|
+
getAssetWithDependency(dep: Dependency): Asset | null | undefined;
|
|
209
|
+
bundleHasAsset(bundle: Bundle, asset: Asset): boolean;
|
|
210
|
+
bundleHasDependency(bundle: Bundle, dependency: Dependency): boolean;
|
|
211
|
+
filteredTraverse<TValue, TContext>(bundleNodeId: NodeId, filter: (arg1: NodeId, arg2: TraversalActions) => TValue | null | undefined, visit: GraphVisitor<TValue, TContext>): TContext | null | undefined;
|
|
212
|
+
getSymbolResolution(asset: Asset, symbol: Symbol, boundary?: Bundle | null): InternalSymbolResolution;
|
|
213
|
+
getAssetById(contentKey: string): Asset;
|
|
214
|
+
getAssetPublicId(asset: Asset): string;
|
|
215
|
+
getExportedSymbols(asset: Asset, boundary?: Bundle | null): Array<InternalExportSymbolResolution>;
|
|
216
|
+
getContentHash(bundle: Bundle): string;
|
|
217
|
+
getInlineBundles(bundle: Bundle): Array<Bundle>;
|
|
218
|
+
getHash(bundle: Bundle): string;
|
|
219
|
+
getBundleGraphHash(): string;
|
|
220
|
+
addBundleToBundleGroup(bundle: Bundle, bundleGroup: BundleGroup): void;
|
|
221
|
+
getUsedSymbolsAsset(asset: Asset): ReadonlySet<Symbol> | null | undefined;
|
|
222
|
+
getUsedSymbolsDependency(dep: Dependency): ReadonlySet<Symbol> | null | undefined;
|
|
223
|
+
merge(other: BundleGraph): void;
|
|
224
|
+
isEntryBundleGroup(bundleGroup: BundleGroup): boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Update the asset in a Bundle Graph and clear the associated Bundle hash.
|
|
227
|
+
*/
|
|
228
|
+
updateAsset(asset: AssetNode): void;
|
|
229
|
+
getEntryRoot(projectRoot: FilePath, target: Target): FilePath;
|
|
230
|
+
getReferencedConditionalBundles(bundle: Bundle): Array<Bundle>;
|
|
231
|
+
}
|
|
232
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Readable } from 'stream';
|
|
2
|
+
import type { AST, Blob } from '@atlaspack/types';
|
|
3
|
+
import SourceMap from '@atlaspack/source-map';
|
|
4
|
+
import type { Asset, Dependency, AtlaspackOptions } from './types';
|
|
5
|
+
export default class CommittedAsset {
|
|
6
|
+
key: string | null | undefined;
|
|
7
|
+
value: Asset;
|
|
8
|
+
options: AtlaspackOptions;
|
|
9
|
+
content: Promise<Buffer | string> | null | undefined;
|
|
10
|
+
mapBuffer: Promise<Buffer | null | undefined> | null | undefined;
|
|
11
|
+
map: Promise<SourceMap | null | undefined> | null | undefined;
|
|
12
|
+
ast: Promise<AST> | null | undefined;
|
|
13
|
+
code: string | null | undefined;
|
|
14
|
+
constructor(value: Asset, options: AtlaspackOptions);
|
|
15
|
+
getContent(): Blob | Promise<Buffer | string>;
|
|
16
|
+
getCode(): Promise<string>;
|
|
17
|
+
getBuffer(): Promise<Buffer>;
|
|
18
|
+
getStream(): Readable;
|
|
19
|
+
getMapBuffer(): Promise<Buffer | null | undefined>;
|
|
20
|
+
getMap(): Promise<SourceMap | null | undefined>;
|
|
21
|
+
getAST(): Promise<AST | null | undefined>;
|
|
22
|
+
getDependencies(): Array<Dependency>;
|
|
23
|
+
}
|