@wyw-in-js/transform 1.0.8 → 2.0.0-alpha.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/esm/cache.js +426 -289
- package/esm/cache.js.map +1 -1
- package/esm/debug/fileReporter.js +137 -134
- package/esm/debug/fileReporter.js.map +1 -1
- package/esm/eval/broker.js +2134 -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/resolverStrategy.js +51 -0
- package/esm/eval/resolverStrategy.js.map +1 -0
- package/esm/eval/runner.js +1759 -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 -28
- package/esm/index.js.map +1 -1
- package/esm/module.js +896 -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 +78 -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 +165 -196
- package/esm/transform/generators/resolveImports.js.map +1 -1
- package/esm/transform/generators/resolveStaticOxcValues.js +2911 -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 +239 -248
- package/esm/transform/generators/transform.js.map +1 -1
- package/esm/transform/generators/workflow.js +87 -79
- package/esm/transform/generators/workflow.js.map +1 -1
- package/esm/transform/helpers/loadWywOptions.js +154 -73
- 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 +123 -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 +46 -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 +10 -0
- package/esm/utils/TransformDiagnostics.js.map +1 -0
- package/esm/utils/TransformMetadata.js +28 -10
- package/esm/utils/TransformMetadata.js.map +1 -1
- package/esm/utils/applyOxcProcessors.js +1217 -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.js +220 -0
- package/esm/utils/collectOxcRuntime.js.map +1 -0
- package/esm/utils/collectOxcTemplateDependencies.js +1398 -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/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.js +97 -0
- package/esm/utils/oxcPreevalStage.js.map +1 -0
- package/esm/utils/oxcPreevalTransforms.js +1054 -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/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 +18 -26
- package/types/cache.d.ts +17 -8
- package/types/cache.js +237 -95
- package/types/debug/fileReporter.js +22 -22
- package/types/eval/broker.d.ts +88 -0
- package/types/eval/broker.js +2262 -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 +97 -0
- package/types/eval/protocol.js +1 -0
- package/types/eval/resolverStrategy.d.ts +13 -0
- package/types/eval/resolverStrategy.js +46 -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 +7 -8
- package/types/index.js +24 -77
- package/types/module.d.ts +35 -7
- package/types/module.js +535 -163
- 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 +28 -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 +6 -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.js +18 -22
- package/types/transform/generators/resolveStaticOxcValues.d.ts +2 -0
- package/types/transform/generators/resolveStaticOxcValues.js +3235 -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 +203 -199
- package/types/transform/generators/workflow.js +62 -37
- package/types/transform/helpers/loadWywOptions.js +95 -20
- 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 +88 -101
- package/types/types.d.ts +4 -24
- package/types/types.js +1 -2
- package/types/utils/EventEmitter.js +3 -9
- package/types/utils/ShakerMetadata.js +1 -5
- package/types/utils/TransformDiagnostics.d.ts +9 -0
- package/types/utils/TransformDiagnostics.js +11 -0
- package/types/utils/TransformMetadata.d.ts +22 -4
- package/types/utils/TransformMetadata.js +23 -8
- package/types/utils/applyOxcProcessors.d.ts +16 -0
- package/types/utils/applyOxcProcessors.js +1391 -0
- package/types/utils/collectOxcExportsAndImports.d.ts +35 -0
- package/types/utils/collectOxcExportsAndImports.js +957 -0
- package/types/utils/collectOxcRuntime.d.ts +14 -0
- package/types/utils/collectOxcRuntime.js +250 -0
- package/types/utils/collectOxcTemplateDependencies.d.ts +38 -0
- package/types/utils/collectOxcTemplateDependencies.js +1580 -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/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.d.ts +20 -0
- package/types/utils/oxcPreevalStage.js +102 -0
- package/types/utils/oxcPreevalTransforms.d.ts +13 -0
- package/types/utils/oxcPreevalTransforms.js +1179 -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/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 -257
- 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 -90
- package/lib/transform/generators/workflow.js.map +0 -1
- package/lib/transform/helpers/loadWywOptions.js +0 -87
- 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/TransformMetadata.js +0 -19
- 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 -20
- 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,372 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createKeyframeSuffixerPlugin = createKeyframeSuffixerPlugin;
|
|
7
|
-
exports.createStylisPreprocessor = createStylisPreprocessor;
|
|
8
|
-
exports.createStylisUrlReplacePlugin = createStylisUrlReplacePlugin;
|
|
9
|
-
exports.stylisGlobalPlugin = void 0;
|
|
10
|
-
exports.transformUrl = transformUrl;
|
|
11
|
-
var path = _interopRequireWildcard(require("path"));
|
|
12
|
-
var _stylis = require("stylis");
|
|
13
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
-
/* eslint-disable no-continue */
|
|
15
|
-
|
|
16
|
-
const POSIX_SEP = path.posix.sep;
|
|
17
|
-
function transformUrl(url, outputFilename, sourceFilename, platformPath = path) {
|
|
18
|
-
// Replace asset path with new path relative to the output CSS
|
|
19
|
-
const relative = platformPath.relative(platformPath.dirname(outputFilename),
|
|
20
|
-
// Get the absolute path to the asset from the path relative to the JS file
|
|
21
|
-
platformPath.resolve(platformPath.dirname(sourceFilename), url));
|
|
22
|
-
if (platformPath.sep === POSIX_SEP) {
|
|
23
|
-
return relative;
|
|
24
|
-
}
|
|
25
|
-
return relative.split(platformPath.sep).join(POSIX_SEP);
|
|
26
|
-
}
|
|
27
|
-
const DEFINED_KEYFRAMES = Symbol('definedKeyframes');
|
|
28
|
-
const ORIGINAL_KEYFRAME_NAME = Symbol('originalKeyframeName');
|
|
29
|
-
const ORIGINAL_VALUE_KEY = Symbol('originalValue');
|
|
30
|
-
const IS_GLOBAL_KEYFRAMES = Symbol('isGlobalKeyframes');
|
|
31
|
-
const getOriginalElementValue = element => {
|
|
32
|
-
var _element$ORIGINAL_VAL;
|
|
33
|
-
return element ? (_element$ORIGINAL_VAL = element[ORIGINAL_VALUE_KEY]) !== null && _element$ORIGINAL_VAL !== void 0 ? _element$ORIGINAL_VAL : element.value : '';
|
|
34
|
-
};
|
|
35
|
-
function throwIfNotProd(key, value, type) {
|
|
36
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
37
|
-
throw new Error(`"element.${key}" has type "${type}" (${JSON.stringify(value, null, 2)}), it's not expected. Please report a bug if it happens.`);
|
|
38
|
-
}
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
function childrenIsString(children) {
|
|
42
|
-
return typeof children === 'string' || throwIfNotProd('children', children, 'Element[]');
|
|
43
|
-
}
|
|
44
|
-
function propsAreStrings(props) {
|
|
45
|
-
return Array.isArray(props) || throwIfNotProd('props', props, 'string');
|
|
46
|
-
}
|
|
47
|
-
function propsIsString(props) {
|
|
48
|
-
return typeof props === 'string' || throwIfNotProd('props', props, 'string[]');
|
|
49
|
-
}
|
|
50
|
-
const isDeclaration = element => {
|
|
51
|
-
return element.type === _stylis.DECLARATION && propsIsString(element.props) && childrenIsString(element.children);
|
|
52
|
-
};
|
|
53
|
-
const isKeyframes = element => {
|
|
54
|
-
return element.type === _stylis.KEYFRAMES && propsAreStrings(element.props);
|
|
55
|
-
};
|
|
56
|
-
const isRuleset = element => {
|
|
57
|
-
return element.type === _stylis.RULESET && propsAreStrings(element.props);
|
|
58
|
-
};
|
|
59
|
-
function nonMediaParent(element) {
|
|
60
|
-
let {
|
|
61
|
-
parent
|
|
62
|
-
} = element;
|
|
63
|
-
while (parent) {
|
|
64
|
-
if (parent.type !== '@media') {
|
|
65
|
-
return parent;
|
|
66
|
-
}
|
|
67
|
-
parent = parent.parent;
|
|
68
|
-
}
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Stylis plugin that mimics :global() selector behavior from Stylis v3.
|
|
74
|
-
*/
|
|
75
|
-
const stylisGlobalPlugin = element => {
|
|
76
|
-
function getGlobalSelectorModifiers(el) {
|
|
77
|
-
const parent = nonMediaParent(el);
|
|
78
|
-
const value = getOriginalElementValue(el);
|
|
79
|
-
const parentValue = getOriginalElementValue(parent);
|
|
80
|
-
if ((parent === null || parent === void 0 ? void 0 : parent.children.length) === 0 && parentValue.includes(':global(') || parent && !value.includes(':global(')) {
|
|
81
|
-
return getGlobalSelectorModifiers(parent);
|
|
82
|
-
}
|
|
83
|
-
const match = value.match(/(&\f( )?)?:global\(/);
|
|
84
|
-
if (match === null) {
|
|
85
|
-
throw new Error(`Failed to match :global() selector in "${value}". Please report a bug if it happens.`);
|
|
86
|
-
}
|
|
87
|
-
const [, baseSelector, spaceDelimiter] = match;
|
|
88
|
-
return {
|
|
89
|
-
includeBaseSelector: !!baseSelector,
|
|
90
|
-
includeSpaceDelimiter: !!spaceDelimiter
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
if (!isRuleset(element)) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
Object.assign(element, {
|
|
97
|
-
props: element.props.map(cssSelector => {
|
|
98
|
-
// The value can be changed by other middlewares, but we need an original one with `&`
|
|
99
|
-
Object.assign(element, {
|
|
100
|
-
[ORIGINAL_VALUE_KEY]: element.value
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
// Avoids calling tokenize() on every string
|
|
104
|
-
if (!cssSelector.includes(':global(')) {
|
|
105
|
-
return cssSelector;
|
|
106
|
-
}
|
|
107
|
-
if (element.children.length === 0) {
|
|
108
|
-
return cssSelector;
|
|
109
|
-
}
|
|
110
|
-
const {
|
|
111
|
-
includeBaseSelector,
|
|
112
|
-
includeSpaceDelimiter
|
|
113
|
-
} = getGlobalSelectorModifiers(element);
|
|
114
|
-
const tokens = (0, _stylis.tokenize)(cssSelector);
|
|
115
|
-
let selector = '';
|
|
116
|
-
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
117
|
-
const token = tokens[i];
|
|
118
|
-
|
|
119
|
-
//
|
|
120
|
-
// Match for ":global("
|
|
121
|
-
if (token === ':' && tokens[i + 1] === 'global') {
|
|
122
|
-
//
|
|
123
|
-
// Match for ":global()"
|
|
124
|
-
if (tokens[i + 2] === '()') {
|
|
125
|
-
selector = [...tokens.slice(i + 4), includeSpaceDelimiter ? ' ' : '', ...(includeBaseSelector ? tokens.slice(0, i - 1) : []), includeSpaceDelimiter ? '' : ' '].join('');
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
//
|
|
130
|
-
// Match for ":global(selector)"
|
|
131
|
-
selector = [tokens[i + 2].slice(1, -1), includeSpaceDelimiter ? ' ' : '', ...(includeBaseSelector ? tokens.slice(0, i - 1) : []), includeSpaceDelimiter ? '' : ' '].join('');
|
|
132
|
-
break;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return selector;
|
|
136
|
-
})
|
|
137
|
-
});
|
|
138
|
-
};
|
|
139
|
-
exports.stylisGlobalPlugin = stylisGlobalPlugin;
|
|
140
|
-
function createStylisUrlReplacePlugin(filename, outputFilename) {
|
|
141
|
-
return element => {
|
|
142
|
-
if (element.type === 'decl' && outputFilename) {
|
|
143
|
-
// When writing to a file, we need to adjust the relative paths inside url(..) expressions.
|
|
144
|
-
// It'll allow css-loader to resolve an imported asset properly.
|
|
145
|
-
// eslint-disable-next-line no-param-reassign
|
|
146
|
-
element.return = element.value.replace(/\b(url\((["']?))(\.[^)]+?)(\2\))/g, (_match, p1, _p2, p3, p4) => p1 + transformUrl(p3, outputFilename, filename) + p4);
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
function createKeyframeSuffixerPlugin() {
|
|
151
|
-
const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map(i => i ? `-${i}-` : '');
|
|
152
|
-
const getPrefixedProp = prop => prefixes.map(prefix => `${prefix}${prop}`);
|
|
153
|
-
const buildPropsRegexp = (prop, isAtRule) => {
|
|
154
|
-
const [at, colon] = isAtRule ? ['@', ''] : ['', ':'];
|
|
155
|
-
return new RegExp(`^(${at}(?:${getPrefixedProp(prop).join('|')})${colon})\\s*`);
|
|
156
|
-
};
|
|
157
|
-
const animationNameRegexp = /:global\(([\w_-]+)\)|([\w_-]+)/;
|
|
158
|
-
const getReplacer = (startsWith, searchValue, replacer) => {
|
|
159
|
-
return input => {
|
|
160
|
-
var _input$match;
|
|
161
|
-
const [fullMatch] = (_input$match = input.match(startsWith)) !== null && _input$match !== void 0 ? _input$match : [];
|
|
162
|
-
if (fullMatch === undefined) {
|
|
163
|
-
return input;
|
|
164
|
-
}
|
|
165
|
-
const rest = input.slice(fullMatch.length);
|
|
166
|
-
return fullMatch + rest.replace(searchValue, replacer);
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
|
-
const elementToKeyframeSuffix = el => {
|
|
170
|
-
if (el.parent) {
|
|
171
|
-
return elementToKeyframeSuffix(el.parent);
|
|
172
|
-
}
|
|
173
|
-
return el.value.replaceAll(/[^a-zA-Z0-9_-]/g, '');
|
|
174
|
-
};
|
|
175
|
-
const animationPropsSet = new Set([...getPrefixedProp('animation'), ...getPrefixedProp('animation-name')]);
|
|
176
|
-
const getDefinedKeyframes = element => {
|
|
177
|
-
if (element[DEFINED_KEYFRAMES]) {
|
|
178
|
-
return element[DEFINED_KEYFRAMES];
|
|
179
|
-
}
|
|
180
|
-
if (element.parent) {
|
|
181
|
-
return getDefinedKeyframes(element.parent);
|
|
182
|
-
}
|
|
183
|
-
const keyframes = new Set();
|
|
184
|
-
for (const sibling of (_element$siblings = element.siblings) !== null && _element$siblings !== void 0 ? _element$siblings : []) {
|
|
185
|
-
var _element$siblings;
|
|
186
|
-
if (sibling[ORIGINAL_KEYFRAME_NAME]) {
|
|
187
|
-
keyframes.add(sibling[ORIGINAL_KEYFRAME_NAME]);
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
const name = sibling.props[0];
|
|
191
|
-
if (!isKeyframes(sibling) || sibling[IS_GLOBAL_KEYFRAMES] === true || name !== null && name !== void 0 && name.startsWith(':global(')) {
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
keyframes.add(sibling.props[0]);
|
|
195
|
-
}
|
|
196
|
-
Object.assign(element, {
|
|
197
|
-
[DEFINED_KEYFRAMES]: keyframes
|
|
198
|
-
});
|
|
199
|
-
return keyframes;
|
|
200
|
-
};
|
|
201
|
-
return element => {
|
|
202
|
-
if (isKeyframes(element) && element.parent) {
|
|
203
|
-
var _originalName$startsW;
|
|
204
|
-
const suffix = elementToKeyframeSuffix(element);
|
|
205
|
-
const replaceFn = (_match, globalMatch, scopedMatch) => globalMatch || `${scopedMatch}-${suffix}`;
|
|
206
|
-
const originalName = element.props[0];
|
|
207
|
-
const isGlobal = (_originalName$startsW = originalName === null || originalName === void 0 ? void 0 : originalName.startsWith(':global(')) !== null && _originalName$startsW !== void 0 ? _originalName$startsW : false;
|
|
208
|
-
Object.assign(element, {
|
|
209
|
-
[ORIGINAL_KEYFRAME_NAME]: isGlobal ? undefined : originalName,
|
|
210
|
-
[IS_GLOBAL_KEYFRAMES]: isGlobal,
|
|
211
|
-
props: element.props.map(getReplacer(/^\s*/, animationNameRegexp, replaceFn)),
|
|
212
|
-
value: getReplacer(buildPropsRegexp('keyframes', true), animationNameRegexp, replaceFn)(element.value)
|
|
213
|
-
});
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
if (isDeclaration(element)) {
|
|
217
|
-
const suffix = elementToKeyframeSuffix(element);
|
|
218
|
-
const keys = ['children', 'return', 'value'];
|
|
219
|
-
if (animationPropsSet.has(element.props)) {
|
|
220
|
-
const scopedKeyframes = getDefinedKeyframes(element);
|
|
221
|
-
const patch = Object.fromEntries(keys.map(key => {
|
|
222
|
-
const tokens = (0, _stylis.tokenize)(element[key]);
|
|
223
|
-
let result = '';
|
|
224
|
-
for (let i = 0; i < tokens.length; i += 1) {
|
|
225
|
-
if (tokens[i] === ':' && tokens[i + 1] === 'global' && tokens[i + 2].startsWith('(')) {
|
|
226
|
-
const globalName = tokens[i + 2].substring(1, tokens[i + 2].length - 1);
|
|
227
|
-
i += 2;
|
|
228
|
-
result += globalName;
|
|
229
|
-
if (tokens[i + 1] !== ';') {
|
|
230
|
-
result += ' ';
|
|
231
|
-
}
|
|
232
|
-
continue;
|
|
233
|
-
}
|
|
234
|
-
if (scopedKeyframes.has(tokens[i])) {
|
|
235
|
-
result += `${tokens[i]}-${suffix}`;
|
|
236
|
-
continue;
|
|
237
|
-
}
|
|
238
|
-
result += tokens[i];
|
|
239
|
-
}
|
|
240
|
-
return [key, result];
|
|
241
|
-
}));
|
|
242
|
-
Object.assign(element, patch);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
const isMiddleware = obj => obj !== null;
|
|
248
|
-
const displayKeywordRegexp = /^[a-z-]+$/;
|
|
249
|
-
const knownMultiKeywordDisplayTokens = new Set(['block', 'inline', 'flow', 'flow-root', 'flex', 'grid', 'table', 'list-item']);
|
|
250
|
-
function normalizeMultiKeywordDisplayValue(value) {
|
|
251
|
-
var _insideCandidates$;
|
|
252
|
-
const trimmed = value.trim();
|
|
253
|
-
if (trimmed === '' || !/\s/.test(trimmed)) {
|
|
254
|
-
return null;
|
|
255
|
-
}
|
|
256
|
-
const importantRegexp = /!\s*important\s*$/i;
|
|
257
|
-
const hasImportant = importantRegexp.test(trimmed);
|
|
258
|
-
const withoutImportant = trimmed.replace(importantRegexp, '').trim();
|
|
259
|
-
const tokens = withoutImportant.split(/\s+/).filter(Boolean);
|
|
260
|
-
if (tokens.length < 2) {
|
|
261
|
-
return null;
|
|
262
|
-
}
|
|
263
|
-
const normalizedTokens = tokens.map(token => token.toLowerCase());
|
|
264
|
-
if (!normalizedTokens.every(token => displayKeywordRegexp.test(token))) {
|
|
265
|
-
return null;
|
|
266
|
-
}
|
|
267
|
-
const tokenSet = new Set(normalizedTokens);
|
|
268
|
-
const hasInline = tokenSet.has('inline');
|
|
269
|
-
const hasBlock = tokenSet.has('block');
|
|
270
|
-
if (hasInline && hasBlock) {
|
|
271
|
-
return null;
|
|
272
|
-
}
|
|
273
|
-
let outside = null;
|
|
274
|
-
if (hasInline) {
|
|
275
|
-
outside = 'inline';
|
|
276
|
-
} else if (hasBlock) {
|
|
277
|
-
outside = 'block';
|
|
278
|
-
}
|
|
279
|
-
const insideCandidates = ['flow-root', 'flow', 'flex', 'grid', 'table'].filter(candidate => tokenSet.has(candidate));
|
|
280
|
-
if (insideCandidates.length > 1) {
|
|
281
|
-
return null;
|
|
282
|
-
}
|
|
283
|
-
const inside = (_insideCandidates$ = insideCandidates[0]) !== null && _insideCandidates$ !== void 0 ? _insideCandidates$ : null;
|
|
284
|
-
const hasListItem = tokenSet.has('list-item');
|
|
285
|
-
const canCanonicalize = normalizedTokens.every(token => knownMultiKeywordDisplayTokens.has(token));
|
|
286
|
-
if (canCanonicalize) {
|
|
287
|
-
const canonicalOutside = outside !== null && outside !== void 0 ? outside : 'block';
|
|
288
|
-
const canonicalInside = inside !== null && inside !== void 0 ? inside : hasListItem ? 'flow' : null;
|
|
289
|
-
if (canonicalInside) {
|
|
290
|
-
let canonical = null;
|
|
291
|
-
if (hasListItem) {
|
|
292
|
-
if (canonicalInside === 'flow' && canonicalOutside === 'block') {
|
|
293
|
-
canonical = 'list-item';
|
|
294
|
-
}
|
|
295
|
-
} else {
|
|
296
|
-
switch (canonicalInside) {
|
|
297
|
-
case 'flex':
|
|
298
|
-
canonical = canonicalOutside === 'inline' ? 'inline-flex' : 'flex';
|
|
299
|
-
break;
|
|
300
|
-
case 'grid':
|
|
301
|
-
canonical = canonicalOutside === 'inline' ? 'inline-grid' : 'grid';
|
|
302
|
-
break;
|
|
303
|
-
case 'table':
|
|
304
|
-
canonical = canonicalOutside === 'inline' ? 'inline-table' : 'table';
|
|
305
|
-
break;
|
|
306
|
-
case 'flow-root':
|
|
307
|
-
canonical = canonicalOutside === 'block' ? 'flow-root' : null;
|
|
308
|
-
break;
|
|
309
|
-
case 'flow':
|
|
310
|
-
canonical = canonicalOutside === 'inline' ? 'inline' : 'block';
|
|
311
|
-
break;
|
|
312
|
-
default:
|
|
313
|
-
break;
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
if (canonical) {
|
|
317
|
-
return hasImportant ? `${canonical}!important` : canonical;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
const innerDisplay = inside === 'flex' || inside === 'grid' ? inside : null;
|
|
322
|
-
if (innerDisplay && normalizedTokens[0] === innerDisplay && normalizedTokens.length > 1) {
|
|
323
|
-
const reordered = [...(outside ? [outside] : []), ...normalizedTokens.filter(token => token !== innerDisplay && token !== outside), innerDisplay].join(' ');
|
|
324
|
-
return hasImportant ? `${reordered}!important` : reordered;
|
|
325
|
-
}
|
|
326
|
-
return null;
|
|
327
|
-
}
|
|
328
|
-
function createStylisDisplayNormalizationPlugin() {
|
|
329
|
-
return element => {
|
|
330
|
-
if (!isDeclaration(element) || element.props !== 'display') {
|
|
331
|
-
return;
|
|
332
|
-
}
|
|
333
|
-
const normalized = normalizeMultiKeywordDisplayValue(element.children);
|
|
334
|
-
if (!normalized) {
|
|
335
|
-
return;
|
|
336
|
-
}
|
|
337
|
-
const decl = `display:${normalized};`;
|
|
338
|
-
Object.assign(element, {
|
|
339
|
-
children: normalized,
|
|
340
|
-
value: decl
|
|
341
|
-
});
|
|
342
|
-
};
|
|
343
|
-
}
|
|
344
|
-
function createStylisStringifier(keepComments) {
|
|
345
|
-
if (!keepComments) {
|
|
346
|
-
return _stylis.stringify;
|
|
347
|
-
}
|
|
348
|
-
const keepAllComments = keepComments === true;
|
|
349
|
-
const keepCommentsFilter = keepComments instanceof RegExp ? keepComments : null;
|
|
350
|
-
return (element, index, children, callback) => {
|
|
351
|
-
if (element.type === _stylis.COMMENT) {
|
|
352
|
-
if (!keepAllComments && keepCommentsFilter) {
|
|
353
|
-
const commentValue = typeof element.children === 'string' ? element.children : element.value;
|
|
354
|
-
keepCommentsFilter.lastIndex = 0;
|
|
355
|
-
if (!keepCommentsFilter.test(commentValue)) {
|
|
356
|
-
return '';
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
return element.value;
|
|
360
|
-
}
|
|
361
|
-
return (0, _stylis.stringify)(element, index, children, callback);
|
|
362
|
-
};
|
|
363
|
-
}
|
|
364
|
-
function createStylisPreprocessor(options) {
|
|
365
|
-
const stringifier = createStylisStringifier(options.keepComments);
|
|
366
|
-
function stylisPreprocess(selector, text) {
|
|
367
|
-
const compiled = (0, _stylis.compile)(`${selector} {${text}}\n`);
|
|
368
|
-
return (0, _stylis.serialize)(compiled, (0, _stylis.middleware)([createStylisUrlReplacePlugin(options.filename, options.outputFilename), stylisGlobalPlugin, options.prefixer === false ? null : createStylisDisplayNormalizationPlugin(), options.prefixer === false ? null : _stylis.prefixer, createKeyframeSuffixerPlugin(), stringifier].filter(isMiddleware)));
|
|
369
|
-
}
|
|
370
|
-
return stylisPreprocess;
|
|
371
|
-
}
|
|
372
|
-
//# sourceMappingURL=createStylisPreprocessor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createStylisPreprocessor.js","names":["path","_interopRequireWildcard","require","_stylis","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","POSIX_SEP","posix","sep","transformUrl","url","outputFilename","sourceFilename","platformPath","relative","dirname","resolve","split","join","DEFINED_KEYFRAMES","Symbol","ORIGINAL_KEYFRAME_NAME","ORIGINAL_VALUE_KEY","IS_GLOBAL_KEYFRAMES","getOriginalElementValue","element","_element$ORIGINAL_VAL","value","throwIfNotProd","key","type","process","env","NODE_ENV","Error","JSON","stringify","childrenIsString","children","propsAreStrings","props","Array","isArray","propsIsString","isDeclaration","DECLARATION","isKeyframes","KEYFRAMES","isRuleset","RULESET","nonMediaParent","parent","stylisGlobalPlugin","getGlobalSelectorModifiers","el","parentValue","length","includes","match","baseSelector","spaceDelimiter","includeBaseSelector","includeSpaceDelimiter","assign","map","cssSelector","tokens","tokenize","selector","len","token","slice","exports","createStylisUrlReplacePlugin","filename","return","replace","_match","p1","_p2","p3","p4","createKeyframeSuffixerPlugin","prefixes","getPrefixedProp","prop","prefix","buildPropsRegexp","isAtRule","at","colon","RegExp","animationNameRegexp","getReplacer","startsWith","searchValue","replacer","input","_input$match","fullMatch","undefined","rest","elementToKeyframeSuffix","replaceAll","animationPropsSet","Set","getDefinedKeyframes","keyframes","sibling","_element$siblings","siblings","add","name","_originalName$startsW","suffix","replaceFn","globalMatch","scopedMatch","originalName","isGlobal","keys","scopedKeyframes","patch","fromEntries","result","globalName","substring","isMiddleware","obj","displayKeywordRegexp","knownMultiKeywordDisplayTokens","normalizeMultiKeywordDisplayValue","_insideCandidates$","trimmed","trim","test","importantRegexp","hasImportant","withoutImportant","filter","Boolean","normalizedTokens","toLowerCase","every","tokenSet","hasInline","hasBlock","outside","insideCandidates","candidate","inside","hasListItem","canCanonicalize","canonicalOutside","canonicalInside","canonical","innerDisplay","reordered","createStylisDisplayNormalizationPlugin","normalized","decl","createStylisStringifier","keepComments","keepAllComments","keepCommentsFilter","index","callback","COMMENT","commentValue","lastIndex","createStylisPreprocessor","options","stringifier","stylisPreprocess","text","compiled","compile","serialize","middleware","prefixer"],"sources":["../../../src/transform/generators/createStylisPreprocessor.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport * as path from 'path';\nimport {\n compile,\n middleware,\n prefixer,\n serialize,\n stringify,\n tokenize,\n COMMENT,\n RULESET,\n KEYFRAMES,\n DECLARATION,\n} from 'stylis';\nimport type { Middleware, Element } from 'stylis';\n\nimport type { Options } from '../../types';\n\nconst POSIX_SEP = path.posix.sep;\n\nexport function transformUrl(\n url: string,\n outputFilename: string,\n sourceFilename: string,\n platformPath: typeof path = path\n) {\n // Replace asset path with new path relative to the output CSS\n const relative = platformPath.relative(\n platformPath.dirname(outputFilename),\n // Get the absolute path to the asset from the path relative to the JS file\n platformPath.resolve(platformPath.dirname(sourceFilename), url)\n );\n\n if (platformPath.sep === POSIX_SEP) {\n return relative;\n }\n\n return relative.split(platformPath.sep).join(POSIX_SEP);\n}\n\ninterface IGlobalSelectorModifiers {\n includeBaseSelector: boolean;\n includeSpaceDelimiter: boolean;\n}\n\nconst DEFINED_KEYFRAMES = Symbol('definedKeyframes');\nconst ORIGINAL_KEYFRAME_NAME = Symbol('originalKeyframeName');\nconst ORIGINAL_VALUE_KEY = Symbol('originalValue');\nconst IS_GLOBAL_KEYFRAMES = Symbol('isGlobalKeyframes');\n\nconst getOriginalElementValue = (\n element: (Element & { [ORIGINAL_VALUE_KEY]?: string }) | null\n) => {\n return element ? element[ORIGINAL_VALUE_KEY] ?? element.value : '';\n};\n\nfunction throwIfNotProd(key: string, value: unknown, type: string): false {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `\"element.${key}\" has type \"${type}\" (${JSON.stringify(\n value,\n null,\n 2\n )}), it's not expected. Please report a bug if it happens.`\n );\n }\n\n return false;\n}\n\ntype SpecificElement<TFields> = Omit<Element, keyof TFields> & TFields;\ntype Declaration = SpecificElement<{\n children: string;\n props: string;\n type: typeof DECLARATION;\n}>;\ntype Keyframes = SpecificElement<{\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n props: string[];\n type: typeof KEYFRAMES;\n}>;\ntype Ruleset = SpecificElement<{\n props: string[];\n type: typeof RULESET;\n}>;\n\nfunction childrenIsString(children: string | Element[]): children is string {\n return (\n typeof children === 'string' ||\n throwIfNotProd('children', children, 'Element[]')\n );\n}\n\nfunction propsAreStrings(props: string | string[]): props is string[] {\n return Array.isArray(props) || throwIfNotProd('props', props, 'string');\n}\n\nfunction propsIsString(props: string | string[]): props is string {\n return (\n typeof props === 'string' || throwIfNotProd('props', props, 'string[]')\n );\n}\n\nconst isDeclaration = (element: Element): element is Declaration => {\n return (\n element.type === DECLARATION &&\n propsIsString(element.props) &&\n childrenIsString(element.children)\n );\n};\n\nconst isKeyframes = (element: Element): element is Keyframes => {\n return element.type === KEYFRAMES && propsAreStrings(element.props);\n};\n\nconst isRuleset = (element: Element): element is Ruleset => {\n return element.type === RULESET && propsAreStrings(element.props);\n};\n\nfunction nonMediaParent(element: Element): Element | null {\n let { parent } = element;\n\n while (parent) {\n if (parent.type !== '@media') {\n return parent;\n }\n\n parent = parent.parent;\n }\n\n return null;\n}\n\n/**\n * Stylis plugin that mimics :global() selector behavior from Stylis v3.\n */\nexport const stylisGlobalPlugin: Middleware = (element) => {\n function getGlobalSelectorModifiers(el: Element): IGlobalSelectorModifiers {\n const parent = nonMediaParent(el);\n\n const value = getOriginalElementValue(el);\n const parentValue = getOriginalElementValue(parent);\n\n if (\n (parent?.children.length === 0 && parentValue.includes(':global(')) ||\n (parent && !value.includes(':global('))\n ) {\n return getGlobalSelectorModifiers(parent);\n }\n\n const match = value.match(/(&\\f( )?)?:global\\(/);\n\n if (match === null) {\n throw new Error(\n `Failed to match :global() selector in \"${value}\". Please report a bug if it happens.`\n );\n }\n\n const [, baseSelector, spaceDelimiter] = match;\n\n return {\n includeBaseSelector: !!baseSelector,\n includeSpaceDelimiter: !!spaceDelimiter,\n };\n }\n\n if (!isRuleset(element)) {\n return;\n }\n\n Object.assign(element, {\n props: element.props.map((cssSelector) => {\n // The value can be changed by other middlewares, but we need an original one with `&`\n Object.assign(element, { [ORIGINAL_VALUE_KEY]: element.value });\n\n // Avoids calling tokenize() on every string\n if (!cssSelector.includes(':global(')) {\n return cssSelector;\n }\n\n if (element.children.length === 0) {\n return cssSelector;\n }\n\n const { includeBaseSelector, includeSpaceDelimiter } =\n getGlobalSelectorModifiers(element);\n\n const tokens = tokenize(cssSelector);\n let selector = '';\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n\n //\n // Match for \":global(\"\n if (token === ':' && tokens[i + 1] === 'global') {\n //\n // Match for \":global()\"\n if (tokens[i + 2] === '()') {\n selector = [\n ...tokens.slice(i + 4),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n\n //\n // Match for \":global(selector)\"\n selector = [\n tokens[i + 2].slice(1, -1),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n }\n\n return selector;\n }),\n });\n};\n\nexport function createStylisUrlReplacePlugin(\n filename: string,\n outputFilename: string | undefined\n): Middleware {\n return (element) => {\n if (element.type === 'decl' && outputFilename) {\n // When writing to a file, we need to adjust the relative paths inside url(..) expressions.\n // It'll allow css-loader to resolve an imported asset properly.\n // eslint-disable-next-line no-param-reassign\n element.return = element.value.replace(\n /\\b(url\\(([\"']?))(\\.[^)]+?)(\\2\\))/g,\n (_match, p1, _p2, p3, p4) =>\n p1 + transformUrl(p3, outputFilename, filename) + p4\n );\n }\n };\n}\n\nexport function createKeyframeSuffixerPlugin(): Middleware {\n const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map((i) =>\n i ? `-${i}-` : ''\n );\n\n const getPrefixedProp = (prop: string): string[] =>\n prefixes.map((prefix) => `${prefix}${prop}`);\n\n const buildPropsRegexp = (prop: string, isAtRule: boolean) => {\n const [at, colon] = isAtRule ? ['@', ''] : ['', ':'];\n return new RegExp(\n `^(${at}(?:${getPrefixedProp(prop).join('|')})${colon})\\\\s*`\n );\n };\n\n const animationNameRegexp = /:global\\(([\\w_-]+)\\)|([\\w_-]+)/;\n\n const getReplacer = (\n startsWith: RegExp,\n searchValue: RegExp,\n replacer: (substring: string, ...matches: string[]) => string\n ): ((input: string) => string) => {\n return (input) => {\n const [fullMatch] = input.match(startsWith) ?? [];\n if (fullMatch === undefined) {\n return input;\n }\n\n const rest = input.slice(fullMatch.length);\n return fullMatch + rest.replace(searchValue, replacer);\n };\n };\n\n const elementToKeyframeSuffix = (el: Element): string => {\n if (el.parent) {\n return elementToKeyframeSuffix(el.parent);\n }\n\n return el.value.replaceAll(/[^a-zA-Z0-9_-]/g, '');\n };\n\n const animationPropsSet = new Set([\n ...getPrefixedProp('animation'),\n ...getPrefixedProp('animation-name'),\n ]);\n\n const getDefinedKeyframes = (\n element: Element & {\n [DEFINED_KEYFRAMES]?: Set<string>;\n siblings?: (Element & {\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n [ORIGINAL_KEYFRAME_NAME]?: string;\n })[];\n }\n ): Set<string> => {\n if (element[DEFINED_KEYFRAMES]) {\n return element[DEFINED_KEYFRAMES];\n }\n\n if (element.parent) {\n return getDefinedKeyframes(element.parent);\n }\n\n const keyframes = new Set<string>();\n for (const sibling of element.siblings ?? []) {\n if (sibling[ORIGINAL_KEYFRAME_NAME]) {\n keyframes.add(sibling[ORIGINAL_KEYFRAME_NAME]);\n continue;\n }\n\n const name = sibling.props[0];\n if (\n !isKeyframes(sibling) ||\n sibling[IS_GLOBAL_KEYFRAMES] === true ||\n name?.startsWith(':global(')\n ) {\n continue;\n }\n\n keyframes.add(sibling.props[0]);\n }\n\n Object.assign(element, { [DEFINED_KEYFRAMES]: keyframes });\n\n return keyframes;\n };\n\n return (element) => {\n if (isKeyframes(element) && element.parent) {\n const suffix = elementToKeyframeSuffix(element);\n\n const replaceFn = (\n _match: string,\n globalMatch: string,\n scopedMatch: string\n ): string => globalMatch || `${scopedMatch}-${suffix}`;\n\n const originalName = element.props[0];\n const isGlobal = originalName?.startsWith(':global(') ?? false;\n\n Object.assign(element, {\n [ORIGINAL_KEYFRAME_NAME]: isGlobal ? undefined : originalName,\n [IS_GLOBAL_KEYFRAMES]: isGlobal,\n props: element.props.map(\n getReplacer(/^\\s*/, animationNameRegexp, replaceFn)\n ),\n value: getReplacer(\n buildPropsRegexp('keyframes', true),\n animationNameRegexp,\n replaceFn\n )(element.value),\n });\n\n return;\n }\n\n if (isDeclaration(element)) {\n const suffix = elementToKeyframeSuffix(element);\n const keys = [\n 'children',\n 'return',\n 'value',\n ] satisfies (keyof Declaration)[];\n\n if (animationPropsSet.has(element.props)) {\n const scopedKeyframes = getDefinedKeyframes(element);\n const patch = Object.fromEntries(\n keys.map((key) => {\n const tokens = tokenize(element[key]);\n let result = '';\n for (let i = 0; i < tokens.length; i += 1) {\n if (\n tokens[i] === ':' &&\n tokens[i + 1] === 'global' &&\n tokens[i + 2].startsWith('(')\n ) {\n const globalName = tokens[i + 2].substring(\n 1,\n tokens[i + 2].length - 1\n );\n i += 2;\n\n result += globalName;\n if (tokens[i + 1] !== ';') {\n result += ' ';\n }\n continue;\n }\n\n if (scopedKeyframes.has(tokens[i])) {\n result += `${tokens[i]}-${suffix}`;\n continue;\n }\n\n result += tokens[i];\n }\n\n return [key, result];\n })\n );\n\n Object.assign(element, patch);\n }\n }\n };\n}\n\nconst isMiddleware = (obj: Middleware | null): obj is Middleware =>\n obj !== null;\n\nconst displayKeywordRegexp = /^[a-z-]+$/;\nconst knownMultiKeywordDisplayTokens = new Set([\n 'block',\n 'inline',\n 'flow',\n 'flow-root',\n 'flex',\n 'grid',\n 'table',\n 'list-item',\n]);\n\nfunction normalizeMultiKeywordDisplayValue(value: string): string | null {\n const trimmed = value.trim();\n if (trimmed === '' || !/\\s/.test(trimmed)) {\n return null;\n }\n\n const importantRegexp = /!\\s*important\\s*$/i;\n const hasImportant = importantRegexp.test(trimmed);\n const withoutImportant = trimmed.replace(importantRegexp, '').trim();\n\n const tokens = withoutImportant.split(/\\s+/).filter(Boolean);\n if (tokens.length < 2) {\n return null;\n }\n\n const normalizedTokens = tokens.map((token) => token.toLowerCase());\n if (!normalizedTokens.every((token) => displayKeywordRegexp.test(token))) {\n return null;\n }\n\n const tokenSet = new Set(normalizedTokens);\n const hasInline = tokenSet.has('inline');\n const hasBlock = tokenSet.has('block');\n if (hasInline && hasBlock) {\n return null;\n }\n\n let outside: 'block' | 'inline' | null = null;\n if (hasInline) {\n outside = 'inline';\n } else if (hasBlock) {\n outside = 'block';\n }\n\n const insideCandidates = [\n 'flow-root',\n 'flow',\n 'flex',\n 'grid',\n 'table',\n ].filter((candidate) => tokenSet.has(candidate));\n if (insideCandidates.length > 1) {\n return null;\n }\n\n const inside = insideCandidates[0] ?? null;\n const hasListItem = tokenSet.has('list-item');\n\n const canCanonicalize = normalizedTokens.every((token) =>\n knownMultiKeywordDisplayTokens.has(token)\n );\n\n if (canCanonicalize) {\n const canonicalOutside = outside ?? 'block';\n const canonicalInside = inside ?? (hasListItem ? 'flow' : null);\n if (canonicalInside) {\n let canonical: string | null = null;\n if (hasListItem) {\n if (canonicalInside === 'flow' && canonicalOutside === 'block') {\n canonical = 'list-item';\n }\n } else {\n switch (canonicalInside) {\n case 'flex':\n canonical = canonicalOutside === 'inline' ? 'inline-flex' : 'flex';\n break;\n case 'grid':\n canonical = canonicalOutside === 'inline' ? 'inline-grid' : 'grid';\n break;\n case 'table':\n canonical =\n canonicalOutside === 'inline' ? 'inline-table' : 'table';\n break;\n case 'flow-root':\n canonical = canonicalOutside === 'block' ? 'flow-root' : null;\n break;\n case 'flow':\n canonical = canonicalOutside === 'inline' ? 'inline' : 'block';\n break;\n default:\n break;\n }\n }\n\n if (canonical) {\n return hasImportant ? `${canonical}!important` : canonical;\n }\n }\n }\n\n const innerDisplay = inside === 'flex' || inside === 'grid' ? inside : null;\n if (\n innerDisplay &&\n normalizedTokens[0] === innerDisplay &&\n normalizedTokens.length > 1\n ) {\n const reordered = [\n ...(outside ? [outside] : []),\n ...normalizedTokens.filter(\n (token) => token !== innerDisplay && token !== outside\n ),\n innerDisplay,\n ].join(' ');\n\n return hasImportant ? `${reordered}!important` : reordered;\n }\n\n return null;\n}\n\nfunction createStylisDisplayNormalizationPlugin(): Middleware {\n return (element) => {\n if (!isDeclaration(element) || element.props !== 'display') {\n return;\n }\n\n const normalized = normalizeMultiKeywordDisplayValue(element.children);\n if (!normalized) {\n return;\n }\n\n const decl = `display:${normalized};`;\n Object.assign(element, {\n children: normalized,\n value: decl,\n });\n };\n}\n\nfunction createStylisStringifier(\n keepComments: boolean | RegExp | undefined\n): Middleware {\n if (!keepComments) {\n return stringify;\n }\n\n const keepAllComments = keepComments === true;\n const keepCommentsFilter =\n keepComments instanceof RegExp ? keepComments : null;\n\n return (element, index, children, callback) => {\n if (element.type === COMMENT) {\n if (!keepAllComments && keepCommentsFilter) {\n const commentValue =\n typeof element.children === 'string'\n ? element.children\n : element.value;\n keepCommentsFilter.lastIndex = 0;\n if (!keepCommentsFilter.test(commentValue)) {\n return '';\n }\n }\n return element.value;\n }\n\n return stringify(element, index, children, callback);\n };\n}\n\nexport function createStylisPreprocessor(\n options: Options & { prefixer?: boolean }\n) {\n const stringifier = createStylisStringifier(options.keepComments);\n\n function stylisPreprocess(selector: string, text: string): string {\n const compiled = compile(`${selector} {${text}}\\n`);\n\n return serialize(\n compiled,\n middleware(\n [\n createStylisUrlReplacePlugin(\n options.filename,\n options.outputFilename\n ),\n stylisGlobalPlugin,\n options.prefixer === false\n ? null\n : createStylisDisplayNormalizationPlugin(),\n options.prefixer === false ? null : prefixer,\n createKeyframeSuffixerPlugin(),\n stringifier,\n ].filter(isMiddleware)\n )\n );\n }\n\n return stylisPreprocess;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.evalFile = evalFile;
|
|
7
|
-
var _evaluators = _interopRequireDefault(require("../../evaluators"));
|
|
8
|
-
var _hasWywPreval = _interopRequireDefault(require("../../utils/hasWywPreval"));
|
|
9
|
-
var _UnprocessedEntrypointError = require("../actions/UnprocessedEntrypointError");
|
|
10
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
-
const wrap = fn => {
|
|
12
|
-
try {
|
|
13
|
-
return fn();
|
|
14
|
-
} catch (e) {
|
|
15
|
-
return e;
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Executes the code prepared in previous steps within the current `Entrypoint`.
|
|
21
|
-
* Returns all exports that were requested in `only`.
|
|
22
|
-
*/
|
|
23
|
-
// eslint-disable-next-line require-yield
|
|
24
|
-
function* evalFile() {
|
|
25
|
-
const {
|
|
26
|
-
entrypoint
|
|
27
|
-
} = this;
|
|
28
|
-
const {
|
|
29
|
-
log
|
|
30
|
-
} = entrypoint;
|
|
31
|
-
log(`>> evaluate __wywPreval`);
|
|
32
|
-
let evaluated;
|
|
33
|
-
while (evaluated === undefined) {
|
|
34
|
-
try {
|
|
35
|
-
evaluated = (0, _evaluators.default)(this.services, entrypoint);
|
|
36
|
-
} catch (e) {
|
|
37
|
-
if ((0, _UnprocessedEntrypointError.isUnprocessedEntrypointError)(e)) {
|
|
38
|
-
entrypoint.log('Evaluation has been aborted because one if the required files is not processed. Schedule reprocessing and repeat evaluation.');
|
|
39
|
-
yield ['processEntrypoint', e.entrypoint, undefined];
|
|
40
|
-
} else {
|
|
41
|
-
throw e;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
const wywPreval = (0, _hasWywPreval.default)(evaluated.value) ? evaluated.value.__wywPreval : undefined;
|
|
46
|
-
if (!wywPreval) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
const valueCache = new Map();
|
|
50
|
-
Object.entries(wywPreval).forEach(([key, lazyValue]) => {
|
|
51
|
-
const value = wrap(lazyValue);
|
|
52
|
-
valueCache.set(key, value);
|
|
53
|
-
});
|
|
54
|
-
log(`<< evaluated __wywPreval %O`, valueCache);
|
|
55
|
-
return [valueCache, evaluated.dependencies];
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=evalFile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evalFile.js","names":["_evaluators","_interopRequireDefault","require","_hasWywPreval","_UnprocessedEntrypointError","e","__esModule","default","wrap","fn","evalFile","entrypoint","log","evaluated","undefined","evaluate","services","isUnprocessedEntrypointError","wywPreval","hasWywPreval","value","__wywPreval","valueCache","Map","Object","entries","forEach","key","lazyValue","set","dependencies"],"sources":["../../../src/transform/generators/evalFile.ts"],"sourcesContent":["import type { ValueCache } from '@wyw-in-js/processor-utils';\n\nimport type { IEvaluateResult } from '../../evaluators';\nimport evaluate from '../../evaluators';\nimport hasWywPreval from '../../utils/hasWywPreval';\nimport { isUnprocessedEntrypointError } from '../actions/UnprocessedEntrypointError';\nimport type { IEvalAction, SyncScenarioForAction } from '../types';\n\nconst wrap = <T>(fn: () => T): T | Error => {\n try {\n return fn();\n } catch (e) {\n return e as Error;\n }\n};\n\n/**\n * Executes the code prepared in previous steps within the current `Entrypoint`.\n * Returns all exports that were requested in `only`.\n */\n// eslint-disable-next-line require-yield\nexport function* evalFile(\n this: IEvalAction\n): SyncScenarioForAction<IEvalAction> {\n const { entrypoint } = this;\n const { log } = entrypoint;\n\n log(`>> evaluate __wywPreval`);\n\n let evaluated: IEvaluateResult | undefined;\n\n while (evaluated === undefined) {\n try {\n evaluated = evaluate(this.services, entrypoint);\n } catch (e) {\n if (isUnprocessedEntrypointError(e)) {\n entrypoint.log(\n 'Evaluation has been aborted because one if the required files is not processed. Schedule reprocessing and repeat evaluation.'\n );\n yield ['processEntrypoint', e.entrypoint, undefined];\n } else {\n throw e;\n }\n }\n }\n\n const wywPreval = hasWywPreval(evaluated.value)\n ? evaluated.value.__wywPreval\n : undefined;\n\n if (!wywPreval) {\n return null;\n }\n\n const valueCache: ValueCache = new Map();\n Object.entries(wywPreval).forEach(([key, lazyValue]) => {\n const value = wrap(lazyValue);\n valueCache.set(key, value);\n });\n\n log(`<< evaluated __wywPreval %O`, valueCache);\n\n return [valueCache, evaluated.dependencies];\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AAAqF,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGrF,MAAMG,IAAI,GAAOC,EAAW,IAAgB;EAC1C,IAAI;IACF,OAAOA,EAAE,CAAC,CAAC;EACb,CAAC,CAAC,OAAOJ,CAAC,EAAE;IACV,OAAOA,CAAC;EACV;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,UAAUK,QAAQA,CAAA,EAEa;EACpC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI;EAC3B,MAAM;IAAEC;EAAI,CAAC,GAAGD,UAAU;EAE1BC,GAAG,CAAC,yBAAyB,CAAC;EAE9B,IAAIC,SAAsC;EAE1C,OAAOA,SAAS,KAAKC,SAAS,EAAE;IAC9B,IAAI;MACFD,SAAS,GAAG,IAAAE,mBAAQ,EAAC,IAAI,CAACC,QAAQ,EAAEL,UAAU,CAAC;IACjD,CAAC,CAAC,OAAON,CAAC,EAAE;MACV,IAAI,IAAAY,wDAA4B,EAACZ,CAAC,CAAC,EAAE;QACnCM,UAAU,CAACC,GAAG,CACZ,8HACF,CAAC;QACD,MAAM,CAAC,mBAAmB,EAAEP,CAAC,CAACM,UAAU,EAAEG,SAAS,CAAC;MACtD,CAAC,MAAM;QACL,MAAMT,CAAC;MACT;IACF;EACF;EAEA,MAAMa,SAAS,GAAG,IAAAC,qBAAY,EAACN,SAAS,CAACO,KAAK,CAAC,GAC3CP,SAAS,CAACO,KAAK,CAACC,WAAW,GAC3BP,SAAS;EAEb,IAAI,CAACI,SAAS,EAAE;IACd,OAAO,IAAI;EACb;EAEA,MAAMI,UAAsB,GAAG,IAAIC,GAAG,CAAC,CAAC;EACxCC,MAAM,CAACC,OAAO,CAACP,SAAS,CAAC,CAACQ,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,SAAS,CAAC,KAAK;IACtD,MAAMR,KAAK,GAAGZ,IAAI,CAACoB,SAAS,CAAC;IAC7BN,UAAU,CAACO,GAAG,CAACF,GAAG,EAAEP,KAAK,CAAC;EAC5B,CAAC,CAAC;EAEFR,GAAG,CAAC,6BAA6B,EAAEU,UAAU,CAAC;EAE9C,OAAO,CAACA,UAAU,EAAET,SAAS,CAACiB,YAAY,CAAC;AAC7C","ignoreList":[]}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.explodeReexports = explodeReexports;
|
|
7
|
-
var _generator = _interopRequireDefault(require("@babel/generator"));
|
|
8
|
-
var _getExports = require("./getExports");
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
const getWildcardReexport = (babel, ast) => {
|
|
11
|
-
const reexportsFrom = [];
|
|
12
|
-
ast.program.body.forEach(node => {
|
|
13
|
-
if (babel.types.isExportAllDeclaration(node) && node.source && babel.types.isStringLiteral(node.source)) {
|
|
14
|
-
reexportsFrom.push({
|
|
15
|
-
source: node.source.value,
|
|
16
|
-
node
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
return reexportsFrom;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Replaces wildcard reexports with named reexports.
|
|
25
|
-
* Recursively emits getExports for each reexported module,
|
|
26
|
-
* and replaces wildcard with resolved named.
|
|
27
|
-
*/
|
|
28
|
-
function* explodeReexports() {
|
|
29
|
-
const {
|
|
30
|
-
babel
|
|
31
|
-
} = this.services;
|
|
32
|
-
const {
|
|
33
|
-
log,
|
|
34
|
-
loadedAndParsed
|
|
35
|
-
} = this.entrypoint;
|
|
36
|
-
if (loadedAndParsed.evaluator === 'ignored') {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const reexportsFrom = getWildcardReexport(babel, loadedAndParsed.ast);
|
|
40
|
-
if (!reexportsFrom.length) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
log('has wildcard reexport from %o', reexportsFrom);
|
|
44
|
-
const resolvedImports = yield* this.getNext('resolveImports', this.entrypoint, {
|
|
45
|
-
imports: new Map(reexportsFrom.map(i => [i.source, []]))
|
|
46
|
-
});
|
|
47
|
-
const importedEntrypoints = (0, _getExports.findExportsInImports)(this.entrypoint, resolvedImports);
|
|
48
|
-
const replacements = new Map();
|
|
49
|
-
for (const importedEntrypoint of importedEntrypoints) {
|
|
50
|
-
if (importedEntrypoint.entrypoint.loadedAndParsed.evaluator !== 'ignored') {
|
|
51
|
-
const reexport = reexportsFrom.find(i => i.source === importedEntrypoint.import);
|
|
52
|
-
if (reexport) {
|
|
53
|
-
const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
|
|
54
|
-
const namedExports = exports.filter(name => name !== 'default');
|
|
55
|
-
if (namedExports.length !== 0) {
|
|
56
|
-
replacements.set(reexport.node, babel.types.exportNamedDeclaration(null, namedExports.map(i => babel.types.exportSpecifier(babel.types.identifier(i), babel.types.identifier(i))), babel.types.stringLiteral(importedEntrypoint.import)));
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// Replace wildcard reexport with named reexports
|
|
63
|
-
babel.traverse(loadedAndParsed.ast, {
|
|
64
|
-
ExportAllDeclaration(path) {
|
|
65
|
-
if (!replacements.has(path.node)) return;
|
|
66
|
-
path.replaceWith(replacements.get(path.node));
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
loadedAndParsed.code = (0, _generator.default)(loadedAndParsed.ast).code;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=explodeReexports.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"explodeReexports.js","names":["_generator","_interopRequireDefault","require","_getExports","e","__esModule","default","getWildcardReexport","babel","ast","reexportsFrom","program","body","forEach","node","types","isExportAllDeclaration","source","isStringLiteral","push","value","explodeReexports","services","log","loadedAndParsed","entrypoint","evaluator","length","resolvedImports","getNext","imports","Map","map","i","importedEntrypoints","findExportsInImports","replacements","importedEntrypoint","reexport","find","import","exports","undefined","namedExports","filter","name","set","exportNamedDeclaration","exportSpecifier","identifier","stringLiteral","traverse","ExportAllDeclaration","path","has","replaceWith","get","code","generate"],"sources":["../../../src/transform/generators/explodeReexports.ts"],"sourcesContent":["import generate from '@babel/generator';\nimport type { ExportAllDeclaration, File, Node } from '@babel/types';\n\nimport type { Core } from '../../babel';\nimport type { IExplodeReexportsAction, SyncScenarioForAction } from '../types';\n\nimport { findExportsInImports } from './getExports';\n\nconst getWildcardReexport = (babel: Core, ast: File) => {\n const reexportsFrom: { node: ExportAllDeclaration; source: string }[] = [];\n ast.program.body.forEach((node) => {\n if (\n babel.types.isExportAllDeclaration(node) &&\n node.source &&\n babel.types.isStringLiteral(node.source)\n ) {\n reexportsFrom.push({\n source: node.source.value,\n node,\n });\n }\n });\n\n return reexportsFrom;\n};\n\n/**\n * Replaces wildcard reexports with named reexports.\n * Recursively emits getExports for each reexported module,\n * and replaces wildcard with resolved named.\n */\nexport function* explodeReexports(\n this: IExplodeReexportsAction\n): SyncScenarioForAction<IExplodeReexportsAction> {\n const { babel } = this.services;\n const { log, loadedAndParsed } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n return;\n }\n\n const reexportsFrom = getWildcardReexport(babel, loadedAndParsed.ast);\n if (!reexportsFrom.length) {\n return;\n }\n\n log('has wildcard reexport from %o', reexportsFrom);\n\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports: new Map(reexportsFrom.map((i) => [i.source, []])),\n }\n );\n\n const importedEntrypoints = findExportsInImports(\n this.entrypoint,\n resolvedImports\n );\n\n const replacements = new Map<ExportAllDeclaration, Node>();\n for (const importedEntrypoint of importedEntrypoints) {\n if (importedEntrypoint.entrypoint.loadedAndParsed.evaluator !== 'ignored') {\n const reexport = reexportsFrom.find(\n (i) => i.source === importedEntrypoint.import\n );\n if (reexport) {\n const exports = yield* this.getNext(\n 'getExports',\n importedEntrypoint.entrypoint,\n undefined\n );\n\n const namedExports = exports.filter((name) => name !== 'default');\n if (namedExports.length !== 0) {\n replacements.set(\n reexport.node,\n babel.types.exportNamedDeclaration(\n null,\n namedExports.map((i) =>\n babel.types.exportSpecifier(\n babel.types.identifier(i),\n babel.types.identifier(i)\n )\n ),\n babel.types.stringLiteral(importedEntrypoint.import)\n )\n );\n }\n }\n }\n }\n\n // Replace wildcard reexport with named reexports\n babel.traverse(loadedAndParsed.ast, {\n ExportAllDeclaration(path) {\n if (!replacements.has(path.node)) return;\n path.replaceWith(replacements.get(path.node)!);\n },\n });\n\n loadedAndParsed.code = generate(loadedAndParsed.ast).code;\n}\n"],"mappings":"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","ignoreList":[]}
|