@teambit/preview 1.0.122 → 1.0.124

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.
@@ -0,0 +1,42 @@
1
+ /*!
2
+ Copyright (c) 2018 Jed Watson.
3
+ Licensed under the MIT License (MIT), see
4
+ http://jedwatson.github.io/classnames
5
+ */
6
+
7
+ /*!
8
+ Copyright (c) 2017 Jed Watson.
9
+ Licensed under the MIT License (MIT), see
10
+ http://jedwatson.github.io/classnames
11
+ */
12
+
13
+ /*!
14
+ * is-primitive <https://github.com/jonschlinkert/is-primitive>
15
+ *
16
+ * Copyright (c) 2014-present, Jon Schlinkert.
17
+ * Released under the MIT License.
18
+ */
19
+
20
+ /*! *****************************************************************************
21
+ Copyright (C) Microsoft. All rights reserved.
22
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
23
+ this file except in compliance with the License. You may obtain a copy of the
24
+ License at http://www.apache.org/licenses/LICENSE-2.0
25
+
26
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
27
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
28
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
29
+ MERCHANTABLITY OR NON-INFRINGEMENT.
30
+
31
+ See the Apache Version 2.0 License for specific language governing permissions
32
+ and limitations under the License.
33
+ ***************************************************************************** */
34
+
35
+ /**
36
+ * @license
37
+ * Lodash <https://lodash.com/>
38
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
39
+ * Released under MIT license <https://lodash.com/license>
40
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
41
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
42
+ */
@@ -41,7 +41,7 @@ function generateLink(prefix, componentMap, mainModulesMap, isSplitComponentBund
41
41
  });
42
42
  }
