@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":"createStylisPreprocessor.js","names":["path","compile","middleware","prefixer","serialize","stringify","tokenize","COMMENT","RULESET","KEYFRAMES","DECLARATION","POSIX_SEP","posix","sep","transformUrl","url","outputFilename","sourceFilename","platformPath","relative","dirname","resolve","split","join","DEFINED_KEYFRAMES","Symbol","ORIGINAL_KEYFRAME_NAME","ORIGINAL_VALUE_KEY","IS_GLOBAL_KEYFRAMES","getOriginalElementValue","element","value","throwIfNotProd","key","type","process","env","NODE_ENV","Error","JSON","childrenIsString","children","propsAreStrings","props","Array","isArray","propsIsString","isDeclaration","isKeyframes","isRuleset","nonMediaParent","parent","stylisGlobalPlugin","getGlobalSelectorModifiers","el","parentValue","length","includes","match","baseSelector","spaceDelimiter","includeBaseSelector","includeSpaceDelimiter","Object","assign","map","cssSelector","tokens","selector","i","len","token","slice","createStylisUrlReplacePlugin","filename","return","replace","_match","p1","_p2","p3","p4","createKeyframeSuffixerPlugin","prefixes","getPrefixedProp","prop","prefix","buildPropsRegexp","isAtRule","at","colon","RegExp","animationNameRegexp","getReplacer","startsWith","searchValue","replacer","input","fullMatch","undefined","rest","elementToKeyframeSuffix","replaceAll","animationPropsSet","Set","getDefinedKeyframes","keyframes","sibling","siblings","add","name","suffix","replaceFn","globalMatch","scopedMatch","originalName","isGlobal","keys","has","scopedKeyframes","patch","fromEntries","result","globalName","substring","isMiddleware","obj","displayKeywordRegexp","knownMultiKeywordDisplayTokens","normalizeMultiKeywordDisplayValue","trimmed","trim","test","importantRegexp","hasImportant","withoutImportant","filter","Boolean","normalizedTokens","toLowerCase","every","tokenSet","hasInline","hasBlock","outside","insideCandidates","candidate","inside","hasListItem","canCanonicalize","canonicalOutside","canonicalInside","canonical","innerDisplay","reordered","createStylisDisplayNormalizationPlugin","normalized","decl","createStylisStringifier","keepComments","keepAllComments","keepCommentsFilter","index","callback","commentValue","lastIndex","createStylisPreprocessor","options","stringifier","stylisPreprocess","text","compiled"],"sources":["../../../src/transform/generators/createStylisPreprocessor.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport * as path from 'path';\nimport {\n compile,\n middleware,\n prefixer,\n serialize,\n stringify,\n tokenize,\n COMMENT,\n RULESET,\n KEYFRAMES,\n DECLARATION,\n} from 'stylis';\nimport type { Middleware, Element } from 'stylis';\n\nimport type { Options } from '../../types';\n\nconst POSIX_SEP = path.posix.sep;\n\nexport function transformUrl(\n url: string,\n outputFilename: string,\n sourceFilename: string,\n platformPath: typeof path = path\n) {\n // Replace asset path with new path relative to the output CSS\n const relative = platformPath.relative(\n platformPath.dirname(outputFilename),\n // Get the absolute path to the asset from the path relative to the JS file\n platformPath.resolve(platformPath.dirname(sourceFilename), url)\n );\n\n if (platformPath.sep === POSIX_SEP) {\n return relative;\n }\n\n return relative.split(platformPath.sep).join(POSIX_SEP);\n}\n\ninterface IGlobalSelectorModifiers {\n includeBaseSelector: boolean;\n includeSpaceDelimiter: boolean;\n}\n\nconst DEFINED_KEYFRAMES = Symbol('definedKeyframes');\nconst ORIGINAL_KEYFRAME_NAME = Symbol('originalKeyframeName');\nconst ORIGINAL_VALUE_KEY = Symbol('originalValue');\nconst IS_GLOBAL_KEYFRAMES = Symbol('isGlobalKeyframes');\n\nconst getOriginalElementValue = (\n element: (Element & { [ORIGINAL_VALUE_KEY]?: string }) | null\n) => {\n return element ? element[ORIGINAL_VALUE_KEY] ?? element.value : '';\n};\n\nfunction throwIfNotProd(key: string, value: unknown, type: string): false {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `\"element.${key}\" has type \"${type}\" (${JSON.stringify(\n value,\n null,\n 2\n )}), it's not expected. Please report a bug if it happens.`\n );\n }\n\n return false;\n}\n\ntype SpecificElement<TFields> = Omit<Element, keyof TFields> & TFields;\ntype Declaration = SpecificElement<{\n children: string;\n props: string;\n type: typeof DECLARATION;\n}>;\ntype Keyframes = SpecificElement<{\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n props: string[];\n type: typeof KEYFRAMES;\n}>;\ntype Ruleset = SpecificElement<{\n props: string[];\n type: typeof RULESET;\n}>;\n\nfunction childrenIsString(children: string | Element[]): children is string {\n return (\n typeof children === 'string' ||\n throwIfNotProd('children', children, 'Element[]')\n );\n}\n\nfunction propsAreStrings(props: string | string[]): props is string[] {\n return Array.isArray(props) || throwIfNotProd('props', props, 'string');\n}\n\nfunction propsIsString(props: string | string[]): props is string {\n return (\n typeof props === 'string' || throwIfNotProd('props', props, 'string[]')\n );\n}\n\nconst isDeclaration = (element: Element): element is Declaration => {\n return (\n element.type === DECLARATION &&\n propsIsString(element.props) &&\n childrenIsString(element.children)\n );\n};\n\nconst isKeyframes = (element: Element): element is Keyframes => {\n return element.type === KEYFRAMES && propsAreStrings(element.props);\n};\n\nconst isRuleset = (element: Element): element is Ruleset => {\n return element.type === RULESET && propsAreStrings(element.props);\n};\n\nfunction nonMediaParent(element: Element): Element | null {\n let { parent } = element;\n\n while (parent) {\n if (parent.type !== '@media') {\n return parent;\n }\n\n parent = parent.parent;\n }\n\n return null;\n}\n\n/**\n * Stylis plugin that mimics :global() selector behavior from Stylis v3.\n */\nexport const stylisGlobalPlugin: Middleware = (element) => {\n function getGlobalSelectorModifiers(el: Element): IGlobalSelectorModifiers {\n const parent = nonMediaParent(el);\n\n const value = getOriginalElementValue(el);\n const parentValue = getOriginalElementValue(parent);\n\n if (\n (parent?.children.length === 0 && parentValue.includes(':global(')) ||\n (parent && !value.includes(':global('))\n ) {\n return getGlobalSelectorModifiers(parent);\n }\n\n const match = value.match(/(&\\f( )?)?:global\\(/);\n\n if (match === null) {\n throw new Error(\n `Failed to match :global() selector in \"${value}\". Please report a bug if it happens.`\n );\n }\n\n const [, baseSelector, spaceDelimiter] = match;\n\n return {\n includeBaseSelector: !!baseSelector,\n includeSpaceDelimiter: !!spaceDelimiter,\n };\n }\n\n if (!isRuleset(element)) {\n return;\n }\n\n Object.assign(element, {\n props: element.props.map((cssSelector) => {\n // The value can be changed by other middlewares, but we need an original one with `&`\n Object.assign(element, { [ORIGINAL_VALUE_KEY]: element.value });\n\n // Avoids calling tokenize() on every string\n if (!cssSelector.includes(':global(')) {\n return cssSelector;\n }\n\n if (element.children.length === 0) {\n return cssSelector;\n }\n\n const { includeBaseSelector, includeSpaceDelimiter } =\n getGlobalSelectorModifiers(element);\n\n const tokens = tokenize(cssSelector);\n let selector = '';\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n\n //\n // Match for \":global(\"\n if (token === ':' && tokens[i + 1] === 'global') {\n //\n // Match for \":global()\"\n if (tokens[i + 2] === '()') {\n selector = [\n ...tokens.slice(i + 4),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n\n //\n // Match for \":global(selector)\"\n selector = [\n tokens[i + 2].slice(1, -1),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n }\n\n return selector;\n }),\n });\n};\n\nexport function createStylisUrlReplacePlugin(\n filename: string,\n outputFilename: string | undefined\n): Middleware {\n return (element) => {\n if (element.type === 'decl' && outputFilename) {\n // When writing to a file, we need to adjust the relative paths inside url(..) expressions.\n // It'll allow css-loader to resolve an imported asset properly.\n // eslint-disable-next-line no-param-reassign\n element.return = element.value.replace(\n /\\b(url\\(([\"']?))(\\.[^)]+?)(\\2\\))/g,\n (_match, p1, _p2, p3, p4) =>\n p1 + transformUrl(p3, outputFilename, filename) + p4\n );\n }\n };\n}\n\nexport function createKeyframeSuffixerPlugin(): Middleware {\n const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map((i) =>\n i ? `-${i}-` : ''\n );\n\n const getPrefixedProp = (prop: string): string[] =>\n prefixes.map((prefix) => `${prefix}${prop}`);\n\n const buildPropsRegexp = (prop: string, isAtRule: boolean) => {\n const [at, colon] = isAtRule ? ['@', ''] : ['', ':'];\n return new RegExp(\n `^(${at}(?:${getPrefixedProp(prop).join('|')})${colon})\\\\s*`\n );\n };\n\n const animationNameRegexp = /:global\\(([\\w_-]+)\\)|([\\w_-]+)/;\n\n const getReplacer = (\n startsWith: RegExp,\n searchValue: RegExp,\n replacer: (substring: string, ...matches: string[]) => string\n ): ((input: string) => string) => {\n return (input) => {\n const [fullMatch] = input.match(startsWith) ?? [];\n if (fullMatch === undefined) {\n return input;\n }\n\n const rest = input.slice(fullMatch.length);\n return fullMatch + rest.replace(searchValue, replacer);\n };\n };\n\n const elementToKeyframeSuffix = (el: Element): string => {\n if (el.parent) {\n return elementToKeyframeSuffix(el.parent);\n }\n\n return el.value.replaceAll(/[^a-zA-Z0-9_-]/g, '');\n };\n\n const animationPropsSet = new Set([\n ...getPrefixedProp('animation'),\n ...getPrefixedProp('animation-name'),\n ]);\n\n const getDefinedKeyframes = (\n element: Element & {\n [DEFINED_KEYFRAMES]?: Set<string>;\n siblings?: (Element & {\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n [ORIGINAL_KEYFRAME_NAME]?: string;\n })[];\n }\n ): Set<string> => {\n if (element[DEFINED_KEYFRAMES]) {\n return element[DEFINED_KEYFRAMES];\n }\n\n if (element.parent) {\n return getDefinedKeyframes(element.parent);\n }\n\n const keyframes = new Set<string>();\n for (const sibling of element.siblings ?? []) {\n if (sibling[ORIGINAL_KEYFRAME_NAME]) {\n keyframes.add(sibling[ORIGINAL_KEYFRAME_NAME]);\n continue;\n }\n\n const name = sibling.props[0];\n if (\n !isKeyframes(sibling) ||\n sibling[IS_GLOBAL_KEYFRAMES] === true ||\n name?.startsWith(':global(')\n ) {\n continue;\n }\n\n keyframes.add(sibling.props[0]);\n }\n\n Object.assign(element, { [DEFINED_KEYFRAMES]: keyframes });\n\n return keyframes;\n };\n\n return (element) => {\n if (isKeyframes(element) && element.parent) {\n const suffix = elementToKeyframeSuffix(element);\n\n const replaceFn = (\n _match: string,\n globalMatch: string,\n scopedMatch: string\n ): string => globalMatch || `${scopedMatch}-${suffix}`;\n\n const originalName = element.props[0];\n const isGlobal = originalName?.startsWith(':global(') ?? false;\n\n Object.assign(element, {\n [ORIGINAL_KEYFRAME_NAME]: isGlobal ? undefined : originalName,\n [IS_GLOBAL_KEYFRAMES]: isGlobal,\n props: element.props.map(\n getReplacer(/^\\s*/, animationNameRegexp, replaceFn)\n ),\n value: getReplacer(\n buildPropsRegexp('keyframes', true),\n animationNameRegexp,\n replaceFn\n )(element.value),\n });\n\n return;\n }\n\n if (isDeclaration(element)) {\n const suffix = elementToKeyframeSuffix(element);\n const keys = [\n 'children',\n 'return',\n 'value',\n ] satisfies (keyof Declaration)[];\n\n if (animationPropsSet.has(element.props)) {\n const scopedKeyframes = getDefinedKeyframes(element);\n const patch = Object.fromEntries(\n keys.map((key) => {\n const tokens = tokenize(element[key]);\n let result = '';\n for (let i = 0; i < tokens.length; i += 1) {\n if (\n tokens[i] === ':' &&\n tokens[i + 1] === 'global' &&\n tokens[i + 2].startsWith('(')\n ) {\n const globalName = tokens[i + 2].substring(\n 1,\n tokens[i + 2].length - 1\n );\n i += 2;\n\n result += globalName;\n if (tokens[i + 1] !== ';') {\n result += ' ';\n }\n continue;\n }\n\n if (scopedKeyframes.has(tokens[i])) {\n result += `${tokens[i]}-${suffix}`;\n continue;\n }\n\n result += tokens[i];\n }\n\n return [key, result];\n })\n );\n\n Object.assign(element, patch);\n }\n }\n };\n}\n\nconst isMiddleware = (obj: Middleware | null): obj is Middleware =>\n obj !== null;\n\nconst displayKeywordRegexp = /^[a-z-]+$/;\nconst knownMultiKeywordDisplayTokens = new Set([\n 'block',\n 'inline',\n 'flow',\n 'flow-root',\n 'flex',\n 'grid',\n 'table',\n 'list-item',\n]);\n\nfunction normalizeMultiKeywordDisplayValue(value: string): string | null {\n const trimmed = value.trim();\n if (trimmed === '' || !/\\s/.test(trimmed)) {\n return null;\n }\n\n const importantRegexp = /!\\s*important\\s*$/i;\n const hasImportant = importantRegexp.test(trimmed);\n const withoutImportant = trimmed.replace(importantRegexp, '').trim();\n\n const tokens = withoutImportant.split(/\\s+/).filter(Boolean);\n if (tokens.length < 2) {\n return null;\n }\n\n const normalizedTokens = tokens.map((token) => token.toLowerCase());\n if (!normalizedTokens.every((token) => displayKeywordRegexp.test(token))) {\n return null;\n }\n\n const tokenSet = new Set(normalizedTokens);\n const hasInline = tokenSet.has('inline');\n const hasBlock = tokenSet.has('block');\n if (hasInline && hasBlock) {\n return null;\n }\n\n let outside: 'block' | 'inline' | null = null;\n if (hasInline) {\n outside = 'inline';\n } else if (hasBlock) {\n outside = 'block';\n }\n\n const insideCandidates = [\n 'flow-root',\n 'flow',\n 'flex',\n 'grid',\n 'table',\n ].filter((candidate) => tokenSet.has(candidate));\n if (insideCandidates.length > 1) {\n return null;\n }\n\n const inside = insideCandidates[0] ?? null;\n const hasListItem = tokenSet.has('list-item');\n\n const canCanonicalize = normalizedTokens.every((token) =>\n knownMultiKeywordDisplayTokens.has(token)\n );\n\n if (canCanonicalize) {\n const canonicalOutside = outside ?? 'block';\n const canonicalInside = inside ?? (hasListItem ? 'flow' : null);\n if (canonicalInside) {\n let canonical: string | null = null;\n if (hasListItem) {\n if (canonicalInside === 'flow' && canonicalOutside === 'block') {\n canonical = 'list-item';\n }\n } else {\n switch (canonicalInside) {\n case 'flex':\n canonical = canonicalOutside === 'inline' ? 'inline-flex' : 'flex';\n break;\n case 'grid':\n canonical = canonicalOutside === 'inline' ? 'inline-grid' : 'grid';\n break;\n case 'table':\n canonical =\n canonicalOutside === 'inline' ? 'inline-table' : 'table';\n break;\n case 'flow-root':\n canonical = canonicalOutside === 'block' ? 'flow-root' : null;\n break;\n case 'flow':\n canonical = canonicalOutside === 'inline' ? 'inline' : 'block';\n break;\n default:\n break;\n }\n }\n\n if (canonical) {\n return hasImportant ? `${canonical}!important` : canonical;\n }\n }\n }\n\n const innerDisplay = inside === 'flex' || inside === 'grid' ? inside : null;\n if (\n innerDisplay &&\n normalizedTokens[0] === innerDisplay &&\n normalizedTokens.length > 1\n ) {\n const reordered = [\n ...(outside ? [outside] : []),\n ...normalizedTokens.filter(\n (token) => token !== innerDisplay && token !== outside\n ),\n innerDisplay,\n ].join(' ');\n\n return hasImportant ? `${reordered}!important` : reordered;\n }\n\n return null;\n}\n\nfunction createStylisDisplayNormalizationPlugin(): Middleware {\n return (element) => {\n if (!isDeclaration(element) || element.props !== 'display') {\n return;\n }\n\n const normalized = normalizeMultiKeywordDisplayValue(element.children);\n if (!normalized) {\n return;\n }\n\n const decl = `display:${normalized};`;\n Object.assign(element, {\n children: normalized,\n value: decl,\n });\n };\n}\n\nfunction createStylisStringifier(\n keepComments: boolean | RegExp | undefined\n): Middleware {\n if (!keepComments) {\n return stringify;\n }\n\n const keepAllComments = keepComments === true;\n const keepCommentsFilter =\n keepComments instanceof RegExp ? keepComments : null;\n\n return (element, index, children, callback) => {\n if (element.type === COMMENT) {\n if (!keepAllComments && keepCommentsFilter) {\n const commentValue =\n typeof element.children === 'string'\n ? element.children\n : element.value;\n keepCommentsFilter.lastIndex = 0;\n if (!keepCommentsFilter.test(commentValue)) {\n return '';\n }\n }\n return element.value;\n }\n\n return stringify(element, index, children, callback);\n };\n}\n\nexport function createStylisPreprocessor(\n options: Options & { prefixer?: boolean }\n) {\n const stringifier = createStylisStringifier(options.keepComments);\n\n function stylisPreprocess(selector: string, text: string): string {\n const compiled = compile(`${selector} {${text}}\\n`);\n\n return serialize(\n compiled,\n middleware(\n [\n createStylisUrlReplacePlugin(\n options.filename,\n options.outputFilename\n ),\n stylisGlobalPlugin,\n options.prefixer === false\n ? null\n : createStylisDisplayNormalizationPlugin(),\n options.prefixer === false ? null : prefixer,\n createKeyframeSuffixerPlugin(),\n stringifier,\n ].filter(isMiddleware)\n )\n );\n }\n\n return stylisPreprocess;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"mappings":"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","names":[],"sources":["../../../src/transform/generators/createStylisPreprocessor.ts"],"version":3,"sourcesContent":["/* eslint-disable no-continue */\nimport * as path from 'path';\nimport {\n compile,\n middleware,\n prefixer,\n serialize,\n stringify,\n tokenize,\n COMMENT,\n RULESET,\n KEYFRAMES,\n DECLARATION,\n} from 'stylis';\nimport type { Middleware, Element } from 'stylis';\n\nimport type { Options } from '../../types';\n\nconst POSIX_SEP = path.posix.sep;\n\nexport function transformUrl(\n url: string,\n outputFilename: string,\n sourceFilename: string,\n platformPath: typeof path = path\n) {\n // Replace asset path with new path relative to the output CSS\n const relative = platformPath.relative(\n platformPath.dirname(outputFilename),\n // Get the absolute path to the asset from the path relative to the JS file\n platformPath.resolve(platformPath.dirname(sourceFilename), url)\n );\n\n if (platformPath.sep === POSIX_SEP) {\n return relative;\n }\n\n return relative.split(platformPath.sep).join(POSIX_SEP);\n}\n\ninterface IGlobalSelectorModifiers {\n includeBaseSelector: boolean;\n includeSpaceDelimiter: boolean;\n}\n\nconst DEFINED_KEYFRAMES = Symbol('definedKeyframes');\nconst ORIGINAL_KEYFRAME_NAME = Symbol('originalKeyframeName');\nconst ORIGINAL_VALUE_KEY = Symbol('originalValue');\nconst IS_GLOBAL_KEYFRAMES = Symbol('isGlobalKeyframes');\n\nconst getOriginalElementValue = (\n element: (Element & { [ORIGINAL_VALUE_KEY]?: string }) | null\n) => {\n return element ? element[ORIGINAL_VALUE_KEY] ?? element.value : '';\n};\n\nfunction throwIfNotProd(key: string, value: unknown, type: string): false {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `\"element.${key}\" has type \"${type}\" (${JSON.stringify(\n value,\n null,\n 2\n )}), it's not expected. Please report a bug if it happens.`\n );\n }\n\n return false;\n}\n\ntype SpecificElement<TFields> = Omit<Element, keyof TFields> & TFields;\ntype Declaration = SpecificElement<{\n children: string;\n props: string;\n type: typeof DECLARATION;\n}>;\ntype Keyframes = SpecificElement<{\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n props: string[];\n type: typeof KEYFRAMES;\n}>;\ntype Ruleset = SpecificElement<{\n props: string[];\n type: typeof RULESET;\n}>;\n\nfunction childrenIsString(children: string | Element[]): children is string {\n return (\n typeof children === 'string' ||\n throwIfNotProd('children', children, 'Element[]')\n );\n}\n\nfunction propsAreStrings(props: string | string[]): props is string[] {\n return Array.isArray(props) || throwIfNotProd('props', props, 'string');\n}\n\nfunction propsIsString(props: string | string[]): props is string {\n return (\n typeof props === 'string' || throwIfNotProd('props', props, 'string[]')\n );\n}\n\nconst isDeclaration = (element: Element): element is Declaration => {\n return (\n element.type === DECLARATION &&\n propsIsString(element.props) &&\n childrenIsString(element.children)\n );\n};\n\nconst isKeyframes = (element: Element): element is Keyframes => {\n return element.type === KEYFRAMES && propsAreStrings(element.props);\n};\n\nconst isRuleset = (element: Element): element is Ruleset => {\n return element.type === RULESET && propsAreStrings(element.props);\n};\n\nfunction nonMediaParent(element: Element): Element | null {\n let { parent } = element;\n\n while (parent) {\n if (parent.type !== '@media') {\n return parent;\n }\n\n parent = parent.parent;\n }\n\n return null;\n}\n\n/**\n * Stylis plugin that mimics :global() selector behavior from Stylis v3.\n */\nexport const stylisGlobalPlugin: Middleware = (element) => {\n function getGlobalSelectorModifiers(el: Element): IGlobalSelectorModifiers {\n const parent = nonMediaParent(el);\n\n const value = getOriginalElementValue(el);\n const parentValue = getOriginalElementValue(parent);\n\n if (\n (parent?.children.length === 0 && parentValue.includes(':global(')) ||\n (parent && !value.includes(':global('))\n ) {\n return getGlobalSelectorModifiers(parent);\n }\n\n const match = value.match(/(&\\f( )?)?:global\\(/);\n\n if (match === null) {\n throw new Error(\n `Failed to match :global() selector in \"${value}\". Please report a bug if it happens.`\n );\n }\n\n const [, baseSelector, spaceDelimiter] = match;\n\n return {\n includeBaseSelector: !!baseSelector,\n includeSpaceDelimiter: !!spaceDelimiter,\n };\n }\n\n if (!isRuleset(element)) {\n return;\n }\n\n Object.assign(element, {\n props: element.props.map((cssSelector) => {\n // The value can be changed by other middlewares, but we need an original one with `&`\n Object.assign(element, { [ORIGINAL_VALUE_KEY]: element.value });\n\n // Avoids calling tokenize() on every string\n if (!cssSelector.includes(':global(')) {\n return cssSelector;\n }\n\n if (element.children.length === 0) {\n return cssSelector;\n }\n\n const { includeBaseSelector, includeSpaceDelimiter } =\n getGlobalSelectorModifiers(element);\n\n const tokens = tokenize(cssSelector);\n let selector = '';\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n\n //\n // Match for \":global(\"\n if (token === ':' && tokens[i + 1] === 'global') {\n //\n // Match for \":global()\"\n if (tokens[i + 2] === '()') {\n selector = [\n ...tokens.slice(i + 4),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n\n //\n // Match for \":global(selector)\"\n selector = [\n tokens[i + 2].slice(1, -1),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n }\n\n return selector;\n }),\n });\n};\n\nexport function createStylisUrlReplacePlugin(\n filename: string,\n outputFilename: string | undefined\n): Middleware {\n return (element) => {\n if (element.type === 'decl' && outputFilename) {\n // When writing to a file, we need to adjust the relative paths inside url(..) expressions.\n // It'll allow css-loader to resolve an imported asset properly.\n // eslint-disable-next-line no-param-reassign\n element.return = element.value.replace(\n /\\b(url\\(([\"']?))(\\.[^)]+?)(\\2\\))/g,\n (_match, p1, _p2, p3, p4) =>\n p1 + transformUrl(p3, outputFilename, filename) + p4\n );\n }\n };\n}\n\nexport function createKeyframeSuffixerPlugin(): Middleware {\n const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map((i) =>\n i ? `-${i}-` : ''\n );\n\n const getPrefixedProp = (prop: string): string[] =>\n prefixes.map((prefix) => `${prefix}${prop}`);\n\n const buildPropsRegexp = (prop: string, isAtRule: boolean) => {\n const [at, colon] = isAtRule ? ['@', ''] : ['', ':'];\n return new RegExp(\n `^(${at}(?:${getPrefixedProp(prop).join('|')})${colon})\\\\s*`\n );\n };\n\n const animationNameRegexp = /:global\\(([\\w_-]+)\\)|([\\w_-]+)/;\n\n const getReplacer = (\n startsWith: RegExp,\n searchValue: RegExp,\n replacer: (substring: string, ...matches: string[]) => string\n ): ((input: string) => string) => {\n return (input) => {\n const [fullMatch] = input.match(startsWith) ?? [];\n if (fullMatch === undefined) {\n return input;\n }\n\n const rest = input.slice(fullMatch.length);\n return fullMatch + rest.replace(searchValue, replacer);\n };\n };\n\n const elementToKeyframeSuffix = (el: Element): string => {\n if (el.parent) {\n return elementToKeyframeSuffix(el.parent);\n }\n\n return el.value.replaceAll(/[^a-zA-Z0-9_-]/g, '');\n };\n\n const animationPropsSet = new Set([\n ...getPrefixedProp('animation'),\n ...getPrefixedProp('animation-name'),\n ]);\n\n const getDefinedKeyframes = (\n element: Element & {\n [DEFINED_KEYFRAMES]?: Set<string>;\n siblings?: (Element & {\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n [ORIGINAL_KEYFRAME_NAME]?: string;\n })[];\n }\n ): Set<string> => {\n if (element[DEFINED_KEYFRAMES]) {\n return element[DEFINED_KEYFRAMES];\n }\n\n if (element.parent) {\n return getDefinedKeyframes(element.parent);\n }\n\n const keyframes = new Set<string>();\n for (const sibling of element.siblings ?? []) {\n if (sibling[ORIGINAL_KEYFRAME_NAME]) {\n keyframes.add(sibling[ORIGINAL_KEYFRAME_NAME]);\n continue;\n }\n\n const name = sibling.props[0];\n if (\n !isKeyframes(sibling) ||\n sibling[IS_GLOBAL_KEYFRAMES] === true ||\n name?.startsWith(':global(')\n ) {\n continue;\n }\n\n keyframes.add(sibling.props[0]);\n }\n\n Object.assign(element, { [DEFINED_KEYFRAMES]: keyframes });\n\n return keyframes;\n };\n\n return (element) => {\n if (isKeyframes(element) && element.parent) {\n const suffix = elementToKeyframeSuffix(element);\n\n const replaceFn = (\n _match: string,\n globalMatch: string,\n scopedMatch: string\n ): string => globalMatch || `${scopedMatch}-${suffix}`;\n\n const originalName = element.props[0];\n const isGlobal = originalName?.startsWith(':global(') ?? false;\n\n Object.assign(element, {\n [ORIGINAL_KEYFRAME_NAME]: isGlobal ? undefined : originalName,\n [IS_GLOBAL_KEYFRAMES]: isGlobal,\n props: element.props.map(\n getReplacer(/^\\s*/, animationNameRegexp, replaceFn)\n ),\n value: getReplacer(\n buildPropsRegexp('keyframes', true),\n animationNameRegexp,\n replaceFn\n )(element.value),\n });\n\n return;\n }\n\n if (isDeclaration(element)) {\n const suffix = elementToKeyframeSuffix(element);\n const keys = [\n 'children',\n 'return',\n 'value',\n ] satisfies (keyof Declaration)[];\n\n if (animationPropsSet.has(element.props)) {\n const scopedKeyframes = getDefinedKeyframes(element);\n const patch = Object.fromEntries(\n keys.map((key) => {\n const tokens = tokenize(element[key]);\n let result = '';\n for (let i = 0; i < tokens.length; i += 1) {\n if (\n tokens[i] === ':' &&\n tokens[i + 1] === 'global' &&\n tokens[i + 2].startsWith('(')\n ) {\n const globalName = tokens[i + 2].substring(\n 1,\n tokens[i + 2].length - 1\n );\n i += 2;\n\n result += globalName;\n if (tokens[i + 1] !== ';') {\n result += ' ';\n }\n continue;\n }\n\n if (scopedKeyframes.has(tokens[i])) {\n result += `${tokens[i]}-${suffix}`;\n continue;\n }\n\n result += tokens[i];\n }\n\n return [key, result];\n })\n );\n\n Object.assign(element, patch);\n }\n }\n };\n}\n\nconst isMiddleware = (obj: Middleware | null): obj is Middleware =>\n obj !== null;\n\nconst displayKeywordRegexp = /^[a-z-]+$/;\nconst knownMultiKeywordDisplayTokens = new Set([\n 'block',\n 'inline',\n 'flow',\n 'flow-root',\n 'flex',\n 'grid',\n 'table',\n 'list-item',\n]);\n\nfunction normalizeMultiKeywordDisplayValue(value: string): string | null {\n const trimmed = value.trim();\n if (trimmed === '' || !/\\s/.test(trimmed)) {\n return null;\n }\n\n const importantRegexp = /!\\s*important\\s*$/i;\n const hasImportant = importantRegexp.test(trimmed);\n const withoutImportant = trimmed.replace(importantRegexp, '').trim();\n\n const tokens = withoutImportant.split(/\\s+/).filter(Boolean);\n if (tokens.length < 2) {\n return null;\n }\n\n const normalizedTokens = tokens.map((token) => token.toLowerCase());\n if (!normalizedTokens.every((token) => displayKeywordRegexp.test(token))) {\n return null;\n }\n\n const tokenSet = new Set(normalizedTokens);\n const hasInline = tokenSet.has('inline');\n const hasBlock = tokenSet.has('block');\n if (hasInline && hasBlock) {\n return null;\n }\n\n let outside: 'block' | 'inline' | null = null;\n if (hasInline) {\n outside = 'inline';\n } else if (hasBlock) {\n outside = 'block';\n }\n\n const insideCandidates = [\n 'flow-root',\n 'flow',\n 'flex',\n 'grid',\n 'table',\n ].filter((candidate) => tokenSet.has(candidate));\n if (insideCandidates.length > 1) {\n return null;\n }\n\n const inside = insideCandidates[0] ?? null;\n const hasListItem = tokenSet.has('list-item');\n\n const canCanonicalize = normalizedTokens.every((token) =>\n knownMultiKeywordDisplayTokens.has(token)\n );\n\n if (canCanonicalize) {\n const canonicalOutside = outside ?? 'block';\n const canonicalInside = inside ?? (hasListItem ? 'flow' : null);\n if (canonicalInside) {\n let canonical: string | null = null;\n if (hasListItem) {\n if (canonicalInside === 'flow' && canonicalOutside === 'block') {\n canonical = 'list-item';\n }\n } else {\n switch (canonicalInside) {\n case 'flex':\n canonical = canonicalOutside === 'inline' ? 'inline-flex' : 'flex';\n break;\n case 'grid':\n canonical = canonicalOutside === 'inline' ? 'inline-grid' : 'grid';\n break;\n case 'table':\n canonical =\n canonicalOutside === 'inline' ? 'inline-table' : 'table';\n break;\n case 'flow-root':\n canonical = canonicalOutside === 'block' ? 'flow-root' : null;\n break;\n case 'flow':\n canonical = canonicalOutside === 'inline' ? 'inline' : 'block';\n break;\n default:\n break;\n }\n }\n\n if (canonical) {\n return hasImportant ? `${canonical}!important` : canonical;\n }\n }\n }\n\n const innerDisplay = inside === 'flex' || inside === 'grid' ? inside : null;\n if (\n innerDisplay &&\n normalizedTokens[0] === innerDisplay &&\n normalizedTokens.length > 1\n ) {\n const reordered = [\n ...(outside ? [outside] : []),\n ...normalizedTokens.filter(\n (token) => token !== innerDisplay && token !== outside\n ),\n innerDisplay,\n ].join(' ');\n\n return hasImportant ? `${reordered}!important` : reordered;\n }\n\n return null;\n}\n\nfunction createStylisDisplayNormalizationPlugin(): Middleware {\n return (element) => {\n if (!isDeclaration(element) || element.props !== 'display') {\n return;\n }\n\n const normalized = normalizeMultiKeywordDisplayValue(element.children);\n if (!normalized) {\n return;\n }\n\n const decl = `display:${normalized};`;\n Object.assign(element, {\n children: normalized,\n value: decl,\n });\n };\n}\n\nfunction createStylisStringifier(\n keepComments: boolean | RegExp | undefined\n): Middleware {\n if (!keepComments) {\n return stringify;\n }\n\n const keepAllComments = keepComments === true;\n const keepCommentsFilter =\n keepComments instanceof RegExp ? keepComments : null;\n\n return (element, index, children, callback) => {\n if (element.type === COMMENT) {\n if (!keepAllComments && keepCommentsFilter) {\n const commentValue =\n typeof element.children === 'string'\n ? element.children\n : element.value;\n keepCommentsFilter.lastIndex = 0;\n if (!keepCommentsFilter.test(commentValue)) {\n return '';\n }\n }\n return element.value;\n }\n\n return stringify(element, index, children, callback);\n };\n}\n\nexport function createStylisPreprocessor(\n options: Options & { prefixer?: boolean }\n) {\n const stringifier = createStylisStringifier(options.keepComments);\n\n function stylisPreprocess(selector: string, text: string): string {\n const compiled = compile(`${selector} {${text}}\\n`);\n\n return serialize(\n compiled,\n middleware(\n [\n createStylisUrlReplacePlugin(\n options.filename,\n options.outputFilename\n ),\n stylisGlobalPlugin,\n options.prefixer === false\n ? null\n : createStylisDisplayNormalizationPlugin(),\n options.prefixer === false ? null : prefixer,\n createKeyframeSuffixerPlugin(),\n stringifier,\n ].filter(isMiddleware)\n )\n );\n }\n\n return stylisPreprocess;\n}\n"],"file":"createStylisPreprocessor.js"}
|
|
@@ -1,50 +1,51 @@
|
|
|
1
|
-
import evaluate from
|
|
2
|
-
import
|
|
3
|
-
import { isUnprocessedEntrypointError } from '../actions/UnprocessedEntrypointError';
|
|
4
|
-
const wrap = fn => {
|
|
5
|
-
try {
|
|
6
|
-
return fn();
|
|
7
|
-
} catch (e) {
|
|
8
|
-
return e;
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
|
|
1
|
+
import evaluate from "../../evaluators/index.js";
|
|
2
|
+
import { isUnprocessedEntrypointError } from "../actions/UnprocessedEntrypointError.js";
|
|
12
3
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
* Executes the code prepared in previous steps within the current `Entrypoint`.
|
|
5
|
+
* Returns all exports that were requested in `only`.
|
|
6
|
+
*/
|
|
16
7
|
// eslint-disable-next-line require-yield
|
|
17
|
-
export function* evalFile() {
|
|
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
|
-
|
|
8
|
+
export async function* evalFile() {
|
|
9
|
+
const { entrypoint } = this;
|
|
10
|
+
const { log } = entrypoint;
|
|
11
|
+
const preevalResult = entrypoint.getPreevalResult();
|
|
12
|
+
if (preevalResult && (preevalResult.dependencyNames?.length ?? 0) === 0) {
|
|
13
|
+
const valueCache = new Map();
|
|
14
|
+
preevalResult.staticValueCache?.forEach((value, key) => {
|
|
15
|
+
valueCache.set(key, value);
|
|
16
|
+
});
|
|
17
|
+
const dependencies = [...new Set(preevalResult.staticDependencies ?? [])];
|
|
18
|
+
log(`<< skipped evaluate __wywPreval %O`, valueCache);
|
|
19
|
+
return [valueCache, dependencies];
|
|
20
|
+
}
|
|
21
|
+
log(`>> evaluate __wywPreval`);
|
|
22
|
+
let evaluated;
|
|
23
|
+
while (evaluated === undefined) {
|
|
24
|
+
try {
|
|
25
|
+
// eslint-disable-next-line no-await-in-loop
|
|
26
|
+
evaluated = await this.services.eventEmitter.perf("transform:evalFile", () => evaluate(this.services, entrypoint));
|
|
27
|
+
} catch (e) {
|
|
28
|
+
if (isUnprocessedEntrypointError(e)) {
|
|
29
|
+
entrypoint.log("Evaluation has been aborted because one if the required files is not processed. Schedule reprocessing and repeat evaluation.");
|
|
30
|
+
yield [
|
|
31
|
+
"processEntrypoint",
|
|
32
|
+
e.entrypoint,
|
|
33
|
+
undefined
|
|
34
|
+
];
|
|
35
|
+
} else {
|
|
36
|
+
throw e;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (!evaluated.values) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const valueCache = evaluated.values;
|
|
44
|
+
preevalResult?.staticValueCache?.forEach((value, key) => {
|
|
45
|
+
valueCache.set(key, value);
|
|
46
|
+
});
|
|
47
|
+
const dependencies = [...new Set([...evaluated.dependencies, ...preevalResult?.staticDependencies ?? []])];
|
|
48
|
+
log(`<< evaluated __wywPreval %O`, valueCache);
|
|
49
|
+
return [valueCache, dependencies];
|
|
49
50
|
}
|
|
50
|
-
//# sourceMappingURL=evalFile.js.map
|
|
51
|
+
//# sourceMappingURL=evalFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":"AAEA,OAAO,cAAwC;AAC/C,SAAS,oCAAoC;;;;;;AAQ7C,OAAO,gBAAgB,WAEgB;CACrC,MAAM,EAAE,eAAe;CACvB,MAAM,EAAE,QAAQ;CAChB,MAAM,gBAAgB,WAAW,kBAAkB;AAEnD,KAAI,kBAAkB,cAAc,iBAAiB,UAAU,OAAO,GAAG;EACvE,MAAM,aAAyB,IAAI,KAAK;AACxC,gBAAc,kBAAkB,SAAS,OAAO,QAAQ;AACtD,cAAW,IAAI,KAAK,MAAM;IAC1B;EAEF,MAAM,eAAe,CAAC,GAAG,IAAI,IAAI,cAAc,sBAAsB,EAAE,CAAC,CAAC;AACzE,MAAI,sCAAsC,WAAW;AAErD,SAAO,CAAC,YAAY,aAAa;;AAGnC,KAAI,0BAA0B;CAE9B,IAAI;AAEJ,QAAO,cAAc,WAAW;AAC9B,MAAI;;AAEF,eAAY,MAAM,KAAK,SAAS,aAAa,KAC3C,4BACM,SAAS,KAAK,UAAU,WAAW,CAC1C;WACM,GAAG;AACV,OAAI,6BAA6B,EAAE,EAAE;AACnC,eAAW,IACT,+HACD;AACD,UAAM;KAAC;KAAqB,EAAE;KAAY;KAAU;UAC/C;AACL,UAAM;;;;AAKZ,KAAI,CAAC,UAAU,QAAQ;AACrB,SAAO;;CAGT,MAAM,aAAyB,UAAU;AACzC,gBAAe,kBAAkB,SAAS,OAAO,QAAQ;AACvD,aAAW,IAAI,KAAK,MAAM;GAC1B;CACF,MAAM,eAAe,CACnB,GAAG,IAAI,IAAI,CACT,GAAG,UAAU,cACb,GAAI,eAAe,sBAAsB,EAAE,CAC5C,CAAC,CACH;AAED,KAAI,+BAA+B,WAAW;AAE9C,QAAO,CAAC,YAAY,aAAa","names":[],"sources":["../../../src/transform/generators/evalFile.ts"],"version":3,"sourcesContent":["import type { ValueCache } from '@wyw-in-js/processor-utils';\n\nimport evaluate, { type IEvaluateResult } from '../../evaluators';\nimport { isUnprocessedEntrypointError } from '../actions/UnprocessedEntrypointError';\nimport type { AsyncScenarioForAction, IEvalAction } from '../types';\n\n/**\n * Executes the code prepared in previous steps within the current `Entrypoint`.\n * Returns all exports that were requested in `only`.\n */\n// eslint-disable-next-line require-yield\nexport async function* evalFile(\n this: IEvalAction\n): AsyncScenarioForAction<IEvalAction> {\n const { entrypoint } = this;\n const { log } = entrypoint;\n const preevalResult = entrypoint.getPreevalResult();\n\n if (preevalResult && (preevalResult.dependencyNames?.length ?? 0) === 0) {\n const valueCache: ValueCache = new Map();\n preevalResult.staticValueCache?.forEach((value, key) => {\n valueCache.set(key, value);\n });\n\n const dependencies = [...new Set(preevalResult.staticDependencies ?? [])];\n log(`<< skipped evaluate __wywPreval %O`, valueCache);\n\n return [valueCache, dependencies];\n }\n\n log(`>> evaluate __wywPreval`);\n\n let evaluated: IEvaluateResult | undefined;\n\n while (evaluated === undefined) {\n try {\n // eslint-disable-next-line no-await-in-loop\n evaluated = await this.services.eventEmitter.perf(\n 'transform:evalFile',\n () => evaluate(this.services, entrypoint)\n );\n } catch (e) {\n if (isUnprocessedEntrypointError(e)) {\n entrypoint.log(\n 'Evaluation has been aborted because one if the required files is not processed. Schedule reprocessing and repeat evaluation.'\n );\n yield ['processEntrypoint', e.entrypoint, undefined];\n } else {\n throw e;\n }\n }\n }\n\n if (!evaluated.values) {\n return null;\n }\n\n const valueCache: ValueCache = evaluated.values;\n preevalResult?.staticValueCache?.forEach((value, key) => {\n valueCache.set(key, value);\n });\n const dependencies = [\n ...new Set([\n ...evaluated.dependencies,\n ...(preevalResult?.staticDependencies ?? []),\n ]),\n ];\n\n log(`<< evaluated __wywPreval %O`, valueCache);\n\n return [valueCache, dependencies];\n}\n"],"file":"evalFile.js"}
|
|
@@ -1,96 +1,84 @@
|
|
|
1
|
-
import { SourceMapGenerator } from
|
|
2
|
-
import { createStylisPreprocessor } from
|
|
1
|
+
import { SourceMapGenerator } from "source-map";
|
|
2
|
+
import { createStylisPreprocessor } from "./createStylisPreprocessor.js";
|
|
3
3
|
function extractCssFromAst(rules, originalCode, options) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
return '';
|
|
54
|
-
}
|
|
55
|
-
};
|
|
4
|
+
const mappings = [];
|
|
5
|
+
let cssText = "";
|
|
6
|
+
let preprocessor;
|
|
7
|
+
if (typeof options.preprocessor === "function") {
|
|
8
|
+
// eslint-disable-next-line prefer-destructuring
|
|
9
|
+
preprocessor = options.preprocessor;
|
|
10
|
+
} else {
|
|
11
|
+
switch (options.preprocessor) {
|
|
12
|
+
case "none":
|
|
13
|
+
preprocessor = (selector, text) => `${selector} {${text}}\n`;
|
|
14
|
+
break;
|
|
15
|
+
case "stylis":
|
|
16
|
+
default: preprocessor = createStylisPreprocessor(options);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
Object.keys(rules).forEach((selector, index) => {
|
|
20
|
+
mappings.push({
|
|
21
|
+
generated: {
|
|
22
|
+
line: index + 1,
|
|
23
|
+
column: 0
|
|
24
|
+
},
|
|
25
|
+
original: rules[selector].start,
|
|
26
|
+
name: selector,
|
|
27
|
+
source: ""
|
|
28
|
+
});
|
|
29
|
+
if (rules[selector].atom) {
|
|
30
|
+
// For atoms, we just directly insert cssText, to give the atomizer full control over the rules
|
|
31
|
+
cssText += `${rules[selector].cssText}\n`;
|
|
32
|
+
} else {
|
|
33
|
+
// Run each rule through stylis to support nesting
|
|
34
|
+
cssText += `${preprocessor(selector, rules[selector].cssText)}\n`;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
cssText,
|
|
39
|
+
rules,
|
|
40
|
+
get cssSourceMapText() {
|
|
41
|
+
if (mappings?.length) {
|
|
42
|
+
const generator = new SourceMapGenerator({ file: options.filename.replace(/\.js$/, ".css") });
|
|
43
|
+
mappings.forEach((mapping) => generator.addMapping({
|
|
44
|
+
...mapping,
|
|
45
|
+
source: options.filename
|
|
46
|
+
}));
|
|
47
|
+
generator.setSourceContent(options.filename, originalCode);
|
|
48
|
+
return generator.toString();
|
|
49
|
+
}
|
|
50
|
+
return "";
|
|
51
|
+
}
|
|
52
|
+
};
|
|
56
53
|
}
|
|
57
|
-
|
|
58
54
|
/**
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
* Extract artifacts (e.g. CSS) from processors
|
|
56
|
+
*/
|
|
61
57
|
// eslint-disable-next-line require-yield
|
|
62
58
|
export function* extract() {
|
|
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
|
-
allReplacements.push(...replacements);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
return {
|
|
92
|
-
...extractCssFromAst(allRules, loadedAndParsed.code, options),
|
|
93
|
-
replacements: allReplacements
|
|
94
|
-
};
|
|
59
|
+
const { options } = this.services;
|
|
60
|
+
const { entrypoint } = this;
|
|
61
|
+
const { processors } = this.data;
|
|
62
|
+
const { loadedAndParsed } = entrypoint;
|
|
63
|
+
if (loadedAndParsed.evaluator === "ignored") {
|
|
64
|
+
throw new Error("entrypoint was ignored");
|
|
65
|
+
}
|
|
66
|
+
let allRules = {};
|
|
67
|
+
const allReplacements = [];
|
|
68
|
+
processors.forEach((processor) => {
|
|
69
|
+
processor.artifacts.forEach((artifact) => {
|
|
70
|
+
if (artifact[0] !== "css") return;
|
|
71
|
+
const [rules, replacements] = artifact[1];
|
|
72
|
+
allRules = {
|
|
73
|
+
...allRules,
|
|
74
|
+
...rules
|
|
75
|
+
};
|
|
76
|
+
allReplacements.push(...replacements);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
...extractCssFromAst(allRules, loadedAndParsed.code, options),
|
|
81
|
+
replacements: allReplacements
|
|
82
|
+
};
|
|
95
83
|
}
|
|
96
|
-
//# sourceMappingURL=extract.js.map
|
|
84
|
+
//# sourceMappingURL=extract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":"AACA,SAAS,0BAA0B;AAMnC,SAAS,gCAAgC;AAEzC,SAAS,kBACP,OACA,cACA,SAI6D;CAC7D,MAAM,WAAsB,EAAE;CAE9B,IAAI,UAAU;CAEd,IAAI;AACJ,KAAI,OAAO,QAAQ,iBAAiB,YAAY;;AAE9C,iBAAe,QAAQ;QAClB;AACL,UAAQ,QAAQ,cAAhB;GACE,KAAK;AACH,oBAAgB,UAAU,SAAS,GAAG,SAAS,IAAI,KAAK;AACxD;GACF,KAAK;GACL,QACE,gBAAe,yBAAyB,QAAQ;;;AAItD,QAAO,KAAK,MAAM,CAAC,SAAS,UAAU,UAAU;AAC9C,WAAS,KAAK;GACZ,WAAW;IACT,MAAM,QAAQ;IACd,QAAQ;IACT;GACD,UAAU,MAAM,UAAU;GAC1B,MAAM;GACN,QAAQ;GACT,CAAC;AAEF,MAAI,MAAM,UAAU,MAAM;;AAExB,cAAW,GAAG,MAAM,UAAU,QAAQ;SACjC;;AAEL,cAAW,GAAG,aAAa,UAAU,MAAM,UAAU,QAAQ,CAAC;;GAEhE;AAEF,QAAO;EACL;EACA;EAEA,IAAI,mBAAmB;AACrB,OAAI,UAAU,QAAQ;IACpB,MAAM,YAAY,IAAI,mBAAmB,EACvC,MAAM,QAAQ,SAAS,QAAQ,SAAS,OAAO,EAChD,CAAC;AAEF,aAAS,SAAS,YAChB,UAAU,WAAW;KAAE,GAAG;KAAS,QAAQ,QAAQ;KAAU,CAAC,CAC/D;AAED,cAAU,iBAAiB,QAAQ,UAAU,aAAa;AAE1D,WAAO,UAAU,UAAU;;AAG7B,UAAO;;EAEV;;;;;;AAOH,OAAO,UAAU,UAEwB;CACvC,MAAM,EAAE,YAAY,KAAK;CACzB,MAAM,EAAE,eAAe;CACvB,MAAM,EAAE,eAAe,KAAK;CAC5B,MAAM,EAAE,oBAAoB;AAC5B,KAAI,gBAAgB,cAAc,WAAW;AAC3C,QAAM,IAAI,MAAM,yBAAyB;;CAG3C,IAAI,WAAkB,EAAE;CACxB,MAAM,kBAAgC,EAAE;AACxC,YAAW,SAAS,cAAc;AAChC,YAAU,UAAU,SAAS,aAAa;AACxC,OAAI,SAAS,OAAO,MAAO;GAC3B,MAAM,CAAC,OAAO,gBAAgB,SAAS;AAKvC,cAAW;IACT,GAAG;IACH,GAAG;IACJ;AAED,mBAAgB,KAAK,GAAG,aAAa;IACrC;GACF;AAEF,QAAO;EACL,GAAG,kBAAkB,UAAU,gBAAgB,MAAM,QAAQ;EAC7D,cAAc;EACf","names":[],"sources":["../../../src/transform/generators/extract.ts"],"version":3,"sourcesContent":["import type { Mapping } from 'source-map';\nimport { SourceMapGenerator } from 'source-map';\n\nimport type { Replacements, Rules } from '@wyw-in-js/shared';\n\nimport type { Options, PreprocessorFn } from '../../types';\nimport type { IExtractAction, SyncScenarioForAction } from '../types';\nimport { createStylisPreprocessor } from './createStylisPreprocessor';\n\nfunction extractCssFromAst(\n rules: Rules,\n originalCode: string,\n options: Pick<\n Options,\n 'preprocessor' | 'filename' | 'outputFilename' | 'prefixer' | 'keepComments'\n >\n): { cssSourceMapText: string; cssText: string; rules: Rules } {\n const mappings: Mapping[] = [];\n\n let cssText = '';\n\n let preprocessor: PreprocessorFn;\n if (typeof options.preprocessor === 'function') {\n // eslint-disable-next-line prefer-destructuring\n preprocessor = options.preprocessor;\n } else {\n switch (options.preprocessor) {\n case 'none':\n preprocessor = (selector, text) => `${selector} {${text}}\\n`;\n break;\n case 'stylis':\n default:\n preprocessor = createStylisPreprocessor(options);\n }\n }\n\n Object.keys(rules).forEach((selector, index) => {\n mappings.push({\n generated: {\n line: index + 1,\n column: 0,\n },\n original: rules[selector].start!,\n name: selector,\n source: '',\n });\n\n if (rules[selector].atom) {\n // For atoms, we just directly insert cssText, to give the atomizer full control over the rules\n cssText += `${rules[selector].cssText}\\n`;\n } else {\n // Run each rule through stylis to support nesting\n cssText += `${preprocessor(selector, rules[selector].cssText)}\\n`;\n }\n });\n\n return {\n cssText,\n rules,\n\n get cssSourceMapText() {\n if (mappings?.length) {\n const generator = new SourceMapGenerator({\n file: options.filename.replace(/\\.js$/, '.css'),\n });\n\n mappings.forEach((mapping) =>\n generator.addMapping({ ...mapping, source: options.filename })\n );\n\n generator.setSourceContent(options.filename, originalCode);\n\n return generator.toString();\n }\n\n return '';\n },\n };\n}\n\n/**\n * Extract artifacts (e.g. CSS) from processors\n */\n// eslint-disable-next-line require-yield\nexport function* extract(\n this: IExtractAction\n): SyncScenarioForAction<IExtractAction> {\n const { options } = this.services;\n const { entrypoint } = this;\n const { processors } = this.data;\n const { loadedAndParsed } = entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n throw new Error('entrypoint was ignored');\n }\n\n let allRules: Rules = {};\n const allReplacements: Replacements = [];\n processors.forEach((processor) => {\n processor.artifacts.forEach((artifact) => {\n if (artifact[0] !== 'css') return;\n const [rules, replacements] = artifact[1] as [\n rules: Rules,\n sourceMapReplacements: Replacements,\n ];\n\n allRules = {\n ...allRules,\n ...rules,\n };\n\n allReplacements.push(...replacements);\n });\n });\n\n return {\n ...extractCssFromAst(allRules, loadedAndParsed.code, options),\n replacements: allReplacements,\n };\n}\n"],"file":"extract.js"}
|
|
@@ -1,78 +1,61 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable no-continue */
|
|
2
|
+
import { collectOxcExportsAndImports } from "../../utils/collectOxcExportsAndImports.js";
|
|
3
|
+
import { oxcShaker } from "../../shaker.js";
|
|
2
4
|
export function findExportsInImports(entrypoint, imports) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
return results;
|
|
5
|
+
const results = [];
|
|
6
|
+
for (const imp of imports) {
|
|
7
|
+
const { resolved } = imp;
|
|
8
|
+
if (!resolved) {
|
|
9
|
+
throw new Error(`Could not resolve import ${imp.source}`);
|
|
10
|
+
}
|
|
11
|
+
const newEntrypoint = entrypoint.createChild(resolved, []);
|
|
12
|
+
if (newEntrypoint === "loop") {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
results.push({
|
|
16
|
+
entrypoint: newEntrypoint,
|
|
17
|
+
import: imp.source
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return results;
|
|
22
21
|
}
|
|
23
22
|
export function* getExports() {
|
|
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
|
-
imports: new Map(withWildcardReexport.map(i => [i.source, []]))
|
|
62
|
-
});
|
|
63
|
-
const dependencyFilenames = resolvedImports.flatMap(dependency => dependency.resolved ? [dependency.resolved] : []);
|
|
64
|
-
const importedEntrypoints = findExportsInImports(entrypoint, resolvedImports);
|
|
65
|
-
for (const importedEntrypoint of importedEntrypoints) {
|
|
66
|
-
const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
|
|
67
|
-
result.push(...exports);
|
|
68
|
-
}
|
|
69
|
-
cache.add('exports', entrypoint.name, result);
|
|
70
|
-
cache.setCacheDependencies('exports', entrypoint.name, dependencyFilenames);
|
|
71
|
-
entrypoint.log(`exports: %o`, result);
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
entrypoint.log(`exports: %o`, result);
|
|
75
|
-
cache.add('exports', entrypoint.name, result);
|
|
76
|
-
return result;
|
|
23
|
+
const { entrypoint, services: { cache } } = this;
|
|
24
|
+
const { loadedAndParsed } = entrypoint;
|
|
25
|
+
entrypoint.log("get exports from %s", entrypoint.name);
|
|
26
|
+
if (cache.has("exports", entrypoint.name)) {
|
|
27
|
+
return cache.get("exports", entrypoint.name);
|
|
28
|
+
}
|
|
29
|
+
let withWildcardReexport = [];
|
|
30
|
+
const result = [];
|
|
31
|
+
if (loadedAndParsed.evaluator !== oxcShaker) {
|
|
32
|
+
throw new Error(`[wyw-in-js] ${entrypoint.name} matched a legacy evaluator. The Oxc runtime path supports only the default Oxc evaluator.`);
|
|
33
|
+
}
|
|
34
|
+
const { exports, reexports } = collectOxcExportsAndImports(loadedAndParsed.code, loadedAndParsed.evalConfig.filename ?? entrypoint.name);
|
|
35
|
+
Object.keys(exports).forEach((token) => {
|
|
36
|
+
result.push(token);
|
|
37
|
+
});
|
|
38
|
+
reexports.forEach((reexport) => {
|
|
39
|
+
if (reexport.exported !== "*") {
|
|
40
|
+
result.push(reexport.exported);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
withWildcardReexport = reexports.filter((reexport) => reexport.exported === "*");
|
|
44
|
+
if (withWildcardReexport.length) {
|
|
45
|
+
const resolvedImports = yield* this.getNext("resolveImports", entrypoint, { imports: new Map(withWildcardReexport.map((item) => [item.source, []])) });
|
|
46
|
+
const dependencyFilenames = resolvedImports.flatMap((dependency) => dependency.resolved ? [dependency.resolved] : []);
|
|
47
|
+
const importedEntrypoints = findExportsInImports(entrypoint, resolvedImports);
|
|
48
|
+
for (const importedEntrypoint of importedEntrypoints) {
|
|
49
|
+
const childExports = yield* this.getNext("getExports", importedEntrypoint.entrypoint, undefined);
|
|
50
|
+
result.push(...childExports);
|
|
51
|
+
}
|
|
52
|
+
cache.add("exports", entrypoint.name, result);
|
|
53
|
+
cache.setCacheDependencies("exports", entrypoint.name, dependencyFilenames);
|
|
54
|
+
entrypoint.log("exports: %o", result);
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
entrypoint.log("exports: %o", result);
|
|
58
|
+
cache.add("exports", entrypoint.name, result);
|
|
59
|
+
return result;
|
|
77
60
|
}
|
|
78
|
-
//# sourceMappingURL=getExports.js.map
|
|
61
|
+
//# sourceMappingURL=getExports.js.map
|