@teambit/preview 1.0.569 → 1.0.571
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/dist/{preview-1741922497171.js → preview-1742209653247.js} +2 -2
- package/dist/strategies/component-strategy.d.ts +4 -2
- package/dist/strategies/component-strategy.js +20 -11
- package/dist/strategies/component-strategy.js.map +1 -1
- package/package.json +22 -22
- package/strategies/component-strategy.ts +24 -10
@@ -1,5 +1,5 @@
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.571/dist/preview.composition.js';
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.571/dist/preview.docs.mdx';
|
3
3
|
|
4
4
|
export const compositions = [compositions_0];
|
5
5
|
export const overview = [overview_0];
|
@@ -6,8 +6,9 @@ import type { BundlerResult, BundlerContext, Target } from '@teambit/bundler';
|
|
6
6
|
import { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
|
7
7
|
import type { PreviewDefinition } from '../preview-definition';
|
8
8
|
import type { PreviewMain } from '../preview.main.runtime';
|
9
|
-
export declare const
|
10
|
-
export declare const
|
9
|
+
export declare const PREVIEW_GLOBAL_NAME_SUFFIX = "preview";
|
10
|
+
export declare const PREVIEW_CHUNK_SUFFIX = "preview-chunk";
|
11
|
+
export declare const COMPONENT_CHUNK_SUFFIX = "component-chunk";
|
11
12
|
export declare const PREVIEW_CHUNK_FILENAME_SUFFIX = "preview.js";
|
12
13
|
export declare const COMPONENT_CHUNK_FILENAME_SUFFIX = "component.js";
|
13
14
|
export declare const COMPONENT_STRATEGY_SIZE_KEY_NAME = "size";
|
@@ -29,6 +30,7 @@ export declare class ComponentBundlingStrategy implements BundlingStrategy {
|
|
29
30
|
computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]): Promise<Target[]>;
|
30
31
|
computeComponentEntry(previewDefs: PreviewDefinition[], component: Component, context: ComputeTargetsContext): Promise<ComponentEntry>;
|
31
32
|
private getComponentChunkId;
|
33
|
+
private getComponentChunkGlobalName;
|
32
34
|
private getComponentChunkFileName;
|
33
35
|
private getAssetAbsolutePath;
|
34
36
|
private getAssetFilename;
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.PREVIEW_CHUNK_SUFFIX = exports.PREVIEW_CHUNK_FILENAME_SUFFIX = exports.ComponentBundlingStrategy = exports.COMPONENT_STRATEGY_SIZE_KEY_NAME = exports.COMPONENT_STRATEGY_ARTIFACT_NAME = exports.COMPONENT_CHUNK_SUFFIX = exports.COMPONENT_CHUNK_FILENAME_SUFFIX = void 0;
|
6
|
+
exports.PREVIEW_GLOBAL_NAME_SUFFIX = exports.PREVIEW_CHUNK_SUFFIX = exports.PREVIEW_CHUNK_FILENAME_SUFFIX = exports.ComponentBundlingStrategy = exports.COMPONENT_STRATEGY_SIZE_KEY_NAME = exports.COMPONENT_STRATEGY_ARTIFACT_NAME = exports.COMPONENT_CHUNK_SUFFIX = exports.COMPONENT_CHUNK_FILENAME_SUFFIX = void 0;
|
7
7
|
function _path() {
|
8
8
|
const data = require("path");
|
9
9
|
_path = function () {
|
@@ -56,10 +56,11 @@ function _exceptions() {
|
|
56
56
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
57
57
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
58
58
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
59
|
-
const
|
60
|
-
const
|
61
|
-
const
|
62
|
-
const
|
59
|
+
const PREVIEW_GLOBAL_NAME_SUFFIX = exports.PREVIEW_GLOBAL_NAME_SUFFIX = 'preview';
|
60
|
+
const PREVIEW_CHUNK_SUFFIX = exports.PREVIEW_CHUNK_SUFFIX = 'preview-chunk';
|
61
|
+
const COMPONENT_CHUNK_SUFFIX = exports.COMPONENT_CHUNK_SUFFIX = 'component-chunk';
|
62
|
+
const PREVIEW_CHUNK_FILENAME_SUFFIX = exports.PREVIEW_CHUNK_FILENAME_SUFFIX = 'preview.js';
|
63
|
+
const COMPONENT_CHUNK_FILENAME_SUFFIX = exports.COMPONENT_CHUNK_FILENAME_SUFFIX = 'component.js';
|
63
64
|
const COMPONENT_STRATEGY_SIZE_KEY_NAME = exports.COMPONENT_STRATEGY_SIZE_KEY_NAME = 'size';
|
64
65
|
const COMPONENT_STRATEGY_ARTIFACT_NAME = exports.COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';
|
65
66
|
/**
|
@@ -148,7 +149,11 @@ class ComponentBundlingStrategy {
|
|
148
149
|
const componentDir = capsule?.path || '';
|
149
150
|
const chunks = {
|
150
151
|
componentPreview: this.getComponentChunkId(component.id, 'preview'),
|
151
|
-
component: context.splitComponentBundle ? component.id
|
152
|
+
component: context.splitComponentBundle ? this.getComponentChunkId(component.id, 'component') : undefined
|
153
|
+
};
|
154
|
+
const libNames = {
|
155
|
+
componentPreview: this.getComponentChunkGlobalName(component.id, 'preview'),
|
156
|
+
component: context.splitComponentBundle ? this.getComponentChunkGlobalName(component.id, 'component') : undefined
|
152
157
|
};
|
153
158
|
const entries = {
|
154
159
|
[chunks.componentPreview]: {
|
@@ -159,12 +164,12 @@ class ComponentBundlingStrategy {
|
|
159
164
|
import: componentPreviewPath,
|
160
165
|
dependOn: chunks.component,
|
161
166
|
library: {
|
162
|
-
name:
|
167
|
+
name: libNames.componentPreview,
|
163
168
|
type: 'umd'
|
164
169
|
}
|
165
170
|
}
|
166
171
|
};
|
167
|
-
if (chunks.component) {
|
172
|
+
if (chunks.component && libNames.component) {
|
168
173
|
entries[chunks.component] = {
|
169
174
|
filename: this.getComponentChunkFileName(component.id.toString({
|
170
175
|
fsCompatible: true,
|
@@ -173,7 +178,7 @@ class ComponentBundlingStrategy {
|
|
173
178
|
dependOn: undefined,
|
174
179
|
import: componentPath,
|
175
180
|
library: {
|
176
|
-
name:
|
181
|
+
name: libNames.component,
|
177
182
|
type: 'umd'
|
178
183
|
}
|
179
184
|
};
|
@@ -185,7 +190,11 @@ class ComponentBundlingStrategy {
|
|
185
190
|
};
|
186
191
|
}
|
187
192
|
getComponentChunkId(componentId, type) {
|
188
|
-
const id = type === 'component' ? componentId.toStringWithoutVersion() : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;
|
193
|
+
const id = type === 'component' ? `${componentId.toStringWithoutVersion()}-${COMPONENT_CHUNK_SUFFIX}` : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;
|
194
|
+
return id;
|
195
|
+
}
|
196
|
+
getComponentChunkGlobalName(componentId, type) {
|
197
|
+
const id = type === 'component' ? componentId.toStringWithoutVersion() : `${componentId.toStringWithoutVersion()}-${PREVIEW_GLOBAL_NAME_SUFFIX}`;
|
189
198
|
return id;
|
190
199
|
}
|
191
200
|
getComponentChunkFileName(idstr, type) {
|
@@ -228,7 +237,7 @@ class ComponentBundlingStrategy {
|
|
228
237
|
|
229
238
|
findAssetsForComponent(component, assets, entriesAssetsMap) {
|
230
239
|
if (!assets) return undefined;
|
231
|
-
const componentEntryId = component.id
|
240
|
+
const componentEntryId = this.getComponentChunkId(component.id, 'component');
|
232
241
|
const componentPreviewEntryId = this.getComponentChunkId(component.id, 'preview');
|
233
242
|
const componentFiles = entriesAssetsMap[componentEntryId]?.assets || [];
|
234
243
|
const componentAuxiliaryFiles = entriesAssetsMap[componentEntryId]?.auxiliaryAssets || [];
|
@@ -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_CHUNK_SUFFIX","exports","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","toStringWithoutVersion","undefined","filename","getComponentChunkFileName","fsCompatible","ignoreVersion","import","dependOn","library","name","type","componentId","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_CHUNK_SUFFIX = 'preview';\nexport const COMPONENT_CHUNK_SUFFIX = 'component';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = `${PREVIEW_CHUNK_SUFFIX}.js`;\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = `${COMPONENT_CHUNK_SUFFIX}.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 ? component.id.toStringWithoutVersion() : 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: chunks.componentPreview, type: 'umd' },\n },\n };\n\n if (chunks.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: chunks.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()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_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 = component.id.toStringWithoutVersion();\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 = component.id.toStringWithoutVersion();\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 { 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 = component.id.toStringWithoutVersion();\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":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAI,SAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,QAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,UAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,SAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAM,uBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,sBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,YAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,WAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0D,SAAAQ,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAEnD,MAAMgB,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,SAAS;AAC5C,MAAME,oBAAoB,GAAAD,OAAA,CAAAC,oBAAA,GAAG,eAAe;AAC5C,MAAMC,sBAAsB,GAAAF,OAAA,CAAAE,sBAAA,GAAG,iBAAiB;AAChD,MAAMC,6BAA6B,GAAAH,OAAA,CAAAG,6BAAA,GAAG,YAAY;AAClD,MAAMC,+BAA+B,GAAAJ,OAAA,CAAAI,+BAAA,GAAG,cAAc;AAEtD,MAAMC,gCAAgC,GAAAL,OAAA,CAAAK,gCAAA,GAAG,MAAM;AAC/C,MAAMC,gCAAgC,GAAAN,OAAA,CAAAM,gCAAA,GAAG,mBAAmB;AAOnE;AACA;AACA;AACO,MAAMC,yBAAyB,CAA6B;EAGjEC,WAAWA,CACDC,OAAoB,EACpBC,kBAA0C,EAC1CC,MAAc,EACtB;IAAA,KAHQF,OAAoB,GAApBA,OAAoB;IAAA,KACpBC,kBAA0C,GAA1CA,kBAA0C;IAAA,KAC1CC,MAAc,GAAdA,MAAc;IAAA/B,eAAA,eALjB,WAAW;EAMf;EAEH,MAAMgC,cAAcA,CAACC,OAA8B,EAAEC,WAAgC,EAAqB;IACxG,MAAMC,UAAU,GAAG,IAAI,CAACC,aAAa,CAACH,OAAO,CAAC;IAC9C,IAAI,CAAC,IAAAI,qBAAU,EAACF,UAAU,CAAC,EAAE,IAAAG,qBAAU,EAACH,UAAU,CAAC;;IAEnD;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA,MAAMI,cAAc,GAAGN,OAAO,CAACO,cAAc,CAACC,uBAAuB,CAACC,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,CAAC;IAEzG,MAAMC,UAAU,GAAG,MAAMC,OAAO,CAACC,GAAG,CAClCR,cAAc,CAACG,GAAG,CAAEE,SAAS,IAAK;MAChC,OAAO,IAAI,CAACI,qBAAqB,CAACd,WAAW,EAAEU,SAAS,EAAEX,OAAO,CAAC;IACpE,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;IAED,MAAMgB,SAAS,GAAG,IAAI,CAACpB,OAAO,CAACqB,MAAM,CAACC,YAAY;IAElD,MAAMC,MAAM,GAAGH,SAAS,GAAG,IAAAI,eAAK,EAACR,UAAU,EAAEI,SAAS,CAAC,GAAG,CAACJ,UAAU,CAAC;IAEtE,MAAMS,KAAK,GAAG,MAAM,IAAI,CAACxB,kBAAkB,CAACyB,iCAAiC,CAACtB,OAAO,CAACuB,aAAa,CAACC,GAAG,CAAC;IAExG,MAAMC,OAAO,GAAGN,MAAM,CAACV,GAAG,CAAEiB,YAAY,IAAK;MAC3C,MAAMC,OAAwB,GAAG,CAAC,CAAC;MACnC,MAAMC,UAAuB,GAAG,EAAE;MAClC,MAAMC,qBAAqB,GAAG,CAAC,CAAC;MAChCH,YAAY,CAACI,OAAO,CAAEC,KAAK,IAAK;QAC9B3D,MAAM,CAAC4D,MAAM,CAACL,OAAO,EAAEI,KAAK,CAACJ,OAAO,CAAC;QACrCC,UAAU,CAACK,IAAI,CAACF,KAAK,CAACpB,SAAS,CAAC;QAChCkB,qBAAqB,CAACE,KAAK,CAACpB,SAAS,CAACuB,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAC,GAAGJ,KAAK,CAACK,YAAY;MAC3E,CAAC,CAAC;MAEF,OAAO;QACLT,OAAO;QACPC,UAAU;QACVC,qBAAqB;QACrB3B,UAAU;QACVmC,WAAW,EAAErC,OAAO,CAACsC,UAAU,CAACC,mBAAmB,CAACC,UAAU;QAC9DC,gBAAgB,EAAEpB,KAAK;QACvBqB,qBAAqB,EAAE,IAAI;QAC3BC,2BAA2B,EAAE;MAC/B,CAAC;IACH,CAAC,CAAC;IAEF,OAAOlB,OAAO;IACd;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACF;EAEA,MAAMV,qBAAqBA,CACzBd,WAAgC,EAChCU,SAAoB,EACpBX,OAA8B,EACL;IACzB,MAAM4C,oBAAoB,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC5C,WAAW,EAAED,OAAO,EAAEW,SAAS,CAAC;IACrF,MAAM,CAACmC,aAAa,CAAC,GAAG,IAAI,CAACC,QAAQ,CAAC/C,OAAO,EAAEW,SAAS,EAAE,CAACA,SAAS,CAACqC,QAAQ,CAAC,CAAC;IAC/E,MAAMtC,OAAO,GAAGV,OAAO,CAACO,cAAc,CAAC0C,aAAa,CAACC,UAAU,CAACvC,SAAS,CAACuB,EAAE,CAAC;IAC7E,MAAME,YAAY,GAAG1B,OAAO,EAAEyC,IAAI,IAAI,EAAE;IAExC,MAAMhC,MAAM,GAAG;MACbiC,gBAAgB,EAAE,IAAI,CAACC,mBAAmB,CAAC1C,SAAS,CAACuB,EAAE,EAAE,SAAS,CAAC;MACnEvB,SAAS,EAAEX,OAAO,CAACsD,oBAAoB,GAAG,IAAI,CAACD,mBAAmB,CAAC1C,SAAS,CAACuB,EAAE,EAAE,WAAW,CAAC,GAAGqB;IAClG,CAAC;IAED,MAAMC,QAAQ,GAAG;MACfJ,gBAAgB,EAAE,IAAI,CAACK,2BAA2B,CAAC9C,SAAS,CAACuB,EAAE,EAAE,SAAS,CAAC;MAC3EvB,SAAS,EAAEX,OAAO,CAACsD,oBAAoB,GAAG,IAAI,CAACG,2BAA2B,CAAC9C,SAAS,CAACuB,EAAE,EAAE,WAAW,CAAC,GAAGqB;IAC1G,CAAC;IAED,MAAM5B,OAAO,GAAG;MACd,CAACR,MAAM,CAACiC,gBAAgB,GAAG;QACzBM,QAAQ,EAAE,IAAI,CAACC,yBAAyB,CACtChD,SAAS,CAACuB,EAAE,CAACC,QAAQ,CAAC;UACpByB,YAAY,EAAE,IAAI;UAClBC,aAAa,EAAE;QACjB,CAAC,CAAC,EACF,SACF,CAAC;QACDC,MAAM,EAAElB,oBAAoB;QAC5BmB,QAAQ,EAAE5C,MAAM,CAACR,SAAS;QAC1BqD,OAAO,EAAE;UAAEC,IAAI,EAAET,QAAQ,CAACJ,gBAAgB;UAAEc,IAAI,EAAE;QAAM;MAC1D;IACF,CAAC;IAED,IAAI/C,MAAM,CAACR,SAAS,IAAI6C,QAAQ,CAAC7C,SAAS,EAAE;MAC1CgB,OAAO,CAACR,MAAM,CAACR,SAAS,CAAC,GAAG;QAC1B+C,QAAQ,EAAE,IAAI,CAACC,yBAAyB,CACtChD,SAAS,CAACuB,EAAE,CAACC,QAAQ,CAAC;UACpByB,YAAY,EAAE,IAAI;UAClBC,aAAa,EAAE;QACjB,CAAC,CAAC,EACF,WACF,CAAC;QACDE,QAAQ,EAAER,SAAS;QACnBO,MAAM,EAAEhB,aAAa;QACrBkB,OAAO,EAAE;UAAEC,IAAI,EAAET,QAAQ,CAAC7C,SAAS;UAAEuD,IAAI,EAAE;QAAM;MACnD,CAAC;IACH;IAEA,OAAO;MAAEvD,SAAS;MAAEgB,OAAO;MAAES;IAAa,CAAC;EAC7C;EAEQiB,mBAAmBA,CAACc,WAAwB,EAAED,IAA6B,EAAE;IACnF,MAAMhC,EAAE,GACNgC,IAAI,KAAK,WAAW,GAChB,GAAGC,WAAW,CAACC,sBAAsB,CAAC,CAAC,IAAI/E,sBAAsB,EAAE,GACnE,GAAG8E,WAAW,CAACC,sBAAsB,CAAC,CAAC,IAAIhF,oBAAoB,EAAE;IACvE,OAAO8C,EAAE;EACX;EAEQuB,2BAA2BA,CAACU,WAAwB,EAAED,IAA6B,EAAE;IAC3F,MAAMhC,EAAE,GACNgC,IAAI,KAAK,WAAW,GAChBC,WAAW,CAACC,sBAAsB,CAAC,CAAC,GACpC,GAAGD,WAAW,CAACC,sBAAsB,CAAC,CAAC,IAAIlF,0BAA0B,EAAE;IAC7E,OAAOgD,EAAE;EACX;EAEQyB,yBAAyBA,CAACU,KAAa,EAAEH,IAA6B,EAAE;IAC9E,MAAMI,MAAM,GAAGJ,IAAI,KAAK,WAAW,GAAG3E,+BAA+B,GAAGD,6BAA6B;IACrG,OAAO,GAAG+E,KAAK,IAAIC,MAAM,EAAE;EAC7B;EAEQC,oBAAoBA,CAACvE,OAAuB,EAAEwE,KAAY,EAAU;IAC1E,MAAMrB,IAAI,GAAG,IAAI,CAAChD,aAAa,CAACH,OAAO,CAAC;IACxC,OAAO,IAAAyE,YAAI,EAACtB,IAAI,EAAE,QAAQ,EAAE,IAAI,CAACuB,gBAAgB,CAACF,KAAK,CAAC,CAAC;EAC3D;EAEQE,gBAAgBA,CAACF,KAAY,EAAU;IAC7C;IACA,MAAM,CAACP,IAAI,CAAC,GAAGO,KAAK,CAACP,IAAI,CAACU,KAAK,CAAC,GAAG,CAAC;IACpC,OAAOV,IAAI;EACb;EAEAW,oBAAoBA,CAAC5E,OAAuB,EAAE6E,MAAqB,EAAE;IACnE7E,OAAO,CAAC4B,UAAU,CAACE,OAAO,CAAEnB,SAAS,IAAK;MACxC,MAAMD,OAAO,GAAGV,OAAO,CAACO,cAAc,CAAC0C,aAAa,CAACC,UAAU,CAACvC,SAAS,CAACuB,EAAE,CAAC;MAC7E,IAAI,CAACxB,OAAO,EAAE;MACd,MAAMoE,KAAK,GAAG,IAAI,CAACC,sBAAsB,CAACpE,SAAS,EAAEkE,MAAM,CAACG,MAAM,EAAEH,MAAM,CAACI,gBAAgB,IAAI,CAAC,CAAC,CAAC;MAClG,IAAI,CAACH,KAAK,EAAE;MACZ,MAAMI,mBAAmB,GAAG,IAAAT,YAAI,EAAC/D,OAAO,CAACyC,IAAI,EAAE,IAAI,CAACgC,oBAAoB,CAAC,CAAC,CAAC;MAC3E;MACA,IAAA9E,qBAAU,EAAC6E,mBAAmB,CAAC;MAE/BJ,KAAK,CAAChD,OAAO,CAAE0C,KAAK,IAAK;QACvB,MAAMY,QAAQ,GAAG,IAAI,CAACb,oBAAoB,CAACvE,OAAO,EAAEwE,KAAK,CAAC;QAC1D,IAAI,CAAC,IAAApE,qBAAU,EAACgF,QAAQ,CAAC,EAAE;UACzB,MAAM,KAAIC,uCAAyB,EAAC1E,SAAS,CAACuB,EAAE,EAAEkD,QAAQ,CAAC;QAC7D;QACA,MAAME,YAAY,GAAG,IAAAb,YAAI,EAACS,mBAAmB,EAAE,IAAI,CAACR,gBAAgB,CAACF,KAAK,CAAC,CAAC;QAC5E,IAAAnE,qBAAU,EAAC,IAAAkF,eAAO,EAACD,YAAY,CAAC,CAAC;QACjC5E,OAAO,CAAC8E,EAAE,CAACC,YAAY,CAACL,QAAQ,EAAEE,YAAY,CAAC;MACjD,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA;EACA;;EAEQP,sBAAsBA,CAC5BpE,SAAoB,EACpBqE,MAAe,EACfC,gBAAkC,EACb;IACrB,IAAI,CAACD,MAAM,EAAE,OAAOzB,SAAS;IAE7B,MAAMmC,gBAAgB,GAAG,IAAI,CAACrC,mBAAmB,CAAC1C,SAAS,CAACuB,EAAE,EAAE,WAAW,CAAC;IAC5E,MAAMyD,uBAAuB,GAAG,IAAI,CAACtC,mBAAmB,CAAC1C,SAAS,CAACuB,EAAE,EAAE,SAAS,CAAC;IACjF,MAAM0D,cAAc,GAAGX,gBAAgB,CAACS,gBAAgB,CAAC,EAAEV,MAAM,IAAI,EAAE;IACvE,MAAMa,uBAAuB,GAAGZ,gBAAgB,CAACS,gBAAgB,CAAC,EAAEI,eAAe,IAAI,EAAE;IACzF,MAAMC,qBAAqB,GAAGd,gBAAgB,CAACU,uBAAuB,CAAC,EAAEX,MAAM,IAAI,EAAE;IACrF,MAAMgB,8BAA8B,GAAGf,gBAAgB,CAACU,uBAAuB,CAAC,EAAEG,eAAe,IAAI,EAAE;IAEvG,MAAMhB,KAAK,GAAGc,cAAc,CACzBK,MAAM,CAACJ,uBAAuB,CAAC,CAC/BI,MAAM,CAACF,qBAAqB,CAAC,CAC7BE,MAAM,CAACD,8BAA8B,CAAC;IACzC,OAAOlB,KAAK;EACd;EAEQK,oBAAoBA,CAAA,EAAG;IAC7B,OAAO,IAAAV,YAAI,EAACyB,gCAAqB,EAAE,SAAS,CAAC;EAC/C;EAEQC,wBAAwBA,CAC9BnG,OAAuB,EACvB6E,MAAqB,EACrBlE,SAAoB,EACM;IAC1B,MAAM+E,gBAAgB,GAAG/E,SAAS,CAACuB,EAAE,CAACkC,sBAAsB,CAAC,CAAC;IAC9D,IAAI,CAACS,MAAM,EAAEI,gBAAgB,IAAI,CAACJ,MAAM,EAAEI,gBAAgB,CAACS,gBAAgB,CAAC,EAAE;MAC5E,OAAO,CAAC,CAAC;IACX;IACA,MAAMZ,KAAK,GAAG,CAACD,MAAM,CAACI,gBAAgB,CAACS,gBAAgB,CAAC,EAAEV,MAAM,IAAI,EAAE,EAAEvE,GAAG,CAAE2F,IAAI,IAAK;MACpF,MAAMC,OAAO,GAAG,SAAS;MACzB,MAAMpC,IAAI,GAAGmC,IAAI,CAACnC,IAAI,GAAG,IAAAqC,gBAAQ,EAACF,IAAI,CAACnC,IAAI,CAAC,GAAGoC,OAAO;MACtD,IAAIpC,IAAI,KAAKoC,OAAO,EAAE;QACpB,IAAI,CAACvG,MAAM,CAACyG,IAAI,CAAC,iEAAiEH,IAAI,EAAE,CAAC;MAC3F;MACA,OAAO;QACLnC,IAAI;QACJuC,IAAI,EAAEJ,IAAI,CAACI,IAAI;QACfC,cAAc,EAAEL,IAAI,CAACK;MACvB,CAAC;IACH,CAAC,CAAC;IACF,MAAMC,cAAc,GAAG7B,MAAM,CAACI,gBAAgB,CAACS,gBAAgB,CAAC,EAAEiB,UAAU,IAAI,CAAC;IACjF,MAAMC,oBAAoB,GAAG/B,MAAM,CAACI,gBAAgB,CAACS,gBAAgB,CAAC,EAAEmB,oBAAoB,IAAI,CAAC;IACjG,MAAM7B,MAAM,GAAG,CAACH,MAAM,CAACI,gBAAgB,CAACS,gBAAgB,CAAC,EAAEI,eAAe,IAAI,EAAE,EAAErF,GAAG,CAAE2F,IAAI,IAAK;MAC9F,MAAMC,OAAO,GAAG,SAAS;MACzB,MAAMpC,IAAI,GAAGmC,IAAI,CAACnC,IAAI,GAAG,IAAAqC,gBAAQ,EAACF,IAAI,CAACnC,IAAI,CAAC,GAAGoC,OAAO;MACtD,IAAIpC,IAAI,KAAKoC,OAAO,EAAE;QACpB,IAAI,CAACvG,MAAM,CAACyG,IAAI,CAAC,2EAA2EH,IAAI,EAAE,CAAC;MACrG;MACA,OAAO;QACLnC,IAAI;QACJuC,IAAI,EAAEJ,IAAI,CAACI,IAAI;QACfC,cAAc,EAAEL,IAAI,CAACK;MACvB,CAAC;IACH,CAAC,CAAC;IACF,MAAMK,eAAe,GAAGjC,MAAM,CAACI,gBAAgB,CAACS,gBAAgB,CAAC,EAAEqB,mBAAmB,IAAI,CAAC;IAC3F,MAAMC,qBAAqB,GAAGnC,MAAM,CAACI,gBAAgB,CAACS,gBAAgB,CAAC,EAAEuB,6BAA6B,IAAI,CAAC;IAC3G,MAAMC,SAAS,GAAGR,cAAc,GAAGI,eAAe;IAClD,MAAMK,eAAe,GAAGP,oBAAoB,GAAGI,qBAAqB;IAEpE,MAAMI,QAAQ,GAAG;MACf,CAAC5H,gCAAgC,GAAG;QAClCsF,KAAK;QACLE,MAAM;QACNqC,UAAU,EAAEX,cAAc;QAC1BY,WAAW,EAAER,eAAe;QAC5BS,KAAK,EAAEL,SAAS;QAChBN,oBAAoB;QACpBI,qBAAqB;QACrBG;MACF;IACF,CAAC;IAED,OAAOC,QAAQ;EACjB;EAEA,MAAMI,cAAcA,CAACxH,OAAuB,EAAEyH,OAAwB,EAAE;IACtE,MAAMC,iBAAiB,GAAG,IAAAC,iBAAO,EAC/B,MAAM9G,OAAO,CAACC,GAAG,CAAC2G,OAAO,CAAChH,GAAG,CAAEoE,MAAM,IAAK,IAAI,CAAC+C,mBAAmB,CAAC5H,OAAO,EAAE6E,MAAM,CAAC,CAAC,CACtF,CAAC;IAED,MAAMgD,SAAS,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;IAEvC,OAAO;MACLJ,iBAAiB;MACjBG;IACF,CAAC;EACH;EAEA,MAAMD,mBAAmBA,CAAC5H,OAAuB,EAAE6E,MAAqB,EAAE;IACxE,IAAI,IAAAkD,iBAAO,EAAClD,MAAM,CAACmD,MAAM,CAAC,EAAE;MAC1B;MACA,IAAI,CAACpD,oBAAoB,CAAC5E,OAAO,EAAE6E,MAAM,CAAC;IAC5C;IAEA,MAAM6C,iBAAoC,GAAG7C,MAAM,CAACjD,UAAU,CAACnB,GAAG,CAAEE,SAAS,IAAK;MAChF,MAAMyG,QAAQ,GAAG,IAAI,CAACjB,wBAAwB,CAACnG,OAAO,EAAE6E,MAAM,EAAElE,SAAS,CAAC;MAC1E,OAAO;QACLA,SAAS;QACTyG,QAAQ;QACRY,MAAM,EAAEnD,MAAM,CAACmD,MAAM,CAACvH,GAAG,CAAEwH,GAAG,IAAM,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAACC,OAAQ,CAAC;QACjFC,OAAO,EAAEtD,MAAM,CAACuD,QAAQ;QACxBC,SAAS,EAAExD,MAAM,CAACwD,SAAS;QAC3BC,OAAO,EAAEzD,MAAM,CAACyD;MAClB,CAAC;IACH,CAAC,CAAC;IAEF,OAAOZ,iBAAiB;EAC1B;EAEQI,cAAcA,CAAA,EAAyB;IAC7C;IACA;IACA;;IAEA,OAAO,CACL;MACE7D,IAAI,EAAExE,gCAAgC;MACtC8I,YAAY,EAAE,CAAC,IAAI,CAACpD,oBAAoB,CAAC,CAAC;MAC1C;IACF,CAAC,CACF;EACH;EAEAqD,UAAUA,CAACxI,OAA8B,EAAE;IACzC,MAAMyI,OAAO,GAAGzI,OAAO,CAACkC,EAAE,CAACwG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;IAC7C,OAAO,GAAGD,OAAO,UAAU;EAC7B;EAEQtI,aAAaA,CAACH,OAA8B,EAAE;IACpD,OAAO,IAAA2I,eAAO,EAAC,GAAG3I,OAAO,CAACO,cAAc,CAACqI,eAAe,IAAI,IAAI,CAACJ,UAAU,CAACxI,OAAO,CAAC,EAAE,CAAC;EACzF;EAEQ+C,QAAQA,CAAC/C,OAA8B,EAAEW,SAAoB,EAAEmE,KAAsB,EAAE;IAC7F,MAAMpE,OAAO,GAAGV,OAAO,CAACO,cAAc,CAAC0C,aAAa,CAACC,UAAU,CAACvC,SAAS,CAACuB,EAAE,CAAC;IAC7E,IAAI,CAACxB,OAAO,EAAE,OAAO,EAAE;IACvB,MAAMmI,QAAkB,GAAG7I,OAAO,CAACwB,GAAG,CAACsH,WAAW,GAAG,CAAC;IACtD,OAAOhE,KAAK,CAACrE,GAAG,CAAE2F,IAAI,IAAK,IAAA3B,YAAI,EAAC/D,OAAO,CAACyC,IAAI,EAAE0F,QAAQ,EAAEE,oBAAoB,CAAC3C,IAAI,CAAC4C,QAAQ,CAAC,IAAI5C,IAAI,CAAC4C,QAAQ,CAAC,CAAC;EAChH;EAEQC,sBAAsBA,CAACvI,OAAgB,EAAEV,OAA8B,EAAE;IAC/E,MAAMkJ,WAAW,GAAG,IAAAP,eAAO,EAAC,GAAGjI,OAAO,CAACyC,IAAI,EAAE,CAAC;IAC9C,MAAM0F,QAAkB,GAAG7I,OAAO,CAACwB,GAAG,CAACsH,WAAW,CAAC,CAAC;IACpD,MAAMK,OAAO,GAAGN,QAAQ,CAACO,UAAU,GAAG,CAAC,IAAI,MAAM;IACjD,OAAO,IAAA3E,YAAI,EAACyE,WAAW,EAAEC,OAAO,CAAC;EACnC;EAEA,MAActG,YAAYA,CACxBwG,IAAyB,EACzBrJ,OAA8B,EAC9BW,SAAoB,EACH;IACjB;IACA,MAAMD,OAAO,GAAGV,OAAO,CAACO,cAAc,CAAC0C,aAAa,CAACC,UAAU,CAACvC,SAAS,CAACuB,EAAE,CAAC;IAC7E;IACA,IAAI,CAACxB,OAAO,EACV,MAAM,KAAI4I,oBAAQ,EAChB,wCAAwC3I,SAAS,CAACuB,EAAE,CAACC,QAAQ,CAAC,CAAC,iCACjE,CAAC;IACH,MAAMoH,iBAAiB,GAAGF,IAAI,CAAC5I,GAAG,CAAC,MAAO+I,UAAU,IAAK;MACvD,MAAMC,SAAS,GAAG,MAAMD,UAAU,CAACE,YAAY,CAAC,CAAC/I,SAAS,CAAC,CAAC;MAC5D,MAAMyG,QAAQ,GAAGoC,UAAU,CAACG,WAAW,GAAG,MAAMH,UAAU,CAACG,WAAW,CAAChJ,SAAS,CAAC,GAAG4C,SAAS;MAC7F,MAAMqG,UAAU,GAAGH,SAAS,CAACI,GAAG,CAAClJ,SAAS,CAAC;MAC3C,IAAI,CAACiJ,UAAU,IAAI,CAAClJ,OAAO,EAAE,OAAO;QAAEoJ,MAAM,EAAEN,UAAU,CAACM,MAAM;QAAEC,KAAK,EAAE;MAAG,CAAC;MAE5E,MAAM,GAAGjF,KAAK,CAAC,GAAG8E,UAAU;MAC5B,MAAMI,aAAa,GAAG,IAAI,CAACjH,QAAQ,CAAC/C,OAAO,EAAEW,SAAS,EAAEmE,KAAK,CAAC;MAE9D,OAAO;QACLgF,MAAM,EAAEN,UAAU,CAACM,MAAM;QACzBC,KAAK,EAAEC,aAAa;QACpB5C;MACF,CAAC;IACH,CAAC,CAAC;IAEF,MAAM6C,UAAU,GAAG,MAAMpJ,OAAO,CAACC,GAAG,CAACyI,iBAAiB,CAAC;IAEvD,MAAMW,QAAQ,GAAG,IAAAC,8CAAqB,EAACF,UAAU,CAAC;IAClD,MAAMG,SAAS,GAAG,IAAI,CAACnB,sBAAsB,CAACvI,OAAO,EAAEV,OAAO,CAAC;IAE/D,OAAO,IAAI,CAACJ,OAAO,CAACyK,iBAAiB,CAACH,QAAQ,EAAEE,SAAS,EAAE,SAAS,CAAC;EACvE;AACF;AAACjL,OAAA,CAAAO,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/preview",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.571",
|
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.
|
9
|
+
"version": "1.0.571"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"mime": "2.5.2",
|
@@ -31,36 +31,36 @@
|
|
31
31
|
"@teambit/bit-error": "0.0.404",
|
32
32
|
"@teambit/preview.cli.dev-server-events-listener": "0.0.1",
|
33
33
|
"@teambit/react.webpack.react-webpack": "1.0.42",
|
34
|
-
"@teambit/express": "0.0.
|
35
|
-
"@teambit/logger": "0.0.
|
34
|
+
"@teambit/express": "0.0.1247",
|
35
|
+
"@teambit/logger": "0.0.1241",
|
36
36
|
"@teambit/ui-foundation.ui.pages.static-error": "0.0.106",
|
37
|
-
"@teambit/builder": "1.0.
|
38
|
-
"@teambit/bundler": "1.0.
|
39
|
-
"@teambit/component": "1.0.
|
37
|
+
"@teambit/builder": "1.0.571",
|
38
|
+
"@teambit/bundler": "1.0.571",
|
39
|
+
"@teambit/component": "1.0.571",
|
40
40
|
"@teambit/preview.ui.component-preview": "1.0.21",
|
41
|
-
"@teambit/aspect-loader": "1.0.
|
42
|
-
"@teambit/cli": "0.0.
|
43
|
-
"@teambit/dependency-resolver": "1.0.
|
44
|
-
"@teambit/envs": "1.0.
|
41
|
+
"@teambit/aspect-loader": "1.0.571",
|
42
|
+
"@teambit/cli": "0.0.1148",
|
43
|
+
"@teambit/dependency-resolver": "1.0.571",
|
44
|
+
"@teambit/envs": "1.0.571",
|
45
45
|
"@teambit/toolbox.path.to-windows-compatible-path": "0.0.500",
|
46
46
|
"@teambit/legacy.constants": "0.0.11",
|
47
47
|
"@teambit/toolbox.crypto.sha1": "0.0.7",
|
48
|
-
"@teambit/ui": "1.0.
|
49
|
-
"@teambit/isolator": "1.0.
|
48
|
+
"@teambit/ui": "1.0.571",
|
49
|
+
"@teambit/isolator": "1.0.571",
|
50
50
|
"@teambit/harmony.modules.harmony-root-generator": "0.0.16",
|
51
51
|
"@teambit/component.sources": "0.0.95",
|
52
52
|
"@teambit/toolbox.path.path": "0.0.8",
|
53
|
-
"@teambit/cache": "0.0.
|
54
|
-
"@teambit/graphql": "1.0.
|
53
|
+
"@teambit/cache": "0.0.1241",
|
54
|
+
"@teambit/graphql": "1.0.571",
|
55
55
|
"@teambit/harmony.modules.feature-toggle": "0.0.19",
|
56
|
-
"@teambit/pkg": "1.0.
|
57
|
-
"@teambit/pubsub": "1.0.
|
58
|
-
"@teambit/scope": "1.0.
|
59
|
-
"@teambit/watcher": "1.0.
|
60
|
-
"@teambit/workspace": "1.0.
|
61
|
-
"@teambit/compiler": "1.0.
|
56
|
+
"@teambit/pkg": "1.0.571",
|
57
|
+
"@teambit/pubsub": "1.0.571",
|
58
|
+
"@teambit/scope": "1.0.571",
|
59
|
+
"@teambit/watcher": "1.0.571",
|
60
|
+
"@teambit/workspace": "1.0.571",
|
61
|
+
"@teambit/compiler": "1.0.571",
|
62
62
|
"@teambit/preview.cli.webpack-events-listener": "0.0.177",
|
63
|
-
"@teambit/webpack": "1.0.
|
63
|
+
"@teambit/webpack": "1.0.571"
|
64
64
|
},
|
65
65
|
"devDependencies": {
|
66
66
|
"@types/mime": "2.0.3",
|
@@ -17,10 +17,11 @@ import type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runt
|
|
17
17
|
import { generateComponentLink } from './generate-component-link';
|
18
18
|
import { PreviewOutputFileNotFound } from '../exceptions';
|
19
19
|
|
20
|
-
export const
|
21
|
-
export const
|
22
|
-
export const
|
23
|
-
export const
|
20
|
+
export const PREVIEW_GLOBAL_NAME_SUFFIX = 'preview';
|
21
|
+
export const PREVIEW_CHUNK_SUFFIX = 'preview-chunk';
|
22
|
+
export const COMPONENT_CHUNK_SUFFIX = 'component-chunk';
|
23
|
+
export const PREVIEW_CHUNK_FILENAME_SUFFIX = 'preview.js';
|
24
|
+
export const COMPONENT_CHUNK_FILENAME_SUFFIX = 'component.js';
|
24
25
|
|
25
26
|
export const COMPONENT_STRATEGY_SIZE_KEY_NAME = 'size';
|
26
27
|
export const COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';
|
@@ -133,7 +134,12 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
|
|
133
134
|
|
134
135
|
const chunks = {
|
135
136
|
componentPreview: this.getComponentChunkId(component.id, 'preview'),
|
136
|
-
component: context.splitComponentBundle ? component.id
|
137
|
+
component: context.splitComponentBundle ? this.getComponentChunkId(component.id, 'component') : undefined,
|
138
|
+
};
|
139
|
+
|
140
|
+
const libNames = {
|
141
|
+
componentPreview: this.getComponentChunkGlobalName(component.id, 'preview'),
|
142
|
+
component: context.splitComponentBundle ? this.getComponentChunkGlobalName(component.id, 'component') : undefined,
|
137
143
|
};
|
138
144
|
|
139
145
|
const entries = {
|
@@ -147,11 +153,11 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
|
|
147
153
|
),
|
148
154
|
import: componentPreviewPath,
|
149
155
|
dependOn: chunks.component,
|
150
|
-
library: { name:
|
156
|
+
library: { name: libNames.componentPreview, type: 'umd' },
|
151
157
|
},
|
152
158
|
};
|
153
159
|
|
154
|
-
if (chunks.component) {
|
160
|
+
if (chunks.component && libNames.component) {
|
155
161
|
entries[chunks.component] = {
|
156
162
|
filename: this.getComponentChunkFileName(
|
157
163
|
component.id.toString({
|
@@ -162,7 +168,7 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
|
|
162
168
|
),
|
163
169
|
dependOn: undefined,
|
164
170
|
import: componentPath,
|
165
|
-
library: { name:
|
171
|
+
library: { name: libNames.component, type: 'umd' },
|
166
172
|
};
|
167
173
|
}
|
168
174
|
|
@@ -172,11 +178,19 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
|
|
172
178
|
private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {
|
173
179
|
const id =
|
174
180
|
type === 'component'
|
175
|
-
? componentId.toStringWithoutVersion()
|
181
|
+
? `${componentId.toStringWithoutVersion()}-${COMPONENT_CHUNK_SUFFIX}`
|
176
182
|
: `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;
|
177
183
|
return id;
|
178
184
|
}
|
179
185
|
|
186
|
+
private getComponentChunkGlobalName(componentId: ComponentID, type: 'component' | 'preview') {
|
187
|
+
const id =
|
188
|
+
type === 'component'
|
189
|
+
? componentId.toStringWithoutVersion()
|
190
|
+
: `${componentId.toStringWithoutVersion()}-${PREVIEW_GLOBAL_NAME_SUFFIX}`;
|
191
|
+
return id;
|
192
|
+
}
|
193
|
+
|
180
194
|
private getComponentChunkFileName(idstr: string, type: 'component' | 'preview') {
|
181
195
|
const suffix = type === 'component' ? COMPONENT_CHUNK_FILENAME_SUFFIX : PREVIEW_CHUNK_FILENAME_SUFFIX;
|
182
196
|
return `${idstr}-${suffix}`;
|
@@ -226,7 +240,7 @@ export class ComponentBundlingStrategy implements BundlingStrategy {
|
|
226
240
|
): Asset[] | undefined {
|
227
241
|
if (!assets) return undefined;
|
228
242
|
|
229
|
-
const componentEntryId = component.id
|
243
|
+
const componentEntryId = this.getComponentChunkId(component.id, 'component');
|
230
244
|
const componentPreviewEntryId = this.getComponentChunkId(component.id, 'preview');
|
231
245
|
const componentFiles = entriesAssetsMap[componentEntryId]?.assets || [];
|
232
246
|
const componentAuxiliaryFiles = entriesAssetsMap[componentEntryId]?.auxiliaryAssets || [];
|