@wyw-in-js/transform 1.1.0 → 2.0.0-alpha.1
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/esm/cache.js +433 -289
- package/esm/cache.js.map +1 -1
- package/esm/debug/fileReporter.js +171 -134
- package/esm/debug/fileReporter.js.map +1 -1
- package/esm/eval/broker.js +2275 -0
- package/esm/eval/broker.js.map +1 -0
- package/esm/eval/lru.js +36 -0
- package/esm/eval/lru.js.map +1 -0
- package/esm/eval/prepareModuleOnDemand.js +21 -0
- package/esm/eval/prepareModuleOnDemand.js.map +1 -0
- package/esm/eval/protocol.js +2 -0
- package/esm/eval/protocol.js.map +1 -0
- package/esm/eval/runner.js +1878 -0
- package/esm/eval/runner.js.map +1 -0
- package/esm/eval/serialize.js +333 -0
- package/esm/eval/serialize.js.map +1 -0
- package/esm/eval/writeQueue.js +81 -0
- package/esm/eval/writeQueue.js.map +1 -0
- package/esm/evaluators/index.js +11 -12
- package/esm/evaluators/index.js.map +1 -1
- package/esm/index.js +25 -29
- package/esm/index.js.map +1 -1
- package/esm/module.js +923 -520
- package/esm/module.js.map +1 -1
- package/esm/shaker.js +14 -80
- package/esm/shaker.js.map +1 -1
- package/esm/transform/BaseEntrypoint.js +162 -164
- package/esm/transform/BaseEntrypoint.js.map +1 -1
- package/esm/transform/Entrypoint.helpers.js +96 -253
- package/esm/transform/Entrypoint.helpers.js.map +1 -1
- package/esm/transform/Entrypoint.js +336 -270
- package/esm/transform/Entrypoint.js.map +1 -1
- package/esm/transform/Entrypoint.types.js +1 -1
- package/esm/transform/Entrypoint.types.js.map +1 -1
- package/esm/transform/EvaluatedEntrypoint.js +10 -4
- package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
- package/esm/transform/actions/AbortError.js +6 -6
- package/esm/transform/actions/AbortError.js.map +1 -1
- package/esm/transform/actions/BaseAction.js +140 -136
- package/esm/transform/actions/BaseAction.js.map +1 -1
- package/esm/transform/actions/UnprocessedEntrypointError.js +6 -6
- package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -1
- package/esm/transform/actions/actionRunner.js +63 -66
- package/esm/transform/actions/actionRunner.js.map +1 -1
- package/esm/transform/actions/types.js +1 -1
- package/esm/transform/actions/types.js.map +1 -1
- package/esm/transform/barrelManifest.types.js +2 -0
- package/esm/transform/barrelManifest.types.js.map +1 -0
- package/esm/transform/generators/baseProcessingHandlers.js +15 -17
- package/esm/transform/generators/baseProcessingHandlers.js.map +1 -1
- package/esm/transform/generators/collect.js +27 -55
- package/esm/transform/generators/collect.js.map +1 -1
- package/esm/transform/generators/createStylisPreprocessor.js +353 -321
- package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
- package/esm/transform/generators/evalFile.js +48 -47
- package/esm/transform/generators/evalFile.js.map +1 -1
- package/esm/transform/generators/extract.js +78 -90
- package/esm/transform/generators/extract.js.map +1 -1
- package/esm/transform/generators/getExports.js +57 -74
- package/esm/transform/generators/getExports.js.map +1 -1
- package/esm/transform/generators/index.js +11 -11
- package/esm/transform/generators/index.js.map +1 -1
- package/esm/transform/generators/processEntrypoint.js +93 -67
- package/esm/transform/generators/processEntrypoint.js.map +1 -1
- package/esm/transform/generators/processImports.js +102 -67
- package/esm/transform/generators/processImports.js.map +1 -1
- package/esm/transform/generators/resolveImports.js +212 -197
- package/esm/transform/generators/resolveImports.js.map +1 -1
- package/esm/transform/generators/resolveStaticOxcValues/cache.js +182 -0
- package/esm/transform/generators/resolveStaticOxcValues/cache.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/candidateResolver.js +146 -0
- package/esm/transform/generators/resolveStaticOxcValues/candidateResolver.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/dependencies.js +33 -0
- package/esm/transform/generators/resolveStaticOxcValues/dependencies.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/environment.js +29 -0
- package/esm/transform/generators/resolveStaticOxcValues/environment.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/exportResolver.js +351 -0
- package/esm/transform/generators/resolveStaticOxcValues/exportResolver.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/exportTargets.js +253 -0
- package/esm/transform/generators/resolveStaticOxcValues/exportTargets.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/objectAssign.js +310 -0
- package/esm/transform/generators/resolveStaticOxcValues/objectAssign.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js +74 -0
- package/esm/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/opaqueRuntime.js +229 -0
- package/esm/transform/generators/resolveStaticOxcValues/opaqueRuntime.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorStaticExport.js +172 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorStaticExport.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorStaticModel.js +476 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorStaticModel.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorTarget.js +55 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorTarget.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/programAnalysis.js +123 -0
- package/esm/transform/generators/resolveStaticOxcValues/programAnalysis.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/prune.js +186 -0
- package/esm/transform/generators/resolveStaticOxcValues/prune.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js +183 -0
- package/esm/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/staticExpression.js +298 -0
- package/esm/transform/generators/resolveStaticOxcValues/staticExpression.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js +298 -0
- package/esm/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/types.js +3 -0
- package/esm/transform/generators/resolveStaticOxcValues/types.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js +59 -0
- package/esm/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues.js +2 -0
- package/esm/transform/generators/resolveStaticOxcValues.js.map +1 -0
- package/esm/transform/generators/rewriteOxcBarrelImports.js +822 -0
- package/esm/transform/generators/rewriteOxcBarrelImports.js.map +1 -0
- package/esm/transform/generators/transform.js +251 -248
- package/esm/transform/generators/transform.js.map +1 -1
- package/esm/transform/generators/workflow.js +87 -90
- package/esm/transform/generators/workflow.js.map +1 -1
- package/esm/transform/helpers/loadWywOptions.js +183 -74
- package/esm/transform/helpers/loadWywOptions.js.map +1 -1
- package/esm/transform/helpers/withDefaultServices.js +13 -22
- package/esm/transform/helpers/withDefaultServices.js.map +1 -1
- package/esm/transform/isStaticallyEvaluatableModule.js +140 -152
- package/esm/transform/isStaticallyEvaluatableModule.js.map +1 -1
- package/esm/transform/oxcBarrelManifest.js +349 -0
- package/esm/transform/oxcBarrelManifest.js.map +1 -0
- package/esm/transform/rootLog.js +3 -3
- package/esm/transform/rootLog.js.map +1 -1
- package/esm/transform/syntax.js +2 -0
- package/esm/transform/syntax.js.map +1 -0
- package/esm/transform/types.js +2 -2
- package/esm/transform/types.js.map +1 -1
- package/esm/transform.js +125 -147
- package/esm/transform.js.map +1 -1
- package/esm/types.js +4 -1
- package/esm/types.js.map +1 -1
- package/esm/utils/EventEmitter.js +79 -48
- package/esm/utils/EventEmitter.js.map +1 -1
- package/esm/utils/ShakerMetadata.js +2 -2
- package/esm/utils/ShakerMetadata.js.map +1 -1
- package/esm/utils/TransformDiagnostics.js +9 -9
- package/esm/utils/TransformDiagnostics.js.map +1 -1
- package/esm/utils/TransformMetadata.js +24 -26
- package/esm/utils/TransformMetadata.js.map +1 -1
- package/esm/utils/applyOxcProcessors/applyOxcProcessors.js +160 -0
- package/esm/utils/applyOxcProcessors/applyOxcProcessors.js.map +1 -0
- package/esm/utils/applyOxcProcessors/cleanupBindings.js +157 -0
- package/esm/utils/applyOxcProcessors/cleanupBindings.js.map +1 -0
- package/esm/utils/applyOxcProcessors/cleanupRemovals.js +431 -0
- package/esm/utils/applyOxcProcessors/cleanupRemovals.js.map +1 -0
- package/esm/utils/applyOxcProcessors/displayName.js +93 -0
- package/esm/utils/applyOxcProcessors/displayName.js.map +1 -0
- package/esm/utils/applyOxcProcessors/expressionValues.js +152 -0
- package/esm/utils/applyOxcProcessors/expressionValues.js.map +1 -0
- package/esm/utils/applyOxcProcessors/processorFactory.js +62 -0
- package/esm/utils/applyOxcProcessors/processorFactory.js.map +1 -0
- package/esm/utils/applyOxcProcessors/processorUsages.js +143 -0
- package/esm/utils/applyOxcProcessors/processorUsages.js.map +1 -0
- package/esm/utils/applyOxcProcessors/sameFileStaticValues.js +207 -0
- package/esm/utils/applyOxcProcessors/sameFileStaticValues.js.map +1 -0
- package/esm/utils/applyOxcProcessors/shared.js +29 -0
- package/esm/utils/applyOxcProcessors/shared.js.map +1 -0
- package/esm/utils/applyOxcProcessors/types.js +2 -0
- package/esm/utils/applyOxcProcessors/types.js.map +1 -0
- package/esm/utils/applyOxcProcessors.js +2 -0
- package/esm/utils/applyOxcProcessors.js.map +1 -0
- package/esm/utils/collectOxcExportsAndImports.js +934 -0
- package/esm/utils/collectOxcExportsAndImports.js.map +1 -0
- package/esm/utils/collectOxcRuntime/normalizeRuntimeCode.js +157 -0
- package/esm/utils/collectOxcRuntime/normalizeRuntimeCode.js.map +1 -0
- package/esm/utils/collectOxcRuntime/sourceMap.js +36 -0
- package/esm/utils/collectOxcRuntime/sourceMap.js.map +1 -0
- package/esm/utils/collectOxcRuntime/types.js +2 -0
- package/esm/utils/collectOxcRuntime/types.js.map +1 -0
- package/esm/utils/collectOxcRuntime.js +32 -0
- package/esm/utils/collectOxcRuntime.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/expressionExtraction.js +496 -0
- package/esm/utils/collectOxcTemplateDependencies/expressionExtraction.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/expressionReplacements.js +113 -0
- package/esm/utils/collectOxcTemplateDependencies/expressionReplacements.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/scopeAnalysis.js +387 -0
- package/esm/utils/collectOxcTemplateDependencies/scopeAnalysis.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/staticBindings.js +17 -0
- package/esm/utils/collectOxcTemplateDependencies/staticBindings.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/staticEvaluator.js +540 -0
- package/esm/utils/collectOxcTemplateDependencies/staticEvaluator.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/types.js +2 -0
- package/esm/utils/collectOxcTemplateDependencies/types.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies.js +4 -0
- package/esm/utils/collectOxcTemplateDependencies.js.map +1 -0
- package/esm/utils/dispose-polyfill.js +3 -4
- package/esm/utils/dispose-polyfill.js.map +1 -1
- package/esm/utils/getFileIdx.js +6 -6
- package/esm/utils/getFileIdx.js.map +1 -1
- package/esm/utils/getPluginKey.js +12 -12
- package/esm/utils/getPluginKey.js.map +1 -1
- package/esm/utils/getVisitorKeys.js +9 -3
- package/esm/utils/getVisitorKeys.js.map +1 -1
- package/esm/utils/hasCachedWywPrevalExport.js +23 -0
- package/esm/utils/hasCachedWywPrevalExport.js.map +1 -0
- package/esm/utils/hasWywPreval.js +5 -5
- package/esm/utils/hasWywPreval.js.map +1 -1
- package/esm/utils/importOverrides.js +75 -90
- package/esm/utils/importOverrides.js.map +1 -1
- package/esm/utils/isNode.js +2 -2
- package/esm/utils/isNode.js.map +1 -1
- package/esm/utils/isNotNull.js +2 -2
- package/esm/utils/isNotNull.js.map +1 -1
- package/esm/utils/isSerializable.js +11 -11
- package/esm/utils/isSerializable.js.map +1 -1
- package/esm/utils/nativeResolver.js +93 -0
- package/esm/utils/nativeResolver.js.map +1 -0
- package/esm/utils/oxc/ast.js +28 -0
- package/esm/utils/oxc/ast.js.map +1 -0
- package/esm/utils/oxc/parse.js +3 -0
- package/esm/utils/oxc/parse.js.map +1 -0
- package/esm/utils/oxc/replacements.js +14 -0
- package/esm/utils/oxc/replacements.js.map +1 -0
- package/esm/utils/oxc/sourceLocations.js +59 -0
- package/esm/utils/oxc/sourceLocations.js.map +1 -0
- package/esm/utils/oxcAstService.js +121 -0
- package/esm/utils/oxcAstService.js.map +1 -0
- package/esm/utils/oxcEmit.js +447 -0
- package/esm/utils/oxcEmit.js.map +1 -0
- package/esm/utils/oxcPreevalStage/evalStrategy.js +3 -0
- package/esm/utils/oxcPreevalStage/evalStrategy.js.map +1 -0
- package/esm/utils/oxcPreevalStage/prepareCode.js +21 -0
- package/esm/utils/oxcPreevalStage/prepareCode.js.map +1 -0
- package/esm/utils/oxcPreevalStage/prevalExport.js +23 -0
- package/esm/utils/oxcPreevalStage/prevalExport.js.map +1 -0
- package/esm/utils/oxcPreevalStage/processors.js +17 -0
- package/esm/utils/oxcPreevalStage/processors.js.map +1 -0
- package/esm/utils/oxcPreevalStage/staticOverlay.js +18 -0
- package/esm/utils/oxcPreevalStage/staticOverlay.js.map +1 -0
- package/esm/utils/oxcPreevalStage/types.js +2 -0
- package/esm/utils/oxcPreevalStage/types.js.map +1 -0
- package/esm/utils/oxcPreevalStage.js +41 -0
- package/esm/utils/oxcPreevalStage.js.map +1 -0
- package/esm/utils/oxcPreevalTransforms.js +1065 -0
- package/esm/utils/oxcPreevalTransforms.js.map +1 -0
- package/esm/utils/oxcShaker.js +662 -0
- package/esm/utils/oxcShaker.js.map +1 -0
- package/esm/utils/parseOxc.js +37 -0
- package/esm/utils/parseOxc.js.map +1 -0
- package/esm/utils/parseRequest.js +27 -27
- package/esm/utils/parseRequest.js.map +1 -1
- package/esm/utils/peek.js +1 -1
- package/esm/utils/peek.js.map +1 -1
- package/esm/utils/processorLookup.js +125 -0
- package/esm/utils/processorLookup.js.map +1 -0
- package/esm/utils/processorStaticSemantics.js +157 -0
- package/esm/utils/processorStaticSemantics.js.map +1 -0
- package/esm/utils/resolveWithConditions.js +99 -0
- package/esm/utils/resolveWithConditions.js.map +1 -0
- package/esm/vm/createVmContext.js +140 -141
- package/esm/vm/createVmContext.js.map +1 -1
- package/esm/vm/process.js +11 -13
- package/esm/vm/process.js.map +1 -1
- package/package.json +19 -26
- package/types/cache.d.ts +17 -8
- package/types/cache.js +245 -95
- package/types/debug/fileReporter.js +68 -23
- package/types/eval/broker.d.ts +92 -0
- package/types/eval/broker.js +2411 -0
- package/types/eval/lru.d.ts +10 -0
- package/types/eval/lru.js +36 -0
- package/types/eval/prepareModuleOnDemand.d.ts +7 -0
- package/types/eval/prepareModuleOnDemand.js +24 -0
- package/types/eval/protocol.d.ts +111 -0
- package/types/eval/protocol.js +1 -0
- package/types/eval/serialize.d.ts +78 -0
- package/types/eval/serialize.js +357 -0
- package/types/eval/writeQueue.d.ts +13 -0
- package/types/eval/writeQueue.js +80 -0
- package/types/evaluators/index.d.ts +2 -2
- package/types/evaluators/index.js +6 -9
- package/types/index.d.ts +3 -6
- package/types/index.js +24 -82
- package/types/module.d.ts +38 -7
- package/types/module.js +613 -192
- package/types/shaker.d.ts +2 -10
- package/types/shaker.js +10 -100
- package/types/transform/BaseEntrypoint.js +6 -11
- package/types/transform/Entrypoint.d.ts +15 -15
- package/types/transform/Entrypoint.helpers.d.ts +2 -5
- package/types/transform/Entrypoint.helpers.js +43 -203
- package/types/transform/Entrypoint.js +130 -53
- package/types/transform/Entrypoint.types.d.ts +31 -6
- package/types/transform/Entrypoint.types.js +1 -2
- package/types/transform/EvaluatedEntrypoint.d.ts +13 -2
- package/types/transform/EvaluatedEntrypoint.js +7 -6
- package/types/transform/actions/AbortError.js +2 -7
- package/types/transform/actions/BaseAction.js +4 -8
- package/types/transform/actions/UnprocessedEntrypointError.js +2 -7
- package/types/transform/actions/actionRunner.js +8 -12
- package/types/transform/actions/types.d.ts +2 -2
- package/types/transform/actions/types.js +1 -2
- package/types/transform/{barrelManifest.d.ts → barrelManifest.types.d.ts} +0 -2
- package/types/transform/barrelManifest.types.js +1 -0
- package/types/transform/generators/baseProcessingHandlers.d.ts +4 -5
- package/types/transform/generators/baseProcessingHandlers.js +10 -14
- package/types/transform/generators/collect.js +13 -39
- package/types/transform/generators/createStylisPreprocessor.js +19 -60
- package/types/transform/generators/evalFile.d.ts +2 -2
- package/types/transform/generators/evalFile.js +26 -28
- package/types/transform/generators/extract.js +5 -8
- package/types/transform/generators/getExports.js +23 -30
- package/types/transform/generators/index.d.ts +2 -2
- package/types/transform/generators/index.js +11 -14
- package/types/transform/generators/processEntrypoint.d.ts +2 -2
- package/types/transform/generators/processEntrypoint.js +60 -26
- package/types/transform/generators/processImports.d.ts +0 -3
- package/types/transform/generators/processImports.js +60 -20
- package/types/transform/generators/resolveImports.d.ts +3 -1
- package/types/transform/generators/resolveImports.js +66 -23
- package/types/transform/generators/resolveStaticOxcValues/cache.d.ts +25 -0
- package/types/transform/generators/resolveStaticOxcValues/cache.js +182 -0
- package/types/transform/generators/resolveStaticOxcValues/candidateResolver.d.ts +5 -0
- package/types/transform/generators/resolveStaticOxcValues/candidateResolver.js +149 -0
- package/types/transform/generators/resolveStaticOxcValues/dependencies.d.ts +6 -0
- package/types/transform/generators/resolveStaticOxcValues/dependencies.js +37 -0
- package/types/transform/generators/resolveStaticOxcValues/environment.d.ts +12 -0
- package/types/transform/generators/resolveStaticOxcValues/environment.js +32 -0
- package/types/transform/generators/resolveStaticOxcValues/exportResolver.d.ts +4 -0
- package/types/transform/generators/resolveStaticOxcValues/exportResolver.js +358 -0
- package/types/transform/generators/resolveStaticOxcValues/exportTargets.d.ts +20 -0
- package/types/transform/generators/resolveStaticOxcValues/exportTargets.js +285 -0
- package/types/transform/generators/resolveStaticOxcValues/objectAssign.d.ts +41 -0
- package/types/transform/generators/resolveStaticOxcValues/objectAssign.js +352 -0
- package/types/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.d.ts +6 -0
- package/types/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js +88 -0
- package/types/transform/generators/resolveStaticOxcValues/opaqueRuntime.d.ts +13 -0
- package/types/transform/generators/resolveStaticOxcValues/opaqueRuntime.js +263 -0
- package/types/transform/generators/resolveStaticOxcValues/processorStaticExport.d.ts +4 -0
- package/types/transform/generators/resolveStaticOxcValues/processorStaticExport.js +191 -0
- package/types/transform/generators/resolveStaticOxcValues/processorStaticModel.d.ts +40 -0
- package/types/transform/generators/resolveStaticOxcValues/processorStaticModel.js +516 -0
- package/types/transform/generators/resolveStaticOxcValues/processorTarget.d.ts +5 -0
- package/types/transform/generators/resolveStaticOxcValues/processorTarget.js +62 -0
- package/types/transform/generators/resolveStaticOxcValues/programAnalysis.d.ts +11 -0
- package/types/transform/generators/resolveStaticOxcValues/programAnalysis.js +133 -0
- package/types/transform/generators/resolveStaticOxcValues/prune.d.ts +15 -0
- package/types/transform/generators/resolveStaticOxcValues/prune.js +220 -0
- package/types/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.d.ts +2 -0
- package/types/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js +197 -0
- package/types/transform/generators/resolveStaticOxcValues/staticExpression.d.ts +25 -0
- package/types/transform/generators/resolveStaticOxcValues/staticExpression.js +391 -0
- package/types/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.d.ts +14 -0
- package/types/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js +304 -0
- package/types/transform/generators/resolveStaticOxcValues/types.d.ts +99 -0
- package/types/transform/generators/resolveStaticOxcValues/types.js +2 -0
- package/types/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.d.ts +7 -0
- package/types/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js +64 -0
- package/types/transform/generators/resolveStaticOxcValues.d.ts +1 -0
- package/types/transform/generators/resolveStaticOxcValues.js +1 -0
- package/types/transform/generators/{rewriteBarrelImports.d.ts → rewriteOxcBarrelImports.d.ts} +2 -3
- package/types/transform/generators/{rewriteBarrelImports.js → rewriteOxcBarrelImports.js} +282 -225
- package/types/transform/generators/transform.d.ts +3 -7
- package/types/transform/generators/transform.js +217 -199
- package/types/transform/generators/workflow.js +62 -45
- package/types/transform/helpers/loadWywOptions.js +115 -21
- package/types/transform/helpers/withDefaultServices.d.ts +1 -1
- package/types/transform/helpers/withDefaultServices.js +6 -44
- package/types/transform/isStaticallyEvaluatableModule.d.ts +1 -2
- package/types/transform/isStaticallyEvaluatableModule.js +125 -126
- package/types/transform/oxcBarrelManifest.d.ts +2 -0
- package/types/transform/{barrelManifest.js → oxcBarrelManifest.js} +156 -97
- package/types/transform/rootLog.js +2 -5
- package/types/transform/syntax.d.ts +38 -0
- package/types/transform/syntax.js +1 -0
- package/types/transform/types.d.ts +9 -6
- package/types/transform/types.js +1 -4
- package/types/transform.d.ts +2 -2
- package/types/transform.js +90 -101
- package/types/types.d.ts +0 -23
- package/types/types.js +1 -2
- package/types/utils/EventEmitter.d.ts +16 -1
- package/types/utils/EventEmitter.js +47 -18
- package/types/utils/ShakerMetadata.js +1 -5
- package/types/utils/TransformDiagnostics.js +3 -7
- package/types/utils/TransformMetadata.js +8 -16
- package/types/utils/applyOxcProcessors/applyOxcProcessors.d.ts +8 -0
- package/types/utils/applyOxcProcessors/applyOxcProcessors.js +167 -0
- package/types/utils/applyOxcProcessors/cleanupBindings.d.ts +12 -0
- package/types/utils/applyOxcProcessors/cleanupBindings.js +189 -0
- package/types/utils/applyOxcProcessors/cleanupRemovals.d.ts +16 -0
- package/types/utils/applyOxcProcessors/cleanupRemovals.js +482 -0
- package/types/utils/applyOxcProcessors/displayName.d.ts +9 -0
- package/types/utils/applyOxcProcessors/displayName.js +113 -0
- package/types/utils/applyOxcProcessors/expressionValues.d.ts +11 -0
- package/types/utils/applyOxcProcessors/expressionValues.js +170 -0
- package/types/utils/applyOxcProcessors/processorFactory.d.ts +7 -0
- package/types/utils/applyOxcProcessors/processorFactory.js +70 -0
- package/types/utils/applyOxcProcessors/processorUsages.d.ts +16 -0
- package/types/utils/applyOxcProcessors/processorUsages.js +163 -0
- package/types/utils/applyOxcProcessors/sameFileStaticValues.d.ts +23 -0
- package/types/utils/applyOxcProcessors/sameFileStaticValues.js +211 -0
- package/types/utils/applyOxcProcessors/shared.d.ts +10 -0
- package/types/utils/applyOxcProcessors/shared.js +37 -0
- package/types/utils/applyOxcProcessors/types.d.ts +88 -0
- package/types/utils/applyOxcProcessors/types.js +1 -0
- package/types/utils/applyOxcProcessors.d.ts +1 -0
- package/types/utils/applyOxcProcessors.js +1 -0
- package/types/utils/collectOxcExportsAndImports.d.ts +35 -0
- package/types/utils/collectOxcExportsAndImports.js +957 -0
- package/types/utils/collectOxcRuntime/normalizeRuntimeCode.d.ts +1 -0
- package/types/utils/collectOxcRuntime/normalizeRuntimeCode.js +185 -0
- package/types/utils/collectOxcRuntime/sourceMap.d.ts +2 -0
- package/types/utils/collectOxcRuntime/sourceMap.js +37 -0
- package/types/utils/collectOxcRuntime/types.d.ts +16 -0
- package/types/utils/collectOxcRuntime/types.js +1 -0
- package/types/utils/collectOxcRuntime.d.ts +4 -0
- package/types/utils/collectOxcRuntime.js +31 -0
- package/types/utils/collectOxcTemplateDependencies/expressionExtraction.d.ts +6 -0
- package/types/utils/collectOxcTemplateDependencies/expressionExtraction.js +550 -0
- package/types/utils/collectOxcTemplateDependencies/expressionReplacements.d.ts +11 -0
- package/types/utils/collectOxcTemplateDependencies/expressionReplacements.js +131 -0
- package/types/utils/collectOxcTemplateDependencies/scopeAnalysis.d.ts +20 -0
- package/types/utils/collectOxcTemplateDependencies/scopeAnalysis.js +434 -0
- package/types/utils/collectOxcTemplateDependencies/staticBindings.d.ts +7 -0
- package/types/utils/collectOxcTemplateDependencies/staticBindings.js +13 -0
- package/types/utils/collectOxcTemplateDependencies/staticEvaluator.d.ts +13 -0
- package/types/utils/collectOxcTemplateDependencies/staticEvaluator.js +626 -0
- package/types/utils/collectOxcTemplateDependencies/types.d.ts +116 -0
- package/types/utils/collectOxcTemplateDependencies/types.js +1 -0
- package/types/utils/collectOxcTemplateDependencies.d.ts +4 -0
- package/types/utils/collectOxcTemplateDependencies.js +3 -0
- package/types/utils/getFileIdx.js +1 -4
- package/types/utils/getPluginKey.d.ts +5 -2
- package/types/utils/getPluginKey.js +2 -6
- package/types/utils/getVisitorKeys.d.ts +4 -4
- package/types/utils/getVisitorKeys.js +9 -6
- package/types/utils/hasCachedWywPrevalExport.d.ts +14 -0
- package/types/utils/hasCachedWywPrevalExport.js +30 -0
- package/types/utils/hasWywPreval.js +1 -4
- package/types/utils/importOverrides.js +17 -27
- package/types/utils/isNode.d.ts +2 -2
- package/types/utils/isNode.js +2 -6
- package/types/utils/isNotNull.js +1 -4
- package/types/utils/isSerializable.js +3 -6
- package/types/utils/nativeResolver.d.ts +13 -0
- package/types/utils/nativeResolver.js +91 -0
- package/types/utils/oxc/ast.d.ts +4 -0
- package/types/utils/oxc/ast.js +37 -0
- package/types/utils/oxc/parse.d.ts +3 -0
- package/types/utils/oxc/parse.js +2 -0
- package/types/utils/oxc/replacements.d.ts +12 -0
- package/types/utils/oxc/replacements.js +18 -0
- package/types/utils/oxc/sourceLocations.d.ts +5 -0
- package/types/utils/oxc/sourceLocations.js +63 -0
- package/types/utils/oxcAstService.d.ts +11 -0
- package/types/utils/oxcAstService.js +79 -0
- package/types/utils/oxcEmit.d.ts +19 -0
- package/types/utils/oxcEmit.js +506 -0
- package/types/utils/oxcPreevalStage/evalStrategy.d.ts +3 -0
- package/types/utils/oxcPreevalStage/evalStrategy.js +2 -0
- package/types/utils/oxcPreevalStage/prepareCode.d.ts +3 -0
- package/types/utils/oxcPreevalStage/prepareCode.js +20 -0
- package/types/utils/oxcPreevalStage/prevalExport.d.ts +1 -0
- package/types/utils/oxcPreevalStage/prevalExport.js +22 -0
- package/types/utils/oxcPreevalStage/processors.d.ts +10 -0
- package/types/utils/oxcPreevalStage/processors.js +16 -0
- package/types/utils/oxcPreevalStage/staticOverlay.d.ts +3 -0
- package/types/utils/oxcPreevalStage/staticOverlay.js +23 -0
- package/types/utils/oxcPreevalStage/types.d.ts +22 -0
- package/types/utils/oxcPreevalStage/types.js +1 -0
- package/types/utils/oxcPreevalStage.d.ts +4 -0
- package/types/utils/oxcPreevalStage.js +40 -0
- package/types/utils/oxcPreevalTransforms.d.ts +13 -0
- package/types/utils/oxcPreevalTransforms.js +1192 -0
- package/types/utils/oxcShaker.d.ts +13 -0
- package/types/utils/oxcShaker.js +751 -0
- package/types/utils/parseOxc.d.ts +11 -0
- package/types/utils/parseOxc.js +38 -0
- package/types/utils/parseRequest.js +2 -7
- package/types/utils/peek.js +1 -5
- package/types/utils/processorLookup.d.ts +8 -0
- package/types/utils/processorLookup.js +135 -0
- package/types/utils/processorStaticSemantics.d.ts +13 -0
- package/types/utils/processorStaticSemantics.js +191 -0
- package/types/utils/resolveWithConditions.d.ts +12 -0
- package/types/utils/resolveWithConditions.js +103 -0
- package/types/vm/createVmContext.d.ts +2 -2
- package/types/vm/createVmContext.js +25 -62
- package/types/vm/process.js +20 -26
- package/esm/babel.js +0 -2
- package/esm/babel.js.map +0 -1
- package/esm/options/buildOptions.js +0 -168
- package/esm/options/buildOptions.js.map +0 -1
- package/esm/options/buildOptions.test.js +0 -138
- package/esm/options/buildOptions.test.js.map +0 -1
- package/esm/options/loadBabelOptions.js +0 -24
- package/esm/options/loadBabelOptions.js.map +0 -1
- package/esm/plugins/babel-transform.js +0 -53
- package/esm/plugins/babel-transform.js.map +0 -1
- package/esm/plugins/collector.js +0 -60
- package/esm/plugins/collector.js.map +0 -1
- package/esm/plugins/dynamic-import.js +0 -56
- package/esm/plugins/dynamic-import.js.map +0 -1
- package/esm/plugins/preeval.js +0 -73
- package/esm/plugins/preeval.js.map +0 -1
- package/esm/plugins/shaker.js +0 -680
- package/esm/plugins/shaker.js.map +0 -1
- package/esm/transform/barrelManifest.js +0 -291
- package/esm/transform/barrelManifest.js.map +0 -1
- package/esm/transform/generators/explodeReexports.js +0 -64
- package/esm/transform/generators/explodeReexports.js.map +0 -1
- package/esm/transform/generators/rewriteBarrelImports.js +0 -733
- package/esm/transform/generators/rewriteBarrelImports.js.map +0 -1
- package/esm/utils/addIdentifierToWywPreval.js +0 -68
- package/esm/utils/addIdentifierToWywPreval.js.map +0 -1
- package/esm/utils/collectExportsAndImports.js +0 -1157
- package/esm/utils/collectExportsAndImports.js.map +0 -1
- package/esm/utils/collectTemplateDependencies.js +0 -228
- package/esm/utils/collectTemplateDependencies.js.map +0 -1
- package/esm/utils/createId.js +0 -6
- package/esm/utils/createId.js.map +0 -1
- package/esm/utils/findIdentifiers.js +0 -62
- package/esm/utils/findIdentifiers.js.map +0 -1
- package/esm/utils/getConstantStringValue.js +0 -58
- package/esm/utils/getConstantStringValue.js.map +0 -1
- package/esm/utils/getMemberExpressionPropertyName.js +0 -11
- package/esm/utils/getMemberExpressionPropertyName.js.map +0 -1
- package/esm/utils/getScope.js +0 -6
- package/esm/utils/getScope.js.map +0 -1
- package/esm/utils/getSource.js +0 -15
- package/esm/utils/getSource.js.map +0 -1
- package/esm/utils/getTagProcessor.js +0 -404
- package/esm/utils/getTagProcessor.js.map +0 -1
- package/esm/utils/isExports.js +0 -22
- package/esm/utils/isExports.js.map +0 -1
- package/esm/utils/isGlobal.js +0 -6
- package/esm/utils/isGlobal.js.map +0 -1
- package/esm/utils/isNodePath.js +0 -4
- package/esm/utils/isNodePath.js.map +0 -1
- package/esm/utils/isRemoved.js +0 -46
- package/esm/utils/isRemoved.js.map +0 -1
- package/esm/utils/isRequire.js +0 -13
- package/esm/utils/isRequire.js.map +0 -1
- package/esm/utils/isTypedNode.js +0 -6
- package/esm/utils/isTypedNode.js.map +0 -1
- package/esm/utils/isUnnecessaryReactCall.js +0 -72
- package/esm/utils/isUnnecessaryReactCall.js.map +0 -1
- package/esm/utils/removeDangerousCode.js +0 -276
- package/esm/utils/removeDangerousCode.js.map +0 -1
- package/esm/utils/replaceImportMetaEnv.js +0 -44
- package/esm/utils/replaceImportMetaEnv.js.map +0 -1
- package/esm/utils/scopeHelpers.js +0 -527
- package/esm/utils/scopeHelpers.js.map +0 -1
- package/esm/utils/traversalCache.js +0 -23
- package/esm/utils/traversalCache.js.map +0 -1
- package/esm/utils/unwrapExpression.js +0 -18
- package/esm/utils/unwrapExpression.js.map +0 -1
- package/esm/utils/unwrapSequence.js +0 -14
- package/esm/utils/unwrapSequence.js.map +0 -1
- package/esm/utils/valueToLiteral.js +0 -59
- package/esm/utils/valueToLiteral.js.map +0 -1
- package/esm/utils/visitors/JSXElementsRemover.js +0 -51
- package/esm/utils/visitors/JSXElementsRemover.js.map +0 -1
- package/lib/babel.js +0 -2
- package/lib/babel.js.map +0 -1
- package/lib/cache.js +0 -308
- package/lib/cache.js.map +0 -1
- package/lib/debug/fileReporter.js +0 -153
- package/lib/debug/fileReporter.js.map +0 -1
- package/lib/evaluators/index.js +0 -20
- package/lib/evaluators/index.js.map +0 -1
- package/lib/index.js +0 -286
- package/lib/index.js.map +0 -1
- package/lib/module.js +0 -552
- package/lib/module.js.map +0 -1
- package/lib/options/buildOptions.js +0 -176
- package/lib/options/buildOptions.js.map +0 -1
- package/lib/options/buildOptions.test.js +0 -141
- package/lib/options/buildOptions.test.js.map +0 -1
- package/lib/options/loadBabelOptions.js +0 -31
- package/lib/options/loadBabelOptions.js.map +0 -1
- package/lib/plugins/babel-transform.js +0 -60
- package/lib/plugins/babel-transform.js.map +0 -1
- package/lib/plugins/collector.js +0 -70
- package/lib/plugins/collector.js.map +0 -1
- package/lib/plugins/dynamic-import.js +0 -61
- package/lib/plugins/dynamic-import.js.map +0 -1
- package/lib/plugins/preeval.js +0 -81
- package/lib/plugins/preeval.js.map +0 -1
- package/lib/plugins/shaker.js +0 -691
- package/lib/plugins/shaker.js.map +0 -1
- package/lib/shaker.js +0 -95
- package/lib/shaker.js.map +0 -1
- package/lib/transform/BaseEntrypoint.js +0 -179
- package/lib/transform/BaseEntrypoint.js.map +0 -1
- package/lib/transform/Entrypoint.helpers.js +0 -279
- package/lib/transform/Entrypoint.helpers.js.map +0 -1
- package/lib/transform/Entrypoint.js +0 -289
- package/lib/transform/Entrypoint.js.map +0 -1
- package/lib/transform/Entrypoint.types.js +0 -2
- package/lib/transform/Entrypoint.types.js.map +0 -1
- package/lib/transform/EvaluatedEntrypoint.js +0 -13
- package/lib/transform/EvaluatedEntrypoint.js.map +0 -1
- package/lib/transform/actions/AbortError.js +0 -16
- package/lib/transform/actions/AbortError.js.map +0 -1
- package/lib/transform/actions/BaseAction.js +0 -150
- package/lib/transform/actions/BaseAction.js.map +0 -1
- package/lib/transform/actions/UnprocessedEntrypointError.js +0 -16
- package/lib/transform/actions/UnprocessedEntrypointError.js.map +0 -1
- package/lib/transform/actions/actionRunner.js +0 -82
- package/lib/transform/actions/actionRunner.js.map +0 -1
- package/lib/transform/actions/types.js +0 -2
- package/lib/transform/actions/types.js.map +0 -1
- package/lib/transform/barrelManifest.js +0 -300
- package/lib/transform/barrelManifest.js.map +0 -1
- package/lib/transform/generators/baseProcessingHandlers.js +0 -27
- package/lib/transform/generators/baseProcessingHandlers.js.map +0 -1
- package/lib/transform/generators/collect.js +0 -66
- package/lib/transform/generators/collect.js.map +0 -1
- package/lib/transform/generators/createStylisPreprocessor.js +0 -372
- package/lib/transform/generators/createStylisPreprocessor.js.map +0 -1
- package/lib/transform/generators/evalFile.js +0 -57
- package/lib/transform/generators/evalFile.js.map +0 -1
- package/lib/transform/generators/explodeReexports.js +0 -71
- package/lib/transform/generators/explodeReexports.js.map +0 -1
- package/lib/transform/generators/extract.js +0 -102
- package/lib/transform/generators/extract.js.map +0 -1
- package/lib/transform/generators/getExports.js +0 -85
- package/lib/transform/generators/getExports.js.map +0 -1
- package/lib/transform/generators/index.js +0 -19
- package/lib/transform/generators/index.js.map +0 -1
- package/lib/transform/generators/processEntrypoint.js +0 -76
- package/lib/transform/generators/processEntrypoint.js.map +0 -1
- package/lib/transform/generators/processImports.js +0 -82
- package/lib/transform/generators/processImports.js.map +0 -1
- package/lib/transform/generators/resolveImports.js +0 -221
- package/lib/transform/generators/resolveImports.js.map +0 -1
- package/lib/transform/generators/rewriteBarrelImports.js +0 -743
- package/lib/transform/generators/rewriteBarrelImports.js.map +0 -1
- package/lib/transform/generators/transform.js +0 -272
- package/lib/transform/generators/transform.js.map +0 -1
- package/lib/transform/generators/workflow.js +0 -100
- package/lib/transform/generators/workflow.js.map +0 -1
- package/lib/transform/helpers/loadWywOptions.js +0 -88
- package/lib/transform/helpers/loadWywOptions.js.map +0 -1
- package/lib/transform/helpers/withDefaultServices.js +0 -31
- package/lib/transform/helpers/withDefaultServices.js.map +0 -1
- package/lib/transform/isStaticallyEvaluatableModule.js +0 -159
- package/lib/transform/isStaticallyEvaluatableModule.js.map +0 -1
- package/lib/transform/rootLog.js +0 -9
- package/lib/transform/rootLog.js.map +0 -1
- package/lib/transform/types.js +0 -8
- package/lib/transform/types.js.map +0 -1
- package/lib/transform.js +0 -160
- package/lib/transform.js.map +0 -1
- package/lib/types.js +0 -2
- package/lib/types.js.map +0 -1
- package/lib/utils/EventEmitter.js +0 -61
- package/lib/utils/EventEmitter.js.map +0 -1
- package/lib/utils/ShakerMetadata.js +0 -9
- package/lib/utils/ShakerMetadata.js.map +0 -1
- package/lib/utils/TransformDiagnostics.js +0 -20
- package/lib/utils/TransformDiagnostics.js.map +0 -1
- package/lib/utils/TransformMetadata.js +0 -45
- package/lib/utils/TransformMetadata.js.map +0 -1
- package/lib/utils/addIdentifierToWywPreval.js +0 -75
- package/lib/utils/addIdentifierToWywPreval.js.map +0 -1
- package/lib/utils/collectExportsAndImports.js +0 -1173
- package/lib/utils/collectExportsAndImports.js.map +0 -1
- package/lib/utils/collectTemplateDependencies.js +0 -242
- package/lib/utils/collectTemplateDependencies.js.map +0 -1
- package/lib/utils/createId.js +0 -13
- package/lib/utils/createId.js.map +0 -1
- package/lib/utils/dispose-polyfill.js +0 -9
- package/lib/utils/dispose-polyfill.js.map +0 -1
- package/lib/utils/findIdentifiers.js +0 -73
- package/lib/utils/findIdentifiers.js.map +0 -1
- package/lib/utils/getConstantStringValue.js +0 -66
- package/lib/utils/getConstantStringValue.js.map +0 -1
- package/lib/utils/getFileIdx.js +0 -16
- package/lib/utils/getFileIdx.js.map +0 -1
- package/lib/utils/getMemberExpressionPropertyName.js +0 -18
- package/lib/utils/getMemberExpressionPropertyName.js.map +0 -1
- package/lib/utils/getPluginKey.js +0 -21
- package/lib/utils/getPluginKey.js.map +0 -1
- package/lib/utils/getScope.js +0 -12
- package/lib/utils/getScope.js.map +0 -1
- package/lib/utils/getSource.js +0 -24
- package/lib/utils/getSource.js.map +0 -1
- package/lib/utils/getTagProcessor.js +0 -424
- package/lib/utils/getTagProcessor.js.map +0 -1
- package/lib/utils/getVisitorKeys.js +0 -11
- package/lib/utils/getVisitorKeys.js.map +0 -1
- package/lib/utils/hasWywPreval.js +0 -13
- package/lib/utils/hasWywPreval.js.map +0 -1
- package/lib/utils/importOverrides.js +0 -119
- package/lib/utils/importOverrides.js.map +0 -1
- package/lib/utils/isExports.js +0 -27
- package/lib/utils/isExports.js.map +0 -1
- package/lib/utils/isGlobal.js +0 -13
- package/lib/utils/isGlobal.js.map +0 -1
- package/lib/utils/isNode.js +0 -9
- package/lib/utils/isNode.js.map +0 -1
- package/lib/utils/isNodePath.js +0 -10
- package/lib/utils/isNodePath.js.map +0 -1
- package/lib/utils/isNotNull.js +0 -10
- package/lib/utils/isNotNull.js.map +0 -1
- package/lib/utils/isRemoved.js +0 -52
- package/lib/utils/isRemoved.js.map +0 -1
- package/lib/utils/isRequire.js +0 -18
- package/lib/utils/isRequire.js.map +0 -1
- package/lib/utils/isSerializable.js +0 -19
- package/lib/utils/isSerializable.js.map +0 -1
- package/lib/utils/isTypedNode.js +0 -13
- package/lib/utils/isTypedNode.js.map +0 -1
- package/lib/utils/isUnnecessaryReactCall.js +0 -81
- package/lib/utils/isUnnecessaryReactCall.js.map +0 -1
- package/lib/utils/parseRequest.js +0 -37
- package/lib/utils/parseRequest.js.map +0 -1
- package/lib/utils/peek.js +0 -9
- package/lib/utils/peek.js.map +0 -1
- package/lib/utils/removeDangerousCode.js +0 -284
- package/lib/utils/removeDangerousCode.js.map +0 -1
- package/lib/utils/replaceImportMetaEnv.js +0 -50
- package/lib/utils/replaceImportMetaEnv.js.map +0 -1
- package/lib/utils/scopeHelpers.js +0 -557
- package/lib/utils/scopeHelpers.js.map +0 -1
- package/lib/utils/traversalCache.js +0 -31
- package/lib/utils/traversalCache.js.map +0 -1
- package/lib/utils/unwrapExpression.js +0 -25
- package/lib/utils/unwrapExpression.js.map +0 -1
- package/lib/utils/unwrapSequence.js +0 -20
- package/lib/utils/unwrapSequence.js.map +0 -1
- package/lib/utils/valueToLiteral.js +0 -65
- package/lib/utils/valueToLiteral.js.map +0 -1
- package/lib/utils/visitors/JSXElementsRemover.js +0 -57
- package/lib/utils/visitors/JSXElementsRemover.js.map +0 -1
- package/lib/vm/createVmContext.js +0 -166
- package/lib/vm/createVmContext.js.map +0 -1
- package/lib/vm/process.js +0 -38
- package/lib/vm/process.js.map +0 -1
- package/types/babel.d.ts +0 -2
- package/types/babel.js +0 -2
- package/types/options/buildOptions.d.ts +0 -6
- package/types/options/buildOptions.js +0 -178
- package/types/options/loadBabelOptions.d.ts +0 -3
- package/types/options/loadBabelOptions.js +0 -26
- package/types/plugins/babel-transform.d.ts +0 -4
- package/types/plugins/babel-transform.js +0 -49
- package/types/plugins/collector.d.ts +0 -23
- package/types/plugins/collector.js +0 -62
- package/types/plugins/dynamic-import.d.ts +0 -6
- package/types/plugins/dynamic-import.js +0 -60
- package/types/plugins/preeval.d.ts +0 -16
- package/types/plugins/preeval.js +0 -69
- package/types/plugins/shaker.d.ts +0 -14
- package/types/plugins/shaker.js +0 -724
- package/types/transform/generators/explodeReexports.d.ts +0 -7
- package/types/transform/generators/explodeReexports.js +0 -65
- package/types/utils/addIdentifierToWywPreval.d.ts +0 -4
- package/types/utils/addIdentifierToWywPreval.js +0 -74
- package/types/utils/collectExportsAndImports.d.ts +0 -31
- package/types/utils/collectExportsAndImports.js +0 -1147
- package/types/utils/collectTemplateDependencies.d.ts +0 -17
- package/types/utils/collectTemplateDependencies.js +0 -220
- package/types/utils/createId.d.ts +0 -2
- package/types/utils/createId.js +0 -9
- package/types/utils/findIdentifiers.d.ts +0 -6
- package/types/utils/findIdentifiers.js +0 -67
- package/types/utils/getConstantStringValue.d.ts +0 -2
- package/types/utils/getConstantStringValue.js +0 -94
- package/types/utils/getMemberExpressionPropertyName.d.ts +0 -2
- package/types/utils/getMemberExpressionPropertyName.js +0 -46
- package/types/utils/getScope.d.ts +0 -2
- package/types/utils/getScope.js +0 -10
- package/types/utils/getSource.d.ts +0 -2
- package/types/utils/getSource.js +0 -22
- package/types/utils/getTagProcessor.d.ts +0 -13
- package/types/utils/getTagProcessor.js +0 -411
- package/types/utils/isExports.d.ts +0 -6
- package/types/utils/isExports.js +0 -19
- package/types/utils/isGlobal.d.ts +0 -2
- package/types/utils/isGlobal.js +0 -9
- package/types/utils/isNodePath.d.ts +0 -3
- package/types/utils/isNodePath.js +0 -6
- package/types/utils/isRemoved.d.ts +0 -5
- package/types/utils/isRemoved.js +0 -41
- package/types/utils/isRequire.d.ts +0 -6
- package/types/utils/isRequire.js +0 -14
- package/types/utils/isTypedNode.d.ts +0 -5
- package/types/utils/isTypedNode.js +0 -9
- package/types/utils/isUnnecessaryReactCall.d.ts +0 -3
- package/types/utils/isUnnecessaryReactCall.js +0 -75
- package/types/utils/removeDangerousCode.d.ts +0 -4
- package/types/utils/removeDangerousCode.js +0 -326
- package/types/utils/replaceImportMetaEnv.d.ts +0 -3
- package/types/utils/replaceImportMetaEnv.js +0 -39
- package/types/utils/scopeHelpers.d.ts +0 -12
- package/types/utils/scopeHelpers.js +0 -580
- package/types/utils/traversalCache.d.ts +0 -4
- package/types/utils/traversalCache.js +0 -27
- package/types/utils/unwrapExpression.d.ts +0 -2
- package/types/utils/unwrapExpression.js +0 -57
- package/types/utils/unwrapSequence.d.ts +0 -8
- package/types/utils/unwrapSequence.js +0 -16
- package/types/utils/valueToLiteral.d.ts +0 -3
- package/types/utils/valueToLiteral.js +0 -63
- package/types/utils/visitors/JSXElementsRemover.d.ts +0 -3
- package/types/utils/visitors/JSXElementsRemover.js +0 -51
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","names":[],"sources":["../../../src/transform/generators/rewriteOxcBarrelImports.ts"],"version":3,"sourcesContent":["/* eslint-disable no-continue, @typescript-eslint/no-use-before-define, @typescript-eslint/no-explicit-any, no-param-reassign */\nimport path from 'path';\n\nimport { parseSync } from 'oxc-parser';\nimport type {\n ExportAllDeclaration,\n ExportNamedDeclaration,\n ImportDeclaration,\n ImportSpecifier,\n ModuleExportName,\n Program,\n Statement,\n} from 'oxc-parser';\n\nimport { oxcShaker } from '../../shaker';\nimport { TransformCacheCollection } from '../../cache';\nimport { EventEmitter } from '../../utils/EventEmitter';\nimport { collectOxcExportsAndImports } from '../../utils/collectOxcExportsAndImports';\nimport { analyzeOxcBarrelFile } from '../oxcBarrelManifest';\nimport { Entrypoint } from '../Entrypoint';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport type { ITransformAction, Services } from '../types';\nimport type {\n BarrelBlockedReason,\n BarrelManifest,\n BarrelManifestCacheEntry,\n BarrelManifestExport,\n BarrelResolvedBinding,\n RawBarrelManifest,\n} from '../barrelManifest.types';\n\nconst NODE_MODULES_SEGMENT = `${path.sep}node_modules${path.sep}`;\n\ntype RewriteResult = {\n code: string;\n fullyRewrittenSources: string[];\n generatedSources: string[];\n imports: Map<string, string[]> | null;\n optimizedCount: number;\n partialFallbackSources: string[];\n preResolvedImports: IEntrypointDependency[];\n skippedCount: number;\n};\n\ntype RewriteMode = 'full' | 'partial' | 'unchanged';\n\ntype StatementRewriteResult = {\n generatedSources: string[];\n mode: RewriteMode;\n statements: string[];\n};\n\ntype ResolvedDependencyMap = Map<string, IEntrypointDependency>;\n\ntype StarCandidate = {\n binding: BarrelResolvedBinding;\n exported: string;\n};\n\ntype RewrittenImportSpecifier =\n | {\n kind: 'default';\n local: string;\n source: string;\n }\n | {\n imported: string;\n kind: 'named';\n local: string;\n source: string;\n };\n\ntype RewrittenExportSpecifier =\n | {\n exported: string;\n imported: string;\n kind: 'named';\n source: string;\n }\n | {\n exported: string;\n kind: 'namespace';\n source: string;\n };\n\ntype IneligibleBarrelEntry = Exclude<BarrelManifestCacheEntry, BarrelManifest>;\n\ntype Replacement = {\n end: number;\n start: number;\n value: string;\n};\n\nconst createAnalysisServices = (services: Services): Services => ({\n ...services,\n cache: new TransformCacheCollection({\n barrelManifests: services.cache.barrelManifests,\n exports: services.cache.exports,\n }),\n eventEmitter: EventEmitter.dummy,\n});\n\nconst addBinding = (\n manifest: Record<string, BarrelManifestExport>,\n exported: string,\n binding: BarrelResolvedBinding,\n explicitExports: Set<string>\n) => {\n const existing = manifest[exported];\n if (explicitExports.has(exported)) {\n return;\n }\n\n if (!existing) {\n manifest[exported] = binding;\n return;\n }\n\n if (existing.kind === 'blocked') {\n return;\n }\n\n if (!isSameBinding(existing, binding)) {\n manifest[exported] = {\n kind: 'blocked',\n reason: 'ambiguous',\n };\n }\n};\n\nconst addBlockedExport = (\n manifest: Record<string, BarrelManifestExport>,\n exported: string,\n reason: BarrelBlockedReason\n) => {\n manifest[exported] = {\n kind: 'blocked',\n reason,\n };\n};\n\nconst addImport = (\n imports: Map<string, string[]>,\n source: string,\n imported: string\n): void => {\n const bucket = imports.get(source) ?? [];\n if (!bucket.includes(imported)) {\n bucket.push(imported);\n }\n\n imports.set(source, bucket);\n};\n\nconst applyReplacements = (\n code: string,\n replacements: Replacement[]\n): string => {\n let result = code;\n replacements\n .sort((a, b) => b.start - a.start)\n .forEach((replacement) => {\n result =\n result.slice(0, replacement.start) +\n replacement.value +\n result.slice(replacement.end);\n });\n\n return result;\n};\n\nconst buildResolvedDependencyMap = (\n resolvedImports: IEntrypointDependency[]\n): ResolvedDependencyMap =>\n new Map(resolvedImports.map((dependency) => [dependency.source, dependency]));\n\nconst isSameBinding = (\n left: BarrelResolvedBinding,\n right: BarrelResolvedBinding\n): boolean => {\n if (left.kind !== right.kind) {\n return false;\n }\n\n if (left.source !== right.source) {\n return false;\n }\n\n if (left.kind === 'named' && right.kind === 'named') {\n return left.imported === right.imported;\n }\n\n return true;\n};\n\nconst isValidIdentifier = (name: string): boolean =>\n /^[$A-Z_a-z][$\\w]*$/.test(name);\n\nconst canEmitNamedReexport = (imported: string): boolean =>\n imported === 'default' || isValidIdentifier(imported);\n\nconst quote = (value: string): string => JSON.stringify(value);\n\nconst moduleName = (node: ModuleExportName): string =>\n node.type === 'Literal' ? String(node.value) : node.name;\n\nconst importedNameCode = (name: string): string =>\n name === 'default' || isValidIdentifier(name) ? name : quote(name);\n\nconst exportedNameCode = (name: string): string =>\n isValidIdentifier(name) ? name : quote(name);\n\nconst importSpecifierCode = (specifier: RewrittenImportSpecifier): string => {\n if (specifier.kind === 'default') {\n return specifier.local;\n }\n\n const imported = importedNameCode(specifier.imported);\n return imported === specifier.local\n ? imported\n : `${imported} as ${specifier.local}`;\n};\n\nconst exportSpecifierCode = (specifier: RewrittenExportSpecifier): string => {\n if (specifier.kind === 'namespace') {\n return `* as ${specifier.exported}`;\n }\n\n const imported = importedNameCode(specifier.imported);\n const exported = exportedNameCode(specifier.exported);\n return imported === exported ? imported : `${imported} as ${exported}`;\n};\n\nfunction parseProgram(code: string, filename: string): Program {\n const parsed = parseSync(filename, code, {\n astType:\n filename.endsWith('.ts') || filename.endsWith('.tsx') ? 'ts' : 'js',\n range: true,\n sourceType: 'module',\n });\n const fatalError = parsed.errors.find((error) => error.severity === 'Error');\n if (fatalError) {\n throw new Error(fatalError.message);\n }\n\n return parsed.program as Program;\n}\n\nfunction createAnalysisEntrypoint(\n services: Services,\n filename: string,\n loadedCode?: string\n): Entrypoint {\n return Entrypoint.createRoot(services, filename, ['*'], loadedCode);\n}\n\nfunction getUniqueSources(raw: RawBarrelManifest): string[] {\n return Array.from(\n new Set([\n ...raw.reexports.map((reexport) => reexport.source),\n ...raw.exportAll,\n ])\n );\n}\n\nfunction buildImportsForResolve(raw: RawBarrelManifest): Map<string, string[]> {\n return new Map(getUniqueSources(raw).map((source) => [source, []]));\n}\n\nfunction getReexportResolutionMap(\n resolvedImports: IEntrypointDependency[]\n): Map<string, string | null> {\n return new Map(\n resolvedImports.map((dependency) => [\n dependency.source,\n dependency.resolved,\n ])\n );\n}\n\nfunction isBarrelEntry(\n entry: BarrelManifestCacheEntry\n): entry is BarrelManifest {\n return entry.kind === 'barrel';\n}\n\nfunction isRawBarrelManifest(\n entry: BarrelManifestCacheEntry | RawBarrelManifest\n): entry is RawBarrelManifest {\n return 'reexports' in entry;\n}\n\nfunction shouldUseDirectExports(\n reason: IneligibleBarrelEntry['reason']\n): boolean {\n return reason === 'impure';\n}\n\nfunction emitRewriteSkipped(\n action: ITransformAction,\n source: string,\n reason: BarrelBlockedReason\n) {\n action.services.eventEmitter.single({\n file: action.entrypoint.name,\n kind: 'barrelRewriteSkipped',\n reason,\n source,\n });\n}\n\nfunction getManifestExport(\n manifest: BarrelManifest,\n exported: string\n): BarrelManifestExport | null {\n return manifest.exports[exported] ?? null;\n}\n\nfunction collectOptimizedImports(\n code: string,\n filename: string\n): Map<string, string[]> {\n const imports = new Map<string, string[]>();\n const program = parseProgram(code, filename);\n\n for (const statement of program.body as Statement[]) {\n if (statement.type === 'ImportDeclaration') {\n if (statement.importKind === 'type') {\n continue;\n }\n\n if (statement.specifiers.length === 0) {\n addImport(imports, statement.source.value, 'side-effect');\n continue;\n }\n\n for (const specifier of statement.specifiers) {\n if (\n specifier.type === 'ImportSpecifier' &&\n specifier.importKind === 'type'\n ) {\n continue;\n }\n\n if (specifier.type === 'ImportDefaultSpecifier') {\n addImport(imports, statement.source.value, 'default');\n continue;\n }\n\n if (specifier.type === 'ImportNamespaceSpecifier') {\n addImport(imports, statement.source.value, '*');\n continue;\n }\n\n addImport(\n imports,\n statement.source.value,\n moduleName(specifier.imported)\n );\n }\n continue;\n }\n\n if (statement.type === 'ExportNamedDeclaration' && statement.source) {\n if (statement.exportKind === 'type') {\n continue;\n }\n\n for (const specifier of statement.specifiers) {\n if (\n specifier.type === 'ExportSpecifier' &&\n specifier.exportKind !== 'type'\n ) {\n addImport(\n imports,\n statement.source.value,\n moduleName(specifier.local)\n );\n }\n }\n continue;\n }\n\n if (statement.type === 'ExportAllDeclaration') {\n if (statement.exportKind !== 'type') {\n addImport(imports, statement.source.value, '*');\n }\n }\n }\n\n return imports;\n}\n\nfunction groupImportSpecifiers(\n optimized: RewrittenImportSpecifier[]\n): string[] {\n const grouped = new Map<\n string,\n {\n defaults: RewrittenImportSpecifier[];\n named: RewrittenImportSpecifier[];\n }\n >();\n\n for (const specifier of optimized) {\n if (!grouped.has(specifier.source)) {\n grouped.set(specifier.source, {\n defaults: [],\n named: [],\n });\n }\n\n const bucket = grouped.get(specifier.source)!;\n if (specifier.kind === 'default') {\n bucket.defaults.push(specifier);\n } else {\n bucket.named.push(specifier);\n }\n }\n\n const declarations: string[] = [];\n for (const [source, bucket] of grouped) {\n const named = bucket.named.map(importSpecifierCode);\n if (bucket.defaults.length === 0) {\n declarations.push(\n `import { ${named.join(', ')} } from ${quote(source)};`\n );\n continue;\n }\n\n const firstDefault = importSpecifierCode(bucket.defaults[0]);\n declarations.push(\n named.length > 0\n ? `import ${firstDefault}, { ${named.join(', ')} } from ${quote(\n source\n )};`\n : `import ${firstDefault} from ${quote(source)};`\n );\n\n bucket.defaults.slice(1).forEach((specifier) => {\n declarations.push(\n `import ${importSpecifierCode(specifier)} from ${quote(source)};`\n );\n });\n }\n\n return declarations;\n}\n\nfunction groupExportSpecifiers(\n optimized: RewrittenExportSpecifier[]\n): string[] {\n const grouped = new Map<string, RewrittenExportSpecifier[]>();\n const namespaceDeclarations: string[] = [];\n\n for (const specifier of optimized) {\n if (specifier.kind === 'namespace') {\n namespaceDeclarations.push(\n `export * as ${specifier.exported} from ${quote(specifier.source)};`\n );\n continue;\n }\n\n if (!grouped.has(specifier.source)) {\n grouped.set(specifier.source, []);\n }\n\n grouped.get(specifier.source)!.push(specifier);\n }\n\n return [\n ...namespaceDeclarations,\n ...Array.from(grouped.entries()).map(\n ([source, specifiers]) =>\n `export { ${specifiers\n .map(exportSpecifierCode)\n .join(', ')} } from ${quote(source)};`\n ),\n ];\n}\n\nconst sourceLiteral = (source: string): string => quote(source);\n\nfunction createImportFallback(\n code: string,\n statement: ImportDeclaration,\n fallbackSpecifiers: ImportDeclaration['specifiers']\n): string | null {\n if (fallbackSpecifiers.length === 0) {\n return null;\n }\n\n const defaults = fallbackSpecifiers.filter(\n (specifier) => specifier.type === 'ImportDefaultSpecifier'\n );\n const namespaces = fallbackSpecifiers.filter(\n (specifier) => specifier.type === 'ImportNamespaceSpecifier'\n );\n const named = fallbackSpecifiers.filter(\n (specifier): specifier is ImportSpecifier =>\n specifier.type === 'ImportSpecifier'\n );\n const renderedNamed = named.map((specifier) =>\n code.slice(specifier.start, specifier.end)\n );\n const source = sourceLiteral(statement.source.value);\n\n if (defaults.length > 0) {\n const prefix = code.slice(defaults[0].start, defaults[0].end);\n if (namespaces.length > 0) {\n return `import ${prefix}, ${code.slice(\n namespaces[0].start,\n namespaces[0].end\n )} from ${source};`;\n }\n\n if (renderedNamed.length > 0) {\n return `import ${prefix}, { ${renderedNamed.join(\n ', '\n )} } from ${source};`;\n }\n\n return `import ${prefix} from ${source};`;\n }\n\n if (namespaces.length > 0) {\n return `import ${code.slice(\n namespaces[0].start,\n namespaces[0].end\n )} from ${source};`;\n }\n\n return `import { ${renderedNamed.join(', ')} } from ${source};`;\n}\n\nfunction createExportFallback(\n code: string,\n statement: ExportNamedDeclaration,\n fallbackSpecifiers: ExportNamedDeclaration['specifiers']\n): string | null {\n if (!statement.source || fallbackSpecifiers.length === 0) {\n return null;\n }\n\n return `export { ${fallbackSpecifiers\n .map((specifier) => code.slice(specifier.start, specifier.end))\n .join(', ')} } from ${sourceLiteral(statement.source.value)};`;\n}\n\nfunction* getNamedBinding(\n this: ITransformAction,\n analysisServices: Services,\n targetResolved: string,\n imported: string,\n stack: Set<string>\n): Generator<any, BarrelManifestExport, any> {\n if (stack.has(targetResolved)) {\n return {\n kind: 'blocked',\n reason: 'cycle',\n };\n }\n\n const targetManifest = yield* getOrBuildOxcBarrelManifest.call(\n this,\n analysisServices,\n targetResolved,\n stack\n );\n\n if (isBarrelEntry(targetManifest)) {\n const resolved = getManifestExport(targetManifest, imported);\n if (resolved) {\n return resolved;\n }\n\n return {\n kind: 'blocked',\n reason: targetManifest.complete ? 'unresolved' : 'unknown-star',\n };\n }\n\n return {\n kind: 'named',\n imported,\n source: targetResolved,\n };\n}\n\nfunction* getStarCandidates(\n this: ITransformAction,\n analysisServices: Services,\n targetResolved: string,\n stack: Set<string>\n): Generator<\n any,\n { candidates: StarCandidate[]; complete: boolean; dependencies: string[] },\n any\n> {\n if (stack.has(targetResolved)) {\n return {\n candidates: [],\n complete: false,\n dependencies: [],\n };\n }\n\n const targetManifest = yield* getOrBuildOxcBarrelManifest.call(\n this,\n analysisServices,\n targetResolved,\n stack\n );\n\n if (isBarrelEntry(targetManifest)) {\n if (!targetManifest.complete) {\n return {\n candidates: [],\n complete: false,\n dependencies: [],\n };\n }\n\n return {\n candidates: Object.entries(targetManifest.exports)\n .filter(\n ([exported, binding]) =>\n exported !== 'default' && binding.kind !== 'blocked'\n )\n .map(([exported, binding]) => ({\n binding: binding as BarrelResolvedBinding,\n exported,\n })),\n complete: true,\n dependencies: [],\n };\n }\n\n if (!shouldUseDirectExports(targetManifest.reason)) {\n return {\n candidates: [],\n complete: false,\n dependencies: [],\n };\n }\n\n const exports = yield* getExportsForFile.call(\n this,\n analysisServices,\n targetResolved\n );\n const dependencies = yield* getWildcardExportDependencies.call(\n this,\n analysisServices,\n targetResolved,\n stack\n );\n\n return {\n candidates: exports\n .filter((exported) => exported !== 'default')\n .map((exported) => ({\n binding: {\n kind: 'named',\n imported: exported,\n source: targetResolved,\n } satisfies BarrelResolvedBinding,\n exported,\n })),\n complete: true,\n dependencies,\n };\n}\n\nfunction* getWildcardExportDependencies(\n this: ITransformAction,\n analysisServices: Services,\n filename: string,\n stack: Set<string>\n): Generator<any, string[], any> {\n if (stack.has(filename)) {\n return [];\n }\n\n const loadedAndParsed = analysisServices.loadAndParseFn(\n analysisServices,\n filename,\n undefined,\n analysisServices.log\n );\n\n if (\n loadedAndParsed.evaluator === 'ignored' ||\n loadedAndParsed.evaluator !== oxcShaker\n ) {\n return [];\n }\n\n const exportNames = yield* getExportsForFile.call(\n this,\n analysisServices,\n filename\n );\n this.services.cache.add('exports', filename, exportNames);\n\n const wildcardReexports = collectOxcExportsAndImports(\n loadedAndParsed.code,\n filename\n ).reexports.filter((reexport) => reexport.exported === '*');\n\n if (wildcardReexports.length === 0) {\n return [];\n }\n\n const resolveEntrypoint = createAnalysisEntrypoint(\n analysisServices,\n filename,\n loadedAndParsed.code\n );\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n resolveEntrypoint,\n {\n imports: new Map(\n wildcardReexports.map((reexport) => [reexport.source, []])\n ),\n },\n null\n );\n\n const dependencies = new Set<string>();\n const nextStack = new Set(stack);\n nextStack.add(filename);\n\n for (const dependency of resolvedImports) {\n if (!dependency.resolved) {\n continue;\n }\n\n dependencies.add(dependency.resolved);\n const nested = yield* getWildcardExportDependencies.call(\n this,\n analysisServices,\n dependency.resolved,\n nextStack\n );\n nested.forEach((item) => dependencies.add(item));\n }\n\n this.services.cache.setCacheDependencies('exports', filename, dependencies);\n\n return [...dependencies];\n}\n\nfunction* getExportsForFile(\n this: ITransformAction,\n services: Services,\n filename: string\n): Generator<any, string[], any> {\n const entrypoint = createAnalysisEntrypoint(services, filename);\n return yield* this.getNext('getExports', entrypoint, undefined, null);\n}\n\nfunction* getOrBuildOxcBarrelManifest(\n this: ITransformAction,\n analysisServices: Services,\n filename: string,\n stack: Set<string> = new Set()\n): Generator<any, BarrelManifestCacheEntry, any> {\n const cached = this.services.cache.get('barrelManifests', filename);\n if (cached) {\n this.services.eventEmitter.single({\n file: filename,\n kind: 'barrelManifest',\n status: 'hit',\n });\n return cached;\n }\n\n const loadedAndParsed = analysisServices.loadAndParseFn(\n analysisServices,\n filename,\n undefined,\n analysisServices.log\n );\n\n if (filename.includes(NODE_MODULES_SEGMENT)) {\n const externalEntry = {\n kind: 'ineligible',\n reason: 'custom-evaluator',\n } as const;\n this.services.cache.add('barrelManifests', filename, externalEntry);\n return externalEntry;\n }\n\n if (loadedAndParsed.evaluator === 'ignored') {\n const ignoredEntry = {\n kind: 'ineligible',\n reason: 'ignored',\n } as const;\n this.services.cache.add('barrelManifests', filename, ignoredEntry);\n return ignoredEntry;\n }\n\n if (loadedAndParsed.evaluator !== oxcShaker) {\n const customEntry = {\n kind: 'ineligible',\n reason: 'custom-evaluator',\n } as const;\n this.services.cache.add('barrelManifests', filename, customEntry);\n return customEntry;\n }\n\n const analyzed = analyzeOxcBarrelFile(loadedAndParsed.code, filename);\n if (!isRawBarrelManifest(analyzed)) {\n this.services.cache.add('barrelManifests', filename, analyzed);\n return analyzed;\n }\n\n const resolveEntrypoint = createAnalysisEntrypoint(\n analysisServices,\n filename,\n loadedAndParsed.code\n );\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n resolveEntrypoint,\n {\n imports: buildImportsForResolve(analyzed),\n },\n null\n );\n const manifestDependencies = resolvedImports.flatMap((dependency) =>\n dependency.resolved ? [dependency.resolved] : []\n );\n\n const resolutionMap = getReexportResolutionMap(resolvedImports);\n const manifest: BarrelManifest = {\n complete: analyzed.complete,\n exports: {},\n kind: 'barrel',\n };\n const explicitExports = new Set<string>(analyzed.explicitExports);\n const nextStack = new Set(stack);\n nextStack.add(filename);\n\n for (const reexport of analyzed.reexports) {\n explicitExports.add(reexport.exported);\n const targetResolved = resolutionMap.get(reexport.source);\n\n if (!targetResolved) {\n manifest.complete = false;\n addBlockedExport(manifest.exports, reexport.exported, 'unresolved');\n continue;\n }\n\n if (reexport.kind === 'namespace') {\n const namespaceBinding = yield* getNamespaceBinding.call(\n this,\n analysisServices,\n targetResolved,\n nextStack\n );\n manifest.exports[reexport.exported] = namespaceBinding;\n if (namespaceBinding.kind === 'blocked') {\n manifest.complete = false;\n }\n continue;\n }\n\n const binding = yield* getNamedBinding.call(\n this,\n analysisServices,\n targetResolved,\n reexport.imported,\n nextStack\n );\n manifest.exports[reexport.exported] = binding;\n if (binding.kind === 'blocked') {\n manifest.complete = false;\n }\n }\n\n for (const exportAllSource of analyzed.exportAll) {\n const targetResolved = resolutionMap.get(exportAllSource);\n if (!targetResolved) {\n manifest.complete = false;\n continue;\n }\n\n const { candidates, complete, dependencies } =\n yield* getStarCandidates.call(\n this,\n analysisServices,\n targetResolved,\n nextStack\n );\n manifestDependencies.push(...dependencies);\n\n if (!complete) {\n manifest.complete = false;\n continue;\n }\n\n for (const candidate of candidates) {\n addBinding(\n manifest.exports,\n candidate.exported,\n candidate.binding,\n explicitExports\n );\n }\n }\n\n this.services.cache.add('barrelManifests', filename, manifest);\n this.services.cache.setCacheDependencies(\n 'barrelManifests',\n filename,\n manifestDependencies\n );\n this.services.eventEmitter.single({\n complete: manifest.complete,\n file: filename,\n kind: 'barrelManifest',\n status: 'built',\n });\n\n return manifest;\n}\n\nfunction* getNamespaceBinding(\n this: ITransformAction,\n analysisServices: Services,\n targetResolved: string,\n stack: Set<string>\n): Generator<any, BarrelManifestExport, any> {\n if (stack.has(targetResolved)) {\n return {\n kind: 'blocked',\n reason: 'cycle',\n };\n }\n\n const targetManifest = yield* getOrBuildOxcBarrelManifest.call(\n this,\n analysisServices,\n targetResolved,\n stack\n );\n\n if (isBarrelEntry(targetManifest)) {\n return {\n kind: 'blocked',\n reason: 'namespace-barrel',\n };\n }\n\n return {\n kind: 'namespace',\n source: targetResolved,\n };\n}\n\nfunction getResolvedDependency(\n dependencies: ResolvedDependencyMap,\n source: string\n): IEntrypointDependency | undefined {\n return dependencies.get(source);\n}\n\nfunction* rewriteImportDeclaration(\n this: ITransformAction,\n analysisServices: Services,\n code: string,\n statement: ImportDeclaration,\n dependencies: ResolvedDependencyMap\n): Generator<any, StatementRewriteResult, any> {\n const dependency = getResolvedDependency(\n dependencies,\n statement.source.value\n );\n if (!dependency?.resolved || statement.specifiers.length === 0) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const manifest = yield* getOrBuildOxcBarrelManifest.call(\n this,\n analysisServices,\n dependency.resolved\n );\n if (!isBarrelEntry(manifest)) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const optimized: RewrittenImportSpecifier[] = [];\n const fallback = [] as ImportDeclaration['specifiers'];\n\n for (const specifier of statement.specifiers) {\n if (specifier.type === 'ImportNamespaceSpecifier') {\n fallback.push(specifier);\n continue;\n }\n\n if (specifier.type === 'ImportDefaultSpecifier') {\n const binding = getManifestExport(manifest, 'default');\n if (binding?.kind === 'named' && binding.imported === 'default') {\n optimized.push({\n kind: 'default',\n local: specifier.local.name,\n source: binding.source,\n });\n continue;\n }\n\n if (binding?.kind === 'blocked') {\n emitRewriteSkipped(this, statement.source.value, binding.reason);\n }\n fallback.push(specifier);\n continue;\n }\n\n const imported = moduleName(specifier.imported);\n const binding = getManifestExport(manifest, imported);\n\n if (binding?.kind === 'named') {\n optimized.push({\n imported: binding.imported,\n kind: 'named',\n local: specifier.local.name,\n source: binding.source,\n });\n continue;\n }\n\n if (binding?.kind === 'blocked') {\n emitRewriteSkipped(this, statement.source.value, binding.reason);\n }\n fallback.push(specifier);\n }\n\n if (optimized.length === 0) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const rewritten = groupImportSpecifiers(optimized);\n const fallbackDeclaration = createImportFallback(code, statement, fallback);\n const mode: RewriteMode = fallbackDeclaration ? 'partial' : 'full';\n\n this.services.eventEmitter.single({\n file: this.entrypoint.name,\n kind: 'barrelRewrite',\n mode,\n optimized: optimized.length,\n source: statement.source.value,\n });\n\n return {\n generatedSources: Array.from(\n new Set(optimized.map((specifier) => specifier.source))\n ),\n mode,\n statements: fallbackDeclaration\n ? [fallbackDeclaration, ...rewritten]\n : rewritten,\n };\n}\n\nfunction* rewriteExportNamedDeclaration(\n this: ITransformAction,\n analysisServices: Services,\n code: string,\n statement: ExportNamedDeclaration,\n dependencies: ResolvedDependencyMap\n): Generator<any, StatementRewriteResult, any> {\n if (!statement.source) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const dependency = getResolvedDependency(\n dependencies,\n statement.source.value\n );\n if (!dependency?.resolved) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const manifest = yield* getOrBuildOxcBarrelManifest.call(\n this,\n analysisServices,\n dependency.resolved\n );\n if (!isBarrelEntry(manifest)) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const optimized: RewrittenExportSpecifier[] = [];\n const fallback = [] as ExportNamedDeclaration['specifiers'];\n\n for (const specifier of statement.specifiers) {\n if (specifier.type !== 'ExportSpecifier') {\n fallback.push(specifier);\n continue;\n }\n\n const imported = moduleName(specifier.local);\n const exported = moduleName(specifier.exported);\n const binding = getManifestExport(manifest, imported);\n\n if (binding?.kind === 'named' && canEmitNamedReexport(binding.imported)) {\n optimized.push({\n exported,\n imported: binding.imported,\n kind: 'named',\n source: binding.source,\n });\n continue;\n }\n\n if (binding?.kind === 'namespace' && isValidIdentifier(exported)) {\n optimized.push({\n exported,\n kind: 'namespace',\n source: binding.source,\n });\n continue;\n }\n\n if (binding?.kind === 'blocked') {\n emitRewriteSkipped(this, statement.source.value, binding.reason);\n }\n fallback.push(specifier);\n }\n\n if (optimized.length === 0) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const rewritten = groupExportSpecifiers(optimized);\n const fallbackDeclaration = createExportFallback(code, statement, fallback);\n const mode: RewriteMode = fallbackDeclaration ? 'partial' : 'full';\n\n this.services.eventEmitter.single({\n file: this.entrypoint.name,\n kind: 'barrelRewrite',\n mode,\n optimized: optimized.length,\n source: statement.source.value,\n });\n\n return {\n generatedSources: Array.from(\n new Set(optimized.map((specifier) => specifier.source))\n ),\n mode,\n statements: fallbackDeclaration\n ? [fallbackDeclaration, ...rewritten]\n : rewritten,\n };\n}\n\nfunction* rewriteExportAllDeclaration(\n this: ITransformAction,\n analysisServices: Services,\n code: string,\n statement: ExportAllDeclaration,\n dependencies: ResolvedDependencyMap\n): Generator<any, StatementRewriteResult, any> {\n if (statement.exported) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const dependency = getResolvedDependency(\n dependencies,\n statement.source.value\n );\n if (!dependency?.resolved) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const manifest = yield* getOrBuildOxcBarrelManifest.call(\n this,\n analysisServices,\n dependency.resolved\n );\n if (!isBarrelEntry(manifest) || !manifest.complete) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n const optimized: RewrittenExportSpecifier[] = [];\n let hasUnrewritableExport = false;\n for (const [exported, binding] of Object.entries(manifest.exports)) {\n if (exported === 'default' || binding.kind === 'blocked') {\n continue;\n }\n\n if (binding.kind === 'namespace') {\n if (!isValidIdentifier(exported)) {\n emitRewriteSkipped(this, statement.source.value, 'namespace-barrel');\n hasUnrewritableExport = true;\n continue;\n }\n\n optimized.push({\n exported,\n kind: 'namespace',\n source: binding.source,\n });\n continue;\n }\n\n if (!canEmitNamedReexport(binding.imported)) {\n emitRewriteSkipped(this, statement.source.value, 'unknown-star');\n hasUnrewritableExport = true;\n continue;\n }\n\n optimized.push({\n exported,\n imported: binding.imported,\n kind: 'named',\n source: binding.source,\n });\n }\n\n if (hasUnrewritableExport) {\n return {\n generatedSources: [],\n mode: 'unchanged',\n statements: [code.slice(statement.start, statement.end)],\n };\n }\n\n if (optimized.length === 0) {\n this.services.eventEmitter.single({\n file: this.entrypoint.name,\n kind: 'barrelRewrite',\n mode: 'full',\n optimized: 0,\n source: statement.source.value,\n });\n\n return {\n generatedSources: [],\n mode: 'full',\n statements: [],\n };\n }\n\n this.services.eventEmitter.single({\n complete: true,\n file: this.entrypoint.name,\n kind: 'barrelRewrite',\n mode: 'full',\n optimized: optimized.length,\n source: statement.source.value,\n });\n\n return {\n generatedSources: Array.from(\n new Set(optimized.map((specifier) => specifier.source))\n ),\n mode: 'full',\n statements: groupExportSpecifiers(optimized),\n };\n}\n\nexport function* rewriteOptimizedOxcBarrelImports(\n this: ITransformAction,\n code: string,\n filename: string,\n resolvedImports: IEntrypointDependency[]\n): Generator<any, RewriteResult, any> {\n const dependencies = buildResolvedDependencyMap(resolvedImports);\n const analysisServices = createAnalysisServices(this.services);\n const program = parseProgram(code, filename);\n const replacements: Replacement[] = [];\n const generatedSources = new Set<string>();\n let optimizedCount = 0;\n const sourceModes = new Map<string, Exclude<RewriteMode, 'unchanged'>>();\n let skippedCount = 0;\n\n const recordSourceMode = (\n source: string,\n mode: RewriteMode,\n statementChanged: boolean\n ) => {\n if (mode === 'unchanged') {\n return;\n }\n\n if (statementChanged) {\n optimizedCount += 1;\n }\n\n if (mode === 'partial') {\n sourceModes.set(source, 'partial');\n return;\n }\n\n if (!sourceModes.has(source)) {\n sourceModes.set(source, 'full');\n }\n };\n\n for (const statement of program.body as Statement[]) {\n let rewritten: StatementRewriteResult | null = null;\n let source: string | null = null;\n\n if (statement.type === 'ImportDeclaration') {\n source = statement.source.value;\n rewritten = yield* rewriteImportDeclaration.call(\n this,\n analysisServices,\n code,\n statement,\n dependencies\n );\n } else if (\n statement.type === 'ExportNamedDeclaration' &&\n statement.source\n ) {\n source = statement.source.value;\n rewritten = yield* rewriteExportNamedDeclaration.call(\n this,\n analysisServices,\n code,\n statement,\n dependencies\n );\n } else if (statement.type === 'ExportAllDeclaration') {\n source = statement.source.value;\n rewritten = yield* rewriteExportAllDeclaration.call(\n this,\n analysisServices,\n code,\n statement,\n dependencies\n );\n if (\n rewritten.mode === 'unchanged' &&\n rewritten.statements.length === 1 &&\n rewritten.statements[0] === code.slice(statement.start, statement.end)\n ) {\n skippedCount += 1;\n }\n }\n\n if (!rewritten || source === null) {\n continue;\n }\n\n const original = code.slice(statement.start, statement.end);\n const next = rewritten.statements.join('\\n');\n const statementChanged = next !== original;\n recordSourceMode(source, rewritten.mode, statementChanged);\n rewritten.generatedSources.forEach((generatedSource) =>\n generatedSources.add(generatedSource)\n );\n\n if (statementChanged) {\n replacements.push({\n end: statement.end,\n start: statement.start,\n value: next,\n });\n }\n }\n\n const rewrittenCode =\n replacements.length > 0 ? applyReplacements(code, replacements) : code;\n const imports = collectOptimizedImports(rewrittenCode, filename);\n const preResolvedImports = Array.from(imports.entries()).flatMap(\n ([source, only]) => {\n const dependency = dependencies.get(source);\n if (dependency) {\n return [\n {\n ...dependency,\n only,\n },\n ];\n }\n\n if (generatedSources.has(source)) {\n return [\n {\n only,\n resolved: source,\n source,\n },\n ];\n }\n\n return [];\n }\n );\n\n return {\n code: rewrittenCode,\n fullyRewrittenSources: Array.from(sourceModes.entries())\n .filter(([, mode]) => mode === 'full')\n .map(([source]) => source),\n generatedSources: Array.from(generatedSources),\n imports,\n optimizedCount,\n partialFallbackSources: Array.from(sourceModes.entries())\n .filter(([, mode]) => mode === 'partial')\n .map(([source]) => source),\n preResolvedImports,\n skippedCount,\n };\n}\n"],"file":"rewriteOxcBarrelImports.js"}
|
|
@@ -1,255 +1,258 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
const EMPTY_FILE =
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { oxcShaker } from "../../shaker.js";
|
|
2
|
+
import { collectOxcExportsAndImports } from "../../utils/collectOxcExportsAndImports.js";
|
|
3
|
+
import { emitOxcCommonJS, stripTypesAndJsxWithOxc } from "../../utils/oxcEmit.js";
|
|
4
|
+
import { runOxcPreevalStage } from "../../utils/oxcPreevalStage.js";
|
|
5
|
+
import { shakeOxcToESM } from "../../utils/oxcShaker.js";
|
|
6
|
+
import { rewriteOptimizedOxcBarrelImports } from "./rewriteOxcBarrelImports.js";
|
|
7
|
+
import { resolveStaticOxcPreevalValues } from "./resolveStaticOxcValues.js";
|
|
8
|
+
const EMPTY_FILE = "=== empty file ===";
|
|
9
|
+
const collectImportsFromOxc = (code, filename) => {
|
|
10
|
+
const imports = new Map();
|
|
11
|
+
const addImport = (source, imported) => {
|
|
12
|
+
const bucket = imports.get(source) ?? [];
|
|
13
|
+
if (!bucket.includes(imported)) {
|
|
14
|
+
bucket.push(imported);
|
|
15
|
+
}
|
|
16
|
+
imports.set(source, bucket);
|
|
17
|
+
};
|
|
18
|
+
collectOxcExportsAndImports(code, filename).imports.forEach((item) => {
|
|
19
|
+
addImport(item.source, item.imported || "side-effect");
|
|
20
|
+
});
|
|
21
|
+
return imports;
|
|
12
22
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
23
|
+
const isPrevalOnly = (only) => only.length === 1 && only[0] === "__wywPreval";
|
|
24
|
+
const hasWywPrevalExport = (code, filename) => Object.hasOwn(collectOxcExportsAndImports(code, filename).exports, "__wywPreval");
|
|
25
|
+
const normalizeOxcPreparedESM = (code) => code.replace(/^(?:[ \t]*\n)+/, "").replace(/[ \t\n]+$/, "").replace(/\n{2,}/g, "\n").replace(/^const /gm, "var ");
|
|
26
|
+
const ensureOxcPreevalResult = (services, item, originalAst) => {
|
|
27
|
+
const cached = item.getPreevalResult();
|
|
28
|
+
if (cached) {
|
|
29
|
+
return cached;
|
|
30
|
+
}
|
|
31
|
+
const { loadedAndParsed } = item;
|
|
32
|
+
if (loadedAndParsed.evaluator === "ignored") {
|
|
33
|
+
throw new Error("Cannot run Oxc preeval for an ignored entrypoint.");
|
|
34
|
+
}
|
|
35
|
+
const filename = loadedAndParsed.evalConfig.filename ?? item.name;
|
|
36
|
+
const { eventEmitter } = services;
|
|
37
|
+
const { pluginOptions } = services.options;
|
|
38
|
+
const root = services.options.root ?? process.cwd();
|
|
39
|
+
const preevalStageResult = eventEmitter.perf("transform:preeval", () => {
|
|
40
|
+
const result = runOxcPreevalStage(loadedAndParsed.code, {
|
|
41
|
+
filename,
|
|
42
|
+
root
|
|
43
|
+
}, {
|
|
44
|
+
...pluginOptions,
|
|
45
|
+
eventEmitter
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
ast: originalAst,
|
|
49
|
+
baseCode: result.baseCode,
|
|
50
|
+
code: result.code,
|
|
51
|
+
dependencyNames: result.dependencyNames,
|
|
52
|
+
evalCode: result.code,
|
|
53
|
+
metadata: result.metadata,
|
|
54
|
+
processorClassNames: result.processorClassNames,
|
|
55
|
+
staticSideEffectImportLocals: [],
|
|
56
|
+
staticDependencies: result.staticDependencies,
|
|
57
|
+
staticValuesApplied: false,
|
|
58
|
+
staticValueCache: result.staticValueCache,
|
|
59
|
+
staticValueCandidates: result.staticValueCandidates
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
item.setPreevalResult(preevalStageResult);
|
|
63
|
+
return preevalStageResult;
|
|
64
|
+
};
|
|
65
|
+
const prepareOxcCodeImpl = (services, item, originalAst, options = {}) => {
|
|
66
|
+
const { only, loadedAndParsed, log } = item;
|
|
67
|
+
if (loadedAndParsed.evaluator === "ignored") {
|
|
68
|
+
log("is ignored");
|
|
69
|
+
return [
|
|
70
|
+
loadedAndParsed.code ?? "",
|
|
71
|
+
null,
|
|
72
|
+
null
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
const filename = loadedAndParsed.evalConfig.filename ?? item.name;
|
|
76
|
+
const { eventEmitter } = services;
|
|
77
|
+
const { pluginOptions } = services.options;
|
|
78
|
+
const root = services.options.root ?? process.cwd();
|
|
79
|
+
const preevalStageResult = ensureOxcPreevalResult(services, item, originalAst);
|
|
80
|
+
const transformMetadata = preevalStageResult.metadata;
|
|
81
|
+
const preevalCode = options.stripForEvalRuntime && preevalStageResult.evalCode ? preevalStageResult.evalCode : preevalStageResult.code;
|
|
82
|
+
if (isPrevalOnly(only) && !transformMetadata && !hasWywPrevalExport(preevalCode, filename) && options.shortCircuitOnMissingMetadata !== false) {
|
|
83
|
+
log("[evaluator:end] no metadata");
|
|
84
|
+
const strippedCode = stripTypesAndJsxWithOxc(preevalCode, filename).code;
|
|
85
|
+
return [
|
|
86
|
+
normalizeOxcPreparedESM(strippedCode),
|
|
87
|
+
collectImportsFromOxc(strippedCode, filename),
|
|
88
|
+
null
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
log("[preeval] metadata %O", transformMetadata);
|
|
92
|
+
log("[evaluator:start] using %s", loadedAndParsed.evaluator.name);
|
|
93
|
+
log.extend("source")("%s", preevalCode);
|
|
94
|
+
const shaken = eventEmitter.perf("transform:evaluator", () => shakeOxcToESM(preevalCode, filename, {
|
|
95
|
+
importOverrides: pluginOptions.importOverrides,
|
|
96
|
+
onlyExports: only,
|
|
97
|
+
root
|
|
98
|
+
}));
|
|
99
|
+
log("[evaluator:end]");
|
|
100
|
+
if (!options.emitCommonJS) {
|
|
101
|
+
const preparedCode = options.stripForEvalRuntime ? stripTypesAndJsxWithOxc(shaken.code, filename).code : shaken.code;
|
|
102
|
+
return [
|
|
103
|
+
normalizeOxcPreparedESM(preparedCode),
|
|
104
|
+
options.stripForEvalRuntime ? collectImportsFromOxc(preparedCode, filename) : shaken.imports,
|
|
105
|
+
transformMetadata ?? null
|
|
106
|
+
];
|
|
107
|
+
}
|
|
108
|
+
const emitted = eventEmitter.perf("transform:emitCommonJS", () => emitOxcCommonJS(shaken.code, filename));
|
|
109
|
+
return [
|
|
110
|
+
emitted.code,
|
|
111
|
+
shaken.imports,
|
|
112
|
+
transformMetadata ?? null
|
|
113
|
+
];
|
|
76
114
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
} = services;
|
|
93
|
-
const prepared = prepareEvaluatorInput(services, item, originalAst);
|
|
94
|
-
if (prepared.kind === 'short-circuit') {
|
|
95
|
-
return [prepared.code, null, null];
|
|
96
|
-
}
|
|
97
|
-
log('[evaluator:start] using %s', evaluator.name);
|
|
98
|
-
log.extend('source')('%s', prepared.code);
|
|
99
|
-
const [, transformedCode, imports] = eventEmitter.perf('transform:evaluator', () => evaluator(prepared.evalConfig, prepared.ast, prepared.code, prepared.evaluatorConfig, babel));
|
|
100
|
-
log('[evaluator:end]');
|
|
101
|
-
return [transformedCode, imports, prepared.metadata];
|
|
115
|
+
const prepareCodeImpl = (services, item, originalAst, options = {}) => {
|
|
116
|
+
const { log, loadedAndParsed } = item;
|
|
117
|
+
if (loadedAndParsed.evaluator === "ignored") {
|
|
118
|
+
log("is ignored");
|
|
119
|
+
return [
|
|
120
|
+
loadedAndParsed.code ?? "",
|
|
121
|
+
null,
|
|
122
|
+
null
|
|
123
|
+
];
|
|
124
|
+
}
|
|
125
|
+
const { evaluator } = loadedAndParsed;
|
|
126
|
+
if (evaluator !== oxcShaker) {
|
|
127
|
+
throw new Error(`[wyw-in-js] ${item.name} matched a legacy evaluator. The Oxc runtime path supports only the default Oxc evaluator.`);
|
|
128
|
+
}
|
|
129
|
+
return prepareOxcCodeImpl(services, item, originalAst, options);
|
|
102
130
|
};
|
|
131
|
+
export const prepareCode = (services, item, originalAst) => prepareCodeImpl(services, item, originalAst);
|
|
132
|
+
export const prepareCodeForEvalRuntime = (services, item, originalAst) => prepareCodeImpl(services, item, originalAst, {
|
|
133
|
+
shortCircuitOnMissingMetadata: true,
|
|
134
|
+
stripForEvalRuntime: true
|
|
135
|
+
});
|
|
136
|
+
function* resolveAndProcessOxcPreparedImports(action, preparedCode, imports) {
|
|
137
|
+
const { loadedAndParsed } = action.entrypoint;
|
|
138
|
+
if (imports === null || imports.size === 0) {
|
|
139
|
+
return preparedCode;
|
|
140
|
+
}
|
|
141
|
+
const resolvedImports = yield* action.getNext("resolveImports", action.entrypoint, {
|
|
142
|
+
imports,
|
|
143
|
+
phase: "initial"
|
|
144
|
+
});
|
|
145
|
+
let nextCode = preparedCode;
|
|
146
|
+
let nextResolvedImports = [];
|
|
147
|
+
let skippedParentDependencyTracking = [];
|
|
148
|
+
if (resolvedImports.length > 0) {
|
|
149
|
+
const rewritten = yield* rewriteOptimizedOxcBarrelImports.call(action, preparedCode, loadedAndParsed.evaluator === "ignored" ? action.entrypoint.name : loadedAndParsed.evalConfig.filename ?? action.entrypoint.name, resolvedImports);
|
|
150
|
+
nextCode = rewritten.code;
|
|
151
|
+
if (rewritten.optimizedCount > 0) {
|
|
152
|
+
skippedParentDependencyTracking = rewritten.generatedSources;
|
|
153
|
+
const fullyRewrittenSources = new Set(rewritten.fullyRewrittenSources);
|
|
154
|
+
const partialFallbackSources = new Set(rewritten.partialFallbackSources);
|
|
155
|
+
for (const dependency of resolvedImports) {
|
|
156
|
+
if (dependency.resolved && (fullyRewrittenSources.has(dependency.source) || partialFallbackSources.has(dependency.source))) {
|
|
157
|
+
if (partialFallbackSources.has(dependency.source)) {
|
|
158
|
+
action.entrypoint.addDependency(dependency);
|
|
159
|
+
} else {
|
|
160
|
+
action.entrypoint.addInvalidationDependency(dependency);
|
|
161
|
+
}
|
|
162
|
+
action.entrypoint.markInvalidateOnDependencyChange(dependency.resolved);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
nextResolvedImports = yield* action.getNext("resolveImports", action.entrypoint, {
|
|
166
|
+
imports: rewritten.imports,
|
|
167
|
+
phase: "rewritten",
|
|
168
|
+
preResolved: rewritten.preResolvedImports
|
|
169
|
+
});
|
|
170
|
+
} else {
|
|
171
|
+
nextResolvedImports = resolvedImports;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (nextResolvedImports.length !== 0) {
|
|
175
|
+
yield [
|
|
176
|
+
"processImports",
|
|
177
|
+
action.entrypoint,
|
|
178
|
+
{
|
|
179
|
+
resolved: nextResolvedImports,
|
|
180
|
+
skipParentDependencyTracking: skippedParentDependencyTracking
|
|
181
|
+
}
|
|
182
|
+
];
|
|
183
|
+
}
|
|
184
|
+
return nextCode;
|
|
185
|
+
}
|
|
103
186
|
export function* internalTransform(prepareFn) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
187
|
+
const { only, loadedAndParsed, log } = this.entrypoint;
|
|
188
|
+
if (loadedAndParsed.evaluator === "ignored") {
|
|
189
|
+
log("is ignored");
|
|
190
|
+
return {
|
|
191
|
+
code: loadedAndParsed.code ?? "",
|
|
192
|
+
metadata: null
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
if (loadedAndParsed.evaluator !== oxcShaker) {
|
|
196
|
+
throw new Error(`[wyw-in-js] ${this.entrypoint.name} matched a legacy evaluator. The Oxc runtime path supports only the default Oxc evaluator.`);
|
|
197
|
+
}
|
|
198
|
+
log(">> (%o)", only);
|
|
199
|
+
if (loadedAndParsed.evaluator === oxcShaker) {
|
|
200
|
+
ensureOxcPreevalResult(this.services, this.entrypoint, null);
|
|
201
|
+
yield* resolveStaticOxcPreevalValues.call(this);
|
|
202
|
+
}
|
|
203
|
+
let [preparedCode, imports, metadata] = prepareFn(this.services, this.entrypoint, null);
|
|
204
|
+
let finalPreparedCode = preparedCode;
|
|
205
|
+
if (loadedAndParsed.evaluator === oxcShaker) {
|
|
206
|
+
if (metadata === null && isPrevalOnly(only)) {
|
|
207
|
+
log("skip resolving imports for __wywPreval-only entrypoint without metadata");
|
|
208
|
+
return {
|
|
209
|
+
code: finalPreparedCode,
|
|
210
|
+
metadata: null
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
let nextCode = yield* resolveAndProcessOxcPreparedImports(this, preparedCode, imports);
|
|
214
|
+
if (yield* resolveStaticOxcPreevalValues.call(this)) {
|
|
215
|
+
[preparedCode, imports, metadata] = prepareFn(this.services, this.entrypoint, null);
|
|
216
|
+
nextCode = yield* resolveAndProcessOxcPreparedImports(this, preparedCode, imports);
|
|
217
|
+
}
|
|
218
|
+
finalPreparedCode = this.services.eventEmitter.perf("transform:emitCommonJS", () => emitOxcCommonJS(nextCode, loadedAndParsed.evalConfig.filename ?? this.entrypoint.name).code);
|
|
219
|
+
}
|
|
220
|
+
if (loadedAndParsed.code === finalPreparedCode) {
|
|
221
|
+
log("<< (%o)\n === no changes ===", only);
|
|
222
|
+
} else {
|
|
223
|
+
log("<< (%o)", only);
|
|
224
|
+
log.extend("source")("%s", finalPreparedCode || EMPTY_FILE);
|
|
225
|
+
}
|
|
226
|
+
if (finalPreparedCode === "") {
|
|
227
|
+
log("is skipped");
|
|
228
|
+
return {
|
|
229
|
+
code: loadedAndParsed.code ?? "",
|
|
230
|
+
metadata
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
if (metadata === null && isPrevalOnly(only)) {
|
|
234
|
+
log("skip resolving imports for __wywPreval-only entrypoint without metadata");
|
|
235
|
+
return {
|
|
236
|
+
code: finalPreparedCode,
|
|
237
|
+
metadata: null
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
if (loadedAndParsed.evaluator !== oxcShaker && imports !== null && imports.size > 0) {
|
|
241
|
+
const resolvedImports = yield* this.getNext("resolveImports", this.entrypoint, { imports });
|
|
242
|
+
if (resolvedImports.length !== 0) {
|
|
243
|
+
yield [
|
|
244
|
+
"processImports",
|
|
245
|
+
this.entrypoint,
|
|
246
|
+
{ resolved: resolvedImports }
|
|
247
|
+
];
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return {
|
|
251
|
+
code: finalPreparedCode,
|
|
252
|
+
metadata
|
|
253
|
+
};
|
|
145
254
|
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Prepares the code for evaluation. This includes removing dead and potentially unsafe code.
|
|
149
|
-
* Emits resolveImports and processImports events.
|
|
150
|
-
*/
|
|
151
255
|
export function* transform() {
|
|
152
|
-
|
|
153
|
-
only,
|
|
154
|
-
loadedAndParsed,
|
|
155
|
-
log
|
|
156
|
-
} = this.entrypoint;
|
|
157
|
-
if (loadedAndParsed.evaluator === 'ignored') {
|
|
158
|
-
log('is ignored');
|
|
159
|
-
return {
|
|
160
|
-
code: loadedAndParsed.code ?? '',
|
|
161
|
-
metadata: null
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
if (loadedAndParsed.evaluator !== shaker) {
|
|
165
|
-
return yield* internalTransform.call(this, prepareCode);
|
|
166
|
-
}
|
|
167
|
-
log('>> (%o)', only);
|
|
168
|
-
const prepared = prepareEvaluatorInput(this.services, this.entrypoint, loadedAndParsed.ast);
|
|
169
|
-
if (prepared.kind === 'short-circuit') {
|
|
170
|
-
if (loadedAndParsed.code === prepared.code) {
|
|
171
|
-
log('<< (%o)\n === no changes ===', only);
|
|
172
|
-
} else {
|
|
173
|
-
log('<< (%o)', only);
|
|
174
|
-
log.extend('source')('%s', prepared.code || EMPTY_FILE);
|
|
175
|
-
}
|
|
176
|
-
if (prepared.code === '') {
|
|
177
|
-
log('is skipped');
|
|
178
|
-
return {
|
|
179
|
-
code: loadedAndParsed.code ?? '',
|
|
180
|
-
metadata: null
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
return {
|
|
184
|
-
code: prepared.code,
|
|
185
|
-
metadata: null
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
log('[evaluator:start] using %s', loadedAndParsed.evaluator.name);
|
|
189
|
-
log.extend('source')('%s', prepared.code);
|
|
190
|
-
const {
|
|
191
|
-
babel,
|
|
192
|
-
eventEmitter
|
|
193
|
-
} = this.services;
|
|
194
|
-
const [shakenAst, shakenCode, shakenImports] = eventEmitter.perf('transform:evaluator', () => shakeToESM(prepared.evalConfig, prepared.ast, prepared.code, prepared.evaluatorConfig, babel));
|
|
195
|
-
let nextAst = shakenAst;
|
|
196
|
-
let nextCode = shakenCode;
|
|
197
|
-
let nextResolvedImports = [];
|
|
198
|
-
if (shakenImports !== null && shakenImports.size > 0) {
|
|
199
|
-
const resolvedImports = yield* this.getNext('resolveImports', this.entrypoint, {
|
|
200
|
-
imports: shakenImports,
|
|
201
|
-
phase: 'initial'
|
|
202
|
-
});
|
|
203
|
-
if (resolvedImports.length > 0) {
|
|
204
|
-
const rewritten = yield* rewriteOptimizedBarrelImports.call(this, shakenAst, shakenCode, resolvedImports);
|
|
205
|
-
nextAst = rewritten.ast;
|
|
206
|
-
nextCode = rewritten.code;
|
|
207
|
-
if (rewritten.optimizedCount > 0) {
|
|
208
|
-
const fullyRewrittenSources = new Set(rewritten.fullyRewrittenSources);
|
|
209
|
-
const partialFallbackSources = new Set(rewritten.partialFallbackSources);
|
|
210
|
-
for (const dependency of resolvedImports) {
|
|
211
|
-
if (dependency.resolved && (fullyRewrittenSources.has(dependency.source) || partialFallbackSources.has(dependency.source))) {
|
|
212
|
-
if (partialFallbackSources.has(dependency.source)) {
|
|
213
|
-
this.entrypoint.addDependency(dependency);
|
|
214
|
-
} else {
|
|
215
|
-
this.entrypoint.addInvalidationDependency(dependency);
|
|
216
|
-
}
|
|
217
|
-
this.entrypoint.markInvalidateOnDependencyChange(dependency.resolved);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
nextResolvedImports = yield* this.getNext('resolveImports', this.entrypoint, {
|
|
221
|
-
imports: rewritten.imports,
|
|
222
|
-
phase: 'rewritten',
|
|
223
|
-
preResolved: rewritten.preResolvedImports
|
|
224
|
-
});
|
|
225
|
-
} else {
|
|
226
|
-
nextResolvedImports = resolvedImports;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
if (nextResolvedImports.length !== 0) {
|
|
231
|
-
yield ['processImports', this.entrypoint, {
|
|
232
|
-
resolved: nextResolvedImports
|
|
233
|
-
}];
|
|
234
|
-
}
|
|
235
|
-
const [, preparedCode] = eventEmitter.perf('transform:emitCommonJS', () => emitCommonJS(prepared.evalConfig, nextAst, nextCode, babel));
|
|
236
|
-
log('[evaluator:end]');
|
|
237
|
-
if (loadedAndParsed.code === preparedCode) {
|
|
238
|
-
log('<< (%o)\n === no changes ===', only);
|
|
239
|
-
} else {
|
|
240
|
-
log('<< (%o)', only);
|
|
241
|
-
log.extend('source')('%s', preparedCode || EMPTY_FILE);
|
|
242
|
-
}
|
|
243
|
-
if (preparedCode === '') {
|
|
244
|
-
log('is skipped');
|
|
245
|
-
return {
|
|
246
|
-
code: loadedAndParsed.code ?? '',
|
|
247
|
-
metadata: null
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
return {
|
|
251
|
-
code: preparedCode,
|
|
252
|
-
metadata: prepared.metadata
|
|
253
|
-
};
|
|
256
|
+
return yield* internalTransform.call(this, prepareCode);
|
|
254
257
|
}
|
|
255
|
-
//# sourceMappingURL=transform.js.map
|
|
258
|
+
//# sourceMappingURL=transform.js.map
|