@teambit/preview 1.0.666 → 1.0.668

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.
Files changed (72) hide show
  1. package/bundler/html-plugin.ts +1 -1
  2. package/dist/bundler/html-plugin.d.ts +1 -1
  3. package/dist/bundler/html-plugin.js.map +1 -1
  4. package/dist/bundling-strategy.d.ts +4 -4
  5. package/dist/bundling-strategy.js.map +1 -1
  6. package/dist/component-preview.route.d.ts +1 -1
  7. package/dist/component-preview.route.js.map +1 -1
  8. package/dist/env-preview-template.task.d.ts +5 -5
  9. package/dist/env-preview-template.task.js.map +1 -1
  10. package/dist/env-template.route.js.map +1 -1
  11. package/dist/exceptions/preview-artifact-not-found.d.ts +1 -1
  12. package/dist/exceptions/preview-artifact-not-found.js.map +1 -1
  13. package/dist/exceptions/preview-output-file-not-found.d.ts +1 -1
  14. package/dist/exceptions/preview-output-file-not-found.js.map +1 -1
  15. package/dist/execution-ref.d.ts +1 -1
  16. package/dist/execution-ref.js.map +1 -1
  17. package/dist/generate-preview.cmd.d.ts +2 -2
  18. package/dist/generate-preview.cmd.js.map +1 -1
  19. package/dist/pre-bundle-utils.d.ts +3 -3
  20. package/dist/pre-bundle-utils.js.map +1 -1
  21. package/dist/pre-bundle.d.ts +1 -1
  22. package/dist/pre-bundle.js.map +1 -1
  23. package/dist/pre-bundle.task.d.ts +3 -3
  24. package/dist/pre-bundle.task.js.map +1 -1
  25. package/dist/{preview-1753803956605.js → preview-1753833698619.js} +2 -2
  26. package/dist/preview-artifact.d.ts +1 -1
  27. package/dist/preview-artifact.js.map +1 -1
  28. package/dist/preview-assets.route.d.ts +1 -1
  29. package/dist/preview-assets.route.js.map +1 -1
  30. package/dist/preview-context.d.ts +1 -1
  31. package/dist/preview-context.js.map +1 -1
  32. package/dist/preview-env.d.ts +3 -3
  33. package/dist/preview-env.js.map +1 -1
  34. package/dist/preview-type.d.ts +3 -3
  35. package/dist/preview-type.js.map +1 -1
  36. package/dist/preview.d.ts +1 -1
  37. package/dist/preview.graphql.d.ts +2 -2
  38. package/dist/preview.graphql.js.map +1 -1
  39. package/dist/preview.js.map +1 -1
  40. package/dist/preview.main.runtime.d.ts +16 -16
  41. package/dist/preview.main.runtime.js.map +1 -1
  42. package/dist/preview.preview.runtime.d.ts +4 -4
  43. package/dist/preview.preview.runtime.js.map +1 -1
  44. package/dist/preview.route.d.ts +1 -1
  45. package/dist/preview.route.js.map +1 -1
  46. package/dist/preview.service.d.ts +7 -7
  47. package/dist/preview.service.js.map +1 -1
  48. package/dist/preview.start-plugin.d.ts +7 -7
  49. package/dist/preview.start-plugin.js.map +1 -1
  50. package/dist/preview.task.d.ts +9 -9
  51. package/dist/preview.task.js.map +1 -1
  52. package/dist/rendering-context.d.ts +1 -1
  53. package/dist/rendering-context.js.map +1 -1
  54. package/dist/serve-preview.cmd.d.ts +1 -1
  55. package/dist/serve-preview.cmd.js.map +1 -1
  56. package/dist/strategies/component-strategy.d.ts +4 -4
  57. package/dist/strategies/component-strategy.js.map +1 -1
  58. package/dist/strategies/env-strategy.d.ts +6 -6
  59. package/dist/strategies/env-strategy.js.map +1 -1
  60. package/dist/webpack/webpack.config.d.ts +1 -1
  61. package/dist/webpack/webpack.config.js.map +1 -1
  62. package/exceptions/preview-artifact-not-found.ts +1 -1
  63. package/exceptions/preview-output-file-not-found.ts +1 -1
  64. package/generate-preview.cmd.tsx +2 -2
  65. package/package.json +25 -25
  66. package/preview.preview.runtime.tsx +6 -4
  67. package/preview.service.tsx +7 -7
  68. package/preview.start-plugin.tsx +8 -8
  69. package/serve-preview.cmd.tsx +1 -1
  70. package/strategies/component-strategy.ts +7 -6
  71. package/strategies/env-strategy.ts +9 -9
  72. package/webpack/webpack.config.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","require","_fsExtra","_lodash","_builder","_bitError","_generateComponentLink","_exceptions","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PREVIEW_GLOBAL_NAME_SUFFIX","exports","PREVIEW_CHUNK_SUFFIX","COMPONENT_CHUNK_SUFFIX","PREVIEW_CHUNK_FILENAME_SUFFIX","COMPONENT_CHUNK_FILENAME_SUFFIX","COMPONENT_STRATEGY_SIZE_KEY_NAME","COMPONENT_STRATEGY_ARTIFACT_NAME","ComponentBundlingStrategy","constructor","preview","dependencyResolver","logger","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","origComponents","capsuleNetwork","originalSeedersCapsules","map","capsule","component","entriesArr","Promise","all","computeComponentEntry","chunkSize","config","maxChunkSize","chunks","chunk","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","targets","currentChunk","entries","components","componentDirectoryMap","forEach","entry","assign","push","id","toString","componentDir","hostRootDir","envRuntime","envAspectDefinition","aspectPath","hostDependencies","aliasHostDependencies","externalizeHostDependencies","componentPreviewPath","computePaths","componentPath","getPaths","mainFile","graphCapsules","getCapsule","path","componentPreview","getComponentChunkId","splitComponentBundle","undefined","libNames","getComponentChunkGlobalName","filename","getComponentChunkFileName","fsCompatible","ignoreVersion","import","dependOn","library","name","type","componentId","toStringWithoutVersion","idstr","suffix","getAssetAbsolutePath","asset","join","getAssetFilename","split","copyAssetsToCapsules","result","files","findAssetsForComponent","assets","entriesAssetsMap","artifactDirFullPath","getArtifactDirectory","filePath","PreviewOutputFileNotFound","destFilePath","dirname","fs","copyFileSync","componentEntryId","componentPreviewEntryId","componentFiles","componentAuxiliaryFiles","auxiliaryAssets","componentPreviewFiles","componentPreviewAuxiliaryFiles","concat","CAPSULE_ARTIFACTS_DIR","computeComponentMetadata","file","UNKNOWN","basename","warn","size","compressedSize","filesTotalSize","assetsSize","compressedTotalFiles","compressedAssetsSize","assetsTotalSize","auxiliaryAssetsSize","compressedTotalAssets","compressedAuxiliaryAssetsSize","totalSize","compressedTotal","metadata","totalFiles","totalAssets","total","computeResults","results","componentsResults","flatten","computeTargetResult","artifacts","getArtifactDef","isEmpty","errors","err","message","warning","warnings","startTime","endTime","globPatterns","getDirName","envName","replace","resolve","capsulesRootDir","compiler","getCompiler","getDistPathBySrcPath","relative","getComponentOutputPath","capsulePath","distDir","getDistDir","defs","BitError","moduleMapsPromise","previewDef","moduleMap","getModuleMap","getMetadata","maybeFiles","get","prefix","paths","compiledPaths","moduleMaps","contents","generateComponentLink","targetDir","writeLinkContents"],"sources":["component-strategy.ts"],"sourcesContent":["import { join, resolve, basename, dirname } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { Component } from '@teambit/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, isEmpty, chunk } from 'lodash';\nimport { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/component.sources';\nimport type { Capsule } from '@teambit/isolator';\nimport { ArtifactDefinition, CAPSULE_ARTIFACTS_DIR, ComponentResult } from '@teambit/builder';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap, Target } from '@teambit/bundler';\nimport { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport type { PreviewDefinition } from '../preview-definition';\nimport type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';\nimport { generateComponentLink } from './generate-component-link';\nimport { PreviewOutputFileNotFound } from '../exceptions';\n\nexport const PREVIEW_GLOBAL_NAME_SUFFIX = 'preview';\nexport const PREVIEW_CHUNK_SUFFIX = 'preview-chunk';\nexport const COMPONENT_CHUNK_SUFFIX = 'component-chunk';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = 'preview.js';\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = 'component.js';\n\nexport const COMPONENT_STRATEGY_SIZE_KEY_NAME = 'size';\nexport const COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';\n\ntype ComponentEntry = {\n component: Component;\n entries: object;\n componentDir: string;\n};\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class ComponentBundlingStrategy implements BundlingStrategy {\n name = 'component';\n\n constructor(\n private preview: PreviewMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]): Promise<Target[]> {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n\n // const entriesArr = flatten(\n // await Promise.all(\n // context.capsuleNetwork.seedersCapsules.map((capsule) => {\n // return this.computeComponentEntry(previewDefs, capsule.component, context);\n // }, {})\n // )\n // );\n\n const origComponents = context.capsuleNetwork.originalSeedersCapsules.map((capsule) => capsule.component);\n\n const entriesArr = await Promise.all(\n origComponents.map((component) => {\n return this.computeComponentEntry(previewDefs, component, context);\n }, {})\n );\n\n const chunkSize = this.preview.config.maxChunkSize;\n\n const chunks = chunkSize ? chunk(entriesArr, chunkSize) : [entriesArr];\n\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n\n const targets = chunks.map((currentChunk) => {\n const entries: BundlerEntryMap = {};\n const components: Component[] = [];\n const componentDirectoryMap = {};\n currentChunk.forEach((entry) => {\n Object.assign(entries, entry.entries);\n components.push(entry.component);\n componentDirectoryMap[entry.component.id.toString()] = entry.componentDir;\n });\n\n return {\n entries,\n components,\n componentDirectoryMap,\n outputPath,\n hostRootDir: context.envRuntime.envAspectDefinition.aspectPath,\n hostDependencies: peers,\n aliasHostDependencies: true,\n externalizeHostDependencies: true,\n };\n });\n\n return targets;\n // const entries = entriesArr.reduce((entriesMap, entry) => {\n // entriesMap[entry.library.name] = entry;\n // return entriesMap;\n // }, {});\n\n // const modules = await Promise.all(entriesArr.map(async (entry) => {\n // const dependencies = this.dependencyResolver.getDependencies(entry.component);\n // const manifest = dependencies.toDependenciesManifest();\n // const peer = Object.entries(manifest.peerDependencies || {}).reduce((acc, [packageName, version]) => {\n // acc[packageName] = {\n // singleton: true,\n // requiredVersion: version\n // };\n\n // return acc;\n // }, {});\n // // console.log(entry);\n // return {\n // name: entry.library.name,\n // exposes: {\n // '.': entry.import || ''\n // },\n // shared: {\n // ...manifest.dependencies,\n // ...peer\n // },\n // };\n // }));\n }\n\n async computeComponentEntry(\n previewDefs: PreviewDefinition[],\n component: Component,\n context: ComputeTargetsContext\n ): Promise<ComponentEntry> {\n const componentPreviewPath = await this.computePaths(previewDefs, context, component);\n const [componentPath] = this.getPaths(context, component, [component.mainFile]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const componentDir = capsule?.path || '';\n\n const chunks = {\n componentPreview: this.getComponentChunkId(component.id, 'preview'),\n component: context.splitComponentBundle ? this.getComponentChunkId(component.id, 'component') : undefined,\n };\n\n const libNames = {\n componentPreview: this.getComponentChunkGlobalName(component.id, 'preview'),\n component: context.splitComponentBundle ? this.getComponentChunkGlobalName(component.id, 'component') : undefined,\n };\n\n const entries = {\n [chunks.componentPreview]: {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'preview'\n ),\n import: componentPreviewPath,\n dependOn: chunks.component,\n library: { name: libNames.componentPreview, type: 'umd' },\n },\n };\n\n if (chunks.component && libNames.component) {\n entries[chunks.component] = {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'component'\n ),\n dependOn: undefined,\n import: componentPath,\n library: { name: libNames.component, type: 'umd' },\n };\n }\n\n return { component, entries, componentDir };\n }\n\n private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? `${componentId.toStringWithoutVersion()}-${COMPONENT_CHUNK_SUFFIX}`\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkGlobalName(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? componentId.toStringWithoutVersion()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_GLOBAL_NAME_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkFileName(idstr: string, type: 'component' | 'preview') {\n const suffix = type === 'component' ? COMPONENT_CHUNK_FILENAME_SUFFIX : PREVIEW_CHUNK_FILENAME_SUFFIX;\n return `${idstr}-${suffix}`;\n }\n\n private getAssetAbsolutePath(context: BundlerContext, asset: Asset): string {\n const path = this.getOutputPath(context);\n return join(path, 'public', this.getAssetFilename(asset));\n }\n\n private getAssetFilename(asset: Asset): string {\n // handle cases where the asset name is something like my-image.svg?hash (while the filename in the fs is just my-image.svg)\n const [name] = asset.name.split('?');\n return name;\n }\n\n copyAssetsToCapsules(context: BundlerContext, result: BundlerResult) {\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n const files = this.findAssetsForComponent(component, result.assets, result.entriesAssetsMap || {});\n if (!files) return;\n const artifactDirFullPath = join(capsule.path, this.getArtifactDirectory());\n // We don't use the mkdirSync as it uses the capsule fs which uses memfs, which doesn't know to handle nested none existing folders\n mkdirpSync(artifactDirFullPath);\n\n files.forEach((asset) => {\n const filePath = this.getAssetAbsolutePath(context, asset);\n if (!existsSync(filePath)) {\n throw new PreviewOutputFileNotFound(component.id, filePath);\n }\n const destFilePath = join(artifactDirFullPath, this.getAssetFilename(asset));\n mkdirpSync(dirname(destFilePath));\n capsule.fs.copyFileSync(filePath, destFilePath);\n });\n });\n }\n\n // private getCssFileName(componentId: ComponentID): string {\n // return `${componentId.toString({ ignoreVersion: true, fsCompatible: true })}.css`;\n // }\n\n private findAssetsForComponent(\n component: Component,\n assets: Asset[],\n entriesAssetsMap: EntriesAssetsMap\n ): Asset[] | undefined {\n if (!assets) return undefined;\n\n const componentEntryId = this.getComponentChunkId(component.id, 'component');\n const componentPreviewEntryId = this.getComponentChunkId(component.id, 'preview');\n const componentFiles = entriesAssetsMap[componentEntryId]?.assets || [];\n const componentAuxiliaryFiles = entriesAssetsMap[componentEntryId]?.auxiliaryAssets || [];\n const componentPreviewFiles = entriesAssetsMap[componentPreviewEntryId]?.assets || [];\n const componentPreviewAuxiliaryFiles = entriesAssetsMap[componentPreviewEntryId]?.auxiliaryAssets || [];\n\n const files = componentFiles\n .concat(componentAuxiliaryFiles)\n .concat(componentPreviewFiles)\n .concat(componentPreviewAuxiliaryFiles);\n return files;\n }\n\n private getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview');\n }\n\n private computeComponentMetadata(\n context: BundlerContext,\n result: BundlerResult,\n component: Component\n ): ComponentPreviewMetaData {\n const componentEntryId = this.getComponentChunkId(component.id, 'component');\n\n if (!result?.entriesAssetsMap || !result?.entriesAssetsMap[componentEntryId]) {\n return {};\n }\n const files = (result.entriesAssetsMap[componentEntryId]?.assets || []).map((file) => {\n const UNKNOWN = 'unknown';\n const name = file.name ? basename(file.name) : UNKNOWN;\n if (name === UNKNOWN) {\n this.logger.warn(`computeComponentMetadata: unable to get the name of the asset ${file}`);\n }\n return {\n name,\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const filesTotalSize = result.entriesAssetsMap[componentEntryId]?.assetsSize || 0;\n const compressedTotalFiles = result.entriesAssetsMap[componentEntryId]?.compressedAssetsSize || 0;\n const assets = (result.entriesAssetsMap[componentEntryId]?.auxiliaryAssets || []).map((file) => {\n const UNKNOWN = 'unknown';\n const name = file.name ? basename(file.name) : UNKNOWN;\n if (name === UNKNOWN) {\n this.logger.warn(`computeComponentMetadata: unable to get the name of the auxiliary asset ${file}`);\n }\n return {\n name,\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const assetsTotalSize = result.entriesAssetsMap[componentEntryId]?.auxiliaryAssetsSize || 0;\n const compressedTotalAssets = result.entriesAssetsMap[componentEntryId]?.compressedAuxiliaryAssetsSize || 0;\n const totalSize = filesTotalSize + assetsTotalSize;\n const compressedTotal = compressedTotalFiles + compressedTotalAssets;\n\n const metadata = {\n [COMPONENT_STRATEGY_SIZE_KEY_NAME]: {\n files,\n assets,\n totalFiles: filesTotalSize,\n totalAssets: assetsTotalSize,\n total: totalSize,\n compressedTotalFiles,\n compressedTotalAssets,\n compressedTotal,\n },\n };\n\n return metadata;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const componentsResults = flatten(\n await Promise.all(results.map((result) => this.computeTargetResult(context, result)))\n );\n\n const artifacts = this.getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n async computeTargetResult(context: BundlerContext, result: BundlerResult) {\n if (isEmpty(result.errors)) {\n // In case there are errors files will not be emitted so trying to copy them will fail anyway\n this.copyAssetsToCapsules(context, result);\n }\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n const metadata = this.computeComponentMetadata(context, result, component);\n return {\n component,\n metadata,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n return componentsResults;\n }\n\n private getArtifactDef(): ArtifactDefinition[] {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n // const env: 'env' = 'env';\n // const rootDir = this.getDirName(context);\n\n return [\n {\n name: COMPONENT_STRATEGY_ARTIFACT_NAME,\n globPatterns: [this.getArtifactDirectory()],\n // context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, component: Component, files: AbstractVinyl[]) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return [];\n const compiler: Compiler = context.env.getCompiler?.();\n return files.map((file) => join(capsule.path, compiler?.getDistPathBySrcPath(file.relative) || file.relative));\n }\n\n private getComponentOutputPath(capsule: Capsule, context: ComputeTargetsContext) {\n const capsulePath = resolve(`${capsule.path}`);\n const compiler: Compiler = context.env.getCompiler();\n const distDir = compiler.getDistDir?.() || 'dist';\n return join(capsulePath, distDir);\n }\n\n private async computePaths(\n defs: PreviewDefinition[],\n context: ComputeTargetsContext,\n component: Component\n ): Promise<string> {\n // const previewMain = await this.preview.writePreviewRuntime(context);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n // if (!capsule) return undefined;\n if (!capsule)\n throw new BitError(\n `could not find capsule for component ${component.id.toString()} during compute paths to bundle`\n );\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap([component]);\n const metadata = previewDef.getMetadata ? await previewDef.getMetadata(component) : undefined;\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return { prefix: previewDef.prefix, paths: [] };\n\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, component, files);\n\n return {\n prefix: previewDef.prefix,\n paths: compiledPaths,\n metadata,\n };\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n const contents = generateComponentLink(moduleMaps);\n const targetDir = this.getComponentOutputPath(capsule, context);\n\n return this.preview.writeLinkContents(contents, targetDir, 'preview');\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","require","_fsExtra","_lodash","_builder","_bitError","_generateComponentLink","_exceptions","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PREVIEW_GLOBAL_NAME_SUFFIX","exports","PREVIEW_CHUNK_SUFFIX","COMPONENT_CHUNK_SUFFIX","PREVIEW_CHUNK_FILENAME_SUFFIX","COMPONENT_CHUNK_FILENAME_SUFFIX","COMPONENT_STRATEGY_SIZE_KEY_NAME","COMPONENT_STRATEGY_ARTIFACT_NAME","ComponentBundlingStrategy","constructor","preview","dependencyResolver","logger","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","origComponents","capsuleNetwork","originalSeedersCapsules","map","capsule","component","entriesArr","Promise","all","computeComponentEntry","chunkSize","config","maxChunkSize","chunks","chunk","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","targets","currentChunk","entries","components","componentDirectoryMap","forEach","entry","assign","push","id","toString","componentDir","hostRootDir","envRuntime","envAspectDefinition","aspectPath","hostDependencies","aliasHostDependencies","externalizeHostDependencies","componentPreviewPath","computePaths","componentPath","getPaths","mainFile","graphCapsules","getCapsule","path","componentPreview","getComponentChunkId","splitComponentBundle","undefined","libNames","getComponentChunkGlobalName","filename","getComponentChunkFileName","fsCompatible","ignoreVersion","import","dependOn","library","name","type","componentId","toStringWithoutVersion","idstr","suffix","getAssetAbsolutePath","asset","join","getAssetFilename","split","copyAssetsToCapsules","result","files","findAssetsForComponent","assets","entriesAssetsMap","artifactDirFullPath","getArtifactDirectory","filePath","PreviewOutputFileNotFound","destFilePath","dirname","fs","copyFileSync","componentEntryId","componentPreviewEntryId","componentFiles","componentAuxiliaryFiles","auxiliaryAssets","componentPreviewFiles","componentPreviewAuxiliaryFiles","concat","CAPSULE_ARTIFACTS_DIR","computeComponentMetadata","file","UNKNOWN","basename","warn","size","compressedSize","filesTotalSize","assetsSize","compressedTotalFiles","compressedAssetsSize","assetsTotalSize","auxiliaryAssetsSize","compressedTotalAssets","compressedAuxiliaryAssetsSize","totalSize","compressedTotal","metadata","totalFiles","totalAssets","total","computeResults","results","componentsResults","flatten","computeTargetResult","artifacts","getArtifactDef","isEmpty","errors","err","message","warning","warnings","startTime","endTime","globPatterns","getDirName","envName","replace","resolve","capsulesRootDir","compiler","getCompiler","getDistPathBySrcPath","relative","getComponentOutputPath","capsulePath","distDir","getDistDir","defs","BitError","moduleMapsPromise","previewDef","moduleMap","getModuleMap","getMetadata","maybeFiles","get","prefix","paths","compiledPaths","moduleMaps","contents","generateComponentLink","targetDir","writeLinkContents"],"sources":["component-strategy.ts"],"sourcesContent":["import { join, resolve, basename, dirname } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { Component } from '@teambit/component';\nimport type { ComponentID } from '@teambit/component-id';\nimport { flatten, isEmpty, chunk } from 'lodash';\nimport type { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/component.sources';\nimport type { Capsule } from '@teambit/isolator';\nimport type { ArtifactDefinition, ComponentResult } from '@teambit/builder';\nimport { CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap, Target } from '@teambit/bundler';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport type { PreviewDefinition } from '../preview-definition';\nimport type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';\nimport { generateComponentLink } from './generate-component-link';\nimport { PreviewOutputFileNotFound } from '../exceptions';\n\nexport const PREVIEW_GLOBAL_NAME_SUFFIX = 'preview';\nexport const PREVIEW_CHUNK_SUFFIX = 'preview-chunk';\nexport const COMPONENT_CHUNK_SUFFIX = 'component-chunk';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = 'preview.js';\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = 'component.js';\n\nexport const COMPONENT_STRATEGY_SIZE_KEY_NAME = 'size';\nexport const COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';\n\ntype ComponentEntry = {\n component: Component;\n entries: object;\n componentDir: string;\n};\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class ComponentBundlingStrategy implements BundlingStrategy {\n name = 'component';\n\n constructor(\n private preview: PreviewMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]): Promise<Target[]> {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n\n // const entriesArr = flatten(\n // await Promise.all(\n // context.capsuleNetwork.seedersCapsules.map((capsule) => {\n // return this.computeComponentEntry(previewDefs, capsule.component, context);\n // }, {})\n // )\n // );\n\n const origComponents = context.capsuleNetwork.originalSeedersCapsules.map((capsule) => capsule.component);\n\n const entriesArr = await Promise.all(\n origComponents.map((component) => {\n return this.computeComponentEntry(previewDefs, component, context);\n }, {})\n );\n\n const chunkSize = this.preview.config.maxChunkSize;\n\n const chunks = chunkSize ? chunk(entriesArr, chunkSize) : [entriesArr];\n\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n\n const targets = chunks.map((currentChunk) => {\n const entries: BundlerEntryMap = {};\n const components: Component[] = [];\n const componentDirectoryMap = {};\n currentChunk.forEach((entry) => {\n Object.assign(entries, entry.entries);\n components.push(entry.component);\n componentDirectoryMap[entry.component.id.toString()] = entry.componentDir;\n });\n\n return {\n entries,\n components,\n componentDirectoryMap,\n outputPath,\n hostRootDir: context.envRuntime.envAspectDefinition.aspectPath,\n hostDependencies: peers,\n aliasHostDependencies: true,\n externalizeHostDependencies: true,\n };\n });\n\n return targets;\n // const entries = entriesArr.reduce((entriesMap, entry) => {\n // entriesMap[entry.library.name] = entry;\n // return entriesMap;\n // }, {});\n\n // const modules = await Promise.all(entriesArr.map(async (entry) => {\n // const dependencies = this.dependencyResolver.getDependencies(entry.component);\n // const manifest = dependencies.toDependenciesManifest();\n // const peer = Object.entries(manifest.peerDependencies || {}).reduce((acc, [packageName, version]) => {\n // acc[packageName] = {\n // singleton: true,\n // requiredVersion: version\n // };\n\n // return acc;\n // }, {});\n // // console.log(entry);\n // return {\n // name: entry.library.name,\n // exposes: {\n // '.': entry.import || ''\n // },\n // shared: {\n // ...manifest.dependencies,\n // ...peer\n // },\n // };\n // }));\n }\n\n async computeComponentEntry(\n previewDefs: PreviewDefinition[],\n component: Component,\n context: ComputeTargetsContext\n ): Promise<ComponentEntry> {\n const componentPreviewPath = await this.computePaths(previewDefs, context, component);\n const [componentPath] = this.getPaths(context, component, [component.mainFile]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const componentDir = capsule?.path || '';\n\n const chunks = {\n componentPreview: this.getComponentChunkId(component.id, 'preview'),\n component: context.splitComponentBundle ? this.getComponentChunkId(component.id, 'component') : undefined,\n };\n\n const libNames = {\n componentPreview: this.getComponentChunkGlobalName(component.id, 'preview'),\n component: context.splitComponentBundle ? this.getComponentChunkGlobalName(component.id, 'component') : undefined,\n };\n\n const entries = {\n [chunks.componentPreview]: {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'preview'\n ),\n import: componentPreviewPath,\n dependOn: chunks.component,\n library: { name: libNames.componentPreview, type: 'umd' },\n },\n };\n\n if (chunks.component && libNames.component) {\n entries[chunks.component] = {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'component'\n ),\n dependOn: undefined,\n import: componentPath,\n library: { name: libNames.component, type: 'umd' },\n };\n }\n\n return { component, entries, componentDir };\n }\n\n private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? `${componentId.toStringWithoutVersion()}-${COMPONENT_CHUNK_SUFFIX}`\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkGlobalName(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? componentId.toStringWithoutVersion()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_GLOBAL_NAME_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkFileName(idstr: string, type: 'component' | 'preview') {\n const suffix = type === 'component' ? COMPONENT_CHUNK_FILENAME_SUFFIX : PREVIEW_CHUNK_FILENAME_SUFFIX;\n return `${idstr}-${suffix}`;\n }\n\n private getAssetAbsolutePath(context: BundlerContext, asset: Asset): string {\n const path = this.getOutputPath(context);\n return join(path, 'public', this.getAssetFilename(asset));\n }\n\n private getAssetFilename(asset: Asset): string {\n // handle cases where the asset name is something like my-image.svg?hash (while the filename in the fs is just my-image.svg)\n const [name] = asset.name.split('?');\n return name;\n }\n\n copyAssetsToCapsules(context: BundlerContext, result: BundlerResult) {\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n const files = this.findAssetsForComponent(component, result.assets, result.entriesAssetsMap || {});\n if (!files) return;\n const artifactDirFullPath = join(capsule.path, this.getArtifactDirectory());\n // We don't use the mkdirSync as it uses the capsule fs which uses memfs, which doesn't know to handle nested none existing folders\n mkdirpSync(artifactDirFullPath);\n\n files.forEach((asset) => {\n const filePath = this.getAssetAbsolutePath(context, asset);\n if (!existsSync(filePath)) {\n throw new PreviewOutputFileNotFound(component.id, filePath);\n }\n const destFilePath = join(artifactDirFullPath, this.getAssetFilename(asset));\n mkdirpSync(dirname(destFilePath));\n capsule.fs.copyFileSync(filePath, destFilePath);\n });\n });\n }\n\n // private getCssFileName(componentId: ComponentID): string {\n // return `${componentId.toString({ ignoreVersion: true, fsCompatible: true })}.css`;\n // }\n\n private findAssetsForComponent(\n component: Component,\n assets: Asset[],\n entriesAssetsMap: EntriesAssetsMap\n ): Asset[] | undefined {\n if (!assets) return undefined;\n\n const componentEntryId = this.getComponentChunkId(component.id, 'component');\n const componentPreviewEntryId = this.getComponentChunkId(component.id, 'preview');\n const componentFiles = entriesAssetsMap[componentEntryId]?.assets || [];\n const componentAuxiliaryFiles = entriesAssetsMap[componentEntryId]?.auxiliaryAssets || [];\n const componentPreviewFiles = entriesAssetsMap[componentPreviewEntryId]?.assets || [];\n const componentPreviewAuxiliaryFiles = entriesAssetsMap[componentPreviewEntryId]?.auxiliaryAssets || [];\n\n const files = componentFiles\n .concat(componentAuxiliaryFiles)\n .concat(componentPreviewFiles)\n .concat(componentPreviewAuxiliaryFiles);\n return files;\n }\n\n private getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview');\n }\n\n private computeComponentMetadata(\n context: BundlerContext,\n result: BundlerResult,\n component: Component\n ): ComponentPreviewMetaData {\n const componentEntryId = this.getComponentChunkId(component.id, 'component');\n\n if (!result?.entriesAssetsMap || !result?.entriesAssetsMap[componentEntryId]) {\n return {};\n }\n const files = (result.entriesAssetsMap[componentEntryId]?.assets || []).map((file) => {\n const UNKNOWN = 'unknown';\n const name = file.name ? basename(file.name) : UNKNOWN;\n if (name === UNKNOWN) {\n this.logger.warn(`computeComponentMetadata: unable to get the name of the asset ${file}`);\n }\n return {\n name,\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const filesTotalSize = result.entriesAssetsMap[componentEntryId]?.assetsSize || 0;\n const compressedTotalFiles = result.entriesAssetsMap[componentEntryId]?.compressedAssetsSize || 0;\n const assets = (result.entriesAssetsMap[componentEntryId]?.auxiliaryAssets || []).map((file) => {\n const UNKNOWN = 'unknown';\n const name = file.name ? basename(file.name) : UNKNOWN;\n if (name === UNKNOWN) {\n this.logger.warn(`computeComponentMetadata: unable to get the name of the auxiliary asset ${file}`);\n }\n return {\n name,\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const assetsTotalSize = result.entriesAssetsMap[componentEntryId]?.auxiliaryAssetsSize || 0;\n const compressedTotalAssets = result.entriesAssetsMap[componentEntryId]?.compressedAuxiliaryAssetsSize || 0;\n const totalSize = filesTotalSize + assetsTotalSize;\n const compressedTotal = compressedTotalFiles + compressedTotalAssets;\n\n const metadata = {\n [COMPONENT_STRATEGY_SIZE_KEY_NAME]: {\n files,\n assets,\n totalFiles: filesTotalSize,\n totalAssets: assetsTotalSize,\n total: totalSize,\n compressedTotalFiles,\n compressedTotalAssets,\n compressedTotal,\n },\n };\n\n return metadata;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const componentsResults = flatten(\n await Promise.all(results.map((result) => this.computeTargetResult(context, result)))\n );\n\n const artifacts = this.getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n async computeTargetResult(context: BundlerContext, result: BundlerResult) {\n if (isEmpty(result.errors)) {\n // In case there are errors files will not be emitted so trying to copy them will fail anyway\n this.copyAssetsToCapsules(context, result);\n }\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n const metadata = this.computeComponentMetadata(context, result, component);\n return {\n component,\n metadata,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n return componentsResults;\n }\n\n private getArtifactDef(): ArtifactDefinition[] {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n // const env: 'env' = 'env';\n // const rootDir = this.getDirName(context);\n\n return [\n {\n name: COMPONENT_STRATEGY_ARTIFACT_NAME,\n globPatterns: [this.getArtifactDirectory()],\n // context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, component: Component, files: AbstractVinyl[]) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return [];\n const compiler: Compiler = context.env.getCompiler?.();\n return files.map((file) => join(capsule.path, compiler?.getDistPathBySrcPath(file.relative) || file.relative));\n }\n\n private getComponentOutputPath(capsule: Capsule, context: ComputeTargetsContext) {\n const capsulePath = resolve(`${capsule.path}`);\n const compiler: Compiler = context.env.getCompiler();\n const distDir = compiler.getDistDir?.() || 'dist';\n return join(capsulePath, distDir);\n }\n\n private async computePaths(\n defs: PreviewDefinition[],\n context: ComputeTargetsContext,\n component: Component\n ): Promise<string> {\n // const previewMain = await this.preview.writePreviewRuntime(context);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n // if (!capsule) return undefined;\n if (!capsule)\n throw new BitError(\n `could not find capsule for component ${component.id.toString()} during compute paths to bundle`\n );\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap([component]);\n const metadata = previewDef.getMetadata ? await previewDef.getMetadata(component) : undefined;\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return { prefix: previewDef.prefix, paths: [] };\n\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, component, files);\n\n return {\n prefix: previewDef.prefix,\n paths: compiledPaths,\n metadata,\n };\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n const contents = generateComponentLink(moduleMaps);\n const targetDir = this.getComponentOutputPath(capsule, context);\n\n return this.preview.writeLinkContents(contents, targetDir, 'preview');\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,10 @@
1
- import { ArtifactDefinition, ComponentResult } from '@teambit/builder';
2
- import { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
3
- import { DependencyResolverMain } from '@teambit/dependency-resolver';
4
- import { PkgMain } from '@teambit/pkg';
1
+ import type { ArtifactDefinition, ComponentResult } from '@teambit/builder';
2
+ import type { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
3
+ import type { DependencyResolverMain } from '@teambit/dependency-resolver';
4
+ import type { PkgMain } from '@teambit/pkg';
5
5
  import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
6
- import { PreviewDefinition } from '../preview-definition';
7
- import { PreviewMain } from '../preview.main.runtime';
6
+ import type { PreviewDefinition } from '../preview-definition';
7
+ import type { PreviewMain } from '../preview.main.runtime';
8
8
  export declare const ENV_STRATEGY_ARTIFACT_NAME = "preview";
9
9
  /**
10
10
  * bundles all components in a given env into the same bundle.
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","require","_fsExtra","_lodash","_component","_htmlTemplate","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ENV_STRATEGY_ARTIFACT_NAME","exports","EnvBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","htmlConfig","generateHtmlConfig","dev","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","componentDirectoryMap","components","forEach","component","capsule","capsuleNetwork","graphCapsules","getCapsule","id","toString","path","entries","computePaths","html","hostDependencies","aliasHostDependencies","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","rootDir","getDirName","name","globPatterns","envName","replace","resolve","capsulesRootDir","getPaths","files","compiler","getCompiler","file","join","getDistPathBySrcPath","relative","defs","previewMain","writePreviewEntry","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","default","flatten","toArray","concat","moduleMaps","Promise","all"],"sources":["env-strategy.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { flatten } from 'lodash';\nimport { ComponentMap } from '@teambit/component';\nimport { Compiler } from '@teambit/compiler';\nimport { AbstractVinyl } from '@teambit/component.sources';\nimport { Capsule } from '@teambit/isolator';\nimport { ArtifactDefinition, ComponentResult } from '@teambit/builder';\nimport { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { PkgMain } from '@teambit/pkg';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport { PreviewDefinition } from '../preview-definition';\nimport { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../bundler/html-template';\n\nexport const ENV_STRATEGY_ARTIFACT_NAME = 'preview';\n\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class EnvBundlingStrategy implements BundlingStrategy {\n name = 'env';\n\n constructor(\n private preview: PreviewMain,\n private pkg: PkgMain,\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const htmlConfig = this.generateHtmlConfig({ dev: context.dev });\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n const componentDirectoryMap = {};\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n componentDirectoryMap[component.id.toString()] = capsule.path;\n });\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n componentDirectoryMap,\n html: [htmlConfig],\n components: context.components,\n outputPath,\n /* It's a path to the root of the host component. */\n // hostRootDir, handle this\n hostDependencies: peers,\n aliasHostDependencies: true,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext): ArtifactDefinition[] {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: ENV_STRATEGY_ARTIFACT_NAME,\n globPatterns: [`${rootDir}/public`],\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler?.();\n return files.map((file) => join(capsule.path, compiler?.getDistPathBySrcPath(file.relative) || file.relative));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewEntry(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n { default: template || 'undefined' },\n outputPath,\n false\n );\n\n const files = flatten(paths.toArray().map(([, file]) => file)).concat([link]);\n\n if (template) return files.concat([template]);\n return files;\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n return flatten(moduleMaps.concat([previewMain]));\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","require","_fsExtra","_lodash","_component","_htmlTemplate","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ENV_STRATEGY_ARTIFACT_NAME","exports","EnvBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","htmlConfig","generateHtmlConfig","dev","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","componentDirectoryMap","components","forEach","component","capsule","capsuleNetwork","graphCapsules","getCapsule","id","toString","path","entries","computePaths","html","hostDependencies","aliasHostDependencies","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","rootDir","getDirName","name","globPatterns","envName","replace","resolve","capsulesRootDir","getPaths","files","compiler","getCompiler","file","join","getDistPathBySrcPath","relative","defs","previewMain","writePreviewEntry","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","default","flatten","toArray","concat","moduleMaps","Promise","all"],"sources":["env-strategy.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { flatten } from 'lodash';\nimport { ComponentMap } from '@teambit/component';\nimport type { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/component.sources';\nimport type { Capsule } from '@teambit/isolator';\nimport type { ArtifactDefinition, ComponentResult } from '@teambit/builder';\nimport type { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { PkgMain } from '@teambit/pkg';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport type { PreviewDefinition } from '../preview-definition';\nimport type { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../bundler/html-template';\n\nexport const ENV_STRATEGY_ARTIFACT_NAME = 'preview';\n\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class EnvBundlingStrategy implements BundlingStrategy {\n name = 'env';\n\n constructor(\n private preview: PreviewMain,\n private pkg: PkgMain,\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const htmlConfig = this.generateHtmlConfig({ dev: context.dev });\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n const componentDirectoryMap = {};\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n componentDirectoryMap[component.id.toString()] = capsule.path;\n });\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n componentDirectoryMap,\n html: [htmlConfig],\n components: context.components,\n outputPath,\n /* It's a path to the root of the host component. */\n // hostRootDir, handle this\n hostDependencies: peers,\n aliasHostDependencies: true,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext): ArtifactDefinition[] {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: ENV_STRATEGY_ARTIFACT_NAME,\n globPatterns: [`${rootDir}/public`],\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler?.();\n return files.map((file) => join(capsule.path, compiler?.getDistPathBySrcPath(file.relative) || file.relative));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewEntry(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n { default: template || 'undefined' },\n outputPath,\n false\n );\n\n const files = flatten(paths.toArray().map(([, file]) => file)).concat([link]);\n\n if (template) return files.concat([template]);\n return files;\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n return flatten(moduleMaps.concat([previewMain]));\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import { Configuration } from 'webpack';
1
+ import type { Configuration } from 'webpack';
2
2
  export declare function createWebpackConfig(outputDir: string, entryFile: string): Configuration;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactWebpack","data","require","_webpack","_webpackMerge","_webpack2","_webpackManifestPlugin","createWebpackConfig","outputDir","entryFile","baseConfig","configBaseFactory","preBundleConfig","createPreBundleConfig","combined","merge","mode","process","env","BIT_DEBUG_PREVIEW_BUNDLE","stats","children","errorDetails","entry","main","resolve","alias","react","fallback","module","path","fallbacks","dgram","dns","fs","stream","http2","net","tls","child_process","output","publicPath","chunkFilename","filename","library","type","externalsType","externals","plugins","WebpackManifestPlugin","fileName","generate","seed","files","entrypoints","manifestFiles","reduce","manifest","file","name","entrypointFiles","filter","endsWith","ProvidePlugin","fallbacksProvidePluginConfig"],"sources":["webpack.config.ts"],"sourcesContent":["import { configBaseFactory } from '@teambit/react.webpack.react-webpack';\n\nimport { Configuration, ProvidePlugin } from 'webpack';\nimport { merge } from 'webpack-merge';\nimport { fallbacksProvidePluginConfig, fallbacks } from '@teambit/webpack';\nimport { WebpackManifestPlugin } from 'webpack-manifest-plugin';\n\nexport function createWebpackConfig(outputDir: string, entryFile: string): Configuration {\n const baseConfig = configBaseFactory(true);\n const preBundleConfig = createPreBundleConfig(outputDir, entryFile);\n\n // @ts-ignore that's an issue because of different types/webpack version\n const combined = merge(baseConfig, preBundleConfig);\n\n // @ts-ignore that's an issue because of different types/webpack version\n return combined;\n}\n\nfunction createPreBundleConfig(outputDir: string, entryFile: string) {\n const mode = process.env.BIT_DEBUG_PREVIEW_BUNDLE ? 'development' : 'production';\n const preBundleConfig: Configuration = {\n stats: {\n children: true,\n errorDetails: true,\n },\n mode,\n entry: {\n main: entryFile,\n },\n resolve: {\n alias: {\n 'react/jsx-runtime': require.resolve('react/jsx-runtime'),\n react: require.resolve('react'),\n 'react-dom': require.resolve('react-dom'),\n },\n fallback: {\n module: false,\n path: fallbacks.path,\n dgram: false,\n dns: false,\n fs: false,\n stream: false,\n http2: false,\n net: false,\n tls: false,\n child_process: false,\n process: fallbacks.process,\n },\n },\n output: {\n path: outputDir,\n publicPath: '/',\n chunkFilename: 'static/js/[name].[contenthash:8].chunk.cjs',\n filename: 'static/js/[name].[contenthash:8].cjs',\n library: {\n type: 'commonjs-static',\n },\n },\n externalsType: 'commonjs',\n externals: ['react', 'react-dom', '@mdx-js/react', '@teambit/mdx.ui.mdx-scope-context'],\n plugins: [\n // Generate an asset manifest file with the following content:\n // - \"files\" key: Mapping of all asset filenames to their corresponding\n // output file so that tools can pick it up without having to parse\n // `index.html`\n // can be used to reconstruct the HTML if necessary\n new WebpackManifestPlugin({\n fileName: 'asset-manifest.json',\n generate: (seed, files, entrypoints) => {\n const manifestFiles = files.reduce((manifest, file) => {\n manifest[file.name] = file.path;\n return manifest;\n }, seed);\n const entrypointFiles = entrypoints.main.filter((fileName) => !fileName.endsWith('.map'));\n\n // @ts-ignore - https://github.com/shellscape/webpack-manifest-plugin/issues/276\n return {\n files: manifestFiles,\n entrypoints: entrypointFiles,\n } as Record<string, string>;\n },\n }),\n\n new ProvidePlugin({ process: fallbacksProvidePluginConfig.process }),\n ],\n };\n\n return preBundleConfig;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactWebpack","data","require","_webpack","_webpackMerge","_webpack2","_webpackManifestPlugin","createWebpackConfig","outputDir","entryFile","baseConfig","configBaseFactory","preBundleConfig","createPreBundleConfig","combined","merge","mode","process","env","BIT_DEBUG_PREVIEW_BUNDLE","stats","children","errorDetails","entry","main","resolve","alias","react","fallback","module","path","fallbacks","dgram","dns","fs","stream","http2","net","tls","child_process","output","publicPath","chunkFilename","filename","library","type","externalsType","externals","plugins","WebpackManifestPlugin","fileName","generate","seed","files","entrypoints","manifestFiles","reduce","manifest","file","name","entrypointFiles","filter","endsWith","ProvidePlugin","fallbacksProvidePluginConfig"],"sources":["webpack.config.ts"],"sourcesContent":["import { configBaseFactory } from '@teambit/react.webpack.react-webpack';\n\nimport type { Configuration } from 'webpack';\nimport { ProvidePlugin } from 'webpack';\nimport { merge } from 'webpack-merge';\nimport { fallbacksProvidePluginConfig, fallbacks } from '@teambit/webpack';\nimport { WebpackManifestPlugin } from 'webpack-manifest-plugin';\n\nexport function createWebpackConfig(outputDir: string, entryFile: string): Configuration {\n const baseConfig = configBaseFactory(true);\n const preBundleConfig = createPreBundleConfig(outputDir, entryFile);\n\n // @ts-ignore that's an issue because of different types/webpack version\n const combined = merge(baseConfig, preBundleConfig);\n\n // @ts-ignore that's an issue because of different types/webpack version\n return combined;\n}\n\nfunction createPreBundleConfig(outputDir: string, entryFile: string) {\n const mode = process.env.BIT_DEBUG_PREVIEW_BUNDLE ? 'development' : 'production';\n const preBundleConfig: Configuration = {\n stats: {\n children: true,\n errorDetails: true,\n },\n mode,\n entry: {\n main: entryFile,\n },\n resolve: {\n alias: {\n 'react/jsx-runtime': require.resolve('react/jsx-runtime'),\n react: require.resolve('react'),\n 'react-dom': require.resolve('react-dom'),\n },\n fallback: {\n module: false,\n path: fallbacks.path,\n dgram: false,\n dns: false,\n fs: false,\n stream: false,\n http2: false,\n net: false,\n tls: false,\n child_process: false,\n process: fallbacks.process,\n },\n },\n output: {\n path: outputDir,\n publicPath: '/',\n chunkFilename: 'static/js/[name].[contenthash:8].chunk.cjs',\n filename: 'static/js/[name].[contenthash:8].cjs',\n library: {\n type: 'commonjs-static',\n },\n },\n externalsType: 'commonjs',\n externals: ['react', 'react-dom', '@mdx-js/react', '@teambit/mdx.ui.mdx-scope-context'],\n plugins: [\n // Generate an asset manifest file with the following content:\n // - \"files\" key: Mapping of all asset filenames to their corresponding\n // output file so that tools can pick it up without having to parse\n // `index.html`\n // can be used to reconstruct the HTML if necessary\n new WebpackManifestPlugin({\n fileName: 'asset-manifest.json',\n generate: (seed, files, entrypoints) => {\n const manifestFiles = files.reduce((manifest, file) => {\n manifest[file.name] = file.path;\n return manifest;\n }, seed);\n const entrypointFiles = entrypoints.main.filter((fileName) => !fileName.endsWith('.map'));\n\n // @ts-ignore - https://github.com/shellscape/webpack-manifest-plugin/issues/276\n return {\n files: manifestFiles,\n entrypoints: entrypointFiles,\n } as Record<string, string>;\n },\n }),\n\n new ProvidePlugin({ process: fallbacksProvidePluginConfig.process }),\n ],\n };\n\n return preBundleConfig;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { BitError } from '@teambit/bit-error';
2
- import { ComponentID } from '@teambit/component';
2
+ import type { ComponentID } from '@teambit/component';
3
3
 
4
4
  export class PreviewArtifactNotFound extends BitError {
5
5
  constructor(componentId: ComponentID) {
@@ -1,5 +1,5 @@
1
1
  import { BitError } from '@teambit/bit-error';
2
- import { ComponentID } from '@teambit/component';
2
+ import type { ComponentID } from '@teambit/component';
3
3
 
4
4
  export class PreviewOutputFileNotFound extends BitError {
5
5
  constructor(componentId: ComponentID, filePath: string) {
@@ -1,9 +1,9 @@
1
1
  import padRight from 'pad-right';
2
- import { Command, CommandOptions } from '@teambit/cli';
2
+ import type { Command, CommandOptions } from '@teambit/cli';
3
3
  import { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';
4
4
  import chalk from 'chalk';
5
5
  import type { PreviewMain } from './preview.main.runtime';
6
- import { EnvsExecutionResult } from '@teambit/envs';
6
+ import type { EnvsExecutionResult } from '@teambit/envs';
7
7
 
8
8
  type GeneratePreviewArgs = [userPattern: string];
9
9
  type GeneratePreviewFlags = {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/preview",
3
- "version": "1.0.666",
3
+ "version": "1.0.668",
4
4
  "homepage": "https://bit.cloud/teambit/preview/preview",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.preview",
8
8
  "name": "preview",
9
- "version": "1.0.666"
9
+ "version": "1.0.668"
10
10
  },
11
11
  "dependencies": {
12
12
  "mime": "2.5.2",
@@ -26,41 +26,41 @@
26
26
  "webpack-manifest-plugin": "5.0.0",
27
27
  "webpack-merge": "5.8.0",
28
28
  "@teambit/ui-foundation.ui.pages.static-error": "0.0.108",
29
- "@teambit/preview.ui.component-preview": "1.0.25",
30
29
  "@teambit/toolbox.path.to-windows-compatible-path": "0.0.500",
31
30
  "@teambit/legacy.constants": "0.0.13",
32
31
  "@teambit/harmony": "0.4.7",
33
32
  "@teambit/toolbox.crypto.sha1": "0.0.7",
34
33
  "@teambit/harmony.modules.harmony-root-generator": "0.0.19",
35
- "@teambit/component.sources": "0.0.109",
36
34
  "@teambit/toolbox.path.path": "0.0.8",
37
35
  "@teambit/preview.modules.preview-modules": "1.0.3",
38
36
  "@teambit/component-id": "1.2.4",
39
37
  "@teambit/bit-error": "0.0.404",
40
38
  "@teambit/harmony.modules.feature-toggle": "0.0.23",
41
39
  "@teambit/preview.cli.dev-server-events-listener": "0.0.1",
42
- "@teambit/preview.cli.webpack-events-listener": "0.0.177",
43
40
  "@teambit/react.webpack.react-webpack": "1.0.42",
44
- "@teambit/express": "0.0.1342",
45
- "@teambit/logger": "0.0.1336",
46
- "@teambit/builder": "1.0.666",
47
- "@teambit/bundler": "1.0.666",
48
- "@teambit/component": "1.0.666",
49
- "@teambit/aspect-loader": "1.0.666",
50
- "@teambit/cli": "0.0.1243",
51
- "@teambit/dependency-resolver": "1.0.666",
52
- "@teambit/envs": "1.0.666",
53
- "@teambit/ui": "1.0.666",
54
- "@teambit/isolator": "1.0.666",
55
- "@teambit/cache": "0.0.1336",
56
- "@teambit/graphql": "1.0.666",
57
- "@teambit/pkg": "1.0.666",
58
- "@teambit/pubsub": "1.0.666",
59
- "@teambit/scope": "1.0.666",
60
- "@teambit/watcher": "1.0.666",
61
- "@teambit/workspace": "1.0.666",
62
- "@teambit/compiler": "1.0.666",
63
- "@teambit/webpack": "1.0.666"
41
+ "@teambit/express": "0.0.1344",
42
+ "@teambit/logger": "0.0.1338",
43
+ "@teambit/builder": "1.0.668",
44
+ "@teambit/bundler": "1.0.668",
45
+ "@teambit/component": "1.0.668",
46
+ "@teambit/preview.ui.component-preview": "1.0.26",
47
+ "@teambit/aspect-loader": "1.0.668",
48
+ "@teambit/cli": "0.0.1245",
49
+ "@teambit/dependency-resolver": "1.0.668",
50
+ "@teambit/envs": "1.0.668",
51
+ "@teambit/ui": "1.0.668",
52
+ "@teambit/isolator": "1.0.668",
53
+ "@teambit/component.sources": "0.0.110",
54
+ "@teambit/cache": "0.0.1338",
55
+ "@teambit/graphql": "1.0.668",
56
+ "@teambit/pkg": "1.0.668",
57
+ "@teambit/pubsub": "1.0.668",
58
+ "@teambit/scope": "1.0.668",
59
+ "@teambit/watcher": "1.0.668",
60
+ "@teambit/workspace": "1.0.668",
61
+ "@teambit/compiler": "1.0.668",
62
+ "@teambit/preview.cli.webpack-events-listener": "0.0.178",
63
+ "@teambit/webpack": "1.0.668"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/mime": "2.0.3",
@@ -1,5 +1,7 @@
1
- import { PubsubAspect, PubsubPreview } from '@teambit/pubsub';
2
- import { Slot, SlotRegistry } from '@teambit/harmony';
1
+ import type { PubsubPreview } from '@teambit/pubsub';
2
+ import { PubsubAspect } from '@teambit/pubsub';
3
+ import type { SlotRegistry } from '@teambit/harmony';
4
+ import { Slot } from '@teambit/harmony';
3
5
  import { ComponentID } from '@teambit/component-id';
4
6
  // Using cross-fetch here instead of @pnpm/node-fetch
5
7
  // which is crucial in this context as preview operates from the frontend where proxy and CA cert handling are not required
@@ -9,10 +11,10 @@ import memoize from 'memoizee';
9
11
  import { debounce, intersection, isObject } from 'lodash';
10
12
 
11
13
  import { PreviewNotFound } from './exceptions';
12
- import { PreviewType } from './preview-type';
14
+ import type { PreviewType } from './preview-type';
13
15
  import { PreviewAspect, PreviewRuntime } from './preview.aspect';
14
16
  import { ClickInsideAnIframeEvent } from './events';
15
- import { ModuleFile, PreviewModule } from './types/preview-module';
17
+ import type { ModuleFile, PreviewModule } from './types/preview-module';
16
18
  import { RenderingContext } from './rendering-context';
17
19
  import { fetchComponentAspects } from './gql/fetch-component-aspects';
18
20
  import { PREVIEW_MODULES } from './preview-modules';
@@ -1,14 +1,14 @@
1
1
  import filenamify from 'filenamify';
2
- import { EnvService, ExecutionContext, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
3
- import { EnvPreviewConfig, PreviewMain } from './preview.main.runtime';
2
+ import type { EnvService, ExecutionContext, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
3
+ import type { EnvPreviewConfig, PreviewMain } from './preview.main.runtime';
4
4
  import { BitError } from '@teambit/bit-error';
5
- import { DependencyResolverMain } from '@teambit/dependency-resolver';
6
- import { Logger } from '@teambit/logger';
7
- import { Bundler, BundlerContext, BundlerHtmlConfig, Target } from '@teambit/bundler';
8
- import { Component, ComponentID } from '@teambit/component';
5
+ import type { DependencyResolverMain } from '@teambit/dependency-resolver';
6
+ import type { Logger } from '@teambit/logger';
7
+ import type { Bundler, BundlerContext, BundlerHtmlConfig, Target } from '@teambit/bundler';
8
+ import type { Component, ComponentID } from '@teambit/component';
9
9
  import { join, resolve } from 'path';
10
10
  import { outputFileSync, pathExists, readJsonSync } from 'fs-extra';
11
- import { ScopeMain } from '@teambit/scope';
11
+ import type { ScopeMain } from '@teambit/scope';
12
12
  import { html } from './bundler/html-template';
13
13
 
14
14
  type PreviewTransformationMap = ServiceTransformationMap & {
@@ -1,21 +1,21 @@
1
1
  import { flatten } from 'lodash';
2
+ import type { BundlerMain, ComponentServer } from '@teambit/bundler';
2
3
  import {
3
4
  BundlerAspect,
4
- BundlerMain,
5
- ComponentServer,
6
5
  ComponentServerStartedEvent,
7
6
  ComponentsServerStartedEvent,
8
7
  NewDevServersCreatedEvent,
9
8
  } from '@teambit/bundler';
10
- import { PubsubMain } from '@teambit/pubsub';
11
- import { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';
12
- import { Workspace } from '@teambit/workspace';
9
+ import type { PubsubMain } from '@teambit/pubsub';
10
+ import type { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';
11
+ import type { Workspace } from '@teambit/workspace';
13
12
  import { SubscribeToEvents } from '@teambit/preview.cli.dev-server-events-listener';
14
13
  import { SubscribeToWebpackEvents } from '@teambit/preview.cli.webpack-events-listener';
15
14
  import { CompilationInitiator } from '@teambit/compiler';
16
- import { Logger } from '@teambit/logger';
17
- import { CheckTypes, WatcherMain } from '@teambit/watcher';
18
- import { GraphqlMain } from '@teambit/graphql';
15
+ import type { Logger } from '@teambit/logger';
16
+ import type { WatcherMain } from '@teambit/watcher';
17
+ import { CheckTypes } from '@teambit/watcher';
18
+ import type { GraphqlMain } from '@teambit/graphql';
19
19
  import chalk from 'chalk';
20
20
 
21
21
  type ServerState = {
@@ -1,4 +1,4 @@
1
- import { Command, CommandOptions } from '@teambit/cli';
1
+ import type { Command, CommandOptions } from '@teambit/cli';
2
2
  import type { PreviewMain } from './preview.main.runtime';
3
3
 
4
4
  export class ServePreviewCmd implements Command {
@@ -1,17 +1,18 @@
1
1
  import { join, resolve, basename, dirname } from 'path';
2
2
  import { existsSync, mkdirpSync } from 'fs-extra';
3
- import { Component } from '@teambit/component';
4
- import { ComponentID } from '@teambit/component-id';
3
+ import type { Component } from '@teambit/component';
4
+ import type { ComponentID } from '@teambit/component-id';
5
5
  import { flatten, isEmpty, chunk } from 'lodash';
6
- import { Compiler } from '@teambit/compiler';
6
+ import type { Compiler } from '@teambit/compiler';
7
7
  import type { AbstractVinyl } from '@teambit/component.sources';
8
8
  import type { Capsule } from '@teambit/isolator';
9
- import { ArtifactDefinition, CAPSULE_ARTIFACTS_DIR, ComponentResult } from '@teambit/builder';
9
+ import type { ArtifactDefinition, ComponentResult } from '@teambit/builder';
10
+ import { CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';
10
11
  import { BitError } from '@teambit/bit-error';
11
12
  import type { DependencyResolverMain } from '@teambit/dependency-resolver';
12
- import { Logger } from '@teambit/logger';
13
+ import type { Logger } from '@teambit/logger';
13
14
  import type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap, Target } from '@teambit/bundler';
14
- import { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
15
+ import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
15
16
  import type { PreviewDefinition } from '../preview-definition';
16
17
  import type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';
17
18
  import { generateComponentLink } from './generate-component-link';
@@ -2,16 +2,16 @@ import { join, resolve } from 'path';
2
2
  import { existsSync, mkdirpSync } from 'fs-extra';
3
3
  import { flatten } from 'lodash';
4
4
  import { ComponentMap } from '@teambit/component';
5
- import { Compiler } from '@teambit/compiler';
6
- import { AbstractVinyl } from '@teambit/component.sources';
7
- import { Capsule } from '@teambit/isolator';
8
- import { ArtifactDefinition, ComponentResult } from '@teambit/builder';
9
- import { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
10
- import { DependencyResolverMain } from '@teambit/dependency-resolver';
11
- import { PkgMain } from '@teambit/pkg';
5
+ import type { Compiler } from '@teambit/compiler';
6
+ import type { AbstractVinyl } from '@teambit/component.sources';
7
+ import type { Capsule } from '@teambit/isolator';
8
+ import type { ArtifactDefinition, ComponentResult } from '@teambit/builder';
9
+ import type { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';
10
+ import type { DependencyResolverMain } from '@teambit/dependency-resolver';
11
+ import type { PkgMain } from '@teambit/pkg';
12
12
  import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
13
- import { PreviewDefinition } from '../preview-definition';
14
- import { PreviewMain } from '../preview.main.runtime';
13
+ import type { PreviewDefinition } from '../preview-definition';
14
+ import type { PreviewMain } from '../preview.main.runtime';
15
15
  import { html } from '../bundler/html-template';
16
16
 
17
17
  export const ENV_STRATEGY_ARTIFACT_NAME = 'preview';
@@ -1,6 +1,7 @@
1
1
  import { configBaseFactory } from '@teambit/react.webpack.react-webpack';
2
2
 
3
- import { Configuration, ProvidePlugin } from 'webpack';
3
+ import type { Configuration } from 'webpack';
4
+ import { ProvidePlugin } from 'webpack';
4
5
  import { merge } from 'webpack-merge';
5
6
  import { fallbacksProvidePluginConfig, fallbacks } from '@teambit/webpack';
6
7
  import { WebpackManifestPlugin } from 'webpack-manifest-plugin';