@wyw-in-js/transform 0.1.0
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/LICENSE +21 -0
- package/esm/babel.js +2 -0
- package/esm/babel.js.map +1 -0
- package/esm/cache.js +80 -0
- package/esm/cache.js.map +1 -0
- package/esm/debug/fileReporter.js +144 -0
- package/esm/debug/fileReporter.js.map +1 -0
- package/esm/evaluators/index.js +14 -0
- package/esm/evaluators/index.js.map +1 -0
- package/esm/index.js +24 -0
- package/esm/index.js.map +1 -0
- package/esm/module.js +316 -0
- package/esm/module.js.map +1 -0
- package/esm/options/babel-merge.d.js +2 -0
- package/esm/options/babel-merge.d.js.map +1 -0
- package/esm/options/buildOptions.js +28 -0
- package/esm/options/buildOptions.js.map +1 -0
- package/esm/options/loadBabelOptions.js +24 -0
- package/esm/options/loadBabelOptions.js.map +1 -0
- package/esm/plugins/babel-transform.js +53 -0
- package/esm/plugins/babel-transform.js.map +1 -0
- package/esm/plugins/collector.js +66 -0
- package/esm/plugins/collector.js.map +1 -0
- package/esm/plugins/dynamic-import.js +28 -0
- package/esm/plugins/dynamic-import.js.map +1 -0
- package/esm/plugins/preeval.js +75 -0
- package/esm/plugins/preeval.js.map +1 -0
- package/esm/plugins/shaker.js +296 -0
- package/esm/plugins/shaker.js.map +1 -0
- package/esm/shaker.js +50 -0
- package/esm/shaker.js.map +1 -0
- package/esm/transform/BaseEntrypoint.js +164 -0
- package/esm/transform/BaseEntrypoint.js.map +1 -0
- package/esm/transform/Entrypoint.helpers.js +168 -0
- package/esm/transform/Entrypoint.helpers.js.map +1 -0
- package/esm/transform/Entrypoint.js +212 -0
- package/esm/transform/Entrypoint.js.map +1 -0
- package/esm/transform/Entrypoint.types.js +2 -0
- package/esm/transform/Entrypoint.types.js.map +1 -0
- package/esm/transform/EvaluatedEntrypoint.js +6 -0
- package/esm/transform/EvaluatedEntrypoint.js.map +1 -0
- package/esm/transform/actions/AbortError.js +8 -0
- package/esm/transform/actions/AbortError.js.map +1 -0
- package/esm/transform/actions/BaseAction.js +134 -0
- package/esm/transform/actions/BaseAction.js.map +1 -0
- package/esm/transform/actions/UnprocessedEntrypointError.js +8 -0
- package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -0
- package/esm/transform/actions/actionRunner.js +73 -0
- package/esm/transform/actions/actionRunner.js.map +1 -0
- package/esm/transform/actions/types.js +2 -0
- package/esm/transform/actions/types.js.map +1 -0
- package/esm/transform/generators/baseProcessingHandlers.js +22 -0
- package/esm/transform/generators/baseProcessingHandlers.js.map +1 -0
- package/esm/transform/generators/collect.js +58 -0
- package/esm/transform/generators/collect.js.map +1 -0
- package/esm/transform/generators/evalFile.js +50 -0
- package/esm/transform/generators/evalFile.js.map +1 -0
- package/esm/transform/generators/explodeReexports.js +63 -0
- package/esm/transform/generators/explodeReexports.js.map +1 -0
- package/esm/transform/generators/extract.js +120 -0
- package/esm/transform/generators/extract.js.map +1 -0
- package/esm/transform/generators/getExports.js +73 -0
- package/esm/transform/generators/getExports.js.map +1 -0
- package/esm/transform/generators/index.js +13 -0
- package/esm/transform/generators/index.js.map +1 -0
- package/esm/transform/generators/processEntrypoint.js +43 -0
- package/esm/transform/generators/processEntrypoint.js.map +1 -0
- package/esm/transform/generators/processImports.js +23 -0
- package/esm/transform/generators/processImports.js.map +1 -0
- package/esm/transform/generators/resolveImports.js +148 -0
- package/esm/transform/generators/resolveImports.js.map +1 -0
- package/esm/transform/generators/transform.js +117 -0
- package/esm/transform/generators/transform.js.map +1 -0
- package/esm/transform/generators/workflow.js +82 -0
- package/esm/transform/generators/workflow.js.map +1 -0
- package/esm/transform/helpers/loadLinariaOptions.js +66 -0
- package/esm/transform/helpers/loadLinariaOptions.js.map +1 -0
- package/esm/transform/helpers/withDefaultServices.js +21 -0
- package/esm/transform/helpers/withDefaultServices.js.map +1 -0
- package/esm/transform/rootLog.js +3 -0
- package/esm/transform/rootLog.js.map +1 -0
- package/esm/transform/types.js +2 -0
- package/esm/transform/types.js.map +1 -0
- package/esm/transform.js +121 -0
- package/esm/transform.js.map +1 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/esm/utils/EventEmitter.js +52 -0
- package/esm/utils/EventEmitter.js.map +1 -0
- package/esm/utils/ShakerMetadata.js +2 -0
- package/esm/utils/ShakerMetadata.js.map +1 -0
- package/esm/utils/TransformMetadata.js +11 -0
- package/esm/utils/TransformMetadata.js.map +1 -0
- package/esm/utils/addIdentifierToLinariaPreval.js +68 -0
- package/esm/utils/addIdentifierToLinariaPreval.js.map +1 -0
- package/esm/utils/collectExportsAndImports.js +974 -0
- package/esm/utils/collectExportsAndImports.js.map +1 -0
- package/esm/utils/collectTemplateDependencies.js +219 -0
- package/esm/utils/collectTemplateDependencies.js.map +1 -0
- package/esm/utils/createId.js +6 -0
- package/esm/utils/createId.js.map +1 -0
- package/esm/utils/dispose-polyfill.js +6 -0
- package/esm/utils/dispose-polyfill.js.map +1 -0
- package/esm/utils/findIdentifiers.js +62 -0
- package/esm/utils/findIdentifiers.js.map +1 -0
- package/esm/utils/findPackageJSON.js +22 -0
- package/esm/utils/findPackageJSON.js.map +1 -0
- package/esm/utils/getFileIdx.js +10 -0
- package/esm/utils/getFileIdx.js.map +1 -0
- package/esm/utils/getPluginKey.js +13 -0
- package/esm/utils/getPluginKey.js.map +1 -0
- package/esm/utils/getScope.js +6 -0
- package/esm/utils/getScope.js.map +1 -0
- package/esm/utils/getSource.js +15 -0
- package/esm/utils/getSource.js.map +1 -0
- package/esm/utils/getTagProcessor.js +304 -0
- package/esm/utils/getTagProcessor.js.map +1 -0
- package/esm/utils/getVisitorKeys.js +5 -0
- package/esm/utils/getVisitorKeys.js.map +1 -0
- package/esm/utils/hasLinariaPreval.js +7 -0
- package/esm/utils/hasLinariaPreval.js.map +1 -0
- package/esm/utils/isExports.js +22 -0
- package/esm/utils/isExports.js.map +1 -0
- package/esm/utils/isGlobal.js +6 -0
- package/esm/utils/isGlobal.js.map +1 -0
- package/esm/utils/isNode.js +2 -0
- package/esm/utils/isNode.js.map +1 -0
- package/esm/utils/isNodePath.js +4 -0
- package/esm/utils/isNodePath.js.map +1 -0
- package/esm/utils/isNotNull.js +4 -0
- package/esm/utils/isNotNull.js.map +1 -0
- package/esm/utils/isRemoved.js +46 -0
- package/esm/utils/isRemoved.js.map +1 -0
- package/esm/utils/isRequire.js +13 -0
- package/esm/utils/isRequire.js.map +1 -0
- package/esm/utils/isSerializable.js +13 -0
- package/esm/utils/isSerializable.js.map +1 -0
- package/esm/utils/isTypedNode.js +6 -0
- package/esm/utils/isTypedNode.js.map +1 -0
- package/esm/utils/isUnnecessaryReactCall.js +72 -0
- package/esm/utils/isUnnecessaryReactCall.js.map +1 -0
- package/esm/utils/peek.js +2 -0
- package/esm/utils/peek.js.map +1 -0
- package/esm/utils/processTemplateExpression.js +11 -0
- package/esm/utils/processTemplateExpression.js.map +1 -0
- package/esm/utils/removeDangerousCode.js +127 -0
- package/esm/utils/removeDangerousCode.js.map +1 -0
- package/esm/utils/scopeHelpers.js +514 -0
- package/esm/utils/scopeHelpers.js.map +1 -0
- package/esm/utils/traversalCache.js +28 -0
- package/esm/utils/traversalCache.js.map +1 -0
- package/esm/utils/unwrapSequence.js +14 -0
- package/esm/utils/unwrapSequence.js.map +1 -0
- package/esm/utils/valueToLiteral.js +59 -0
- package/esm/utils/valueToLiteral.js.map +1 -0
- package/esm/utils/visitors/JSXElementsRemover.js +51 -0
- package/esm/utils/visitors/JSXElementsRemover.js.map +1 -0
- package/esm/vm/createVmContext.js +72 -0
- package/esm/vm/createVmContext.js.map +1 -0
- package/esm/vm/process.js +29 -0
- package/esm/vm/process.js.map +1 -0
- package/lib/babel.js +2 -0
- package/lib/babel.js.map +1 -0
- package/lib/cache.js +87 -0
- package/lib/cache.js.map +1 -0
- package/lib/debug/fileReporter.js +153 -0
- package/lib/debug/fileReporter.js.map +1 -0
- package/lib/evaluators/index.js +20 -0
- package/lib/evaluators/index.js.map +1 -0
- package/lib/index.js +225 -0
- package/lib/index.js.map +1 -0
- package/lib/module.js +327 -0
- package/lib/module.js.map +1 -0
- package/lib/options/babel-merge.d.js +2 -0
- package/lib/options/babel-merge.d.js.map +1 -0
- package/lib/options/buildOptions.js +35 -0
- package/lib/options/buildOptions.js.map +1 -0
- package/lib/options/loadBabelOptions.js +31 -0
- package/lib/options/loadBabelOptions.js.map +1 -0
- package/lib/plugins/babel-transform.js +60 -0
- package/lib/plugins/babel-transform.js.map +1 -0
- package/lib/plugins/collector.js +76 -0
- package/lib/plugins/collector.js.map +1 -0
- package/lib/plugins/dynamic-import.js +34 -0
- package/lib/plugins/dynamic-import.js.map +1 -0
- package/lib/plugins/preeval.js +82 -0
- package/lib/plugins/preeval.js.map +1 -0
- package/lib/plugins/shaker.js +303 -0
- package/lib/plugins/shaker.js.map +1 -0
- package/lib/shaker.js +58 -0
- package/lib/shaker.js.map +1 -0
- package/lib/transform/BaseEntrypoint.js +175 -0
- package/lib/transform/BaseEntrypoint.js.map +1 -0
- package/lib/transform/Entrypoint.helpers.js +182 -0
- package/lib/transform/Entrypoint.helpers.js.map +1 -0
- package/lib/transform/Entrypoint.js +226 -0
- package/lib/transform/Entrypoint.js.map +1 -0
- package/lib/transform/Entrypoint.types.js +2 -0
- package/lib/transform/Entrypoint.types.js.map +1 -0
- package/lib/transform/EvaluatedEntrypoint.js +13 -0
- package/lib/transform/EvaluatedEntrypoint.js.map +1 -0
- package/lib/transform/actions/AbortError.js +16 -0
- package/lib/transform/actions/AbortError.js.map +1 -0
- package/lib/transform/actions/BaseAction.js +144 -0
- package/lib/transform/actions/BaseAction.js.map +1 -0
- package/lib/transform/actions/UnprocessedEntrypointError.js +16 -0
- package/lib/transform/actions/UnprocessedEntrypointError.js.map +1 -0
- package/lib/transform/actions/actionRunner.js +82 -0
- package/lib/transform/actions/actionRunner.js.map +1 -0
- package/lib/transform/actions/types.js +2 -0
- package/lib/transform/actions/types.js.map +1 -0
- package/lib/transform/generators/baseProcessingHandlers.js +27 -0
- package/lib/transform/generators/baseProcessingHandlers.js.map +1 -0
- package/lib/transform/generators/collect.js +66 -0
- package/lib/transform/generators/collect.js.map +1 -0
- package/lib/transform/generators/evalFile.js +57 -0
- package/lib/transform/generators/evalFile.js.map +1 -0
- package/lib/transform/generators/explodeReexports.js +70 -0
- package/lib/transform/generators/explodeReexports.js.map +1 -0
- package/lib/transform/generators/extract.js +128 -0
- package/lib/transform/generators/extract.js.map +1 -0
- package/lib/transform/generators/getExports.js +80 -0
- package/lib/transform/generators/getExports.js.map +1 -0
- package/lib/transform/generators/index.js +19 -0
- package/lib/transform/generators/index.js.map +1 -0
- package/lib/transform/generators/processEntrypoint.js +49 -0
- package/lib/transform/generators/processEntrypoint.js.map +1 -0
- package/lib/transform/generators/processImports.js +29 -0
- package/lib/transform/generators/processImports.js.map +1 -0
- package/lib/transform/generators/resolveImports.js +158 -0
- package/lib/transform/generators/resolveImports.js.map +1 -0
- package/lib/transform/generators/transform.js +130 -0
- package/lib/transform/generators/transform.js.map +1 -0
- package/lib/transform/generators/workflow.js +90 -0
- package/lib/transform/generators/workflow.js.map +1 -0
- package/lib/transform/helpers/loadLinariaOptions.js +73 -0
- package/lib/transform/helpers/loadLinariaOptions.js.map +1 -0
- package/lib/transform/helpers/withDefaultServices.js +30 -0
- package/lib/transform/helpers/withDefaultServices.js.map +1 -0
- package/lib/transform/rootLog.js +9 -0
- package/lib/transform/rootLog.js.map +1 -0
- package/lib/transform/types.js +8 -0
- package/lib/transform/types.js.map +1 -0
- package/lib/transform.js +128 -0
- package/lib/transform.js.map +1 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/EventEmitter.js +61 -0
- package/lib/utils/EventEmitter.js.map +1 -0
- package/lib/utils/ShakerMetadata.js +9 -0
- package/lib/utils/ShakerMetadata.js.map +1 -0
- package/lib/utils/TransformMetadata.js +19 -0
- package/lib/utils/TransformMetadata.js.map +1 -0
- package/lib/utils/addIdentifierToLinariaPreval.js +75 -0
- package/lib/utils/addIdentifierToLinariaPreval.js.map +1 -0
- package/lib/utils/collectExportsAndImports.js +990 -0
- package/lib/utils/collectExportsAndImports.js.map +1 -0
- package/lib/utils/collectTemplateDependencies.js +233 -0
- package/lib/utils/collectTemplateDependencies.js.map +1 -0
- package/lib/utils/createId.js +13 -0
- package/lib/utils/createId.js.map +1 -0
- package/lib/utils/dispose-polyfill.js +9 -0
- package/lib/utils/dispose-polyfill.js.map +1 -0
- package/lib/utils/findIdentifiers.js +73 -0
- package/lib/utils/findIdentifiers.js.map +1 -0
- package/lib/utils/findPackageJSON.js +29 -0
- package/lib/utils/findPackageJSON.js.map +1 -0
- package/lib/utils/getFileIdx.js +16 -0
- package/lib/utils/getFileIdx.js.map +1 -0
- package/lib/utils/getPluginKey.js +21 -0
- package/lib/utils/getPluginKey.js.map +1 -0
- package/lib/utils/getScope.js +12 -0
- package/lib/utils/getScope.js.map +1 -0
- package/lib/utils/getSource.js +24 -0
- package/lib/utils/getSource.js.map +1 -0
- package/lib/utils/getTagProcessor.js +318 -0
- package/lib/utils/getTagProcessor.js.map +1 -0
- package/lib/utils/getVisitorKeys.js +11 -0
- package/lib/utils/getVisitorKeys.js.map +1 -0
- package/lib/utils/hasLinariaPreval.js +13 -0
- package/lib/utils/hasLinariaPreval.js.map +1 -0
- package/lib/utils/isExports.js +27 -0
- package/lib/utils/isExports.js.map +1 -0
- package/lib/utils/isGlobal.js +13 -0
- package/lib/utils/isGlobal.js.map +1 -0
- package/lib/utils/isNode.js +9 -0
- package/lib/utils/isNode.js.map +1 -0
- package/lib/utils/isNodePath.js +10 -0
- package/lib/utils/isNodePath.js.map +1 -0
- package/lib/utils/isNotNull.js +10 -0
- package/lib/utils/isNotNull.js.map +1 -0
- package/lib/utils/isRemoved.js +52 -0
- package/lib/utils/isRemoved.js.map +1 -0
- package/lib/utils/isRequire.js +18 -0
- package/lib/utils/isRequire.js.map +1 -0
- package/lib/utils/isSerializable.js +19 -0
- package/lib/utils/isSerializable.js.map +1 -0
- package/lib/utils/isTypedNode.js +13 -0
- package/lib/utils/isTypedNode.js.map +1 -0
- package/lib/utils/isUnnecessaryReactCall.js +81 -0
- package/lib/utils/isUnnecessaryReactCall.js.map +1 -0
- package/lib/utils/peek.js +9 -0
- package/lib/utils/peek.js.map +1 -0
- package/lib/utils/processTemplateExpression.js +18 -0
- package/lib/utils/processTemplateExpression.js.map +1 -0
- package/lib/utils/removeDangerousCode.js +134 -0
- package/lib/utils/removeDangerousCode.js.map +1 -0
- package/lib/utils/scopeHelpers.js +544 -0
- package/lib/utils/scopeHelpers.js.map +1 -0
- package/lib/utils/traversalCache.js +38 -0
- package/lib/utils/traversalCache.js.map +1 -0
- package/lib/utils/unwrapSequence.js +20 -0
- package/lib/utils/unwrapSequence.js.map +1 -0
- package/lib/utils/valueToLiteral.js +65 -0
- package/lib/utils/valueToLiteral.js.map +1 -0
- package/lib/utils/visitors/JSXElementsRemover.js +57 -0
- package/lib/utils/visitors/JSXElementsRemover.js.map +1 -0
- package/lib/vm/createVmContext.js +80 -0
- package/lib/vm/createVmContext.js.map +1 -0
- package/lib/vm/process.js +38 -0
- package/lib/vm/process.js.map +1 -0
- package/package.json +63 -0
- package/types/babel.d.ts +2 -0
- package/types/babel.js +2 -0
- package/types/cache.d.ts +24 -0
- package/types/cache.js +85 -0
- package/types/debug/fileReporter.d.ts +27 -0
- package/types/debug/fileReporter.js +151 -0
- package/types/evaluators/index.d.ts +10 -0
- package/types/evaluators/index.js +15 -0
- package/types/index.d.ts +30 -0
- package/types/index.js +69 -0
- package/types/module.d.ts +62 -0
- package/types/module.js +318 -0
- package/types/options/buildOptions.d.ts +7 -0
- package/types/options/buildOptions.js +35 -0
- package/types/options/loadBabelOptions.d.ts +3 -0
- package/types/options/loadBabelOptions.js +27 -0
- package/types/plugins/babel-transform.d.ts +4 -0
- package/types/plugins/babel-transform.js +49 -0
- package/types/plugins/collector.d.ts +16 -0
- package/types/plugins/collector.js +67 -0
- package/types/plugins/dynamic-import.d.ts +6 -0
- package/types/plugins/dynamic-import.js +32 -0
- package/types/plugins/preeval.d.ts +16 -0
- package/types/plugins/preeval.js +69 -0
- package/types/plugins/shaker.d.ts +11 -0
- package/types/plugins/shaker.js +299 -0
- package/types/shaker.d.ts +3 -0
- package/types/shaker.js +64 -0
- package/types/transform/BaseEntrypoint.d.ts +23 -0
- package/types/transform/BaseEntrypoint.js +182 -0
- package/types/transform/Entrypoint.d.ts +50 -0
- package/types/transform/Entrypoint.helpers.d.ts +14 -0
- package/types/transform/Entrypoint.helpers.js +169 -0
- package/types/transform/Entrypoint.js +223 -0
- package/types/transform/Entrypoint.types.d.ts +23 -0
- package/types/transform/Entrypoint.types.js +2 -0
- package/types/transform/EvaluatedEntrypoint.d.ts +16 -0
- package/types/transform/EvaluatedEntrypoint.js +9 -0
- package/types/transform/actions/AbortError.d.ts +4 -0
- package/types/transform/actions/AbortError.js +12 -0
- package/types/transform/actions/BaseAction.d.ts +40 -0
- package/types/transform/actions/BaseAction.js +149 -0
- package/types/transform/actions/UnprocessedEntrypointError.d.ts +6 -0
- package/types/transform/actions/UnprocessedEntrypointError.js +13 -0
- package/types/transform/actions/actionRunner.d.ts +4 -0
- package/types/transform/actions/actionRunner.js +86 -0
- package/types/transform/actions/types.d.ts +15 -0
- package/types/transform/actions/types.js +2 -0
- package/types/transform/generators/baseProcessingHandlers.d.ts +17 -0
- package/types/transform/generators/baseProcessingHandlers.js +23 -0
- package/types/transform/generators/collect.d.ts +6 -0
- package/types/transform/generators/collect.js +57 -0
- package/types/transform/generators/evalFile.d.ts +6 -0
- package/types/transform/generators/evalFile.js +56 -0
- package/types/transform/generators/explodeReexports.d.ts +7 -0
- package/types/transform/generators/explodeReexports.js +67 -0
- package/types/transform/generators/extract.d.ts +8 -0
- package/types/transform/generators/extract.js +116 -0
- package/types/transform/generators/getExports.d.ts +8 -0
- package/types/transform/generators/getExports.js +65 -0
- package/types/transform/generators/index.d.ts +15 -0
- package/types/transform/generators/index.js +15 -0
- package/types/transform/generators/processEntrypoint.d.ts +9 -0
- package/types/transform/generators/processEntrypoint.js +88 -0
- package/types/transform/generators/processImports.d.ts +5 -0
- package/types/transform/generators/processImports.js +21 -0
- package/types/transform/generators/resolveImports.d.ts +9 -0
- package/types/transform/generators/resolveImports.js +124 -0
- package/types/transform/generators/transform.d.ts +17 -0
- package/types/transform/generators/transform.js +115 -0
- package/types/transform/generators/workflow.d.ts +7 -0
- package/types/transform/generators/workflow.js +77 -0
- package/types/transform/helpers/loadLinariaOptions.d.ts +6 -0
- package/types/transform/helpers/loadLinariaOptions.js +86 -0
- package/types/transform/helpers/withDefaultServices.d.ts +5 -0
- package/types/transform/helpers/withDefaultServices.js +40 -0
- package/types/transform/rootLog.d.ts +3 -0
- package/types/transform/rootLog.js +5 -0
- package/types/transform/types.d.ts +137 -0
- package/types/transform/types.js +4 -0
- package/types/transform.d.ts +20 -0
- package/types/transform.js +121 -0
- package/types/types.d.ts +72 -0
- package/types/types.js +5 -0
- package/types/utils/EventEmitter.d.ts +58 -0
- package/types/utils/EventEmitter.js +61 -0
- package/types/utils/ShakerMetadata.d.ts +7 -0
- package/types/utils/ShakerMetadata.js +5 -0
- package/types/utils/TransformMetadata.d.ts +13 -0
- package/types/utils/TransformMetadata.js +17 -0
- package/types/utils/addIdentifierToLinariaPreval.d.ts +4 -0
- package/types/utils/addIdentifierToLinariaPreval.js +75 -0
- package/types/utils/collectExportsAndImports.d.ts +31 -0
- package/types/utils/collectExportsAndImports.js +962 -0
- package/types/utils/collectTemplateDependencies.d.ts +17 -0
- package/types/utils/collectTemplateDependencies.js +212 -0
- package/types/utils/createId.d.ts +2 -0
- package/types/utils/createId.js +9 -0
- package/types/utils/dispose-polyfill.d.ts +0 -0
- package/types/utils/dispose-polyfill.js +5 -0
- package/types/utils/findIdentifiers.d.ts +6 -0
- package/types/utils/findIdentifiers.js +68 -0
- package/types/utils/findPackageJSON.d.ts +1 -0
- package/types/utils/findPackageJSON.js +29 -0
- package/types/utils/getFileIdx.d.ts +1 -0
- package/types/utils/getFileIdx.js +13 -0
- package/types/utils/getPluginKey.d.ts +2 -0
- package/types/utils/getPluginKey.js +16 -0
- package/types/utils/getScope.d.ts +2 -0
- package/types/utils/getScope.js +11 -0
- package/types/utils/getSource.d.ts +2 -0
- package/types/utils/getSource.js +22 -0
- package/types/utils/getTagProcessor.d.ts +6 -0
- package/types/utils/getTagProcessor.js +315 -0
- package/types/utils/getVisitorKeys.d.ts +5 -0
- package/types/utils/getVisitorKeys.js +8 -0
- package/types/utils/hasLinariaPreval.d.ts +4 -0
- package/types/utils/hasLinariaPreval.js +9 -0
- package/types/utils/isExports.d.ts +6 -0
- package/types/utils/isExports.js +20 -0
- package/types/utils/isGlobal.d.ts +2 -0
- package/types/utils/isGlobal.js +9 -0
- package/types/utils/isNode.d.ts +2 -0
- package/types/utils/isNode.js +7 -0
- package/types/utils/isNodePath.d.ts +3 -0
- package/types/utils/isNodePath.js +7 -0
- package/types/utils/isNotNull.d.ts +1 -0
- package/types/utils/isNotNull.js +7 -0
- package/types/utils/isRemoved.d.ts +5 -0
- package/types/utils/isRemoved.js +42 -0
- package/types/utils/isRequire.d.ts +6 -0
- package/types/utils/isRequire.js +15 -0
- package/types/utils/isSerializable.d.ts +2 -0
- package/types/utils/isSerializable.js +18 -0
- package/types/utils/isTypedNode.d.ts +5 -0
- package/types/utils/isTypedNode.js +9 -0
- package/types/utils/isUnnecessaryReactCall.d.ts +3 -0
- package/types/utils/isUnnecessaryReactCall.js +76 -0
- package/types/utils/peek.d.ts +1 -0
- package/types/utils/peek.js +5 -0
- package/types/utils/processTemplateExpression.d.ts +5 -0
- package/types/utils/processTemplateExpression.js +17 -0
- package/types/utils/removeDangerousCode.d.ts +3 -0
- package/types/utils/removeDangerousCode.js +144 -0
- package/types/utils/scopeHelpers.d.ts +12 -0
- package/types/utils/scopeHelpers.js +568 -0
- package/types/utils/traversalCache.d.ts +5 -0
- package/types/utils/traversalCache.js +36 -0
- package/types/utils/unwrapSequence.d.ts +8 -0
- package/types/utils/unwrapSequence.js +17 -0
- package/types/utils/valueToLiteral.d.ts +3 -0
- package/types/utils/valueToLiteral.js +64 -0
- package/types/utils/visitors/JSXElementsRemover.d.ts +3 -0
- package/types/utils/visitors/JSXElementsRemover.js +52 -0
- package/types/vm/createVmContext.d.ts +7 -0
- package/types/vm/createVmContext.js +92 -0
- package/types/vm/process.d.ts +25 -0
- package/types/vm/process.js +32 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.asyncResolveImports = asyncResolveImports;
|
|
7
|
+
exports.syncResolveImports = syncResolveImports;
|
|
8
|
+
var _getFileIdx = require("../../utils/getFileIdx");
|
|
9
|
+
var _Entrypoint = require("../Entrypoint.helpers");
|
|
10
|
+
/* eslint-disable no-continue,no-await-in-loop,require-yield */
|
|
11
|
+
|
|
12
|
+
function emitDependency(emitter, entrypoint, imports) {
|
|
13
|
+
emitter.single({
|
|
14
|
+
type: 'dependency',
|
|
15
|
+
file: entrypoint.name,
|
|
16
|
+
only: entrypoint.only,
|
|
17
|
+
imports: imports.map(({
|
|
18
|
+
resolved,
|
|
19
|
+
only
|
|
20
|
+
}) => ({
|
|
21
|
+
from: resolved,
|
|
22
|
+
what: only
|
|
23
|
+
})),
|
|
24
|
+
fileIdx: (0, _getFileIdx.getFileIdx)(entrypoint.name)
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function filterUnresolved(entrypoint, resolvedImports) {
|
|
28
|
+
return resolvedImports.filter(i => {
|
|
29
|
+
if (i.resolved === null) {
|
|
30
|
+
entrypoint.log(`[resolve] ✅ %s in %s is ignored`, i.source, entrypoint.name);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Synchronously resolves specified imports with a provided resolver.
|
|
39
|
+
*/
|
|
40
|
+
function* syncResolveImports(resolve) {
|
|
41
|
+
var _imports$entries;
|
|
42
|
+
const {
|
|
43
|
+
data: {
|
|
44
|
+
imports
|
|
45
|
+
},
|
|
46
|
+
entrypoint,
|
|
47
|
+
services: {
|
|
48
|
+
eventEmitter
|
|
49
|
+
}
|
|
50
|
+
} = this;
|
|
51
|
+
const listOfImports = Array.from((_imports$entries = imports === null || imports === void 0 ? void 0 : imports.entries()) !== null && _imports$entries !== void 0 ? _imports$entries : []);
|
|
52
|
+
const {
|
|
53
|
+
log
|
|
54
|
+
} = entrypoint;
|
|
55
|
+
if (listOfImports.length === 0) {
|
|
56
|
+
emitDependency(eventEmitter, entrypoint, []);
|
|
57
|
+
log('%s has no imports', entrypoint.name);
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
const resolvedImports = listOfImports.map(([source, only]) => {
|
|
61
|
+
let resolved = null;
|
|
62
|
+
try {
|
|
63
|
+
resolved = resolve(source, entrypoint.name, (0, _Entrypoint.getStack)(entrypoint));
|
|
64
|
+
log('[sync-resolve] ✅ %s -> %s (only: %o)', source, resolved, only);
|
|
65
|
+
} catch (err) {
|
|
66
|
+
log('[sync-resolve] ❌ cannot resolve %s: %O', source, err);
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
source,
|
|
70
|
+
only,
|
|
71
|
+
resolved
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
const filteredImports = filterUnresolved(entrypoint, resolvedImports);
|
|
75
|
+
emitDependency(eventEmitter, entrypoint, filteredImports);
|
|
76
|
+
return filteredImports;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Asynchronously resolves specified imports with a provided resolver.
|
|
81
|
+
*/
|
|
82
|
+
async function* asyncResolveImports(resolve) {
|
|
83
|
+
var _imports$entries2;
|
|
84
|
+
const {
|
|
85
|
+
data: {
|
|
86
|
+
imports
|
|
87
|
+
},
|
|
88
|
+
entrypoint,
|
|
89
|
+
services: {
|
|
90
|
+
eventEmitter
|
|
91
|
+
}
|
|
92
|
+
} = this;
|
|
93
|
+
const listOfImports = Array.from((_imports$entries2 = imports === null || imports === void 0 ? void 0 : imports.entries()) !== null && _imports$entries2 !== void 0 ? _imports$entries2 : []);
|
|
94
|
+
const {
|
|
95
|
+
log
|
|
96
|
+
} = entrypoint;
|
|
97
|
+
if (listOfImports.length === 0) {
|
|
98
|
+
emitDependency(eventEmitter, entrypoint, []);
|
|
99
|
+
log('%s has no imports', entrypoint.name);
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
log('resolving %d imports', listOfImports.length);
|
|
103
|
+
const getResolveTask = async (source, only) => {
|
|
104
|
+
let resolved = null;
|
|
105
|
+
try {
|
|
106
|
+
resolved = await resolve(source, entrypoint.name, (0, _Entrypoint.getStack)(entrypoint));
|
|
107
|
+
} catch (err) {
|
|
108
|
+
log('[async-resolve] ❌ cannot resolve %s in %s: %O', source, entrypoint.name, err);
|
|
109
|
+
}
|
|
110
|
+
if (resolved !== null) {
|
|
111
|
+
log('[async-resolve] ✅ %s (%o) in %s -> %s', source, only, entrypoint.name, resolved);
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
source,
|
|
115
|
+
only,
|
|
116
|
+
resolved
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
const resolvedImports = await Promise.all(listOfImports.map(([source, importsOnly]) => {
|
|
120
|
+
const cached = entrypoint.getDependency(source);
|
|
121
|
+
if (cached) {
|
|
122
|
+
return {
|
|
123
|
+
source,
|
|
124
|
+
only: (0, _Entrypoint.mergeOnly)(cached.only, importsOnly),
|
|
125
|
+
resolved: cached.resolved
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
const task = entrypoint.getResolveTask(source);
|
|
129
|
+
if (task) {
|
|
130
|
+
// If we have cached task, we need to merge only…
|
|
131
|
+
const newTask = task.then(res => {
|
|
132
|
+
if ((0, _Entrypoint.isSuperSet)(res.only, importsOnly)) {
|
|
133
|
+
return res;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Is this branch even possible?
|
|
137
|
+
const merged = (0, _Entrypoint.mergeOnly)(res.only, importsOnly);
|
|
138
|
+
log('merging imports %o and %o: %o', importsOnly, res.only, merged);
|
|
139
|
+
return {
|
|
140
|
+
...res,
|
|
141
|
+
only: merged
|
|
142
|
+
};
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// … and update the cache
|
|
146
|
+
entrypoint.addResolveTask(source, newTask);
|
|
147
|
+
return newTask;
|
|
148
|
+
}
|
|
149
|
+
const resolveTask = getResolveTask(source, importsOnly);
|
|
150
|
+
entrypoint.addResolveTask(source, resolveTask);
|
|
151
|
+
return resolveTask;
|
|
152
|
+
}));
|
|
153
|
+
log('resolved %d imports', resolvedImports.length);
|
|
154
|
+
const filteredImports = filterUnresolved(entrypoint, resolvedImports);
|
|
155
|
+
emitDependency(eventEmitter, entrypoint, filteredImports);
|
|
156
|
+
return filteredImports;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=resolveImports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveImports.js","names":["_getFileIdx","require","_Entrypoint","emitDependency","emitter","entrypoint","imports","single","type","file","name","only","map","resolved","from","what","fileIdx","getFileIdx","filterUnresolved","resolvedImports","filter","i","log","source","syncResolveImports","resolve","_imports$entries","data","services","eventEmitter","listOfImports","Array","entries","length","getStack","err","filteredImports","asyncResolveImports","_imports$entries2","getResolveTask","Promise","all","importsOnly","cached","getDependency","mergeOnly","task","newTask","then","res","isSuperSet","merged","addResolveTask","resolveTask"],"sources":["../../../src/transform/generators/resolveImports.ts"],"sourcesContent":["/* eslint-disable no-continue,no-await-in-loop,require-yield */\nimport { getFileIdx } from '../../utils/getFileIdx';\nimport type { Entrypoint } from '../Entrypoint';\nimport { getStack, isSuperSet, mergeOnly } from '../Entrypoint.helpers';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport type {\n AsyncScenarioForAction,\n IResolveImportsAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nfunction emitDependency(\n emitter: Services['eventEmitter'],\n entrypoint: IResolveImportsAction['entrypoint'],\n imports: IEntrypointDependency[]\n) {\n emitter.single({\n type: 'dependency',\n file: entrypoint.name,\n only: entrypoint.only,\n imports: imports.map(({ resolved, only }) => ({\n from: resolved,\n what: only,\n })),\n fileIdx: getFileIdx(entrypoint.name),\n });\n}\n\nfunction filterUnresolved(\n entrypoint: Entrypoint,\n resolvedImports: IEntrypointDependency[]\n): IEntrypointDependency[] {\n return resolvedImports.filter((i): i is IEntrypointDependency => {\n if (i.resolved === null) {\n entrypoint.log(\n `[resolve] ✅ %s in %s is ignored`,\n i.source,\n entrypoint.name\n );\n return false;\n }\n\n return true;\n });\n}\n\n/**\n * Synchronously resolves specified imports with a provided resolver.\n */\nexport function* syncResolveImports(\n this: IResolveImportsAction,\n resolve: (what: string, importer: string, stack: string[]) => string\n): SyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, []);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n const resolvedImports = listOfImports.map(([source, only]) => {\n let resolved: string | null = null;\n try {\n resolved = resolve(source, entrypoint.name, getStack(entrypoint));\n log('[sync-resolve] ✅ %s -> %s (only: %o)', source, resolved, only);\n } catch (err) {\n log('[sync-resolve] ❌ cannot resolve %s: %O', source, err);\n }\n\n return {\n source,\n only,\n resolved,\n };\n });\n\n const filteredImports = filterUnresolved(entrypoint, resolvedImports);\n emitDependency(eventEmitter, entrypoint, filteredImports);\n\n return filteredImports;\n}\n\n/**\n * Asynchronously resolves specified imports with a provided resolver.\n */\nexport async function* asyncResolveImports(\n this: IResolveImportsAction,\n resolve: (\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>\n): AsyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, []);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n log('resolving %d imports', listOfImports.length);\n\n const getResolveTask = async (\n source: string,\n only: string[]\n ): Promise<IEntrypointDependency> => {\n let resolved: string | null = null;\n try {\n resolved = await resolve(source, entrypoint.name, getStack(entrypoint));\n } catch (err) {\n log(\n '[async-resolve] ❌ cannot resolve %s in %s: %O',\n source,\n entrypoint.name,\n err\n );\n }\n\n if (resolved !== null) {\n log(\n '[async-resolve] ✅ %s (%o) in %s -> %s',\n source,\n only,\n entrypoint.name,\n resolved\n );\n }\n\n return {\n source,\n only,\n resolved,\n };\n };\n\n const resolvedImports = await Promise.all<IEntrypointDependency>(\n listOfImports.map(([source, importsOnly]) => {\n const cached = entrypoint.getDependency(source);\n if (cached) {\n return {\n source,\n only: mergeOnly(cached.only, importsOnly),\n resolved: cached.resolved,\n };\n }\n\n const task = entrypoint.getResolveTask(source);\n if (task) {\n // If we have cached task, we need to merge only…\n const newTask = task.then((res) => {\n if (isSuperSet(res.only, importsOnly)) {\n return res;\n }\n\n // Is this branch even possible?\n const merged = mergeOnly(res.only, importsOnly);\n\n log('merging imports %o and %o: %o', importsOnly, res.only, merged);\n\n return { ...res, only: merged };\n });\n\n // … and update the cache\n entrypoint.addResolveTask(source, newTask);\n return newTask;\n }\n\n const resolveTask = getResolveTask(source, importsOnly);\n\n entrypoint.addResolveTask(source, resolveTask);\n\n return resolveTask;\n })\n );\n\n log('resolved %d imports', resolvedImports.length);\n\n const filteredImports = filterUnresolved(entrypoint, resolvedImports);\n emitDependency(eventEmitter, entrypoint, filteredImports);\n return filteredImports;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.internalTransform = internalTransform;
|
|
7
|
+
exports.prepareCode = void 0;
|
|
8
|
+
exports.transform = transform;
|
|
9
|
+
var _buildOptions = require("../../options/buildOptions");
|
|
10
|
+
var _TransformMetadata = require("../../utils/TransformMetadata");
|
|
11
|
+
var _getPluginKey = require("../../utils/getPluginKey");
|
|
12
|
+
const EMPTY_FILE = '=== empty file ===';
|
|
13
|
+
const hasKeyInList = (plugin, list) => {
|
|
14
|
+
const pluginKey = (0, _getPluginKey.getPluginKey)(plugin);
|
|
15
|
+
return pluginKey ? list.some(i => pluginKey.includes(i)) : false;
|
|
16
|
+
};
|
|
17
|
+
function runPreevalStage(babel, evalConfig, pluginOptions, code, originalAst, eventEmitter) {
|
|
18
|
+
var _evalConfig$plugins$f, _evalConfig$plugins, _evalConfig$plugins2, _result$ast;
|
|
19
|
+
const preShakePlugins = (_evalConfig$plugins$f = (_evalConfig$plugins = evalConfig.plugins) === null || _evalConfig$plugins === void 0 ? void 0 : _evalConfig$plugins.filter(i => hasKeyInList(i, pluginOptions.highPriorityPlugins))) !== null && _evalConfig$plugins$f !== void 0 ? _evalConfig$plugins$f : [];
|
|
20
|
+
const plugins = [...preShakePlugins, [require.resolve('../../plugins/preeval'), {
|
|
21
|
+
...pluginOptions,
|
|
22
|
+
eventEmitter
|
|
23
|
+
}], [require.resolve('../../plugins/dynamic-import')], ...((_evalConfig$plugins2 = evalConfig.plugins) !== null && _evalConfig$plugins2 !== void 0 ? _evalConfig$plugins2 : []).filter(i => !hasKeyInList(i, pluginOptions.highPriorityPlugins))];
|
|
24
|
+
const transformConfig = (0, _buildOptions.buildOptions)({
|
|
25
|
+
...evalConfig,
|
|
26
|
+
envName: 'linaria',
|
|
27
|
+
plugins
|
|
28
|
+
});
|
|
29
|
+
const result = babel.transformFromAstSync(originalAst, code, transformConfig);
|
|
30
|
+
if (!result || !((_result$ast = result.ast) !== null && _result$ast !== void 0 && _result$ast.program)) {
|
|
31
|
+
throw new Error('Babel transform failed');
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
const prepareCode = (services, item, originalAst) => {
|
|
36
|
+
const {
|
|
37
|
+
log,
|
|
38
|
+
only,
|
|
39
|
+
loadedAndParsed
|
|
40
|
+
} = item;
|
|
41
|
+
if (loadedAndParsed.evaluator === 'ignored') {
|
|
42
|
+
var _loadedAndParsed$code;
|
|
43
|
+
log('is ignored');
|
|
44
|
+
return [(_loadedAndParsed$code = loadedAndParsed.code) !== null && _loadedAndParsed$code !== void 0 ? _loadedAndParsed$code : '', null, null];
|
|
45
|
+
}
|
|
46
|
+
const {
|
|
47
|
+
code,
|
|
48
|
+
evalConfig,
|
|
49
|
+
evaluator
|
|
50
|
+
} = loadedAndParsed;
|
|
51
|
+
const {
|
|
52
|
+
options,
|
|
53
|
+
babel,
|
|
54
|
+
eventEmitter
|
|
55
|
+
} = services;
|
|
56
|
+
const {
|
|
57
|
+
pluginOptions
|
|
58
|
+
} = options;
|
|
59
|
+
const preevalStageResult = eventEmitter.perf('transform:preeval', () => runPreevalStage(babel, evalConfig, pluginOptions, code, originalAst, eventEmitter));
|
|
60
|
+
const transformMetadata = (0, _TransformMetadata.getTransformMetadata)(preevalStageResult.metadata);
|
|
61
|
+
if (only.length === 1 && only[0] === '__linariaPreval' && !transformMetadata) {
|
|
62
|
+
log('[evaluator:end] no metadata');
|
|
63
|
+
return [preevalStageResult.code, null, null];
|
|
64
|
+
}
|
|
65
|
+
log('[preeval] metadata %O', transformMetadata);
|
|
66
|
+
log('[evaluator:start] using %s', evaluator.name);
|
|
67
|
+
const evaluatorConfig = {
|
|
68
|
+
onlyExports: only,
|
|
69
|
+
highPriorityPlugins: pluginOptions.highPriorityPlugins,
|
|
70
|
+
features: pluginOptions.features
|
|
71
|
+
};
|
|
72
|
+
const [, transformedCode, imports] = eventEmitter.perf('transform:evaluator', () => evaluator(evalConfig, preevalStageResult.ast, preevalStageResult.code, evaluatorConfig, babel));
|
|
73
|
+
log('[evaluator:end]');
|
|
74
|
+
return [transformedCode, imports, transformMetadata !== null && transformMetadata !== void 0 ? transformMetadata : null];
|
|
75
|
+
};
|
|
76
|
+
exports.prepareCode = prepareCode;
|
|
77
|
+
function* internalTransform(prepareFn) {
|
|
78
|
+
const {
|
|
79
|
+
only,
|
|
80
|
+
loadedAndParsed,
|
|
81
|
+
log
|
|
82
|
+
} = this.entrypoint;
|
|
83
|
+
if (loadedAndParsed.evaluator === 'ignored') {
|
|
84
|
+
var _loadedAndParsed$code2;
|
|
85
|
+
log('is ignored');
|
|
86
|
+
return {
|
|
87
|
+
code: (_loadedAndParsed$code2 = loadedAndParsed.code) !== null && _loadedAndParsed$code2 !== void 0 ? _loadedAndParsed$code2 : '',
|
|
88
|
+
metadata: null
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
log('>> (%o)', only);
|
|
92
|
+
const [preparedCode, imports, metadata] = prepareFn(this.services, this.entrypoint, loadedAndParsed.ast);
|
|
93
|
+
if (loadedAndParsed.code === preparedCode) {
|
|
94
|
+
log('<< (%o)\n === no changes ===', only);
|
|
95
|
+
} else {
|
|
96
|
+
log('<< (%o)', only);
|
|
97
|
+
log.extend('source')('%s', preparedCode || EMPTY_FILE);
|
|
98
|
+
}
|
|
99
|
+
if (preparedCode === '') {
|
|
100
|
+
var _loadedAndParsed$code3;
|
|
101
|
+
log('is skipped');
|
|
102
|
+
return {
|
|
103
|
+
code: (_loadedAndParsed$code3 = loadedAndParsed.code) !== null && _loadedAndParsed$code3 !== void 0 ? _loadedAndParsed$code3 : '',
|
|
104
|
+
metadata: null
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (imports !== null && imports.size > 0) {
|
|
108
|
+
const resolvedImports = yield* this.getNext('resolveImports', this.entrypoint, {
|
|
109
|
+
imports
|
|
110
|
+
});
|
|
111
|
+
if (resolvedImports.length !== 0) {
|
|
112
|
+
yield ['processImports', this.entrypoint, {
|
|
113
|
+
resolved: resolvedImports
|
|
114
|
+
}];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
code: preparedCode,
|
|
119
|
+
metadata
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Prepares the code for evaluation. This includes removing dead and potentially unsafe code.
|
|
125
|
+
* Emits resolveImports and processImports events.
|
|
126
|
+
*/
|
|
127
|
+
function transform() {
|
|
128
|
+
return internalTransform.call(this, prepareCode);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","names":["_buildOptions","require","_TransformMetadata","_getPluginKey","EMPTY_FILE","hasKeyInList","plugin","list","pluginKey","getPluginKey","some","i","includes","runPreevalStage","babel","evalConfig","pluginOptions","code","originalAst","eventEmitter","_evalConfig$plugins$f","_evalConfig$plugins","_evalConfig$plugins2","_result$ast","preShakePlugins","plugins","filter","highPriorityPlugins","resolve","transformConfig","buildOptions","envName","result","transformFromAstSync","ast","program","Error","prepareCode","services","item","log","only","loadedAndParsed","evaluator","_loadedAndParsed$code","options","preevalStageResult","perf","transformMetadata","getTransformMetadata","metadata","length","name","evaluatorConfig","onlyExports","features","transformedCode","imports","exports","internalTransform","prepareFn","entrypoint","_loadedAndParsed$code2","preparedCode","extend","_loadedAndParsed$code3","size","resolvedImports","getNext","resolved","transform","call"],"sources":["../../../src/transform/generators/transform.ts"],"sourcesContent":["import type {\n BabelFileResult,\n PluginItem,\n TransformOptions,\n} from '@babel/core';\nimport type { File } from '@babel/types';\n\nimport type { EvaluatorConfig, StrictOptions } from '@wyw-in-js/shared';\n\nimport type { Core } from '../../babel';\nimport { buildOptions } from '../../options/buildOptions';\nimport type { EventEmitter } from '../../utils/EventEmitter';\nimport type { WYWTransformMetadata } from '../../utils/TransformMetadata';\nimport { getTransformMetadata } from '../../utils/TransformMetadata';\nimport { getPluginKey } from '../../utils/getPluginKey';\nimport type { Entrypoint } from '../Entrypoint';\nimport type {\n ITransformAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nconst EMPTY_FILE = '=== empty file ===';\n\nconst hasKeyInList = (plugin: PluginItem, list: string[]): boolean => {\n const pluginKey = getPluginKey(plugin);\n return pluginKey ? list.some((i) => pluginKey.includes(i)) : false;\n};\n\nfunction runPreevalStage(\n babel: Core,\n evalConfig: TransformOptions,\n pluginOptions: StrictOptions,\n code: string,\n originalAst: File,\n eventEmitter: EventEmitter\n): BabelFileResult {\n const preShakePlugins =\n evalConfig.plugins?.filter((i) =>\n hasKeyInList(i, pluginOptions.highPriorityPlugins)\n ) ?? [];\n\n const plugins = [\n ...preShakePlugins,\n [\n require.resolve('../../plugins/preeval'),\n { ...pluginOptions, eventEmitter },\n ],\n [require.resolve('../../plugins/dynamic-import')],\n ...(evalConfig.plugins ?? []).filter(\n (i) => !hasKeyInList(i, pluginOptions.highPriorityPlugins)\n ),\n ];\n\n const transformConfig = buildOptions({\n ...evalConfig,\n envName: 'linaria',\n plugins,\n });\n\n const result = babel.transformFromAstSync(originalAst, code, transformConfig);\n\n if (!result || !result.ast?.program) {\n throw new Error('Babel transform failed');\n }\n\n return result;\n}\n\ntype PrepareCodeFn = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n) => [\n code: string,\n imports: Map<string, string[]> | null,\n metadata: WYWTransformMetadata | null,\n];\n\nexport const prepareCode = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n): ReturnType<PrepareCodeFn> => {\n const { log, only, loadedAndParsed } = item;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return [loadedAndParsed.code ?? '', null, null];\n }\n\n const { code, evalConfig, evaluator } = loadedAndParsed;\n const { options, babel, eventEmitter } = services;\n const { pluginOptions } = options;\n\n const preevalStageResult = eventEmitter.perf('transform:preeval', () =>\n runPreevalStage(\n babel,\n evalConfig,\n pluginOptions,\n code,\n originalAst,\n eventEmitter\n )\n );\n\n const transformMetadata = getTransformMetadata(preevalStageResult.metadata);\n\n if (\n only.length === 1 &&\n only[0] === '__linariaPreval' &&\n !transformMetadata\n ) {\n log('[evaluator:end] no metadata');\n return [preevalStageResult.code!, null, null];\n }\n\n log('[preeval] metadata %O', transformMetadata);\n log('[evaluator:start] using %s', evaluator.name);\n\n const evaluatorConfig: EvaluatorConfig = {\n onlyExports: only,\n highPriorityPlugins: pluginOptions.highPriorityPlugins,\n features: pluginOptions.features,\n };\n\n const [, transformedCode, imports] = eventEmitter.perf(\n 'transform:evaluator',\n () =>\n evaluator(\n evalConfig,\n preevalStageResult.ast!,\n preevalStageResult.code!,\n evaluatorConfig,\n babel\n )\n );\n\n log('[evaluator:end]');\n\n return [transformedCode, imports, transformMetadata ?? null];\n};\n\nexport function* internalTransform(\n this: ITransformAction,\n prepareFn: PrepareCodeFn\n): SyncScenarioForAction<ITransformAction> {\n const { only, loadedAndParsed, log } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n log('>> (%o)', only);\n\n const [preparedCode, imports, metadata] = prepareFn(\n this.services,\n this.entrypoint,\n loadedAndParsed.ast\n );\n\n if (loadedAndParsed.code === preparedCode) {\n log('<< (%o)\\n === no changes ===', only);\n } else {\n log('<< (%o)', only);\n log.extend('source')('%s', preparedCode || EMPTY_FILE);\n }\n\n if (preparedCode === '') {\n log('is skipped');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n if (imports !== null && imports.size > 0) {\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports,\n }\n );\n\n if (resolvedImports.length !== 0) {\n yield [\n 'processImports',\n this.entrypoint,\n {\n resolved: resolvedImports,\n },\n ];\n }\n }\n\n return {\n code: preparedCode,\n metadata,\n };\n}\n\n/**\n * Prepares the code for evaluation. This includes removing dead and potentially unsafe code.\n * Emits resolveImports and processImports events.\n */\nexport function transform(this: ITransformAction) {\n return internalTransform.call(this, prepareCode);\n}\n"],"mappings":";;;;;;;;AAUA,IAAAA,aAAA,GAAAC,OAAA;AAGA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AAQA,MAAMG,UAAU,GAAG,oBAAoB;AAEvC,MAAMC,YAAY,GAAGA,CAACC,MAAkB,EAAEC,IAAc,KAAc;EACpE,MAAMC,SAAS,GAAG,IAAAC,0BAAY,EAACH,MAAM,CAAC;EACtC,OAAOE,SAAS,GAAGD,IAAI,CAACG,IAAI,CAAEC,CAAC,IAAKH,SAAS,CAACI,QAAQ,CAACD,CAAC,CAAC,CAAC,GAAG,KAAK;AACpE,CAAC;AAED,SAASE,eAAeA,CACtBC,KAAW,EACXC,UAA4B,EAC5BC,aAA4B,EAC5BC,IAAY,EACZC,WAAiB,EACjBC,YAA0B,EACT;EAAA,IAAAC,qBAAA,EAAAC,mBAAA,EAAAC,oBAAA,EAAAC,WAAA;EACjB,MAAMC,eAAe,IAAAJ,qBAAA,IAAAC,mBAAA,GACnBN,UAAU,CAACU,OAAO,cAAAJ,mBAAA,uBAAlBA,mBAAA,CAAoBK,MAAM,CAAEf,CAAC,IAC3BN,YAAY,CAACM,CAAC,EAAEK,aAAa,CAACW,mBAAmB,CACnD,CAAC,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAET,MAAMK,OAAO,GAAG,CACd,GAAGD,eAAe,EAClB,CACEvB,OAAO,CAAC2B,OAAO,CAAC,uBAAuB,CAAC,EACxC;IAAE,GAAGZ,aAAa;IAAEG;EAAa,CAAC,CACnC,EACD,CAAClB,OAAO,CAAC2B,OAAO,CAAC,8BAA8B,CAAC,CAAC,EACjD,GAAG,EAAAN,oBAAA,GAACP,UAAU,CAACU,OAAO,cAAAH,oBAAA,cAAAA,oBAAA,GAAI,EAAE,EAAEI,MAAM,CACjCf,CAAC,IAAK,CAACN,YAAY,CAACM,CAAC,EAAEK,aAAa,CAACW,mBAAmB,CAC3D,CAAC,CACF;EAED,MAAME,eAAe,GAAG,IAAAC,0BAAY,EAAC;IACnC,GAAGf,UAAU;IACbgB,OAAO,EAAE,SAAS;IAClBN;EACF,CAAC,CAAC;EAEF,MAAMO,MAAM,GAAGlB,KAAK,CAACmB,oBAAoB,CAACf,WAAW,EAAED,IAAI,EAAEY,eAAe,CAAC;EAE7E,IAAI,CAACG,MAAM,IAAI,GAAAT,WAAA,GAACS,MAAM,CAACE,GAAG,cAAAX,WAAA,eAAVA,WAAA,CAAYY,OAAO,GAAE;IACnC,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;EAC3C;EAEA,OAAOJ,MAAM;AACf;AAYO,MAAMK,WAAW,GAAGA,CACzBC,QAAkB,EAClBC,IAAgB,EAChBrB,WAAiB,KACa;EAC9B,MAAM;IAAEsB,GAAG;IAAEC,IAAI;IAAEC;EAAgB,CAAC,GAAGH,IAAI;EAC3C,IAAIG,eAAe,CAACC,SAAS,KAAK,SAAS,EAAE;IAAA,IAAAC,qBAAA;IAC3CJ,GAAG,CAAC,YAAY,CAAC;IACjB,OAAO,EAAAI,qBAAA,GAACF,eAAe,CAACzB,IAAI,cAAA2B,qBAAA,cAAAA,qBAAA,GAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;EACjD;EAEA,MAAM;IAAE3B,IAAI;IAAEF,UAAU;IAAE4B;EAAU,CAAC,GAAGD,eAAe;EACvD,MAAM;IAAEG,OAAO;IAAE/B,KAAK;IAAEK;EAAa,CAAC,GAAGmB,QAAQ;EACjD,MAAM;IAAEtB;EAAc,CAAC,GAAG6B,OAAO;EAEjC,MAAMC,kBAAkB,GAAG3B,YAAY,CAAC4B,IAAI,CAAC,mBAAmB,EAAE,MAChElC,eAAe,CACbC,KAAK,EACLC,UAAU,EACVC,aAAa,EACbC,IAAI,EACJC,WAAW,EACXC,YACF,CACF,CAAC;EAED,MAAM6B,iBAAiB,GAAG,IAAAC,uCAAoB,EAACH,kBAAkB,CAACI,QAAQ,CAAC;EAE3E,IACET,IAAI,CAACU,MAAM,KAAK,CAAC,IACjBV,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,IAC7B,CAACO,iBAAiB,EAClB;IACAR,GAAG,CAAC,6BAA6B,CAAC;IAClC,OAAO,CAACM,kBAAkB,CAAC7B,IAAI,EAAG,IAAI,EAAE,IAAI,CAAC;EAC/C;EAEAuB,GAAG,CAAC,uBAAuB,EAAEQ,iBAAiB,CAAC;EAC/CR,GAAG,CAAC,4BAA4B,EAAEG,SAAS,CAACS,IAAI,CAAC;EAEjD,MAAMC,eAAgC,GAAG;IACvCC,WAAW,EAAEb,IAAI;IACjBd,mBAAmB,EAAEX,aAAa,CAACW,mBAAmB;IACtD4B,QAAQ,EAAEvC,aAAa,CAACuC;EAC1B,CAAC;EAED,MAAM,GAAGC,eAAe,EAAEC,OAAO,CAAC,GAAGtC,YAAY,CAAC4B,IAAI,CACpD,qBAAqB,EACrB,MACEJ,SAAS,CACP5B,UAAU,EACV+B,kBAAkB,CAACZ,GAAG,EACtBY,kBAAkB,CAAC7B,IAAI,EACvBoC,eAAe,EACfvC,KACF,CACJ,CAAC;EAED0B,GAAG,CAAC,iBAAiB,CAAC;EAEtB,OAAO,CAACgB,eAAe,EAAEC,OAAO,EAAET,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI,IAAI,CAAC;AAC9D,CAAC;AAACU,OAAA,CAAArB,WAAA,GAAAA,WAAA;AAEK,UAAUsB,iBAAiBA,CAEhCC,SAAwB,EACiB;EACzC,MAAM;IAAEnB,IAAI;IAAEC,eAAe;IAAEF;EAAI,CAAC,GAAG,IAAI,CAACqB,UAAU;EACtD,IAAInB,eAAe,CAACC,SAAS,KAAK,SAAS,EAAE;IAAA,IAAAmB,sBAAA;IAC3CtB,GAAG,CAAC,YAAY,CAAC;IACjB,OAAO;MACLvB,IAAI,GAAA6C,sBAAA,GAAEpB,eAAe,CAACzB,IAAI,cAAA6C,sBAAA,cAAAA,sBAAA,GAAI,EAAE;MAChCZ,QAAQ,EAAE;IACZ,CAAC;EACH;EAEAV,GAAG,CAAC,SAAS,EAAEC,IAAI,CAAC;EAEpB,MAAM,CAACsB,YAAY,EAAEN,OAAO,EAAEP,QAAQ,CAAC,GAAGU,SAAS,CACjD,IAAI,CAACtB,QAAQ,EACb,IAAI,CAACuB,UAAU,EACfnB,eAAe,CAACR,GAClB,CAAC;EAED,IAAIQ,eAAe,CAACzB,IAAI,KAAK8C,YAAY,EAAE;IACzCvB,GAAG,CAAC,8BAA8B,EAAEC,IAAI,CAAC;EAC3C,CAAC,MAAM;IACLD,GAAG,CAAC,SAAS,EAAEC,IAAI,CAAC;IACpBD,GAAG,CAACwB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAED,YAAY,IAAI3D,UAAU,CAAC;EACxD;EAEA,IAAI2D,YAAY,KAAK,EAAE,EAAE;IAAA,IAAAE,sBAAA;IACvBzB,GAAG,CAAC,YAAY,CAAC;IACjB,OAAO;MACLvB,IAAI,GAAAgD,sBAAA,GAAEvB,eAAe,CAACzB,IAAI,cAAAgD,sBAAA,cAAAA,sBAAA,GAAI,EAAE;MAChCf,QAAQ,EAAE;IACZ,CAAC;EACH;EAEA,IAAIO,OAAO,KAAK,IAAI,IAAIA,OAAO,CAACS,IAAI,GAAG,CAAC,EAAE;IACxC,MAAMC,eAAe,GAAG,OAAO,IAAI,CAACC,OAAO,CACzC,gBAAgB,EAChB,IAAI,CAACP,UAAU,EACf;MACEJ;IACF,CACF,CAAC;IAED,IAAIU,eAAe,CAAChB,MAAM,KAAK,CAAC,EAAE;MAChC,MAAM,CACJ,gBAAgB,EAChB,IAAI,CAACU,UAAU,EACf;QACEQ,QAAQ,EAAEF;MACZ,CAAC,CACF;IACH;EACF;EAEA,OAAO;IACLlD,IAAI,EAAE8C,YAAY;IAClBb;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACO,SAASoB,SAASA,CAAA,EAAyB;EAChD,OAAOX,iBAAiB,CAACY,IAAI,CAAC,IAAI,EAAElC,WAAW,CAAC;AAClD"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.workflow = workflow;
|
|
7
|
+
var _AbortError = require("../actions/AbortError");
|
|
8
|
+
/**
|
|
9
|
+
* The entry point for file processing. Sequentially calls `processEntrypoint`,
|
|
10
|
+
* `evalFile`, `collect`, and `extract`. Returns the result of transforming
|
|
11
|
+
* the source code as well as all artifacts obtained from code execution.
|
|
12
|
+
*/
|
|
13
|
+
function* workflow() {
|
|
14
|
+
var _entrypoint$loadedAnd2, _collectStageResult$c;
|
|
15
|
+
const {
|
|
16
|
+
cache,
|
|
17
|
+
options
|
|
18
|
+
} = this.services;
|
|
19
|
+
const {
|
|
20
|
+
entrypoint
|
|
21
|
+
} = this;
|
|
22
|
+
if (entrypoint.ignored) {
|
|
23
|
+
var _entrypoint$loadedAnd;
|
|
24
|
+
return {
|
|
25
|
+
code: (_entrypoint$loadedAnd = entrypoint.loadedAndParsed.code) !== null && _entrypoint$loadedAnd !== void 0 ? _entrypoint$loadedAnd : '',
|
|
26
|
+
sourceMap: options.inputSourceMap
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
yield* this.getNext('processEntrypoint', entrypoint, undefined, null);
|
|
31
|
+
entrypoint.assertNotSuperseded();
|
|
32
|
+
} catch (e) {
|
|
33
|
+
if ((0, _AbortError.isAborted)(e) && entrypoint.supersededWith) {
|
|
34
|
+
entrypoint.log('workflow aborted, schedule the next attempt');
|
|
35
|
+
return yield* this.getNext('workflow', entrypoint.supersededWith, undefined, null);
|
|
36
|
+
}
|
|
37
|
+
throw e;
|
|
38
|
+
}
|
|
39
|
+
const originalCode = (_entrypoint$loadedAnd2 = entrypoint.loadedAndParsed.code) !== null && _entrypoint$loadedAnd2 !== void 0 ? _entrypoint$loadedAnd2 : '';
|
|
40
|
+
|
|
41
|
+
// File is ignored or does not contain any tags. Return original code.
|
|
42
|
+
if (!entrypoint.hasLinariaMetadata()) {
|
|
43
|
+
if (entrypoint.generation === 1) {
|
|
44
|
+
// 1st generation here means that it's __linariaPreval entrypoint
|
|
45
|
+
// without __linariaPreval, so we don't need it cached
|
|
46
|
+
cache.delete('entrypoints', entrypoint.name);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
code: originalCode,
|
|
50
|
+
sourceMap: options.inputSourceMap
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// *** 2nd stage ***
|
|
55
|
+
|
|
56
|
+
const evalStageResult = yield* this.getNext('evalFile', entrypoint, undefined, null);
|
|
57
|
+
if (evalStageResult === null) {
|
|
58
|
+
return {
|
|
59
|
+
code: originalCode,
|
|
60
|
+
sourceMap: options.inputSourceMap
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const [valueCache, dependencies] = evalStageResult;
|
|
64
|
+
|
|
65
|
+
// *** 3rd stage ***
|
|
66
|
+
|
|
67
|
+
const collectStageResult = yield* this.getNext('collect', entrypoint, {
|
|
68
|
+
valueCache
|
|
69
|
+
}, null);
|
|
70
|
+
if (!collectStageResult.metadata) {
|
|
71
|
+
return {
|
|
72
|
+
code: collectStageResult.code,
|
|
73
|
+
sourceMap: collectStageResult.map
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// *** 4th stage
|
|
78
|
+
|
|
79
|
+
const extractStageResult = yield* this.getNext('extract', entrypoint, {
|
|
80
|
+
processors: collectStageResult.metadata.processors
|
|
81
|
+
}, null);
|
|
82
|
+
return {
|
|
83
|
+
...extractStageResult,
|
|
84
|
+
code: (_collectStageResult$c = collectStageResult.code) !== null && _collectStageResult$c !== void 0 ? _collectStageResult$c : '',
|
|
85
|
+
dependencies,
|
|
86
|
+
replacements: [...extractStageResult.replacements, ...collectStageResult.metadata.replacements],
|
|
87
|
+
sourceMap: collectStageResult.map
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","names":["_AbortError","require","workflow","_entrypoint$loadedAnd2","_collectStageResult$c","cache","options","services","entrypoint","ignored","_entrypoint$loadedAnd","code","loadedAndParsed","sourceMap","inputSourceMap","getNext","undefined","assertNotSuperseded","e","isAborted","supersededWith","log","originalCode","hasLinariaMetadata","generation","delete","name","evalStageResult","valueCache","dependencies","collectStageResult","metadata","map","extractStageResult","processors","replacements"],"sources":["../../../src/transform/generators/workflow.ts"],"sourcesContent":["import { isAborted } from '../actions/AbortError';\nimport type { IWorkflowAction, SyncScenarioForAction } from '../types';\n\n/**\n * The entry point for file processing. Sequentially calls `processEntrypoint`,\n * `evalFile`, `collect`, and `extract`. Returns the result of transforming\n * the source code as well as all artifacts obtained from code execution.\n */\nexport function* workflow(\n this: IWorkflowAction\n): SyncScenarioForAction<IWorkflowAction> {\n const { cache, options } = this.services;\n const { entrypoint } = this;\n\n if (entrypoint.ignored) {\n return {\n code: entrypoint.loadedAndParsed.code ?? '',\n sourceMap: options.inputSourceMap,\n };\n }\n\n try {\n yield* this.getNext('processEntrypoint', entrypoint, undefined, null);\n entrypoint.assertNotSuperseded();\n } catch (e) {\n if (isAborted(e) && entrypoint.supersededWith) {\n entrypoint.log('workflow aborted, schedule the next attempt');\n return yield* this.getNext(\n 'workflow',\n entrypoint.supersededWith,\n undefined,\n null\n );\n }\n\n throw e;\n }\n\n const originalCode = entrypoint.loadedAndParsed.code ?? '';\n\n // File is ignored or does not contain any tags. Return original code.\n if (!entrypoint.hasLinariaMetadata()) {\n if (entrypoint.generation === 1) {\n // 1st generation here means that it's __linariaPreval entrypoint\n // without __linariaPreval, so we don't need it cached\n cache.delete('entrypoints', entrypoint.name);\n }\n\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n // *** 2nd stage ***\n\n const evalStageResult = yield* this.getNext(\n 'evalFile',\n entrypoint,\n undefined,\n null\n );\n\n if (evalStageResult === null) {\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n const [valueCache, dependencies] = evalStageResult;\n\n // *** 3rd stage ***\n\n const collectStageResult = yield* this.getNext(\n 'collect',\n entrypoint,\n {\n valueCache,\n },\n null\n );\n\n if (!collectStageResult.metadata) {\n return {\n code: collectStageResult.code!,\n sourceMap: collectStageResult.map,\n };\n }\n\n // *** 4th stage\n\n const extractStageResult = yield* this.getNext(\n 'extract',\n entrypoint,\n {\n processors: collectStageResult.metadata.processors,\n },\n null\n );\n\n return {\n ...extractStageResult,\n code: collectStageResult.code ?? '',\n dependencies,\n replacements: [\n ...extractStageResult.replacements,\n ...collectStageResult.metadata.replacements,\n ],\n sourceMap: collectStageResult.map,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.loadLinariaOptions = loadLinariaOptions;
|
|
7
|
+
var _cosmiconfig = require("cosmiconfig");
|
|
8
|
+
var _shaker = _interopRequireDefault(require("../../shaker"));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
const searchPlaces = [`.linariarc`, `.linariarc.json`, `.linariarc.yaml`, `.linariarc.yml`, `.linariarc.js`, `.linariarc.cjs`, `.config/linariarc`, `.config/linariarc.json`, `.config/linariarc.yaml`, `.config/linariarc.yml`, `.config/linariarc.js`, `.config/linariarc.cjs`, `linaria.config.js`, `linaria.config.cjs`];
|
|
11
|
+
const explorerSync = (0, _cosmiconfig.cosmiconfigSync)('linaria', {
|
|
12
|
+
searchPlaces
|
|
13
|
+
});
|
|
14
|
+
const cache = new WeakMap();
|
|
15
|
+
const defaultOverrides = {};
|
|
16
|
+
const nodeModulesRegExp = /[\\/]node_modules[\\/]/;
|
|
17
|
+
function loadLinariaOptions(overrides = defaultOverrides) {
|
|
18
|
+
if (cache.has(overrides)) {
|
|
19
|
+
return cache.get(overrides);
|
|
20
|
+
}
|
|
21
|
+
const {
|
|
22
|
+
configFile,
|
|
23
|
+
ignore,
|
|
24
|
+
rules,
|
|
25
|
+
babelOptions = {},
|
|
26
|
+
...rest
|
|
27
|
+
} = overrides;
|
|
28
|
+
const result =
|
|
29
|
+
// eslint-disable-next-line no-nested-ternary
|
|
30
|
+
configFile === false ? undefined : configFile !== undefined ? explorerSync.load(configFile) : explorerSync.search();
|
|
31
|
+
const defaultFeatures = {
|
|
32
|
+
dangerousCodeRemover: true,
|
|
33
|
+
globalCache: true,
|
|
34
|
+
happyDOM: true,
|
|
35
|
+
softErrors: false,
|
|
36
|
+
useBabelConfigs: true
|
|
37
|
+
};
|
|
38
|
+
const options = {
|
|
39
|
+
displayName: false,
|
|
40
|
+
evaluate: true,
|
|
41
|
+
extensions: ['.cjs', '.cts', '.js', '.jsx', '.mjs', '.mts', '.ts', '.tsx'],
|
|
42
|
+
rules: rules !== null && rules !== void 0 ? rules : [{
|
|
43
|
+
action: _shaker.default
|
|
44
|
+
}, {
|
|
45
|
+
// The old `ignore` option is used as a default value for `ignore` rule.
|
|
46
|
+
test: ignore !== null && ignore !== void 0 ? ignore : nodeModulesRegExp,
|
|
47
|
+
action: 'ignore'
|
|
48
|
+
}, {
|
|
49
|
+
// Do not ignore ES-modules
|
|
50
|
+
test: (filename, code) => {
|
|
51
|
+
if (!nodeModulesRegExp.test(filename)) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// If a file contains `export` or `import` keywords, we assume it's an ES-module
|
|
56
|
+
return /(?:^|\*\/|;)\s*(?:export|import)\s/m.test(code);
|
|
57
|
+
},
|
|
58
|
+
action: _shaker.default
|
|
59
|
+
}],
|
|
60
|
+
babelOptions,
|
|
61
|
+
highPriorityPlugins: ['module-resolver'],
|
|
62
|
+
...(result ? result.config : {}),
|
|
63
|
+
...rest,
|
|
64
|
+
features: {
|
|
65
|
+
...defaultFeatures,
|
|
66
|
+
...(result ? result.config.features : {}),
|
|
67
|
+
...rest.features
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
cache.set(overrides, options);
|
|
71
|
+
return options;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=loadLinariaOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadLinariaOptions.js","names":["_cosmiconfig","require","_shaker","_interopRequireDefault","obj","__esModule","default","searchPlaces","explorerSync","cosmiconfigSync","cache","WeakMap","defaultOverrides","nodeModulesRegExp","loadLinariaOptions","overrides","has","get","configFile","ignore","rules","babelOptions","rest","result","undefined","load","search","defaultFeatures","dangerousCodeRemover","globalCache","happyDOM","softErrors","useBabelConfigs","options","displayName","evaluate","extensions","action","shaker","test","filename","code","highPriorityPlugins","config","features","set"],"sources":["../../../src/transform/helpers/loadLinariaOptions.ts"],"sourcesContent":["import { cosmiconfigSync } from 'cosmiconfig';\n\nimport type { FeatureFlags, StrictOptions } from '@wyw-in-js/shared';\n\nimport shaker from '../../shaker';\nimport type { PluginOptions } from '../../types';\n\nconst searchPlaces = [\n `.linariarc`,\n `.linariarc.json`,\n `.linariarc.yaml`,\n `.linariarc.yml`,\n `.linariarc.js`,\n `.linariarc.cjs`,\n `.config/linariarc`,\n `.config/linariarc.json`,\n `.config/linariarc.yaml`,\n `.config/linariarc.yml`,\n `.config/linariarc.js`,\n `.config/linariarc.cjs`,\n `linaria.config.js`,\n `linaria.config.cjs`,\n];\n\nconst explorerSync = cosmiconfigSync('linaria', { searchPlaces });\n\nexport type PartialOptions = Partial<Omit<PluginOptions, 'features'>> & {\n features?: Partial<FeatureFlags>;\n};\n\nconst cache = new WeakMap<Partial<PartialOptions>, StrictOptions>();\nconst defaultOverrides = {};\nconst nodeModulesRegExp = /[\\\\/]node_modules[\\\\/]/;\n\nexport function loadLinariaOptions(\n overrides: PartialOptions = defaultOverrides\n): StrictOptions {\n if (cache.has(overrides)) {\n return cache.get(overrides)!;\n }\n\n const { configFile, ignore, rules, babelOptions = {}, ...rest } = overrides;\n\n const result =\n // eslint-disable-next-line no-nested-ternary\n configFile === false\n ? undefined\n : configFile !== undefined\n ? explorerSync.load(configFile)\n : explorerSync.search();\n\n const defaultFeatures: FeatureFlags = {\n dangerousCodeRemover: true,\n globalCache: true,\n happyDOM: true,\n softErrors: false,\n useBabelConfigs: true,\n };\n\n const options: StrictOptions = {\n displayName: false,\n evaluate: true,\n extensions: ['.cjs', '.cts', '.js', '.jsx', '.mjs', '.mts', '.ts', '.tsx'],\n rules: rules ?? [\n {\n action: shaker,\n },\n {\n // The old `ignore` option is used as a default value for `ignore` rule.\n test: ignore ?? nodeModulesRegExp,\n action: 'ignore',\n },\n {\n // Do not ignore ES-modules\n test: (filename, code) => {\n if (!nodeModulesRegExp.test(filename)) {\n return false;\n }\n\n // If a file contains `export` or `import` keywords, we assume it's an ES-module\n return /(?:^|\\*\\/|;)\\s*(?:export|import)\\s/m.test(code);\n },\n action: shaker,\n },\n ],\n babelOptions,\n highPriorityPlugins: ['module-resolver'],\n ...(result ? result.config : {}),\n ...rest,\n features: {\n ...defaultFeatures,\n ...(result ? result.config.features : {}),\n ...rest.features,\n },\n };\n\n cache.set(overrides, options);\n\n return options;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.withDefaultServices = void 0;
|
|
7
|
+
var babelCore = _interopRequireWildcard(require("@babel/core"));
|
|
8
|
+
var _cache = require("../../cache");
|
|
9
|
+
var _EventEmitter = require("../../utils/EventEmitter");
|
|
10
|
+
var _Entrypoint = require("../Entrypoint.helpers");
|
|
11
|
+
var _rootLog = require("../rootLog");
|
|
12
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
+
const withDefaultServices = ({
|
|
15
|
+
babel = babelCore,
|
|
16
|
+
cache = new _cache.TransformCacheCollection(),
|
|
17
|
+
eventEmitter = _EventEmitter.EventEmitter.dummy,
|
|
18
|
+
loadAndParseFn = _Entrypoint.loadAndParse,
|
|
19
|
+
log = _rootLog.rootLog,
|
|
20
|
+
options
|
|
21
|
+
}) => ({
|
|
22
|
+
babel,
|
|
23
|
+
cache,
|
|
24
|
+
eventEmitter,
|
|
25
|
+
loadAndParseFn,
|
|
26
|
+
log,
|
|
27
|
+
options
|
|
28
|
+
});
|
|
29
|
+
exports.withDefaultServices = withDefaultServices;
|
|
30
|
+
//# sourceMappingURL=withDefaultServices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withDefaultServices.js","names":["babelCore","_interopRequireWildcard","require","_cache","_EventEmitter","_Entrypoint","_rootLog","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","withDefaultServices","babel","TransformCacheCollection","eventEmitter","EventEmitter","dummy","loadAndParseFn","loadAndParse","log","rootLog","options","exports"],"sources":["../../../src/transform/helpers/withDefaultServices.ts"],"sourcesContent":["import * as babelCore from '@babel/core';\n\nimport { TransformCacheCollection } from '../../cache';\nimport { EventEmitter } from '../../utils/EventEmitter';\nimport { loadAndParse } from '../Entrypoint.helpers';\nimport { rootLog } from '../rootLog';\nimport type { Services } from '../types';\n\ntype RequiredServices = 'options';\nexport type PartialServices = Partial<Omit<Services, RequiredServices>> &\n Pick<Services, RequiredServices>;\n\nexport const withDefaultServices = ({\n babel = babelCore,\n cache = new TransformCacheCollection(),\n eventEmitter = EventEmitter.dummy,\n loadAndParseFn = loadAndParse,\n log = rootLog,\n options,\n}: PartialServices): Services => ({\n babel,\n cache,\n eventEmitter,\n loadAndParseFn,\n log,\n options,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAqC,SAAAK,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAP,wBAAAW,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAO9B,MAAMW,mBAAmB,GAAGA,CAAC;EAClCC,KAAK,GAAG9B,SAAS;EACjBe,KAAK,GAAG,IAAIgB,+BAAwB,CAAC,CAAC;EACtCC,YAAY,GAAGC,0BAAY,CAACC,KAAK;EACjCC,cAAc,GAAGC,wBAAY;EAC7BC,GAAG,GAAGC,gBAAO;EACbC;AACe,CAAC,MAAgB;EAChCT,KAAK;EACLf,KAAK;EACLiB,YAAY;EACZG,cAAc;EACdE,GAAG;EACHE;AACF,CAAC,CAAC;AAACC,OAAA,CAAAX,mBAAA,GAAAA,mBAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.rootLog = void 0;
|
|
7
|
+
var _shared = require("@wyw-in-js/shared");
|
|
8
|
+
const rootLog = exports.rootLog = _shared.logger.extend('transform');
|
|
9
|
+
//# sourceMappingURL=rootLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rootLog.js","names":["_shared","require","rootLog","exports","logger","extend"],"sources":["../../src/transform/rootLog.ts"],"sourcesContent":["import type { Debugger } from '@wyw-in-js/shared';\nimport { logger } from '@wyw-in-js/shared';\n\nexport const rootLog: Debugger = logger.extend('transform');\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEO,MAAMC,OAAiB,GAAAC,OAAA,CAAAD,OAAA,GAAGE,cAAM,CAACC,MAAM,CAAC,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["Pending","exports","Symbol"],"sources":["../../src/transform/types.ts"],"sourcesContent":["import type { BabelFileResult } from '@babel/core';\n\nimport type { ValueCache } from '@wyw-in-js/processor-utils';\nimport type { Debugger, Artifact, StrictOptions } from '@wyw-in-js/shared';\n\nimport type { Core } from '../babel';\nimport type { TransformCacheCollection } from '../cache';\nimport type { Options, ITransformFileResult } from '../types';\nimport type { EventEmitter } from '../utils/EventEmitter';\nimport type { WYWTransformMetadata } from '../utils/TransformMetadata';\n\nimport type { Entrypoint } from './Entrypoint';\nimport type { LoadAndParseFn, IEntrypointDependency } from './Entrypoint.types';\nimport type { BaseAction } from './actions/BaseAction';\nimport type {\n IExtracted,\n IWorkflowActionLinariaResult,\n IWorkflowActionNonLinariaResult,\n} from './actions/types';\n\nexport type Services = {\n babel: Core;\n cache: TransformCacheCollection;\n eventEmitter: EventEmitter;\n loadAndParseFn: LoadAndParseFn;\n log: Debugger;\n options: Options & {\n pluginOptions: StrictOptions;\n };\n};\n\nexport interface IBaseNode {\n type: ActionTypes;\n}\n\nexport type ActionByType<TType extends ActionQueueItem['type']> = Extract<\n ActionQueueItem,\n {\n type: TType;\n }\n>;\n\nexport const Pending = Symbol('pending');\n\nexport type YieldResult = Exclude<ActionQueueItem['result'], typeof Pending>;\n\nexport type AnyIteratorResult<TMode extends 'async' | 'sync', TResult> = {\n async: Promise<IteratorResult<YieldArg, TResult>>;\n sync: IteratorResult<YieldArg, TResult>;\n}[TMode];\n\nexport interface IBaseAction<TAction extends ActionQueueItem, TResult, TData>\n extends IBaseNode {\n abortSignal: AbortSignal | null;\n createAbortSignal: () => AbortSignal & Disposable;\n data: TData;\n entrypoint: Entrypoint;\n getNext: GetNext;\n idx: string;\n result: TResult | typeof Pending;\n run: <TMode extends 'async' | 'sync'>(\n handler: Handler<TMode, TAction>\n ) => {\n next: (arg: YieldResult) => AnyIteratorResult<TMode, TResult>;\n throw(e: unknown): AnyIteratorResult<TMode, TResult>;\n };\n services: Services;\n}\n\ntype NextParams<\n TType extends ActionTypes,\n TNextAction extends ActionByType<TType> = ActionByType<TType>,\n> = [\n type: TType,\n entrypoint: Entrypoint,\n data: TNextAction['data'],\n abortSignal?: AbortSignal | null,\n];\n\nexport type YieldArg = {\n [K in ActionQueueItem['type']]: NextParams<K>;\n}[ActionQueueItem['type']];\n\nexport type SyncScenarioFor<TResult> = {\n [Symbol.iterator](): SyncScenarioFor<TResult>;\n next(arg: YieldResult): IteratorResult<YieldArg, TResult>;\n return(value: TResult): IteratorResult<YieldArg, TResult>;\n throw(e: unknown): IteratorResult<YieldArg, TResult>;\n};\n\nexport type AsyncScenarioFor<TResult> = {\n [Symbol.asyncIterator](): AsyncScenarioFor<TResult>;\n next(arg: YieldResult): Promise<IteratorResult<YieldArg, TResult>>;\n return(\n value: TResult | PromiseLike<TResult>\n ): Promise<IteratorResult<YieldArg, TResult>>;\n throw(e: unknown): Promise<IteratorResult<YieldArg, TResult>>;\n};\n\nexport type SyncScenarioForAction<TAction extends ActionQueueItem> =\n SyncScenarioFor<TypeOfResult<TAction>>;\n\nexport type AsyncScenarioForAction<TAction extends ActionQueueItem> =\n AsyncScenarioFor<TypeOfResult<TAction>>;\n\nexport type Handler<\n TMode extends 'async' | 'sync',\n TAction extends ActionQueueItem,\n> = ((this: BaseAction<TAction>) => {\n async: AsyncScenarioForAction<TAction>;\n sync: SyncScenarioForAction<TAction>;\n}[TMode]) & {\n recover?: (e: unknown, action: BaseAction<TAction>) => YieldArg;\n};\n\nexport type Handlers<TMode extends 'async' | 'sync'> = {\n [TAction in ActionQueueItem as TAction['type']]: Handler<TMode, TAction>;\n};\n\nexport type TypeOfResult<T extends ActionQueueItem> = Exclude<\n T['result'],\n typeof Pending\n>;\n\nexport type GetNext = <\n TType extends ActionTypes,\n TNextAction extends ActionByType<TType> = ActionByType<TType>,\n>(\n ...args: NextParams<TType, TNextAction>\n) => Generator<\n [TType, Entrypoint, TNextAction['data'], AbortSignal | null],\n TypeOfResult<TNextAction>,\n YieldResult\n>;\n\nexport interface ICollectActionResult {\n ast: BabelFileResult['ast']; // FIXME: looks like this is not used\n code: BabelFileResult['code'];\n map?: BabelFileResult['map'];\n metadata?: WYWTransformMetadata | null;\n}\n\nexport interface ICollectAction\n extends IBaseAction<\n ICollectAction,\n ICollectActionResult,\n { valueCache: ValueCache }\n > {\n type: 'collect';\n}\n\nexport interface IEvalAction\n extends IBaseAction<IEvalAction, [ValueCache, string[]] | null, undefined> {\n type: 'evalFile';\n}\n\nexport interface IExplodeReexportsAction\n extends IBaseAction<IExplodeReexportsAction, void, undefined> {\n type: 'explodeReexports';\n}\n\nexport interface IExtractAction\n extends IBaseAction<\n IExtractAction,\n IExtracted,\n { processors: { artifacts: Artifact[] }[] }\n > {\n type: 'extract';\n}\n\nexport interface IGetExportsAction\n extends IBaseAction<IGetExportsAction, string[], undefined> {\n type: 'getExports';\n}\n\nexport interface IProcessEntrypointAction\n extends IBaseAction<IProcessEntrypointAction, void, undefined> {\n type: 'processEntrypoint';\n}\n\nexport interface IProcessImportsAction\n extends IBaseAction<\n IProcessImportsAction,\n void,\n {\n resolved: IEntrypointDependency[];\n }\n > {\n type: 'processImports';\n}\n\nexport interface IResolveImportsAction\n extends IBaseAction<\n IResolveImportsAction,\n IEntrypointDependency[],\n {\n imports: Map<string, string[]> | null;\n }\n > {\n type: 'resolveImports';\n}\n\nexport interface ITransformAction\n extends IBaseAction<ITransformAction, ITransformFileResult, undefined> {\n type: 'transform';\n}\n\nexport interface IWorkflowAction\n extends IBaseAction<\n IWorkflowAction,\n IWorkflowActionLinariaResult | IWorkflowActionNonLinariaResult,\n undefined\n > {\n type: 'workflow';\n}\n\nexport type ActionQueueItem =\n | IEvalAction\n | IExplodeReexportsAction\n | IExtractAction\n | IGetExportsAction\n | ICollectAction\n | IProcessEntrypointAction\n | IProcessImportsAction\n | IResolveImportsAction\n | ITransformAction\n | IWorkflowAction;\n\nexport type ActionTypes = ActionQueueItem['type'];\n"],"mappings":";;;;;;AA0CO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGE,MAAM,CAAC,SAAS,CAAC"}
|