43
43
  return `
44
- import { linkModules } from '${(0, _toolboxPath().toWindowsCompatiblePath)(require.resolve('./preview.preview.runtime'))}';
44
+ import { linkModules } from '@teambit/preview/dist/preview.preview.runtime.js';
45
45
 
46
46
  ${links.map(link => link.modules.map(module => `import * as ${module.varName} from "${module.resolveFrom}";`).join('\n')).filter(line => line !== '') // prevent empty lines
47
47
  .join('\n')}
@@ -1 +1 @@
1
- {"version":3,"names":["_toolboxPath","data","require","_camelcase","_interopRequireDefault","obj","__esModule","default","generateLink","prefix","componentMap","mainModulesMap","isSplitComponentBundle","links","toArray","map","component","modulePath","compIdx","componentIdentifier","id","fullName","modules","path","pathIdx","varName","moduleVarName","resolveFrom","toWindowsCompatiblePath","modulesLinks","Object","entries","envId","getEnvVarName","resolve","link","module","join","filter","line","componentIdx","fileIdx","envNameFormatted","camelcase","replace"],"sources":["generate-link.ts"],"sourcesContent":["import { toWindowsCompatiblePath } from '@teambit/toolbox.path.to-windows-compatible-path';\nimport camelcase from 'camelcase';\nimport type { ComponentMap } from '@teambit/component';\n\nexport type MainModulesMap = {\n /**\n * Path to default module in case there is no specific module for the current environment.\n */\n default: string;\n [envId: string]: string;\n};\n\n// :TODO refactor to building an AST and generate source code based on it.\nexport function generateLink(\n prefix: string,\n componentMap: ComponentMap<string[]>,\n mainModulesMap?: MainModulesMap,\n isSplitComponentBundle = false\n): string {\n const links = componentMap.toArray().map(([component, modulePath], compIdx) => ({\n componentIdentifier: component.id.fullName,\n modules: modulePath.map((path, pathIdx) => ({\n varName: moduleVarName(compIdx, pathIdx),\n resolveFrom: toWindowsCompatiblePath(path),\n })),\n }));\n\n let modulesLinks;\n if (mainModulesMap) {\n modulesLinks = Object.entries(mainModulesMap).map(([envId, path]) => {\n const resolveFrom = toWindowsCompatiblePath(path);\n const varName = getEnvVarName(envId);\n return { envId, varName, resolveFrom };\n });\n }\n\n return `\nimport { linkModules } from '${toWindowsCompatiblePath(require.resolve('./preview.preview.runtime'))}';\n\n${links\n .map((link) => link.modules.map((module) => `import * as ${module.varName} from \"${module.resolveFrom}\";`).join('\\n'))\n .filter((line) => line !== '') // prevent empty lines\n .join('\\n')}\n\n${modulesLinks.map((module) => `import * as ${module.varName} from \"${module.resolveFrom}\";`).join('\\n')}\n\nlinkModules('${prefix}', {\n modulesMap: {\n ${modulesLinks\n // must include all components, including empty\n .map((module) => `\"${module.envId}\": ${module.varName}`)\n .join(',\\n ')}\n },\n isSplitComponentBundle: ${isSplitComponentBundle},\n componentMap: {\n${links\n // must include all components, including empty\n .map((link) => ` \"${link.componentIdentifier}\": [${link.modules.map((module) => module.varName).join(', ')}]`)\n .join(',\\n')}\n }\n});\n`;\n}\n\nfunction moduleVarName(componentIdx: number, fileIdx: number) {\n return `file_${componentIdx}_${fileIdx}`;\n}\n\nfunction getEnvVarName(envId: string) {\n const envNameFormatted = camelcase(envId.replace('@', '').replace('.', '-').replace(/\\//g, '-'));\n const varName = `${envNameFormatted}MainModule`;\n return varName;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_toolboxPath","data","require","_camelcase","_interopRequireDefault","obj","__esModule","default","generateLink","prefix","componentMap","mainModulesMap","isSplitComponentBundle","links","toArray","map","component","modulePath","compIdx","componentIdentifier","id","fullName","modules","path","pathIdx","varName","moduleVarName","resolveFrom","toWindowsCompatiblePath","modulesLinks","Object","entries","envId","getEnvVarName","link","module","join","filter","line","componentIdx","fileIdx","envNameFormatted","camelcase","replace"],"sources":["generate-link.ts"],"sourcesContent":["import { toWindowsCompatiblePath } from '@teambit/toolbox.path.to-windows-compatible-path';\nimport camelcase from 'camelcase';\nimport type { ComponentMap } from '@teambit/component';\n\nexport type MainModulesMap = {\n /**\n * Path to default module in case there is no specific module for the current environment.\n */\n default: string;\n [envId: string]: string;\n};\n\n// :TODO refactor to building an AST and generate source code based on it.\nexport function generateLink(\n prefix: string,\n componentMap: ComponentMap<string[]>,\n mainModulesMap?: MainModulesMap,\n isSplitComponentBundle = false\n): string {\n const links = componentMap.toArray().map(([component, modulePath], compIdx) => ({\n componentIdentifier: component.id.fullName,\n modules: modulePath.map((path, pathIdx) => ({\n varName: moduleVarName(compIdx, pathIdx),\n resolveFrom: toWindowsCompatiblePath(path),\n })),\n }));\n\n let modulesLinks;\n if (mainModulesMap) {\n modulesLinks = Object.entries(mainModulesMap).map(([envId, path]) => {\n const resolveFrom = toWindowsCompatiblePath(path);\n const varName = getEnvVarName(envId);\n return { envId, varName, resolveFrom };\n });\n }\n\n return `\nimport { linkModules } from '@teambit/preview/dist/preview.preview.runtime.js';\n\n${links\n .map((link) => link.modules.map((module) => `import * as ${module.varName} from \"${module.resolveFrom}\";`).join('\\n'))\n .filter((line) => line !== '') // prevent empty lines\n .join('\\n')}\n\n${modulesLinks.map((module) => `import * as ${module.varName} from \"${module.resolveFrom}\";`).join('\\n')}\n\nlinkModules('${prefix}', {\n modulesMap: {\n ${modulesLinks\n // must include all components, including empty\n .map((module) => `\"${module.envId}\": ${module.varName}`)\n .join(',\\n ')}\n },\n isSplitComponentBundle: ${isSplitComponentBundle},\n componentMap: {\n${links\n // must include all components, including empty\n .map((link) => ` \"${link.componentIdentifier}\": [${link.modules.map((module) => module.varName).join(', ')}]`)\n .join(',\\n')}\n }\n});\n`;\n}\n\nfunction moduleVarName(componentIdx: number, fileIdx: number) {\n return `file_${componentIdx}_${fileIdx}`;\n}\n\nfunction getEnvVarName(envId: string) {\n const envNameFormatted = camelcase(envId.replace('@', '').replace('.', '-').replace(/\\//g, '-'));\n const varName = `${envNameFormatted}MainModule`;\n return varName;\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { UIRoot } from '@teambit/ui';
2
+ import { SlotRegistry } from '@teambit/harmony';
3
+ import { ArtifactDefinition } from '@teambit/builder';
4
+ export type UIRootRegistry = SlotRegistry<UIRoot>;
5
+ export declare const BUNDLE_HASH_FILENAME = ".hash";
6
+ export declare function readBundleHash(bundleId: string, bundleDir: string, aspectDir: string): string;
7
+ export declare function createBundleHash(uiRoot: UIRoot, runtime: string): Promise<string>;
8
+ export declare function generateBundleHash(uiRoot: UIRoot, runtime: string, outputPath: string): Promise<void>;
9
+ export declare function getBundleArtifactDirectory(bundleDir: string, aspectDir: string): string;
10
+ export declare function getBundleArtifactDef(bundleDir: string, aspectDir: string): ArtifactDefinition;
11
+ export declare function getBundlePath(bundleId: string, bundleDir: string, aspectDir: string): string | undefined;
12
+ export declare function clearConsole(): void;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BUNDLE_HASH_FILENAME = void 0;
7
+ exports.clearConsole = clearConsole;
8
+ exports.createBundleHash = createBundleHash;
9
+ exports.generateBundleHash = generateBundleHash;
10
+ exports.getBundleArtifactDef = getBundleArtifactDef;
11
+ exports.getBundleArtifactDirectory = getBundleArtifactDirectory;
12
+ exports.getBundlePath = getBundlePath;
13
+ exports.readBundleHash = readBundleHash;
14
+ function _path() {
15
+ const data = require("path");
16
+ _path = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _fsExtra() {
22
+ const data = require("fs-extra");
23
+ _fsExtra = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _aspectLoader() {
29
+ const data = require("@teambit/aspect-loader");
30
+ _aspectLoader = function () {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
35
+ function _utils() {
36
+ const data = require("@teambit/legacy/dist/utils");
37
+ _utils = function () {
38
+ return data;
39
+ };
40
+ return data;
41
+ }
42
+ /// utils
43
+
44
+ // bundle hash
45
+
46
+ const BUNDLE_HASH_FILENAME = exports.BUNDLE_HASH_FILENAME = '.hash';
47
+ function readBundleHash(bundleId, bundleDir, aspectDir) {
48
+ const bundleUiPathFromBvm = getBundlePath(bundleId, bundleDir, aspectDir);
49
+ if (!bundleUiPathFromBvm) {
50
+ return '';
51
+ }
52
+ const hashFilePath = (0, _path().join)(bundleUiPathFromBvm, BUNDLE_HASH_FILENAME);
53
+ if ((0, _fsExtra().existsSync)(hashFilePath)) {
54
+ return (0, _fsExtra().readFileSync)(hashFilePath).toString();
55
+ }
56
+ return '';
57
+ }
58
+ async function createBundleHash(uiRoot, runtime) {
59
+ const aspects = await uiRoot.resolveAspects(runtime);
60
+ aspects.sort((a, b) => (a.getId || a.aspectPath) > (b.getId || b.aspectPath) ? 1 : -1);
61
+ const aspectPathStrings = aspects.map(aspect => {
62
+ return [aspect.aspectPath, aspect.runtimePath].join('');
63
+ });
64
+ return (0, _utils().sha1)(aspectPathStrings.join(''));
65
+ }
66
+ async function generateBundleHash(uiRoot, runtime, outputPath) {
67
+ const hash = await createBundleHash(uiRoot, runtime);
68
+ if (!(0, _fsExtra().existsSync)(outputPath)) (0, _fsExtra().mkdirSync)(outputPath);
69
+ (0, _fsExtra().writeFileSync)((0, _path().join)(outputPath, BUNDLE_HASH_FILENAME), hash);
70
+ }
71
+
72
+ // bundle artifact
73
+
74
+ function getBundleArtifactDirectory(bundleDir, aspectDir) {
75
+ return (0, _path().join)('artifacts', bundleDir, aspectDir);
76
+ }
77
+ function getBundleArtifactDef(bundleDir, aspectDir) {
78
+ const rootDir = getBundleArtifactDirectory(bundleDir, aspectDir);
79
+ return {
80
+ name: `${bundleDir}${aspectDir ? '-' : ''}${aspectDir}`,
81
+ globPatterns: [`${rootDir}/**`]
82
+ };
83
+ }
84
+ function getBundlePath(bundleId, bundleDir, aspectDir) {
85
+ try {
86
+ const dirFromBvms = (0, _aspectLoader().getAspectDirFromBvm)(bundleId);
87
+ const bundlePath = (0, _path().join)(dirFromBvms, getBundleArtifactDirectory(bundleDir, aspectDir));
88
+ if (!(0, _fsExtra().existsSync)(bundlePath)) {
89
+ return undefined;
90
+ }
91
+ return bundlePath;
92
+ } catch (err) {
93
+ return undefined;
94
+ }
95
+ }
96
+
97
+ // others
98
+
99
+ function clearConsole() {
100
+ process.stdout.write(process.platform === 'win32' ? '\x1B[2J\x1B[0f' : '\x1B[2J\x1B[3J\x1B[H');
101
+ }
102
+
103
+ //# sourceMappingURL=pre-bundle-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_path","data","require","_fsExtra","_aspectLoader","_utils","BUNDLE_HASH_FILENAME","exports","readBundleHash","bundleId","bundleDir","aspectDir","bundleUiPathFromBvm","getBundlePath","hashFilePath","join","existsSync","readFileSync","toString","createBundleHash","uiRoot","runtime","aspects","resolveAspects","sort","a","b","getId","aspectPath","aspectPathStrings","map","aspect","runtimePath","sha1","generateBundleHash","outputPath","hash","mkdirSync","writeFileSync","getBundleArtifactDirectory","getBundleArtifactDef","rootDir","name","globPatterns","dirFromBvms","getAspectDirFromBvm","bundlePath","undefined","err","clearConsole","process","stdout","write","platform"],"sources":["pre-bundle-utils.ts"],"sourcesContent":["import { join } from 'path';\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs-extra';\nimport { UIRoot } from '@teambit/ui';\nimport { getAspectDirFromBvm } from '@teambit/aspect-loader';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { ArtifactDefinition } from '@teambit/builder';\nimport { sha1 } from '@teambit/legacy/dist/utils';\n\n/// utils\n\nexport type UIRootRegistry = SlotRegistry<UIRoot>;\n\n// bundle hash\n\nexport const BUNDLE_HASH_FILENAME = '.hash';\n\nexport function readBundleHash(bundleId: string, bundleDir: string, aspectDir: string): string {\n const bundleUiPathFromBvm = getBundlePath(bundleId, bundleDir, aspectDir);\n if (!bundleUiPathFromBvm) {\n return '';\n }\n const hashFilePath = join(bundleUiPathFromBvm, BUNDLE_HASH_FILENAME);\n if (existsSync(hashFilePath)) {\n return readFileSync(hashFilePath).toString();\n }\n return '';\n}\n\nexport async function createBundleHash(uiRoot: UIRoot, runtime: string): Promise<string> {\n const aspects = await uiRoot.resolveAspects(runtime);\n aspects.sort((a, b) => ((a.getId || a.aspectPath) > (b.getId || b.aspectPath) ? 1 : -1));\n const aspectPathStrings = aspects.map((aspect) => {\n return [aspect.aspectPath, aspect.runtimePath].join('');\n });\n return sha1(aspectPathStrings.join(''));\n}\n\nexport async function generateBundleHash(uiRoot: UIRoot, runtime: string, outputPath: string): Promise<void> {\n const hash = await createBundleHash(uiRoot, runtime);\n if (!existsSync(outputPath)) mkdirSync(outputPath);\n writeFileSync(join(outputPath, BUNDLE_HASH_FILENAME), hash);\n}\n\n// bundle artifact\n\nexport function getBundleArtifactDirectory(bundleDir: string, aspectDir: string) {\n return join('artifacts', bundleDir, aspectDir);\n}\n\nexport function getBundleArtifactDef(bundleDir: string, aspectDir: string): ArtifactDefinition {\n const rootDir = getBundleArtifactDirectory(bundleDir, aspectDir);\n return {\n name: `${bundleDir}${aspectDir ? '-' : ''}${aspectDir}`,\n globPatterns: [`${rootDir}/**`],\n };\n}\n\nexport function getBundlePath(bundleId: string, bundleDir: string, aspectDir: string): string | undefined {\n try {\n const dirFromBvms = getAspectDirFromBvm(bundleId);\n const bundlePath = join(dirFromBvms, getBundleArtifactDirectory(bundleDir, aspectDir));\n if (!existsSync(bundlePath)) {\n return undefined;\n }\n return bundlePath;\n } catch (err) {\n return undefined;\n }\n}\n\n// others\n\nexport function clearConsole() {\n process.stdout.write(process.platform === 'win32' ? '\\x1B[2J\\x1B[0f' : '\\x1B[2J\\x1B[3J\\x1B[H');\n}\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { AspectDefinition } from '@teambit/aspect-loader';
2
+ export declare const RUNTIME_NAME = "preview";
3
+ export declare const PUBLIC_DIR = "public/bit-preview";
4
+ export declare const UIROOT_ASPECT_ID = "teambit.workspace/workspace";
5
+ export declare const generatePreBundlePreviewEntry: (aspectDefs: AspectDefinition[], rootExtensionName: string, runtimeName: string, rootAspectId: string, dir: string) => string;
6
+ export declare function buildPreBundlePreview(resolvedAspects: AspectDefinition[], customOutputDir?: string): Promise<any>;
7
+ export declare function generateBundlePreviewEntry(rootAspectId: string, previewPreBundlePath: string, config: object): Promise<string>;
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UIROOT_ASPECT_ID = exports.RUNTIME_NAME = exports.PUBLIC_DIR = void 0;
7
+ exports.buildPreBundlePreview = buildPreBundlePreview;
8
+ exports.generateBundlePreviewEntry = generateBundlePreviewEntry;
9
+ exports.generatePreBundlePreviewEntry = void 0;
10
+ function _path() {
11
+ const data = require("path");
12
+ _path = function () {
13
+ return data;
14
+ };
15
+ return data;
16
+ }
17
+ function _fsExtra() {
18
+ const data = _interopRequireWildcard(require("fs-extra"));
19
+ _fsExtra = function () {
20
+ return data;
21
+ };
22
+ return data;
23
+ }
24
+ function _ui() {
25
+ const data = require("@teambit/ui");
26
+ _ui = function () {
27
+ return data;
28
+ };
29
+ return data;
30
+ }
31
+ function _utils() {
32
+ const data = require("@teambit/legacy/dist/utils");
33
+ _utils = function () {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
38
+ function _webpack() {
39
+ const data = _interopRequireDefault(require("webpack"));
40
+ _webpack = function () {
41
+ return data;
42
+ };
43
+ return data;
44
+ }
45
+ function _util() {
46
+ const data = require("util");
47
+ _util = function () {
48
+ return data;
49
+ };
50
+ return data;
51
+ }
52
+ function _preview() {
53
+ const data = require("./preview.aspect");
54
+ _preview = function () {
55
+ return data;
56
+ };
57
+ return data;
58
+ }
59
+ function _webpack2() {
60
+ const data = require("./webpack/webpack.config");
61
+ _webpack2 = function () {
62
+ return data;
63
+ };
64
+ return data;
65
+ }
66
+ function _preBundleUtils() {
67
+ const data = require("./pre-bundle-utils");
68
+ _preBundleUtils = function () {
69
+ return data;
70
+ };
71
+ return data;
72
+ }
73
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
74
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
75
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
76
+ const RUNTIME_NAME = exports.RUNTIME_NAME = 'preview';
77
+ const PUBLIC_DIR = exports.PUBLIC_DIR = 'public/bit-preview';
78
+ const UIROOT_ASPECT_ID = exports.UIROOT_ASPECT_ID = 'teambit.workspace/workspace';
79
+ const ENTRY_CONTENT_TEMPLATE = `__IMPORTS__
80
+
81
+ export const run = (config, customAspects = []) => {
82
+ const isBrowser = typeof window !== "undefined";
83
+ const windowConfig = isBrowser ? window.harmonyAppConfig : undefined;
84
+ const mergedConfig = { ...config, ...windowConfig };
85
+ __ID_SETTERS__
86
+ function render(...props) {
87
+ return Harmony.load(
88
+ [
89
+ ...customAspects,
90
+ __IDENTIFIERS__,
91
+ ],
92
+ __RUNTIME_NAME__,
93
+ mergedConfig
94
+ ).then((harmony) => {
95
+ return harmony
96
+ .run()
97
+ .then(() => harmony.get(__ROOT_ASPECT__))
98
+ .then((rootExtension) => {
99
+ const ssrSetup = !isBrowser && rootExtension.setupSsr;
100
+ const setup = rootExtension.setup;
101
+ const setupFunc = (ssrSetup || setup || function noop() {}).bind(
102
+ rootExtension
103
+ );
104
+ return Promise.resolve(setupFunc()).then(
105
+ () => {
106
+ return rootExtension
107
+ }
108
+ );
109
+ })
110
+ .then((rootExtension) => {
111
+ if (isBrowser) {
112
+ return rootExtension.render(
113
+ __ROOT_EXTENSION_NAME__,
114
+ ...props
115
+ );
116
+ } else {
117
+ return rootExtension.renderSsr(
118
+ __ROOT_EXTENSION_NAME__,
119
+ ...props
120
+ );
121
+ }
122
+ })
123
+ .catch((err) => {
124
+ throw err;
125
+ });
126
+ });
127
+ }
128
+ if (isBrowser || __RUNTIME_NAME__ === "main") render();
129
+ };
130
+ `;
131
+ const generatePreBundlePreviewEntry = (aspectDefs, rootExtensionName, runtimeName, rootAspectId, dir) => {
132
+ const harmonyImport = (0, _ui().createHarmonyImports)();
133
+ const imports = (0, _ui().createImports)(aspectDefs);
134
+ const identifiers = (0, _ui().getIdentifiers)(aspectDefs, 'Aspect');
135
+ const idSetters = (0, _ui().getIdSetters)(aspectDefs, 'Aspect');
136
+ const contents = ENTRY_CONTENT_TEMPLATE.replace('__IMPORTS__', [harmonyImport, imports].join('\n')).replace('__IDENTIFIERS__', identifiers.join(', ')).replace('__ID_SETTERS__', idSetters.join('\n')).replaceAll('__RUNTIME_NAME__', JSON.stringify(runtimeName)).replaceAll('__ROOT_ASPECT__', JSON.stringify(rootAspectId)).replaceAll('__ROOT_EXTENSION_NAME__', JSON.stringify(rootExtensionName));
137
+ const entryPath = (0, _path().resolve)((0, _path().join)(dir, `ui-bundle-entry.${(0, _utils().sha1)(contents)}.js`));
138
+ if (!_fsExtra().default.existsSync(entryPath)) {
139
+ _fsExtra().default.outputFileSync(entryPath, contents);
140
+ }
141
+ return entryPath;
142
+ };
143
+ exports.generatePreBundlePreviewEntry = generatePreBundlePreviewEntry;
144
+ async function buildPreBundlePreview(resolvedAspects, customOutputDir) {
145
+ const outputDir = customOutputDir || (0, _path().resolve)(PUBLIC_DIR);
146
+ const mainEntry = generatePreBundlePreviewEntry(resolvedAspects, UIROOT_ASPECT_ID, RUNTIME_NAME, _preview().PreviewAspect.id, __dirname);
147
+ const config = (0, _webpack2().createWebpackConfig)(outputDir, mainEntry);
148
+ const compiler = (0, _webpack().default)(config);
149
+ const compilerRun = (0, _util().promisify)(compiler.run.bind(compiler));
150
+ const results = await compilerRun();
151
+ if (!results) throw new Error();
152
+ if (results?.hasErrors()) {
153
+ (0, _preBundleUtils().clearConsole)();
154
+ throw new Error(results?.toString());
155
+ }
156
+ return results;
157
+ }
158
+ async function generateBundlePreviewEntry(rootAspectId, previewPreBundlePath, config) {
159
+ const manifestPath = (0, _path().join)(previewPreBundlePath, 'asset-manifest.json');
160
+ const manifest = (0, _fsExtra().readJsonSync)(manifestPath);
161
+ const imports = manifest.entrypoints.map(entry => entry.endsWith('.js') ? `import { run } from '${previewPreBundlePath}/${entry}';` : `import '${previewPreBundlePath}/${entry}';`).join('\n');
162
+ config['teambit.harmony/bit'] = rootAspectId;
163
+ const contents = [imports, `run(${JSON.stringify(config, null, 2)});`].join('\n');
164
+ const previewRuntime = (0, _path().resolve)((0, _path().join)(__dirname, `preview.entry.${(0, _utils().sha1)(contents)}.js`));
165
+ if (!(0, _fsExtra().existsSync)(previewRuntime)) {
166
+ (0, _fsExtra().outputFileSync)(previewRuntime, contents);
167
+ }
168
+ return previewRuntime;
169
+ }
170
+
171
+ //# sourceMappingURL=pre-bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_path","data","require","_fsExtra","_interopRequireWildcard","_ui","_utils","_webpack","_interopRequireDefault","_util","_preview","_webpack2","_preBundleUtils","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","RUNTIME_NAME","exports","PUBLIC_DIR","UIROOT_ASPECT_ID","ENTRY_CONTENT_TEMPLATE","generatePreBundlePreviewEntry","aspectDefs","rootExtensionName","runtimeName","rootAspectId","dir","harmonyImport","createHarmonyImports","imports","createImports","identifiers","getIdentifiers","idSetters","getIdSetters","contents","replace","join","replaceAll","JSON","stringify","entryPath","resolve","sha1","fs","existsSync","outputFileSync","buildPreBundlePreview","resolvedAspects","customOutputDir","outputDir","mainEntry","PreviewAspect","id","__dirname","config","createWebpackConfig","compiler","webpack","compilerRun","promisify","run","bind","results","Error","hasErrors","clearConsole","toString","generateBundlePreviewEntry","previewPreBundlePath","manifestPath","manifest","readJsonSync","entrypoints","map","entry","endsWith","previewRuntime"],"sources":["pre-bundle.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport fs, { existsSync, outputFileSync, readJsonSync } from 'fs-extra';\nimport { AspectDefinition } from '@teambit/aspect-loader';\nimport { createHarmonyImports, createImports, getIdSetters, getIdentifiers } from '@teambit/ui';\nimport { sha1 } from '@teambit/legacy/dist/utils';\nimport webpack from 'webpack';\nimport { promisify } from 'util';\nimport { PreviewAspect } from './preview.aspect';\nimport { createWebpackConfig } from './webpack/webpack.config';\nimport { clearConsole } from './pre-bundle-utils';\n\nexport const RUNTIME_NAME = 'preview';\nexport const PUBLIC_DIR = 'public/bit-preview';\nexport const UIROOT_ASPECT_ID = 'teambit.workspace/workspace';\n\nconst ENTRY_CONTENT_TEMPLATE = `__IMPORTS__\n\nexport const run = (config, customAspects = []) => {\n const isBrowser = typeof window !== \"undefined\";\n const windowConfig = isBrowser ? window.harmonyAppConfig : undefined;\n const mergedConfig = { ...config, ...windowConfig };\n __ID_SETTERS__\n function render(...props) {\n return Harmony.load(\n [\n ...customAspects,\n __IDENTIFIERS__,\n ],\n __RUNTIME_NAME__,\n mergedConfig\n ).then((harmony) => {\n return harmony\n .run()\n .then(() => harmony.get(__ROOT_ASPECT__))\n .then((rootExtension) => {\n const ssrSetup = !isBrowser && rootExtension.setupSsr;\n const setup = rootExtension.setup;\n const setupFunc = (ssrSetup || setup || function noop() {}).bind(\n rootExtension\n );\n return Promise.resolve(setupFunc()).then(\n () => {\n return rootExtension\n }\n );\n })\n .then((rootExtension) => {\n if (isBrowser) {\n return rootExtension.render(\n __ROOT_EXTENSION_NAME__,\n ...props\n );\n } else {\n return rootExtension.renderSsr(\n __ROOT_EXTENSION_NAME__,\n ...props\n );\n }\n })\n .catch((err) => {\n throw err;\n });\n });\n }\n if (isBrowser || __RUNTIME_NAME__ === \"main\") render();\n};\n`;\n\nexport const generatePreBundlePreviewEntry = (\n aspectDefs: AspectDefinition[],\n rootExtensionName: string,\n runtimeName: string,\n rootAspectId: string,\n dir: string\n) => {\n const harmonyImport = createHarmonyImports();\n const imports = createImports(aspectDefs);\n const identifiers = getIdentifiers(aspectDefs, 'Aspect');\n const idSetters = getIdSetters(aspectDefs, 'Aspect');\n const contents = ENTRY_CONTENT_TEMPLATE.replace('__IMPORTS__', [harmonyImport, imports].join('\\n'))\n .replace('__IDENTIFIERS__', identifiers.join(', '))\n .replace('__ID_SETTERS__', idSetters.join('\\n'))\n .replaceAll('__RUNTIME_NAME__', JSON.stringify(runtimeName))\n .replaceAll('__ROOT_ASPECT__', JSON.stringify(rootAspectId))\n .replaceAll('__ROOT_EXTENSION_NAME__', JSON.stringify(rootExtensionName));\n const entryPath = resolve(join(dir, `ui-bundle-entry.${sha1(contents)}.js`));\n if (!fs.existsSync(entryPath)) {\n fs.outputFileSync(entryPath, contents);\n }\n return entryPath;\n};\n\nexport async function buildPreBundlePreview(resolvedAspects: AspectDefinition[], customOutputDir?: string) {\n const outputDir = customOutputDir || resolve(PUBLIC_DIR);\n const mainEntry = generatePreBundlePreviewEntry(\n resolvedAspects,\n UIROOT_ASPECT_ID,\n RUNTIME_NAME,\n PreviewAspect.id,\n __dirname\n );\n const config = createWebpackConfig(outputDir, mainEntry);\n const compiler = webpack(config);\n const compilerRun = promisify(compiler.run.bind(compiler));\n const results = await compilerRun();\n if (!results) throw new Error();\n if (results?.hasErrors()) {\n clearConsole();\n throw new Error(results?.toString());\n }\n return results;\n}\n\nexport async function generateBundlePreviewEntry(rootAspectId: string, previewPreBundlePath: string, config: object) {\n const manifestPath = join(previewPreBundlePath, 'asset-manifest.json');\n const manifest = readJsonSync(manifestPath);\n const imports = manifest.entrypoints\n .map((entry: string) =>\n entry.endsWith('.js')\n ? `import { run } from '${previewPreBundlePath}/${entry}';`\n : `import '${previewPreBundlePath}/${entry}';`\n )\n .join('\\n');\n config['teambit.harmony/bit'] = rootAspectId;\n\n const contents = [imports, `run(${JSON.stringify(config, null, 2)});`].join('\\n');\n const previewRuntime = resolve(join(__dirname, `preview.entry.${sha1(contents)}.js`));\n\n if (!existsSync(previewRuntime)) {\n outputFileSync(previewRuntime, contents);\n }\n\n return previewRuntime;\n}\n"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { BuildContext, BuildTask, BuiltTaskResult, TaskLocation } from '@teambit/builder';
2
+ import { Logger } from '@teambit/logger';
3
+ import { UiMain } from '@teambit/ui';
4
+ export declare const BUNDLE_TASK_NAME = "PreBundlePreview";
5
+ export declare const BUNDLE_DIR = "ui-bundle";
6
+ export declare class PreBundlePreviewTask implements BuildTask {
7
+ private ui;
8
+ private logger;
9
+ aspectId: string;
10
+ name: string;
11
+ location: TaskLocation;
12
+ constructor(ui: UiMain, logger: Logger);
13
+ execute(context: BuildContext): Promise<BuiltTaskResult>;
14
+ private generateHash;
15
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PreBundlePreviewTask = exports.BUNDLE_TASK_NAME = exports.BUNDLE_DIR = void 0;
7
+ function _path() {
8
+ const data = require("path");
9
+ _path = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _builder() {
15
+ const data = require("@teambit/builder");
16
+ _builder = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _preBundleUtils() {
22
+ const data = require("./pre-bundle-utils");
23
+ _preBundleUtils = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _preBundle() {
29
+ const data = require("./pre-bundle");
30
+ _preBundle = function () {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
35
+ function _preview() {
36
+ const data = require("./preview.aspect");
37
+ _preview = function () {
38
+ return data;
39
+ };
40
+ return data;
41
+ }
42
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
43
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
44
+ 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); }
45
+ const BUNDLE_TASK_NAME = exports.BUNDLE_TASK_NAME = 'PreBundlePreview';
46
+ const BUNDLE_DIR = exports.BUNDLE_DIR = 'ui-bundle';
47
+ class PreBundlePreviewTask {
48
+ constructor(ui, logger) {
49
+ this.ui = ui;
50
+ this.logger = logger;
51
+ _defineProperty(this, "aspectId", _preview().PreviewAspect.id);
52
+ _defineProperty(this, "name", BUNDLE_TASK_NAME);
53
+ _defineProperty(this, "location", 'end');
54
+ }
55
+ async execute(context) {
56
+ const capsule = context.capsuleNetwork.seedersCapsules.find(c => c.component.id.toStringWithoutVersion() === _preview().PreviewAspect.id);
57
+ if (!capsule) {
58
+ return {
59
+ componentsResults: []
60
+ };
61
+ }
62
+ try {
63
+ const outputPath = (0, _path().join)(capsule.path, _builder().CAPSULE_ARTIFACTS_DIR, BUNDLE_DIR);
64
+ this.logger.info(`Generating UI bundle at ${outputPath}...`);
65
+ const [, uiRoot] = this.ui.getUi();
66
+ const resolvedAspects = await uiRoot.resolveAspects(_preBundle().RUNTIME_NAME);
67
+ await (0, _preBundle().buildPreBundlePreview)(resolvedAspects, outputPath);
68
+ await this.generateHash(outputPath);
69
+ } catch (error) {
70
+ this.logger.error('Generating UI bundle failed', error);
71
+ throw new Error('Generating UI bundle failed');
72
+ }
73
+ return {
74
+ componentsResults: [],
75
+ artifacts: [(0, _preBundleUtils().getBundleArtifactDef)(BUNDLE_DIR, '')]
76
+ };
77
+ }
78
+ async generateHash(outputPath) {
79
+ const maybeUiRoot = this.ui.getUi();
80
+ if (!maybeUiRoot) throw new Error('no uiRoot found');
81
+ const [, uiRoot] = maybeUiRoot;
82
+ await (0, _preBundleUtils().generateBundleHash)(uiRoot, _preBundle().RUNTIME_NAME, outputPath);
83
+ }
84
+ }
85
+ exports.PreBundlePreviewTask = PreBundlePreviewTask;
86
+
87
+ //# sourceMappingURL=pre-bundle.task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_path","data","require","_builder","_preBundleUtils","_preBundle","_preview","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","BUNDLE_TASK_NAME","exports","BUNDLE_DIR","PreBundlePreviewTask","constructor","ui","logger","PreviewAspect","id","execute","context","capsule","capsuleNetwork","seedersCapsules","find","c","component","toStringWithoutVersion","componentsResults","outputPath","join","path","CAPSULE_ARTIFACTS_DIR","info","uiRoot","getUi","resolvedAspects","resolveAspects","RUNTIME_NAME","buildPreBundlePreview","generateHash","error","Error","artifacts","getBundleArtifactDef","maybeUiRoot","generateBundleHash"],"sources":["pre-bundle.task.ts"],"sourcesContent":["import { join } from 'path';\nimport { BuildContext, BuildTask, BuiltTaskResult, CAPSULE_ARTIFACTS_DIR, TaskLocation } from '@teambit/builder';\nimport { Capsule } from '@teambit/isolator';\nimport { Logger } from '@teambit/logger';\nimport { UIRoot, UiMain } from '@teambit/ui';\nimport { generateBundleHash, getBundleArtifactDef } from './pre-bundle-utils';\nimport { RUNTIME_NAME, buildPreBundlePreview } from './pre-bundle';\nimport { PreviewAspect } from './preview.aspect';\n\nexport const BUNDLE_TASK_NAME = 'PreBundlePreview';\nexport const BUNDLE_DIR = 'ui-bundle';\n\nexport class PreBundlePreviewTask implements BuildTask {\n aspectId = PreviewAspect.id;\n name = BUNDLE_TASK_NAME;\n location: TaskLocation = 'end';\n\n constructor(private ui: UiMain, private logger: Logger) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const capsule: Capsule | undefined = context.capsuleNetwork.seedersCapsules.find(\n (c) => c.component.id.toStringWithoutVersion() === PreviewAspect.id\n );\n if (!capsule) {\n return { componentsResults: [] };\n }\n\n try {\n const outputPath = join(capsule.path, CAPSULE_ARTIFACTS_DIR, BUNDLE_DIR);\n this.logger.info(`Generating UI bundle at ${outputPath}...`);\n const [, uiRoot] = this.ui.getUi() as [string, UIRoot];\n const resolvedAspects = await uiRoot.resolveAspects(RUNTIME_NAME);\n await buildPreBundlePreview(resolvedAspects, outputPath);\n await this.generateHash(outputPath);\n } catch (error) {\n this.logger.error('Generating UI bundle failed', error);\n throw new Error('Generating UI bundle failed');\n }\n\n return {\n componentsResults: [],\n artifacts: [getBundleArtifactDef(BUNDLE_DIR, '')],\n };\n }\n\n private async generateHash(outputPath: string): Promise<void> {\n const maybeUiRoot = this.ui.getUi();\n if (!maybeUiRoot) throw new Error('no uiRoot found');\n\n const [, uiRoot] = maybeUiRoot;\n await generateBundleHash(uiRoot, RUNTIME_NAME, outputPath);\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;AAIA,SAAAG,gBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,eAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,WAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,UAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,SAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,QAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiD,SAAAM,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAE1C,MAAMW,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,kBAAkB;AAC3C,MAAME,UAAU,GAAAD,OAAA,CAAAC,UAAA,GAAG,WAAW;AAE9B,MAAMC,oBAAoB,CAAsB;EAKrDC,WAAWA,CAASC,EAAU,EAAUC,MAAc,EAAE;IAAA,KAApCD,EAAU,GAAVA,EAAU;IAAA,KAAUC,MAAc,GAAdA,MAAc;IAAA3B,eAAA,mBAJ3C4B,wBAAa,CAACC,EAAE;IAAA7B,eAAA,eACpBqB,gBAAgB;IAAArB,eAAA,mBACE,KAAK;EAE2B;EAEzD,MAAM8B,OAAOA,CAACC,OAAqB,EAA4B;IAC7D,MAAMC,OAA4B,GAAGD,OAAO,CAACE,cAAc,CAACC,eAAe,CAACC,IAAI,CAC7EC,CAAC,IAAKA,CAAC,CAACC,SAAS,CAACR,EAAE,CAACS,sBAAsB,CAAC,CAAC,KAAKV,wBAAa,CAACC,EACnE,CAAC;IACD,IAAI,CAACG,OAAO,EAAE;MACZ,OAAO;QAAEO,iBAAiB,EAAE;MAAG,CAAC;IAClC;IAEA,IAAI;MACF,MAAMC,UAAU,GAAG,IAAAC,YAAI,EAACT,OAAO,CAACU,IAAI,EAAEC,gCAAqB,EAAEpB,UAAU,CAAC;MACxE,IAAI,CAACI,MAAM,CAACiB,IAAI,CAAE,2BAA0BJ,UAAW,KAAI,CAAC;MAC5D,MAAM,GAAGK,MAAM,CAAC,GAAG,IAAI,CAACnB,EAAE,CAACoB,KAAK,CAAC,CAAqB;MACtD,MAAMC,eAAe,GAAG,MAAMF,MAAM,CAACG,cAAc,CAACC,yBAAY,CAAC;MACjE,MAAM,IAAAC,kCAAqB,EAACH,eAAe,EAAEP,UAAU,CAAC;MACxD,MAAM,IAAI,CAACW,YAAY,CAACX,UAAU,CAAC;IACrC,CAAC,CAAC,OAAOY,KAAK,EAAE;MACd,IAAI,CAACzB,MAAM,CAACyB,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;MACvD,MAAM,IAAIC,KAAK,CAAC,6BAA6B,CAAC;IAChD;IAEA,OAAO;MACLd,iBAAiB,EAAE,EAAE;MACrBe,SAAS,EAAE,CAAC,IAAAC,sCAAoB,EAAChC,UAAU,EAAE,EAAE,CAAC;IAClD,CAAC;EACH;EAEA,MAAc4B,YAAYA,CAACX,UAAkB,EAAiB;IAC5D,MAAMgB,WAAW,GAAG,IAAI,CAAC9B,EAAE,CAACoB,KAAK,CAAC,CAAC;IACnC,IAAI,CAACU,WAAW,EAAE,MAAM,IAAIH,KAAK,CAAC,iBAAiB,CAAC;IAEpD,MAAM,GAAGR,MAAM,CAAC,GAAGW,WAAW;IAC9B,MAAM,IAAAC,oCAAkB,EAACZ,MAAM,EAAEI,yBAAY,EAAET,UAAU,CAAC;EAC5D;AACF;AAAClB,OAAA,CAAAE,oBAAA,GAAAA,oBAAA"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.122/dist/preview.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.122/dist/preview.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.124/dist/preview.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@1.0.124/dist/preview.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -5,6 +5,7 @@ import { Component, ComponentMain, ComponentMap, ComponentID, ResolveAspectsOpti
5
5
  import type { EnvsMain, PreviewEnv } from '@teambit/envs';
6
6
  import { SlotRegistry, Harmony } from '@teambit/harmony';
7
7
  import { UiMain, UIRoot } from '@teambit/ui';
8
+ import { CacheMain } from '@teambit/cache';
8
9
  import { PkgMain } from '@teambit/pkg';
9
10
  import type { AspectDefinition, AspectLoaderMain } from '@teambit/aspect-loader';
10
11
  import { Workspace } from '@teambit/workspace';
@@ -106,6 +107,7 @@ export declare class PreviewMain {
106
107
  */
107
108
  private previewSlot;
108
109
  private ui;
110
+ private cache;
109
111
  private envs;
110
112
  private componentAspect;
111
113
  private pkg;
@@ -124,7 +126,7 @@ export declare class PreviewMain {
124
126
  /**
125
127
  * slot for preview definitions.
126
128
  */
127
- previewSlot: PreviewDefinitionRegistry, ui: UiMain, envs: EnvsMain, componentAspect: ComponentMain, pkg: PkgMain, aspectLoader: AspectLoaderMain, config: PreviewConfig, bundlingStrategySlot: BundlingStrategySlot, builder: BuilderMain, workspace: Workspace | undefined, logger: Logger, dependencyResolver: DependencyResolverMain);
129
+ previewSlot: PreviewDefinitionRegistry, ui: UiMain, cache: CacheMain, envs: EnvsMain, componentAspect: ComponentMain, pkg: PkgMain, aspectLoader: AspectLoaderMain, config: PreviewConfig, bundlingStrategySlot: BundlingStrategySlot, builder: BuilderMain, workspace: Workspace | undefined, logger: Logger, dependencyResolver: DependencyResolverMain);
128
130
  get tempFolder(): string;
129
131
  getComponentBundleSize(component: Component): ComponentPreviewSize | undefined;
130
132
  getPreview(component: Component): Promise<PreviewArtifact | undefined>;
@@ -282,6 +284,7 @@ export declare class PreviewMain {
282
284
  writeLinkContents(contents: string, targetDir: string, prefix: string): string;
283
285
  private executionRefs;
284
286
  private getPreviewTarget;
287
+ private writePreviewEntry;
285
288
  private updateLinkFiles;
286
289
  writePreviewRuntime(context: {
287
290
  components: Component[];
@@ -320,11 +323,12 @@ export declare class PreviewMain {
320
323
  disabled: boolean;
321
324
  onlyOverview: boolean;
322
325
  };
323
- static provider([bundler, builder, componentExtension, uiMain, envs, workspace, pkg, pubsub, aspectLoader, loggerMain, dependencyResolver, graphql, watcher, scope,]: [
326
+ static provider([bundler, builder, componentExtension, uiMain, cache, envs, workspace, pkg, pubsub, aspectLoader, loggerMain, dependencyResolver, graphql, watcher, scope,]: [
324
327
  BundlerMain,
325
328
  BuilderMain,
326
329
  ComponentMain,
327
330
  UiMain,
331
+ CacheMain,
328
332
  EnvsMain,
329
333
  Workspace | undefined,
330
334
  PkgMain,