@atlaspack/core 2.16.2-canary.37 → 2.16.2-canary.371
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +941 -0
- package/dist/AssetGraph.js +591 -0
- package/dist/Atlaspack.js +666 -0
- package/dist/AtlaspackConfig.js +324 -0
- package/dist/AtlaspackConfig.schema.js +117 -0
- package/dist/BundleGraph.js +1740 -0
- package/dist/CommittedAsset.js +142 -0
- package/dist/Dependency.js +125 -0
- package/dist/Environment.js +132 -0
- package/dist/EnvironmentManager.js +108 -0
- package/dist/IdentifierRegistry.js +38 -0
- package/dist/InternalConfig.js +37 -0
- package/dist/PackagerRunner.js +545 -0
- package/dist/ReporterRunner.js +151 -0
- package/dist/RequestTracker.js +1360 -0
- package/dist/SymbolPropagation.js +620 -0
- package/dist/TargetDescriptor.schema.js +143 -0
- package/dist/Transformation.js +514 -0
- package/dist/UncommittedAsset.js +315 -0
- package/dist/Validation.js +196 -0
- package/dist/applyRuntimes.js +383 -0
- package/dist/assetUtils.js +169 -0
- package/dist/atlaspack-v3/AtlaspackV3.js +74 -0
- package/dist/atlaspack-v3/NapiWorkerPool.js +81 -0
- package/dist/atlaspack-v3/fs.js +52 -0
- package/dist/atlaspack-v3/index.js +25 -0
- package/dist/atlaspack-v3/jsCallable.js +16 -0
- package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
- package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
- package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
- package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
- package/dist/atlaspack-v3/worker/compat/index.js +25 -0
- package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
- package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
- package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
- package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
- package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
- package/dist/atlaspack-v3/worker/compat/target.js +14 -0
- package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
- package/dist/atlaspack-v3/worker/worker.js +381 -0
- package/dist/constants.js +17 -0
- package/dist/dumpGraphToGraphViz.js +281 -0
- package/dist/index.js +62 -0
- package/dist/loadAtlaspackPlugin.js +128 -0
- package/dist/loadDotEnv.js +41 -0
- package/dist/projectPath.js +83 -0
- package/dist/public/Asset.js +279 -0
- package/dist/public/Bundle.js +224 -0
- package/dist/public/BundleGraph.js +371 -0
- package/dist/public/BundleGroup.js +53 -0
- package/dist/public/Config.js +286 -0
- package/dist/public/Dependency.js +138 -0
- package/dist/public/Environment.js +278 -0
- package/dist/public/MutableBundleGraph.js +277 -0
- package/dist/public/PluginOptions.js +80 -0
- package/dist/public/Symbols.js +248 -0
- package/dist/public/Target.js +69 -0
- package/dist/registerCoreWithSerializer.js +38 -0
- package/dist/requests/AssetGraphRequest.js +439 -0
- package/dist/requests/AssetGraphRequestRust.js +273 -0
- package/dist/requests/AssetRequest.js +130 -0
- package/dist/requests/AtlaspackBuildRequest.js +92 -0
- package/dist/requests/AtlaspackConfigRequest.js +493 -0
- package/dist/requests/BundleGraphRequest.js +447 -0
- package/dist/requests/ConfigRequest.js +246 -0
- package/dist/requests/DevDepRequest.js +204 -0
- package/dist/requests/EntryRequest.js +314 -0
- package/dist/requests/PackageRequest.js +72 -0
- package/dist/requests/PathRequest.js +349 -0
- package/dist/requests/TargetRequest.js +1311 -0
- package/dist/requests/ValidationRequest.js +49 -0
- package/dist/requests/WriteBundleRequest.js +254 -0
- package/dist/requests/WriteBundlesRequest.js +184 -0
- package/dist/requests/asset-graph-diff.js +128 -0
- package/dist/requests/asset-graph-dot.js +131 -0
- package/dist/resolveOptions.js +269 -0
- package/dist/rustWorkerThreadDylibHack.js +19 -0
- package/dist/serializerCore.browser.js +43 -0
- package/dist/summarizeRequest.js +39 -0
- package/dist/types.js +31 -0
- package/dist/utils.js +172 -0
- package/dist/worker.js +123 -0
- package/lib/AssetGraph.js +111 -14
- package/lib/Atlaspack.js +94 -41
- package/lib/AtlaspackConfig.js +15 -3
- package/lib/AtlaspackConfig.schema.js +16 -5
- package/lib/BundleGraph.js +197 -32
- package/lib/CommittedAsset.js +7 -1
- package/lib/Dependency.js +8 -2
- package/lib/Environment.js +15 -8
- package/lib/EnvironmentManager.js +143 -0
- package/lib/IdentifierRegistry.js +1 -3
- package/lib/InternalConfig.js +3 -2
- package/lib/PackagerRunner.js +90 -27
- package/lib/ReporterRunner.js +6 -9
- package/lib/RequestTracker.js +266 -156
- package/lib/SymbolPropagation.js +42 -18
- package/lib/TargetDescriptor.schema.js +7 -1
- package/lib/Transformation.js +66 -15
- package/lib/UncommittedAsset.js +33 -12
- package/lib/Validation.js +18 -2
- package/lib/applyRuntimes.js +96 -4
- package/lib/assetUtils.js +15 -5
- package/lib/atlaspack-v3/AtlaspackV3.js +52 -14
- package/lib/atlaspack-v3/NapiWorkerPool.js +28 -1
- package/lib/atlaspack-v3/fs.js +3 -1
- package/lib/atlaspack-v3/index.js +28 -1
- package/lib/atlaspack-v3/jsCallable.js +0 -2
- package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
- package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
- package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
- package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
- package/lib/atlaspack-v3/worker/compat/mutable-asset.js +15 -10
- package/lib/atlaspack-v3/worker/compat/plugin-config.js +13 -34
- package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -0
- package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
- package/lib/atlaspack-v3/worker/compat/target.js +2 -0
- package/lib/atlaspack-v3/worker/index.js +3 -0
- package/lib/atlaspack-v3/worker/side-effect-detector.js +215 -0
- package/lib/atlaspack-v3/worker/worker.js +199 -71
- package/lib/constants.js +0 -1
- package/lib/dumpGraphToGraphViz.js +71 -16
- package/lib/index.js +45 -1
- package/lib/loadDotEnv.js +4 -1
- package/lib/projectPath.js +5 -0
- package/lib/public/Asset.js +21 -11
- package/lib/public/Bundle.js +15 -16
- package/lib/public/BundleGraph.js +25 -22
- package/lib/public/BundleGroup.js +4 -5
- package/lib/public/Config.js +118 -17
- package/lib/public/Dependency.js +8 -6
- package/lib/public/Environment.js +12 -7
- package/lib/public/MutableBundleGraph.js +54 -12
- package/lib/public/PluginOptions.js +2 -2
- package/lib/public/Symbols.js +11 -11
- package/lib/public/Target.js +7 -6
- package/lib/registerCoreWithSerializer.js +5 -3
- package/lib/requests/AssetGraphRequest.js +74 -27
- package/lib/requests/AssetGraphRequestRust.js +140 -64
- package/lib/requests/AssetRequest.js +23 -6
- package/lib/requests/AtlaspackBuildRequest.js +43 -4
- package/lib/requests/AtlaspackConfigRequest.js +27 -16
- package/lib/requests/BundleGraphRequest.js +41 -24
- package/lib/requests/ConfigRequest.js +53 -4
- package/lib/requests/DevDepRequest.js +31 -5
- package/lib/requests/EntryRequest.js +2 -0
- package/lib/requests/PackageRequest.js +16 -2
- package/lib/requests/PathRequest.js +24 -3
- package/lib/requests/TargetRequest.js +122 -57
- package/lib/requests/ValidationRequest.js +5 -1
- package/lib/requests/WriteBundleRequest.js +39 -11
- package/lib/requests/WriteBundlesRequest.js +51 -4
- package/lib/requests/asset-graph-diff.js +12 -7
- package/lib/requests/asset-graph-dot.js +1 -7
- package/lib/resolveOptions.js +38 -11
- package/lib/rustWorkerThreadDylibHack.js +0 -1
- package/lib/types/AssetGraph.d.ts +80 -0
- package/lib/types/Atlaspack.d.ts +52 -0
- package/lib/types/AtlaspackConfig.d.ts +65 -0
- package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
- package/lib/types/BundleGraph.d.ts +184 -0
- package/lib/types/CommittedAsset.d.ts +23 -0
- package/lib/types/Dependency.d.ts +44 -0
- package/lib/types/Environment.d.ts +11 -0
- package/lib/types/EnvironmentManager.d.ts +37 -0
- package/lib/types/IdentifierRegistry.d.ts +6 -0
- package/lib/types/InternalConfig.d.ts +23 -0
- package/lib/types/PackagerRunner.d.ts +85 -0
- package/lib/types/ReporterRunner.d.ts +25 -0
- package/lib/types/RequestTracker.d.ts +385 -0
- package/lib/types/SymbolPropagation.d.ts +11 -0
- package/lib/types/TargetDescriptor.schema.d.ts +5 -0
- package/lib/types/Transformation.d.ts +72 -0
- package/lib/types/UncommittedAsset.d.ts +61 -0
- package/lib/types/Validation.d.ts +37 -0
- package/lib/types/applyRuntimes.d.ts +25 -0
- package/lib/types/assetUtils.d.ts +42 -0
- package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +34 -0
- package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
- package/lib/types/atlaspack-v3/fs.d.ts +12 -0
- package/lib/types/atlaspack-v3/index.d.ts +6 -0
- package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
- package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
- package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
- package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
- package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
- package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
- package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
- package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
- package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
- package/lib/types/atlaspack-v3/worker/worker.d.ts +80 -0
- package/lib/types/constants.d.ts +13 -0
- package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
- package/lib/types/index.d.ts +8 -0
- package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
- package/lib/types/loadDotEnv.d.ts +3 -0
- package/lib/types/projectPath.d.ts +19 -0
- package/lib/types/public/Asset.d.ts +74 -0
- package/lib/types/public/Bundle.d.ts +45 -0
- package/lib/types/public/BundleGraph.d.ts +72 -0
- package/lib/types/public/BundleGroup.d.ts +12 -0
- package/lib/types/public/Config.d.ts +75 -0
- package/lib/types/public/Dependency.d.ts +32 -0
- package/lib/types/public/Environment.d.ts +34 -0
- package/lib/types/public/MutableBundleGraph.d.ts +26 -0
- package/lib/types/public/PluginOptions.d.ts +25 -0
- package/lib/types/public/Symbols.d.ts +81 -0
- package/lib/types/public/Target.d.ts +16 -0
- package/lib/types/registerCoreWithSerializer.d.ts +2 -0
- package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
- package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
- package/lib/types/requests/AssetRequest.d.ts +16 -0
- package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
- package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
- package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
- package/lib/types/requests/ConfigRequest.d.ts +67 -0
- package/lib/types/requests/DevDepRequest.d.ts +30 -0
- package/lib/types/requests/EntryRequest.d.ts +36 -0
- package/lib/types/requests/PackageRequest.d.ts +27 -0
- package/lib/types/requests/PathRequest.d.ts +48 -0
- package/lib/types/requests/TargetRequest.d.ts +48 -0
- package/lib/types/requests/ValidationRequest.d.ts +20 -0
- package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
- package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
- package/lib/types/requests/asset-graph-diff.d.ts +1 -0
- package/lib/types/requests/asset-graph-dot.d.ts +9 -0
- package/lib/types/resolveOptions.d.ts +3 -0
- package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
- package/lib/types/serializerCore.browser.d.ts +3 -0
- package/lib/types/summarizeRequest.d.ts +10 -0
- package/lib/types/types.d.ts +495 -0
- package/lib/types/utils.d.ts +23 -0
- package/lib/types/worker.d.ts +44 -0
- package/lib/types.js +8 -1
- package/lib/utils.js +17 -2
- package/lib/worker.js +30 -14
- package/package.json +25 -35
- package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
- package/src/{Atlaspack.js → Atlaspack.ts} +134 -67
- package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
- package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
- package/src/{BundleGraph.js → BundleGraph.ts} +383 -140
- package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
- package/src/{Dependency.js → Dependency.ts} +59 -42
- package/src/{Environment.js → Environment.ts} +24 -15
- package/src/EnvironmentManager.ts +154 -0
- package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
- package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
- package/src/{PackagerRunner.js → PackagerRunner.ts} +179 -87
- package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
- package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
- package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
- package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
- package/src/{Transformation.js → Transformation.ts} +110 -65
- package/src/{UncommittedAsset.js → UncommittedAsset.ts} +60 -39
- package/src/{Validation.js → Validation.ts} +32 -17
- package/src/{applyRuntimes.js → applyRuntimes.ts} +133 -26
- package/src/{assetUtils.js → assetUtils.ts} +49 -36
- package/src/atlaspack-v3/AtlaspackV3.ts +143 -0
- package/src/atlaspack-v3/NapiWorkerPool.ts +91 -0
- package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
- package/src/atlaspack-v3/{index.js → index.ts} +3 -4
- package/src/atlaspack-v3/jsCallable.ts +14 -0
- package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
- package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
- package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
- package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
- package/src/atlaspack-v3/worker/compat/index.ts +9 -0
- package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
- package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
- package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
- package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
- package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
- package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
- package/src/atlaspack-v3/worker/index.js +2 -1
- package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
- package/src/atlaspack-v3/worker/worker.ts +531 -0
- package/src/{constants.js → constants.ts} +0 -3
- package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
- package/src/index.ts +18 -0
- package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
- package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
- package/src/{projectPath.js → projectPath.ts} +20 -9
- package/src/public/{Asset.js → Asset.ts} +41 -28
- package/src/public/{Bundle.js → Bundle.ts} +28 -29
- package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
- package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
- package/src/public/{Config.js → Config.ts} +171 -33
- package/src/public/{Dependency.js → Dependency.ts} +20 -17
- package/src/public/{Environment.js → Environment.ts} +28 -17
- package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
- package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
- package/src/public/{Symbols.js → Symbols.ts} +75 -36
- package/src/public/{Target.js → Target.ts} +10 -8
- package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
- package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +129 -80
- package/src/requests/AssetGraphRequestRust.ts +364 -0
- package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
- package/src/requests/AtlaspackBuildRequest.ts +163 -0
- package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
- package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +97 -79
- package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
- package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
- package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
- package/src/requests/{PackageRequest.js → PackageRequest.ts} +34 -22
- package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
- package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
- package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
- package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
- package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
- package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
- package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
- package/src/{resolveOptions.js → resolveOptions.ts} +59 -25
- package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
- package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
- package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
- package/src/types.ts +650 -0
- package/src/{utils.js → utils.ts} +52 -21
- package/src/{worker.js → worker.ts} +50 -42
- package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
- package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
- package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
- package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
- package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
- package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
- package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
- package/test/Environment.test.ts +153 -0
- package/test/EnvironmentManager.test.ts +188 -0
- package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
- package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
- package/test/PackagerRunner.test.ts +0 -0
- package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
- package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
- package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
- package/test/PublicEnvironment.test.ts +49 -0
- package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
- package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
- package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
- package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
- package/test/fixtures/config-with-reporters/.parcelrc +7 -0
- package/test/fixtures/custom-targets/package.json +6 -0
- package/test/public/Config.test.ts +104 -0
- package/test/requests/AssetGraphRequestRust.test.ts +443 -0
- package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
- package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
- package/test/{test-utils.js → test-utils.ts} +4 -11
- package/test/{utils.test.js → utils.test.ts} +1 -3
- package/tsconfig.json +60 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/index.d.ts +0 -30
- package/src/atlaspack-v3/AtlaspackV3.js +0 -87
- package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
- package/src/atlaspack-v3/jsCallable.js +0 -18
- package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
- package/src/atlaspack-v3/worker/worker.js +0 -362
- package/src/index.js +0 -13
- package/src/requests/AssetGraphRequestRust.js +0 -263
- package/src/requests/AtlaspackBuildRequest.js +0 -111
- package/src/types.js +0 -600
- package/test/Environment.test.js +0 -119
- package/test/PackagerRunner.test.js +0 -27
- package/test/PublicEnvironment.test.js +0 -27
- package/test/requests/AssetGraphRequestRust.test.js +0 -411
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.MutableAsset = void 0;
|
|
7
7
|
function _sourceMap() {
|
|
8
|
-
const data = _interopRequireDefault(require("@
|
|
8
|
+
const data = _interopRequireDefault(require("@atlaspack/source-map"));
|
|
9
9
|
_sourceMap = function () {
|
|
10
10
|
return data;
|
|
11
11
|
};
|
|
@@ -20,10 +20,14 @@ function _stream() {
|
|
|
20
20
|
}
|
|
21
21
|
var _bitflags = require("./bitflags");
|
|
22
22
|
var _assetSymbols = require("./asset-symbols");
|
|
23
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
24
|
-
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; }
|
|
25
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
// @ts-expect-error TS2694
|
|
25
|
+
|
|
26
26
|
class MutableAsset {
|
|
27
|
+
// @ts-expect-error TS2564
|
|
28
|
+
|
|
29
|
+
// @ts-expect-error TS2416
|
|
30
|
+
|
|
27
31
|
#astDirty;
|
|
28
32
|
#ast;
|
|
29
33
|
#contents;
|
|
@@ -34,6 +38,8 @@ class MutableAsset {
|
|
|
34
38
|
get astGenerator() {
|
|
35
39
|
throw new Error('get MutableAsset.astGenerator');
|
|
36
40
|
}
|
|
41
|
+
|
|
42
|
+
// @ts-expect-error TS1051
|
|
37
43
|
set astGenerator(value) {
|
|
38
44
|
throw new Error('set MutableAsset.astGenerator');
|
|
39
45
|
}
|
|
@@ -106,7 +112,6 @@ class MutableAsset {
|
|
|
106
112
|
// Only create the source map if it is requested
|
|
107
113
|
if (!this.#sourceMap && this.#map && typeof this.#map === 'string') {
|
|
108
114
|
let sourceMap = new (_sourceMap().default)(this.#projectRoot);
|
|
109
|
-
// $FlowFixMe Flow is dumb
|
|
110
115
|
sourceMap.addVLQMap(JSON.parse(this.#map));
|
|
111
116
|
this.#sourceMap = sourceMap;
|
|
112
117
|
}
|
|
@@ -126,32 +131,32 @@ class MutableAsset {
|
|
|
126
131
|
}
|
|
127
132
|
|
|
128
133
|
// eslint-disable-next-line no-unused-vars
|
|
129
|
-
addDependency() {
|
|
134
|
+
addDependency(options) {
|
|
130
135
|
throw new Error('MutableAsset.addDependency()');
|
|
131
136
|
}
|
|
132
137
|
|
|
133
138
|
// eslint-disable-next-line no-unused-vars
|
|
134
|
-
addURLDependency() {
|
|
139
|
+
addURLDependency(url, opts) {
|
|
135
140
|
throw new Error('MutableAsset.addURLDependency()');
|
|
136
141
|
}
|
|
137
142
|
|
|
138
143
|
// eslint-disable-next-line no-unused-vars
|
|
139
|
-
setEnvironment() {
|
|
144
|
+
setEnvironment(opts) {
|
|
140
145
|
throw new Error('MutableAsset.setEnvironment()');
|
|
141
146
|
}
|
|
142
147
|
|
|
143
148
|
// eslint-disable-next-line no-unused-vars
|
|
144
|
-
invalidateOnFileChange() {
|
|
149
|
+
invalidateOnFileChange(invalidation) {
|
|
145
150
|
// TODO: Forward invalidations to Rust
|
|
146
151
|
}
|
|
147
152
|
|
|
148
153
|
// eslint-disable-next-line no-unused-vars
|
|
149
|
-
invalidateOnFileCreate() {
|
|
154
|
+
invalidateOnFileCreate(invalidation) {
|
|
150
155
|
// TODO: Forward invalidations to Rust
|
|
151
156
|
}
|
|
152
157
|
|
|
153
158
|
// eslint-disable-next-line no-unused-vars
|
|
154
|
-
invalidateOnEnvChange() {
|
|
159
|
+
invalidateOnEnvChange(invalidation) {
|
|
155
160
|
// TODO: Forward invalidations to Rust
|
|
156
161
|
}
|
|
157
162
|
invalidateOnStartup() {
|
|
@@ -5,56 +5,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.PluginConfig = void 0;
|
|
7
7
|
var _Config = _interopRequireDefault(require("../../../public/Config"));
|
|
8
|
+
var _InternalConfig = require("../../../InternalConfig");
|
|
8
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
10
|
class PluginConfig {
|
|
10
|
-
#projectRoot;
|
|
11
11
|
#inner;
|
|
12
|
-
constructor({
|
|
13
|
-
|
|
14
|
-
isSource
|
|
15
|
-
searchPath
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}) {
|
|
20
|
-
this.env = env;
|
|
21
|
-
this.isSource = isSource;
|
|
22
|
-
this.searchPath = searchPath;
|
|
23
|
-
this.#inner = new _Config.default(
|
|
24
|
-
// $FlowFixMe
|
|
25
|
-
{
|
|
26
|
-
invalidateOnConfigKeyChange: [],
|
|
27
|
-
invalidateOnFileCreate: [],
|
|
28
|
-
invalidateOnFileChange: new Set(),
|
|
29
|
-
devDeps: [],
|
|
30
|
-
// $FlowFixMe
|
|
31
|
-
searchPath: searchPath.replace(projectRoot + '/', '')
|
|
32
|
-
},
|
|
33
|
-
// $FlowFixMe
|
|
34
|
-
{
|
|
35
|
-
projectRoot,
|
|
36
|
-
inputFS: fs,
|
|
37
|
-
outputFS: fs,
|
|
38
|
-
packageManager
|
|
39
|
-
});
|
|
12
|
+
constructor(configOpts, options) {
|
|
13
|
+
let internalConfig = (0, _InternalConfig.createConfig)(configOpts);
|
|
14
|
+
this.isSource = internalConfig.isSource;
|
|
15
|
+
this.searchPath = internalConfig.searchPath;
|
|
16
|
+
// @ts-expect-error TS2564
|
|
17
|
+
this.env = internalConfig.env;
|
|
18
|
+
this.#inner = new _Config.default(internalConfig, options);
|
|
40
19
|
}
|
|
41
20
|
|
|
42
21
|
// eslint-disable-next-line no-unused-vars
|
|
43
|
-
invalidateOnFileChange() {}
|
|
22
|
+
invalidateOnFileChange(filePath) {}
|
|
44
23
|
|
|
45
24
|
// eslint-disable-next-line no-unused-vars
|
|
46
|
-
invalidateOnFileCreate() {}
|
|
25
|
+
invalidateOnFileCreate(invalidations) {}
|
|
47
26
|
|
|
48
27
|
// eslint-disable-next-line no-unused-vars
|
|
49
|
-
invalidateOnEnvChange() {}
|
|
28
|
+
invalidateOnEnvChange(invalidation) {}
|
|
50
29
|
invalidateOnStartup() {}
|
|
51
30
|
invalidateOnBuild() {}
|
|
52
31
|
|
|
53
32
|
// eslint-disable-next-line no-unused-vars
|
|
54
|
-
addDevDependency() {}
|
|
33
|
+
addDevDependency(options) {}
|
|
55
34
|
|
|
56
35
|
// eslint-disable-next-line no-unused-vars
|
|
57
|
-
setCacheKey() {}
|
|
36
|
+
setCacheKey(key) {}
|
|
58
37
|
getConfig(
|
|
59
38
|
// eslint-disable-next-line no-unused-vars
|
|
60
39
|
filePaths,
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.PluginOptions = void 0;
|
|
7
7
|
class PluginOptions {
|
|
8
8
|
#options;
|
|
9
|
+
used = false;
|
|
9
10
|
get env() {
|
|
10
11
|
if (!('env' in this.#options)) {
|
|
11
12
|
return process.env;
|
|
@@ -18,18 +19,21 @@ class PluginOptions {
|
|
|
18
19
|
if (!('projectRoot' in this.#options)) {
|
|
19
20
|
throw new Error('PluginOptions.projectRoot');
|
|
20
21
|
}
|
|
22
|
+
this.used = true;
|
|
21
23
|
return this.#options.projectRoot;
|
|
22
24
|
}
|
|
23
25
|
get packageManager() {
|
|
24
26
|
if (!('packageManager' in this.#options)) {
|
|
25
27
|
throw new Error('PluginOptions.packageManager');
|
|
26
28
|
}
|
|
29
|
+
this.used = true;
|
|
27
30
|
return this.#options.packageManager;
|
|
28
31
|
}
|
|
29
32
|
get mode() {
|
|
30
33
|
if (!('mode' in this.#options)) {
|
|
31
34
|
throw new Error('PluginOptions.mode');
|
|
32
35
|
}
|
|
36
|
+
this.used = true;
|
|
33
37
|
return this.#options.mode;
|
|
34
38
|
}
|
|
35
39
|
get parcelVersion() {
|
|
@@ -38,30 +42,35 @@ class PluginOptions {
|
|
|
38
42
|
// throw new Error('PluginOptions.parcelVersion');
|
|
39
43
|
}
|
|
40
44
|
|
|
45
|
+
this.used = true;
|
|
41
46
|
return this.#options.parcelVersion;
|
|
42
47
|
}
|
|
43
48
|
get hmrOptions() {
|
|
44
49
|
if (!('hmrOptions' in this.#options)) {
|
|
45
50
|
throw new Error('PluginOptions.hmrOptions');
|
|
46
51
|
}
|
|
52
|
+
this.used = true;
|
|
47
53
|
return this.#options.hmrOptions;
|
|
48
54
|
}
|
|
49
55
|
get serveOptions() {
|
|
50
56
|
if (!('serveOptions' in this.#options)) {
|
|
51
57
|
throw new Error('PluginOptions.serveOptions');
|
|
52
58
|
}
|
|
59
|
+
this.used = true;
|
|
53
60
|
return this.#options.serveOptions;
|
|
54
61
|
}
|
|
55
62
|
get shouldBuildLazily() {
|
|
56
63
|
if (!('shouldBuildLazily' in this.#options)) {
|
|
57
64
|
throw new Error('PluginOptions.shouldBuildLazily');
|
|
58
65
|
}
|
|
66
|
+
this.used = true;
|
|
59
67
|
return this.#options.shouldBuildLazily;
|
|
60
68
|
}
|
|
61
69
|
get shouldAutoInstall() {
|
|
62
70
|
if (!('shouldAutoInstall' in this.#options)) {
|
|
63
71
|
throw new Error('PluginOptions.shouldAutoInstall');
|
|
64
72
|
}
|
|
73
|
+
this.used = true;
|
|
65
74
|
return this.#options.shouldAutoInstall;
|
|
66
75
|
}
|
|
67
76
|
get logLevel() {
|
|
@@ -74,39 +83,46 @@ class PluginOptions {
|
|
|
74
83
|
if (!('cacheDir' in this.#options)) {
|
|
75
84
|
throw new Error('PluginOptions.cacheDir');
|
|
76
85
|
}
|
|
86
|
+
this.used = true;
|
|
77
87
|
return this.#options.cacheDir;
|
|
78
88
|
}
|
|
79
89
|
get inputFS() {
|
|
80
90
|
if (!('inputFS' in this.#options)) {
|
|
81
91
|
throw new Error('PluginOptions.inputFS');
|
|
82
92
|
}
|
|
93
|
+
this.used = true;
|
|
83
94
|
return this.#options.inputFS;
|
|
84
95
|
}
|
|
85
96
|
get outputFS() {
|
|
86
97
|
if (!('outputFS' in this.#options)) {
|
|
87
98
|
throw new Error('PluginOptions.outputFS');
|
|
88
99
|
}
|
|
100
|
+
this.used = true;
|
|
89
101
|
return this.#options.outputFS;
|
|
90
102
|
}
|
|
91
103
|
get instanceId() {
|
|
92
104
|
if (!('instanceId' in this.#options)) {
|
|
93
105
|
throw new Error('PluginOptions.instanceId');
|
|
94
106
|
}
|
|
107
|
+
this.used = true;
|
|
95
108
|
return this.#options.instanceId;
|
|
96
109
|
}
|
|
97
110
|
get detailedReport() {
|
|
98
111
|
if (!('detailedReport' in this.#options)) {
|
|
99
112
|
throw new Error('PluginOptions.detailedReport');
|
|
100
113
|
}
|
|
114
|
+
this.used = true;
|
|
101
115
|
return this.#options.detailedReport;
|
|
102
116
|
}
|
|
103
117
|
get featureFlags() {
|
|
104
118
|
if (!('featureFlags' in this.#options)) {
|
|
105
119
|
throw new Error('PluginOptions.featureFlags');
|
|
106
120
|
}
|
|
121
|
+
this.used = true;
|
|
107
122
|
return this.#options.featureFlags;
|
|
108
123
|
}
|
|
109
124
|
constructor(options) {
|
|
125
|
+
// @ts-expect-error TS2322
|
|
110
126
|
this.#options = options;
|
|
111
127
|
}
|
|
112
128
|
}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultDetector = exports.SideEffectDetector = void 0;
|
|
7
|
+
function _async_hooks() {
|
|
8
|
+
const data = require("async_hooks");
|
|
9
|
+
_async_hooks = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Side effect detector using AsyncLocalStorage to track filesystem and environment variable
|
|
16
|
+
* access across concurrent async operations in a Node.js worker thread.
|
|
17
|
+
*
|
|
18
|
+
* Usage:
|
|
19
|
+
* const detector = new SideEffectDetector();
|
|
20
|
+
* detector.install();
|
|
21
|
+
*
|
|
22
|
+
* const [result, sideEffects] = await detector.monitorSideEffects(async () => {
|
|
23
|
+
* return await someOperation();
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* console.log(sideEffects.fsUsage); // Array of filesystem accesses
|
|
27
|
+
* console.log(sideEffects.envUsage); // Array of environment variable accesses
|
|
28
|
+
*/
|
|
29
|
+
class SideEffectDetector {
|
|
30
|
+
constructor() {
|
|
31
|
+
this.asyncStorage = new (_async_hooks().AsyncLocalStorage)();
|
|
32
|
+
this.patchesInstalled = false;
|
|
33
|
+
this.originalMethods = {};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Install global patches for filesystem and environment variable monitoring.
|
|
38
|
+
* This should be called once when the worker starts up.
|
|
39
|
+
*/
|
|
40
|
+
install() {
|
|
41
|
+
if (this.patchesInstalled) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this._patchFilesystem();
|
|
45
|
+
this._patchProcessEnv();
|
|
46
|
+
this.patchesInstalled = true;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Monitor side effects for an async operation.
|
|
51
|
+
*
|
|
52
|
+
* @param {Function} fn - Async function to monitor
|
|
53
|
+
* @param {Object} options - Optional configuration
|
|
54
|
+
* @param {string} options.label - Optional label for debugging
|
|
55
|
+
* @returns {Promise<[any, SideEffects]>} Tuple of [result, sideEffects]
|
|
56
|
+
*/
|
|
57
|
+
monitorSideEffects(packageName, fn) {
|
|
58
|
+
if (!this.patchesInstalled) {
|
|
59
|
+
throw new Error('SideEffectDetector: install() must be called before monitorSideEffects()');
|
|
60
|
+
}
|
|
61
|
+
const context = {
|
|
62
|
+
fsUsage: [],
|
|
63
|
+
envUsage: {
|
|
64
|
+
vars: new Set(),
|
|
65
|
+
didEnumerate: false
|
|
66
|
+
},
|
|
67
|
+
packageName: packageName
|
|
68
|
+
};
|
|
69
|
+
return this.asyncStorage.run(context, async () => {
|
|
70
|
+
const result = await fn();
|
|
71
|
+
return [result, context];
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Get the current monitoring context, if any.
|
|
77
|
+
* Useful for debugging or custom instrumentation.
|
|
78
|
+
*
|
|
79
|
+
* @returns {Object|null} Current context or null if not monitoring
|
|
80
|
+
*/
|
|
81
|
+
getCurrentContext() {
|
|
82
|
+
return this.asyncStorage.getStore() || null;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Check if currently monitoring side effects.
|
|
87
|
+
*
|
|
88
|
+
* @returns {boolean}
|
|
89
|
+
*/
|
|
90
|
+
isMonitoring() {
|
|
91
|
+
return this.asyncStorage.getStore() !== undefined;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Patch filesystem methods to record access.
|
|
96
|
+
* @private
|
|
97
|
+
*/
|
|
98
|
+
_patchFilesystem() {
|
|
99
|
+
// Inline require this to avoid babel transformer issue
|
|
100
|
+
const fs = require('fs');
|
|
101
|
+
const methodsToPatch = [
|
|
102
|
+
// Sync methods
|
|
103
|
+
'readFileSync', 'writeFileSync', 'appendFileSync', 'existsSync', 'statSync', 'lstatSync', 'readdirSync', 'mkdirSync', 'rmdirSync', 'unlinkSync', 'copyFileSync', 'renameSync', 'chmodSync', 'chownSync',
|
|
104
|
+
// Async methods
|
|
105
|
+
'readFile', 'writeFile', 'appendFile', 'stat', 'lstat', 'readdir', 'mkdir', 'rmdir', 'unlink', 'copyFile', 'rename', 'chmod', 'chown'];
|
|
106
|
+
methodsToPatch.forEach(method => {
|
|
107
|
+
if (typeof fs[method] === 'function') {
|
|
108
|
+
this.originalMethods[method] = fs[method];
|
|
109
|
+
const self = this;
|
|
110
|
+
|
|
111
|
+
// @ts-expect-error Dynamic method patching
|
|
112
|
+
fs[method] = function (path, ...args) {
|
|
113
|
+
// Record filesystem access in current context
|
|
114
|
+
const context = self.asyncStorage.getStore();
|
|
115
|
+
if (context) {
|
|
116
|
+
context.fsUsage.push({
|
|
117
|
+
method,
|
|
118
|
+
path: typeof path === 'string' ? path : path === null || path === void 0 ? void 0 : path.toString()
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return self.originalMethods[method].call(this, path, ...args);
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
// Handle fs.promises methods
|
|
127
|
+
if (fs.promises) {
|
|
128
|
+
const promiseMethodsToPatch = ['readFile', 'writeFile', 'appendFile', 'stat', 'lstat', 'readdir', 'mkdir', 'rmdir', 'unlink', 'copyFile', 'rename', 'chmod', 'chown'];
|
|
129
|
+
const promises = fs.promises;
|
|
130
|
+
promiseMethodsToPatch.forEach(method => {
|
|
131
|
+
if (typeof promises[method] === 'function') {
|
|
132
|
+
const originalKey = `promises_${method}`;
|
|
133
|
+
this.originalMethods[originalKey] = promises[method];
|
|
134
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
135
|
+
const self = this;
|
|
136
|
+
promises[method] = function (path, ...args) {
|
|
137
|
+
const context = self.asyncStorage.getStore();
|
|
138
|
+
if (context) {
|
|
139
|
+
context.fsUsage.push({
|
|
140
|
+
method: `promises.${method}`,
|
|
141
|
+
path: typeof path === 'string' ? path : String(path)
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
return self.originalMethods[originalKey].call(this, path, ...args);
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Patch process.env to record environment variable access.
|
|
153
|
+
* @private
|
|
154
|
+
*/
|
|
155
|
+
_patchProcessEnv() {
|
|
156
|
+
if (this.originalMethods.processEnv) {
|
|
157
|
+
return; // Already patched
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
this.originalMethods.processEnv = process.env;
|
|
161
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
162
|
+
const self = this;
|
|
163
|
+
// The following environment variables are allowed to be accessed by transformers
|
|
164
|
+
const allowedVars = new Set(['ATLASPACK_ENABLE_SENTRY',
|
|
165
|
+
// TODO we should also add the other atlaspack env vars here
|
|
166
|
+
'NODE_V8_COVERAGE', 'VSCODE_INSPECTOR_OPTIONS', 'NODE_INSPECTOR_IPC', 'FORCE_COLOR', 'NO_COLOR', 'TTY']);
|
|
167
|
+
|
|
168
|
+
// Create a proxy that intercepts property access
|
|
169
|
+
process.env = new Proxy(this.originalMethods.processEnv, {
|
|
170
|
+
get(target, property) {
|
|
171
|
+
const context = self.asyncStorage.getStore();
|
|
172
|
+
if (context && typeof property === 'string') {
|
|
173
|
+
// Only record if this is a real environment variable access
|
|
174
|
+
// (not internal properties like 'constructor', 'valueOf', etc.)
|
|
175
|
+
if (!allowedVars.has(property) && (property in target || !property.startsWith('_'))) {
|
|
176
|
+
context.envUsage.vars.add(property);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return target[property];
|
|
180
|
+
},
|
|
181
|
+
set(target, property, value) {
|
|
182
|
+
const context = self.asyncStorage.getStore();
|
|
183
|
+
if (context && typeof property === 'string') {
|
|
184
|
+
if (!allowedVars.has(property) && property in target) {
|
|
185
|
+
context.envUsage.vars.add(property);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
target[property] = value;
|
|
189
|
+
return true;
|
|
190
|
+
},
|
|
191
|
+
has(target, property) {
|
|
192
|
+
const context = self.asyncStorage.getStore();
|
|
193
|
+
if (context && typeof property === 'string') {
|
|
194
|
+
if (!allowedVars.has(property) && property in target) {
|
|
195
|
+
context.envUsage.vars.add(property);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return property in target;
|
|
199
|
+
},
|
|
200
|
+
ownKeys(target) {
|
|
201
|
+
const context = self.asyncStorage.getStore();
|
|
202
|
+
if (context) {
|
|
203
|
+
context.envUsage.didEnumerate = true;
|
|
204
|
+
}
|
|
205
|
+
return Object.keys(target);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Default instance for convenience. Most workers will only need one detector.
|
|
213
|
+
*/
|
|
214
|
+
exports.SideEffectDetector = SideEffectDetector;
|
|
215
|
+
const defaultDetector = exports.defaultDetector = new SideEffectDetector();
|