@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":"Entrypoint.js","names":["fs","invariant","BaseEntrypoint","isSuperSet","mergeOnly","EvaluatedEntrypoint","AbortError","BaseAction","UnprocessedEntrypointError","stripQueryAndHash","EMPTY_FILE","DEFAULT_ACTION_CONTEXT","Symbol","hasLoop","name","parent","processed","includes","p","parents","found","Entrypoint","evaluated","onSupersedeHandlers","actionsCache","Map","hasWywMetadata","isProcessing","pendingOnly","supersededWith","transformResultCode","constructor","services","initialCode","only","exports","evaluatedOnly","loadedAndParsed","resolveTasks","dependencies","invalidationDependencies","invalidateOnDependencyChange","Set","generation","loadAndParseFn","log","code","undefined","cache","invalidateIfChanged","evaluator","originalCode","extend","ignored","transformedCode","createRoot","loadedCode","created","create","eventEmitter","perf","status","entrypoint","innerCreate","seqId","add","cached","get","changed","readFileSync","mergedOnly","isLoop","map","push","deferOnlySupersede","supersede","newEntrypoint","addDependency","dependency","delete","source","set","addInvalidationDependency","addResolveTask","applyDeferredSupersede","nextEntrypoint","assertNotSuperseded","assertTransformed","beginProcessing","createAction","actionType","data","abortSignal","actionContext","has","contexts","aborted","newAction","entrypointEvent","type","actionIdx","idx","createChild","createEvaluated","exportsProxy","endProcessing","getDependency","getInvalidationDependency","markInvalidateOnDependencyChange","filename","getResolveTask","onSupersede","callback","index","indexOf","splice","setTransformResult","res","Boolean","metadata","isNull","newOnlyOrEntrypoint","with","forEach","handler"],"sources":["../../src/transform/Entrypoint.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { invariant } from 'ts-invariant';\n\nimport type { ParentEntrypoint, ITransformFileResult } from '../types';\n\nimport { BaseEntrypoint } from './BaseEntrypoint';\nimport { isSuperSet, mergeOnly } from './Entrypoint.helpers';\nimport type {\n IEntrypointCode,\n IEntrypointDependency,\n IIgnoredEntrypoint,\n} from './Entrypoint.types';\nimport { EvaluatedEntrypoint } from './EvaluatedEntrypoint';\nimport { AbortError } from './actions/AbortError';\nimport type { ActionByType } from './actions/BaseAction';\nimport { BaseAction } from './actions/BaseAction';\nimport { UnprocessedEntrypointError } from './actions/UnprocessedEntrypointError';\nimport type { Services, ActionTypes, ActionQueueItem } from './types';\nimport { stripQueryAndHash } from '../utils/parseRequest';\n\nconst EMPTY_FILE = '=== empty file ===';\nconst DEFAULT_ACTION_CONTEXT = Symbol('defaultActionContext');\n\nfunction hasLoop(\n name: string,\n parent: ParentEntrypoint,\n processed: string[] = []\n): boolean {\n if (parent.name === name || processed.includes(parent.name)) {\n return true;\n }\n\n for (const p of parent.parents) {\n const found = hasLoop(name, p, [...processed, parent.name]);\n if (found) {\n return found;\n }\n }\n\n return false;\n}\n\nexport class Entrypoint extends BaseEntrypoint {\n public readonly evaluated = false;\n\n public readonly loadedAndParsed: IEntrypointCode | IIgnoredEntrypoint;\n\n protected onSupersedeHandlers: Array<(newEntrypoint: Entrypoint) => void> =\n [];\n\n private actionsCache: Map<\n ActionTypes,\n Map<unknown, Map<unknown, BaseAction<ActionQueueItem>>>\n > = new Map();\n\n #hasWywMetadata: boolean = false;\n\n #isProcessing = false;\n\n #pendingOnly: string[] | null = null;\n\n #supersededWith: Entrypoint | null = null;\n\n #transformResultCode: string | null = null;\n\n private constructor(\n services: Services,\n parents: ParentEntrypoint[],\n public readonly initialCode: string | undefined,\n name: string,\n only: string[],\n exports: Record<string | symbol, unknown> | undefined,\n evaluatedOnly: string[],\n loadedAndParsed?: IEntrypointCode | IIgnoredEntrypoint,\n protected readonly resolveTasks = new Map<\n string,\n Promise<IEntrypointDependency>\n >(),\n readonly dependencies = new Map<string, IEntrypointDependency>(),\n readonly invalidationDependencies = new Map<\n string,\n IEntrypointDependency\n >(),\n readonly invalidateOnDependencyChange = new Set<string>(),\n generation = 1\n ) {\n super(\n services,\n evaluatedOnly,\n exports,\n generation,\n name,\n only,\n parents,\n dependencies,\n invalidationDependencies,\n invalidateOnDependencyChange\n );\n\n this.loadedAndParsed =\n loadedAndParsed ??\n services.loadAndParseFn(\n services,\n name,\n initialCode,\n parents[0]?.log ?? services.log\n );\n\n if (this.loadedAndParsed.code !== undefined) {\n services.cache.invalidateIfChanged(\n name,\n this.loadedAndParsed.code,\n undefined,\n this.initialCode === undefined ? 'fs' : 'loaded'\n );\n }\n\n const code =\n this.loadedAndParsed.evaluator === 'ignored'\n ? '[IGNORED]'\n : this.originalCode || EMPTY_FILE;\n\n this.log.extend('source')('created %s (%o)\\n%s', name, only, code);\n }\n\n public get ignored() {\n return this.loadedAndParsed.evaluator === 'ignored';\n }\n\n public get originalCode() {\n return this.loadedAndParsed.code;\n }\n\n public get supersededWith(): Entrypoint | null {\n return this.#supersededWith?.supersededWith ?? this.#supersededWith;\n }\n\n public get transformedCode(): string | null {\n return (\n this.#transformResultCode ?? this.supersededWith?.transformedCode ?? null\n );\n }\n\n public static createRoot(\n services: Services,\n name: string,\n only: string[],\n loadedCode: string | undefined\n ): Entrypoint {\n const created = Entrypoint.create(services, null, name, only, loadedCode);\n invariant(created !== 'loop', 'loop detected');\n\n return created;\n }\n\n /**\n * Creates an entrypoint for the specified file.\n * If there is already an entrypoint for this file, there will be four possible outcomes:\n * 1. If `loadedCode` is specified and is different from the one that was used to create the existing entrypoint,\n * the existing entrypoint will be superseded by a new one and all cached results for it will be invalidated.\n * It can happen if the file was changed and the watcher notified us about it, or we received a new version\n * of the file from a loader whereas the previous one was loaded from the filesystem.\n * The new entrypoint will be returned.\n * 2. If `only` is subset of the existing entrypoint's `only`, the existing entrypoint will be returned.\n * 3. If `only` is superset of the existing entrypoint's `only`, the existing entrypoint will be superseded and the new one will be returned.\n * 4. If a loop is detected, 'ignored' will be returned, the existing entrypoint will be superseded or not depending on the `only` value.\n */\n protected static create(\n services: Services,\n parent: ParentEntrypoint | null,\n name: string,\n only: string[],\n loadedCode: string | undefined\n ): Entrypoint | 'loop' {\n const { cache, eventEmitter } = services;\n return eventEmitter.perf('createEntrypoint', () => {\n const [status, entrypoint] = Entrypoint.innerCreate(\n services,\n parent\n ? {\n evaluated: parent.evaluated,\n log: parent.log,\n name: parent.name,\n parents: parent.parents,\n seqId: parent.seqId,\n }\n : null,\n name,\n only,\n loadedCode\n );\n\n if (status !== 'cached') {\n cache.add('entrypoints', name, entrypoint);\n }\n\n return status === 'loop' ? 'loop' : entrypoint;\n });\n }\n\n private static innerCreate(\n services: Services,\n parent: ParentEntrypoint | null,\n name: string,\n only: string[],\n loadedCode: string | undefined\n ): ['loop' | 'created' | 'cached', Entrypoint] {\n const { cache } = services;\n\n const cached = cache.get('entrypoints', name);\n let changed = false;\n if (loadedCode !== undefined) {\n changed = cache.invalidateIfChanged(\n name,\n loadedCode,\n undefined,\n 'loaded'\n );\n } else if (cached && cached.initialCode === undefined) {\n try {\n changed = cache.invalidateIfChanged(\n name,\n fs.readFileSync(stripQueryAndHash(name), 'utf8'),\n undefined,\n 'fs'\n );\n } catch {\n changed = false;\n }\n }\n\n if (!cached?.evaluated && cached?.ignored) {\n return ['cached', cached];\n }\n\n const exports = cached?.exports;\n const evaluatedOnly = changed ? [] : cached?.evaluatedOnly ?? [];\n\n const mergedOnly = cached?.only ? mergeOnly(cached.only, only) : [...only];\n\n if (cached?.evaluated) {\n cached.log('is already evaluated with', cached.evaluatedOnly);\n }\n\n if (!changed && cached && !cached.evaluated) {\n const isLoop = parent && hasLoop(name, parent);\n if (isLoop) {\n parent.log('[createEntrypoint] %s is a loop', name);\n }\n\n if (parent && !cached.parents.map((p) => p.name).includes(parent.name)) {\n cached.parents.push(parent);\n }\n\n if (isSuperSet(cached.only, mergedOnly)) {\n cached.log('is cached', name);\n return [isLoop ? 'loop' : 'cached', cached];\n }\n\n cached.log(\n 'is cached, but with different `only` %o (the cached one %o)',\n only,\n cached?.only\n );\n\n if (cached.#isProcessing) {\n cached.deferOnlySupersede(mergedOnly);\n cached.log(\n 'is being processed, defer supersede (%o -> %o)',\n cached.only,\n mergedOnly\n );\n return [isLoop ? 'loop' : 'cached', cached];\n }\n\n return [isLoop ? 'loop' : 'created', cached.supersede(mergedOnly)];\n }\n\n const newEntrypoint = new Entrypoint(\n services,\n parent ? [parent] : [],\n loadedCode,\n name,\n mergedOnly,\n exports,\n evaluatedOnly,\n undefined,\n cached && 'resolveTasks' in cached ? cached.resolveTasks : undefined,\n cached && 'dependencies' in cached ? cached.dependencies : undefined,\n cached && 'invalidationDependencies' in cached\n ? cached.invalidationDependencies\n : undefined,\n cached && 'invalidateOnDependencyChange' in cached\n ? cached.invalidateOnDependencyChange\n : undefined,\n cached ? cached.generation + 1 : 1\n );\n\n if (cached && !cached.evaluated) {\n cached.log('is cached, but with different code');\n cached.supersede(newEntrypoint);\n }\n\n return ['created', newEntrypoint];\n }\n\n public addDependency(dependency: IEntrypointDependency): void {\n this.resolveTasks.delete(dependency.source);\n this.dependencies.set(dependency.source, dependency);\n }\n\n public addInvalidationDependency(dependency: IEntrypointDependency): void {\n this.resolveTasks.delete(dependency.source);\n this.invalidationDependencies.set(dependency.source, dependency);\n }\n\n public addResolveTask(\n name: string,\n dependency: Promise<IEntrypointDependency>\n ): void {\n this.resolveTasks.set(name, dependency);\n }\n\n public applyDeferredSupersede() {\n if (this.#supersededWith || this.#pendingOnly === null) {\n return null;\n }\n\n const mergedOnly = mergeOnly(this.only, this.#pendingOnly);\n this.#pendingOnly = null;\n\n if (isSuperSet(this.only, mergedOnly)) {\n return null;\n }\n\n this.log('apply deferred supersede (%o -> %o)', this.only, mergedOnly);\n\n const nextEntrypoint = this.supersede(mergedOnly);\n this.services.cache.add('entrypoints', this.name, nextEntrypoint);\n\n return nextEntrypoint;\n }\n\n public assertNotSuperseded() {\n if (this.supersededWith) {\n this.log('superseded');\n throw new AbortError('superseded');\n }\n }\n\n public assertTransformed() {\n if (this.transformedCode === null) {\n this.log('not transformed');\n throw new UnprocessedEntrypointError(this.supersededWith ?? this);\n }\n }\n\n public beginProcessing() {\n this.#isProcessing = true;\n }\n\n public createAction<\n TType extends ActionTypes,\n TAction extends ActionByType<TType>,\n >(\n actionType: TType,\n data: TAction['data'],\n abortSignal: AbortSignal | null = null,\n actionContext: unknown = DEFAULT_ACTION_CONTEXT\n ): BaseAction<TAction> {\n if (!this.actionsCache.has(actionType)) {\n this.actionsCache.set(actionType, new Map());\n }\n\n const contexts = this.actionsCache.get(actionType)!;\n if (!contexts.has(actionContext)) {\n contexts.set(actionContext, new Map());\n }\n\n const cache = contexts.get(actionContext)!;\n const cached = cache.get(data);\n if (cached && !cached.abortSignal?.aborted) {\n return cached as BaseAction<TAction>;\n }\n\n const newAction = new BaseAction<TAction>(\n actionType as TAction['type'],\n this.services,\n this,\n data,\n abortSignal,\n actionContext\n );\n\n cache.set(data, newAction);\n\n this.services.eventEmitter.entrypointEvent(this.seqId, {\n type: 'actionCreated',\n actionType,\n actionIdx: newAction.idx,\n });\n\n return newAction;\n }\n\n public createChild(\n name: string,\n only: string[],\n loadedCode?: string\n ): Entrypoint | 'loop' {\n return Entrypoint.create(this.services, this, name, only, loadedCode);\n }\n\n public createEvaluated() {\n const evaluatedOnly = mergeOnly(this.evaluatedOnly, this.only);\n this.log('create EvaluatedEntrypoint for %o', evaluatedOnly);\n\n const evaluated = new EvaluatedEntrypoint(\n this.services,\n evaluatedOnly,\n this.exportsProxy,\n this.generation + 1,\n this.name,\n this.only,\n this.parents,\n this.dependencies,\n this.invalidationDependencies,\n this.invalidateOnDependencyChange\n );\n\n evaluated.initialCode = this.initialCode;\n\n return evaluated;\n }\n\n public endProcessing() {\n this.#isProcessing = false;\n }\n\n public getDependency(name: string): IEntrypointDependency | undefined {\n return this.dependencies.get(name);\n }\n\n public getInvalidationDependency(\n name: string\n ): IEntrypointDependency | undefined {\n return this.invalidationDependencies.get(name);\n }\n\n public markInvalidateOnDependencyChange(filename: string): void {\n this.invalidateOnDependencyChange.add(filename);\n }\n\n public getResolveTask(\n name: string\n ): Promise<IEntrypointDependency> | undefined {\n return this.resolveTasks.get(name);\n }\n\n public hasWywMetadata() {\n return this.#hasWywMetadata;\n }\n\n public onSupersede(callback: (newEntrypoint: Entrypoint) => void) {\n if (this.#supersededWith) {\n callback(this.#supersededWith);\n return () => {};\n }\n\n this.onSupersedeHandlers.push(callback);\n\n return () => {\n const index = this.onSupersedeHandlers.indexOf(callback);\n if (index >= 0) {\n this.onSupersedeHandlers.splice(index, 1);\n }\n };\n }\n\n public setTransformResult(res: ITransformFileResult | null) {\n this.#hasWywMetadata = Boolean(res?.metadata);\n this.#transformResultCode = res?.code ?? null;\n\n this.services.eventEmitter.entrypointEvent(this.seqId, {\n isNull: res === null,\n type: 'setTransformResult',\n });\n }\n\n private deferOnlySupersede(only: string[]) {\n this.#pendingOnly = this.#pendingOnly\n ? mergeOnly(this.#pendingOnly, only)\n : [...only];\n }\n\n private supersede(newOnlyOrEntrypoint: string[] | Entrypoint): Entrypoint {\n this.#pendingOnly = null;\n const newEntrypoint =\n newOnlyOrEntrypoint instanceof Entrypoint\n ? newOnlyOrEntrypoint\n : new Entrypoint(\n this.services,\n this.parents,\n this.initialCode,\n this.name,\n newOnlyOrEntrypoint,\n this.exports,\n this.evaluatedOnly,\n this.loadedAndParsed,\n this.resolveTasks,\n this.dependencies,\n this.invalidationDependencies,\n this.invalidateOnDependencyChange,\n this.generation + 1\n );\n\n this.services.eventEmitter.entrypointEvent(this.seqId, {\n type: 'superseded',\n with: newEntrypoint.seqId,\n });\n this.log(\n 'superseded by %s (%o -> %o)',\n newEntrypoint.name,\n this.only,\n newEntrypoint.only\n );\n this.#supersededWith = newEntrypoint;\n this.onSupersedeHandlers.forEach((handler) => handler(newEntrypoint));\n\n return newEntrypoint;\n }\n}\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,SAAS;AACxB,SAASC,SAAS,QAAQ,cAAc;AAIxC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,UAAU,EAAEC,SAAS,QAAQ,sBAAsB;AAM5D,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,UAAU,QAAQ,sBAAsB;AAEjD,SAASC,UAAU,QAAQ,sBAAsB;AACjD,SAASC,0BAA0B,QAAQ,sCAAsC;AAEjF,SAASC,iBAAiB,QAAQ,uBAAuB;AAEzD,MAAMC,UAAU,GAAG,oBAAoB;AACvC,MAAMC,sBAAsB,GAAGC,MAAM,CAAC,sBAAsB,CAAC;AAE7D,SAASC,OAAOA,CACdC,IAAY,EACZC,MAAwB,EACxBC,SAAmB,GAAG,EAAE,EACf;EACT,IAAID,MAAM,CAACD,IAAI,KAAKA,IAAI,IAAIE,SAAS,CAACC,QAAQ,CAACF,MAAM,CAACD,IAAI,CAAC,EAAE;IAC3D,OAAO,IAAI;EACb;EAEA,KAAK,MAAMI,CAAC,IAAIH,MAAM,CAACI,OAAO,EAAE;IAC9B,MAAMC,KAAK,GAAGP,OAAO,CAACC,IAAI,EAAEI,CAAC,EAAE,CAAC,GAAGF,SAAS,EAAED,MAAM,CAACD,IAAI,CAAC,CAAC;IAC3D,IAAIM,KAAK,EAAE;MACT,OAAOA,KAAK;IACd;EACF;EAEA,OAAO,KAAK;AACd;AAEA,OAAO,MAAMC,UAAU,SAASnB,cAAc,CAAC;EAC7BoB,SAAS,GAAG,KAAK;EAIvBC,mBAAmB,GAC3B,EAAE;EAEIC,YAAY,GAGhB,IAAIC,GAAG,CAAC,CAAC;EAEb,CAACC,cAAc,GAAY,KAAK;EAEhC,CAACC,YAAY,GAAG,KAAK;EAErB,CAACC,WAAW,GAAoB,IAAI;EAEpC,CAACC,cAAc,GAAsB,IAAI;EAEzC,CAACC,mBAAmB,GAAkB,IAAI;EAElCC,WAAWA,CACjBC,QAAkB,EAClBb,OAA2B,EACXc,WAA+B,EAC/CnB,IAAY,EACZoB,IAAc,EACdC,OAAqD,EACrDC,aAAuB,EACvBC,eAAsD,EACnCC,YAAY,GAAG,IAAIb,GAAG,CAGvC,CAAC,EACMc,YAAY,GAAG,IAAId,GAAG,CAAgC,CAAC,EACvDe,wBAAwB,GAAG,IAAIf,GAAG,CAGzC,CAAC,EACMgB,4BAA4B,GAAG,IAAIC,GAAG,CAAS,CAAC,EACzDC,UAAU,GAAG,CAAC,EACd;IACA,KAAK,CACHX,QAAQ,EACRI,aAAa,EACbD,OAAO,EACPQ,UAAU,EACV7B,IAAI,EACJoB,IAAI,EACJf,OAAO,EACPoB,YAAY,EACZC,wBAAwB,EACxBC,4BACF,CAAC;IAAC,KA7BcR,WAA+B,GAA/BA,WAA+B;IAAA,KAM5BK,YAAY,GAAZA,YAAY;IAAA,KAItBC,YAAY,GAAZA,YAAY;IAAA,KACZC,wBAAwB,GAAxBA,wBAAwB;IAAA,KAIxBC,4BAA4B,GAA5BA,4BAA4B;IAgBrC,IAAI,CAACJ,eAAe,GAClBA,eAAe,IACfL,QAAQ,CAACY,cAAc,CACrBZ,QAAQ,EACRlB,IAAI,EACJmB,WAAW,EACXd,OAAO,CAAC,CAAC,CAAC,EAAE0B,GAAG,IAAIb,QAAQ,CAACa,GAC9B,CAAC;IAEH,IAAI,IAAI,CAACR,eAAe,CAACS,IAAI,KAAKC,SAAS,EAAE;MAC3Cf,QAAQ,CAACgB,KAAK,CAACC,mBAAmB,CAChCnC,IAAI,EACJ,IAAI,CAACuB,eAAe,CAACS,IAAI,EACzBC,SAAS,EACT,IAAI,CAACd,WAAW,KAAKc,SAAS,GAAG,IAAI,GAAG,QAC1C,CAAC;IACH;IAEA,MAAMD,IAAI,GACR,IAAI,CAACT,eAAe,CAACa,SAAS,KAAK,SAAS,GACxC,WAAW,GACX,IAAI,CAACC,YAAY,IAAIzC,UAAU;IAErC,IAAI,CAACmC,GAAG,CAACO,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,EAAEtC,IAAI,EAAEoB,IAAI,EAAEY,IAAI,CAAC;EACpE;EAEA,IAAWO,OAAOA,CAAA,EAAG;IACnB,OAAO,IAAI,CAAChB,eAAe,CAACa,SAAS,KAAK,SAAS;EACrD;EAEA,IAAWC,YAAYA,CAAA,EAAG;IACxB,OAAO,IAAI,CAACd,eAAe,CAACS,IAAI;EAClC;EAEA,IAAWjB,cAAcA,CAAA,EAAsB;IAC7C,OAAO,IAAI,CAAC,CAACA,cAAc,EAAEA,cAAc,IAAI,IAAI,CAAC,CAACA,cAAc;EACrE;EAEA,IAAWyB,eAAeA,CAAA,EAAkB;IAC1C,OACE,IAAI,CAAC,CAACxB,mBAAmB,IAAI,IAAI,CAACD,cAAc,EAAEyB,eAAe,IAAI,IAAI;EAE7E;EAEA,OAAcC,UAAUA,CACtBvB,QAAkB,EAClBlB,IAAY,EACZoB,IAAc,EACdsB,UAA8B,EAClB;IACZ,MAAMC,OAAO,GAAGpC,UAAU,CAACqC,MAAM,CAAC1B,QAAQ,EAAE,IAAI,EAAElB,IAAI,EAAEoB,IAAI,EAAEsB,UAAU,CAAC;IACzEvD,SAAS,CAACwD,OAAO,KAAK,MAAM,EAAE,eAAe,CAAC;IAE9C,OAAOA,OAAO;EAChB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAiBC,MAAMA,CACrB1B,QAAkB,EAClBjB,MAA+B,EAC/BD,IAAY,EACZoB,IAAc,EACdsB,UAA8B,EACT;IACrB,MAAM;MAAER,KAAK;MAAEW;IAAa,CAAC,GAAG3B,QAAQ;IACxC,OAAO2B,YAAY,CAACC,IAAI,CAAC,kBAAkB,EAAE,MAAM;MACjD,MAAM,CAACC,MAAM,EAAEC,UAAU,CAAC,GAAGzC,UAAU,CAAC0C,WAAW,CACjD/B,QAAQ,EACRjB,MAAM,GACF;QACEO,SAAS,EAAEP,MAAM,CAACO,SAAS;QAC3BuB,GAAG,EAAE9B,MAAM,CAAC8B,GAAG;QACf/B,IAAI,EAAEC,MAAM,CAACD,IAAI;QACjBK,OAAO,EAAEJ,MAAM,CAACI,OAAO;QACvB6C,KAAK,EAAEjD,MAAM,CAACiD;MAChB,CAAC,GACD,IAAI,EACRlD,IAAI,EACJoB,IAAI,EACJsB,UACF,CAAC;MAED,IAAIK,MAAM,KAAK,QAAQ,EAAE;QACvBb,KAAK,CAACiB,GAAG,CAAC,aAAa,EAAEnD,IAAI,EAAEgD,UAAU,CAAC;MAC5C;MAEA,OAAOD,MAAM,KAAK,MAAM,GAAG,MAAM,GAAGC,UAAU;IAChD,CAAC,CAAC;EACJ;EAEA,OAAeC,WAAWA,CACxB/B,QAAkB,EAClBjB,MAA+B,EAC/BD,IAAY,EACZoB,IAAc,EACdsB,UAA8B,EACe;IAC7C,MAAM;MAAER;IAAM,CAAC,GAAGhB,QAAQ;IAE1B,MAAMkC,MAAM,GAAGlB,KAAK,CAACmB,GAAG,CAAC,aAAa,EAAErD,IAAI,CAAC;IAC7C,IAAIsD,OAAO,GAAG,KAAK;IACnB,IAAIZ,UAAU,KAAKT,SAAS,EAAE;MAC5BqB,OAAO,GAAGpB,KAAK,CAACC,mBAAmB,CACjCnC,IAAI,EACJ0C,UAAU,EACVT,SAAS,EACT,QACF,CAAC;IACH,CAAC,MAAM,IAAImB,MAAM,IAAIA,MAAM,CAACjC,WAAW,KAAKc,SAAS,EAAE;MACrD,IAAI;QACFqB,OAAO,GAAGpB,KAAK,CAACC,mBAAmB,CACjCnC,IAAI,EACJd,EAAE,CAACqE,YAAY,CAAC5D,iBAAiB,CAACK,IAAI,CAAC,EAAE,MAAM,CAAC,EAChDiC,SAAS,EACT,IACF,CAAC;MACH,CAAC,CAAC,MAAM;QACNqB,OAAO,GAAG,KAAK;MACjB;IACF;IAEA,IAAI,CAACF,MAAM,EAAE5C,SAAS,IAAI4C,MAAM,EAAEb,OAAO,EAAE;MACzC,OAAO,CAAC,QAAQ,EAAEa,MAAM,CAAC;IAC3B;IAEA,MAAM/B,OAAO,GAAG+B,MAAM,EAAE/B,OAAO;IAC/B,MAAMC,aAAa,GAAGgC,OAAO,GAAG,EAAE,GAAGF,MAAM,EAAE9B,aAAa,IAAI,EAAE;IAEhE,MAAMkC,UAAU,GAAGJ,MAAM,EAAEhC,IAAI,GAAG9B,SAAS,CAAC8D,MAAM,CAAChC,IAAI,EAAEA,IAAI,CAAC,GAAG,CAAC,GAAGA,IAAI,CAAC;IAE1E,IAAIgC,MAAM,EAAE5C,SAAS,EAAE;MACrB4C,MAAM,CAACrB,GAAG,CAAC,2BAA2B,EAAEqB,MAAM,CAAC9B,aAAa,CAAC;IAC/D;IAEA,IAAI,CAACgC,OAAO,IAAIF,MAAM,IAAI,CAACA,MAAM,CAAC5C,SAAS,EAAE;MAC3C,MAAMiD,MAAM,GAAGxD,MAAM,IAAIF,OAAO,CAACC,IAAI,EAAEC,MAAM,CAAC;MAC9C,IAAIwD,MAAM,EAAE;QACVxD,MAAM,CAAC8B,GAAG,CAAC,iCAAiC,EAAE/B,IAAI,CAAC;MACrD;MAEA,IAAIC,MAAM,IAAI,CAACmD,MAAM,CAAC/C,OAAO,CAACqD,GAAG,CAAEtD,CAAC,IAAKA,CAAC,CAACJ,IAAI,CAAC,CAACG,QAAQ,CAACF,MAAM,CAACD,IAAI,CAAC,EAAE;QACtEoD,MAAM,CAAC/C,OAAO,CAACsD,IAAI,CAAC1D,MAAM,CAAC;MAC7B;MAEA,IAAIZ,UAAU,CAAC+D,MAAM,CAAChC,IAAI,EAAEoC,UAAU,CAAC,EAAE;QACvCJ,MAAM,CAACrB,GAAG,CAAC,WAAW,EAAE/B,IAAI,CAAC;QAC7B,OAAO,CAACyD,MAAM,GAAG,MAAM,GAAG,QAAQ,EAAEL,MAAM,CAAC;MAC7C;MAEAA,MAAM,CAACrB,GAAG,CACR,6DAA6D,EAC7DX,IAAI,EACJgC,MAAM,EAAEhC,IACV,CAAC;MAED,IAAIgC,MAAM,CAAC,CAACvC,YAAY,EAAE;QACxBuC,MAAM,CAACQ,kBAAkB,CAACJ,UAAU,CAAC;QACrCJ,MAAM,CAACrB,GAAG,CACR,gDAAgD,EAChDqB,MAAM,CAAChC,IAAI,EACXoC,UACF,CAAC;QACD,OAAO,CAACC,MAAM,GAAG,MAAM,GAAG,QAAQ,EAAEL,MAAM,CAAC;MAC7C;MAEA,OAAO,CAACK,MAAM,GAAG,MAAM,GAAG,SAAS,EAAEL,MAAM,CAACS,SAAS,CAACL,UAAU,CAAC,CAAC;IACpE;IAEA,MAAMM,aAAa,GAAG,IAAIvD,UAAU,CAClCW,QAAQ,EACRjB,MAAM,GAAG,CAACA,MAAM,CAAC,GAAG,EAAE,EACtByC,UAAU,EACV1C,IAAI,EACJwD,UAAU,EACVnC,OAAO,EACPC,aAAa,EACbW,SAAS,EACTmB,MAAM,IAAI,cAAc,IAAIA,MAAM,GAAGA,MAAM,CAAC5B,YAAY,GAAGS,SAAS,EACpEmB,MAAM,IAAI,cAAc,IAAIA,MAAM,GAAGA,MAAM,CAAC3B,YAAY,GAAGQ,SAAS,EACpEmB,MAAM,IAAI,0BAA0B,IAAIA,MAAM,GAC1CA,MAAM,CAAC1B,wBAAwB,GAC/BO,SAAS,EACbmB,MAAM,IAAI,8BAA8B,IAAIA,MAAM,GAC9CA,MAAM,CAACzB,4BAA4B,GACnCM,SAAS,EACbmB,MAAM,GAAGA,MAAM,CAACvB,UAAU,GAAG,CAAC,GAAG,CACnC,CAAC;IAED,IAAIuB,MAAM,IAAI,CAACA,MAAM,CAAC5C,SAAS,EAAE;MAC/B4C,MAAM,CAACrB,GAAG,CAAC,oCAAoC,CAAC;MAChDqB,MAAM,CAACS,SAAS,CAACC,aAAa,CAAC;IACjC;IAEA,OAAO,CAAC,SAAS,EAAEA,aAAa,CAAC;EACnC;EAEOC,aAAaA,CAACC,UAAiC,EAAQ;IAC5D,IAAI,CAACxC,YAAY,CAACyC,MAAM,CAACD,UAAU,CAACE,MAAM,CAAC;IAC3C,IAAI,CAACzC,YAAY,CAAC0C,GAAG,CAACH,UAAU,CAACE,MAAM,EAAEF,UAAU,CAAC;EACtD;EAEOI,yBAAyBA,CAACJ,UAAiC,EAAQ;IACxE,IAAI,CAACxC,YAAY,CAACyC,MAAM,CAACD,UAAU,CAACE,MAAM,CAAC;IAC3C,IAAI,CAACxC,wBAAwB,CAACyC,GAAG,CAACH,UAAU,CAACE,MAAM,EAAEF,UAAU,CAAC;EAClE;EAEOK,cAAcA,CACnBrE,IAAY,EACZgE,UAA0C,EACpC;IACN,IAAI,CAACxC,YAAY,CAAC2C,GAAG,CAACnE,IAAI,EAAEgE,UAAU,CAAC;EACzC;EAEOM,sBAAsBA,CAAA,EAAG;IAC9B,IAAI,IAAI,CAAC,CAACvD,cAAc,IAAI,IAAI,CAAC,CAACD,WAAW,KAAK,IAAI,EAAE;MACtD,OAAO,IAAI;IACb;IAEA,MAAM0C,UAAU,GAAGlE,SAAS,CAAC,IAAI,CAAC8B,IAAI,EAAE,IAAI,CAAC,CAACN,WAAW,CAAC;IAC1D,IAAI,CAAC,CAACA,WAAW,GAAG,IAAI;IAExB,IAAIzB,UAAU,CAAC,IAAI,CAAC+B,IAAI,EAAEoC,UAAU,CAAC,EAAE;MACrC,OAAO,IAAI;IACb;IAEA,IAAI,CAACzB,GAAG,CAAC,qCAAqC,EAAE,IAAI,CAACX,IAAI,EAAEoC,UAAU,CAAC;IAEtE,MAAMe,cAAc,GAAG,IAAI,CAACV,SAAS,CAACL,UAAU,CAAC;IACjD,IAAI,CAACtC,QAAQ,CAACgB,KAAK,CAACiB,GAAG,CAAC,aAAa,EAAE,IAAI,CAACnD,IAAI,EAAEuE,cAAc,CAAC;IAEjE,OAAOA,cAAc;EACvB;EAEOC,mBAAmBA,CAAA,EAAG;IAC3B,IAAI,IAAI,CAACzD,cAAc,EAAE;MACvB,IAAI,CAACgB,GAAG,CAAC,YAAY,CAAC;MACtB,MAAM,IAAIvC,UAAU,CAAC,YAAY,CAAC;IACpC;EACF;EAEOiF,iBAAiBA,CAAA,EAAG;IACzB,IAAI,IAAI,CAACjC,eAAe,KAAK,IAAI,EAAE;MACjC,IAAI,CAACT,GAAG,CAAC,iBAAiB,CAAC;MAC3B,MAAM,IAAIrC,0BAA0B,CAAC,IAAI,CAACqB,cAAc,IAAI,IAAI,CAAC;IACnE;EACF;EAEO2D,eAAeA,CAAA,EAAG;IACvB,IAAI,CAAC,CAAC7D,YAAY,GAAG,IAAI;EAC3B;EAEO8D,YAAYA,CAIjBC,UAAiB,EACjBC,IAAqB,EACrBC,WAA+B,GAAG,IAAI,EACtCC,aAAsB,GAAGlF,sBAAsB,EAC1B;IACrB,IAAI,CAAC,IAAI,CAACa,YAAY,CAACsE,GAAG,CAACJ,UAAU,CAAC,EAAE;MACtC,IAAI,CAAClE,YAAY,CAACyD,GAAG,CAACS,UAAU,EAAE,IAAIjE,GAAG,CAAC,CAAC,CAAC;IAC9C;IAEA,MAAMsE,QAAQ,GAAG,IAAI,CAACvE,YAAY,CAAC2C,GAAG,CAACuB,UAAU,CAAE;IACnD,IAAI,CAACK,QAAQ,CAACD,GAAG,CAACD,aAAa,CAAC,EAAE;MAChCE,QAAQ,CAACd,GAAG,CAACY,aAAa,EAAE,IAAIpE,GAAG,CAAC,CAAC,CAAC;IACxC;IAEA,MAAMuB,KAAK,GAAG+C,QAAQ,CAAC5B,GAAG,CAAC0B,aAAa,CAAE;IAC1C,MAAM3B,MAAM,GAAGlB,KAAK,CAACmB,GAAG,CAACwB,IAAI,CAAC;IAC9B,IAAIzB,MAAM,IAAI,CAACA,MAAM,CAAC0B,WAAW,EAAEI,OAAO,EAAE;MAC1C,OAAO9B,MAAM;IACf;IAEA,MAAM+B,SAAS,GAAG,IAAI1F,UAAU,CAC9BmF,UAAU,EACV,IAAI,CAAC1D,QAAQ,EACb,IAAI,EACJ2D,IAAI,EACJC,WAAW,EACXC,aACF,CAAC;IAED7C,KAAK,CAACiC,GAAG,CAACU,IAAI,EAAEM,SAAS,CAAC;IAE1B,IAAI,CAACjE,QAAQ,CAAC2B,YAAY,CAACuC,eAAe,CAAC,IAAI,CAAClC,KAAK,EAAE;MACrDmC,IAAI,EAAE,eAAe;MACrBT,UAAU;MACVU,SAAS,EAAEH,SAAS,CAACI;IACvB,CAAC,CAAC;IAEF,OAAOJ,SAAS;EAClB;EAEOK,WAAWA,CAChBxF,IAAY,EACZoB,IAAc,EACdsB,UAAmB,EACE;IACrB,OAAOnC,UAAU,CAACqC,MAAM,CAAC,IAAI,CAAC1B,QAAQ,EAAE,IAAI,EAAElB,IAAI,EAAEoB,IAAI,EAAEsB,UAAU,CAAC;EACvE;EAEO+C,eAAeA,CAAA,EAAG;IACvB,MAAMnE,aAAa,GAAGhC,SAAS,CAAC,IAAI,CAACgC,aAAa,EAAE,IAAI,CAACF,IAAI,CAAC;IAC9D,IAAI,CAACW,GAAG,CAAC,mCAAmC,EAAET,aAAa,CAAC;IAE5D,MAAMd,SAAS,GAAG,IAAIjB,mBAAmB,CACvC,IAAI,CAAC2B,QAAQ,EACbI,aAAa,EACb,IAAI,CAACoE,YAAY,EACjB,IAAI,CAAC7D,UAAU,GAAG,CAAC,EACnB,IAAI,CAAC7B,IAAI,EACT,IAAI,CAACoB,IAAI,EACT,IAAI,CAACf,OAAO,EACZ,IAAI,CAACoB,YAAY,EACjB,IAAI,CAACC,wBAAwB,EAC7B,IAAI,CAACC,4BACP,CAAC;IAEDnB,SAAS,CAACW,WAAW,GAAG,IAAI,CAACA,WAAW;IAExC,OAAOX,SAAS;EAClB;EAEOmF,aAAaA,CAAA,EAAG;IACrB,IAAI,CAAC,CAAC9E,YAAY,GAAG,KAAK;EAC5B;EAEO+E,aAAaA,CAAC5F,IAAY,EAAqC;IACpE,OAAO,IAAI,CAACyB,YAAY,CAAC4B,GAAG,CAACrD,IAAI,CAAC;EACpC;EAEO6F,yBAAyBA,CAC9B7F,IAAY,EACuB;IACnC,OAAO,IAAI,CAAC0B,wBAAwB,CAAC2B,GAAG,CAACrD,IAAI,CAAC;EAChD;EAEO8F,gCAAgCA,CAACC,QAAgB,EAAQ;IAC9D,IAAI,CAACpE,4BAA4B,CAACwB,GAAG,CAAC4C,QAAQ,CAAC;EACjD;EAEOC,cAAcA,CACnBhG,IAAY,EACgC;IAC5C,OAAO,IAAI,CAACwB,YAAY,CAAC6B,GAAG,CAACrD,IAAI,CAAC;EACpC;EAEOY,cAAcA,CAAA,EAAG;IACtB,OAAO,IAAI,CAAC,CAACA,cAAc;EAC7B;EAEOqF,WAAWA,CAACC,QAA6C,EAAE;IAChE,IAAI,IAAI,CAAC,CAACnF,cAAc,EAAE;MACxBmF,QAAQ,CAAC,IAAI,CAAC,CAACnF,cAAc,CAAC;MAC9B,OAAO,MAAM,CAAC,CAAC;IACjB;IAEA,IAAI,CAACN,mBAAmB,CAACkD,IAAI,CAACuC,QAAQ,CAAC;IAEvC,OAAO,MAAM;MACX,MAAMC,KAAK,GAAG,IAAI,CAAC1F,mBAAmB,CAAC2F,OAAO,CAACF,QAAQ,CAAC;MACxD,IAAIC,KAAK,IAAI,CAAC,EAAE;QACd,IAAI,CAAC1F,mBAAmB,CAAC4F,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;MAC3C;IACF,CAAC;EACH;EAEOG,kBAAkBA,CAACC,GAAgC,EAAE;IAC1D,IAAI,CAAC,CAAC3F,cAAc,GAAG4F,OAAO,CAACD,GAAG,EAAEE,QAAQ,CAAC;IAC7C,IAAI,CAAC,CAACzF,mBAAmB,GAAGuF,GAAG,EAAEvE,IAAI,IAAI,IAAI;IAE7C,IAAI,CAACd,QAAQ,CAAC2B,YAAY,CAACuC,eAAe,CAAC,IAAI,CAAClC,KAAK,EAAE;MACrDwD,MAAM,EAAEH,GAAG,KAAK,IAAI;MACpBlB,IAAI,EAAE;IACR,CAAC,CAAC;EACJ;EAEQzB,kBAAkBA,CAACxC,IAAc,EAAE;IACzC,IAAI,CAAC,CAACN,WAAW,GAAG,IAAI,CAAC,CAACA,WAAW,GACjCxB,SAAS,CAAC,IAAI,CAAC,CAACwB,WAAW,EAAEM,IAAI,CAAC,GAClC,CAAC,GAAGA,IAAI,CAAC;EACf;EAEQyC,SAASA,CAAC8C,mBAA0C,EAAc;IACxE,IAAI,CAAC,CAAC7F,WAAW,GAAG,IAAI;IACxB,MAAMgD,aAAa,GACjB6C,mBAAmB,YAAYpG,UAAU,GACrCoG,mBAAmB,GACnB,IAAIpG,UAAU,CACZ,IAAI,CAACW,QAAQ,EACb,IAAI,CAACb,OAAO,EACZ,IAAI,CAACc,WAAW,EAChB,IAAI,CAACnB,IAAI,EACT2G,mBAAmB,EACnB,IAAI,CAACtF,OAAO,EACZ,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,eAAe,EACpB,IAAI,CAACC,YAAY,EACjB,IAAI,CAACC,YAAY,EACjB,IAAI,CAACC,wBAAwB,EAC7B,IAAI,CAACC,4BAA4B,EACjC,IAAI,CAACE,UAAU,GAAG,CACpB,CAAC;IAEP,IAAI,CAACX,QAAQ,CAAC2B,YAAY,CAACuC,eAAe,CAAC,IAAI,CAAClC,KAAK,EAAE;MACrDmC,IAAI,EAAE,YAAY;MAClBuB,IAAI,EAAE9C,aAAa,CAACZ;IACtB,CAAC,CAAC;IACF,IAAI,CAACnB,GAAG,CACN,6BAA6B,EAC7B+B,aAAa,CAAC9D,IAAI,EAClB,IAAI,CAACoB,IAAI,EACT0C,aAAa,CAAC1C,IAChB,CAAC;IACD,IAAI,CAAC,CAACL,cAAc,GAAG+C,aAAa;IACpC,IAAI,CAACrD,mBAAmB,CAACoG,OAAO,CAAEC,OAAO,IAAKA,OAAO,CAAChD,aAAa,CAAC,CAAC;IAErE,OAAOA,aAAa;EACtB;AACF","ignoreList":[]}
|
|
1
|
+
{"mappings":"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","names":["#supersededWith","#transformResultCode","#hasTransformResult","#isProcessing","#resolveTaskNullAttempts","#pendingOnly","#processingPromise","#resolveProcessing","#hasWywMetadata","#preevalResult"],"sources":["../../src/transform/Entrypoint.ts"],"version":3,"sourcesContent":["import fs from 'node:fs';\nimport { invariant } from 'ts-invariant';\n\nimport type { ParentEntrypoint, ITransformFileResult } from '../types';\n\nimport { BaseEntrypoint } from './BaseEntrypoint';\nimport { isSuperSet, mergeOnly } from './Entrypoint.helpers';\nimport type {\n IEntrypointCode,\n IEntrypointDependency,\n IIgnoredEntrypoint,\n IPreevalResult,\n} from './Entrypoint.types';\nimport { EvaluatedEntrypoint } from './EvaluatedEntrypoint';\nimport { AbortError } from './actions/AbortError';\nimport type { ActionByType } from './actions/BaseAction';\nimport { BaseAction } from './actions/BaseAction';\nimport { UnprocessedEntrypointError } from './actions/UnprocessedEntrypointError';\nimport type { Services, ActionTypes, ActionQueueItem } from './types';\nimport { stripQueryAndHash } from '../utils/parseRequest';\n\nconst EMPTY_FILE = '=== empty file ===';\nconst DEFAULT_ACTION_CONTEXT = Symbol('defaultActionContext');\n\ntype CreateEntrypointOptions = {\n mergeCachedOnly?: boolean;\n};\n\nfunction hasLoop(\n name: string,\n parent: ParentEntrypoint,\n processed: string[] = []\n): boolean {\n if (parent.name === name || processed.includes(parent.name)) {\n return true;\n }\n\n for (const p of parent.parents) {\n const found = hasLoop(name, p, [...processed, parent.name]);\n if (found) {\n return found;\n }\n }\n\n return false;\n}\n\nexport class Entrypoint extends BaseEntrypoint {\n public readonly evaluated = false;\n\n public readonly loadedAndParsed: IEntrypointCode | IIgnoredEntrypoint;\n\n protected onSupersedeHandlers: Array<(newEntrypoint: Entrypoint) => void> =\n [];\n\n private actionsCache: Map<\n ActionTypes,\n Map<unknown, Map<unknown, BaseAction<ActionQueueItem>>>\n > = new Map();\n\n // Tracks how many times resolveImports has settled with `resolved: null`\n // for a given source. Bundler resolvers can return null transiently early\n // in a build (loader context for that file isn't registered yet); after a\n // bounded number of retries we accept the null as authoritative.\n #resolveTaskNullAttempts = new Map<string, number>();\n\n private static readonly RESOLVE_TASK_MAX_NULL_ATTEMPTS = 2;\n\n #hasWywMetadata: boolean = false;\n\n #hasTransformResult = false;\n\n #isProcessing = false;\n\n #pendingOnly: string[] | null = null;\n\n #preevalResult: IPreevalResult | null = null;\n\n #processingPromise: Promise<void> | null = null;\n\n #resolveProcessing: (() => void) | null = null;\n\n #supersededWith: Entrypoint | null = null;\n\n #transformResultCode: string | null = null;\n\n private constructor(\n services: Services,\n parents: ParentEntrypoint[],\n public readonly initialCode: string | undefined,\n name: string,\n only: string[],\n exports: Record<string | symbol, unknown> | undefined,\n evaluatedOnly: string[],\n loadedAndParsed?: IEntrypointCode | IIgnoredEntrypoint,\n protected readonly resolveTasks = new Map<\n string,\n Promise<IEntrypointDependency>\n >(),\n readonly dependencies = new Map<string, IEntrypointDependency>(),\n readonly invalidationDependencies = new Map<\n string,\n IEntrypointDependency\n >(),\n readonly invalidateOnDependencyChange = new Set<string>(),\n generation = 1,\n private readonly skipCacheInvalidation = false\n ) {\n super(\n services,\n evaluatedOnly,\n exports,\n generation,\n name,\n only,\n parents,\n dependencies,\n invalidationDependencies,\n invalidateOnDependencyChange\n );\n\n this.loadedAndParsed =\n loadedAndParsed ??\n services.loadAndParseFn(\n services,\n name,\n initialCode,\n parents[0]?.log ?? services.log\n );\n\n if (\n !this.skipCacheInvalidation &&\n this.loadedAndParsed.code !== undefined\n ) {\n services.cache.invalidateIfChanged(\n name,\n this.loadedAndParsed.code,\n undefined,\n this.initialCode === undefined ? 'fs' : 'loaded'\n );\n }\n\n const code =\n this.loadedAndParsed.evaluator === 'ignored'\n ? '[IGNORED]'\n : this.originalCode || EMPTY_FILE;\n\n this.log.extend('source')('created %s (%o)\\n%s', name, only, code);\n }\n\n public get ignored() {\n return this.loadedAndParsed.evaluator === 'ignored';\n }\n\n public get originalCode() {\n return this.loadedAndParsed.code;\n }\n\n public get supersededWith(): Entrypoint | null {\n return this.#supersededWith?.supersededWith ?? this.#supersededWith;\n }\n\n public get transformedCode(): string | null {\n return (\n this.#transformResultCode ?? this.supersededWith?.transformedCode ?? null\n );\n }\n\n public get transformed(): boolean {\n return (\n this.#hasTransformResult || this.supersededWith?.transformed || false\n );\n }\n\n public get isProcessing(): boolean {\n return this.#isProcessing;\n }\n\n public static createRoot(\n services: Services,\n name: string,\n only: string[],\n loadedCode: string | undefined,\n options: CreateEntrypointOptions = {}\n ): Entrypoint {\n const created = Entrypoint.create(\n services,\n null,\n name,\n only,\n loadedCode,\n options\n );\n invariant(created !== 'loop', 'loop detected');\n\n return created;\n }\n\n protected static create(\n services: Services,\n parent: ParentEntrypoint | null,\n name: string,\n only: string[],\n loadedCode: string | undefined,\n options: CreateEntrypointOptions = {}\n ): Entrypoint | 'loop' {\n const { cache, eventEmitter } = services;\n return eventEmitter.perf('createEntrypoint', () => {\n const [status, entrypoint] = Entrypoint.innerCreate(\n services,\n parent\n ? {\n evaluated: parent.evaluated,\n log: parent.log,\n name: parent.name,\n parents: parent.parents,\n seqId: parent.seqId,\n }\n : null,\n name,\n only,\n loadedCode,\n options\n );\n\n if (status !== 'cached') {\n cache.add('entrypoints', name, entrypoint);\n }\n\n return status === 'loop' ? 'loop' : entrypoint;\n });\n }\n\n private static innerCreate(\n services: Services,\n parent: ParentEntrypoint | null,\n name: string,\n only: string[],\n loadedCode: string | undefined,\n options: CreateEntrypointOptions\n ): ['loop' | 'created' | 'cached', Entrypoint] {\n const { cache } = services;\n\n const cached = cache.get('entrypoints', name);\n let changed = false;\n if (loadedCode !== undefined) {\n changed = cache.invalidateIfChanged(\n name,\n loadedCode,\n undefined,\n 'loaded'\n );\n } else if (cached && cached.initialCode === undefined) {\n try {\n changed = cache.invalidateIfChanged(\n name,\n fs.readFileSync(stripQueryAndHash(name), 'utf8'),\n undefined,\n 'fs'\n );\n } catch {\n changed = false;\n }\n }\n\n if (!cached?.evaluated && cached?.ignored) {\n return ['cached', cached];\n }\n\n const exports = cached?.exports;\n const evaluatedOnly = changed ? [] : cached?.evaluatedOnly ?? [];\n const mergedOnly =\n options.mergeCachedOnly !== false && cached?.only\n ? mergeOnly(cached.only, only)\n : [...only];\n const reusableEvaluatedState =\n !changed && cached?.evaluated && cached.loadedAndParsed !== undefined;\n const canReuseEvaluatedTransformResult =\n reusableEvaluatedState &&\n isSuperSet(cached.evaluatedOnly, mergedOnly) &&\n cached.hasTransformResult &&\n cached.loadedAndParsed !== undefined;\n\n if (cached?.evaluated) {\n cached.log('is already evaluated with', cached.evaluatedOnly);\n }\n\n if (canReuseEvaluatedTransformResult) {\n const isLoop = parent && hasLoop(name, parent);\n const reusedEntrypoint = new Entrypoint(\n services,\n parent ? [parent] : [],\n loadedCode,\n name,\n mergedOnly,\n exports,\n evaluatedOnly,\n cached.loadedAndParsed,\n undefined,\n cached.dependencies,\n cached.invalidationDependencies,\n cached.invalidateOnDependencyChange,\n cached.generation + 1,\n true\n );\n\n reusedEntrypoint.reuseTransformResult(\n cached.transformResultCode,\n cached.hasWywMetadata\n );\n if (\n 'preevalResult' in cached &&\n cached.preevalResult !== null &&\n cached.preevalResult !== undefined\n ) {\n reusedEntrypoint.setPreevalResult(cached.preevalResult);\n }\n\n return [isLoop ? 'loop' : 'cached', reusedEntrypoint];\n }\n\n if (!changed && cached && !cached.evaluated) {\n const isLoop = parent && hasLoop(name, parent);\n if (isLoop) {\n parent.log('[createEntrypoint] %s is a loop', name);\n }\n\n if (parent && !cached.parents.map((p) => p.name).includes(parent.name)) {\n cached.parents.push(parent);\n }\n\n if (isSuperSet(cached.only, mergedOnly)) {\n cached.log('is cached', name);\n return [isLoop ? 'loop' : 'cached', cached];\n }\n\n cached.log(\n 'is cached, but with different `only` %o (the cached one %o)',\n only,\n cached?.only\n );\n\n if (cached.#isProcessing) {\n if (parent === null) {\n cached.log(\n 'is being processed during root request, supersede immediately (%o -> %o)',\n cached.only,\n mergedOnly\n );\n return [isLoop ? 'loop' : 'created', cached.supersede(mergedOnly)];\n }\n\n cached.deferOnlySupersede(mergedOnly);\n cached.log(\n 'is being processed, defer supersede (%o -> %o)',\n cached.only,\n mergedOnly\n );\n return [isLoop ? 'loop' : 'cached', cached];\n }\n\n return [isLoop ? 'loop' : 'created', cached.supersede(mergedOnly)];\n }\n\n const newEntrypoint = new Entrypoint(\n services,\n parent ? [parent] : [],\n loadedCode,\n name,\n mergedOnly,\n exports,\n evaluatedOnly,\n reusableEvaluatedState ? cached.loadedAndParsed : undefined,\n cached && 'resolveTasks' in cached ? cached.resolveTasks : undefined,\n cached && 'dependencies' in cached ? cached.dependencies : undefined,\n cached && 'invalidationDependencies' in cached\n ? cached.invalidationDependencies\n : undefined,\n cached && 'invalidateOnDependencyChange' in cached\n ? cached.invalidateOnDependencyChange\n : undefined,\n cached ? cached.generation + 1 : 1\n );\n\n if (\n reusableEvaluatedState &&\n 'preevalResult' in cached &&\n cached.preevalResult !== null &&\n cached.preevalResult !== undefined\n ) {\n newEntrypoint.setPreevalResult(cached.preevalResult);\n }\n\n if (cached && !cached.evaluated) {\n cached.log('is cached, but with different code');\n cached.supersede(newEntrypoint);\n }\n\n return ['created', newEntrypoint];\n }\n\n public addDependency(dependency: IEntrypointDependency): void {\n this.resolveTasks.delete(dependency.source);\n this.dependencies.set(dependency.source, dependency);\n }\n\n public addInvalidationDependency(dependency: IEntrypointDependency): void {\n this.resolveTasks.delete(dependency.source);\n this.invalidationDependencies.set(dependency.source, dependency);\n }\n\n public addResolveTask(\n name: string,\n dependency: Promise<IEntrypointDependency>\n ): void {\n // Bounded retry of transient null resolutions. The first time a\n // resolveTask settles to null, evict it from the cache so the next\n // consumer re-attempts the resolver. After RESOLVE_TASK_MAX_NULL_ATTEMPTS\n // failures the entry stays cached so we don't thrash. Successful (non-null)\n // resolutions remain cached normally; this branch only ever fires for null.\n const tracked = dependency.then((resolved) => {\n if (resolved.resolved !== null) {\n return resolved;\n }\n\n const attempts = (this.#resolveTaskNullAttempts.get(name) ?? 0) + 1;\n this.#resolveTaskNullAttempts.set(name, attempts);\n if (\n attempts < Entrypoint.RESOLVE_TASK_MAX_NULL_ATTEMPTS &&\n this.resolveTasks.get(name) === tracked\n ) {\n this.resolveTasks.delete(name);\n }\n\n return resolved;\n });\n this.resolveTasks.set(name, tracked);\n }\n\n public applyDeferredSupersede() {\n if (this.#supersededWith || this.#pendingOnly === null) {\n return null;\n }\n\n const mergedOnly = mergeOnly(this.only, this.#pendingOnly);\n this.#pendingOnly = null;\n\n if (isSuperSet(this.only, mergedOnly)) {\n return null;\n }\n\n this.log('apply deferred supersede (%o -> %o)', this.only, mergedOnly);\n\n const nextEntrypoint = this.supersede(mergedOnly);\n this.services.cache.add('entrypoints', this.name, nextEntrypoint);\n\n return nextEntrypoint;\n }\n\n public assertNotSuperseded() {\n if (this.supersededWith) {\n this.log('superseded');\n throw new AbortError('superseded');\n }\n }\n\n public assertTransformed() {\n if (this.transformedCode === null) {\n this.log('not transformed');\n throw new UnprocessedEntrypointError(this.supersededWith ?? this);\n }\n }\n\n public beginProcessing() {\n this.#isProcessing = true;\n if (!this.#processingPromise) {\n this.#processingPromise = new Promise<void>((resolve) => {\n this.#resolveProcessing = resolve;\n });\n }\n }\n\n public createAction<\n TType extends ActionTypes,\n TAction extends ActionByType<TType>,\n >(\n actionType: TType,\n data: TAction['data'],\n abortSignal: AbortSignal | null = null,\n actionContext: unknown = DEFAULT_ACTION_CONTEXT\n ): BaseAction<TAction> {\n if (!this.actionsCache.has(actionType)) {\n this.actionsCache.set(actionType, new Map());\n }\n\n const contexts = this.actionsCache.get(actionType)!;\n if (!contexts.has(actionContext)) {\n contexts.set(actionContext, new Map());\n }\n\n const cache = contexts.get(actionContext)!;\n const cached = cache.get(data);\n if (cached && !cached.abortSignal?.aborted) {\n return cached as BaseAction<TAction>;\n }\n\n const newAction = new BaseAction<TAction>(\n actionType as TAction['type'],\n this.services,\n this,\n data,\n abortSignal,\n actionContext\n );\n\n cache.set(data, newAction);\n\n this.services.eventEmitter.entrypointEvent(this.seqId, {\n type: 'actionCreated',\n actionType,\n actionIdx: newAction.idx,\n });\n\n return newAction;\n }\n\n public createChild(\n name: string,\n only: string[],\n loadedCode?: string\n ): Entrypoint | 'loop' {\n return Entrypoint.create(this.services, this, name, only, loadedCode);\n }\n\n public createEvaluated() {\n const evaluatedOnly = mergeOnly(this.evaluatedOnly, this.only);\n this.log('create EvaluatedEntrypoint for %o', evaluatedOnly);\n\n const evaluated = new EvaluatedEntrypoint(\n this.services,\n evaluatedOnly,\n this.exportsProxy,\n this.generation + 1,\n this.name,\n this.only,\n this.parents,\n this.dependencies,\n this.invalidationDependencies,\n this.invalidateOnDependencyChange\n );\n\n evaluated.initialCode = this.initialCode;\n evaluated.hasTransformResult = this.#hasTransformResult;\n evaluated.hasWywMetadata = this.#hasWywMetadata;\n evaluated.loadedAndParsed = this.loadedAndParsed;\n evaluated.preevalResult = this.#preevalResult;\n evaluated.transformResultCode = this.#transformResultCode;\n\n return evaluated;\n }\n\n public endProcessing() {\n this.#isProcessing = false;\n this.#resolveProcessing?.();\n this.#resolveProcessing = null;\n this.#processingPromise = null;\n }\n\n public getDependency(name: string): IEntrypointDependency | undefined {\n return this.dependencies.get(name);\n }\n\n public getPreevalResult(): IPreevalResult | null {\n return this.#preevalResult;\n }\n\n public getInvalidationDependency(\n name: string\n ): IEntrypointDependency | undefined {\n return this.invalidationDependencies.get(name);\n }\n\n public markInvalidateOnDependencyChange(filename: string): void {\n this.invalidateOnDependencyChange.add(filename);\n }\n\n public getResolveTask(\n name: string\n ): Promise<IEntrypointDependency> | undefined {\n return this.resolveTasks.get(name);\n }\n\n public hasWywMetadata() {\n return this.#hasWywMetadata;\n }\n\n public waitForProcessing(): Promise<void> {\n return this.#processingPromise ?? Promise.resolve();\n }\n\n public reuseTransformResult(\n code: string | null,\n hasWywMetadata: boolean\n ): void {\n this.#hasTransformResult = true;\n this.#hasWywMetadata = hasWywMetadata;\n this.#transformResultCode = code;\n }\n\n public onSupersede(callback: (newEntrypoint: Entrypoint) => void) {\n if (this.#supersededWith) {\n callback(this.#supersededWith);\n return () => {};\n }\n\n this.onSupersedeHandlers.push(callback);\n\n return () => {\n const index = this.onSupersedeHandlers.indexOf(callback);\n if (index >= 0) {\n this.onSupersedeHandlers.splice(index, 1);\n }\n };\n }\n\n public setTransformResult(res: ITransformFileResult | null) {\n this.#hasTransformResult = true;\n this.#hasWywMetadata = Boolean(res?.metadata);\n this.#transformResultCode = res?.code ?? null;\n\n this.services.eventEmitter.entrypointEvent(this.seqId, {\n isNull: res === null,\n type: 'setTransformResult',\n });\n }\n\n public setPreevalResult(result: IPreevalResult): void {\n this.#preevalResult = result;\n }\n\n private deferOnlySupersede(only: string[]) {\n this.#pendingOnly = this.#pendingOnly\n ? mergeOnly(this.#pendingOnly, only)\n : [...only];\n }\n\n private supersede(newOnlyOrEntrypoint: string[] | Entrypoint): Entrypoint {\n this.#pendingOnly = null;\n const widensOnly = !(newOnlyOrEntrypoint instanceof Entrypoint);\n const newEntrypoint = widensOnly\n ? new Entrypoint(\n this.services,\n this.parents,\n this.initialCode,\n this.name,\n newOnlyOrEntrypoint,\n this.exports,\n this.evaluatedOnly,\n this.loadedAndParsed,\n this.resolveTasks,\n this.dependencies,\n this.invalidationDependencies,\n this.invalidateOnDependencyChange,\n this.generation + 1\n )\n : newOnlyOrEntrypoint;\n\n this.services.eventEmitter.entrypointEvent(this.seqId, {\n type: 'superseded',\n with: newEntrypoint.seqId,\n });\n this.log(\n 'superseded by %s (%o -> %o)',\n newEntrypoint.name,\n this.only,\n newEntrypoint.only\n );\n if (widensOnly) {\n newEntrypoint.#preevalResult = this.#preevalResult;\n }\n\n this.#supersededWith = newEntrypoint;\n this.onSupersedeHandlers.forEach((handler) => handler(newEntrypoint));\n\n return newEntrypoint;\n }\n}\n"],"file":"Entrypoint.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=Entrypoint.types.js.map
|
|
2
|
+
//# sourceMappingURL=Entrypoint.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":"","names":[],"sources":["../../src/transform/Entrypoint.types.ts"],"version":3,"sourcesContent":["import type {\n Debugger,\n Evaluator,\n TransformEngineOptions,\n} from '@wyw-in-js/shared';\n\nimport type { Services } from './types';\nimport type { WYWTransformMetadata } from '../utils/TransformMetadata';\n\nexport type ParsedAst = unknown;\n\nexport interface IEntrypointCode {\n readonly ast: ParsedAst;\n code: string;\n evalConfig: TransformEngineOptions;\n evaluator: Evaluator;\n}\n\nexport interface IIgnoredEntrypoint {\n readonly ast?: ParsedAst;\n readonly code?: string;\n evaluator: 'ignored';\n reason: 'extension' | 'rule';\n}\n\nexport interface IEntrypointDependency {\n only: string[];\n resolved: string | null;\n source: string;\n}\n\nexport interface IPreevalResult {\n ast: ParsedAst | null;\n baseCode?: string;\n code: string;\n dependencyNames?: string[];\n evalCode?: string;\n metadata: WYWTransformMetadata | null;\n processorClassNames?: Record<string, string>;\n staticSideEffectImportLocals?: string[];\n staticDependencies?: string[];\n staticNullWYWMetaExtendsHelpers?: string[];\n staticValuesApplied?: boolean;\n staticValueCache?: Map<string, unknown>;\n runtimeOnlyStaticValueNames?: string[];\n staticValueCandidates?: Array<{\n imports: Array<{\n imported: 'default' | string;\n importLocal?: string;\n local: string;\n source: string;\n }>;\n name: string;\n source: string;\n }>;\n}\n\nexport type LoadAndParseFn = (\n services: Services,\n name: string,\n loadedCode: string | undefined,\n log: Debugger\n) => IEntrypointCode | IIgnoredEntrypoint;\n"],"file":"Entrypoint.types.js"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import { BaseEntrypoint } from
|
|
1
|
+
import { BaseEntrypoint } from "./BaseEntrypoint.js";
|
|
2
2
|
export class EvaluatedEntrypoint extends BaseEntrypoint {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
evaluated = true;
|
|
4
|
+
ignored = false;
|
|
5
|
+
hasTransformResult = false;
|
|
6
|
+
hasWywMetadata = false;
|
|
7
|
+
initialCode;
|
|
8
|
+
loadedAndParsed;
|
|
9
|
+
preevalResult = null;
|
|
10
|
+
transformResultCode = null;
|
|
5
11
|
}
|
|
6
|
-
//# sourceMappingURL=EvaluatedEntrypoint.js.map
|
|
12
|
+
//# sourceMappingURL=EvaluatedEntrypoint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":"AAEA,SAAS,sBAAsB;AA4B/B,OAAO,MAAM,4BACH,eAEV;CACE,AAAgB,YAAY;CAE5B,AAAgB,UAAU;CAE1B,AAAO,qBAAqB;CAE5B,AAAO,iBAAiB;CAExB,AAAO;CAEP,AAAO;CAEP,AAAO,gBAAuC;CAE9C,AAAO,sBAAqC","names":[],"sources":["../../src/transform/EvaluatedEntrypoint.ts"],"version":3,"sourcesContent":["import type { Debugger } from '@wyw-in-js/shared';\n\nimport { BaseEntrypoint } from './BaseEntrypoint';\nimport type {\n IEntrypointCode,\n IIgnoredEntrypoint,\n IEntrypointDependency,\n IPreevalResult,\n} from './Entrypoint.types';\nimport type { ParentEntrypoint } from '../types';\n\nexport interface IEvaluatedEntrypoint extends ParentEntrypoint {\n dependencies: Map<string, IEntrypointDependency>;\n evaluated: true;\n evaluatedOnly: string[];\n exports: Record<string | symbol, unknown>;\n generation: number;\n hasTransformResult: boolean;\n hasWywMetadata: boolean;\n ignored: false;\n initialCode?: string;\n invalidationDependencies: Map<string, IEntrypointDependency>;\n invalidateOnDependencyChange: Set<string>;\n loadedAndParsed?: IEntrypointCode | IIgnoredEntrypoint;\n log: Debugger;\n only: string[];\n preevalResult: IPreevalResult | null;\n transformResultCode: string | null;\n}\n\nexport class EvaluatedEntrypoint\n extends BaseEntrypoint\n implements IEvaluatedEntrypoint\n{\n public readonly evaluated = true;\n\n public readonly ignored = false;\n\n public hasTransformResult = false;\n\n public hasWywMetadata = false;\n\n public initialCode?: string;\n\n public loadedAndParsed?: IEntrypointCode | IIgnoredEntrypoint;\n\n public preevalResult: IPreevalResult | null = null;\n\n public transformResultCode: string | null = null;\n}\n"],"file":"EvaluatedEntrypoint.js"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export class AbortError extends Error {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
constructor(reason) {
|
|
3
|
+
super(reason);
|
|
4
|
+
this.name = "AbortError";
|
|
5
|
+
}
|
|
6
6
|
}
|
|
7
|
-
export const isAborted = value => value instanceof AbortError;
|
|
8
|
-
//# sourceMappingURL=AbortError.js.map
|
|
7
|
+
export const isAborted = (value) => value instanceof AbortError;
|
|
8
|
+
//# sourceMappingURL=AbortError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":"AAAA,OAAO,MAAM,mBAAmB,MAAM;CACpC,YAAY,QAAiB;AAC3B,QAAM,OAAO;AACb,OAAK,OAAO;;;AAIhB,OAAO,MAAM,aAAa,UACxB,iBAAiB","names":[],"sources":["../../../src/transform/actions/AbortError.ts"],"version":3,"sourcesContent":["export class AbortError extends Error {\n constructor(reason?: string) {\n super(reason);\n this.name = 'AbortError';\n }\n}\n\nexport const isAborted = (value: unknown): value is AbortError =>\n value instanceof AbortError;\n"],"file":"AbortError.js"}
|
|
@@ -1,140 +1,144 @@
|
|
|
1
1
|
/* eslint-disable no-plusplus */
|
|
2
|
-
import
|
|
3
|
-
import { Pending } from
|
|
2
|
+
import "../../utils/dispose-polyfill.js";
|
|
3
|
+
import { Pending } from "../types.js";
|
|
4
4
|
let actionIdx = 0;
|
|
5
5
|
export class BaseAction {
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
6
|
+
idx;
|
|
7
|
+
result = Pending;
|
|
8
|
+
activeScenario = null;
|
|
9
|
+
activeScenarioError;
|
|
10
|
+
activeScenarioNextResults = [];
|
|
11
|
+
handler = null;
|
|
12
|
+
constructor(type, services, entrypoint, data, abortSignal, actionContext) {
|
|
13
|
+
this.type = type;
|
|
14
|
+
this.services = services;
|
|
15
|
+
this.entrypoint = entrypoint;
|
|
16
|
+
this.data = data;
|
|
17
|
+
this.abortSignal = abortSignal;
|
|
18
|
+
this.actionContext = actionContext;
|
|
19
|
+
actionIdx += 1;
|
|
20
|
+
this.idx = actionIdx.toString(16).padStart(6, "0");
|
|
21
|
+
}
|
|
22
|
+
get log() {
|
|
23
|
+
return this.entrypoint.log.extend(this.ref);
|
|
24
|
+
}
|
|
25
|
+
get ref() {
|
|
26
|
+
return `${this.type}@${this.idx}`;
|
|
27
|
+
}
|
|
28
|
+
createAbortSignal() {
|
|
29
|
+
const abortController = new AbortController();
|
|
30
|
+
const unsubscribeFromParentAbort = this.onAbort(() => {
|
|
31
|
+
this.entrypoint.log("parent aborted");
|
|
32
|
+
abortController.abort();
|
|
33
|
+
});
|
|
34
|
+
const unsubscribeFromSupersede = this.entrypoint.onSupersede(() => {
|
|
35
|
+
this.entrypoint.log("entrypoint superseded, aborting processing");
|
|
36
|
+
abortController.abort();
|
|
37
|
+
});
|
|
38
|
+
const abortSignal = abortController.signal;
|
|
39
|
+
abortSignal[Symbol.dispose] = () => {
|
|
40
|
+
unsubscribeFromParentAbort();
|
|
41
|
+
unsubscribeFromSupersede();
|
|
42
|
+
};
|
|
43
|
+
return abortSignal;
|
|
44
|
+
}
|
|
45
|
+
*getNext(type, entrypoint, data, abortSignal = this.abortSignal) {
|
|
46
|
+
return yield [
|
|
47
|
+
type,
|
|
48
|
+
entrypoint,
|
|
49
|
+
data,
|
|
50
|
+
abortSignal
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
onAbort(fn) {
|
|
54
|
+
this.abortSignal?.addEventListener("abort", fn);
|
|
55
|
+
return () => {
|
|
56
|
+
this.abortSignal?.removeEventListener("abort", fn);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
run(handler) {
|
|
60
|
+
if (this.handler && this.handler !== handler) {
|
|
61
|
+
throw new Error(`action handler is already set for ${this.ref} (${this.entrypoint.name})`);
|
|
62
|
+
}
|
|
63
|
+
this.handler = handler;
|
|
64
|
+
if (!this.activeScenario) {
|
|
65
|
+
this.activeScenario = handler.call(this);
|
|
66
|
+
this.activeScenarioNextResults = [];
|
|
67
|
+
}
|
|
68
|
+
let nextIdx = 0;
|
|
69
|
+
const throwFn = (e) => this.emitAction(nextIdx, () => this.activeScenario.throw(e));
|
|
70
|
+
const nextFn = (arg) => this.emitAction(nextIdx, () => this.activeScenario.next(arg));
|
|
71
|
+
const processNextResult = (result, onError) => {
|
|
72
|
+
if ("then" in result) {
|
|
73
|
+
result.then((r) => {
|
|
74
|
+
if (r.done) {
|
|
75
|
+
this.result = r.value;
|
|
76
|
+
}
|
|
77
|
+
}, onError);
|
|
78
|
+
} else if (result.done) {
|
|
79
|
+
this.result = result.value;
|
|
80
|
+
}
|
|
81
|
+
this.activeScenarioNextResults.push(result);
|
|
82
|
+
};
|
|
83
|
+
const processError = (e) => {
|
|
84
|
+
if (this.activeScenarioNextResults.length > nextIdx) {
|
|
85
|
+
this.log("error was already handled in another branch, result idx is %d", nextIdx);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.log("error processing, result idx is %d", nextIdx);
|
|
89
|
+
try {
|
|
90
|
+
const nextResult = throwFn(e);
|
|
91
|
+
processNextResult(nextResult, processError);
|
|
92
|
+
} catch (errorInGenerator) {
|
|
93
|
+
const { recover } = handler;
|
|
94
|
+
if (recover) {
|
|
95
|
+
const nextResult = {
|
|
96
|
+
done: false,
|
|
97
|
+
value: recover(errorInGenerator, this)
|
|
98
|
+
};
|
|
99
|
+
processNextResult(nextResult, processError);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
this.activeScenarioError = errorInGenerator;
|
|
103
|
+
throw errorInGenerator;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const processNext = (arg) => {
|
|
107
|
+
if (this.activeScenarioNextResults.length > nextIdx) {
|
|
108
|
+
this.log("next was already handled in another branch, result idx is %d", nextIdx);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.log("next processing, result idx is %d", nextIdx);
|
|
112
|
+
try {
|
|
113
|
+
const nextResult = nextFn(arg);
|
|
114
|
+
processNextResult(nextResult, processError);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
processError(e);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
return {
|
|
120
|
+
next: (arg) => {
|
|
121
|
+
this.rethrowActiveScenarioError();
|
|
122
|
+
processNext(arg);
|
|
123
|
+
return this.activeScenarioNextResults[nextIdx++];
|
|
124
|
+
},
|
|
125
|
+
throw: (e) => {
|
|
126
|
+
this.rethrowActiveScenarioError();
|
|
127
|
+
processError(e);
|
|
128
|
+
return this.activeScenarioNextResults[nextIdx++];
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
emitAction(yieldIdx, fn) {
|
|
133
|
+
return this.services.eventEmitter.action(this.type, `${this.idx}:${yieldIdx + 1}`, this.entrypoint.ref, fn);
|
|
134
|
+
}
|
|
135
|
+
rethrowActiveScenarioError() {
|
|
136
|
+
if (!this.activeScenarioError) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
this.log("scenario has an unhandled error from another branch, rethrow %o", this.activeScenarioError);
|
|
140
|
+
// eslint-disable-next-line @typescript-eslint/no-throw-literal
|
|
141
|
+
throw this.activeScenarioError;
|
|
142
|
+
}
|
|
139
143
|
}
|
|
140
|
-
//# sourceMappingURL=BaseAction.js.map
|
|
144
|
+
//# sourceMappingURL=BaseAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAction.js","names":["Pending","actionIdx","BaseAction","result","activeScenario","activeScenarioNextResults","handler","constructor","type","services","entrypoint","data","abortSignal","actionContext","idx","toString","padStart","log","extend","ref","createAbortSignal","abortController","AbortController","unsubscribeFromParentAbort","onAbort","abort","unsubscribeFromSupersede","onSupersede","signal","Symbol","dispose","getNext","fn","addEventListener","removeEventListener","run","Error","name","call","nextIdx","throwFn","e","emitAction","throw","nextFn","arg","next","processNextResult","onError","then","r","done","value","push","processError","length","nextResult","errorInGenerator","recover","activeScenarioError","processNext","rethrowActiveScenarioError","yieldIdx","eventEmitter","action"],"sources":["../../../src/transform/actions/BaseAction.ts"],"sourcesContent":["/* eslint-disable no-plusplus */\nimport '../../utils/dispose-polyfill';\nimport type { Debugger } from '@wyw-in-js/shared';\n\nimport type { Entrypoint } from '../Entrypoint';\nimport type {\n ActionQueueItem,\n ActionTypes,\n AnyIteratorResult,\n AsyncScenarioForAction,\n Handler,\n IBaseAction,\n Services,\n SyncScenarioForAction,\n TypeOfResult,\n YieldResult,\n} from '../types';\nimport { Pending } from '../types';\n\nlet actionIdx = 0;\n\nexport type ActionByType<TType extends ActionTypes> = Extract<\n ActionQueueItem,\n {\n type: TType;\n }\n>;\n\ntype GetBase<TAction extends ActionQueueItem> = IBaseAction<\n TAction,\n TypeOfResult<TAction>,\n TAction['data']\n>;\n\nexport class BaseAction<TAction extends ActionQueueItem>\n implements GetBase<TAction>\n{\n public readonly idx: string;\n\n public result: TypeOfResult<TAction> | typeof Pending = Pending;\n\n private activeScenario:\n | SyncScenarioForAction<TAction>\n | AsyncScenarioForAction<TAction>\n | null = null;\n\n private activeScenarioError?: unknown;\n\n private activeScenarioNextResults: AnyIteratorResult<\n 'async' | 'sync',\n TypeOfResult<TAction>\n >[] = [];\n\n private handler: null | unknown = null;\n\n public constructor(\n public readonly type: TAction['type'],\n public readonly services: Services,\n public readonly entrypoint: Entrypoint,\n public readonly data: TAction['data'],\n public readonly abortSignal: AbortSignal | null,\n public readonly actionContext: unknown\n ) {\n actionIdx += 1;\n this.idx = actionIdx.toString(16).padStart(6, '0');\n }\n\n public get log(): Debugger {\n return this.entrypoint.log.extend(this.ref);\n }\n\n public get ref() {\n return `${this.type}@${this.idx}`;\n }\n\n public createAbortSignal(): AbortSignal & Disposable {\n const abortController = new AbortController();\n\n const unsubscribeFromParentAbort = this.onAbort(() => {\n this.entrypoint.log('parent aborted');\n abortController.abort();\n });\n\n const unsubscribeFromSupersede = this.entrypoint.onSupersede(() => {\n this.entrypoint.log('entrypoint superseded, aborting processing');\n abortController.abort();\n });\n\n const abortSignal = abortController.signal as AbortSignal & Disposable;\n abortSignal[Symbol.dispose] = () => {\n unsubscribeFromParentAbort();\n unsubscribeFromSupersede();\n };\n\n return abortSignal;\n }\n\n public *getNext<\n TNextType extends ActionTypes,\n TNextAction extends ActionByType<TNextType> = ActionByType<TNextType>,\n >(\n type: TNextType,\n entrypoint: Entrypoint,\n data: TNextAction['data'],\n abortSignal: AbortSignal | null = this.abortSignal\n ): Generator<\n [TNextType, Entrypoint, TNextAction['data'], AbortSignal | null],\n TypeOfResult<TNextAction>,\n YieldResult\n > {\n return (yield [\n type,\n entrypoint,\n data,\n abortSignal,\n ]) as TypeOfResult<TNextAction>;\n }\n\n public onAbort(fn: () => void): () => void {\n this.abortSignal?.addEventListener('abort', fn);\n\n return () => {\n this.abortSignal?.removeEventListener('abort', fn);\n };\n }\n\n public run<\n TMode extends 'async' | 'sync',\n THandler extends Handler<TMode, TAction> = Handler<TMode, TAction>,\n >(handler: THandler) {\n type IterationResult = AnyIteratorResult<TMode, TypeOfResult<TAction>>;\n\n if (this.handler && this.handler !== handler) {\n throw new Error(\n `action handler is already set for ${this.ref} (${this.entrypoint.name})`\n );\n }\n\n this.handler = handler;\n\n if (!this.activeScenario) {\n this.activeScenario = handler.call(this);\n this.activeScenarioNextResults = [];\n }\n\n let nextIdx = 0;\n\n const throwFn = (e: unknown) =>\n this.emitAction(nextIdx, () => this.activeScenario!.throw(e));\n\n const nextFn = (arg: YieldResult) =>\n this.emitAction(nextIdx, () => this.activeScenario!.next(arg));\n\n const processNextResult = (\n result: IterationResult,\n onError?: (e: unknown) => void\n ) => {\n if ('then' in result) {\n result.then((r) => {\n if (r.done) {\n this.result = r.value;\n }\n }, onError);\n } else if (result.done) {\n this.result = result.value;\n }\n\n this.activeScenarioNextResults.push(result);\n };\n\n const processError = (e: unknown) => {\n if (this.activeScenarioNextResults.length > nextIdx) {\n this.log(\n 'error was already handled in another branch, result idx is %d',\n nextIdx\n );\n return;\n }\n\n this.log('error processing, result idx is %d', nextIdx);\n\n try {\n const nextResult = throwFn(e);\n processNextResult(nextResult as IterationResult, processError);\n } catch (errorInGenerator) {\n const { recover } = handler;\n if (recover) {\n const nextResult = {\n done: false,\n value: recover(errorInGenerator, this),\n };\n\n processNextResult(nextResult as IterationResult, processError);\n return;\n }\n\n this.activeScenarioError = errorInGenerator;\n throw errorInGenerator;\n }\n };\n\n const processNext = (arg: YieldResult) => {\n if (this.activeScenarioNextResults.length > nextIdx) {\n this.log(\n 'next was already handled in another branch, result idx is %d',\n nextIdx\n );\n return;\n }\n\n this.log('next processing, result idx is %d', nextIdx);\n\n try {\n const nextResult = nextFn(arg);\n processNextResult(nextResult as IterationResult, processError);\n } catch (e) {\n processError(e);\n }\n };\n\n return {\n next: (arg: YieldResult): IterationResult => {\n this.rethrowActiveScenarioError();\n processNext(arg);\n return this.activeScenarioNextResults[nextIdx++] as IterationResult;\n },\n throw: (e: unknown): IterationResult => {\n this.rethrowActiveScenarioError();\n processError(e);\n return this.activeScenarioNextResults[nextIdx++] as IterationResult;\n },\n };\n }\n\n protected emitAction<TRes>(yieldIdx: number, fn: () => TRes) {\n return this.services.eventEmitter.action(\n this.type,\n `${this.idx}:${yieldIdx + 1}`,\n this.entrypoint.ref,\n fn\n );\n }\n\n private rethrowActiveScenarioError() {\n if (!this.activeScenarioError) {\n return;\n }\n\n this.log(\n 'scenario has an unhandled error from another branch, rethrow %o',\n this.activeScenarioError\n );\n\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw this.activeScenarioError;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"mappings":"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","names":[],"sources":["../../../src/transform/actions/BaseAction.ts"],"version":3,"sourcesContent":["/* eslint-disable no-plusplus */\nimport '../../utils/dispose-polyfill';\nimport type { Debugger } from '@wyw-in-js/shared';\n\nimport type { Entrypoint } from '../Entrypoint';\nimport type {\n ActionQueueItem,\n ActionTypes,\n AnyIteratorResult,\n AsyncScenarioForAction,\n Handler,\n IBaseAction,\n Services,\n SyncScenarioForAction,\n TypeOfResult,\n YieldResult,\n} from '../types';\nimport { Pending } from '../types';\n\nlet actionIdx = 0;\n\nexport type ActionByType<TType extends ActionTypes> = Extract<\n ActionQueueItem,\n {\n type: TType;\n }\n>;\n\ntype GetBase<TAction extends ActionQueueItem> = IBaseAction<\n TAction,\n TypeOfResult<TAction>,\n TAction['data']\n>;\n\nexport class BaseAction<TAction extends ActionQueueItem>\n implements GetBase<TAction>\n{\n public readonly idx: string;\n\n public result: TypeOfResult<TAction> | typeof Pending = Pending;\n\n private activeScenario:\n | SyncScenarioForAction<TAction>\n | AsyncScenarioForAction<TAction>\n | null = null;\n\n private activeScenarioError?: unknown;\n\n private activeScenarioNextResults: AnyIteratorResult<\n 'async' | 'sync',\n TypeOfResult<TAction>\n >[] = [];\n\n private handler: null | unknown = null;\n\n public constructor(\n public readonly type: TAction['type'],\n public readonly services: Services,\n public readonly entrypoint: Entrypoint,\n public readonly data: TAction['data'],\n public readonly abortSignal: AbortSignal | null,\n public readonly actionContext: unknown\n ) {\n actionIdx += 1;\n this.idx = actionIdx.toString(16).padStart(6, '0');\n }\n\n public get log(): Debugger {\n return this.entrypoint.log.extend(this.ref);\n }\n\n public get ref() {\n return `${this.type}@${this.idx}`;\n }\n\n public createAbortSignal(): AbortSignal & Disposable {\n const abortController = new AbortController();\n\n const unsubscribeFromParentAbort = this.onAbort(() => {\n this.entrypoint.log('parent aborted');\n abortController.abort();\n });\n\n const unsubscribeFromSupersede = this.entrypoint.onSupersede(() => {\n this.entrypoint.log('entrypoint superseded, aborting processing');\n abortController.abort();\n });\n\n const abortSignal = abortController.signal as AbortSignal & Disposable;\n abortSignal[Symbol.dispose] = () => {\n unsubscribeFromParentAbort();\n unsubscribeFromSupersede();\n };\n\n return abortSignal;\n }\n\n public *getNext<\n TNextType extends ActionTypes,\n TNextAction extends ActionByType<TNextType> = ActionByType<TNextType>,\n >(\n type: TNextType,\n entrypoint: Entrypoint,\n data: TNextAction['data'],\n abortSignal: AbortSignal | null = this.abortSignal\n ): Generator<\n [TNextType, Entrypoint, TNextAction['data'], AbortSignal | null],\n TypeOfResult<TNextAction>,\n YieldResult\n > {\n return (yield [\n type,\n entrypoint,\n data,\n abortSignal,\n ]) as TypeOfResult<TNextAction>;\n }\n\n public onAbort(fn: () => void): () => void {\n this.abortSignal?.addEventListener('abort', fn);\n\n return () => {\n this.abortSignal?.removeEventListener('abort', fn);\n };\n }\n\n public run<\n TMode extends 'async' | 'sync',\n THandler extends Handler<TMode, TAction> = Handler<TMode, TAction>,\n >(handler: THandler) {\n type IterationResult = AnyIteratorResult<TMode, TypeOfResult<TAction>>;\n\n if (this.handler && this.handler !== handler) {\n throw new Error(\n `action handler is already set for ${this.ref} (${this.entrypoint.name})`\n );\n }\n\n this.handler = handler;\n\n if (!this.activeScenario) {\n this.activeScenario = handler.call(this);\n this.activeScenarioNextResults = [];\n }\n\n let nextIdx = 0;\n\n const throwFn = (e: unknown) =>\n this.emitAction(nextIdx, () => this.activeScenario!.throw(e));\n\n const nextFn = (arg: YieldResult) =>\n this.emitAction(nextIdx, () => this.activeScenario!.next(arg));\n\n const processNextResult = (\n result: IterationResult,\n onError?: (e: unknown) => void\n ) => {\n if ('then' in result) {\n result.then((r) => {\n if (r.done) {\n this.result = r.value;\n }\n }, onError);\n } else if (result.done) {\n this.result = result.value;\n }\n\n this.activeScenarioNextResults.push(result);\n };\n\n const processError = (e: unknown) => {\n if (this.activeScenarioNextResults.length > nextIdx) {\n this.log(\n 'error was already handled in another branch, result idx is %d',\n nextIdx\n );\n return;\n }\n\n this.log('error processing, result idx is %d', nextIdx);\n\n try {\n const nextResult = throwFn(e);\n processNextResult(nextResult as IterationResult, processError);\n } catch (errorInGenerator) {\n const { recover } = handler;\n if (recover) {\n const nextResult = {\n done: false,\n value: recover(errorInGenerator, this),\n };\n\n processNextResult(nextResult as IterationResult, processError);\n return;\n }\n\n this.activeScenarioError = errorInGenerator;\n throw errorInGenerator;\n }\n };\n\n const processNext = (arg: YieldResult) => {\n if (this.activeScenarioNextResults.length > nextIdx) {\n this.log(\n 'next was already handled in another branch, result idx is %d',\n nextIdx\n );\n return;\n }\n\n this.log('next processing, result idx is %d', nextIdx);\n\n try {\n const nextResult = nextFn(arg);\n processNextResult(nextResult as IterationResult, processError);\n } catch (e) {\n processError(e);\n }\n };\n\n return {\n next: (arg: YieldResult): IterationResult => {\n this.rethrowActiveScenarioError();\n processNext(arg);\n return this.activeScenarioNextResults[nextIdx++] as IterationResult;\n },\n throw: (e: unknown): IterationResult => {\n this.rethrowActiveScenarioError();\n processError(e);\n return this.activeScenarioNextResults[nextIdx++] as IterationResult;\n },\n };\n }\n\n protected emitAction<TRes>(yieldIdx: number, fn: () => TRes) {\n return this.services.eventEmitter.action(\n this.type,\n `${this.idx}:${yieldIdx + 1}`,\n this.entrypoint.ref,\n fn\n );\n }\n\n private rethrowActiveScenarioError() {\n if (!this.activeScenarioError) {\n return;\n }\n\n this.log(\n 'scenario has an unhandled error from another branch, rethrow %o',\n this.activeScenarioError\n );\n\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw this.activeScenarioError;\n }\n}\n"],"file":"BaseAction.js"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export class UnprocessedEntrypointError extends Error {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
constructor(entrypoint) {
|
|
3
|
+
super(`Entrypoint ${entrypoint.idx} is not processed and can't be evaluated`);
|
|
4
|
+
this.entrypoint = entrypoint;
|
|
5
|
+
}
|
|
6
6
|
}
|
|
7
|
-
export const isUnprocessedEntrypointError = value => value instanceof UnprocessedEntrypointError;
|
|
8
|
-
//# sourceMappingURL=UnprocessedEntrypointError.js.map
|
|
7
|
+
export const isUnprocessedEntrypointError = (value) => value instanceof UnprocessedEntrypointError;
|
|
8
|
+
//# sourceMappingURL=UnprocessedEntrypointError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"mappings":"AAEA,OAAO,MAAM,mCAAmC,MAAM;CACpD,YAAY,AAAO,YAAwB;AACzC,QACE,cAAc,WAAW,IAAI,0CAC9B;EAHgB;;;AAOrB,OAAO,MAAM,gCACX,UAEA,iBAAiB","names":[],"sources":["../../../src/transform/actions/UnprocessedEntrypointError.ts"],"version":3,"sourcesContent":["import type { Entrypoint } from '../Entrypoint';\n\nexport class UnprocessedEntrypointError extends Error {\n constructor(public entrypoint: Entrypoint) {\n super(\n `Entrypoint ${entrypoint.idx} is not processed and can't be evaluated`\n );\n }\n}\n\nexport const isUnprocessedEntrypointError = (\n value: unknown\n): value is UnprocessedEntrypointError =>\n value instanceof UnprocessedEntrypointError;\n"],"file":"UnprocessedEntrypointError.js"}
|