@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","names":["buildOptions","dynamicImportPlugin","preevalPlugin","emitCommonJS","shakeToESM","shaker","getTransformMetadata","getPluginKey","rewriteOptimizedBarrelImports","EMPTY_FILE","hasKeyInList","plugin","list","pluginKey","some","i","includes","runPreevalStage","babel","evalConfig","pluginOptions","code","originalAst","eventEmitter","preShakePlugins","plugins","filter","highPriorityPlugins","transformConfig","envName","result","transformFromAstSync","ast","program","Error","isPrevalOnly","only","length","prepareEvaluatorInput","services","item","loadedAndParsed","log","evaluator","name","options","preevalStageResult","perf","transformMetadata","metadata","kind","evaluatorConfig","onlyExports","features","importOverrides","root","prepareCode","prepared","extend","transformedCode","imports","internalTransform","prepareFn","entrypoint","preparedCode","size","resolvedImports","getNext","resolved","transform","call","shakenAst","shakenCode","shakenImports","nextAst","nextCode","nextResolvedImports","phase","rewritten","optimizedCount","fullyRewrittenSources","Set","partialFallbackSources","dependency","has","source","addDependency","addInvalidationDependency","markInvalidateOnDependencyChange","preResolved","preResolvedImports"],"sources":["../../../src/transform/generators/transform.ts"],"sourcesContent":["import type {\n BabelFileResult,\n PluginItem,\n TransformOptions,\n} from '@babel/core';\nimport type { File } from '@babel/types';\n\nimport type { EvaluatorConfig, StrictOptions } from '@wyw-in-js/shared';\n\nimport type { Core } from '../../babel';\nimport { buildOptions } from '../../options/buildOptions';\nimport dynamicImportPlugin from '../../plugins/dynamic-import';\nimport preevalPlugin from '../../plugins/preeval';\nimport { emitCommonJS, shakeToESM, shaker } from '../../shaker';\nimport type { EventEmitter } from '../../utils/EventEmitter';\nimport type { WYWTransformMetadata } from '../../utils/TransformMetadata';\nimport { getTransformMetadata } from '../../utils/TransformMetadata';\nimport { getPluginKey } from '../../utils/getPluginKey';\nimport type { Entrypoint } from '../Entrypoint';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport type {\n ITransformAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\nimport { rewriteOptimizedBarrelImports } from './rewriteBarrelImports';\n\nconst EMPTY_FILE = '=== empty file ===';\n\nconst hasKeyInList = (plugin: PluginItem, list: string[]): boolean => {\n const pluginKey = getPluginKey(plugin);\n return pluginKey ? list.some((i) => pluginKey.includes(i)) : false;\n};\n\nfunction runPreevalStage(\n babel: Core,\n evalConfig: TransformOptions,\n pluginOptions: StrictOptions,\n code: string,\n originalAst: File,\n eventEmitter: EventEmitter\n): BabelFileResult {\n const preShakePlugins =\n evalConfig.plugins?.filter((i) =>\n hasKeyInList(i, pluginOptions.highPriorityPlugins)\n ) ?? [];\n\n const plugins = [\n ...preShakePlugins,\n [\n preevalPlugin,\n {\n ...pluginOptions,\n eventEmitter,\n },\n ],\n dynamicImportPlugin,\n ...(evalConfig.plugins ?? []).filter(\n (i) => !hasKeyInList(i, pluginOptions.highPriorityPlugins)\n ),\n ];\n\n const transformConfig = buildOptions({\n ...evalConfig,\n envName: 'wyw-in-js',\n plugins,\n });\n\n const result = babel.transformFromAstSync(originalAst, code, transformConfig);\n\n if (!result || !result.ast?.program) {\n throw new Error('Babel transform failed');\n }\n\n return result;\n}\n\ntype PrepareCodeFn = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n) => [\n code: string,\n imports: Map<string, string[]> | null,\n metadata: WYWTransformMetadata | null,\n];\n\ntype PreparedEvaluatorInput =\n | {\n kind: 'continue';\n ast: File;\n code: string;\n evalConfig: TransformOptions;\n evaluatorConfig: EvaluatorConfig;\n metadata: WYWTransformMetadata | null;\n }\n | {\n kind: 'short-circuit';\n code: string;\n };\n\nconst isPrevalOnly = (only: string[]) =>\n only.length === 1 && only[0] === '__wywPreval';\n\nconst prepareEvaluatorInput = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n): PreparedEvaluatorInput => {\n const { only, loadedAndParsed, log } = item;\n if (loadedAndParsed.evaluator === 'ignored') {\n throw new Error(`Cannot prepare ignored entrypoint ${item.name}`);\n }\n\n const { code, evalConfig } = loadedAndParsed;\n const { options, babel, eventEmitter } = services;\n const { pluginOptions } = options;\n\n const preevalStageResult = eventEmitter.perf('transform:preeval', () =>\n runPreevalStage(\n babel,\n evalConfig,\n pluginOptions,\n code,\n originalAst,\n eventEmitter\n )\n );\n\n const transformMetadata = getTransformMetadata(preevalStageResult.metadata);\n if (isPrevalOnly(only) && !transformMetadata) {\n log('[evaluator:end] no metadata');\n return {\n kind: 'short-circuit',\n code: preevalStageResult.code!,\n };\n }\n\n log('[preeval] metadata %O', transformMetadata);\n\n return {\n kind: 'continue',\n ast: preevalStageResult.ast!,\n code: preevalStageResult.code!,\n evalConfig,\n evaluatorConfig: {\n onlyExports: only,\n highPriorityPlugins: pluginOptions.highPriorityPlugins,\n features: pluginOptions.features,\n importOverrides: pluginOptions.importOverrides,\n root: options.root,\n },\n metadata: transformMetadata ?? null,\n };\n};\n\nexport const prepareCode = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n): ReturnType<PrepareCodeFn> => {\n const { log, loadedAndParsed } = item;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return [loadedAndParsed.code ?? '', null, null];\n }\n\n const { evaluator } = loadedAndParsed;\n const { babel, eventEmitter } = services;\n const prepared = prepareEvaluatorInput(services, item, originalAst);\n if (prepared.kind === 'short-circuit') {\n return [prepared.code, null, null];\n }\n\n log('[evaluator:start] using %s', evaluator.name);\n log.extend('source')('%s', prepared.code);\n\n const [, transformedCode, imports] = eventEmitter.perf(\n 'transform:evaluator',\n () =>\n evaluator(\n prepared.evalConfig,\n prepared.ast,\n prepared.code,\n prepared.evaluatorConfig,\n babel\n )\n );\n\n log('[evaluator:end]');\n\n return [transformedCode, imports, prepared.metadata];\n};\n\nexport function* internalTransform(\n this: ITransformAction,\n prepareFn: PrepareCodeFn\n): SyncScenarioForAction<ITransformAction> {\n const { only, loadedAndParsed, log } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n log('>> (%o)', only);\n\n const [preparedCode, imports, metadata] = prepareFn(\n this.services,\n this.entrypoint,\n loadedAndParsed.ast\n );\n\n if (loadedAndParsed.code === preparedCode) {\n log('<< (%o)\\n === no changes ===', only);\n } else {\n log('<< (%o)', only);\n log.extend('source')('%s', preparedCode || EMPTY_FILE);\n }\n\n if (preparedCode === '') {\n log('is skipped');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n if (imports !== null && imports.size > 0) {\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports,\n }\n );\n\n if (resolvedImports.length !== 0) {\n yield [\n 'processImports',\n this.entrypoint,\n {\n resolved: resolvedImports,\n },\n ];\n }\n }\n\n return {\n code: preparedCode,\n metadata,\n };\n}\n\n/**\n * Prepares the code for evaluation. This includes removing dead and potentially unsafe code.\n * Emits resolveImports and processImports events.\n */\nexport function* transform(\n this: ITransformAction\n): SyncScenarioForAction<ITransformAction> {\n const { only, loadedAndParsed, log } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n if (loadedAndParsed.evaluator !== shaker) {\n return yield* internalTransform.call(this, prepareCode);\n }\n\n log('>> (%o)', only);\n\n const prepared = prepareEvaluatorInput(\n this.services,\n this.entrypoint,\n loadedAndParsed.ast\n );\n\n if (prepared.kind === 'short-circuit') {\n if (loadedAndParsed.code === prepared.code) {\n log('<< (%o)\\n === no changes ===', only);\n } else {\n log('<< (%o)', only);\n log.extend('source')('%s', prepared.code || EMPTY_FILE);\n }\n\n if (prepared.code === '') {\n log('is skipped');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n return {\n code: prepared.code,\n metadata: null,\n };\n }\n\n log('[evaluator:start] using %s', loadedAndParsed.evaluator.name);\n log.extend('source')('%s', prepared.code);\n\n const { babel, eventEmitter } = this.services;\n const [shakenAst, shakenCode, shakenImports] = eventEmitter.perf(\n 'transform:evaluator',\n () =>\n shakeToESM(\n prepared.evalConfig,\n prepared.ast,\n prepared.code,\n prepared.evaluatorConfig,\n babel\n )\n );\n\n let nextAst = shakenAst;\n let nextCode = shakenCode;\n let nextResolvedImports: IEntrypointDependency[] = [];\n\n if (shakenImports !== null && shakenImports.size > 0) {\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports: shakenImports,\n phase: 'initial',\n }\n );\n\n if (resolvedImports.length > 0) {\n const rewritten = yield* rewriteOptimizedBarrelImports.call(\n this,\n shakenAst,\n shakenCode,\n resolvedImports\n );\n\n nextAst = rewritten.ast;\n nextCode = rewritten.code;\n if (rewritten.optimizedCount > 0) {\n const fullyRewrittenSources = new Set(rewritten.fullyRewrittenSources);\n const partialFallbackSources = new Set(\n rewritten.partialFallbackSources\n );\n for (const dependency of resolvedImports) {\n if (\n dependency.resolved &&\n (fullyRewrittenSources.has(dependency.source) ||\n partialFallbackSources.has(dependency.source))\n ) {\n if (partialFallbackSources.has(dependency.source)) {\n this.entrypoint.addDependency(dependency);\n } else {\n this.entrypoint.addInvalidationDependency(dependency);\n }\n this.entrypoint.markInvalidateOnDependencyChange(\n dependency.resolved\n );\n }\n }\n\n nextResolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports: rewritten.imports,\n phase: 'rewritten',\n preResolved: rewritten.preResolvedImports,\n }\n );\n } else {\n nextResolvedImports = resolvedImports;\n }\n }\n }\n\n if (nextResolvedImports.length !== 0) {\n yield [\n 'processImports',\n this.entrypoint,\n {\n resolved: nextResolvedImports,\n },\n ];\n }\n\n const [, preparedCode] = eventEmitter.perf('transform:emitCommonJS', () =>\n emitCommonJS(prepared.evalConfig, nextAst, nextCode, babel)\n );\n\n log('[evaluator:end]');\n\n if (loadedAndParsed.code === preparedCode) {\n log('<< (%o)\\n === no changes ===', only);\n } else {\n log('<< (%o)', only);\n log.extend('source')('%s', preparedCode || EMPTY_FILE);\n }\n\n if (preparedCode === '') {\n log('is skipped');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n return {\n code: preparedCode,\n metadata: prepared.metadata,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"mappings":"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","names":[],"sources":["../../../src/transform/generators/transform.ts"],"version":3,"sourcesContent":["import { oxcShaker } from '../../shaker';\nimport type { WYWTransformMetadata } from '../../utils/TransformMetadata';\nimport { collectOxcExportsAndImports } from '../../utils/collectOxcExportsAndImports';\nimport { emitOxcCommonJS, stripTypesAndJsxWithOxc } from '../../utils/oxcEmit';\nimport { runOxcPreevalStage } from '../../utils/oxcPreevalStage';\nimport { shakeOxcToESM } from '../../utils/oxcShaker';\nimport type { Entrypoint } from '../Entrypoint';\nimport type {\n IEntrypointDependency,\n IPreevalResult,\n} from '../Entrypoint.types';\nimport type {\n ITransformAction,\n Services,\n SyncScenarioFor,\n SyncScenarioForAction,\n} from '../types';\n\nimport { rewriteOptimizedOxcBarrelImports } from './rewriteOxcBarrelImports';\nimport { resolveStaticOxcPreevalValues } from './resolveStaticOxcValues';\n\nconst EMPTY_FILE = '=== empty file ===';\n\nconst collectImportsFromOxc = (\n code: string,\n filename: string\n): Map<string, string[]> => {\n const imports = new Map<string, string[]>();\n const addImport = (source: string, imported: string) => {\n const bucket = imports.get(source) ?? [];\n if (!bucket.includes(imported)) {\n bucket.push(imported);\n }\n\n imports.set(source, bucket);\n };\n\n collectOxcExportsAndImports(code, filename).imports.forEach((item) => {\n addImport(item.source, item.imported || 'side-effect');\n });\n\n return imports;\n};\n\ntype PrepareCodeFn = (\n services: Services,\n item: Entrypoint,\n originalAst: unknown | null\n) => [\n code: string,\n imports: Map<string, string[]> | null,\n metadata: WYWTransformMetadata | null,\n];\n\nconst isPrevalOnly = (only: string[]) =>\n only.length === 1 && only[0] === '__wywPreval';\n\nconst hasWywPrevalExport = (code: string, filename: string): boolean =>\n Object.hasOwn(\n collectOxcExportsAndImports(code, filename).exports,\n '__wywPreval'\n );\n\ntype PrepareCodeOptions = {\n emitCommonJS?: boolean;\n shortCircuitOnMissingMetadata?: boolean;\n stripForEvalRuntime?: boolean;\n};\n\nconst normalizeOxcPreparedESM = (code: string): string =>\n code\n .replace(/^(?:[ \\t]*\\n)+/, '')\n .replace(/[ \\t\\n]+$/, '')\n .replace(/\\n{2,}/g, '\\n')\n .replace(/^const /gm, 'var ');\n\nconst ensureOxcPreevalResult = (\n services: Services,\n item: Entrypoint,\n originalAst: unknown | null\n): IPreevalResult => {\n const cached = item.getPreevalResult();\n if (cached) {\n return cached;\n }\n\n const { loadedAndParsed } = item;\n if (loadedAndParsed.evaluator === 'ignored') {\n throw new Error('Cannot run Oxc preeval for an ignored entrypoint.');\n }\n\n const filename = loadedAndParsed.evalConfig.filename ?? item.name;\n const { eventEmitter } = services;\n const { pluginOptions } = services.options;\n const root = services.options.root ?? process.cwd();\n\n const preevalStageResult = eventEmitter.perf('transform:preeval', () => {\n const result = runOxcPreevalStage(\n loadedAndParsed.code,\n {\n filename,\n root,\n },\n {\n ...pluginOptions,\n eventEmitter,\n }\n );\n\n return {\n ast: originalAst,\n baseCode: result.baseCode,\n code: result.code,\n dependencyNames: result.dependencyNames,\n evalCode: result.code,\n metadata: result.metadata,\n processorClassNames: result.processorClassNames,\n staticSideEffectImportLocals: [],\n staticDependencies: result.staticDependencies,\n staticValuesApplied: false,\n staticValueCache: result.staticValueCache,\n staticValueCandidates: result.staticValueCandidates,\n };\n });\n\n item.setPreevalResult(preevalStageResult);\n return preevalStageResult;\n};\n\nconst prepareOxcCodeImpl = (\n services: Services,\n item: Entrypoint,\n originalAst: unknown | null,\n options: PrepareCodeOptions = {}\n): ReturnType<PrepareCodeFn> => {\n const { only, loadedAndParsed, log } = item;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return [loadedAndParsed.code ?? '', null, null];\n }\n\n const filename = loadedAndParsed.evalConfig.filename ?? item.name;\n const { eventEmitter } = services;\n const { pluginOptions } = services.options;\n const root = services.options.root ?? process.cwd();\n\n const preevalStageResult = ensureOxcPreevalResult(\n services,\n item,\n originalAst\n );\n\n const transformMetadata = preevalStageResult.metadata;\n const preevalCode =\n options.stripForEvalRuntime && preevalStageResult.evalCode\n ? preevalStageResult.evalCode\n : preevalStageResult.code;\n if (\n isPrevalOnly(only) &&\n !transformMetadata &&\n !hasWywPrevalExport(preevalCode, filename) &&\n options.shortCircuitOnMissingMetadata !== false\n ) {\n log('[evaluator:end] no metadata');\n const strippedCode = stripTypesAndJsxWithOxc(preevalCode, filename).code;\n\n return [\n normalizeOxcPreparedESM(strippedCode),\n collectImportsFromOxc(strippedCode, filename),\n null,\n ];\n }\n\n log('[preeval] metadata %O', transformMetadata);\n log('[evaluator:start] using %s', loadedAndParsed.evaluator.name);\n log.extend('source')('%s', preevalCode);\n\n const shaken = eventEmitter.perf('transform:evaluator', () =>\n shakeOxcToESM(preevalCode, filename, {\n importOverrides: pluginOptions.importOverrides,\n onlyExports: only,\n root,\n })\n );\n\n log('[evaluator:end]');\n\n if (!options.emitCommonJS) {\n const preparedCode = options.stripForEvalRuntime\n ? stripTypesAndJsxWithOxc(shaken.code, filename).code\n : shaken.code;\n\n return [\n normalizeOxcPreparedESM(preparedCode),\n options.stripForEvalRuntime\n ? collectImportsFromOxc(preparedCode, filename)\n : shaken.imports,\n transformMetadata ?? null,\n ];\n }\n\n const emitted = eventEmitter.perf('transform:emitCommonJS', () =>\n emitOxcCommonJS(shaken.code, filename)\n );\n\n return [emitted.code, shaken.imports, transformMetadata ?? null];\n};\n\nconst prepareCodeImpl = (\n services: Services,\n item: Entrypoint,\n originalAst: unknown | null,\n options: PrepareCodeOptions = {}\n): ReturnType<PrepareCodeFn> => {\n const { log, loadedAndParsed } = item;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return [loadedAndParsed.code ?? '', null, null];\n }\n\n const { evaluator } = loadedAndParsed;\n if (evaluator !== oxcShaker) {\n throw new Error(\n `[wyw-in-js] ${item.name} matched a legacy evaluator. The Oxc runtime path supports only the default Oxc evaluator.`\n );\n }\n\n return prepareOxcCodeImpl(services, item, originalAst, options);\n};\n\nexport const prepareCode = (\n services: Services,\n item: Entrypoint,\n originalAst: unknown | null\n): ReturnType<PrepareCodeFn> => prepareCodeImpl(services, item, originalAst);\n\nexport const prepareCodeForEvalRuntime = (\n services: Services,\n item: Entrypoint,\n originalAst: unknown | null\n): ReturnType<PrepareCodeFn> =>\n prepareCodeImpl(services, item, originalAst, {\n shortCircuitOnMissingMetadata: true,\n stripForEvalRuntime: true,\n });\n\nfunction* resolveAndProcessOxcPreparedImports(\n action: ITransformAction,\n preparedCode: string,\n imports: Map<string, string[]> | null\n): SyncScenarioFor<string> {\n const { loadedAndParsed } = action.entrypoint;\n if (imports === null || imports.size === 0) {\n return preparedCode;\n }\n\n const resolvedImports = yield* action.getNext(\n 'resolveImports',\n action.entrypoint,\n {\n imports,\n phase: 'initial',\n }\n );\n\n let nextCode = preparedCode;\n let nextResolvedImports: IEntrypointDependency[] = [];\n let skippedParentDependencyTracking: string[] = [];\n\n if (resolvedImports.length > 0) {\n const rewritten = yield* rewriteOptimizedOxcBarrelImports.call(\n action,\n preparedCode,\n loadedAndParsed.evaluator === 'ignored'\n ? action.entrypoint.name\n : loadedAndParsed.evalConfig.filename ?? action.entrypoint.name,\n resolvedImports\n );\n\n nextCode = rewritten.code;\n\n if (rewritten.optimizedCount > 0) {\n skippedParentDependencyTracking = rewritten.generatedSources;\n const fullyRewrittenSources = new Set(rewritten.fullyRewrittenSources);\n const partialFallbackSources = new Set(rewritten.partialFallbackSources);\n\n for (const dependency of resolvedImports) {\n if (\n dependency.resolved &&\n (fullyRewrittenSources.has(dependency.source) ||\n partialFallbackSources.has(dependency.source))\n ) {\n if (partialFallbackSources.has(dependency.source)) {\n action.entrypoint.addDependency(dependency);\n } else {\n action.entrypoint.addInvalidationDependency(dependency);\n }\n\n action.entrypoint.markInvalidateOnDependencyChange(\n dependency.resolved\n );\n }\n }\n\n nextResolvedImports = yield* action.getNext(\n 'resolveImports',\n action.entrypoint,\n {\n imports: rewritten.imports,\n phase: 'rewritten',\n preResolved: rewritten.preResolvedImports,\n }\n );\n } else {\n nextResolvedImports = resolvedImports;\n }\n }\n\n if (nextResolvedImports.length !== 0) {\n yield [\n 'processImports',\n action.entrypoint,\n {\n resolved: nextResolvedImports,\n skipParentDependencyTracking: skippedParentDependencyTracking,\n },\n ];\n }\n\n return nextCode;\n}\n\nexport function* internalTransform(\n this: ITransformAction,\n prepareFn: PrepareCodeFn\n): SyncScenarioForAction<ITransformAction> {\n const { only, loadedAndParsed, log } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n if (loadedAndParsed.evaluator !== oxcShaker) {\n throw new Error(\n `[wyw-in-js] ${this.entrypoint.name} matched a legacy evaluator. The Oxc runtime path supports only the default Oxc evaluator.`\n );\n }\n\n log('>> (%o)', only);\n\n if (loadedAndParsed.evaluator === oxcShaker) {\n ensureOxcPreevalResult(this.services, this.entrypoint, null);\n yield* resolveStaticOxcPreevalValues.call(this);\n }\n\n let [preparedCode, imports, metadata] = prepareFn(\n this.services,\n this.entrypoint,\n null\n );\n let finalPreparedCode = preparedCode;\n\n if (loadedAndParsed.evaluator === oxcShaker) {\n if (metadata === null && isPrevalOnly(only)) {\n log(\n 'skip resolving imports for __wywPreval-only entrypoint without metadata'\n );\n return {\n code: finalPreparedCode,\n metadata: null,\n };\n }\n\n let nextCode = yield* resolveAndProcessOxcPreparedImports(\n this,\n preparedCode,\n imports\n );\n\n if (yield* resolveStaticOxcPreevalValues.call(this)) {\n [preparedCode, imports, metadata] = prepareFn(\n this.services,\n this.entrypoint,\n null\n );\n nextCode = yield* resolveAndProcessOxcPreparedImports(\n this,\n preparedCode,\n imports\n );\n }\n\n finalPreparedCode = this.services.eventEmitter.perf(\n 'transform:emitCommonJS',\n () =>\n emitOxcCommonJS(\n nextCode,\n loadedAndParsed.evalConfig.filename ?? this.entrypoint.name\n ).code\n );\n }\n\n if (loadedAndParsed.code === finalPreparedCode) {\n log('<< (%o)\\n === no changes ===', only);\n } else {\n log('<< (%o)', only);\n log.extend('source')('%s', finalPreparedCode || EMPTY_FILE);\n }\n\n if (finalPreparedCode === '') {\n log('is skipped');\n return {\n code: loadedAndParsed.code ?? '',\n metadata,\n };\n }\n\n if (metadata === null && isPrevalOnly(only)) {\n log(\n 'skip resolving imports for __wywPreval-only entrypoint without metadata'\n );\n return {\n code: finalPreparedCode,\n metadata: null,\n };\n }\n\n if (\n loadedAndParsed.evaluator !== oxcShaker &&\n imports !== null &&\n imports.size > 0\n ) {\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports,\n }\n );\n\n if (resolvedImports.length !== 0) {\n yield [\n 'processImports',\n this.entrypoint,\n {\n resolved: resolvedImports,\n },\n ];\n }\n }\n\n return {\n code: finalPreparedCode,\n metadata,\n };\n}\n\nexport function* transform(\n this: ITransformAction\n): SyncScenarioForAction<ITransformAction> {\n return yield* internalTransform.call(this, prepareCode);\n}\n"],"file":"transform.js"}
|
|
@@ -1,93 +1,90 @@
|
|
|
1
|
-
import { isAborted } from
|
|
2
|
-
import { collectTransformDiagnostics } from
|
|
3
|
-
import { toTransformResultMetadata } from
|
|
4
|
-
|
|
1
|
+
import { isAborted } from "../actions/AbortError.js";
|
|
2
|
+
import { collectTransformDiagnostics } from "../../utils/TransformDiagnostics.js";
|
|
3
|
+
import { toTransformResultMetadata } from "../../utils/TransformMetadata.js";
|
|
4
|
+
const isLoadedEntrypointWithoutArtifacts = (entrypoint) => entrypoint.initialCode !== undefined && entrypoint.only.includes("__wywPreval");
|
|
5
5
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
* The entry point for file processing. Sequentially calls `processEntrypoint`,
|
|
7
|
+
* `evalFile`, `collect`, and `extract`. Returns the result of transforming
|
|
8
|
+
* the source code as well as all artifacts obtained from code execution.
|
|
9
|
+
*/
|
|
10
10
|
export function* workflow() {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
replacements: [...extractStageResult.replacements, ...collectStageResult.metadata.replacements],
|
|
90
|
-
sourceMap: collectStageResult.map
|
|
91
|
-
};
|
|
11
|
+
const { cache, options } = this.services;
|
|
12
|
+
const { entrypoint } = this;
|
|
13
|
+
if (entrypoint.ignored) {
|
|
14
|
+
return {
|
|
15
|
+
code: entrypoint.loadedAndParsed.code ?? "",
|
|
16
|
+
sourceMap: options.inputSourceMap
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
yield* this.getNext("processEntrypoint", entrypoint, undefined, null);
|
|
21
|
+
entrypoint.assertNotSuperseded();
|
|
22
|
+
} catch (e) {
|
|
23
|
+
if (isAborted(e) && entrypoint.supersededWith) {
|
|
24
|
+
entrypoint.log("workflow aborted, schedule the next attempt");
|
|
25
|
+
return yield* this.getNext("workflow", entrypoint.supersededWith, undefined, null);
|
|
26
|
+
}
|
|
27
|
+
throw e;
|
|
28
|
+
}
|
|
29
|
+
const originalCode = entrypoint.loadedAndParsed.code ?? "";
|
|
30
|
+
function* restartOnSupersede(error) {
|
|
31
|
+
if (isAborted(error) && entrypoint.supersededWith) {
|
|
32
|
+
entrypoint.log("workflow aborted, schedule the next attempt");
|
|
33
|
+
return yield* this.getNext("workflow", entrypoint.supersededWith, undefined, null);
|
|
34
|
+
}
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
// File is ignored or does not contain any tags. Return original code.
|
|
38
|
+
if (!entrypoint.hasWywMetadata()) {
|
|
39
|
+
if (isLoadedEntrypointWithoutArtifacts(entrypoint)) {
|
|
40
|
+
// A root bundler pass for a plain dependency must not pin eval/cache state.
|
|
41
|
+
// If another WyW file needs this module, it will be prepared on demand.
|
|
42
|
+
cache.delete("entrypoints", entrypoint.name);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
code: originalCode,
|
|
46
|
+
sourceMap: options.inputSourceMap
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// *** 2nd stage ***
|
|
50
|
+
try {
|
|
51
|
+
const evalStageResult = yield* this.getNext("evalFile", entrypoint, undefined, null);
|
|
52
|
+
entrypoint.assertNotSuperseded();
|
|
53
|
+
if (evalStageResult === null) {
|
|
54
|
+
return {
|
|
55
|
+
code: originalCode,
|
|
56
|
+
sourceMap: options.inputSourceMap
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const [valueCache, dependencies] = evalStageResult;
|
|
60
|
+
// *** 3rd stage ***
|
|
61
|
+
const collectStageResult = yield* this.getNext("collect", entrypoint, { valueCache }, null);
|
|
62
|
+
entrypoint.assertNotSuperseded();
|
|
63
|
+
if (!collectStageResult.metadata) {
|
|
64
|
+
if (isLoadedEntrypointWithoutArtifacts(entrypoint)) {
|
|
65
|
+
cache.delete("entrypoints", entrypoint.name);
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
code: collectStageResult.code,
|
|
69
|
+
sourceMap: collectStageResult.map
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const metadata = options.pluginOptions.outputMetadata ? toTransformResultMetadata(collectStageResult.metadata, dependencies) : null;
|
|
73
|
+
const diagnostics = collectTransformDiagnostics(entrypoint.name, collectStageResult.metadata.processors);
|
|
74
|
+
// *** 4th stage
|
|
75
|
+
const extractStageResult = yield* this.getNext("extract", entrypoint, { processors: collectStageResult.metadata.processors }, null);
|
|
76
|
+
entrypoint.assertNotSuperseded();
|
|
77
|
+
return {
|
|
78
|
+
...extractStageResult,
|
|
79
|
+
code: collectStageResult.code ?? "",
|
|
80
|
+
dependencies,
|
|
81
|
+
...diagnostics.length > 0 ? { diagnostics } : {},
|
|
82
|
+
...metadata ? { metadata } : {},
|
|
83
|
+
replacements: [...extractStageResult.replacements, ...collectStageResult.metadata.replacements],
|
|
84
|
+
sourceMap: collectStageResult.map
|
|
85
|
+
};
|
|
86
|
+
} catch (error) {
|
|
87
|
+
return yield* restartOnSupersede.call(this, error);
|
|
88
|
+
}
|
|
92
89
|
}
|
|
93
|
-
//# sourceMappingURL=workflow.js.map
|
|
90
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,mCAAmC;AAC5C,SAAS,iCAAiC;AAE1C,MAAM,sCACJ,eAEA,WAAW,gBAAgB,aAC3B,WAAW,KAAK,SAAS,cAAc;;;;;;AAOzC,OAAO,UAAU,WAEyB;CACxC,MAAM,EAAE,OAAO,YAAY,KAAK;CAChC,MAAM,EAAE,eAAe;AAEvB,KAAI,WAAW,SAAS;AACtB,SAAO;GACL,MAAM,WAAW,gBAAgB,QAAQ;GACzC,WAAW,QAAQ;GACpB;;AAGH,KAAI;AACF,SAAO,KAAK,QAAQ,qBAAqB,YAAY,WAAW,KAAK;AACrE,aAAW,qBAAqB;UACzB,GAAG;AACV,MAAI,UAAU,EAAE,IAAI,WAAW,gBAAgB;AAC7C,cAAW,IAAI,8CAA8C;AAC7D,UAAO,OAAO,KAAK,QACjB,YACA,WAAW,gBACX,WACA,KACD;;AAGH,QAAM;;CAGR,MAAM,eAAe,WAAW,gBAAgB,QAAQ;CAExD,UAAU,mBAER,OACwC;AACxC,MAAI,UAAU,MAAM,IAAI,WAAW,gBAAgB;AACjD,cAAW,IAAI,8CAA8C;AAC7D,UAAO,OAAO,KAAK,QACjB,YACA,WAAW,gBACX,WACA,KACD;;AAGH,QAAM;;;AAIR,KAAI,CAAC,WAAW,gBAAgB,EAAE;AAChC,MAAI,mCAAmC,WAAW,EAAE;;;AAGlD,SAAM,OAAO,eAAe,WAAW,KAAK;;AAG9C,SAAO;GACL,MAAM;GACN,WAAW,QAAQ;GACpB;;;AAKH,KAAI;EACF,MAAM,kBAAkB,OAAO,KAAK,QAClC,YACA,YACA,WACA,KACD;AACD,aAAW,qBAAqB;AAEhC,MAAI,oBAAoB,MAAM;AAC5B,UAAO;IACL,MAAM;IACN,WAAW,QAAQ;IACpB;;EAGH,MAAM,CAAC,YAAY,gBAAgB;;EAInC,MAAM,qBAAqB,OAAO,KAAK,QACrC,WACA,YACA,EACE,YACD,EACD,KACD;AACD,aAAW,qBAAqB;AAEhC,MAAI,CAAC,mBAAmB,UAAU;AAChC,OAAI,mCAAmC,WAAW,EAAE;AAClD,UAAM,OAAO,eAAe,WAAW,KAAK;;AAG9C,UAAO;IACL,MAAM,mBAAmB;IACzB,WAAW,mBAAmB;IAC/B;;EAGH,MAAM,WAAW,QAAQ,cAAc,iBACnC,0BAA0B,mBAAmB,UAAU,aAAa,GACpE;EACJ,MAAM,cAAc,4BAClB,WAAW,MACX,mBAAmB,SAAS,WAC7B;;EAID,MAAM,qBAAqB,OAAO,KAAK,QACrC,WACA,YACA,EACE,YAAY,mBAAmB,SAAS,YACzC,EACD,KACD;AACD,aAAW,qBAAqB;AAEhC,SAAO;GACL,GAAG;GACH,MAAM,mBAAmB,QAAQ;GACjC;GACA,GAAI,YAAY,SAAS,IAAI,EAAE,aAAa,GAAG,EAAE;GACjD,GAAI,WAAW,EAAE,UAAU,GAAG,EAAE;GAChC,cAAc,CACZ,GAAG,mBAAmB,cACtB,GAAG,mBAAmB,SAAS,aAChC;GACD,WAAW,mBAAmB;GAC/B;UACM,OAAO;AACd,SAAO,OAAO,mBAAmB,KAAK,MAAM,MAAM","names":[],"sources":["../../../src/transform/generators/workflow.ts"],"version":3,"sourcesContent":["import { isAborted } from '../actions/AbortError';\nimport type { IWorkflowAction, SyncScenarioForAction } from '../types';\nimport { collectTransformDiagnostics } from '../../utils/TransformDiagnostics';\nimport { toTransformResultMetadata } from '../../utils/TransformMetadata';\n\nconst isLoadedEntrypointWithoutArtifacts = (\n entrypoint: IWorkflowAction['entrypoint']\n) =>\n entrypoint.initialCode !== undefined &&\n entrypoint.only.includes('__wywPreval');\n\n/**\n * The entry point for file processing. Sequentially calls `processEntrypoint`,\n * `evalFile`, `collect`, and `extract`. Returns the result of transforming\n * the source code as well as all artifacts obtained from code execution.\n */\nexport function* workflow(\n this: IWorkflowAction\n): SyncScenarioForAction<IWorkflowAction> {\n const { cache, options } = this.services;\n const { entrypoint } = this;\n\n if (entrypoint.ignored) {\n return {\n code: entrypoint.loadedAndParsed.code ?? '',\n sourceMap: options.inputSourceMap,\n };\n }\n\n try {\n yield* this.getNext('processEntrypoint', entrypoint, undefined, null);\n entrypoint.assertNotSuperseded();\n } catch (e) {\n if (isAborted(e) && entrypoint.supersededWith) {\n entrypoint.log('workflow aborted, schedule the next attempt');\n return yield* this.getNext(\n 'workflow',\n entrypoint.supersededWith,\n undefined,\n null\n );\n }\n\n throw e;\n }\n\n const originalCode = entrypoint.loadedAndParsed.code ?? '';\n\n function* restartOnSupersede(\n this: IWorkflowAction,\n error: unknown\n ): SyncScenarioForAction<IWorkflowAction> {\n if (isAborted(error) && entrypoint.supersededWith) {\n entrypoint.log('workflow aborted, schedule the next attempt');\n return yield* this.getNext(\n 'workflow',\n entrypoint.supersededWith,\n undefined,\n null\n );\n }\n\n throw error;\n }\n\n // File is ignored or does not contain any tags. Return original code.\n if (!entrypoint.hasWywMetadata()) {\n if (isLoadedEntrypointWithoutArtifacts(entrypoint)) {\n // A root bundler pass for a plain dependency must not pin eval/cache state.\n // If another WyW file needs this module, it will be prepared on demand.\n cache.delete('entrypoints', entrypoint.name);\n }\n\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n // *** 2nd stage ***\n\n try {\n const evalStageResult = yield* this.getNext(\n 'evalFile',\n entrypoint,\n undefined,\n null\n );\n entrypoint.assertNotSuperseded();\n\n if (evalStageResult === null) {\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n const [valueCache, dependencies] = evalStageResult;\n\n // *** 3rd stage ***\n\n const collectStageResult = yield* this.getNext(\n 'collect',\n entrypoint,\n {\n valueCache,\n },\n null\n );\n entrypoint.assertNotSuperseded();\n\n if (!collectStageResult.metadata) {\n if (isLoadedEntrypointWithoutArtifacts(entrypoint)) {\n cache.delete('entrypoints', entrypoint.name);\n }\n\n return {\n code: collectStageResult.code!,\n sourceMap: collectStageResult.map,\n };\n }\n\n const metadata = options.pluginOptions.outputMetadata\n ? toTransformResultMetadata(collectStageResult.metadata, dependencies)\n : null;\n const diagnostics = collectTransformDiagnostics(\n entrypoint.name,\n collectStageResult.metadata.processors\n );\n\n // *** 4th stage\n\n const extractStageResult = yield* this.getNext(\n 'extract',\n entrypoint,\n {\n processors: collectStageResult.metadata.processors,\n },\n null\n );\n entrypoint.assertNotSuperseded();\n\n return {\n ...extractStageResult,\n code: collectStageResult.code ?? '',\n dependencies,\n ...(diagnostics.length > 0 ? { diagnostics } : {}),\n ...(metadata ? { metadata } : {}),\n replacements: [\n ...extractStageResult.replacements,\n ...collectStageResult.metadata.replacements,\n ],\n sourceMap: collectStageResult.map,\n };\n } catch (error) {\n return yield* restartOnSupersede.call(this, error);\n }\n}\n"],"file":"workflow.js"}
|
|
@@ -1,81 +1,190 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { existsSync } from "fs";
|
|
2
|
+
import { createRequire } from "module";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { cosmiconfigSync } from "cosmiconfig";
|
|
5
|
+
import { shaker } from "../../shaker.js";
|
|
6
|
+
const searchPlaces = [
|
|
7
|
+
`.wyw-in-jsrc`,
|
|
8
|
+
`.wyw-in-jsrc.json`,
|
|
9
|
+
`.wyw-in-jsrc.yaml`,
|
|
10
|
+
`.wyw-in-jsrc.yml`,
|
|
11
|
+
`.wyw-in-jsrc.mjs`,
|
|
12
|
+
`.wyw-in-jsrc.js`,
|
|
13
|
+
`.wyw-in-jsrc.cjs`,
|
|
14
|
+
`.config/wyw-in-jsrc`,
|
|
15
|
+
`.config/wyw-in-jsrc.json`,
|
|
16
|
+
`.config/wyw-in-jsrc.yaml`,
|
|
17
|
+
`.config/wyw-in-jsrc.yml`,
|
|
18
|
+
`.config/wyw-in-jsrc.mjs`,
|
|
19
|
+
`.config/wyw-in-jsrc.js`,
|
|
20
|
+
`.config/wyw-in-jsrc.cjs`,
|
|
21
|
+
`wyw-in-js.config.mjs`,
|
|
22
|
+
`wyw-in-js.config.js`,
|
|
23
|
+
`wyw-in-js.config.cjs`
|
|
24
|
+
];
|
|
25
|
+
const explorerSync = cosmiconfigSync("wyw-in-js", { searchPlaces: searchPlaces.filter((searchPlace) => !searchPlace.endsWith(".mjs")) });
|
|
7
26
|
const cache = new WeakMap();
|
|
8
27
|
const defaultOverrides = {};
|
|
9
28
|
const nodeModulesRegExp = /[\\/]node_modules[\\/]/;
|
|
29
|
+
const evalResolverModes = new Set([
|
|
30
|
+
"bundler",
|
|
31
|
+
"hybrid",
|
|
32
|
+
"native",
|
|
33
|
+
"custom"
|
|
34
|
+
]);
|
|
35
|
+
const evalStrategies = new Set([
|
|
36
|
+
"execute",
|
|
37
|
+
"hybrid",
|
|
38
|
+
"static"
|
|
39
|
+
]);
|
|
40
|
+
const evalRuntimes = new Set(["nodejs"]);
|
|
41
|
+
const evalErrorModes = new Set(["strict", "loose"]);
|
|
10
42
|
const defaultImportLoaders = {
|
|
11
|
-
|
|
12
|
-
|
|
43
|
+
raw: "raw",
|
|
44
|
+
url: "url"
|
|
45
|
+
};
|
|
46
|
+
const resolveConfigFilePath = (configFile) => path.isAbsolute(configFile) ? configFile : path.resolve(process.cwd(), configFile);
|
|
47
|
+
const normalizeLoadedConfig = (loadedConfig) => loadedConfig && typeof loadedConfig === "object" && "default" in loadedConfig ? loadedConfig.default : loadedConfig;
|
|
48
|
+
const loadMjsConfig = (configFile) => {
|
|
49
|
+
const resolvedConfigFile = resolveConfigFilePath(configFile);
|
|
50
|
+
const configRequire = createRequire(resolvedConfigFile);
|
|
51
|
+
try {
|
|
52
|
+
const cacheKey = configRequire.resolve(resolvedConfigFile);
|
|
53
|
+
delete configRequire.cache[cacheKey];
|
|
54
|
+
} catch {}
|
|
55
|
+
try {
|
|
56
|
+
return normalizeLoadedConfig(configRequire(resolvedConfigFile));
|
|
57
|
+
} catch (error) {
|
|
58
|
+
const code = error && typeof error === "object" && "code" in error ? error.code : undefined;
|
|
59
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
60
|
+
if (code === "ERR_REQUIRE_ASYNC_MODULE" || message.includes("require() async module") || message.includes("top-level await")) {
|
|
61
|
+
throw new Error(`[wyw-in-js] Failed to load ${resolvedConfigFile}. ` + "WyW config loading is synchronous, so .mjs config files must not use top-level await " + "or depend on async ESM modules. Remove top-level await or switch to a synchronous config.");
|
|
62
|
+
}
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const loadConfigFromFile = (configFile) => {
|
|
67
|
+
const resolvedConfigFile = resolveConfigFilePath(configFile);
|
|
68
|
+
if (path.extname(resolvedConfigFile) === ".mjs") {
|
|
69
|
+
return loadMjsConfig(resolvedConfigFile);
|
|
70
|
+
}
|
|
71
|
+
return explorerSync.load(resolvedConfigFile)?.config ?? {};
|
|
72
|
+
};
|
|
73
|
+
const searchConfig = () => {
|
|
74
|
+
let currentDir = process.cwd();
|
|
75
|
+
while (currentDir) {
|
|
76
|
+
for (const searchPlace of searchPlaces) {
|
|
77
|
+
const candidate = path.join(currentDir, searchPlace);
|
|
78
|
+
if (existsSync(candidate)) {
|
|
79
|
+
return loadConfigFromFile(candidate);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const parentDir = path.dirname(currentDir);
|
|
83
|
+
currentDir = parentDir === currentDir ? null : parentDir;
|
|
84
|
+
}
|
|
85
|
+
return {};
|
|
13
86
|
};
|
|
14
87
|
export function loadWywOptions(overrides = defaultOverrides) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
88
|
+
if (cache.has(overrides)) {
|
|
89
|
+
return cache.get(overrides);
|
|
90
|
+
}
|
|
91
|
+
const { configFile, ignore, rules, oxcOptions = {}, importLoaders: overridesImportLoaders, ...rest } = overrides;
|
|
92
|
+
const defaultFeatures = {
|
|
93
|
+
dangerousCodeRemover: true,
|
|
94
|
+
globalCache: true,
|
|
95
|
+
happyDOM: true,
|
|
96
|
+
softErrors: false,
|
|
97
|
+
useWeakRefInEval: true
|
|
98
|
+
};
|
|
99
|
+
const defaultEval = {
|
|
100
|
+
errors: "strict",
|
|
101
|
+
require: "warn-and-run",
|
|
102
|
+
resolver: "bundler",
|
|
103
|
+
runtime: "nodejs",
|
|
104
|
+
strategy: "hybrid"
|
|
105
|
+
};
|
|
106
|
+
const config = (() => {
|
|
107
|
+
if (configFile === false) {
|
|
108
|
+
return {};
|
|
109
|
+
}
|
|
110
|
+
if (configFile !== undefined) {
|
|
111
|
+
return loadConfigFromFile(configFile);
|
|
112
|
+
}
|
|
113
|
+
return searchConfig();
|
|
114
|
+
})();
|
|
115
|
+
const configImportLoaders = config.importLoaders;
|
|
116
|
+
const configFeatures = config.features;
|
|
117
|
+
const configEval = config.eval;
|
|
118
|
+
const options = {
|
|
119
|
+
displayName: false,
|
|
120
|
+
evalConsole: "pipe",
|
|
121
|
+
extensions: [
|
|
122
|
+
".cjs",
|
|
123
|
+
".cts",
|
|
124
|
+
".js",
|
|
125
|
+
".jsx",
|
|
126
|
+
".mjs",
|
|
127
|
+
".mts",
|
|
128
|
+
".ts",
|
|
129
|
+
".tsx"
|
|
130
|
+
],
|
|
131
|
+
outputMetadata: false,
|
|
132
|
+
rules: rules ?? [
|
|
133
|
+
{ action: shaker },
|
|
134
|
+
{
|
|
135
|
+
// The old `ignore` option is used as a default value for `ignore` rule.
|
|
136
|
+
test: ignore ?? nodeModulesRegExp,
|
|
137
|
+
action: "ignore"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
// Do not ignore ES-modules
|
|
141
|
+
test: (filename, code) => {
|
|
142
|
+
if (!nodeModulesRegExp.test(filename)) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
// If a file contains `export` or `import` keywords, we assume it's an ES-module
|
|
146
|
+
return /(?:^|\*\/|;|})\s*(?:export|import)[\s{]/m.test(code);
|
|
147
|
+
},
|
|
148
|
+
action: shaker
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
highPriorityPlugins: ["module-resolver"],
|
|
152
|
+
oxcOptions,
|
|
153
|
+
...config,
|
|
154
|
+
...rest,
|
|
155
|
+
eval: {
|
|
156
|
+
...defaultEval,
|
|
157
|
+
...configEval ?? {},
|
|
158
|
+
...rest.eval ?? {}
|
|
159
|
+
},
|
|
160
|
+
importLoaders: {
|
|
161
|
+
...defaultImportLoaders,
|
|
162
|
+
...configImportLoaders ?? {},
|
|
163
|
+
...overridesImportLoaders ?? {}
|
|
164
|
+
},
|
|
165
|
+
features: {
|
|
166
|
+
...defaultFeatures,
|
|
167
|
+
...configFeatures ?? {},
|
|
168
|
+
...rest.features
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
const evalResolver = options.eval?.resolver;
|
|
172
|
+
if (evalResolver && !evalResolverModes.has(evalResolver)) {
|
|
173
|
+
throw new Error(`[wyw-in-js] Unsupported eval.resolver "${evalResolver}". Use "bundler", "hybrid", "native", or "custom".`);
|
|
174
|
+
}
|
|
175
|
+
const evalStrategy = options.eval?.strategy;
|
|
176
|
+
if (evalStrategy && !evalStrategies.has(evalStrategy)) {
|
|
177
|
+
throw new Error(`[wyw-in-js] Unsupported eval.strategy "${evalStrategy}". Use "execute", "hybrid", or "static".`);
|
|
178
|
+
}
|
|
179
|
+
const evalRuntime = options.eval?.runtime;
|
|
180
|
+
if (evalRuntime && !evalRuntimes.has(evalRuntime)) {
|
|
181
|
+
throw new Error(`[wyw-in-js] Unsupported eval.runtime "${evalRuntime}". Use "nodejs".`);
|
|
182
|
+
}
|
|
183
|
+
const evalErrors = options.eval?.errors;
|
|
184
|
+
if (evalErrors && !evalErrorModes.has(evalErrors)) {
|
|
185
|
+
throw new Error(`[wyw-in-js] Unsupported eval.errors "${evalErrors}". Use "strict" or "loose".`);
|
|
186
|
+
}
|
|
187
|
+
cache.set(overrides, options);
|
|
188
|
+
return options;
|
|
80
189
|
}
|
|
81
|
-
//# sourceMappingURL=loadWywOptions.js.map
|
|
190
|
+
//# sourceMappingURL=loadWywOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadWywOptions.js","names":["cosmiconfigSync","shaker","searchPlaces","explorerSync","cache","WeakMap","defaultOverrides","nodeModulesRegExp","defaultImportLoaders","raw","url","loadWywOptions","overrides","has","get","configFile","ignore","rules","babelOptions","importLoaders","overridesImportLoaders","rest","result","undefined","load","search","defaultFeatures","dangerousCodeRemover","globalCache","happyDOM","softErrors","useBabelConfigs","useWeakRefInEval","config","configImportLoaders","configFeatures","features","options","displayName","evaluate","extensions","outputMetadata","action","test","filename","code","highPriorityPlugins","set"],"sources":["../../../src/transform/helpers/loadWywOptions.ts"],"sourcesContent":["import { cosmiconfigSync } from 'cosmiconfig';\n\nimport type {\n FeatureFlags,\n ImportLoaders,\n StrictOptions,\n} from '@wyw-in-js/shared';\n\nimport { shaker } from '../../shaker';\nimport type { PluginOptions } from '../../types';\n\nconst searchPlaces = [\n `.wyw-in-jsrc`,\n `.wyw-in-jsrc.json`,\n `.wyw-in-jsrc.yaml`,\n `.wyw-in-jsrc.yml`,\n `.wyw-in-jsrc.js`,\n `.wyw-in-jsrc.cjs`,\n `.config/wyw-in-jsrc`,\n `.config/wyw-in-jsrc.json`,\n `.config/wyw-in-jsrc.yaml`,\n `.config/wyw-in-jsrc.yml`,\n `.config/wyw-in-jsrc.js`,\n `.config/wyw-in-jsrc.cjs`,\n `wyw-in-js.config.js`,\n `wyw-in-js.config.cjs`,\n];\n\nconst explorerSync = cosmiconfigSync('wyw-in-js', { searchPlaces });\n\nexport type PartialOptions = Partial<Omit<PluginOptions, 'features'>> & {\n features?: Partial<FeatureFlags>;\n};\n\nconst cache = new WeakMap<Partial<PartialOptions>, StrictOptions>();\nconst defaultOverrides = {};\nconst nodeModulesRegExp = /[\\\\/]node_modules[\\\\/]/;\nconst defaultImportLoaders: ImportLoaders = {\n raw: 'raw',\n url: 'url',\n};\n\nexport function loadWywOptions(\n overrides: PartialOptions = defaultOverrides\n): StrictOptions {\n if (cache.has(overrides)) {\n return cache.get(overrides)!;\n }\n\n const {\n configFile,\n ignore,\n rules,\n babelOptions = {},\n importLoaders: overridesImportLoaders,\n ...rest\n } = overrides;\n\n const result =\n // eslint-disable-next-line no-nested-ternary\n configFile === false\n ? undefined\n : configFile !== undefined\n ? explorerSync.load(configFile)\n : explorerSync.search();\n\n const defaultFeatures: FeatureFlags = {\n dangerousCodeRemover: true,\n globalCache: true,\n happyDOM: true,\n softErrors: false,\n useBabelConfigs: true,\n useWeakRefInEval: true,\n };\n\n const config = (result?.config ?? {}) as Partial<StrictOptions>;\n const configImportLoaders = config.importLoaders;\n const configFeatures = config.features;\n\n const options: StrictOptions = {\n displayName: false,\n evaluate: true,\n extensions: ['.cjs', '.cts', '.js', '.jsx', '.mjs', '.mts', '.ts', '.tsx'],\n outputMetadata: false,\n rules: rules ?? [\n {\n action: shaker,\n },\n {\n // The old `ignore` option is used as a default value for `ignore` rule.\n test: ignore ?? nodeModulesRegExp,\n action: 'ignore',\n },\n {\n // Do not ignore ES-modules\n test: (filename, code) => {\n if (!nodeModulesRegExp.test(filename)) {\n return false;\n }\n\n // If a file contains `export` or `import` keywords, we assume it's an ES-module\n return /(?:^|\\*\\/|;|})\\s*(?:export|import)[\\s{]/m.test(code);\n },\n action: shaker,\n },\n ],\n babelOptions,\n highPriorityPlugins: ['module-resolver'],\n ...config,\n ...rest,\n importLoaders: {\n ...defaultImportLoaders,\n ...(configImportLoaders ?? {}),\n ...(overridesImportLoaders ?? {}),\n },\n features: {\n ...defaultFeatures,\n ...(configFeatures ?? {}),\n ...rest.features,\n },\n };\n\n cache.set(overrides, options);\n\n return options;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"mappings":"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","names":[],"sources":["../../../src/transform/helpers/loadWywOptions.ts"],"version":3,"sourcesContent":["import { existsSync } from 'fs';\nimport { createRequire } from 'module';\nimport path from 'path';\n\nimport { cosmiconfigSync } from 'cosmiconfig';\n\nimport type {\n EvalOptionsV2,\n FeatureFlags,\n ImportLoaders,\n StrictOptions,\n} from '@wyw-in-js/shared';\n\nimport { shaker } from '../../shaker';\nimport type { PluginOptions } from '../../types';\n\nconst searchPlaces = [\n `.wyw-in-jsrc`,\n `.wyw-in-jsrc.json`,\n `.wyw-in-jsrc.yaml`,\n `.wyw-in-jsrc.yml`,\n `.wyw-in-jsrc.mjs`,\n `.wyw-in-jsrc.js`,\n `.wyw-in-jsrc.cjs`,\n `.config/wyw-in-jsrc`,\n `.config/wyw-in-jsrc.json`,\n `.config/wyw-in-jsrc.yaml`,\n `.config/wyw-in-jsrc.yml`,\n `.config/wyw-in-jsrc.mjs`,\n `.config/wyw-in-jsrc.js`,\n `.config/wyw-in-jsrc.cjs`,\n `wyw-in-js.config.mjs`,\n `wyw-in-js.config.js`,\n `wyw-in-js.config.cjs`,\n];\n\nconst explorerSync = cosmiconfigSync('wyw-in-js', {\n searchPlaces: searchPlaces.filter(\n (searchPlace) => !searchPlace.endsWith('.mjs')\n ),\n});\n\nexport type PartialOptions = Partial<Omit<PluginOptions, 'features'>> & {\n features?: Partial<FeatureFlags>;\n};\n\nconst cache = new WeakMap<Partial<PartialOptions>, StrictOptions>();\nconst defaultOverrides = {};\nconst nodeModulesRegExp = /[\\\\/]node_modules[\\\\/]/;\nconst evalResolverModes = new Set(['bundler', 'hybrid', 'native', 'custom']);\nconst evalStrategies = new Set(['execute', 'hybrid', 'static']);\nconst evalRuntimes = new Set(['nodejs']);\nconst evalErrorModes = new Set(['strict', 'loose']);\nconst defaultImportLoaders: ImportLoaders = {\n raw: 'raw',\n url: 'url',\n};\nconst resolveConfigFilePath = (configFile: string): string =>\n path.isAbsolute(configFile)\n ? configFile\n : path.resolve(process.cwd(), configFile);\n\nconst normalizeLoadedConfig = (loadedConfig: unknown): Partial<StrictOptions> =>\n (loadedConfig && typeof loadedConfig === 'object' && 'default' in loadedConfig\n ? (loadedConfig as { default: unknown }).default\n : loadedConfig) as Partial<StrictOptions>;\n\nconst loadMjsConfig = (configFile: string): Partial<StrictOptions> => {\n const resolvedConfigFile = resolveConfigFilePath(configFile);\n const configRequire = createRequire(resolvedConfigFile);\n\n try {\n const cacheKey = configRequire.resolve(resolvedConfigFile);\n delete configRequire.cache[cacheKey];\n } catch {\n // Ignore cache cleanup failures and let the require call surface the real error.\n }\n\n try {\n return normalizeLoadedConfig(configRequire(resolvedConfigFile));\n } catch (error) {\n const code =\n error && typeof error === 'object' && 'code' in error\n ? (error as { code?: string }).code\n : undefined;\n const message = error instanceof Error ? error.message : String(error);\n\n if (\n code === 'ERR_REQUIRE_ASYNC_MODULE' ||\n message.includes('require() async module') ||\n message.includes('top-level await')\n ) {\n throw new Error(\n `[wyw-in-js] Failed to load ${resolvedConfigFile}. ` +\n 'WyW config loading is synchronous, so .mjs config files must not use top-level await ' +\n 'or depend on async ESM modules. Remove top-level await or switch to a synchronous config.'\n );\n }\n\n throw error;\n }\n};\n\nconst loadConfigFromFile = (configFile: string): Partial<StrictOptions> => {\n const resolvedConfigFile = resolveConfigFilePath(configFile);\n if (path.extname(resolvedConfigFile) === '.mjs') {\n return loadMjsConfig(resolvedConfigFile);\n }\n\n return (explorerSync.load(resolvedConfigFile)?.config ??\n {}) as Partial<StrictOptions>;\n};\n\nconst searchConfig = (): Partial<StrictOptions> => {\n let currentDir: string | null = process.cwd();\n\n while (currentDir) {\n for (const searchPlace of searchPlaces) {\n const candidate = path.join(currentDir, searchPlace);\n if (existsSync(candidate)) {\n return loadConfigFromFile(candidate);\n }\n }\n\n const parentDir = path.dirname(currentDir);\n currentDir = parentDir === currentDir ? null : parentDir;\n }\n\n return {};\n};\n\nexport function loadWywOptions(\n overrides: PartialOptions = defaultOverrides\n): StrictOptions {\n if (cache.has(overrides)) {\n return cache.get(overrides)!;\n }\n\n const {\n configFile,\n ignore,\n rules,\n oxcOptions = {},\n importLoaders: overridesImportLoaders,\n ...rest\n } = overrides;\n\n const defaultFeatures = {\n dangerousCodeRemover: true,\n globalCache: true,\n happyDOM: true,\n softErrors: false,\n useWeakRefInEval: true,\n } satisfies FeatureFlags;\n const defaultEval: EvalOptionsV2 = {\n errors: 'strict',\n require: 'warn-and-run',\n resolver: 'bundler',\n runtime: 'nodejs',\n strategy: 'hybrid',\n };\n\n const config = (() => {\n if (configFile === false) {\n return {};\n }\n\n if (configFile !== undefined) {\n return loadConfigFromFile(configFile);\n }\n\n return searchConfig();\n })();\n const configImportLoaders = config.importLoaders;\n const configFeatures = config.features;\n const configEval = config.eval;\n\n const options: StrictOptions = {\n displayName: false,\n evalConsole: 'pipe',\n extensions: ['.cjs', '.cts', '.js', '.jsx', '.mjs', '.mts', '.ts', '.tsx'],\n outputMetadata: false,\n rules: rules ?? [\n {\n action: shaker,\n },\n {\n // The old `ignore` option is used as a default value for `ignore` rule.\n test: ignore ?? nodeModulesRegExp,\n action: 'ignore',\n },\n {\n // Do not ignore ES-modules\n test: (filename, code) => {\n if (!nodeModulesRegExp.test(filename)) {\n return false;\n }\n\n // If a file contains `export` or `import` keywords, we assume it's an ES-module\n return /(?:^|\\*\\/|;|})\\s*(?:export|import)[\\s{]/m.test(code);\n },\n action: shaker,\n },\n ],\n highPriorityPlugins: ['module-resolver'],\n oxcOptions,\n ...config,\n ...rest,\n eval: {\n ...defaultEval,\n ...(configEval ?? {}),\n ...(rest.eval ?? {}),\n },\n importLoaders: {\n ...defaultImportLoaders,\n ...(configImportLoaders ?? {}),\n ...(overridesImportLoaders ?? {}),\n },\n features: {\n ...defaultFeatures,\n ...(configFeatures ?? {}),\n ...rest.features,\n },\n };\n\n const evalResolver = options.eval?.resolver;\n if (evalResolver && !evalResolverModes.has(evalResolver)) {\n throw new Error(\n `[wyw-in-js] Unsupported eval.resolver \"${evalResolver}\". Use \"bundler\", \"hybrid\", \"native\", or \"custom\".`\n );\n }\n const evalStrategy = options.eval?.strategy;\n if (evalStrategy && !evalStrategies.has(evalStrategy)) {\n throw new Error(\n `[wyw-in-js] Unsupported eval.strategy \"${evalStrategy}\". Use \"execute\", \"hybrid\", or \"static\".`\n );\n }\n const evalRuntime = options.eval?.runtime;\n if (evalRuntime && !evalRuntimes.has(evalRuntime)) {\n throw new Error(\n `[wyw-in-js] Unsupported eval.runtime \"${evalRuntime}\". Use \"nodejs\".`\n );\n }\n const evalErrors = options.eval?.errors;\n if (evalErrors && !evalErrorModes.has(evalErrors)) {\n throw new Error(\n `[wyw-in-js] Unsupported eval.errors \"${evalErrors}\". Use \"strict\" or \"loose\".`\n );\n }\n\n cache.set(overrides, options);\n\n return options;\n}\n"],"file":"loadWywOptions.js"}
|