@wyw-in-js/transform 1.1.0 → 2.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/cache.js +433 -289
- package/esm/cache.js.map +1 -1
- package/esm/debug/fileReporter.js +171 -134
- package/esm/debug/fileReporter.js.map +1 -1
- package/esm/eval/broker.js +2275 -0
- package/esm/eval/broker.js.map +1 -0
- package/esm/eval/lru.js +36 -0
- package/esm/eval/lru.js.map +1 -0
- package/esm/eval/prepareModuleOnDemand.js +21 -0
- package/esm/eval/prepareModuleOnDemand.js.map +1 -0
- package/esm/eval/protocol.js +2 -0
- package/esm/eval/protocol.js.map +1 -0
- package/esm/eval/runner.js +1878 -0
- package/esm/eval/runner.js.map +1 -0
- package/esm/eval/serialize.js +333 -0
- package/esm/eval/serialize.js.map +1 -0
- package/esm/eval/writeQueue.js +81 -0
- package/esm/eval/writeQueue.js.map +1 -0
- package/esm/evaluators/index.js +11 -12
- package/esm/evaluators/index.js.map +1 -1
- package/esm/index.js +25 -29
- package/esm/index.js.map +1 -1
- package/esm/module.js +923 -520
- package/esm/module.js.map +1 -1
- package/esm/shaker.js +14 -80
- package/esm/shaker.js.map +1 -1
- package/esm/transform/BaseEntrypoint.js +162 -164
- package/esm/transform/BaseEntrypoint.js.map +1 -1
- package/esm/transform/Entrypoint.helpers.js +96 -253
- package/esm/transform/Entrypoint.helpers.js.map +1 -1
- package/esm/transform/Entrypoint.js +336 -270
- package/esm/transform/Entrypoint.js.map +1 -1
- package/esm/transform/Entrypoint.types.js +1 -1
- package/esm/transform/Entrypoint.types.js.map +1 -1
- package/esm/transform/EvaluatedEntrypoint.js +10 -4
- package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
- package/esm/transform/actions/AbortError.js +6 -6
- package/esm/transform/actions/AbortError.js.map +1 -1
- package/esm/transform/actions/BaseAction.js +140 -136
- package/esm/transform/actions/BaseAction.js.map +1 -1
- package/esm/transform/actions/UnprocessedEntrypointError.js +6 -6
- package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -1
- package/esm/transform/actions/actionRunner.js +63 -66
- package/esm/transform/actions/actionRunner.js.map +1 -1
- package/esm/transform/actions/types.js +1 -1
- package/esm/transform/actions/types.js.map +1 -1
- package/esm/transform/barrelManifest.types.js +2 -0
- package/esm/transform/barrelManifest.types.js.map +1 -0
- package/esm/transform/generators/baseProcessingHandlers.js +15 -17
- package/esm/transform/generators/baseProcessingHandlers.js.map +1 -1
- package/esm/transform/generators/collect.js +27 -55
- package/esm/transform/generators/collect.js.map +1 -1
- package/esm/transform/generators/createStylisPreprocessor.js +353 -321
- package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
- package/esm/transform/generators/evalFile.js +48 -47
- package/esm/transform/generators/evalFile.js.map +1 -1
- package/esm/transform/generators/extract.js +78 -90
- package/esm/transform/generators/extract.js.map +1 -1
- package/esm/transform/generators/getExports.js +57 -74
- package/esm/transform/generators/getExports.js.map +1 -1
- package/esm/transform/generators/index.js +11 -11
- package/esm/transform/generators/index.js.map +1 -1
- package/esm/transform/generators/processEntrypoint.js +93 -67
- package/esm/transform/generators/processEntrypoint.js.map +1 -1
- package/esm/transform/generators/processImports.js +102 -67
- package/esm/transform/generators/processImports.js.map +1 -1
- package/esm/transform/generators/resolveImports.js +212 -197
- package/esm/transform/generators/resolveImports.js.map +1 -1
- package/esm/transform/generators/resolveStaticOxcValues/cache.js +182 -0
- package/esm/transform/generators/resolveStaticOxcValues/cache.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/candidateResolver.js +146 -0
- package/esm/transform/generators/resolveStaticOxcValues/candidateResolver.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/dependencies.js +33 -0
- package/esm/transform/generators/resolveStaticOxcValues/dependencies.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/environment.js +29 -0
- package/esm/transform/generators/resolveStaticOxcValues/environment.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/exportResolver.js +351 -0
- package/esm/transform/generators/resolveStaticOxcValues/exportResolver.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/exportTargets.js +253 -0
- package/esm/transform/generators/resolveStaticOxcValues/exportTargets.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/objectAssign.js +310 -0
- package/esm/transform/generators/resolveStaticOxcValues/objectAssign.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js +74 -0
- package/esm/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/opaqueRuntime.js +229 -0
- package/esm/transform/generators/resolveStaticOxcValues/opaqueRuntime.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorStaticExport.js +172 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorStaticExport.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorStaticModel.js +476 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorStaticModel.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorTarget.js +55 -0
- package/esm/transform/generators/resolveStaticOxcValues/processorTarget.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/programAnalysis.js +123 -0
- package/esm/transform/generators/resolveStaticOxcValues/programAnalysis.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/prune.js +186 -0
- package/esm/transform/generators/resolveStaticOxcValues/prune.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js +183 -0
- package/esm/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/staticExpression.js +298 -0
- package/esm/transform/generators/resolveStaticOxcValues/staticExpression.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js +298 -0
- package/esm/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/types.js +3 -0
- package/esm/transform/generators/resolveStaticOxcValues/types.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js +59 -0
- package/esm/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js.map +1 -0
- package/esm/transform/generators/resolveStaticOxcValues.js +2 -0
- package/esm/transform/generators/resolveStaticOxcValues.js.map +1 -0
- package/esm/transform/generators/rewriteOxcBarrelImports.js +822 -0
- package/esm/transform/generators/rewriteOxcBarrelImports.js.map +1 -0
- package/esm/transform/generators/transform.js +251 -248
- package/esm/transform/generators/transform.js.map +1 -1
- package/esm/transform/generators/workflow.js +87 -90
- package/esm/transform/generators/workflow.js.map +1 -1
- package/esm/transform/helpers/loadWywOptions.js +183 -74
- package/esm/transform/helpers/loadWywOptions.js.map +1 -1
- package/esm/transform/helpers/withDefaultServices.js +13 -22
- package/esm/transform/helpers/withDefaultServices.js.map +1 -1
- package/esm/transform/isStaticallyEvaluatableModule.js +140 -152
- package/esm/transform/isStaticallyEvaluatableModule.js.map +1 -1
- package/esm/transform/oxcBarrelManifest.js +349 -0
- package/esm/transform/oxcBarrelManifest.js.map +1 -0
- package/esm/transform/rootLog.js +3 -3
- package/esm/transform/rootLog.js.map +1 -1
- package/esm/transform/syntax.js +2 -0
- package/esm/transform/syntax.js.map +1 -0
- package/esm/transform/types.js +2 -2
- package/esm/transform/types.js.map +1 -1
- package/esm/transform.js +125 -147
- package/esm/transform.js.map +1 -1
- package/esm/types.js +4 -1
- package/esm/types.js.map +1 -1
- package/esm/utils/EventEmitter.js +79 -48
- package/esm/utils/EventEmitter.js.map +1 -1
- package/esm/utils/ShakerMetadata.js +2 -2
- package/esm/utils/ShakerMetadata.js.map +1 -1
- package/esm/utils/TransformDiagnostics.js +9 -9
- package/esm/utils/TransformDiagnostics.js.map +1 -1
- package/esm/utils/TransformMetadata.js +24 -26
- package/esm/utils/TransformMetadata.js.map +1 -1
- package/esm/utils/applyOxcProcessors/applyOxcProcessors.js +160 -0
- package/esm/utils/applyOxcProcessors/applyOxcProcessors.js.map +1 -0
- package/esm/utils/applyOxcProcessors/cleanupBindings.js +157 -0
- package/esm/utils/applyOxcProcessors/cleanupBindings.js.map +1 -0
- package/esm/utils/applyOxcProcessors/cleanupRemovals.js +431 -0
- package/esm/utils/applyOxcProcessors/cleanupRemovals.js.map +1 -0
- package/esm/utils/applyOxcProcessors/displayName.js +93 -0
- package/esm/utils/applyOxcProcessors/displayName.js.map +1 -0
- package/esm/utils/applyOxcProcessors/expressionValues.js +152 -0
- package/esm/utils/applyOxcProcessors/expressionValues.js.map +1 -0
- package/esm/utils/applyOxcProcessors/processorFactory.js +62 -0
- package/esm/utils/applyOxcProcessors/processorFactory.js.map +1 -0
- package/esm/utils/applyOxcProcessors/processorUsages.js +143 -0
- package/esm/utils/applyOxcProcessors/processorUsages.js.map +1 -0
- package/esm/utils/applyOxcProcessors/sameFileStaticValues.js +207 -0
- package/esm/utils/applyOxcProcessors/sameFileStaticValues.js.map +1 -0
- package/esm/utils/applyOxcProcessors/shared.js +29 -0
- package/esm/utils/applyOxcProcessors/shared.js.map +1 -0
- package/esm/utils/applyOxcProcessors/types.js +2 -0
- package/esm/utils/applyOxcProcessors/types.js.map +1 -0
- package/esm/utils/applyOxcProcessors.js +2 -0
- package/esm/utils/applyOxcProcessors.js.map +1 -0
- package/esm/utils/collectOxcExportsAndImports.js +934 -0
- package/esm/utils/collectOxcExportsAndImports.js.map +1 -0
- package/esm/utils/collectOxcRuntime/normalizeRuntimeCode.js +157 -0
- package/esm/utils/collectOxcRuntime/normalizeRuntimeCode.js.map +1 -0
- package/esm/utils/collectOxcRuntime/sourceMap.js +36 -0
- package/esm/utils/collectOxcRuntime/sourceMap.js.map +1 -0
- package/esm/utils/collectOxcRuntime/types.js +2 -0
- package/esm/utils/collectOxcRuntime/types.js.map +1 -0
- package/esm/utils/collectOxcRuntime.js +32 -0
- package/esm/utils/collectOxcRuntime.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/expressionExtraction.js +496 -0
- package/esm/utils/collectOxcTemplateDependencies/expressionExtraction.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/expressionReplacements.js +113 -0
- package/esm/utils/collectOxcTemplateDependencies/expressionReplacements.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/scopeAnalysis.js +387 -0
- package/esm/utils/collectOxcTemplateDependencies/scopeAnalysis.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/staticBindings.js +17 -0
- package/esm/utils/collectOxcTemplateDependencies/staticBindings.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/staticEvaluator.js +540 -0
- package/esm/utils/collectOxcTemplateDependencies/staticEvaluator.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies/types.js +2 -0
- package/esm/utils/collectOxcTemplateDependencies/types.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies.js +4 -0
- package/esm/utils/collectOxcTemplateDependencies.js.map +1 -0
- package/esm/utils/dispose-polyfill.js +3 -4
- package/esm/utils/dispose-polyfill.js.map +1 -1
- package/esm/utils/getFileIdx.js +6 -6
- package/esm/utils/getFileIdx.js.map +1 -1
- package/esm/utils/getPluginKey.js +12 -12
- package/esm/utils/getPluginKey.js.map +1 -1
- package/esm/utils/getVisitorKeys.js +9 -3
- package/esm/utils/getVisitorKeys.js.map +1 -1
- package/esm/utils/hasCachedWywPrevalExport.js +23 -0
- package/esm/utils/hasCachedWywPrevalExport.js.map +1 -0
- package/esm/utils/hasWywPreval.js +5 -5
- package/esm/utils/hasWywPreval.js.map +1 -1
- package/esm/utils/importOverrides.js +75 -90
- package/esm/utils/importOverrides.js.map +1 -1
- package/esm/utils/isNode.js +2 -2
- package/esm/utils/isNode.js.map +1 -1
- package/esm/utils/isNotNull.js +2 -2
- package/esm/utils/isNotNull.js.map +1 -1
- package/esm/utils/isSerializable.js +11 -11
- package/esm/utils/isSerializable.js.map +1 -1
- package/esm/utils/nativeResolver.js +93 -0
- package/esm/utils/nativeResolver.js.map +1 -0
- package/esm/utils/oxc/ast.js +28 -0
- package/esm/utils/oxc/ast.js.map +1 -0
- package/esm/utils/oxc/parse.js +3 -0
- package/esm/utils/oxc/parse.js.map +1 -0
- package/esm/utils/oxc/replacements.js +14 -0
- package/esm/utils/oxc/replacements.js.map +1 -0
- package/esm/utils/oxc/sourceLocations.js +59 -0
- package/esm/utils/oxc/sourceLocations.js.map +1 -0
- package/esm/utils/oxcAstService.js +121 -0
- package/esm/utils/oxcAstService.js.map +1 -0
- package/esm/utils/oxcEmit.js +447 -0
- package/esm/utils/oxcEmit.js.map +1 -0
- package/esm/utils/oxcPreevalStage/evalStrategy.js +3 -0
- package/esm/utils/oxcPreevalStage/evalStrategy.js.map +1 -0
- package/esm/utils/oxcPreevalStage/prepareCode.js +21 -0
- package/esm/utils/oxcPreevalStage/prepareCode.js.map +1 -0
- package/esm/utils/oxcPreevalStage/prevalExport.js +23 -0
- package/esm/utils/oxcPreevalStage/prevalExport.js.map +1 -0
- package/esm/utils/oxcPreevalStage/processors.js +17 -0
- package/esm/utils/oxcPreevalStage/processors.js.map +1 -0
- package/esm/utils/oxcPreevalStage/staticOverlay.js +18 -0
- package/esm/utils/oxcPreevalStage/staticOverlay.js.map +1 -0
- package/esm/utils/oxcPreevalStage/types.js +2 -0
- package/esm/utils/oxcPreevalStage/types.js.map +1 -0
- package/esm/utils/oxcPreevalStage.js +41 -0
- package/esm/utils/oxcPreevalStage.js.map +1 -0
- package/esm/utils/oxcPreevalTransforms.js +1065 -0
- package/esm/utils/oxcPreevalTransforms.js.map +1 -0
- package/esm/utils/oxcShaker.js +662 -0
- package/esm/utils/oxcShaker.js.map +1 -0
- package/esm/utils/parseOxc.js +37 -0
- package/esm/utils/parseOxc.js.map +1 -0
- package/esm/utils/parseRequest.js +27 -27
- package/esm/utils/parseRequest.js.map +1 -1
- package/esm/utils/peek.js +1 -1
- package/esm/utils/peek.js.map +1 -1
- package/esm/utils/processorLookup.js +125 -0
- package/esm/utils/processorLookup.js.map +1 -0
- package/esm/utils/processorStaticSemantics.js +157 -0
- package/esm/utils/processorStaticSemantics.js.map +1 -0
- package/esm/utils/resolveWithConditions.js +99 -0
- package/esm/utils/resolveWithConditions.js.map +1 -0
- package/esm/vm/createVmContext.js +140 -141
- package/esm/vm/createVmContext.js.map +1 -1
- package/esm/vm/process.js +11 -13
- package/esm/vm/process.js.map +1 -1
- package/package.json +19 -26
- package/types/cache.d.ts +17 -8
- package/types/cache.js +245 -95
- package/types/debug/fileReporter.js +68 -23
- package/types/eval/broker.d.ts +92 -0
- package/types/eval/broker.js +2411 -0
- package/types/eval/lru.d.ts +10 -0
- package/types/eval/lru.js +36 -0
- package/types/eval/prepareModuleOnDemand.d.ts +7 -0
- package/types/eval/prepareModuleOnDemand.js +24 -0
- package/types/eval/protocol.d.ts +111 -0
- package/types/eval/protocol.js +1 -0
- package/types/eval/serialize.d.ts +78 -0
- package/types/eval/serialize.js +357 -0
- package/types/eval/writeQueue.d.ts +13 -0
- package/types/eval/writeQueue.js +80 -0
- package/types/evaluators/index.d.ts +2 -2
- package/types/evaluators/index.js +6 -9
- package/types/index.d.ts +3 -6
- package/types/index.js +24 -82
- package/types/module.d.ts +38 -7
- package/types/module.js +613 -192
- package/types/shaker.d.ts +2 -10
- package/types/shaker.js +10 -100
- package/types/transform/BaseEntrypoint.js +6 -11
- package/types/transform/Entrypoint.d.ts +15 -15
- package/types/transform/Entrypoint.helpers.d.ts +2 -5
- package/types/transform/Entrypoint.helpers.js +43 -203
- package/types/transform/Entrypoint.js +130 -53
- package/types/transform/Entrypoint.types.d.ts +31 -6
- package/types/transform/Entrypoint.types.js +1 -2
- package/types/transform/EvaluatedEntrypoint.d.ts +13 -2
- package/types/transform/EvaluatedEntrypoint.js +7 -6
- package/types/transform/actions/AbortError.js +2 -7
- package/types/transform/actions/BaseAction.js +4 -8
- package/types/transform/actions/UnprocessedEntrypointError.js +2 -7
- package/types/transform/actions/actionRunner.js +8 -12
- package/types/transform/actions/types.d.ts +2 -2
- package/types/transform/actions/types.js +1 -2
- package/types/transform/{barrelManifest.d.ts → barrelManifest.types.d.ts} +0 -2
- package/types/transform/barrelManifest.types.js +1 -0
- package/types/transform/generators/baseProcessingHandlers.d.ts +4 -5
- package/types/transform/generators/baseProcessingHandlers.js +10 -14
- package/types/transform/generators/collect.js +13 -39
- package/types/transform/generators/createStylisPreprocessor.js +19 -60
- package/types/transform/generators/evalFile.d.ts +2 -2
- package/types/transform/generators/evalFile.js +26 -28
- package/types/transform/generators/extract.js +5 -8
- package/types/transform/generators/getExports.js +23 -30
- package/types/transform/generators/index.d.ts +2 -2
- package/types/transform/generators/index.js +11 -14
- package/types/transform/generators/processEntrypoint.d.ts +2 -2
- package/types/transform/generators/processEntrypoint.js +60 -26
- package/types/transform/generators/processImports.d.ts +0 -3
- package/types/transform/generators/processImports.js +60 -20
- package/types/transform/generators/resolveImports.d.ts +3 -1
- package/types/transform/generators/resolveImports.js +66 -23
- package/types/transform/generators/resolveStaticOxcValues/cache.d.ts +25 -0
- package/types/transform/generators/resolveStaticOxcValues/cache.js +182 -0
- package/types/transform/generators/resolveStaticOxcValues/candidateResolver.d.ts +5 -0
- package/types/transform/generators/resolveStaticOxcValues/candidateResolver.js +149 -0
- package/types/transform/generators/resolveStaticOxcValues/dependencies.d.ts +6 -0
- package/types/transform/generators/resolveStaticOxcValues/dependencies.js +37 -0
- package/types/transform/generators/resolveStaticOxcValues/environment.d.ts +12 -0
- package/types/transform/generators/resolveStaticOxcValues/environment.js +32 -0
- package/types/transform/generators/resolveStaticOxcValues/exportResolver.d.ts +4 -0
- package/types/transform/generators/resolveStaticOxcValues/exportResolver.js +358 -0
- package/types/transform/generators/resolveStaticOxcValues/exportTargets.d.ts +20 -0
- package/types/transform/generators/resolveStaticOxcValues/exportTargets.js +285 -0
- package/types/transform/generators/resolveStaticOxcValues/objectAssign.d.ts +41 -0
- package/types/transform/generators/resolveStaticOxcValues/objectAssign.js +352 -0
- package/types/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.d.ts +6 -0
- package/types/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js +88 -0
- package/types/transform/generators/resolveStaticOxcValues/opaqueRuntime.d.ts +13 -0
- package/types/transform/generators/resolveStaticOxcValues/opaqueRuntime.js +263 -0
- package/types/transform/generators/resolveStaticOxcValues/processorStaticExport.d.ts +4 -0
- package/types/transform/generators/resolveStaticOxcValues/processorStaticExport.js +191 -0
- package/types/transform/generators/resolveStaticOxcValues/processorStaticModel.d.ts +40 -0
- package/types/transform/generators/resolveStaticOxcValues/processorStaticModel.js +516 -0
- package/types/transform/generators/resolveStaticOxcValues/processorTarget.d.ts +5 -0
- package/types/transform/generators/resolveStaticOxcValues/processorTarget.js +62 -0
- package/types/transform/generators/resolveStaticOxcValues/programAnalysis.d.ts +11 -0
- package/types/transform/generators/resolveStaticOxcValues/programAnalysis.js +133 -0
- package/types/transform/generators/resolveStaticOxcValues/prune.d.ts +15 -0
- package/types/transform/generators/resolveStaticOxcValues/prune.js +220 -0
- package/types/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.d.ts +2 -0
- package/types/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js +197 -0
- package/types/transform/generators/resolveStaticOxcValues/staticExpression.d.ts +25 -0
- package/types/transform/generators/resolveStaticOxcValues/staticExpression.js +391 -0
- package/types/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.d.ts +14 -0
- package/types/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js +304 -0
- package/types/transform/generators/resolveStaticOxcValues/types.d.ts +99 -0
- package/types/transform/generators/resolveStaticOxcValues/types.js +2 -0
- package/types/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.d.ts +7 -0
- package/types/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js +64 -0
- package/types/transform/generators/resolveStaticOxcValues.d.ts +1 -0
- package/types/transform/generators/resolveStaticOxcValues.js +1 -0
- package/types/transform/generators/{rewriteBarrelImports.d.ts → rewriteOxcBarrelImports.d.ts} +2 -3
- package/types/transform/generators/{rewriteBarrelImports.js → rewriteOxcBarrelImports.js} +282 -225
- package/types/transform/generators/transform.d.ts +3 -7
- package/types/transform/generators/transform.js +217 -199
- package/types/transform/generators/workflow.js +62 -45
- package/types/transform/helpers/loadWywOptions.js +115 -21
- package/types/transform/helpers/withDefaultServices.d.ts +1 -1
- package/types/transform/helpers/withDefaultServices.js +6 -44
- package/types/transform/isStaticallyEvaluatableModule.d.ts +1 -2
- package/types/transform/isStaticallyEvaluatableModule.js +125 -126
- package/types/transform/oxcBarrelManifest.d.ts +2 -0
- package/types/transform/{barrelManifest.js → oxcBarrelManifest.js} +156 -97
- package/types/transform/rootLog.js +2 -5
- package/types/transform/syntax.d.ts +38 -0
- package/types/transform/syntax.js +1 -0
- package/types/transform/types.d.ts +9 -6
- package/types/transform/types.js +1 -4
- package/types/transform.d.ts +2 -2
- package/types/transform.js +90 -101
- package/types/types.d.ts +0 -23
- package/types/types.js +1 -2
- package/types/utils/EventEmitter.d.ts +16 -1
- package/types/utils/EventEmitter.js +47 -18
- package/types/utils/ShakerMetadata.js +1 -5
- package/types/utils/TransformDiagnostics.js +3 -7
- package/types/utils/TransformMetadata.js +8 -16
- package/types/utils/applyOxcProcessors/applyOxcProcessors.d.ts +8 -0
- package/types/utils/applyOxcProcessors/applyOxcProcessors.js +167 -0
- package/types/utils/applyOxcProcessors/cleanupBindings.d.ts +12 -0
- package/types/utils/applyOxcProcessors/cleanupBindings.js +189 -0
- package/types/utils/applyOxcProcessors/cleanupRemovals.d.ts +16 -0
- package/types/utils/applyOxcProcessors/cleanupRemovals.js +482 -0
- package/types/utils/applyOxcProcessors/displayName.d.ts +9 -0
- package/types/utils/applyOxcProcessors/displayName.js +113 -0
- package/types/utils/applyOxcProcessors/expressionValues.d.ts +11 -0
- package/types/utils/applyOxcProcessors/expressionValues.js +170 -0
- package/types/utils/applyOxcProcessors/processorFactory.d.ts +7 -0
- package/types/utils/applyOxcProcessors/processorFactory.js +70 -0
- package/types/utils/applyOxcProcessors/processorUsages.d.ts +16 -0
- package/types/utils/applyOxcProcessors/processorUsages.js +163 -0
- package/types/utils/applyOxcProcessors/sameFileStaticValues.d.ts +23 -0
- package/types/utils/applyOxcProcessors/sameFileStaticValues.js +211 -0
- package/types/utils/applyOxcProcessors/shared.d.ts +10 -0
- package/types/utils/applyOxcProcessors/shared.js +37 -0
- package/types/utils/applyOxcProcessors/types.d.ts +88 -0
- package/types/utils/applyOxcProcessors/types.js +1 -0
- package/types/utils/applyOxcProcessors.d.ts +1 -0
- package/types/utils/applyOxcProcessors.js +1 -0
- package/types/utils/collectOxcExportsAndImports.d.ts +35 -0
- package/types/utils/collectOxcExportsAndImports.js +957 -0
- package/types/utils/collectOxcRuntime/normalizeRuntimeCode.d.ts +1 -0
- package/types/utils/collectOxcRuntime/normalizeRuntimeCode.js +185 -0
- package/types/utils/collectOxcRuntime/sourceMap.d.ts +2 -0
- package/types/utils/collectOxcRuntime/sourceMap.js +37 -0
- package/types/utils/collectOxcRuntime/types.d.ts +16 -0
- package/types/utils/collectOxcRuntime/types.js +1 -0
- package/types/utils/collectOxcRuntime.d.ts +4 -0
- package/types/utils/collectOxcRuntime.js +31 -0
- package/types/utils/collectOxcTemplateDependencies/expressionExtraction.d.ts +6 -0
- package/types/utils/collectOxcTemplateDependencies/expressionExtraction.js +550 -0
- package/types/utils/collectOxcTemplateDependencies/expressionReplacements.d.ts +11 -0
- package/types/utils/collectOxcTemplateDependencies/expressionReplacements.js +131 -0
- package/types/utils/collectOxcTemplateDependencies/scopeAnalysis.d.ts +20 -0
- package/types/utils/collectOxcTemplateDependencies/scopeAnalysis.js +434 -0
- package/types/utils/collectOxcTemplateDependencies/staticBindings.d.ts +7 -0
- package/types/utils/collectOxcTemplateDependencies/staticBindings.js +13 -0
- package/types/utils/collectOxcTemplateDependencies/staticEvaluator.d.ts +13 -0
- package/types/utils/collectOxcTemplateDependencies/staticEvaluator.js +626 -0
- package/types/utils/collectOxcTemplateDependencies/types.d.ts +116 -0
- package/types/utils/collectOxcTemplateDependencies/types.js +1 -0
- package/types/utils/collectOxcTemplateDependencies.d.ts +4 -0
- package/types/utils/collectOxcTemplateDependencies.js +3 -0
- package/types/utils/getFileIdx.js +1 -4
- package/types/utils/getPluginKey.d.ts +5 -2
- package/types/utils/getPluginKey.js +2 -6
- package/types/utils/getVisitorKeys.d.ts +4 -4
- package/types/utils/getVisitorKeys.js +9 -6
- package/types/utils/hasCachedWywPrevalExport.d.ts +14 -0
- package/types/utils/hasCachedWywPrevalExport.js +30 -0
- package/types/utils/hasWywPreval.js +1 -4
- package/types/utils/importOverrides.js +17 -27
- package/types/utils/isNode.d.ts +2 -2
- package/types/utils/isNode.js +2 -6
- package/types/utils/isNotNull.js +1 -4
- package/types/utils/isSerializable.js +3 -6
- package/types/utils/nativeResolver.d.ts +13 -0
- package/types/utils/nativeResolver.js +91 -0
- package/types/utils/oxc/ast.d.ts +4 -0
- package/types/utils/oxc/ast.js +37 -0
- package/types/utils/oxc/parse.d.ts +3 -0
- package/types/utils/oxc/parse.js +2 -0
- package/types/utils/oxc/replacements.d.ts +12 -0
- package/types/utils/oxc/replacements.js +18 -0
- package/types/utils/oxc/sourceLocations.d.ts +5 -0
- package/types/utils/oxc/sourceLocations.js +63 -0
- package/types/utils/oxcAstService.d.ts +11 -0
- package/types/utils/oxcAstService.js +79 -0
- package/types/utils/oxcEmit.d.ts +19 -0
- package/types/utils/oxcEmit.js +506 -0
- package/types/utils/oxcPreevalStage/evalStrategy.d.ts +3 -0
- package/types/utils/oxcPreevalStage/evalStrategy.js +2 -0
- package/types/utils/oxcPreevalStage/prepareCode.d.ts +3 -0
- package/types/utils/oxcPreevalStage/prepareCode.js +20 -0
- package/types/utils/oxcPreevalStage/prevalExport.d.ts +1 -0
- package/types/utils/oxcPreevalStage/prevalExport.js +22 -0
- package/types/utils/oxcPreevalStage/processors.d.ts +10 -0
- package/types/utils/oxcPreevalStage/processors.js +16 -0
- package/types/utils/oxcPreevalStage/staticOverlay.d.ts +3 -0
- package/types/utils/oxcPreevalStage/staticOverlay.js +23 -0
- package/types/utils/oxcPreevalStage/types.d.ts +22 -0
- package/types/utils/oxcPreevalStage/types.js +1 -0
- package/types/utils/oxcPreevalStage.d.ts +4 -0
- package/types/utils/oxcPreevalStage.js +40 -0
- package/types/utils/oxcPreevalTransforms.d.ts +13 -0
- package/types/utils/oxcPreevalTransforms.js +1192 -0
- package/types/utils/oxcShaker.d.ts +13 -0
- package/types/utils/oxcShaker.js +751 -0
- package/types/utils/parseOxc.d.ts +11 -0
- package/types/utils/parseOxc.js +38 -0
- package/types/utils/parseRequest.js +2 -7
- package/types/utils/peek.js +1 -5
- package/types/utils/processorLookup.d.ts +8 -0
- package/types/utils/processorLookup.js +135 -0
- package/types/utils/processorStaticSemantics.d.ts +13 -0
- package/types/utils/processorStaticSemantics.js +191 -0
- package/types/utils/resolveWithConditions.d.ts +12 -0
- package/types/utils/resolveWithConditions.js +103 -0
- package/types/vm/createVmContext.d.ts +2 -2
- package/types/vm/createVmContext.js +25 -62
- package/types/vm/process.js +20 -26
- package/esm/babel.js +0 -2
- package/esm/babel.js.map +0 -1
- package/esm/options/buildOptions.js +0 -168
- package/esm/options/buildOptions.js.map +0 -1
- package/esm/options/buildOptions.test.js +0 -138
- package/esm/options/buildOptions.test.js.map +0 -1
- package/esm/options/loadBabelOptions.js +0 -24
- package/esm/options/loadBabelOptions.js.map +0 -1
- package/esm/plugins/babel-transform.js +0 -53
- package/esm/plugins/babel-transform.js.map +0 -1
- package/esm/plugins/collector.js +0 -60
- package/esm/plugins/collector.js.map +0 -1
- package/esm/plugins/dynamic-import.js +0 -56
- package/esm/plugins/dynamic-import.js.map +0 -1
- package/esm/plugins/preeval.js +0 -73
- package/esm/plugins/preeval.js.map +0 -1
- package/esm/plugins/shaker.js +0 -680
- package/esm/plugins/shaker.js.map +0 -1
- package/esm/transform/barrelManifest.js +0 -291
- package/esm/transform/barrelManifest.js.map +0 -1
- package/esm/transform/generators/explodeReexports.js +0 -64
- package/esm/transform/generators/explodeReexports.js.map +0 -1
- package/esm/transform/generators/rewriteBarrelImports.js +0 -733
- package/esm/transform/generators/rewriteBarrelImports.js.map +0 -1
- package/esm/utils/addIdentifierToWywPreval.js +0 -68
- package/esm/utils/addIdentifierToWywPreval.js.map +0 -1
- package/esm/utils/collectExportsAndImports.js +0 -1157
- package/esm/utils/collectExportsAndImports.js.map +0 -1
- package/esm/utils/collectTemplateDependencies.js +0 -228
- package/esm/utils/collectTemplateDependencies.js.map +0 -1
- package/esm/utils/createId.js +0 -6
- package/esm/utils/createId.js.map +0 -1
- package/esm/utils/findIdentifiers.js +0 -62
- package/esm/utils/findIdentifiers.js.map +0 -1
- package/esm/utils/getConstantStringValue.js +0 -58
- package/esm/utils/getConstantStringValue.js.map +0 -1
- package/esm/utils/getMemberExpressionPropertyName.js +0 -11
- package/esm/utils/getMemberExpressionPropertyName.js.map +0 -1
- package/esm/utils/getScope.js +0 -6
- package/esm/utils/getScope.js.map +0 -1
- package/esm/utils/getSource.js +0 -15
- package/esm/utils/getSource.js.map +0 -1
- package/esm/utils/getTagProcessor.js +0 -404
- package/esm/utils/getTagProcessor.js.map +0 -1
- package/esm/utils/isExports.js +0 -22
- package/esm/utils/isExports.js.map +0 -1
- package/esm/utils/isGlobal.js +0 -6
- package/esm/utils/isGlobal.js.map +0 -1
- package/esm/utils/isNodePath.js +0 -4
- package/esm/utils/isNodePath.js.map +0 -1
- package/esm/utils/isRemoved.js +0 -46
- package/esm/utils/isRemoved.js.map +0 -1
- package/esm/utils/isRequire.js +0 -13
- package/esm/utils/isRequire.js.map +0 -1
- package/esm/utils/isTypedNode.js +0 -6
- package/esm/utils/isTypedNode.js.map +0 -1
- package/esm/utils/isUnnecessaryReactCall.js +0 -72
- package/esm/utils/isUnnecessaryReactCall.js.map +0 -1
- package/esm/utils/removeDangerousCode.js +0 -276
- package/esm/utils/removeDangerousCode.js.map +0 -1
- package/esm/utils/replaceImportMetaEnv.js +0 -44
- package/esm/utils/replaceImportMetaEnv.js.map +0 -1
- package/esm/utils/scopeHelpers.js +0 -527
- package/esm/utils/scopeHelpers.js.map +0 -1
- package/esm/utils/traversalCache.js +0 -23
- package/esm/utils/traversalCache.js.map +0 -1
- package/esm/utils/unwrapExpression.js +0 -18
- package/esm/utils/unwrapExpression.js.map +0 -1
- package/esm/utils/unwrapSequence.js +0 -14
- package/esm/utils/unwrapSequence.js.map +0 -1
- package/esm/utils/valueToLiteral.js +0 -59
- package/esm/utils/valueToLiteral.js.map +0 -1
- package/esm/utils/visitors/JSXElementsRemover.js +0 -51
- package/esm/utils/visitors/JSXElementsRemover.js.map +0 -1
- package/lib/babel.js +0 -2
- package/lib/babel.js.map +0 -1
- package/lib/cache.js +0 -308
- package/lib/cache.js.map +0 -1
- package/lib/debug/fileReporter.js +0 -153
- package/lib/debug/fileReporter.js.map +0 -1
- package/lib/evaluators/index.js +0 -20
- package/lib/evaluators/index.js.map +0 -1
- package/lib/index.js +0 -286
- package/lib/index.js.map +0 -1
- package/lib/module.js +0 -552
- package/lib/module.js.map +0 -1
- package/lib/options/buildOptions.js +0 -176
- package/lib/options/buildOptions.js.map +0 -1
- package/lib/options/buildOptions.test.js +0 -141
- package/lib/options/buildOptions.test.js.map +0 -1
- package/lib/options/loadBabelOptions.js +0 -31
- package/lib/options/loadBabelOptions.js.map +0 -1
- package/lib/plugins/babel-transform.js +0 -60
- package/lib/plugins/babel-transform.js.map +0 -1
- package/lib/plugins/collector.js +0 -70
- package/lib/plugins/collector.js.map +0 -1
- package/lib/plugins/dynamic-import.js +0 -61
- package/lib/plugins/dynamic-import.js.map +0 -1
- package/lib/plugins/preeval.js +0 -81
- package/lib/plugins/preeval.js.map +0 -1
- package/lib/plugins/shaker.js +0 -691
- package/lib/plugins/shaker.js.map +0 -1
- package/lib/shaker.js +0 -95
- package/lib/shaker.js.map +0 -1
- package/lib/transform/BaseEntrypoint.js +0 -179
- package/lib/transform/BaseEntrypoint.js.map +0 -1
- package/lib/transform/Entrypoint.helpers.js +0 -279
- package/lib/transform/Entrypoint.helpers.js.map +0 -1
- package/lib/transform/Entrypoint.js +0 -289
- package/lib/transform/Entrypoint.js.map +0 -1
- package/lib/transform/Entrypoint.types.js +0 -2
- package/lib/transform/Entrypoint.types.js.map +0 -1
- package/lib/transform/EvaluatedEntrypoint.js +0 -13
- package/lib/transform/EvaluatedEntrypoint.js.map +0 -1
- package/lib/transform/actions/AbortError.js +0 -16
- package/lib/transform/actions/AbortError.js.map +0 -1
- package/lib/transform/actions/BaseAction.js +0 -150
- package/lib/transform/actions/BaseAction.js.map +0 -1
- package/lib/transform/actions/UnprocessedEntrypointError.js +0 -16
- package/lib/transform/actions/UnprocessedEntrypointError.js.map +0 -1
- package/lib/transform/actions/actionRunner.js +0 -82
- package/lib/transform/actions/actionRunner.js.map +0 -1
- package/lib/transform/actions/types.js +0 -2
- package/lib/transform/actions/types.js.map +0 -1
- package/lib/transform/barrelManifest.js +0 -300
- package/lib/transform/barrelManifest.js.map +0 -1
- package/lib/transform/generators/baseProcessingHandlers.js +0 -27
- package/lib/transform/generators/baseProcessingHandlers.js.map +0 -1
- package/lib/transform/generators/collect.js +0 -66
- package/lib/transform/generators/collect.js.map +0 -1
- package/lib/transform/generators/createStylisPreprocessor.js +0 -372
- package/lib/transform/generators/createStylisPreprocessor.js.map +0 -1
- package/lib/transform/generators/evalFile.js +0 -57
- package/lib/transform/generators/evalFile.js.map +0 -1
- package/lib/transform/generators/explodeReexports.js +0 -71
- package/lib/transform/generators/explodeReexports.js.map +0 -1
- package/lib/transform/generators/extract.js +0 -102
- package/lib/transform/generators/extract.js.map +0 -1
- package/lib/transform/generators/getExports.js +0 -85
- package/lib/transform/generators/getExports.js.map +0 -1
- package/lib/transform/generators/index.js +0 -19
- package/lib/transform/generators/index.js.map +0 -1
- package/lib/transform/generators/processEntrypoint.js +0 -76
- package/lib/transform/generators/processEntrypoint.js.map +0 -1
- package/lib/transform/generators/processImports.js +0 -82
- package/lib/transform/generators/processImports.js.map +0 -1
- package/lib/transform/generators/resolveImports.js +0 -221
- package/lib/transform/generators/resolveImports.js.map +0 -1
- package/lib/transform/generators/rewriteBarrelImports.js +0 -743
- package/lib/transform/generators/rewriteBarrelImports.js.map +0 -1
- package/lib/transform/generators/transform.js +0 -272
- package/lib/transform/generators/transform.js.map +0 -1
- package/lib/transform/generators/workflow.js +0 -100
- package/lib/transform/generators/workflow.js.map +0 -1
- package/lib/transform/helpers/loadWywOptions.js +0 -88
- package/lib/transform/helpers/loadWywOptions.js.map +0 -1
- package/lib/transform/helpers/withDefaultServices.js +0 -31
- package/lib/transform/helpers/withDefaultServices.js.map +0 -1
- package/lib/transform/isStaticallyEvaluatableModule.js +0 -159
- package/lib/transform/isStaticallyEvaluatableModule.js.map +0 -1
- package/lib/transform/rootLog.js +0 -9
- package/lib/transform/rootLog.js.map +0 -1
- package/lib/transform/types.js +0 -8
- package/lib/transform/types.js.map +0 -1
- package/lib/transform.js +0 -160
- package/lib/transform.js.map +0 -1
- package/lib/types.js +0 -2
- package/lib/types.js.map +0 -1
- package/lib/utils/EventEmitter.js +0 -61
- package/lib/utils/EventEmitter.js.map +0 -1
- package/lib/utils/ShakerMetadata.js +0 -9
- package/lib/utils/ShakerMetadata.js.map +0 -1
- package/lib/utils/TransformDiagnostics.js +0 -20
- package/lib/utils/TransformDiagnostics.js.map +0 -1
- package/lib/utils/TransformMetadata.js +0 -45
- package/lib/utils/TransformMetadata.js.map +0 -1
- package/lib/utils/addIdentifierToWywPreval.js +0 -75
- package/lib/utils/addIdentifierToWywPreval.js.map +0 -1
- package/lib/utils/collectExportsAndImports.js +0 -1173
- package/lib/utils/collectExportsAndImports.js.map +0 -1
- package/lib/utils/collectTemplateDependencies.js +0 -242
- package/lib/utils/collectTemplateDependencies.js.map +0 -1
- package/lib/utils/createId.js +0 -13
- package/lib/utils/createId.js.map +0 -1
- package/lib/utils/dispose-polyfill.js +0 -9
- package/lib/utils/dispose-polyfill.js.map +0 -1
- package/lib/utils/findIdentifiers.js +0 -73
- package/lib/utils/findIdentifiers.js.map +0 -1
- package/lib/utils/getConstantStringValue.js +0 -66
- package/lib/utils/getConstantStringValue.js.map +0 -1
- package/lib/utils/getFileIdx.js +0 -16
- package/lib/utils/getFileIdx.js.map +0 -1
- package/lib/utils/getMemberExpressionPropertyName.js +0 -18
- package/lib/utils/getMemberExpressionPropertyName.js.map +0 -1
- package/lib/utils/getPluginKey.js +0 -21
- package/lib/utils/getPluginKey.js.map +0 -1
- package/lib/utils/getScope.js +0 -12
- package/lib/utils/getScope.js.map +0 -1
- package/lib/utils/getSource.js +0 -24
- package/lib/utils/getSource.js.map +0 -1
- package/lib/utils/getTagProcessor.js +0 -424
- package/lib/utils/getTagProcessor.js.map +0 -1
- package/lib/utils/getVisitorKeys.js +0 -11
- package/lib/utils/getVisitorKeys.js.map +0 -1
- package/lib/utils/hasWywPreval.js +0 -13
- package/lib/utils/hasWywPreval.js.map +0 -1
- package/lib/utils/importOverrides.js +0 -119
- package/lib/utils/importOverrides.js.map +0 -1
- package/lib/utils/isExports.js +0 -27
- package/lib/utils/isExports.js.map +0 -1
- package/lib/utils/isGlobal.js +0 -13
- package/lib/utils/isGlobal.js.map +0 -1
- package/lib/utils/isNode.js +0 -9
- package/lib/utils/isNode.js.map +0 -1
- package/lib/utils/isNodePath.js +0 -10
- package/lib/utils/isNodePath.js.map +0 -1
- package/lib/utils/isNotNull.js +0 -10
- package/lib/utils/isNotNull.js.map +0 -1
- package/lib/utils/isRemoved.js +0 -52
- package/lib/utils/isRemoved.js.map +0 -1
- package/lib/utils/isRequire.js +0 -18
- package/lib/utils/isRequire.js.map +0 -1
- package/lib/utils/isSerializable.js +0 -19
- package/lib/utils/isSerializable.js.map +0 -1
- package/lib/utils/isTypedNode.js +0 -13
- package/lib/utils/isTypedNode.js.map +0 -1
- package/lib/utils/isUnnecessaryReactCall.js +0 -81
- package/lib/utils/isUnnecessaryReactCall.js.map +0 -1
- package/lib/utils/parseRequest.js +0 -37
- package/lib/utils/parseRequest.js.map +0 -1
- package/lib/utils/peek.js +0 -9
- package/lib/utils/peek.js.map +0 -1
- package/lib/utils/removeDangerousCode.js +0 -284
- package/lib/utils/removeDangerousCode.js.map +0 -1
- package/lib/utils/replaceImportMetaEnv.js +0 -50
- package/lib/utils/replaceImportMetaEnv.js.map +0 -1
- package/lib/utils/scopeHelpers.js +0 -557
- package/lib/utils/scopeHelpers.js.map +0 -1
- package/lib/utils/traversalCache.js +0 -31
- package/lib/utils/traversalCache.js.map +0 -1
- package/lib/utils/unwrapExpression.js +0 -25
- package/lib/utils/unwrapExpression.js.map +0 -1
- package/lib/utils/unwrapSequence.js +0 -20
- package/lib/utils/unwrapSequence.js.map +0 -1
- package/lib/utils/valueToLiteral.js +0 -65
- package/lib/utils/valueToLiteral.js.map +0 -1
- package/lib/utils/visitors/JSXElementsRemover.js +0 -57
- package/lib/utils/visitors/JSXElementsRemover.js.map +0 -1
- package/lib/vm/createVmContext.js +0 -166
- package/lib/vm/createVmContext.js.map +0 -1
- package/lib/vm/process.js +0 -38
- package/lib/vm/process.js.map +0 -1
- package/types/babel.d.ts +0 -2
- package/types/babel.js +0 -2
- package/types/options/buildOptions.d.ts +0 -6
- package/types/options/buildOptions.js +0 -178
- package/types/options/loadBabelOptions.d.ts +0 -3
- package/types/options/loadBabelOptions.js +0 -26
- package/types/plugins/babel-transform.d.ts +0 -4
- package/types/plugins/babel-transform.js +0 -49
- package/types/plugins/collector.d.ts +0 -23
- package/types/plugins/collector.js +0 -62
- package/types/plugins/dynamic-import.d.ts +0 -6
- package/types/plugins/dynamic-import.js +0 -60
- package/types/plugins/preeval.d.ts +0 -16
- package/types/plugins/preeval.js +0 -69
- package/types/plugins/shaker.d.ts +0 -14
- package/types/plugins/shaker.js +0 -724
- package/types/transform/generators/explodeReexports.d.ts +0 -7
- package/types/transform/generators/explodeReexports.js +0 -65
- package/types/utils/addIdentifierToWywPreval.d.ts +0 -4
- package/types/utils/addIdentifierToWywPreval.js +0 -74
- package/types/utils/collectExportsAndImports.d.ts +0 -31
- package/types/utils/collectExportsAndImports.js +0 -1147
- package/types/utils/collectTemplateDependencies.d.ts +0 -17
- package/types/utils/collectTemplateDependencies.js +0 -220
- package/types/utils/createId.d.ts +0 -2
- package/types/utils/createId.js +0 -9
- package/types/utils/findIdentifiers.d.ts +0 -6
- package/types/utils/findIdentifiers.js +0 -67
- package/types/utils/getConstantStringValue.d.ts +0 -2
- package/types/utils/getConstantStringValue.js +0 -94
- package/types/utils/getMemberExpressionPropertyName.d.ts +0 -2
- package/types/utils/getMemberExpressionPropertyName.js +0 -46
- package/types/utils/getScope.d.ts +0 -2
- package/types/utils/getScope.js +0 -10
- package/types/utils/getSource.d.ts +0 -2
- package/types/utils/getSource.js +0 -22
- package/types/utils/getTagProcessor.d.ts +0 -13
- package/types/utils/getTagProcessor.js +0 -411
- package/types/utils/isExports.d.ts +0 -6
- package/types/utils/isExports.js +0 -19
- package/types/utils/isGlobal.d.ts +0 -2
- package/types/utils/isGlobal.js +0 -9
- package/types/utils/isNodePath.d.ts +0 -3
- package/types/utils/isNodePath.js +0 -6
- package/types/utils/isRemoved.d.ts +0 -5
- package/types/utils/isRemoved.js +0 -41
- package/types/utils/isRequire.d.ts +0 -6
- package/types/utils/isRequire.js +0 -14
- package/types/utils/isTypedNode.d.ts +0 -5
- package/types/utils/isTypedNode.js +0 -9
- package/types/utils/isUnnecessaryReactCall.d.ts +0 -3
- package/types/utils/isUnnecessaryReactCall.js +0 -75
- package/types/utils/removeDangerousCode.d.ts +0 -4
- package/types/utils/removeDangerousCode.js +0 -326
- package/types/utils/replaceImportMetaEnv.d.ts +0 -3
- package/types/utils/replaceImportMetaEnv.js +0 -39
- package/types/utils/scopeHelpers.d.ts +0 -12
- package/types/utils/scopeHelpers.js +0 -580
- package/types/utils/traversalCache.d.ts +0 -4
- package/types/utils/traversalCache.js +0 -27
- package/types/utils/unwrapExpression.d.ts +0 -2
- package/types/utils/unwrapExpression.js +0 -57
- package/types/utils/unwrapSequence.d.ts +0 -8
- package/types/utils/unwrapSequence.js +0 -16
- package/types/utils/valueToLiteral.d.ts +0 -3
- package/types/utils/valueToLiteral.js +0 -63
- package/types/utils/visitors/JSXElementsRemover.d.ts +0 -3
- package/types/utils/visitors/JSXElementsRemover.js +0 -51
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { spawnSync } from "child_process";
|
|
2
|
+
import NativeModule from "module";
|
|
3
|
+
const NODE_CONDITIONAL_RESOLVE_SCRIPT = String.raw`
|
|
4
|
+
const fs = require('node:fs');
|
|
5
|
+
const Module = require('node:module');
|
|
6
|
+
|
|
7
|
+
const input = JSON.parse(fs.readFileSync(0, 'utf8'));
|
|
8
|
+
|
|
9
|
+
try {
|
|
10
|
+
const resolved = Module._resolveFilename(
|
|
11
|
+
input.id,
|
|
12
|
+
input.parent,
|
|
13
|
+
false,
|
|
14
|
+
input.conditions ? { conditions: new Set(input.conditions) } : undefined
|
|
15
|
+
);
|
|
16
|
+
fs.writeFileSync(1, JSON.stringify({ resolved }));
|
|
17
|
+
} catch (error) {
|
|
18
|
+
fs.writeFileSync(
|
|
19
|
+
1,
|
|
20
|
+
JSON.stringify({
|
|
21
|
+
error: {
|
|
22
|
+
code:
|
|
23
|
+
error && typeof error === 'object' && 'code' in error
|
|
24
|
+
? error.code
|
|
25
|
+
: undefined,
|
|
26
|
+
message: error instanceof Error ? error.message : String(error),
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
);
|
|
30
|
+
process.exitCode = 1;
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
const isBunRuntime = () => process.execPath.includes("bun");
|
|
34
|
+
const nativeResolveFilename = NativeModule._resolveFilename;
|
|
35
|
+
const resolveWithNodeProcess = (id, parent, conditions) => {
|
|
36
|
+
const nodeBinary = process.env.WYW_NODE_BINARY || "node";
|
|
37
|
+
const result = spawnSync(nodeBinary, ["-e", NODE_CONDITIONAL_RESOLVE_SCRIPT], {
|
|
38
|
+
encoding: "utf8",
|
|
39
|
+
input: JSON.stringify({
|
|
40
|
+
conditions: [...conditions],
|
|
41
|
+
id,
|
|
42
|
+
parent
|
|
43
|
+
}),
|
|
44
|
+
maxBuffer: 1024 * 1024
|
|
45
|
+
});
|
|
46
|
+
if (result.error) {
|
|
47
|
+
throw result.error;
|
|
48
|
+
}
|
|
49
|
+
let parsed = null;
|
|
50
|
+
const stdout = result.stdout.trim();
|
|
51
|
+
if (stdout) {
|
|
52
|
+
try {
|
|
53
|
+
parsed = JSON.parse(stdout);
|
|
54
|
+
} catch {
|
|
55
|
+
throw new Error([
|
|
56
|
+
"[wyw-in-js] Failed to parse custom module resolver output.",
|
|
57
|
+
`stdout: ${stdout}`,
|
|
58
|
+
result.stderr ? `stderr: ${result.stderr.trim()}` : ""
|
|
59
|
+
].filter(Boolean).join("\n"));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (parsed?.error) {
|
|
63
|
+
const error = new Error(parsed.error.message);
|
|
64
|
+
error.code = parsed.error.code;
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
if (result.status !== 0 || !parsed?.resolved) {
|
|
68
|
+
throw new Error([
|
|
69
|
+
"[wyw-in-js] Custom module resolver fallback failed.",
|
|
70
|
+
`status: ${result.status ?? "null"}`,
|
|
71
|
+
result.stderr ? `stderr: ${result.stderr.trim()}` : ""
|
|
72
|
+
].filter(Boolean).join("\n"));
|
|
73
|
+
}
|
|
74
|
+
return parsed.resolved;
|
|
75
|
+
};
|
|
76
|
+
export const resolveFilenameWithConditions = (moduleImpl, id, parent, conditions) => {
|
|
77
|
+
const resolveOptions = conditions ? { conditions } : undefined;
|
|
78
|
+
const usesNativeResolver = moduleImpl._resolveFilename === nativeResolveFilename;
|
|
79
|
+
if (!conditions || !isBunRuntime() || !usesNativeResolver) {
|
|
80
|
+
return moduleImpl._resolveFilename(id, parent, false, resolveOptions);
|
|
81
|
+
}
|
|
82
|
+
// Bun crashes on macOS/Silicon in this exact path:
|
|
83
|
+
// Module._resolveFilename(specifier, parent, false, { conditions })
|
|
84
|
+
// We reproduced it both with a tiny standalone script and through the
|
|
85
|
+
// `EvalBroker > passes conditionNames to native fallback resolution` test,
|
|
86
|
+
// including on Bun 1.3.13. Keep this fallback narrow: only conditioned
|
|
87
|
+
// resolution under Bun goes through a short-lived Node subprocess.
|
|
88
|
+
//
|
|
89
|
+
// Cleanup criteria:
|
|
90
|
+
// 1. Bun passes the minimal local `_resolveFilename(..., { conditions })`
|
|
91
|
+
// repro on macOS without segfaulting.
|
|
92
|
+
// 2. The conditionNames runner path passes without this fallback.
|
|
93
|
+
//
|
|
94
|
+
// As of 2026-04-20 we did not find an exact open upstream Bun issue for this
|
|
95
|
+
// `_resolveFilename(..., { conditions })` crash, so keep the comment factual
|
|
96
|
+
// and the workaround self-contained.
|
|
97
|
+
return resolveWithNodeProcess(id, parent, conditions);
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=resolveWithConditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAAA,SAAS,iBAAiB;AAC1B,OAAO,kBAAkB;AAsBzB,MAAM,kCAAkC,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BlD,MAAM,qBAAqB,QAAQ,SAAS,SAAS,MAAM;AAE3D,MAAM,wBACJ,aACA;AAEF,MAAM,0BACJ,IACA,QACA,eACW;CACX,MAAM,aAAa,QAAQ,IAAI,mBAAmB;CAClD,MAAM,SAAS,UACb,YACA,CAAC,MAAM,gCAAgC,EACvC;EACE,UAAU;EACV,OAAO,KAAK,UAAU;GACpB,YAAY,CAAC,GAAG,WAAW;GAC3B;GACA;GACD,CAAC;EACF,WAAW,OAAO;EACnB,CACF;AAED,KAAI,OAAO,OAAO;AAChB,QAAM,OAAO;;CAGf,IAAI,SAA8C;CAClD,MAAM,SAAS,OAAO,OAAO,MAAM;AACnC,KAAI,QAAQ;AACV,MAAI;AACF,YAAS,KAAK,MAAM,OAAO;UACrB;AACN,SAAM,IAAI,MACR;IACE;IACA,WAAW;IACX,OAAO,SAAS,WAAW,OAAO,OAAO,MAAM,KAAK;IACrD,CACE,OAAO,QAAQ,CACf,KAAK,KAAK,CACd;;;AAIL,KAAI,QAAQ,OAAO;EACjB,MAAM,QAAQ,IAAI,MAAM,OAAO,MAAM,QAAQ;AAC7C,QAAM,OAAO,OAAO,MAAM;AAC1B,QAAM;;AAGR,KAAI,OAAO,WAAW,KAAK,CAAC,QAAQ,UAAU;AAC5C,QAAM,IAAI,MACR;GACE;GACA,WAAW,OAAO,UAAU;GAC5B,OAAO,SAAS,WAAW,OAAO,OAAO,MAAM,KAAK;GACrD,CACE,OAAO,QAAQ,CACf,KAAK,KAAK,CACd;;AAGH,QAAO,OAAO;;AAGhB,OAAO,MAAM,iCACX,YACA,IACA,QACA,eACW;CACX,MAAM,iBAAiB,aAAa,EAAE,YAAY,GAAG;CACrD,MAAM,qBACJ,WAAW,qBAAqB;AAElC,KAAI,CAAC,cAAc,CAAC,cAAc,IAAI,CAAC,oBAAoB;AACzD,SAAO,WAAW,iBAAiB,IAAI,QAAQ,OAAO,eAAe;;;;;;;;;;;;;;;;;AAkBvE,QAAO,uBAAuB,IAAI,QAAQ,WAAW","names":[],"sources":["../../src/utils/resolveWithConditions.ts"],"version":3,"sourcesContent":["import { spawnSync } from 'child_process';\nimport NativeModule from 'module';\n\ntype ResolveFilenameParent = {\n filename: string;\n id: string;\n paths: string[];\n};\n\ntype ResolveFilenameModuleImplementation = {\n _resolveFilename: (\n id: string,\n options: ResolveFilenameParent,\n isMain?: boolean,\n resolveOptions?: { conditions?: Set<string> }\n ) => string;\n};\n\ntype NodeConditionalResolveResult = {\n error?: { code?: string; message: string };\n resolved?: string;\n};\n\nconst NODE_CONDITIONAL_RESOLVE_SCRIPT = String.raw`\nconst fs = require('node:fs');\nconst Module = require('node:module');\n\nconst input = JSON.parse(fs.readFileSync(0, 'utf8'));\n\ntry {\n const resolved = Module._resolveFilename(\n input.id,\n input.parent,\n false,\n input.conditions ? { conditions: new Set(input.conditions) } : undefined\n );\n fs.writeFileSync(1, JSON.stringify({ resolved }));\n} catch (error) {\n fs.writeFileSync(\n 1,\n JSON.stringify({\n error: {\n code:\n error && typeof error === 'object' && 'code' in error\n ? error.code\n : undefined,\n message: error instanceof Error ? error.message : String(error),\n },\n })\n );\n process.exitCode = 1;\n}\n`;\n\nconst isBunRuntime = () => process.execPath.includes('bun');\n\nconst nativeResolveFilename = (\n NativeModule as unknown as ResolveFilenameModuleImplementation\n)._resolveFilename;\n\nconst resolveWithNodeProcess = (\n id: string,\n parent: ResolveFilenameParent,\n conditions: Set<string>\n): string => {\n const nodeBinary = process.env.WYW_NODE_BINARY || 'node';\n const result = spawnSync(\n nodeBinary,\n ['-e', NODE_CONDITIONAL_RESOLVE_SCRIPT],\n {\n encoding: 'utf8',\n input: JSON.stringify({\n conditions: [...conditions],\n id,\n parent,\n }),\n maxBuffer: 1024 * 1024,\n }\n );\n\n if (result.error) {\n throw result.error;\n }\n\n let parsed: NodeConditionalResolveResult | null = null;\n const stdout = result.stdout.trim();\n if (stdout) {\n try {\n parsed = JSON.parse(stdout) as NodeConditionalResolveResult;\n } catch {\n throw new Error(\n [\n '[wyw-in-js] Failed to parse custom module resolver output.',\n `stdout: ${stdout}`,\n result.stderr ? `stderr: ${result.stderr.trim()}` : '',\n ]\n .filter(Boolean)\n .join('\\n')\n );\n }\n }\n\n if (parsed?.error) {\n const error = new Error(parsed.error.message) as NodeJS.ErrnoException;\n error.code = parsed.error.code;\n throw error;\n }\n\n if (result.status !== 0 || !parsed?.resolved) {\n throw new Error(\n [\n '[wyw-in-js] Custom module resolver fallback failed.',\n `status: ${result.status ?? 'null'}`,\n result.stderr ? `stderr: ${result.stderr.trim()}` : '',\n ]\n .filter(Boolean)\n .join('\\n')\n );\n }\n\n return parsed.resolved;\n};\n\nexport const resolveFilenameWithConditions = (\n moduleImpl: ResolveFilenameModuleImplementation,\n id: string,\n parent: ResolveFilenameParent,\n conditions?: Set<string>\n): string => {\n const resolveOptions = conditions ? { conditions } : undefined;\n const usesNativeResolver =\n moduleImpl._resolveFilename === nativeResolveFilename;\n\n if (!conditions || !isBunRuntime() || !usesNativeResolver) {\n return moduleImpl._resolveFilename(id, parent, false, resolveOptions);\n }\n\n // Bun crashes on macOS/Silicon in this exact path:\n // Module._resolveFilename(specifier, parent, false, { conditions })\n // We reproduced it both with a tiny standalone script and through the\n // `EvalBroker > passes conditionNames to native fallback resolution` test,\n // including on Bun 1.3.13. Keep this fallback narrow: only conditioned\n // resolution under Bun goes through a short-lived Node subprocess.\n //\n // Cleanup criteria:\n // 1. Bun passes the minimal local `_resolveFilename(..., { conditions })`\n // repro on macOS without segfaulting.\n // 2. The conditionNames runner path passes without this fallback.\n //\n // As of 2026-04-20 we did not find an exact open upstream Bun issue for this\n // `_resolveFilename(..., { conditions })` crash, so keep the comment factual\n // and the workaround self-contained.\n return resolveWithNodeProcess(id, parent, conditions);\n};\n"],"file":"resolveWithConditions.js"}
|
|
@@ -1,159 +1,158 @@
|
|
|
1
|
-
import * as vm from
|
|
2
|
-
import { isFeatureEnabled } from
|
|
3
|
-
import * as process from
|
|
1
|
+
import * as vm from "vm";
|
|
2
|
+
import { isFeatureEnabled } from "@wyw-in-js/shared";
|
|
3
|
+
import * as process from "./process.js";
|
|
4
4
|
const NOOP = () => {};
|
|
5
|
-
const IMPORT_META_ENV =
|
|
6
|
-
const HAPPY_DOM_REQUIRE_HOOK =
|
|
5
|
+
const IMPORT_META_ENV = "__wyw_import_meta_env";
|
|
6
|
+
const HAPPY_DOM_REQUIRE_HOOK = "__wyw_requireHappyDom";
|
|
7
7
|
let importMetaEnvWarned = false;
|
|
8
|
-
let
|
|
8
|
+
let happyDomLoadWarned = false;
|
|
9
9
|
let happyDomUnavailable = false;
|
|
10
10
|
function isErrRequireEsm(error) {
|
|
11
|
-
|
|
11
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === "ERR_REQUIRE_ESM";
|
|
12
12
|
}
|
|
13
13
|
function createImportMetaEnvProxy() {
|
|
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
|
-
|
|
14
|
+
const target = Object.create(null);
|
|
15
|
+
const warnOnce = () => {
|
|
16
|
+
if (importMetaEnvWarned) return;
|
|
17
|
+
importMetaEnvWarned = true;
|
|
18
|
+
// eslint-disable-next-line no-console
|
|
19
|
+
console.warn([
|
|
20
|
+
`[wyw-in-js] import.meta.env was accessed during build-time evaluation, but no env values were provided.`,
|
|
21
|
+
``,
|
|
22
|
+
`If you're using Vite, make sure @wyw-in-js/vite plugin is enabled (it injects Vite env for evaluation).`,
|
|
23
|
+
`Otherwise provide "__wyw_import_meta_env" via pluginOptions.overrideContext.`
|
|
24
|
+
].join("\n"));
|
|
25
|
+
};
|
|
26
|
+
return new Proxy(target, {
|
|
27
|
+
get(obj, key) {
|
|
28
|
+
if (typeof key === "symbol") {
|
|
29
|
+
return Reflect.get(obj, key);
|
|
30
|
+
}
|
|
31
|
+
warnOnce();
|
|
32
|
+
return obj[key];
|
|
33
|
+
},
|
|
34
|
+
has(obj, key) {
|
|
35
|
+
if (typeof key === "symbol") {
|
|
36
|
+
return Reflect.has(obj, key);
|
|
37
|
+
}
|
|
38
|
+
warnOnce();
|
|
39
|
+
return Reflect.has(obj, key);
|
|
40
|
+
},
|
|
41
|
+
getOwnPropertyDescriptor(obj, key) {
|
|
42
|
+
return Reflect.getOwnPropertyDescriptor(obj, key);
|
|
43
|
+
},
|
|
44
|
+
ownKeys(obj) {
|
|
45
|
+
return Reflect.ownKeys(obj);
|
|
46
|
+
},
|
|
47
|
+
set(obj, key, value) {
|
|
48
|
+
if (typeof key === "symbol") {
|
|
49
|
+
return Reflect.set(obj, key, value);
|
|
50
|
+
}
|
|
51
|
+
warnOnce();
|
|
52
|
+
return Reflect.set(obj, key, value);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
50
55
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
let happyDomImportPromise = null;
|
|
57
|
+
async function loadHappyDom() {
|
|
58
|
+
const hook = globalThis[HAPPY_DOM_REQUIRE_HOOK];
|
|
59
|
+
if (typeof hook === "function") {
|
|
60
|
+
const result = hook();
|
|
61
|
+
return Promise.resolve(result);
|
|
62
|
+
}
|
|
63
|
+
if (!happyDomImportPromise) {
|
|
64
|
+
happyDomImportPromise = import("happy-dom");
|
|
65
|
+
}
|
|
66
|
+
return happyDomImportPromise;
|
|
58
67
|
}
|
|
59
|
-
function createWindow() {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
console.warn([`[wyw-in-js] DOM emulation is enabled (features.happyDOM), but "happy-dom" could not be loaded in this build-time runtime.`, `This usually happens because "happy-dom" is ESM-only and cannot be loaded via require() in a CJS build.`, ``, `WyW will continue without DOM emulation (as if features.happyDOM:false).`, ``, `To silence this warning: set features: { happyDOM: false }.`, `To get real DOM emulation in Node 20+, WyW needs an ESM-only eval architecture (planned for v2.0.0),`, `or a runtime that supports require(ESM) (Node 24+).`].join('\n'));
|
|
86
|
-
return undefined;
|
|
87
|
-
}
|
|
68
|
+
async function createWindow() {
|
|
69
|
+
if (happyDomUnavailable) return undefined;
|
|
70
|
+
try {
|
|
71
|
+
const { Window, GlobalWindow } = await loadHappyDom();
|
|
72
|
+
const HappyWindow = GlobalWindow || Window;
|
|
73
|
+
const win = new HappyWindow();
|
|
74
|
+
// TODO: browser doesn't expose Buffer, but a lot of dependencies use it
|
|
75
|
+
win.Buffer = Buffer;
|
|
76
|
+
win.Uint8Array = Uint8Array;
|
|
77
|
+
return win;
|
|
78
|
+
} catch (error) {
|
|
79
|
+
if (isErrRequireEsm(error)) {} else if (!happyDomUnavailable) {
|
|
80
|
+
happyDomUnavailable = true;
|
|
81
|
+
}
|
|
82
|
+
if (happyDomLoadWarned) return undefined;
|
|
83
|
+
happyDomLoadWarned = true;
|
|
84
|
+
// eslint-disable-next-line no-console
|
|
85
|
+
console.warn([
|
|
86
|
+
`[wyw-in-js] DOM emulation is enabled (features.happyDOM), but "happy-dom" could not be loaded in this build-time runtime.`,
|
|
87
|
+
`WyW will continue without DOM emulation (as if features.happyDOM:false).`,
|
|
88
|
+
``,
|
|
89
|
+
`To silence this warning: set features: { happyDOM: false }.`,
|
|
90
|
+
`To restore DOM emulation, ensure "happy-dom" can be imported in the build-time runtime.`
|
|
91
|
+
].join("\n"));
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
88
94
|
}
|
|
89
|
-
|
|
90
95
|
/**
|
|
91
|
-
|
|
92
|
-
|
|
96
|
+
* `happy-dom` already has required references, so we don't need to set them.
|
|
97
|
+
*/
|
|
93
98
|
function setReferencePropertyIfNotPresent(context, key) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
99
|
+
if (context[key] === context) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
context[key] = context;
|
|
98
103
|
}
|
|
99
104
|
function createBaseContext(win, additionalContext) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return baseContext;
|
|
105
|
+
const baseContext = win ?? {};
|
|
106
|
+
setReferencePropertyIfNotPresent(baseContext, "window");
|
|
107
|
+
setReferencePropertyIfNotPresent(baseContext, "self");
|
|
108
|
+
setReferencePropertyIfNotPresent(baseContext, "top");
|
|
109
|
+
setReferencePropertyIfNotPresent(baseContext, "parent");
|
|
110
|
+
setReferencePropertyIfNotPresent(baseContext, "global");
|
|
111
|
+
setReferencePropertyIfNotPresent(baseContext, "process");
|
|
112
|
+
baseContext.document = win?.document;
|
|
113
|
+
baseContext.process = process;
|
|
114
|
+
baseContext.clearImmediate = NOOP;
|
|
115
|
+
baseContext.clearInterval = NOOP;
|
|
116
|
+
baseContext.clearTimeout = NOOP;
|
|
117
|
+
baseContext.setImmediate = NOOP;
|
|
118
|
+
baseContext.requestAnimationFrame = NOOP;
|
|
119
|
+
baseContext.setInterval = NOOP;
|
|
120
|
+
baseContext.setTimeout = NOOP;
|
|
121
|
+
// eslint-disable-next-line guard-for-in,no-restricted-syntax
|
|
122
|
+
for (const key in additionalContext) {
|
|
123
|
+
baseContext[key] = additionalContext[key];
|
|
124
|
+
}
|
|
125
|
+
return baseContext;
|
|
122
126
|
}
|
|
123
127
|
function createNothing() {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
return {
|
|
129
|
+
teardown: () => {},
|
|
130
|
+
window: undefined
|
|
131
|
+
};
|
|
128
132
|
}
|
|
129
|
-
function createHappyDOMWindow() {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
133
|
+
async function createHappyDOMWindow() {
|
|
134
|
+
const win = await createWindow();
|
|
135
|
+
if (!win) return createNothing();
|
|
136
|
+
return {
|
|
137
|
+
teardown: () => {
|
|
138
|
+
win.happyDOM.abort();
|
|
139
|
+
},
|
|
140
|
+
window: win
|
|
141
|
+
};
|
|
138
142
|
}
|
|
139
|
-
export function createVmContext(filename, features, additionalContext, overrideContext = i => i) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
const context = vm.createContext(baseContext);
|
|
154
|
-
return {
|
|
155
|
-
context,
|
|
156
|
-
teardown
|
|
157
|
-
};
|
|
143
|
+
export async function createVmContext(filename, features, additionalContext, overrideContext = (i) => i) {
|
|
144
|
+
const isHappyDOMEnabled = isFeatureEnabled(features, "happyDOM", filename);
|
|
145
|
+
const { teardown, window } = isHappyDOMEnabled ? await createHappyDOMWindow() : createNothing();
|
|
146
|
+
const envContext = { [IMPORT_META_ENV]: createImportMetaEnvProxy() };
|
|
147
|
+
const baseContext = createBaseContext(window, overrideContext({
|
|
148
|
+
__filename: filename,
|
|
149
|
+
...envContext,
|
|
150
|
+
...additionalContext
|
|
151
|
+
}, filename));
|
|
152
|
+
const context = vm.createContext(baseContext);
|
|
153
|
+
return {
|
|
154
|
+
context,
|
|
155
|
+
teardown
|
|
156
|
+
};
|
|
158
157
|
}
|
|
159
|
-
//# sourceMappingURL=createVmContext.js.map
|
|
158
|
+
//# sourceMappingURL=createVmContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createVmContext.js","names":["vm","isFeatureEnabled","process","NOOP","IMPORT_META_ENV","HAPPY_DOM_REQUIRE_HOOK","importMetaEnvWarned","happyDomRequireEsmWarned","happyDomUnavailable","isErrRequireEsm","error","code","createImportMetaEnvProxy","target","Object","create","warnOnce","console","warn","join","Proxy","get","obj","key","Reflect","has","getOwnPropertyDescriptor","ownKeys","set","value","requireHappyDom","hook","globalThis","require","createWindow","undefined","Window","GlobalWindow","HappyWindow","win","Buffer","Uint8Array","hasCustomRequireHook","setReferencePropertyIfNotPresent","context","createBaseContext","additionalContext","baseContext","document","clearImmediate","clearInterval","clearTimeout","setImmediate","requestAnimationFrame","setInterval","setTimeout","createNothing","teardown","window","createHappyDOMWindow","happyDOM","abort","createVmContext","filename","features","overrideContext","i","isHappyDOMEnabled","envContext","__filename","createContext"],"sources":["../../src/vm/createVmContext.ts"],"sourcesContent":["import * as vm from 'vm';\n\nimport type { Window } from 'happy-dom';\n\nimport type { FeatureFlags, StrictOptions } from '@wyw-in-js/shared';\nimport { isFeatureEnabled } from '@wyw-in-js/shared';\n\nimport * as process from './process';\n\nconst NOOP = () => {};\nconst IMPORT_META_ENV = '__wyw_import_meta_env';\nconst HAPPY_DOM_REQUIRE_HOOK = '__wyw_requireHappyDom';\n\nlet importMetaEnvWarned = false;\nlet happyDomRequireEsmWarned = false;\nlet happyDomUnavailable = false;\n\nfunction isErrRequireEsm(error: unknown): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n (error as { code?: unknown }).code === 'ERR_REQUIRE_ESM'\n );\n}\n\nfunction createImportMetaEnvProxy(): Record<string, unknown> {\n const target = Object.create(null) as Record<string, unknown>;\n\n const warnOnce = () => {\n if (importMetaEnvWarned) return;\n importMetaEnvWarned = true;\n // eslint-disable-next-line no-console\n console.warn(\n [\n `[wyw-in-js] import.meta.env was accessed during build-time evaluation, but no env values were provided.`,\n ``,\n `If you're using Vite, make sure @wyw-in-js/vite plugin is enabled (it injects Vite env for evaluation).`,\n `Otherwise provide \"__wyw_import_meta_env\" via pluginOptions.overrideContext.`,\n ].join('\\n')\n );\n };\n\n return new Proxy(target, {\n get(obj, key) {\n if (typeof key === 'symbol') {\n return Reflect.get(obj, key);\n }\n\n warnOnce();\n return obj[key];\n },\n has(obj, key) {\n if (typeof key === 'symbol') {\n return Reflect.has(obj, key);\n }\n\n warnOnce();\n return Reflect.has(obj, key);\n },\n getOwnPropertyDescriptor(obj, key) {\n return Reflect.getOwnPropertyDescriptor(obj, key);\n },\n ownKeys(obj) {\n return Reflect.ownKeys(obj);\n },\n set(obj, key, value) {\n if (typeof key === 'symbol') {\n return Reflect.set(obj, key, value);\n }\n\n warnOnce();\n return Reflect.set(obj, key, value);\n },\n });\n}\n\ntype HappyDomExports = {\n GlobalWindow?: new () => Window;\n Window: new () => Window;\n};\n\nfunction requireHappyDom(): HappyDomExports {\n const hook = (globalThis as Record<string, unknown>)[HAPPY_DOM_REQUIRE_HOOK];\n if (typeof hook === 'function') {\n return (hook as () => HappyDomExports)();\n }\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n return require('happy-dom') as HappyDomExports;\n}\n\nfunction createWindow(): Window | undefined {\n if (happyDomUnavailable) return undefined;\n\n try {\n const { Window, GlobalWindow } = requireHappyDom();\n const HappyWindow = GlobalWindow || Window;\n const win = new HappyWindow();\n\n // TODO: browser doesn't expose Buffer, but a lot of dependencies use it\n win.Buffer = Buffer;\n win.Uint8Array = Uint8Array;\n\n return win;\n } catch (error) {\n if (!isErrRequireEsm(error)) {\n throw error;\n }\n\n const hasCustomRequireHook =\n typeof (globalThis as Record<string, unknown>)[HAPPY_DOM_REQUIRE_HOOK] ===\n 'function';\n if (!hasCustomRequireHook) {\n happyDomUnavailable = true;\n }\n\n if (happyDomRequireEsmWarned) return undefined;\n happyDomRequireEsmWarned = true;\n\n // eslint-disable-next-line no-console\n console.warn(\n [\n `[wyw-in-js] DOM emulation is enabled (features.happyDOM), but \"happy-dom\" could not be loaded in this build-time runtime.`,\n `This usually happens because \"happy-dom\" is ESM-only and cannot be loaded via require() in a CJS build.`,\n ``,\n `WyW will continue without DOM emulation (as if features.happyDOM:false).`,\n ``,\n `To silence this warning: set features: { happyDOM: false }.`,\n `To get real DOM emulation in Node 20+, WyW needs an ESM-only eval architecture (planned for v2.0.0),`,\n `or a runtime that supports require(ESM) (Node 24+).`,\n ].join('\\n')\n );\n\n return undefined;\n }\n}\n\n/**\n * `happy-dom` already has required references, so we don't need to set them.\n */\nfunction setReferencePropertyIfNotPresent(\n context: vm.Context,\n key: string\n): void {\n if (context[key] === context) {\n return;\n }\n\n context[key] = context;\n}\n\nfunction createBaseContext(\n win: Window | undefined,\n additionalContext: Partial<vm.Context>\n): Partial<vm.Context> {\n const baseContext: vm.Context = win ?? {};\n\n setReferencePropertyIfNotPresent(baseContext, 'window');\n setReferencePropertyIfNotPresent(baseContext, 'self');\n setReferencePropertyIfNotPresent(baseContext, 'top');\n setReferencePropertyIfNotPresent(baseContext, 'parent');\n setReferencePropertyIfNotPresent(baseContext, 'global');\n setReferencePropertyIfNotPresent(baseContext, 'process');\n\n baseContext.document = win?.document;\n baseContext.process = process;\n\n baseContext.clearImmediate = NOOP;\n baseContext.clearInterval = NOOP;\n baseContext.clearTimeout = NOOP;\n baseContext.setImmediate = NOOP;\n baseContext.requestAnimationFrame = NOOP;\n baseContext.setInterval = NOOP;\n baseContext.setTimeout = NOOP;\n\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const key in additionalContext) {\n baseContext[key] = additionalContext[key];\n }\n\n return baseContext;\n}\n\nfunction createNothing() {\n return {\n teardown: () => {},\n window: undefined,\n };\n}\n\nfunction createHappyDOMWindow() {\n const win = createWindow();\n if (!win) return createNothing();\n\n return {\n teardown: () => {\n win.happyDOM.abort();\n },\n window: win,\n };\n}\n\nexport function createVmContext(\n filename: string,\n features: FeatureFlags<'happyDOM'>,\n additionalContext: Partial<vm.Context>,\n overrideContext: StrictOptions['overrideContext'] = (i) => i\n) {\n const isHappyDOMEnabled = isFeatureEnabled(features, 'happyDOM', filename);\n\n const { teardown, window } = isHappyDOMEnabled\n ? createHappyDOMWindow()\n : createNothing();\n const envContext: Partial<vm.Context> = {\n [IMPORT_META_ENV]: createImportMetaEnvProxy(),\n };\n const baseContext = createBaseContext(\n window,\n overrideContext(\n {\n __filename: filename,\n ...envContext,\n ...additionalContext,\n },\n filename\n )\n );\n\n const context = vm.createContext(baseContext);\n\n return {\n context,\n teardown,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"mappings":"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","names":[],"sources":["../../src/vm/createVmContext.ts"],"version":3,"sourcesContent":["import * as vm from 'vm';\n\nimport type { Window } from 'happy-dom';\n\nimport type { FeatureFlags, StrictOptions } from '@wyw-in-js/shared';\nimport { isFeatureEnabled } from '@wyw-in-js/shared';\n\nimport * as process from './process';\n\nconst NOOP = () => {};\nconst IMPORT_META_ENV = '__wyw_import_meta_env';\nconst HAPPY_DOM_REQUIRE_HOOK = '__wyw_requireHappyDom';\n\nlet importMetaEnvWarned = false;\nlet happyDomLoadWarned = false;\nlet happyDomUnavailable = false;\n\nfunction isErrRequireEsm(error: unknown): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n (error as { code?: unknown }).code === 'ERR_REQUIRE_ESM'\n );\n}\n\nfunction createImportMetaEnvProxy(): Record<string, unknown> {\n const target = Object.create(null) as Record<string, unknown>;\n\n const warnOnce = () => {\n if (importMetaEnvWarned) return;\n importMetaEnvWarned = true;\n // eslint-disable-next-line no-console\n console.warn(\n [\n `[wyw-in-js] import.meta.env was accessed during build-time evaluation, but no env values were provided.`,\n ``,\n `If you're using Vite, make sure @wyw-in-js/vite plugin is enabled (it injects Vite env for evaluation).`,\n `Otherwise provide \"__wyw_import_meta_env\" via pluginOptions.overrideContext.`,\n ].join('\\n')\n );\n };\n\n return new Proxy(target, {\n get(obj, key) {\n if (typeof key === 'symbol') {\n return Reflect.get(obj, key);\n }\n\n warnOnce();\n return obj[key];\n },\n has(obj, key) {\n if (typeof key === 'symbol') {\n return Reflect.has(obj, key);\n }\n\n warnOnce();\n return Reflect.has(obj, key);\n },\n getOwnPropertyDescriptor(obj, key) {\n return Reflect.getOwnPropertyDescriptor(obj, key);\n },\n ownKeys(obj) {\n return Reflect.ownKeys(obj);\n },\n set(obj, key, value) {\n if (typeof key === 'symbol') {\n return Reflect.set(obj, key, value);\n }\n\n warnOnce();\n return Reflect.set(obj, key, value);\n },\n });\n}\n\ntype HappyDomExports = {\n GlobalWindow?: new () => Window;\n Window: new () => Window;\n};\n\nlet happyDomImportPromise: Promise<HappyDomExports> | null = null;\n\nasync function loadHappyDom(): Promise<HappyDomExports> {\n const hook = (globalThis as Record<string, unknown>)[HAPPY_DOM_REQUIRE_HOOK];\n if (typeof hook === 'function') {\n const result = (hook as () => HappyDomExports | Promise<HappyDomExports>)();\n return Promise.resolve(result);\n }\n\n if (!happyDomImportPromise) {\n happyDomImportPromise = import('happy-dom') as Promise<HappyDomExports>;\n }\n\n return happyDomImportPromise;\n}\n\nasync function createWindow(): Promise<Window | undefined> {\n if (happyDomUnavailable) return undefined;\n\n try {\n const { Window, GlobalWindow } = await loadHappyDom();\n const HappyWindow = GlobalWindow || Window;\n const win = new HappyWindow();\n\n // TODO: browser doesn't expose Buffer, but a lot of dependencies use it\n win.Buffer = Buffer;\n win.Uint8Array = Uint8Array;\n\n return win;\n } catch (error) {\n if (isErrRequireEsm(error)) {\n // This can happen if a custom hook still uses require() for ESM.\n } else if (!happyDomUnavailable) {\n happyDomUnavailable = true;\n }\n\n if (happyDomLoadWarned) return undefined;\n happyDomLoadWarned = true;\n\n // eslint-disable-next-line no-console\n console.warn(\n [\n `[wyw-in-js] DOM emulation is enabled (features.happyDOM), but \"happy-dom\" could not be loaded in this build-time runtime.`,\n `WyW will continue without DOM emulation (as if features.happyDOM:false).`,\n ``,\n `To silence this warning: set features: { happyDOM: false }.`,\n `To restore DOM emulation, ensure \"happy-dom\" can be imported in the build-time runtime.`,\n ].join('\\n')\n );\n\n return undefined;\n }\n}\n\n/**\n * `happy-dom` already has required references, so we don't need to set them.\n */\nfunction setReferencePropertyIfNotPresent(\n context: vm.Context,\n key: string\n): void {\n if (context[key] === context) {\n return;\n }\n\n context[key] = context;\n}\n\nfunction createBaseContext(\n win: Window | undefined,\n additionalContext: Partial<vm.Context>\n): Partial<vm.Context> {\n const baseContext: vm.Context = win ?? {};\n\n setReferencePropertyIfNotPresent(baseContext, 'window');\n setReferencePropertyIfNotPresent(baseContext, 'self');\n setReferencePropertyIfNotPresent(baseContext, 'top');\n setReferencePropertyIfNotPresent(baseContext, 'parent');\n setReferencePropertyIfNotPresent(baseContext, 'global');\n setReferencePropertyIfNotPresent(baseContext, 'process');\n\n baseContext.document = win?.document;\n baseContext.process = process;\n\n baseContext.clearImmediate = NOOP;\n baseContext.clearInterval = NOOP;\n baseContext.clearTimeout = NOOP;\n baseContext.setImmediate = NOOP;\n baseContext.requestAnimationFrame = NOOP;\n baseContext.setInterval = NOOP;\n baseContext.setTimeout = NOOP;\n\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const key in additionalContext) {\n baseContext[key] = additionalContext[key];\n }\n\n return baseContext;\n}\n\nfunction createNothing() {\n return {\n teardown: () => {},\n window: undefined,\n };\n}\n\nasync function createHappyDOMWindow() {\n const win = await createWindow();\n if (!win) return createNothing();\n\n return {\n teardown: () => {\n win.happyDOM.abort();\n },\n window: win,\n };\n}\n\nexport async function createVmContext(\n filename: string,\n features: FeatureFlags<'happyDOM'>,\n additionalContext: Partial<vm.Context>,\n overrideContext: StrictOptions['overrideContext'] = (i) => i\n) {\n const isHappyDOMEnabled = isFeatureEnabled(features, 'happyDOM', filename);\n\n const { teardown, window } = isHappyDOMEnabled\n ? await createHappyDOMWindow()\n : createNothing();\n const envContext: Partial<vm.Context> = {\n [IMPORT_META_ENV]: createImportMetaEnvProxy(),\n };\n const baseContext = createBaseContext(\n window,\n overrideContext(\n {\n __filename: filename,\n ...envContext,\n ...additionalContext,\n },\n filename\n )\n );\n\n const context = vm.createContext(baseContext);\n\n return {\n context,\n teardown,\n };\n}\n"],"file":"createVmContext.js"}
|
package/esm/vm/process.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export const nextTick = fn => setTimeout(fn, 0);
|
|
5
|
-
export const platform =
|
|
6
|
-
export const arch =
|
|
7
|
-
export const execPath =
|
|
8
|
-
export const title =
|
|
2
|
+
* It contains API for mocked process variable available in node environment used to evaluate scripts with node's `vm` in ./module.ts
|
|
3
|
+
*/
|
|
4
|
+
export const nextTick = (fn) => setTimeout(fn, 0);
|
|
5
|
+
export const platform = "browser";
|
|
6
|
+
export const arch = "browser";
|
|
7
|
+
export const execPath = "browser";
|
|
8
|
+
export const title = "browser";
|
|
9
9
|
export const pid = 1;
|
|
10
10
|
export const browser = true;
|
|
11
11
|
export const argv = [];
|
|
12
12
|
export const binding = function binding() {
|
|
13
|
-
|
|
13
|
+
throw new Error("No such module. (Possibly not yet loaded)");
|
|
14
14
|
};
|
|
15
|
-
export const cwd = () =>
|
|
15
|
+
export const cwd = () => "/";
|
|
16
16
|
const noop = () => {};
|
|
17
17
|
export const exit = noop;
|
|
18
18
|
export const kill = noop;
|
|
@@ -23,7 +23,5 @@ export const uptime = noop;
|
|
|
23
23
|
export const memoryUsage = noop;
|
|
24
24
|
export const uvCounters = noop;
|
|
25
25
|
export const features = {};
|
|
26
|
-
export const {
|
|
27
|
-
|
|
28
|
-
} = process;
|
|
29
|
-
//# sourceMappingURL=process.js.map
|
|
26
|
+
export const { env } = process;
|
|
27
|
+
//# sourceMappingURL=process.js.map
|
package/esm/vm/process.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":";;;AAGA,OAAO,MAAM,YAAY,OAAqC,WAAW,IAAI,EAAE;AAE/E,OAAO,MAAM,WAAW;AACxB,OAAO,MAAM,OAAO;AACpB,OAAO,MAAM,WAAW;AACxB,OAAO,MAAM,QAAQ;AACrB,OAAO,MAAM,MAAM;AACnB,OAAO,MAAM,UAAU;AACvB,OAAO,MAAM,OAAO,EAAE;AAEtB,OAAO,MAAM,UAAU,SAAS,UAAU;AACxC,OAAM,IAAI,MAAM,4CAA4C;;AAG9D,OAAO,MAAM,YAAY;AAEzB,MAAM,aAAa;AACnB,OAAO,MAAM,OAAO;AACpB,OAAO,MAAM,OAAO;AACpB,OAAO,MAAM,QAAQ;AACrB,OAAO,MAAM,QAAQ;AACrB,OAAO,MAAM,SAAS;AACtB,OAAO,MAAM,SAAS;AACtB,OAAO,MAAM,cAAc;AAC3B,OAAO,MAAM,aAAa;AAC1B,OAAO,MAAM,WAAW,EAAE;AAE1B,OAAO,MAAM,EAAE,QAAQ","names":[],"sources":["../../src/vm/process.ts"],"version":3,"sourcesContent":["/**\n * It contains API for mocked process variable available in node environment used to evaluate scripts with node's `vm` in ./module.ts\n */\nexport const nextTick = (fn: (...args: unknown[]) => void) => setTimeout(fn, 0);\n\nexport const platform = 'browser';\nexport const arch = 'browser';\nexport const execPath = 'browser';\nexport const title = 'browser';\nexport const pid = 1;\nexport const browser = true;\nexport const argv = [];\n\nexport const binding = function binding() {\n throw new Error('No such module. (Possibly not yet loaded)');\n};\n\nexport const cwd = () => '/';\n\nconst noop = () => {};\nexport const exit = noop;\nexport const kill = noop;\nexport const chdir = noop;\nexport const umask = noop;\nexport const dlopen = noop;\nexport const uptime = noop;\nexport const memoryUsage = noop;\nexport const uvCounters = noop;\nexport const features = {};\n\nexport const { env } = process;\n"],"file":"process.js"}
|
package/package.json
CHANGED
|
@@ -1,40 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wyw-in-js/transform",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-alpha.1",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"dependencies": {
|
|
5
|
-
"@
|
|
6
|
-
"@
|
|
7
|
-
"@
|
|
8
|
-
"@babel/plugin-transform-modules-commonjs": "^7.23.3",
|
|
9
|
-
"@babel/template": "^7.22.15",
|
|
10
|
-
"@babel/traverse": "^7.23.5",
|
|
11
|
-
"@babel/types": "^7.23.5",
|
|
12
|
-
"@wyw-in-js/processor-utils": "1.1.0",
|
|
13
|
-
"@wyw-in-js/shared": "1.1.0",
|
|
6
|
+
"@jridgewell/remapping": "^2.3.5",
|
|
7
|
+
"@wyw-in-js/processor-utils": "2.0.0-alpha.1",
|
|
8
|
+
"@wyw-in-js/shared": "2.0.0-alpha.1",
|
|
14
9
|
"cosmiconfig": "^8.0.0",
|
|
15
10
|
"happy-dom": "^20.1.0",
|
|
16
11
|
"minimatch": "^9.0.5",
|
|
12
|
+
"oxc-parser": "0.127.0",
|
|
13
|
+
"oxc-resolver": "11.19.1",
|
|
14
|
+
"oxc-transform": "0.127.0",
|
|
17
15
|
"source-map": "^0.7.4",
|
|
18
16
|
"stylis": "^4.3.0",
|
|
19
17
|
"ts-invariant": "^0.10.3"
|
|
20
18
|
},
|
|
21
19
|
"devDependencies": {
|
|
22
|
-
"@babel/plugin-syntax-typescript": "^7.23.3",
|
|
23
|
-
"@babel/types": "^7.23.5",
|
|
24
20
|
"@swc/core": "1.3.20",
|
|
25
|
-
"@types/babel__core": "^7.20.5",
|
|
26
|
-
"@types/babel__generator": "^7.6.7",
|
|
27
|
-
"@types/babel__helper-module-imports": "^7.18.3",
|
|
28
|
-
"@types/babel__template": "^7.4.4",
|
|
29
|
-
"@types/babel__traverse": "^7.20.4",
|
|
30
21
|
"@types/debug": "^4.1.9",
|
|
31
|
-
"@types/node": "^
|
|
22
|
+
"@types/node": "^22.0.0",
|
|
32
23
|
"@types/stylis": "^4.2.4",
|
|
33
|
-
"@wyw-in-js/babel-config": "workspace:*",
|
|
34
24
|
"@wyw-in-js/eslint-config": "workspace:*",
|
|
35
25
|
"@wyw-in-js/ts-config": "workspace:*",
|
|
36
|
-
"babel-plugin-istanbul": "^6.1.1",
|
|
37
|
-
"babel-plugin-module-resolver": "^4.1.0",
|
|
38
26
|
"dedent": "^1.5.1",
|
|
39
27
|
"esbuild": "^0.15.16",
|
|
40
28
|
"glob": "^10.3.10",
|
|
@@ -42,24 +30,29 @@
|
|
|
42
30
|
"typescript": "^5.2.2"
|
|
43
31
|
},
|
|
44
32
|
"engines": {
|
|
45
|
-
"node": ">=
|
|
33
|
+
"node": ">=22.0.0"
|
|
34
|
+
},
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"types": "./types/index.d.ts",
|
|
38
|
+
"default": "./esm/index.js"
|
|
39
|
+
}
|
|
46
40
|
},
|
|
47
41
|
"files": [
|
|
48
42
|
"esm/",
|
|
49
|
-
"lib/",
|
|
50
43
|
"types/"
|
|
51
44
|
],
|
|
52
45
|
"license": "MIT",
|
|
53
|
-
"main": "
|
|
46
|
+
"main": "esm/index.js",
|
|
54
47
|
"module": "esm/index.js",
|
|
55
48
|
"publishConfig": {
|
|
56
49
|
"access": "public"
|
|
57
50
|
},
|
|
58
51
|
"scripts": {
|
|
59
|
-
"build:esm": "
|
|
60
|
-
"build:lib": "cross-env NODE_ENV=legacy babel src --out-dir lib --extensions '.js,.jsx,.ts,.tsx' --source-maps --delete-dir-on-start",
|
|
52
|
+
"build:esm": "node ../../scripts/build-esm-oxc.mjs",
|
|
61
53
|
"build:types": "tsc --project ./tsconfig.lib.json --baseUrl . --rootDir ./src",
|
|
62
54
|
"lint": "eslint --ext .js,.ts .",
|
|
55
|
+
"perf:complex-scenarios": "bun run ./scripts/perf-complex-scenarios.ts",
|
|
63
56
|
"test": "bun test src"
|
|
64
57
|
},
|
|
65
58
|
"types": "types/index.d.ts",
|