@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
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
var _MutableAsset_astDirty, _MutableAsset_ast, _MutableAsset_contents, _MutableAsset_inner, _MutableAsset_map, _MutableAsset_projectRoot, _MutableAsset_sourceMap;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MutableAsset = void 0;
|
|
19
|
+
const source_map_1 = __importDefault(require("@atlaspack/source-map"));
|
|
20
|
+
const stream_1 = require("stream");
|
|
21
|
+
const bitflags_1 = require("./bitflags");
|
|
22
|
+
const asset_symbols_1 = require("./asset-symbols");
|
|
23
|
+
class MutableAsset {
|
|
24
|
+
get astGenerator() {
|
|
25
|
+
throw new Error('get MutableAsset.astGenerator');
|
|
26
|
+
}
|
|
27
|
+
// @ts-expect-error TS1051
|
|
28
|
+
set astGenerator(value) {
|
|
29
|
+
throw new Error('set MutableAsset.astGenerator');
|
|
30
|
+
}
|
|
31
|
+
constructor(asset, contents, env, fs, map, projectRoot) {
|
|
32
|
+
_MutableAsset_astDirty.set(this, void 0);
|
|
33
|
+
_MutableAsset_ast.set(this, void 0);
|
|
34
|
+
_MutableAsset_contents.set(this, void 0);
|
|
35
|
+
_MutableAsset_inner.set(this, void 0);
|
|
36
|
+
_MutableAsset_map.set(this, void 0);
|
|
37
|
+
_MutableAsset_projectRoot.set(this, void 0);
|
|
38
|
+
_MutableAsset_sourceMap.set(this, void 0);
|
|
39
|
+
this.bundleBehavior = bitflags_1.bundleBehaviorMap.fromNullable(asset.bundleBehavior);
|
|
40
|
+
this.env = env;
|
|
41
|
+
this.filePath = asset.filePath;
|
|
42
|
+
this.fs = fs;
|
|
43
|
+
this.id = asset.id;
|
|
44
|
+
this.isBundleSplittable = asset.isBundleSplittable;
|
|
45
|
+
this.isSource = asset.isSource;
|
|
46
|
+
this.meta = asset.meta;
|
|
47
|
+
this.pipeline = asset.pipeline;
|
|
48
|
+
this.query = new URLSearchParams(asset.query);
|
|
49
|
+
this.sideEffects = asset.sideEffects;
|
|
50
|
+
this.stats = asset.stats;
|
|
51
|
+
this.symbols = new asset_symbols_1.MutableAssetSymbols(asset.symbols);
|
|
52
|
+
this.type = asset.type;
|
|
53
|
+
this.uniqueKey = asset.uniqueKey;
|
|
54
|
+
__classPrivateFieldSet(this, _MutableAsset_astDirty, false, "f");
|
|
55
|
+
__classPrivateFieldSet(this, _MutableAsset_contents, contents, "f");
|
|
56
|
+
__classPrivateFieldSet(this, _MutableAsset_inner, asset, "f");
|
|
57
|
+
__classPrivateFieldSet(this, _MutableAsset_map, map, "f");
|
|
58
|
+
__classPrivateFieldSet(this, _MutableAsset_projectRoot, projectRoot, "f");
|
|
59
|
+
}
|
|
60
|
+
// eslint-disable-next-line require-await
|
|
61
|
+
async getAST() {
|
|
62
|
+
return __classPrivateFieldGet(this, _MutableAsset_ast, "f");
|
|
63
|
+
}
|
|
64
|
+
setAST(ast) {
|
|
65
|
+
__classPrivateFieldSet(this, _MutableAsset_astDirty, true, "f");
|
|
66
|
+
__classPrivateFieldSet(this, _MutableAsset_ast, ast, "f");
|
|
67
|
+
}
|
|
68
|
+
isASTDirty() {
|
|
69
|
+
return __classPrivateFieldGet(this, _MutableAsset_astDirty, "f");
|
|
70
|
+
}
|
|
71
|
+
// eslint-disable-next-line require-await
|
|
72
|
+
async getCode() {
|
|
73
|
+
return __classPrivateFieldGet(this, _MutableAsset_contents, "f").toString();
|
|
74
|
+
}
|
|
75
|
+
setCode(code) {
|
|
76
|
+
__classPrivateFieldSet(this, _MutableAsset_contents, Buffer.from(code), "f");
|
|
77
|
+
}
|
|
78
|
+
// eslint-disable-next-line require-await
|
|
79
|
+
async getBuffer() {
|
|
80
|
+
return __classPrivateFieldGet(this, _MutableAsset_contents, "f");
|
|
81
|
+
}
|
|
82
|
+
setBuffer(buf) {
|
|
83
|
+
__classPrivateFieldSet(this, _MutableAsset_contents, buf, "f");
|
|
84
|
+
}
|
|
85
|
+
getStream() {
|
|
86
|
+
return stream_1.Readable.from(__classPrivateFieldGet(this, _MutableAsset_contents, "f"));
|
|
87
|
+
}
|
|
88
|
+
setStream(stream) {
|
|
89
|
+
const data = [];
|
|
90
|
+
stream.on('data', (chunk) => {
|
|
91
|
+
data.push(chunk);
|
|
92
|
+
});
|
|
93
|
+
stream.on('end', () => {
|
|
94
|
+
__classPrivateFieldSet(this, _MutableAsset_contents, Buffer.concat(data), "f");
|
|
95
|
+
});
|
|
96
|
+
stream.on('error', () => {
|
|
97
|
+
throw new Error('MutableAsset.setStream()');
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
getMap() {
|
|
101
|
+
// Only create the source map if it is requested
|
|
102
|
+
if (!__classPrivateFieldGet(this, _MutableAsset_sourceMap, "f") && __classPrivateFieldGet(this, _MutableAsset_map, "f") && typeof __classPrivateFieldGet(this, _MutableAsset_map, "f") === 'string') {
|
|
103
|
+
let sourceMap = new source_map_1.default(__classPrivateFieldGet(this, _MutableAsset_projectRoot, "f"));
|
|
104
|
+
sourceMap.addVLQMap(JSON.parse(__classPrivateFieldGet(this, _MutableAsset_map, "f")));
|
|
105
|
+
__classPrivateFieldSet(this, _MutableAsset_sourceMap, sourceMap, "f");
|
|
106
|
+
}
|
|
107
|
+
return Promise.resolve(__classPrivateFieldGet(this, _MutableAsset_sourceMap, "f"));
|
|
108
|
+
}
|
|
109
|
+
// eslint-disable-next-line no-unused-vars
|
|
110
|
+
setMap(sourceMap) {
|
|
111
|
+
this.isMapDirty = true;
|
|
112
|
+
__classPrivateFieldSet(this, _MutableAsset_sourceMap, sourceMap, "f");
|
|
113
|
+
}
|
|
114
|
+
getMapBuffer() {
|
|
115
|
+
throw new Error('getMapBuffer() is considered an internal implementation detail, please use getMap() instead');
|
|
116
|
+
}
|
|
117
|
+
getDependencies() {
|
|
118
|
+
throw new Error('MutableAsset.getDependencies');
|
|
119
|
+
}
|
|
120
|
+
// eslint-disable-next-line no-unused-vars
|
|
121
|
+
addDependency(options) {
|
|
122
|
+
throw new Error('MutableAsset.addDependency()');
|
|
123
|
+
}
|
|
124
|
+
// eslint-disable-next-line no-unused-vars
|
|
125
|
+
addURLDependency(url, opts) {
|
|
126
|
+
throw new Error('MutableAsset.addURLDependency()');
|
|
127
|
+
}
|
|
128
|
+
// eslint-disable-next-line no-unused-vars
|
|
129
|
+
setEnvironment(opts) {
|
|
130
|
+
throw new Error('MutableAsset.setEnvironment()');
|
|
131
|
+
}
|
|
132
|
+
// eslint-disable-next-line no-unused-vars
|
|
133
|
+
invalidateOnFileChange(invalidation) {
|
|
134
|
+
// TODO: Forward invalidations to Rust
|
|
135
|
+
}
|
|
136
|
+
// eslint-disable-next-line no-unused-vars
|
|
137
|
+
invalidateOnFileCreate(invalidation) {
|
|
138
|
+
// TODO: Forward invalidations to Rust
|
|
139
|
+
}
|
|
140
|
+
// eslint-disable-next-line no-unused-vars
|
|
141
|
+
invalidateOnEnvChange(invalidation) {
|
|
142
|
+
// TODO: Forward invalidations to Rust
|
|
143
|
+
}
|
|
144
|
+
invalidateOnStartup() {
|
|
145
|
+
// TODO: Forward invalidations to Rust
|
|
146
|
+
}
|
|
147
|
+
invalidateOnBuild() {
|
|
148
|
+
// TODO: Forward invalidations to Rust
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.MutableAsset = MutableAsset;
|
|
152
|
+
_MutableAsset_astDirty = new WeakMap(), _MutableAsset_ast = new WeakMap(), _MutableAsset_contents = new WeakMap(), _MutableAsset_inner = new WeakMap(), _MutableAsset_map = new WeakMap(), _MutableAsset_projectRoot = new WeakMap(), _MutableAsset_sourceMap = new WeakMap();
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
var _PluginConfig_inner;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.PluginConfig = void 0;
|
|
19
|
+
const Config_1 = __importDefault(require("../../../public/Config"));
|
|
20
|
+
const InternalConfig_1 = require("../../../InternalConfig");
|
|
21
|
+
class PluginConfig {
|
|
22
|
+
constructor(configOpts, options) {
|
|
23
|
+
_PluginConfig_inner.set(this, void 0);
|
|
24
|
+
let internalConfig = (0, InternalConfig_1.createConfig)(configOpts);
|
|
25
|
+
this.isSource = internalConfig.isSource;
|
|
26
|
+
this.searchPath = internalConfig.searchPath;
|
|
27
|
+
// @ts-expect-error TS2564
|
|
28
|
+
this.env = internalConfig.env;
|
|
29
|
+
__classPrivateFieldSet(this, _PluginConfig_inner, new Config_1.default(internalConfig, options), "f");
|
|
30
|
+
}
|
|
31
|
+
// eslint-disable-next-line no-unused-vars
|
|
32
|
+
invalidateOnFileChange(filePath) { }
|
|
33
|
+
// eslint-disable-next-line no-unused-vars
|
|
34
|
+
invalidateOnFileCreate(invalidations) { }
|
|
35
|
+
// eslint-disable-next-line no-unused-vars
|
|
36
|
+
invalidateOnEnvChange(invalidation) { }
|
|
37
|
+
invalidateOnStartup() { }
|
|
38
|
+
invalidateOnBuild() { }
|
|
39
|
+
// eslint-disable-next-line no-unused-vars
|
|
40
|
+
addDevDependency(options) { }
|
|
41
|
+
// eslint-disable-next-line no-unused-vars
|
|
42
|
+
setCacheKey(key) { }
|
|
43
|
+
getConfig(
|
|
44
|
+
// eslint-disable-next-line no-unused-vars
|
|
45
|
+
filePaths,
|
|
46
|
+
// eslint-disable-next-line no-unused-vars
|
|
47
|
+
options) {
|
|
48
|
+
return __classPrivateFieldGet(this, _PluginConfig_inner, "f").getConfig(filePaths, options);
|
|
49
|
+
}
|
|
50
|
+
getConfigFrom(
|
|
51
|
+
// eslint-disable-next-line no-unused-vars
|
|
52
|
+
searchPath,
|
|
53
|
+
// eslint-disable-next-line no-unused-vars
|
|
54
|
+
filePaths,
|
|
55
|
+
// eslint-disable-next-line no-unused-vars
|
|
56
|
+
options) {
|
|
57
|
+
return __classPrivateFieldGet(this, _PluginConfig_inner, "f").getConfigFrom(searchPath, filePaths, options);
|
|
58
|
+
}
|
|
59
|
+
getPackage() {
|
|
60
|
+
return __classPrivateFieldGet(this, _PluginConfig_inner, "f").getPackage();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.PluginConfig = PluginConfig;
|
|
64
|
+
_PluginConfig_inner = new WeakMap();
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var _PluginOptions_options;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PluginOptions = void 0;
|
|
16
|
+
class PluginOptions {
|
|
17
|
+
get env() {
|
|
18
|
+
if (!('env' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
19
|
+
return process.env;
|
|
20
|
+
// throw new Error('PluginOptions.env');
|
|
21
|
+
}
|
|
22
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").env;
|
|
23
|
+
}
|
|
24
|
+
get projectRoot() {
|
|
25
|
+
if (!('projectRoot' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
26
|
+
throw new Error('PluginOptions.projectRoot');
|
|
27
|
+
}
|
|
28
|
+
this.used = true;
|
|
29
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").projectRoot;
|
|
30
|
+
}
|
|
31
|
+
get packageManager() {
|
|
32
|
+
if (!('packageManager' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
33
|
+
throw new Error('PluginOptions.packageManager');
|
|
34
|
+
}
|
|
35
|
+
this.used = true;
|
|
36
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").packageManager;
|
|
37
|
+
}
|
|
38
|
+
get mode() {
|
|
39
|
+
if (!('mode' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
40
|
+
throw new Error('PluginOptions.mode');
|
|
41
|
+
}
|
|
42
|
+
this.used = true;
|
|
43
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").mode;
|
|
44
|
+
}
|
|
45
|
+
get parcelVersion() {
|
|
46
|
+
if (!('parcelVersion' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
47
|
+
return 'UNKNOWN VERSION';
|
|
48
|
+
// throw new Error('PluginOptions.parcelVersion');
|
|
49
|
+
}
|
|
50
|
+
this.used = true;
|
|
51
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").parcelVersion;
|
|
52
|
+
}
|
|
53
|
+
get hmrOptions() {
|
|
54
|
+
if (!('hmrOptions' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
55
|
+
throw new Error('PluginOptions.hmrOptions');
|
|
56
|
+
}
|
|
57
|
+
this.used = true;
|
|
58
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").hmrOptions;
|
|
59
|
+
}
|
|
60
|
+
get serveOptions() {
|
|
61
|
+
if (!('serveOptions' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
62
|
+
throw new Error('PluginOptions.serveOptions');
|
|
63
|
+
}
|
|
64
|
+
this.used = true;
|
|
65
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").serveOptions;
|
|
66
|
+
}
|
|
67
|
+
get shouldBuildLazily() {
|
|
68
|
+
if (!('shouldBuildLazily' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
69
|
+
throw new Error('PluginOptions.shouldBuildLazily');
|
|
70
|
+
}
|
|
71
|
+
this.used = true;
|
|
72
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").shouldBuildLazily;
|
|
73
|
+
}
|
|
74
|
+
get shouldAutoInstall() {
|
|
75
|
+
if (!('shouldAutoInstall' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
76
|
+
throw new Error('PluginOptions.shouldAutoInstall');
|
|
77
|
+
}
|
|
78
|
+
this.used = true;
|
|
79
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").shouldAutoInstall;
|
|
80
|
+
}
|
|
81
|
+
get logLevel() {
|
|
82
|
+
if (!('logLevel' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
83
|
+
throw new Error('PluginOptions.logLevel');
|
|
84
|
+
}
|
|
85
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").logLevel;
|
|
86
|
+
}
|
|
87
|
+
get cacheDir() {
|
|
88
|
+
if (!('cacheDir' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
89
|
+
throw new Error('PluginOptions.cacheDir');
|
|
90
|
+
}
|
|
91
|
+
this.used = true;
|
|
92
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").cacheDir;
|
|
93
|
+
}
|
|
94
|
+
get inputFS() {
|
|
95
|
+
if (!('inputFS' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
96
|
+
throw new Error('PluginOptions.inputFS');
|
|
97
|
+
}
|
|
98
|
+
this.used = true;
|
|
99
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").inputFS;
|
|
100
|
+
}
|
|
101
|
+
get outputFS() {
|
|
102
|
+
if (!('outputFS' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
103
|
+
throw new Error('PluginOptions.outputFS');
|
|
104
|
+
}
|
|
105
|
+
this.used = true;
|
|
106
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").outputFS;
|
|
107
|
+
}
|
|
108
|
+
get instanceId() {
|
|
109
|
+
if (!('instanceId' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
110
|
+
throw new Error('PluginOptions.instanceId');
|
|
111
|
+
}
|
|
112
|
+
this.used = true;
|
|
113
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").instanceId;
|
|
114
|
+
}
|
|
115
|
+
get detailedReport() {
|
|
116
|
+
if (!('detailedReport' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
117
|
+
throw new Error('PluginOptions.detailedReport');
|
|
118
|
+
}
|
|
119
|
+
this.used = true;
|
|
120
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").detailedReport;
|
|
121
|
+
}
|
|
122
|
+
get featureFlags() {
|
|
123
|
+
if (!('featureFlags' in __classPrivateFieldGet(this, _PluginOptions_options, "f"))) {
|
|
124
|
+
throw new Error('PluginOptions.featureFlags');
|
|
125
|
+
}
|
|
126
|
+
this.used = true;
|
|
127
|
+
return __classPrivateFieldGet(this, _PluginOptions_options, "f").featureFlags;
|
|
128
|
+
}
|
|
129
|
+
constructor(options) {
|
|
130
|
+
_PluginOptions_options.set(this, void 0);
|
|
131
|
+
this.used = false;
|
|
132
|
+
// @ts-expect-error TS2322
|
|
133
|
+
__classPrivateFieldSet(this, _PluginOptions_options, options, "f");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.PluginOptions = PluginOptions;
|
|
137
|
+
_PluginOptions_options = new WeakMap();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PluginTracer = void 0;
|
|
4
|
+
class PluginTracer {
|
|
5
|
+
// @ts-expect-error TS2416
|
|
6
|
+
createMeasurement() {
|
|
7
|
+
throw new Error('PluginTracer.createMeasurement');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.PluginTracer = PluginTracer;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Target = void 0;
|
|
4
|
+
class Target {
|
|
5
|
+
constructor(inner, env) {
|
|
6
|
+
this.distDir = inner.distDir;
|
|
7
|
+
this.distEntry = inner.distEntry;
|
|
8
|
+
this.name = inner.name;
|
|
9
|
+
this.publicUrl = inner.publicUrl;
|
|
10
|
+
this.loc = inner.loc;
|
|
11
|
+
this.env = env;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.Target = Target;
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultDetector = exports.SideEffectDetector = void 0;
|
|
4
|
+
const async_hooks_1 = require("async_hooks");
|
|
5
|
+
/**
|
|
6
|
+
* Side effect detector using AsyncLocalStorage to track filesystem and environment variable
|
|
7
|
+
* access across concurrent async operations in a Node.js worker thread.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* const detector = new SideEffectDetector();
|
|
11
|
+
* detector.install();
|
|
12
|
+
*
|
|
13
|
+
* const [result, sideEffects] = await detector.monitorSideEffects(async () => {
|
|
14
|
+
* return await someOperation();
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* console.log(sideEffects.fsUsage); // Array of filesystem accesses
|
|
18
|
+
* console.log(sideEffects.envUsage); // Array of environment variable accesses
|
|
19
|
+
*/
|
|
20
|
+
class SideEffectDetector {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.asyncStorage = new async_hooks_1.AsyncLocalStorage();
|
|
23
|
+
this.patchesInstalled = false;
|
|
24
|
+
this.originalMethods = {};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Install global patches for filesystem and environment variable monitoring.
|
|
28
|
+
* This should be called once when the worker starts up.
|
|
29
|
+
*/
|
|
30
|
+
install() {
|
|
31
|
+
if (this.patchesInstalled) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this._patchFilesystem();
|
|
35
|
+
this._patchProcessEnv();
|
|
36
|
+
this.patchesInstalled = true;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Monitor side effects for an async operation.
|
|
40
|
+
*
|
|
41
|
+
* @param {Function} fn - Async function to monitor
|
|
42
|
+
* @param {Object} options - Optional configuration
|
|
43
|
+
* @param {string} options.label - Optional label for debugging
|
|
44
|
+
* @returns {Promise<[any, SideEffects]>} Tuple of [result, sideEffects]
|
|
45
|
+
*/
|
|
46
|
+
monitorSideEffects(packageName, fn) {
|
|
47
|
+
if (!this.patchesInstalled) {
|
|
48
|
+
throw new Error('SideEffectDetector: install() must be called before monitorSideEffects()');
|
|
49
|
+
}
|
|
50
|
+
const context = {
|
|
51
|
+
fsUsage: [],
|
|
52
|
+
envUsage: {
|
|
53
|
+
vars: new Set(),
|
|
54
|
+
didEnumerate: false,
|
|
55
|
+
},
|
|
56
|
+
packageName: packageName,
|
|
57
|
+
};
|
|
58
|
+
return this.asyncStorage.run(context, async () => {
|
|
59
|
+
const result = await fn();
|
|
60
|
+
return [result, context];
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get the current monitoring context, if any.
|
|
65
|
+
* Useful for debugging or custom instrumentation.
|
|
66
|
+
*
|
|
67
|
+
* @returns {Object|null} Current context or null if not monitoring
|
|
68
|
+
*/
|
|
69
|
+
getCurrentContext() {
|
|
70
|
+
return this.asyncStorage.getStore() || null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check if currently monitoring side effects.
|
|
74
|
+
*
|
|
75
|
+
* @returns {boolean}
|
|
76
|
+
*/
|
|
77
|
+
isMonitoring() {
|
|
78
|
+
return this.asyncStorage.getStore() !== undefined;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Patch filesystem methods to record access.
|
|
82
|
+
* @private
|
|
83
|
+
*/
|
|
84
|
+
_patchFilesystem() {
|
|
85
|
+
// Inline require this to avoid babel transformer issue
|
|
86
|
+
const fs = require('fs');
|
|
87
|
+
const methodsToPatch = [
|
|
88
|
+
// Sync methods
|
|
89
|
+
'readFileSync',
|
|
90
|
+
'writeFileSync',
|
|
91
|
+
'appendFileSync',
|
|
92
|
+
'existsSync',
|
|
93
|
+
'statSync',
|
|
94
|
+
'lstatSync',
|
|
95
|
+
'readdirSync',
|
|
96
|
+
'mkdirSync',
|
|
97
|
+
'rmdirSync',
|
|
98
|
+
'unlinkSync',
|
|
99
|
+
'copyFileSync',
|
|
100
|
+
'renameSync',
|
|
101
|
+
'chmodSync',
|
|
102
|
+
'chownSync',
|
|
103
|
+
// Async methods
|
|
104
|
+
'readFile',
|
|
105
|
+
'writeFile',
|
|
106
|
+
'appendFile',
|
|
107
|
+
'stat',
|
|
108
|
+
'lstat',
|
|
109
|
+
'readdir',
|
|
110
|
+
'mkdir',
|
|
111
|
+
'rmdir',
|
|
112
|
+
'unlink',
|
|
113
|
+
'copyFile',
|
|
114
|
+
'rename',
|
|
115
|
+
'chmod',
|
|
116
|
+
'chown',
|
|
117
|
+
];
|
|
118
|
+
methodsToPatch.forEach((method) => {
|
|
119
|
+
if (typeof fs[method] === 'function') {
|
|
120
|
+
this.originalMethods[method] = fs[method];
|
|
121
|
+
const self = this;
|
|
122
|
+
// @ts-expect-error Dynamic method patching
|
|
123
|
+
fs[method] = function (path, ...args) {
|
|
124
|
+
// Record filesystem access in current context
|
|
125
|
+
const context = self.asyncStorage.getStore();
|
|
126
|
+
if (context) {
|
|
127
|
+
context.fsUsage.push({
|
|
128
|
+
method,
|
|
129
|
+
path: typeof path === 'string' ? path : path?.toString(),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return self.originalMethods[method].call(this, path, ...args);
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
// Handle fs.promises methods
|
|
137
|
+
if (fs.promises) {
|
|
138
|
+
const promiseMethodsToPatch = [
|
|
139
|
+
'readFile',
|
|
140
|
+
'writeFile',
|
|
141
|
+
'appendFile',
|
|
142
|
+
'stat',
|
|
143
|
+
'lstat',
|
|
144
|
+
'readdir',
|
|
145
|
+
'mkdir',
|
|
146
|
+
'rmdir',
|
|
147
|
+
'unlink',
|
|
148
|
+
'copyFile',
|
|
149
|
+
'rename',
|
|
150
|
+
'chmod',
|
|
151
|
+
'chown',
|
|
152
|
+
];
|
|
153
|
+
const promises = fs.promises;
|
|
154
|
+
promiseMethodsToPatch.forEach((method) => {
|
|
155
|
+
if (typeof promises[method] === 'function') {
|
|
156
|
+
const originalKey = `promises_${method}`;
|
|
157
|
+
this.originalMethods[originalKey] = promises[method];
|
|
158
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
159
|
+
const self = this;
|
|
160
|
+
promises[method] = function (path, ...args) {
|
|
161
|
+
const context = self.asyncStorage.getStore();
|
|
162
|
+
if (context) {
|
|
163
|
+
context.fsUsage.push({
|
|
164
|
+
method: `promises.${method}`,
|
|
165
|
+
path: typeof path === 'string' ? path : String(path),
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return self.originalMethods[originalKey].call(this, path, ...args);
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Patch process.env to record environment variable access.
|
|
176
|
+
* @private
|
|
177
|
+
*/
|
|
178
|
+
_patchProcessEnv() {
|
|
179
|
+
if (this.originalMethods.processEnv) {
|
|
180
|
+
return; // Already patched
|
|
181
|
+
}
|
|
182
|
+
this.originalMethods.processEnv = process.env;
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
184
|
+
const self = this;
|
|
185
|
+
// The following environment variables are allowed to be accessed by transformers
|
|
186
|
+
const allowedVars = new Set([
|
|
187
|
+
'ATLASPACK_ENABLE_SENTRY',
|
|
188
|
+
// TODO we should also add the other atlaspack env vars here
|
|
189
|
+
'NODE_V8_COVERAGE',
|
|
190
|
+
'VSCODE_INSPECTOR_OPTIONS',
|
|
191
|
+
'NODE_INSPECTOR_IPC',
|
|
192
|
+
'FORCE_COLOR',
|
|
193
|
+
'NO_COLOR',
|
|
194
|
+
'TTY',
|
|
195
|
+
]);
|
|
196
|
+
// Create a proxy that intercepts property access
|
|
197
|
+
process.env = new Proxy(this.originalMethods.processEnv, {
|
|
198
|
+
get(target, property) {
|
|
199
|
+
const context = self.asyncStorage.getStore();
|
|
200
|
+
if (context && typeof property === 'string') {
|
|
201
|
+
// Only record if this is a real environment variable access
|
|
202
|
+
// (not internal properties like 'constructor', 'valueOf', etc.)
|
|
203
|
+
if (!allowedVars.has(property) &&
|
|
204
|
+
(property in target || !property.startsWith('_'))) {
|
|
205
|
+
context.envUsage.vars.add(property);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return target[property];
|
|
209
|
+
},
|
|
210
|
+
set(target, property, value) {
|
|
211
|
+
const context = self.asyncStorage.getStore();
|
|
212
|
+
if (context && typeof property === 'string') {
|
|
213
|
+
if (!allowedVars.has(property) && property in target) {
|
|
214
|
+
context.envUsage.vars.add(property);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
target[property] = value;
|
|
218
|
+
return true;
|
|
219
|
+
},
|
|
220
|
+
has(target, property) {
|
|
221
|
+
const context = self.asyncStorage.getStore();
|
|
222
|
+
if (context && typeof property === 'string') {
|
|
223
|
+
if (!allowedVars.has(property) && property in target) {
|
|
224
|
+
context.envUsage.vars.add(property);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return property in target;
|
|
228
|
+
},
|
|
229
|
+
ownKeys(target) {
|
|
230
|
+
const context = self.asyncStorage.getStore();
|
|
231
|
+
if (context) {
|
|
232
|
+
context.envUsage.didEnumerate = true;
|
|
233
|
+
}
|
|
234
|
+
return Object.keys(target);
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
exports.SideEffectDetector = SideEffectDetector;
|
|
240
|
+
/**
|
|
241
|
+
* Default instance for convenience. Most workers will only need one detector.
|
|
242
|
+
*/
|
|
243
|
+
exports.defaultDetector = new SideEffectDetector();
|