@teambit/preview 1.0.106 → 1.0.108
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/artifact-file-middleware.ts +66 -0
- package/bundling-strategy.ts +30 -0
- package/component-preview.route.ts +52 -0
- package/component-preview.ts +3 -0
- package/dist/artifact-file-middleware.d.ts +2 -2
- package/dist/artifact-file-middleware.js +2 -2
- package/dist/artifact-file-middleware.js.map +1 -1
- package/dist/bundler/chunks.d.ts +1 -1
- package/dist/bundler/html-plugin.js +1 -1
- package/dist/bundler/html-plugin.js.map +1 -1
- package/dist/bundling-strategy.d.ts +2 -2
- package/dist/env-preview-template.task.d.ts +1 -1
- package/dist/env-preview-template.task.js +1 -1
- package/dist/env-preview-template.task.js.map +1 -1
- package/dist/env-template.route.d.ts +1 -1
- package/dist/execution-ref.d.ts +1 -1
- package/dist/generate-link.d.ts +1 -1
- package/dist/gql/fetch-component-aspects.d.ts +1 -1
- package/dist/{preview-1703505948637.js → preview-1703647408454.js} +2 -2
- package/dist/preview-artifact.d.ts +2 -2
- package/dist/preview-env.d.ts +1 -1
- package/dist/preview-modules.d.ts +1 -1
- package/dist/preview.composition.d.ts +2 -2
- package/dist/preview.main.runtime.d.ts +14 -14
- package/dist/preview.main.runtime.js +17 -24
- package/dist/preview.main.runtime.js.map +1 -1
- package/dist/preview.preview.runtime.d.ts +5 -5
- package/dist/preview.preview.runtime.js +5 -8
- package/dist/preview.preview.runtime.js.map +1 -1
- package/dist/preview.service.d.ts +1 -1
- package/dist/preview.service.js +1 -1
- package/dist/preview.service.js.map +1 -1
- package/dist/preview.start-plugin.d.ts +2 -2
- package/dist/rendering-context.d.ts +3 -3
- package/dist/rendering-context.js +1 -1
- package/dist/rendering-context.js.map +1 -1
- package/dist/size-event.d.ts +1 -1
- package/dist/strategies/component-strategy.d.ts +1 -1
- package/dist/strategies/component-strategy.js +12 -15
- package/dist/strategies/component-strategy.js.map +1 -1
- package/dist/strategies/env-strategy.js +1 -1
- package/dist/strategies/env-strategy.js.map +1 -1
- package/dist/strategies/generate-component-link.d.ts +1 -1
- package/dist/types/preview-module.d.ts +3 -3
- package/env-preview-template.task.ts +280 -0
- package/env-template.route.ts +72 -0
- package/execution-ref.ts +25 -0
- package/generate-link.ts +73 -0
- package/index.ts +18 -0
- package/mk-temp-dir.ts +7 -0
- package/package.json +31 -38
- package/preview-artifact.ts +24 -0
- package/preview-assets.route.ts +36 -0
- package/preview-context.ts +5 -0
- package/preview-definition.ts +41 -0
- package/preview-env.ts +46 -0
- package/preview-type.ts +36 -0
- package/preview.aspect.ts +12 -0
- package/preview.graphql.ts +48 -0
- package/preview.route.ts +58 -0
- package/preview.task.ts +85 -0
- package/preview.ts +13 -0
- package/rendering-context.ts +16 -0
- package/size-event.ts +14 -0
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import mime from 'mime';
|
|
2
|
+
import type { Request, Response } from '@teambit/express';
|
|
3
|
+
import { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';
|
|
4
|
+
import type { Logger } from '@teambit/logger';
|
|
5
|
+
import type { PreviewArtifact } from './preview-artifact';
|
|
6
|
+
|
|
7
|
+
export type PreviewUrlParams = {
|
|
8
|
+
/**
|
|
9
|
+
* preview name like overview or composition
|
|
10
|
+
*/
|
|
11
|
+
previewName?: string;
|
|
12
|
+
/** `/preview/:filePath(*)` */
|
|
13
|
+
filePath?: string;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;
|
|
17
|
+
|
|
18
|
+
export function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc) {
|
|
19
|
+
return async (req: Request<PreviewUrlParams>, res: Response) => {
|
|
20
|
+
try {
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
const artifact: PreviewArtifact = req.artifact;
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
const isLegacyPath = req.isLegacyPath;
|
|
25
|
+
let file;
|
|
26
|
+
if (!isLegacyPath) {
|
|
27
|
+
file = getEnvTemplateFile(artifact, req.params.previewName, req.params.filePath);
|
|
28
|
+
} else {
|
|
29
|
+
file = getPreviewFile(artifact, req.params.previewName, req.params.filePath);
|
|
30
|
+
}
|
|
31
|
+
if (!file) return res.status(404).send(noPreview());
|
|
32
|
+
|
|
33
|
+
const contents = file.contents;
|
|
34
|
+
const str = `${file.cwd}/${file.path}`;
|
|
35
|
+
const contentType = mime.getType(str);
|
|
36
|
+
if (contentType) res.set('Content-Type', contentType);
|
|
37
|
+
if (getCacheControlFunc) {
|
|
38
|
+
const cacheControl = getCacheControlFunc(str, contents, contentType);
|
|
39
|
+
if (cacheControl) {
|
|
40
|
+
res.set('Cache-control', cacheControl);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return res.send(contents);
|
|
44
|
+
} catch (e: any) {
|
|
45
|
+
logger.error('failed getting preview', e);
|
|
46
|
+
return res.status(500).send(serverError());
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function getEnvTemplateFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {
|
|
52
|
+
const prevName = previewName || 'overview';
|
|
53
|
+
const finalFilePath = filePath || `${prevName}.html`;
|
|
54
|
+
const matchedFile = artifact?.getFileEndsWith(finalFilePath);
|
|
55
|
+
return matchedFile;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function getPreviewFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {
|
|
59
|
+
let finalFilePath = 'index.html';
|
|
60
|
+
if (previewName || filePath) {
|
|
61
|
+
const parts = [previewName, filePath].filter((x) => x);
|
|
62
|
+
finalFilePath = parts.join('/');
|
|
63
|
+
}
|
|
64
|
+
const matchedFile = artifact?.getFileEndsWith(finalFilePath);
|
|
65
|
+
return matchedFile;
|
|
66
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BuildContext, BuiltTaskResult } from '@teambit/builder';
|
|
2
|
+
import { Target, BundlerResult, BundlerContext } from '@teambit/bundler';
|
|
3
|
+
import { PreviewDefinition } from './preview-definition';
|
|
4
|
+
import { PreviewTask } from './preview.task';
|
|
5
|
+
|
|
6
|
+
type ComputeTargetsExtraContextKeys = {
|
|
7
|
+
splitComponentBundle?: boolean;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export type ComputeTargetsContext = BuildContext & ComputeTargetsExtraContextKeys;
|
|
11
|
+
export interface BundlingStrategy {
|
|
12
|
+
/**
|
|
13
|
+
* name of the bundling strategy.
|
|
14
|
+
*/
|
|
15
|
+
name: string;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* compute bundling targets for the build context.
|
|
19
|
+
*/
|
|
20
|
+
computeTargets(
|
|
21
|
+
context: ComputeTargetsContext,
|
|
22
|
+
previewDefs: PreviewDefinition[],
|
|
23
|
+
previewTask: PreviewTask
|
|
24
|
+
): Promise<Target[]>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* compute the results of the bundler.
|
|
28
|
+
*/
|
|
29
|
+
computeResults(context: BundlerContext, results: BundlerResult[], previewTask: PreviewTask): Promise<BuiltTaskResult>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { NextFunction, Request, Response, Route } from '@teambit/express';
|
|
2
|
+
import type { Component } from '@teambit/component';
|
|
3
|
+
import { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';
|
|
4
|
+
import type { Logger } from '@teambit/logger';
|
|
5
|
+
|
|
6
|
+
import { PreviewMain } from './preview.main.runtime';
|
|
7
|
+
import type { PreviewArtifact } from './preview-artifact';
|
|
8
|
+
import type { PreviewUrlParams } from './artifact-file-middleware';
|
|
9
|
+
import { getArtifactFileMiddleware } from './artifact-file-middleware';
|
|
10
|
+
|
|
11
|
+
export class ComponentPreviewRoute implements Route {
|
|
12
|
+
constructor(
|
|
13
|
+
/**
|
|
14
|
+
* preview extension.
|
|
15
|
+
*/
|
|
16
|
+
private preview: PreviewMain,
|
|
17
|
+
private logger: Logger
|
|
18
|
+
) {}
|
|
19
|
+
|
|
20
|
+
route = `/component-preview/:filePath(*)`;
|
|
21
|
+
method = 'get';
|
|
22
|
+
|
|
23
|
+
middlewares = [
|
|
24
|
+
async (req: Request<PreviewUrlParams>, res: Response, next: NextFunction) => {
|
|
25
|
+
try {
|
|
26
|
+
let isLegacyPath = false;
|
|
27
|
+
// @ts-ignore TODO: @guy please fix.
|
|
28
|
+
const component = req.component as Component | undefined;
|
|
29
|
+
if (!component) return res.status(404).send(noPreview());
|
|
30
|
+
|
|
31
|
+
let artifact: PreviewArtifact | undefined;
|
|
32
|
+
// TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680
|
|
33
|
+
try {
|
|
34
|
+
isLegacyPath = true;
|
|
35
|
+
artifact = await this.preview.getPreview(component);
|
|
36
|
+
} catch (e: any) {
|
|
37
|
+
this.logger.error(`preview.getPreview has failed`, e);
|
|
38
|
+
return res.status(404).send(noPreview());
|
|
39
|
+
}
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
req.artifact = artifact;
|
|
42
|
+
// @ts-ignore
|
|
43
|
+
req.isLegacyPath = isLegacyPath;
|
|
44
|
+
return next();
|
|
45
|
+
} catch (e: any) {
|
|
46
|
+
this.logger.error('failed getting preview', e);
|
|
47
|
+
return res.status(500).send(serverError());
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
getArtifactFileMiddleware(this.logger),
|
|
51
|
+
];
|
|
52
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="express" />
|
|
2
2
|
import type { Request, Response } from '@teambit/express';
|
|
3
3
|
import type { Logger } from '@teambit/logger';
|
|
4
|
-
export
|
|
4
|
+
export type PreviewUrlParams = {
|
|
5
5
|
/**
|
|
6
6
|
* preview name like overview or composition
|
|
7
7
|
*/
|
|
@@ -9,5 +9,5 @@ export declare type PreviewUrlParams = {
|
|
|
9
9
|
/** `/preview/:filePath(*)` */
|
|
10
10
|
filePath?: string;
|
|
11
11
|
};
|
|
12
|
-
export
|
|
12
|
+
export type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;
|
|
13
13
|
export declare function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc): (req: Request<PreviewUrlParams>, res: Response) => Promise<import("express").Response<any, Record<string, any>>>;
|
|
@@ -53,7 +53,7 @@ function getArtifactFileMiddleware(logger, getCacheControlFunc) {
|
|
|
53
53
|
function getEnvTemplateFile(artifact, previewName, filePath) {
|
|
54
54
|
const prevName = previewName || 'overview';
|
|
55
55
|
const finalFilePath = filePath || `${prevName}.html`;
|
|
56
|
-
const matchedFile = artifact
|
|
56
|
+
const matchedFile = artifact?.getFileEndsWith(finalFilePath);
|
|
57
57
|
return matchedFile;
|
|
58
58
|
}
|
|
59
59
|
function getPreviewFile(artifact, previewName, filePath) {
|
|
@@ -62,7 +62,7 @@ function getPreviewFile(artifact, previewName, filePath) {
|
|
|
62
62
|
const parts = [previewName, filePath].filter(x => x);
|
|
63
63
|
finalFilePath = parts.join('/');
|
|
64
64
|
}
|
|
65
|
-
const matchedFile = artifact
|
|
65
|
+
const matchedFile = artifact?.getFileEndsWith(finalFilePath);
|
|
66
66
|
return matchedFile;
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mime","data","_interopRequireDefault","require","_uiFoundationUiPages","obj","__esModule","default","getArtifactFileMiddleware","logger","getCacheControlFunc","req","res","artifact","isLegacyPath","file","getEnvTemplateFile","params","previewName","filePath","getPreviewFile","status","send","noPreview","contents","str","cwd","path","contentType","mime","getType","set","cacheControl","e","error","serverError","prevName","finalFilePath","matchedFile","getFileEndsWith","parts","filter","x","join"],"sources":["artifact-file-middleware.ts"],"sourcesContent":["import mime from 'mime';\nimport type { Request, Response } from '@teambit/express';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\nimport type { PreviewArtifact } from './preview-artifact';\n\nexport type PreviewUrlParams = {\n /**\n * preview name like overview or composition\n */\n previewName?: string;\n /** `/preview/:filePath(*)` */\n filePath?: string;\n};\n\nexport type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;\n\nexport function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc) {\n return async (req: Request<PreviewUrlParams>, res: Response) => {\n try {\n // @ts-ignore\n const artifact: PreviewArtifact = req.artifact;\n // @ts-ignore\n const isLegacyPath = req.isLegacyPath;\n let file;\n if (!isLegacyPath) {\n file = getEnvTemplateFile(artifact, req.params.previewName, req.params.filePath);\n } else {\n file = getPreviewFile(artifact, req.params.previewName, req.params.filePath);\n }\n if (!file) return res.status(404).send(noPreview());\n\n const contents = file.contents;\n const str = `${file.cwd}/${file.path}`;\n const contentType = mime.getType(str);\n if (contentType) res.set('Content-Type', contentType);\n if (getCacheControlFunc) {\n const cacheControl = getCacheControlFunc(str, contents, contentType);\n if (cacheControl) {\n res.set('Cache-control', cacheControl);\n }\n }\n return res.send(contents);\n } catch (e: any) {\n logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n };\n}\n\nfunction getEnvTemplateFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n const prevName = previewName || 'overview';\n const finalFilePath = filePath || `${prevName}.html`;\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n\nfunction getPreviewFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n let finalFilePath = 'index.html';\n if (previewName || filePath) {\n const parts = [previewName, filePath].filter((x) => x);\n finalFilePath = parts.join('/');\n }\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,qBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,oBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsF,SAAAC,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAe/E,SAASG,yBAAyBA,CAACC,MAAc,EAAEC,mBAAyC,EAAE;EACnG,OAAO,OAAOC,GAA8B,EAAEC,GAAa,KAAK;IAC9D,IAAI;MACF;MACA,MAAMC,QAAyB,GAAGF,GAAG,CAACE,QAAQ;MAC9C;MACA,MAAMC,YAAY,GAAGH,GAAG,CAACG,YAAY;MACrC,IAAIC,IAAI;MACR,IAAI,CAACD,YAAY,EAAE;QACjBC,IAAI,GAAGC,kBAAkB,CAACH,QAAQ,EAAEF,GAAG,CAACM,MAAM,CAACC,WAAW,EAAEP,GAAG,CAACM,MAAM,CAACE,QAAQ,CAAC;MAClF,CAAC,MAAM;QACLJ,IAAI,GAAGK,cAAc,CAACP,QAAQ,EAAEF,GAAG,CAACM,MAAM,CAACC,WAAW,EAAEP,GAAG,CAACM,MAAM,CAACE,QAAQ,CAAC;MAC9E;MACA,IAAI,CAACJ,IAAI,EAAE,OAAOH,GAAG,CAACS,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAC,gCAAS,EAAC,CAAC,CAAC;MAEnD,MAAMC,QAAQ,GAAGT,IAAI,CAACS,QAAQ;MAC9B,MAAMC,GAAG,GAAI,GAAEV,IAAI,CAACW,GAAI,IAAGX,IAAI,CAACY,IAAK,EAAC;MACtC,MAAMC,WAAW,GAAGC,eAAI,CAACC,OAAO,CAACL,GAAG,CAAC;MACrC,IAAIG,WAAW,EAAEhB,GAAG,CAACmB,GAAG,CAAC,cAAc,EAAEH,WAAW,CAAC;MACrD,IAAIlB,mBAAmB,EAAE;QACvB,MAAMsB,YAAY,GAAGtB,mBAAmB,CAACe,GAAG,EAAED,QAAQ,EAAEI,WAAW,CAAC;QACpE,IAAII,YAAY,EAAE;UAChBpB,GAAG,CAACmB,GAAG,CAAC,eAAe,EAAEC,YAAY,CAAC;QACxC;MACF;MACA,OAAOpB,GAAG,CAACU,IAAI,CAACE,QAAQ,CAAC;IAC3B,CAAC,CAAC,OAAOS,CAAM,EAAE;MACfxB,MAAM,CAACyB,KAAK,CAAC,wBAAwB,EAAED,CAAC,CAAC;MACzC,OAAOrB,GAAG,CAACS,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAa,kCAAW,EAAC,CAAC,CAAC;IAC5C;EACF,CAAC;AACH;AAEA,SAASnB,kBAAkBA,CAACH,QAAyB,EAAEK,WAAoB,EAAEC,QAAiB,EAAE;EAC9F,MAAMiB,QAAQ,GAAGlB,WAAW,IAAI,UAAU;EAC1C,MAAMmB,aAAa,GAAGlB,QAAQ,IAAK,GAAEiB,QAAS,OAAM;EACpD,MAAME,WAAW,GAAGzB,QAAQ,
|
|
1
|
+
{"version":3,"names":["_mime","data","_interopRequireDefault","require","_uiFoundationUiPages","obj","__esModule","default","getArtifactFileMiddleware","logger","getCacheControlFunc","req","res","artifact","isLegacyPath","file","getEnvTemplateFile","params","previewName","filePath","getPreviewFile","status","send","noPreview","contents","str","cwd","path","contentType","mime","getType","set","cacheControl","e","error","serverError","prevName","finalFilePath","matchedFile","getFileEndsWith","parts","filter","x","join"],"sources":["artifact-file-middleware.ts"],"sourcesContent":["import mime from 'mime';\nimport type { Request, Response } from '@teambit/express';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\nimport type { PreviewArtifact } from './preview-artifact';\n\nexport type PreviewUrlParams = {\n /**\n * preview name like overview or composition\n */\n previewName?: string;\n /** `/preview/:filePath(*)` */\n filePath?: string;\n};\n\nexport type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;\n\nexport function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc) {\n return async (req: Request<PreviewUrlParams>, res: Response) => {\n try {\n // @ts-ignore\n const artifact: PreviewArtifact = req.artifact;\n // @ts-ignore\n const isLegacyPath = req.isLegacyPath;\n let file;\n if (!isLegacyPath) {\n file = getEnvTemplateFile(artifact, req.params.previewName, req.params.filePath);\n } else {\n file = getPreviewFile(artifact, req.params.previewName, req.params.filePath);\n }\n if (!file) return res.status(404).send(noPreview());\n\n const contents = file.contents;\n const str = `${file.cwd}/${file.path}`;\n const contentType = mime.getType(str);\n if (contentType) res.set('Content-Type', contentType);\n if (getCacheControlFunc) {\n const cacheControl = getCacheControlFunc(str, contents, contentType);\n if (cacheControl) {\n res.set('Cache-control', cacheControl);\n }\n }\n return res.send(contents);\n } catch (e: any) {\n logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n };\n}\n\nfunction getEnvTemplateFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n const prevName = previewName || 'overview';\n const finalFilePath = filePath || `${prevName}.html`;\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n\nfunction getPreviewFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n let finalFilePath = 'index.html';\n if (previewName || filePath) {\n const parts = [previewName, filePath].filter((x) => x);\n finalFilePath = parts.join('/');\n }\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n"],"mappings":"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"}
|
package/dist/bundler/chunks.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ function generateHtmlConfig(previewDef, options) {
|
|
|
31
31
|
const config = {
|
|
32
32
|
title: 'Preview',
|
|
33
33
|
templateContent: (0, _htmlTemplate().html)('Preview'),
|
|
34
|
-
minify:
|
|
34
|
+
minify: options?.dev ?? true,
|
|
35
35
|
chunks,
|
|
36
36
|
filename: `${previewDef.prefix}.html`
|
|
37
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","data","_interopRequireDefault","require","_htmlTemplate","_chunks","obj","__esModule","default","generateHtmlConfig","previewDef","options","chunks","compact","includePeers","CHUNK_NAMES","peers","previewRoot","include","prefix","config","title","templateContent","html","minify","dev","filename"],"sources":["html-plugin.ts"],"sourcesContent":["import compact from 'lodash.compact';\nimport type { BundlerHtmlConfig } from '@teambit/bundler';\nimport { PreviewDefinition } from '../preview-definition';\nimport { html } from './html-template';\n\nimport { CHUNK_NAMES } from './chunks';\n\nexport function generateHtmlConfig(previewDef: PreviewDefinition, options: { dev?: boolean }) {\n const chunks = compact([\n previewDef.includePeers && CHUNK_NAMES.peers,\n CHUNK_NAMES.previewRoot,\n ...(previewDef.include || []),\n previewDef.prefix,\n ]);\n\n const config: BundlerHtmlConfig = {\n title: 'Preview',\n templateContent: html('Preview'),\n minify: options?.dev ?? true,\n chunks,\n filename: `${previewDef.prefix}.html`,\n };\n return config;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,cAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,aAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,SAASG,kBAAkBA,CAACC,UAA6B,EAAEC,OAA0B,EAAE;EAC5F,MAAMC,MAAM,GAAG,IAAAC,iBAAO,EAAC,CACrBH,UAAU,CAACI,YAAY,IAAIC,qBAAW,CAACC,KAAK,EAC5CD,qBAAW,CAACE,WAAW,EACvB,IAAIP,UAAU,CAACQ,OAAO,IAAI,EAAE,CAAC,EAC7BR,UAAU,CAACS,MAAM,CAClB,CAAC;EAEF,MAAMC,MAAyB,GAAG;IAChCC,KAAK,EAAE,SAAS;IAChBC,eAAe,EAAE,IAAAC,oBAAI,EAAC,SAAS,CAAC;IAChCC,MAAM,
|
|
1
|
+
{"version":3,"names":["_lodash","data","_interopRequireDefault","require","_htmlTemplate","_chunks","obj","__esModule","default","generateHtmlConfig","previewDef","options","chunks","compact","includePeers","CHUNK_NAMES","peers","previewRoot","include","prefix","config","title","templateContent","html","minify","dev","filename"],"sources":["html-plugin.ts"],"sourcesContent":["import compact from 'lodash.compact';\nimport type { BundlerHtmlConfig } from '@teambit/bundler';\nimport { PreviewDefinition } from '../preview-definition';\nimport { html } from './html-template';\n\nimport { CHUNK_NAMES } from './chunks';\n\nexport function generateHtmlConfig(previewDef: PreviewDefinition, options: { dev?: boolean }) {\n const chunks = compact([\n previewDef.includePeers && CHUNK_NAMES.peers,\n CHUNK_NAMES.previewRoot,\n ...(previewDef.include || []),\n previewDef.prefix,\n ]);\n\n const config: BundlerHtmlConfig = {\n title: 'Preview',\n templateContent: html('Preview'),\n minify: options?.dev ?? true,\n chunks,\n filename: `${previewDef.prefix}.html`,\n };\n return config;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,cAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,aAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,SAASG,kBAAkBA,CAACC,UAA6B,EAAEC,OAA0B,EAAE;EAC5F,MAAMC,MAAM,GAAG,IAAAC,iBAAO,EAAC,CACrBH,UAAU,CAACI,YAAY,IAAIC,qBAAW,CAACC,KAAK,EAC5CD,qBAAW,CAACE,WAAW,EACvB,IAAIP,UAAU,CAACQ,OAAO,IAAI,EAAE,CAAC,EAC7BR,UAAU,CAACS,MAAM,CAClB,CAAC;EAEF,MAAMC,MAAyB,GAAG;IAChCC,KAAK,EAAE,SAAS;IAChBC,eAAe,EAAE,IAAAC,oBAAI,EAAC,SAAS,CAAC;IAChCC,MAAM,EAAEb,OAAO,EAAEc,GAAG,IAAI,IAAI;IAC5Bb,MAAM;IACNc,QAAQ,EAAG,GAAEhB,UAAU,CAACS,MAAO;EACjC,CAAC;EACD,OAAOC,MAAM;AACf"}
|
|
@@ -2,10 +2,10 @@ import { BuildContext, BuiltTaskResult } from '@teambit/builder';
|
|
|
2
2
|
import { Target, BundlerResult, BundlerContext } from '@teambit/bundler';
|
|
3
3
|
import { PreviewDefinition } from './preview-definition';
|
|
4
4
|
import { PreviewTask } from './preview.task';
|
|
5
|
-
|
|
5
|
+
type ComputeTargetsExtraContextKeys = {
|
|
6
6
|
splitComponentBundle?: boolean;
|
|
7
7
|
};
|
|
8
|
-
export
|
|
8
|
+
export type ComputeTargetsContext = BuildContext & ComputeTargetsExtraContextKeys;
|
|
9
9
|
export interface BundlingStrategy {
|
|
10
10
|
/**
|
|
11
11
|
* name of the bundling strategy.
|
|
@@ -5,7 +5,7 @@ import type { EnvsMain } from '@teambit/envs';
|
|
|
5
5
|
import { Logger } from '@teambit/logger';
|
|
6
6
|
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
7
7
|
import type { PreviewMain } from './preview.main.runtime';
|
|
8
|
-
export
|
|
8
|
+
export type ModuleExpose = {
|
|
9
9
|
name: string;
|
|
10
10
|
path: string;
|
|
11
11
|
include?: string[];
|
|
@@ -197,7 +197,7 @@ class EnvPreviewTemplateTask {
|
|
|
197
197
|
filterByRuntime: false
|
|
198
198
|
});
|
|
199
199
|
const resolvedEnv = resolvedEnvAspects[0];
|
|
200
|
-
const hostRootDir = resolvedEnv
|
|
200
|
+
const hostRootDir = resolvedEnv?.aspectPath;
|
|
201
201
|
if (!hostRootDir) {
|
|
202
202
|
this.logger.warn(`env preview template task, hostRootDir is not defined, for env ${envComponent.id.toString()}`);
|
|
203
203
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_builder","data","require","_cli","_pMapSeries","_interopRequireDefault","_component","_path","_lodash","_fsExtra","_chunks","_htmlPlugin","_createPeersLink","_excluded","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","GENERATE_ENV_TEMPLATE_TASK_NAME","exports","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","dependencyResolver","logger","execute","context","previewDefs","getDefs","htmlConfig","map","previewModule","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","c","component","id","toString","grouped","mapSeries","components","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","assign","entry","development","metaData","initiator","envId","isEnvTemplate","bundlerResults","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","peers","getPreviewHostDependenciesFromEnv","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","generateEntries","splitComponentBundle","workDir","path","outputPath","computeOutputPath","existsSync","mkdirpSync","resolvedEnvAspects","resolveAspects","MainRuntime","requestedOnly","filterByRuntime","resolvedEnv","hostRootDir","aspectPath","warn","html","chunking","splitChunks","hostDependencies","aliasHostDependencies","previewModules","getPreviewModules","previewEntries","_ref","rest","linkFile","writeLink","ComponentMap","create","peerLink","writePeerLink","generateTemplateEntries","previewRootPath","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","Promise","all","def","renderTemplatePathByEnv","prefix","include","join","getArtifactDirectory","CAPSULE_ARTIFACTS_DIR","globPatterns","rootDir"],"sources":["env-preview-template.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n ComponentResult,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport { MainRuntime } from '@teambit/cli';\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Bundler, BundlerContext, BundlerHtmlConfig, BundlerResult, Target } from '@teambit/bundler';\nimport type { EnvDefinition, Environment, EnvsMain } from '@teambit/envs';\nimport { join } from 'path';\nimport { compact, flatten, isEmpty } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { generateTemplateEntries } from './bundler/chunks';\nimport { generateHtmlConfig } from './bundler/html-plugin';\nimport { writePeerLink } from './bundler/create-peers-link';\n\nexport type ModuleExpose = {\n name: string;\n path: string;\n include?: string[];\n};\n\ntype TargetsGroup = {\n env: Environment;\n envToGetBundler: Environment;\n targets: Target[];\n};\ntype TargetsGroupMap = {\n [envId: string]: TargetsGroup;\n};\n\nexport const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';\n\nexport class EnvPreviewTemplateTask implements BuildTask {\n aspectId = 'teambit.preview/preview';\n name = GENERATE_ENV_TEMPLATE_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n constructor(\n private preview: PreviewMain,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const previewDefs = this.preview.getDefs();\n const htmlConfig = previewDefs.map((previewModule) => generateHtmlConfig(previewModule, { dev: context.dev }));\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n // avoid running them with `Promise.all` because getEnv methods do import/isolate which can't be in parallel.\n await mapSeries(context.components, async (component) => {\n // Do not run over other components in the graph. it make the process much longer with no need\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n const envDef = this.envs.getEnvFromComponent(component);\n if (!envDef) return undefined;\n const env = envDef.env;\n const bundlingStrategy = this.preview.getBundlingStrategy(envDef.env);\n if (bundlingStrategy.name === 'env') {\n return undefined;\n }\n const target = await this.getEnvTargetFromComponent(context, component, envDef, htmlConfig);\n if (!target) return undefined;\n const shouldUseDefaultBundler = this.shouldUseDefaultBundler(envDef);\n let envToGetBundler = this.envs.getEnvsEnvDefinition().env;\n let groupEnvId = 'default';\n if (!shouldUseDefaultBundler) {\n envToGetBundler = env;\n groupEnvId = envDef.id;\n }\n if (!grouped[groupEnvId]) {\n grouped[groupEnvId] = {\n env,\n envToGetBundler,\n targets: [target],\n };\n } else {\n grouped[groupEnvId].targets.push(target);\n }\n return undefined;\n });\n if (isEmpty(grouped)) {\n return { componentsResults: [] };\n }\n\n return this.runBundlerForGroups(context, grouped);\n }\n\n private async runBundlerForGroups(context: BuildContext, groups: TargetsGroupMap): Promise<BuiltTaskResult> {\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [],\n entry: [],\n development: context.dev,\n metaData: {\n initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,\n envId: context.id,\n isEnvTemplate: true,\n },\n });\n\n const bundlerResults = await mapSeries(Object.entries(groups), async ([, targetsGroup]) => {\n bundlerContext.targets = targetsGroup.targets;\n const bundler: Bundler = await targetsGroup.envToGetBundler.getTemplateBundler(bundlerContext);\n const bundlerResult = await bundler.run();\n return bundlerResult;\n });\n\n const results = await this.computeResults(bundlerContext, flatten(bundlerResults));\n return results;\n }\n\n private shouldUseDefaultBundler(envDef: EnvDefinition): boolean {\n if (this.aspectLoader.isCoreEnv(envDef.id) && envDef.id !== 'teambit.react/react-native') return true;\n const env = envDef.env;\n if (env.getTemplateBundler && typeof env.getTemplateBundler === 'function') return false;\n return true;\n }\n\n private async getEnvTargetFromComponent(\n context: BuildContext,\n envComponent: Component,\n envDef: EnvDefinition,\n htmlConfig: BundlerHtmlConfig[]\n ): Promise<Target | undefined> {\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(envDef.env);\n // const module = await this.getPreviewModule(envComponent);\n // const entries = Object.keys(module).map((key) => module.exposes[key]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);\n if (!capsule) throw new Error('no capsule found');\n // Passing here the env itself to make sure it's preview runtime will be part of the preview root file\n // that's needed to make sure the providers register there are running correctly\n const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);\n const entries = await this.generateEntries({\n envDef,\n splitComponentBundle: envPreviewConfig.splitComponentBundle ?? false,\n workDir: capsule.path,\n peers,\n previewRoot,\n });\n\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const resolvedEnvAspects = await this.preview.resolveAspects(MainRuntime.name, [envComponent.id], undefined, {\n requestedOnly: true,\n // required to support envs that are plguins (.bit-env files)\n filterByRuntime: false,\n });\n const resolvedEnv = resolvedEnvAspects[0];\n const hostRootDir = resolvedEnv?.aspectPath;\n\n if (!hostRootDir) {\n this.logger.warn(`env preview template task, hostRootDir is not defined, for env ${envComponent.id.toString()}`);\n }\n\n return {\n peers,\n html: htmlConfig,\n entries,\n chunking: { splitChunks: true },\n components: [envComponent],\n outputPath,\n /* It's a path to the root of the host component. */\n hostRootDir,\n hostDependencies: peers,\n aliasHostDependencies: true,\n };\n }\n\n private async generateEntries({\n previewRoot,\n workDir,\n peers,\n envDef,\n splitComponentBundle,\n }: {\n previewRoot: string;\n workDir: string;\n peers: string[];\n envDef: EnvDefinition;\n splitComponentBundle: boolean;\n }) {\n const previewModules = await this.getPreviewModules(envDef);\n const previewEntries = previewModules.map(({ name, path, ...rest }) => {\n const linkFile = this.preview.writeLink(\n name,\n ComponentMap.create([]),\n { default: path },\n workDir,\n splitComponentBundle\n );\n\n return { name, path, ...rest, entry: linkFile };\n });\n const peerLink = await writePeerLink(peers, workDir);\n\n const entries = generateTemplateEntries({\n peers: peerLink,\n previewRootPath: previewRoot,\n previewModules: previewEntries,\n });\n return entries;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const allResults = results.map((result) => {\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 return componentsResults;\n });\n\n const componentsResults = flatten(allResults);\n\n const artifacts = getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private async getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]> {\n const previewDefs = this.preview.getDefs();\n\n const modules = compact(\n await Promise.all(\n previewDefs.map(async (def) => {\n if (!def.renderTemplatePathByEnv) return undefined;\n return {\n name: def.prefix,\n path: (await def.renderTemplatePathByEnv(envDef.env)) || '',\n include: def.include,\n };\n })\n )\n );\n\n return modules;\n }\n\n private computeOutputPath(context: BuildContext, component: Component) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('no capsule found');\n return join(capsule.path, getArtifactDirectory());\n }\n}\n\nexport function getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'env-template');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'env-template',\n globPatterns: ['**'],\n rootDir: getArtifactDirectory(),\n },\n ];\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_builder","data","require","_cli","_pMapSeries","_interopRequireDefault","_component","_path","_lodash","_fsExtra","_chunks","_htmlPlugin","_createPeersLink","_excluded","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","GENERATE_ENV_TEMPLATE_TASK_NAME","exports","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","dependencyResolver","logger","execute","context","previewDefs","getDefs","htmlConfig","map","previewModule","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","c","component","id","toString","grouped","mapSeries","components","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","assign","entry","development","metaData","initiator","envId","isEnvTemplate","bundlerResults","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","peers","getPreviewHostDependenciesFromEnv","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","generateEntries","splitComponentBundle","workDir","path","outputPath","computeOutputPath","existsSync","mkdirpSync","resolvedEnvAspects","resolveAspects","MainRuntime","requestedOnly","filterByRuntime","resolvedEnv","hostRootDir","aspectPath","warn","html","chunking","splitChunks","hostDependencies","aliasHostDependencies","previewModules","getPreviewModules","previewEntries","_ref","rest","linkFile","writeLink","ComponentMap","create","peerLink","writePeerLink","generateTemplateEntries","previewRootPath","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","Promise","all","def","renderTemplatePathByEnv","prefix","include","join","getArtifactDirectory","CAPSULE_ARTIFACTS_DIR","globPatterns","rootDir"],"sources":["env-preview-template.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n ComponentResult,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport { MainRuntime } from '@teambit/cli';\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Bundler, BundlerContext, BundlerHtmlConfig, BundlerResult, Target } from '@teambit/bundler';\nimport type { EnvDefinition, Environment, EnvsMain } from '@teambit/envs';\nimport { join } from 'path';\nimport { compact, flatten, isEmpty } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { generateTemplateEntries } from './bundler/chunks';\nimport { generateHtmlConfig } from './bundler/html-plugin';\nimport { writePeerLink } from './bundler/create-peers-link';\n\nexport type ModuleExpose = {\n name: string;\n path: string;\n include?: string[];\n};\n\ntype TargetsGroup = {\n env: Environment;\n envToGetBundler: Environment;\n targets: Target[];\n};\ntype TargetsGroupMap = {\n [envId: string]: TargetsGroup;\n};\n\nexport const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';\n\nexport class EnvPreviewTemplateTask implements BuildTask {\n aspectId = 'teambit.preview/preview';\n name = GENERATE_ENV_TEMPLATE_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n constructor(\n private preview: PreviewMain,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const previewDefs = this.preview.getDefs();\n const htmlConfig = previewDefs.map((previewModule) => generateHtmlConfig(previewModule, { dev: context.dev }));\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n // avoid running them with `Promise.all` because getEnv methods do import/isolate which can't be in parallel.\n await mapSeries(context.components, async (component) => {\n // Do not run over other components in the graph. it make the process much longer with no need\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n const envDef = this.envs.getEnvFromComponent(component);\n if (!envDef) return undefined;\n const env = envDef.env;\n const bundlingStrategy = this.preview.getBundlingStrategy(envDef.env);\n if (bundlingStrategy.name === 'env') {\n return undefined;\n }\n const target = await this.getEnvTargetFromComponent(context, component, envDef, htmlConfig);\n if (!target) return undefined;\n const shouldUseDefaultBundler = this.shouldUseDefaultBundler(envDef);\n let envToGetBundler = this.envs.getEnvsEnvDefinition().env;\n let groupEnvId = 'default';\n if (!shouldUseDefaultBundler) {\n envToGetBundler = env;\n groupEnvId = envDef.id;\n }\n if (!grouped[groupEnvId]) {\n grouped[groupEnvId] = {\n env,\n envToGetBundler,\n targets: [target],\n };\n } else {\n grouped[groupEnvId].targets.push(target);\n }\n return undefined;\n });\n if (isEmpty(grouped)) {\n return { componentsResults: [] };\n }\n\n return this.runBundlerForGroups(context, grouped);\n }\n\n private async runBundlerForGroups(context: BuildContext, groups: TargetsGroupMap): Promise<BuiltTaskResult> {\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [],\n entry: [],\n development: context.dev,\n metaData: {\n initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,\n envId: context.id,\n isEnvTemplate: true,\n },\n });\n\n const bundlerResults = await mapSeries(Object.entries(groups), async ([, targetsGroup]) => {\n bundlerContext.targets = targetsGroup.targets;\n const bundler: Bundler = await targetsGroup.envToGetBundler.getTemplateBundler(bundlerContext);\n const bundlerResult = await bundler.run();\n return bundlerResult;\n });\n\n const results = await this.computeResults(bundlerContext, flatten(bundlerResults));\n return results;\n }\n\n private shouldUseDefaultBundler(envDef: EnvDefinition): boolean {\n if (this.aspectLoader.isCoreEnv(envDef.id) && envDef.id !== 'teambit.react/react-native') return true;\n const env = envDef.env;\n if (env.getTemplateBundler && typeof env.getTemplateBundler === 'function') return false;\n return true;\n }\n\n private async getEnvTargetFromComponent(\n context: BuildContext,\n envComponent: Component,\n envDef: EnvDefinition,\n htmlConfig: BundlerHtmlConfig[]\n ): Promise<Target | undefined> {\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(envDef.env);\n // const module = await this.getPreviewModule(envComponent);\n // const entries = Object.keys(module).map((key) => module.exposes[key]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);\n if (!capsule) throw new Error('no capsule found');\n // Passing here the env itself to make sure it's preview runtime will be part of the preview root file\n // that's needed to make sure the providers register there are running correctly\n const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);\n const entries = await this.generateEntries({\n envDef,\n splitComponentBundle: envPreviewConfig.splitComponentBundle ?? false,\n workDir: capsule.path,\n peers,\n previewRoot,\n });\n\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const resolvedEnvAspects = await this.preview.resolveAspects(MainRuntime.name, [envComponent.id], undefined, {\n requestedOnly: true,\n // required to support envs that are plguins (.bit-env files)\n filterByRuntime: false,\n });\n const resolvedEnv = resolvedEnvAspects[0];\n const hostRootDir = resolvedEnv?.aspectPath;\n\n if (!hostRootDir) {\n this.logger.warn(`env preview template task, hostRootDir is not defined, for env ${envComponent.id.toString()}`);\n }\n\n return {\n peers,\n html: htmlConfig,\n entries,\n chunking: { splitChunks: true },\n components: [envComponent],\n outputPath,\n /* It's a path to the root of the host component. */\n hostRootDir,\n hostDependencies: peers,\n aliasHostDependencies: true,\n };\n }\n\n private async generateEntries({\n previewRoot,\n workDir,\n peers,\n envDef,\n splitComponentBundle,\n }: {\n previewRoot: string;\n workDir: string;\n peers: string[];\n envDef: EnvDefinition;\n splitComponentBundle: boolean;\n }) {\n const previewModules = await this.getPreviewModules(envDef);\n const previewEntries = previewModules.map(({ name, path, ...rest }) => {\n const linkFile = this.preview.writeLink(\n name,\n ComponentMap.create([]),\n { default: path },\n workDir,\n splitComponentBundle\n );\n\n return { name, path, ...rest, entry: linkFile };\n });\n const peerLink = await writePeerLink(peers, workDir);\n\n const entries = generateTemplateEntries({\n peers: peerLink,\n previewRootPath: previewRoot,\n previewModules: previewEntries,\n });\n return entries;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const allResults = results.map((result) => {\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 return componentsResults;\n });\n\n const componentsResults = flatten(allResults);\n\n const artifacts = getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private async getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]> {\n const previewDefs = this.preview.getDefs();\n\n const modules = compact(\n await Promise.all(\n previewDefs.map(async (def) => {\n if (!def.renderTemplatePathByEnv) return undefined;\n return {\n name: def.prefix,\n path: (await def.renderTemplatePathByEnv(envDef.env)) || '',\n include: def.include,\n };\n })\n )\n );\n\n return modules;\n }\n\n private computeOutputPath(context: BuildContext, component: Component) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('no capsule found');\n return join(capsule.path, getArtifactDirectory());\n }\n}\n\nexport function getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'env-template');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'env-template',\n globPatterns: ['**'],\n rootDir: getArtifactDirectory(),\n },\n ];\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA,SAAAE,KAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,IAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,WAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,UAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAM,MAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,KAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAQ,SAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,QAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,QAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,OAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,YAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,WAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,iBAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,gBAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4D,MAAAY,SAAA;AAAA,SAAAR,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAoB,yBAAAC,MAAA,EAAAC,QAAA,QAAAD,MAAA,yBAAAE,MAAA,GAAAC,6BAAA,CAAAH,MAAA,EAAAC,QAAA,OAAAG,GAAA,EAAAC,CAAA,MAAAvB,MAAA,CAAAE,qBAAA,QAAAsB,gBAAA,GAAAxB,MAAA,CAAAE,qBAAA,CAAAgB,MAAA,QAAAK,CAAA,MAAAA,CAAA,GAAAC,gBAAA,CAAAb,MAAA,EAAAY,CAAA,MAAAD,GAAA,GAAAE,gBAAA,CAAAD,CAAA,OAAAJ,QAAA,CAAAM,OAAA,CAAAH,GAAA,uBAAAtB,MAAA,CAAA0B,SAAA,CAAAC,oBAAA,CAAAC,IAAA,CAAAV,MAAA,EAAAI,GAAA,aAAAF,MAAA,CAAAE,GAAA,IAAAJ,MAAA,CAAAI,GAAA,cAAAF,MAAA;AAAA,SAAAC,8BAAAH,MAAA,EAAAC,QAAA,QAAAD,MAAA,yBAAAE,MAAA,WAAAS,UAAA,GAAA7B,MAAA,CAAAC,IAAA,CAAAiB,MAAA,OAAAI,GAAA,EAAAC,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAM,UAAA,CAAAlB,MAAA,EAAAY,CAAA,MAAAD,GAAA,GAAAO,UAAA,CAAAN,CAAA,OAAAJ,QAAA,CAAAM,OAAA,CAAAH,GAAA,kBAAAF,MAAA,CAAAE,GAAA,IAAAJ,MAAA,CAAAI,GAAA,YAAAF,MAAA;AAAA,SAAAP,gBAAApB,GAAA,EAAA6B,GAAA,EAAAQ,KAAA,IAAAR,GAAA,GAAAS,cAAA,CAAAT,GAAA,OAAAA,GAAA,IAAA7B,GAAA,IAAAO,MAAA,CAAAgB,cAAA,CAAAvB,GAAA,EAAA6B,GAAA,IAAAQ,KAAA,EAAAA,KAAA,EAAAxB,UAAA,QAAA0B,YAAA,QAAAC,QAAA,oBAAAxC,GAAA,CAAA6B,GAAA,IAAAQ,KAAA,WAAArC,GAAA;AAAA,SAAAsC,eAAAhC,CAAA,QAAAwB,CAAA,GAAAW,YAAA,CAAAnC,CAAA,uCAAAwB,CAAA,GAAAA,CAAA,GAAAY,MAAA,CAAAZ,CAAA;AAAA,SAAAW,aAAAnC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAqC,MAAA,CAAAC,WAAA,kBAAAxC,CAAA,QAAA0B,CAAA,GAAA1B,CAAA,CAAA+B,IAAA,CAAA7B,CAAA,EAAAD,CAAA,uCAAAyB,CAAA,SAAAA,CAAA,YAAAe,SAAA,yEAAAxC,CAAA,GAAAqC,MAAA,GAAAI,MAAA,EAAAxC,CAAA;AAiBrD,MAAMyC,+BAA+B,GAAAC,OAAA,CAAAD,+BAAA,GAAG,qBAAqB;AAE7D,MAAME,sBAAsB,CAAsB;EAIvD;;EAEAC,WAAWA,CACDC,OAAoB,EACpBC,IAAc,EACdC,YAA8B,EAC9BC,kBAA0C,EAC1CC,MAAc,EACtB;IAAA,KALQJ,OAAoB,GAApBA,OAAoB;IAAA,KACpBC,IAAc,GAAdA,IAAc;IAAA,KACdC,YAA8B,GAA9BA,YAA8B;IAAA,KAC9BC,kBAA0C,GAA1CA,kBAA0C;IAAA,KAC1CC,MAAc,GAAdA,MAAc;IAAAnC,eAAA,mBAVb,yBAAyB;IAAAA,eAAA,eAC7B2B,+BAA+B;IAAA3B,eAAA,mBACb,KAAK;EAS3B;EAEH,MAAMoC,OAAOA,CAACC,OAAqB,EAA4B;IAC7D,MAAMC,WAAW,GAAG,IAAI,CAACP,OAAO,CAACQ,OAAO,CAAC,CAAC;IAC1C,MAAMC,UAAU,GAAGF,WAAW,CAACG,GAAG,CAAEC,aAAa,IAAK,IAAAC,gCAAkB,EAACD,aAAa,EAAE;MAAEE,GAAG,EAAEP,OAAO,CAACO;IAAI,CAAC,CAAC,CAAC;IAC9G,MAAMC,kBAAkB,GAAGR,OAAO,CAACS,cAAc,CAACC,uBAAuB,CAACN,GAAG,CAAEO,CAAC,IAAKA,CAAC,CAACC,SAAS,CAACC,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAC;IAC/G,MAAMC,OAAwB,GAAG,CAAC,CAAC;IACnC;IACA,MAAM,IAAAC,qBAAS,EAAChB,OAAO,CAACiB,UAAU,EAAE,MAAOL,SAAS,IAAK;MACvD;MACA,IAAIJ,kBAAkB,IAAIA,kBAAkB,CAAC/C,MAAM,IAAI,CAAC+C,kBAAkB,CAACU,QAAQ,CAACN,SAAS,CAACC,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC5G,OAAOK,SAAS;MAClB;MACA,MAAMC,MAAM,GAAG,IAAI,CAACzB,IAAI,CAAC0B,mBAAmB,CAACT,SAAS,CAAC;MACvD,IAAI,CAACQ,MAAM,EAAE,OAAOD,SAAS;MAC7B,MAAMG,GAAG,GAAGF,MAAM,CAACE,GAAG;MACtB,MAAMC,gBAAgB,GAAG,IAAI,CAAC7B,OAAO,CAAC8B,mBAAmB,CAACJ,MAAM,CAACE,GAAG,CAAC;MACrE,IAAIC,gBAAgB,CAACE,IAAI,KAAK,KAAK,EAAE;QACnC,OAAON,SAAS;MAClB;MACA,MAAMjD,MAAM,GAAG,MAAM,IAAI,CAACwD,yBAAyB,CAAC1B,OAAO,EAAEY,SAAS,EAAEQ,MAAM,EAAEjB,UAAU,CAAC;MAC3F,IAAI,CAACjC,MAAM,EAAE,OAAOiD,SAAS;MAC7B,MAAMQ,uBAAuB,GAAG,IAAI,CAACA,uBAAuB,CAACP,MAAM,CAAC;MACpE,IAAIQ,eAAe,GAAG,IAAI,CAACjC,IAAI,CAACkC,oBAAoB,CAAC,CAAC,CAACP,GAAG;MAC1D,IAAIQ,UAAU,GAAG,SAAS;MAC1B,IAAI,CAACH,uBAAuB,EAAE;QAC5BC,eAAe,GAAGN,GAAG;QACrBQ,UAAU,GAAGV,MAAM,CAACP,EAAE;MACxB;MACA,IAAI,CAACE,OAAO,CAACe,UAAU,CAAC,EAAE;QACxBf,OAAO,CAACe,UAAU,CAAC,GAAG;UACpBR,GAAG;UACHM,eAAe;UACfG,OAAO,EAAE,CAAC7D,MAAM;QAClB,CAAC;MACH,CAAC,MAAM;QACL6C,OAAO,CAACe,UAAU,CAAC,CAACC,OAAO,CAAC1E,IAAI,CAACa,MAAM,CAAC;MAC1C;MACA,OAAOiD,SAAS;IAClB,CAAC,CAAC;IACF,IAAI,IAAAa,iBAAO,EAACjB,OAAO,CAAC,EAAE;MACpB,OAAO;QAAEkB,iBAAiB,EAAE;MAAG,CAAC;IAClC;IAEA,OAAO,IAAI,CAACC,mBAAmB,CAAClC,OAAO,EAAEe,OAAO,CAAC;EACnD;EAEA,MAAcmB,mBAAmBA,CAAClC,OAAqB,EAAEmC,MAAuB,EAA4B;IAC1G,MAAMC,cAA8B,GAAGtF,MAAM,CAACuF,MAAM,CAACrC,OAAO,EAAE;MAC5D+B,OAAO,EAAE,EAAE;MACXO,KAAK,EAAE,EAAE;MACTC,WAAW,EAAEvC,OAAO,CAACO,GAAG;MACxBiC,QAAQ,EAAE;QACRC,SAAS,EAAG,GAAEnD,+BAAgC,OAAM;QACpDoD,KAAK,EAAE1C,OAAO,CAACa,EAAE;QACjB8B,aAAa,EAAE;MACjB;IACF,CAAC,CAAC;IAEF,MAAMC,cAAc,GAAG,MAAM,IAAA5B,qBAAS,EAAClE,MAAM,CAAC+F,OAAO,CAACV,MAAM,CAAC,EAAE,OAAO,GAAGW,YAAY,CAAC,KAAK;MACzFV,cAAc,CAACL,OAAO,GAAGe,YAAY,CAACf,OAAO;MAC7C,MAAMgB,OAAgB,GAAG,MAAMD,YAAY,CAAClB,eAAe,CAACoB,kBAAkB,CAACZ,cAAc,CAAC;MAC9F,MAAMa,aAAa,GAAG,MAAMF,OAAO,CAACG,GAAG,CAAC,CAAC;MACzC,OAAOD,aAAa;IACtB,CAAC,CAAC;IAEF,MAAME,OAAO,GAAG,MAAM,IAAI,CAACC,cAAc,CAAChB,cAAc,EAAE,IAAAiB,iBAAO,EAACT,cAAc,CAAC,CAAC;IAClF,OAAOO,OAAO;EAChB;EAEQxB,uBAAuBA,CAACP,MAAqB,EAAW;IAC9D,IAAI,IAAI,CAACxB,YAAY,CAAC0D,SAAS,CAAClC,MAAM,CAACP,EAAE,CAAC,IAAIO,MAAM,CAACP,EAAE,KAAK,4BAA4B,EAAE,OAAO,IAAI;IACrG,MAAMS,GAAG,GAAGF,MAAM,CAACE,GAAG;IACtB,IAAIA,GAAG,CAAC0B,kBAAkB,IAAI,OAAO1B,GAAG,CAAC0B,kBAAkB,KAAK,UAAU,EAAE,OAAO,KAAK;IACxF,OAAO,IAAI;EACb;EAEA,MAActB,yBAAyBA,CACrC1B,OAAqB,EACrBuD,YAAuB,EACvBnC,MAAqB,EACrBjB,UAA+B,EACF;IAC7B,MAAMqD,gBAAgB,GAAG,IAAI,CAAC9D,OAAO,CAAC+D,mBAAmB,CAACrC,MAAM,CAACE,GAAG,CAAC;IAErE,MAAMoC,KAAK,GAAG,MAAM,IAAI,CAAC7D,kBAAkB,CAAC8D,iCAAiC,CAACvC,MAAM,CAACE,GAAG,CAAC;IACzF;IACA;IACA,MAAMsC,OAAO,GAAG5D,OAAO,CAACS,cAAc,CAACoD,aAAa,CAACC,UAAU,CAACP,YAAY,CAAC1C,EAAE,CAAC;IAChF,IAAI,CAAC+C,OAAO,EAAE,MAAM,IAAIG,KAAK,CAAC,kBAAkB,CAAC;IACjD;IACA;IACA,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACtE,OAAO,CAACuE,mBAAmB,CAACjE,OAAO,EAAE,CAACuD,YAAY,CAAC1C,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjG,MAAM+B,OAAO,GAAG,MAAM,IAAI,CAACqB,eAAe,CAAC;MACzC9C,MAAM;MACN+C,oBAAoB,EAAEX,gBAAgB,CAACW,oBAAoB,IAAI,KAAK;MACpEC,OAAO,EAAER,OAAO,CAACS,IAAI;MACrBX,KAAK;MACLM;IACF,CAAC,CAAC;IAEF,MAAMM,UAAU,GAAG,IAAI,CAACC,iBAAiB,CAACvE,OAAO,EAAEuD,YAAY,CAAC;IAChE,IAAI,CAAC,IAAAiB,qBAAU,EAACF,UAAU,CAAC,EAAE,IAAAG,qBAAU,EAACH,UAAU,CAAC;IACnD,MAAMI,kBAAkB,GAAG,MAAM,IAAI,CAAChF,OAAO,CAACiF,cAAc,CAACC,kBAAW,CAACnD,IAAI,EAAE,CAAC8B,YAAY,CAAC1C,EAAE,CAAC,EAAEM,SAAS,EAAE;MAC3G0D,aAAa,EAAE,IAAI;MACnB;MACAC,eAAe,EAAE;IACnB,CAAC,CAAC;IACF,MAAMC,WAAW,GAAGL,kBAAkB,CAAC,CAAC,CAAC;IACzC,MAAMM,WAAW,GAAGD,WAAW,EAAEE,UAAU;IAE3C,IAAI,CAACD,WAAW,EAAE;MAChB,IAAI,CAAClF,MAAM,CAACoF,IAAI,CAAE,kEAAiE3B,YAAY,CAAC1C,EAAE,CAACC,QAAQ,CAAC,CAAE,EAAC,CAAC;IAClH;IAEA,OAAO;MACL4C,KAAK;MACLyB,IAAI,EAAEhF,UAAU;MAChB0C,OAAO;MACPuC,QAAQ,EAAE;QAAEC,WAAW,EAAE;MAAK,CAAC;MAC/BpE,UAAU,EAAE,CAACsC,YAAY,CAAC;MAC1Be,UAAU;MACV;MACAU,WAAW;MACXM,gBAAgB,EAAE5B,KAAK;MACvB6B,qBAAqB,EAAE;IACzB,CAAC;EACH;EAEA,MAAcrB,eAAeA,CAAC;IAC5BF,WAAW;IACXI,OAAO;IACPV,KAAK;IACLtC,MAAM;IACN+C;EAOF,CAAC,EAAE;IACD,MAAMqB,cAAc,GAAG,MAAM,IAAI,CAACC,iBAAiB,CAACrE,MAAM,CAAC;IAC3D,MAAMsE,cAAc,GAAGF,cAAc,CAACpF,GAAG,CAACuF,IAAA,IAA6B;MAAA,IAA5B;UAAElE,IAAI;UAAE4C;QAAc,CAAC,GAAAsB,IAAA;QAANC,IAAI,GAAA7H,wBAAA,CAAA4H,IAAA,EAAArJ,SAAA;MAC9D,MAAMuJ,QAAQ,GAAG,IAAI,CAACnG,OAAO,CAACoG,SAAS,CACrCrE,IAAI,EACJsE,yBAAY,CAACC,MAAM,CAAC,EAAE,CAAC,EACvB;QAAEvJ,OAAO,EAAE4H;MAAK,CAAC,EACjBD,OAAO,EACPD,oBACF,CAAC;MAED,OAAA5G,aAAA,CAAAA,aAAA;QAASkE,IAAI;QAAE4C;MAAI,GAAKuB,IAAI;QAAEtD,KAAK,EAAEuD;MAAQ;IAC/C,CAAC,CAAC;IACF,MAAMI,QAAQ,GAAG,MAAM,IAAAC,gCAAa,EAACxC,KAAK,EAAEU,OAAO,CAAC;IAEpD,MAAMvB,OAAO,GAAG,IAAAsD,iCAAuB,EAAC;MACtCzC,KAAK,EAAEuC,QAAQ;MACfG,eAAe,EAAEpC,WAAW;MAC5BwB,cAAc,EAAEE;IAClB,CAAC,CAAC;IACF,OAAO7C,OAAO;EAChB;EAEA,MAAMO,cAAcA,CAACpD,OAAuB,EAAEmD,OAAwB,EAAE;IACtE,MAAMkD,UAAU,GAAGlD,OAAO,CAAC/C,GAAG,CAAEkG,MAAM,IAAK;MACzC,MAAMrE,iBAAoC,GAAGqE,MAAM,CAACrF,UAAU,CAACb,GAAG,CAAEQ,SAAS,IAAK;QAChF,OAAO;UACLA,SAAS;UACT2F,MAAM,EAAED,MAAM,CAACC,MAAM,CAACnG,GAAG,CAAEoG,GAAG,IAAM,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAACC,OAAQ,CAAC;UACjFC,OAAO,EAAEJ,MAAM,CAACK,QAAQ;UACxBC,SAAS,EAAEN,MAAM,CAACM,SAAS;UAC3BC,OAAO,EAAEP,MAAM,CAACO;QAClB,CAAC;MACH,CAAC,CAAC;MACF,OAAO5E,iBAAiB;IAC1B,CAAC,CAAC;IAEF,MAAMA,iBAAiB,GAAG,IAAAoB,iBAAO,EAACgD,UAAU,CAAC;IAE7C,MAAMS,SAAS,GAAGC,cAAc,CAAC,CAAC;IAElC,OAAO;MACL9E,iBAAiB;MACjB6E;IACF,CAAC;EACH;EAEA,MAAcrB,iBAAiBA,CAACrE,MAAqB,EAA2B;IAC9E,MAAMnB,WAAW,GAAG,IAAI,CAACP,OAAO,CAACQ,OAAO,CAAC,CAAC;IAE1C,MAAM8G,OAAO,GAAG,IAAAC,iBAAO,EACrB,MAAMC,OAAO,CAACC,GAAG,CACflH,WAAW,CAACG,GAAG,CAAC,MAAOgH,GAAG,IAAK;MAC7B,IAAI,CAACA,GAAG,CAACC,uBAAuB,EAAE,OAAOlG,SAAS;MAClD,OAAO;QACLM,IAAI,EAAE2F,GAAG,CAACE,MAAM;QAChBjD,IAAI,EAAE,CAAC,MAAM+C,GAAG,CAACC,uBAAuB,CAACjG,MAAM,CAACE,GAAG,CAAC,KAAK,EAAE;QAC3DiG,OAAO,EAAEH,GAAG,CAACG;MACf,CAAC;IACH,CAAC,CACH,CACF,CAAC;IAED,OAAOP,OAAO;EAChB;EAEQzC,iBAAiBA,CAACvE,OAAqB,EAAEY,SAAoB,EAAE;IACrE,MAAMgD,OAAO,GAAG5D,OAAO,CAACS,cAAc,CAACoD,aAAa,CAACC,UAAU,CAAClD,SAAS,CAACC,EAAE,CAAC;IAC7E,IAAI,CAAC+C,OAAO,EAAE,MAAM,IAAIG,KAAK,CAAC,kBAAkB,CAAC;IACjD,OAAO,IAAAyD,YAAI,EAAC5D,OAAO,CAACS,IAAI,EAAEoD,oBAAoB,CAAC,CAAC,CAAC;EACnD;AACF;AAAClI,OAAA,CAAAC,sBAAA,GAAAA,sBAAA;AAEM,SAASiI,oBAAoBA,CAAA,EAAG;EACrC,OAAO,IAAAD,YAAI,EAACE,gCAAqB,EAAE,cAAc,CAAC;AACpD;AAEO,SAASX,cAAcA,CAAA,EAAG;EAC/B,OAAO,CACL;IACEtF,IAAI,EAAE,cAAc;IACpBkG,YAAY,EAAE,CAAC,IAAI,CAAC;IACpBC,OAAO,EAAEH,oBAAoB,CAAC;EAChC,CAAC,CACF;AACH"}
|
|
@@ -4,7 +4,7 @@ import type { NextFunction, Request, Response } from '@teambit/express';
|
|
|
4
4
|
import type { ComponentUrlParams, RegisteredComponentRoute } from '@teambit/component';
|
|
5
5
|
import type { Logger } from '@teambit/logger';
|
|
6
6
|
import type { PreviewMain } from './preview.main.runtime';
|
|
7
|
-
|
|
7
|
+
type UrlParams = ComponentUrlParams & {
|
|
8
8
|
filePath?: string;
|
|
9
9
|
};
|
|
10
10
|
export declare class EnvTemplateRoute implements RegisteredComponentRoute {
|
package/dist/execution-ref.d.ts
CHANGED
package/dist/generate-link.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function fetchComponentAspects(componentId: string): Promise<string[]
|
|
1
|
+
export declare function fetchComponentAspects(componentId: string): Promise<string[]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.108/dist/preview.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.108/dist/preview.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -3,6 +3,6 @@ export declare class PreviewArtifact {
|
|
|
3
3
|
private artifacts;
|
|
4
4
|
constructor(artifacts: AbstractVinyl[]);
|
|
5
5
|
getPaths(): string[];
|
|
6
|
-
getFile(path: string): AbstractVinyl
|
|
7
|
-
getFileEndsWith(path: string): AbstractVinyl
|
|
6
|
+
getFile(path: string): AbstractVinyl;
|
|
7
|
+
getFileEndsWith(path: string): AbstractVinyl;
|
|
8
8
|
}
|
package/dist/preview-env.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PreviewModule, ModuleFile } from './types/preview-module';
|
|
2
|
-
|
|
2
|
+
type ModuleId = string;
|
|
3
3
|
export declare class PreviewModules extends Map<ModuleId, PreviewModule> {
|
|
4
4
|
onSet: Set<() => void>;
|
|
5
5
|
set(id: ModuleId, preview: PreviewModule): this;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const Logo: () =>
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Logo: () => JSX.Element;
|
|
@@ -17,14 +17,14 @@ import { MainModulesMap } from './generate-link';
|
|
|
17
17
|
import { PreviewArtifact } from './preview-artifact';
|
|
18
18
|
import { PreviewDefinition } from './preview-definition';
|
|
19
19
|
import { BundlingStrategy } from './bundling-strategy';
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
20
|
+
export type PreviewDefinitionRegistry = SlotRegistry<PreviewDefinition>;
|
|
21
|
+
export type PreviewStrategyName = 'env' | 'component';
|
|
22
|
+
export type PreviewFiles = {
|
|
23
23
|
files: string[];
|
|
24
24
|
isBundledWithEnv: boolean;
|
|
25
25
|
};
|
|
26
|
-
export
|
|
27
|
-
export
|
|
26
|
+
export type ComponentPreviewSizedFile = Asset;
|
|
27
|
+
export type ComponentPreviewSize = {
|
|
28
28
|
files: ComponentPreviewSizedFile[];
|
|
29
29
|
assets: ComponentPreviewSizedFile[];
|
|
30
30
|
totalFiles: number;
|
|
@@ -34,20 +34,20 @@ export declare type ComponentPreviewSize = {
|
|
|
34
34
|
total: number;
|
|
35
35
|
compressedTotal?: number;
|
|
36
36
|
};
|
|
37
|
-
export
|
|
37
|
+
export type ComponentPreviewMetaData = {
|
|
38
38
|
size?: ComponentPreviewSize;
|
|
39
39
|
};
|
|
40
|
-
export
|
|
40
|
+
export type PreviewVariantConfig = {
|
|
41
41
|
isScaling?: boolean;
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* Preview data that stored on the component on load
|
|
45
45
|
*/
|
|
46
|
-
export
|
|
46
|
+
export type PreviewComponentData = PreviewAnyComponentData & PreviewEnvComponentData;
|
|
47
47
|
/**
|
|
48
48
|
* Preview data that stored on the component on load for any component
|
|
49
49
|
*/
|
|
50
|
-
export
|
|
50
|
+
export type PreviewAnyComponentData = {
|
|
51
51
|
doesScaling?: boolean;
|
|
52
52
|
/**
|
|
53
53
|
* The strategy configured by the component's env
|
|
@@ -66,10 +66,10 @@ export declare type PreviewAnyComponentData = {
|
|
|
66
66
|
/**
|
|
67
67
|
* Preview data that stored on the component on load if the component is an env
|
|
68
68
|
*/
|
|
69
|
-
export
|
|
69
|
+
export type PreviewEnvComponentData = {
|
|
70
70
|
isScaling?: boolean;
|
|
71
71
|
};
|
|
72
|
-
export
|
|
72
|
+
export type PreviewConfig = {
|
|
73
73
|
bundlingStrategy?: string;
|
|
74
74
|
disabled: boolean;
|
|
75
75
|
/**
|
|
@@ -79,12 +79,12 @@ export declare type PreviewConfig = {
|
|
|
79
79
|
*/
|
|
80
80
|
maxChunkSize?: number;
|
|
81
81
|
};
|
|
82
|
-
export
|
|
82
|
+
export type EnvPreviewConfig = {
|
|
83
83
|
strategyName?: PreviewStrategyName;
|
|
84
84
|
splitComponentBundle?: boolean;
|
|
85
85
|
};
|
|
86
|
-
export
|
|
87
|
-
export
|
|
86
|
+
export type BundlingStrategySlot = SlotRegistry<BundlingStrategy>;
|
|
87
|
+
export type GenerateLinkFn = (prefix: string, componentMap: ComponentMap<string[]>, defaultModule?: string) => string;
|
|
88
88
|
export declare class PreviewMain {
|
|
89
89
|
/**
|
|
90
90
|
* harmony context.
|