@teambit/ui 1.0.885 → 1.0.886
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/artifacts/ui-bundle/scope/public/bit/index.html +1 -1
- package/artifacts/ui-bundle/scope/public/bit/service-worker.js +1 -1
- package/dist/{preview-1771370107272.js → preview-1771499770981.js} +2 -2
- package/dist/start.cmd.d.ts +2 -1
- package/dist/start.cmd.js +5 -3
- package/dist/start.cmd.js.map +1 -1
- package/dist/ui.main.runtime.d.ts +4 -0
- package/dist/ui.main.runtime.js.map +1 -1
- package/package.json +13 -13
- package/start.cmd.tsx +8 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>bit-local-
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>bit-local-ff6191c8</title><script>try{window.__REACT_DEVTOOLS_GLOBAL_HOOK__=window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__}catch{}</script><script defer src="/static/js/runtime-main.7782fa0b.js"></script><script defer src="/static/js/207.276b6ceb.js"></script><script defer src="/static/js/main.4b44aec4.js"></script><link href="/static/css/207.e3e81c9b.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let e,s={};const i=(i,t)=>(i=new URL(i+".js",t).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(t,n)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let
|
|
1
|
+
if(!self.define){let e,s={};const i=(i,t)=>(i=new URL(i+".js",t).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(t,n)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let l={};const o=e=>i(e,r),c={module:{uri:r},exports:l,require:o};s[r]=Promise.all(t.map((e=>c[e]||o(e)))).then((e=>(n(...e),l)))}}define(["./workbox-96c553ab"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"/index.html",revision:"8e3b70b8d797618ade4027cf273d67a8"},{url:"/static/css/207.e3e81c9b.css",revision:null},{url:"/static/js/main.4b44aec4.js",revision:null},{url:"/static/js/runtime-main.7782fa0b.js",revision:null}],{}),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("public/index.html"),{denylist:[/^\/_/,/\/[^/.?]+\.[^/]+$/]}))}));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.ui-foundation_ui@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.ui-foundation_ui@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.ui-foundation_ui@1.0.886/dist/ui.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.ui-foundation_ui@1.0.886/dist/ui.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/dist/start.cmd.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ type StartFlags = {
|
|
|
12
12
|
skipCompilation: boolean;
|
|
13
13
|
skipUiBuild: boolean;
|
|
14
14
|
uiRootName: string;
|
|
15
|
+
useRootModules: boolean;
|
|
15
16
|
};
|
|
16
17
|
export declare class StartCmd implements Command {
|
|
17
18
|
/**
|
|
@@ -34,6 +35,6 @@ export declare class StartCmd implements Command {
|
|
|
34
35
|
* access to the extension instance.
|
|
35
36
|
*/
|
|
36
37
|
ui: UiMain, logger: Logger);
|
|
37
|
-
wait([userPattern]: StartArgs, { dev, port, rebuild, verbose, noBrowser, skipCompilation, skipUiBuild, showInternalUrls, uiRootName: uiRootAspectIdOrName, }: StartFlags): Promise<void>;
|
|
38
|
+
wait([userPattern]: StartArgs, { dev, port, rebuild, verbose, noBrowser, skipCompilation, skipUiBuild, showInternalUrls, uiRootName: uiRootAspectIdOrName, useRootModules, }: StartFlags): Promise<void>;
|
|
38
39
|
}
|
|
39
40
|
export {};
|
package/dist/start.cmd.js
CHANGED
|
@@ -55,7 +55,7 @@ includes hot module reloading for development.`);
|
|
|
55
55
|
}]);
|
|
56
56
|
_defineProperty(this, "alias", 'c');
|
|
57
57
|
_defineProperty(this, "group", 'run-serve');
|
|
58
|
-
_defineProperty(this, "options", [['d', 'dev', 'start UI server in dev mode.'], ['p', 'port [port-number]', 'port of the UI server.'], ['r', 'rebuild', 'rebuild the UI (useful e.g. when updating the workspace UI - can use the dev flag for HMR in this case)'], ['', 'skip-ui-build', 'skip building UI'], ['v', 'verbose', 'show verbose output for inspection and prints stack trace'], ['n', 'no-browser', 'do not automatically open browser when ready'], ['', 'show-internal-urls', 'show urls for all internal dev servers'], ['', 'skip-compilation', 'skip the auto-compilation before starting the web-server'], ['u', 'ui-root-name [type]', 'name of the ui root to use, e.g. "teambit.scope/scope" or "teambit.workspace/workspace"']]);
|
|
58
|
+
_defineProperty(this, "options", [['d', 'dev', 'start UI server in dev mode.'], ['p', 'port [port-number]', 'port of the UI server.'], ['r', 'rebuild', 'rebuild the UI (useful e.g. when updating the workspace UI - can use the dev flag for HMR in this case)'], ['', 'skip-ui-build', 'skip building UI'], ['v', 'verbose', 'show verbose output for inspection and prints stack trace'], ['n', 'no-browser', 'do not automatically open browser when ready'], ['', 'show-internal-urls', 'show urls for all internal dev servers'], ['', 'skip-compilation', 'skip the auto-compilation before starting the web-server'], ['u', 'ui-root-name [type]', 'name of the ui root to use, e.g. "teambit.scope/scope" or "teambit.workspace/workspace"'], ['', 'use-root-modules', 'EXPERIMENTAL. resolve component previews from root node_modules instead of .bit_roots. mainly for internal usage, use with caution only if you understand the implications']]);
|
|
59
59
|
}
|
|
60
60
|
async wait([userPattern], {
|
|
61
61
|
dev,
|
|
@@ -66,7 +66,8 @@ includes hot module reloading for development.`);
|
|
|
66
66
|
skipCompilation,
|
|
67
67
|
skipUiBuild,
|
|
68
68
|
showInternalUrls,
|
|
69
|
-
uiRootName: uiRootAspectIdOrName
|
|
69
|
+
uiRootName: uiRootAspectIdOrName,
|
|
70
|
+
useRootModules
|
|
70
71
|
}) {
|
|
71
72
|
const spinnies = this.logger.multiSpinner;
|
|
72
73
|
if (!this.ui.isHostAvailable()) {
|
|
@@ -88,7 +89,8 @@ includes hot module reloading for development.`);
|
|
|
88
89
|
port: +port,
|
|
89
90
|
rebuild,
|
|
90
91
|
verbose,
|
|
91
|
-
showInternalUrls
|
|
92
|
+
showInternalUrls,
|
|
93
|
+
useRootModules
|
|
92
94
|
});
|
|
93
95
|
uiServer.then(async server => {
|
|
94
96
|
const url = this.ui.publicUrl || server.fullUrl;
|
package/dist/start.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bitError","data","require","_legacy","_open","_interopRequireDefault","_chalk","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","StartCmd","constructor","ui","logger","name","description","COMPONENT_PATTERN_HELP","wait","userPattern","dev","port","rebuild","verbose","noBrowser","skipCompilation","skipUiBuild","showInternalUrls","uiRootName","uiRootAspectIdOrName","spinnies","multiSpinner","isHostAvailable","BitError","appName","getUiName","invokePreStart","off","add","text","uiServer","createRuntime","pattern","then","server","url","publicUrl","fullUrl","succeed","chalk","dim","cyan","buildOptions","launchBrowserOnStart","undefined","whenReady","getName","message","green","bold","status","open","catch","error","Error","invokeOnStart","clearConsole","exports"],"sources":["start.cmd.tsx"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { Logger } from '@teambit/logger';\nimport open from 'open';\nimport chalk from 'chalk';\nimport type { UiMain } from './ui.main.runtime';\n\ntype StartArgs = [userPattern: string];\ntype StartFlags = {\n dev: boolean;\n port: string;\n rebuild: boolean;\n verbose: boolean;\n showInternalUrls: boolean;\n noBrowser: boolean;\n skipCompilation: boolean;\n skipUiBuild: boolean;\n uiRootName: string;\n};\n\nexport class StartCmd implements Command {\n name = 'start [component-pattern]';\n description = 'launch the Bit development server';\n extendedDescription = `starts the local development server providing a UI to browse, preview, and interact with components.\nworks in both workspaces and scopes. opens automatically in your browser at http://localhost:3000 (or specified port).\nincludes hot module reloading for development.`;\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n alias = 'c';\n group = 'run-serve';\n options = [\n ['d', 'dev', 'start UI server in dev mode.'],\n ['p', 'port [port-number]', 'port of the UI server.'],\n [\n 'r',\n 'rebuild',\n 'rebuild the UI (useful e.g. when updating the workspace UI - can use the dev flag for HMR in this case)',\n ],\n ['', 'skip-ui-build', 'skip building UI'],\n ['v', 'verbose', 'show verbose output for inspection and prints stack trace'],\n ['n', 'no-browser', 'do not automatically open browser when ready'],\n ['', 'show-internal-urls', 'show urls for all internal dev servers'],\n ['', 'skip-compilation', 'skip the auto-compilation before starting the web-server'],\n [\n 'u',\n 'ui-root-name [type]',\n 'name of the ui root to use, e.g. \"teambit.scope/scope\" or \"teambit.workspace/workspace\"',\n ],\n ] as CommandOptions;\n\n constructor(\n /**\n * access to the extension instance.\n */\n private ui: UiMain,\n\n private logger: Logger\n ) {}\n\n async wait(\n [userPattern]: StartArgs,\n {\n dev,\n port,\n rebuild,\n verbose,\n noBrowser,\n skipCompilation,\n skipUiBuild,\n showInternalUrls,\n uiRootName: uiRootAspectIdOrName,\n }: StartFlags\n ) {\n const spinnies = this.logger.multiSpinner;\n\n if (!this.ui.isHostAvailable()) {\n throw new BitError(\n `bit start can only be run inside a bit workspace or a bit scope - please ensure you are running the command in the correct directory`\n );\n }\n const appName = this.ui.getUiName(uiRootAspectIdOrName);\n await this.ui.invokePreStart({ skipCompilation });\n this.logger.off();\n spinnies.add('ui-server', { text: `Starting UI server for ${appName}` });\n\n const uiServer = this.ui.createRuntime({\n uiRootAspectIdOrName,\n skipUiBuild,\n pattern: userPattern,\n dev,\n port: +port,\n rebuild,\n verbose,\n showInternalUrls,\n });\n\n uiServer\n .then(async (server) => {\n const url = this.ui.publicUrl || server.fullUrl;\n spinnies.succeed('ui-server', { text: `UI server ready ${chalk.dim('\\u2192')} ${chalk.cyan(url)}` });\n if (!server.buildOptions?.launchBrowserOnStart) return undefined;\n\n await server.whenReady;\n const name = server.getName();\n const message = chalk.green(`\\nView '${chalk.bold(name)}' components at ${chalk.cyan(url)}`);\n spinnies.add('summary', { text: message, status: 'non-spinnable' });\n if (!noBrowser) {\n await open(url);\n }\n return undefined;\n })\n .catch((error) => {\n this.logger.error(`failed to start the UI server`, error);\n // spinnies.fail('ui-server', { text: `failed to start the UI server. ${error.message}` });\n throw new Error(\n 'failed to start the UI server, please try running the command with --log flag, or check bit debug.log file (see its location by running bit globals)'\n );\n });\n\n // DO NOT CHANGE THIS - this meant to be an async hook.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.ui.invokeOnStart();\n this.ui.clearConsole();\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,OAAA;EAAA,MAAAL,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAI,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;
|
|
1
|
+
{"version":3,"names":["_bitError","data","require","_legacy","_open","_interopRequireDefault","_chalk","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","StartCmd","constructor","ui","logger","name","description","COMPONENT_PATTERN_HELP","wait","userPattern","dev","port","rebuild","verbose","noBrowser","skipCompilation","skipUiBuild","showInternalUrls","uiRootName","uiRootAspectIdOrName","useRootModules","spinnies","multiSpinner","isHostAvailable","BitError","appName","getUiName","invokePreStart","off","add","text","uiServer","createRuntime","pattern","then","server","url","publicUrl","fullUrl","succeed","chalk","dim","cyan","buildOptions","launchBrowserOnStart","undefined","whenReady","getName","message","green","bold","status","open","catch","error","Error","invokeOnStart","clearConsole","exports"],"sources":["start.cmd.tsx"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { Logger } from '@teambit/logger';\nimport open from 'open';\nimport chalk from 'chalk';\nimport type { UiMain } from './ui.main.runtime';\n\ntype StartArgs = [userPattern: string];\ntype StartFlags = {\n dev: boolean;\n port: string;\n rebuild: boolean;\n verbose: boolean;\n showInternalUrls: boolean;\n noBrowser: boolean;\n skipCompilation: boolean;\n skipUiBuild: boolean;\n uiRootName: string;\n useRootModules: boolean;\n};\n\nexport class StartCmd implements Command {\n name = 'start [component-pattern]';\n description = 'launch the Bit development server';\n extendedDescription = `starts the local development server providing a UI to browse, preview, and interact with components.\nworks in both workspaces and scopes. opens automatically in your browser at http://localhost:3000 (or specified port).\nincludes hot module reloading for development.`;\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n alias = 'c';\n group = 'run-serve';\n options = [\n ['d', 'dev', 'start UI server in dev mode.'],\n ['p', 'port [port-number]', 'port of the UI server.'],\n [\n 'r',\n 'rebuild',\n 'rebuild the UI (useful e.g. when updating the workspace UI - can use the dev flag for HMR in this case)',\n ],\n ['', 'skip-ui-build', 'skip building UI'],\n ['v', 'verbose', 'show verbose output for inspection and prints stack trace'],\n ['n', 'no-browser', 'do not automatically open browser when ready'],\n ['', 'show-internal-urls', 'show urls for all internal dev servers'],\n ['', 'skip-compilation', 'skip the auto-compilation before starting the web-server'],\n [\n 'u',\n 'ui-root-name [type]',\n 'name of the ui root to use, e.g. \"teambit.scope/scope\" or \"teambit.workspace/workspace\"',\n ],\n [\n '',\n 'use-root-modules',\n 'EXPERIMENTAL. resolve component previews from root node_modules instead of .bit_roots. mainly for internal usage, use with caution only if you understand the implications',\n ],\n ] as CommandOptions;\n\n constructor(\n /**\n * access to the extension instance.\n */\n private ui: UiMain,\n\n private logger: Logger\n ) {}\n\n async wait(\n [userPattern]: StartArgs,\n {\n dev,\n port,\n rebuild,\n verbose,\n noBrowser,\n skipCompilation,\n skipUiBuild,\n showInternalUrls,\n uiRootName: uiRootAspectIdOrName,\n useRootModules,\n }: StartFlags\n ) {\n const spinnies = this.logger.multiSpinner;\n\n if (!this.ui.isHostAvailable()) {\n throw new BitError(\n `bit start can only be run inside a bit workspace or a bit scope - please ensure you are running the command in the correct directory`\n );\n }\n const appName = this.ui.getUiName(uiRootAspectIdOrName);\n await this.ui.invokePreStart({ skipCompilation });\n this.logger.off();\n spinnies.add('ui-server', { text: `Starting UI server for ${appName}` });\n\n const uiServer = this.ui.createRuntime({\n uiRootAspectIdOrName,\n skipUiBuild,\n pattern: userPattern,\n dev,\n port: +port,\n rebuild,\n verbose,\n showInternalUrls,\n useRootModules,\n });\n\n uiServer\n .then(async (server) => {\n const url = this.ui.publicUrl || server.fullUrl;\n spinnies.succeed('ui-server', { text: `UI server ready ${chalk.dim('\\u2192')} ${chalk.cyan(url)}` });\n if (!server.buildOptions?.launchBrowserOnStart) return undefined;\n\n await server.whenReady;\n const name = server.getName();\n const message = chalk.green(`\\nView '${chalk.bold(name)}' components at ${chalk.cyan(url)}`);\n spinnies.add('summary', { text: message, status: 'non-spinnable' });\n if (!noBrowser) {\n await open(url);\n }\n return undefined;\n })\n .catch((error) => {\n this.logger.error(`failed to start the UI server`, error);\n // spinnies.fail('ui-server', { text: `failed to start the UI server. ${error.message}` });\n throw new Error(\n 'failed to start the UI server, please try running the command with --log flag, or check bit debug.log file (see its location by running bit globals)'\n );\n });\n\n // DO NOT CHANGE THIS - this meant to be an async hook.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.ui.invokeOnStart();\n this.ui.clearConsole();\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,OAAA;EAAA,MAAAL,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAI,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAiBnB,MAAMgB,QAAQ,CAAoB;EAuCvCC,WAAWA;EACT;AACJ;AACA;EACYC,EAAU,EAEVC,MAAc,EACtB;IAAA,KAHQD,EAAU,GAAVA,EAAU;IAAA,KAEVC,MAAc,GAAdA,MAAc;IAAArB,eAAA,eA5CjB,2BAA2B;IAAAA,eAAA,sBACpB,mCAAmC;IAAAA,eAAA,8BAC3B;AACxB;AACA,+CAA+C;IAAAA,eAAA,oBACjC,CACV;MACEsB,IAAI,EAAE,mBAAmB;MACzBC,WAAW,EAAEC;IACf,CAAC,CACF;IAAAxB,eAAA,gBACO,GAAG;IAAAA,eAAA,gBACH,WAAW;IAAAA,eAAA,kBACT,CACR,CAAC,GAAG,EAAE,KAAK,EAAE,8BAA8B,CAAC,EAC5C,CAAC,GAAG,EAAE,oBAAoB,EAAE,wBAAwB,CAAC,EACrD,CACE,GAAG,EACH,SAAS,EACT,yGAAyG,CAC1G,EACD,CAAC,EAAE,EAAE,eAAe,EAAE,kBAAkB,CAAC,EACzC,CAAC,GAAG,EAAE,SAAS,EAAE,2DAA2D,CAAC,EAC7E,CAAC,GAAG,EAAE,YAAY,EAAE,8CAA8C,CAAC,EACnE,CAAC,EAAE,EAAE,oBAAoB,EAAE,wCAAwC,CAAC,EACpE,CAAC,EAAE,EAAE,kBAAkB,EAAE,0DAA0D,CAAC,EACpF,CACE,GAAG,EACH,qBAAqB,EACrB,yFAAyF,CAC1F,EACD,CACE,EAAE,EACF,kBAAkB,EAClB,4KAA4K,CAC7K,CACF;EASE;EAEH,MAAMyB,IAAIA,CACR,CAACC,WAAW,CAAY,EACxB;IACEC,GAAG;IACHC,IAAI;IACJC,OAAO;IACPC,OAAO;IACPC,SAAS;IACTC,eAAe;IACfC,WAAW;IACXC,gBAAgB;IAChBC,UAAU,EAAEC,oBAAoB;IAChCC;EACU,CAAC,EACb;IACA,MAAMC,QAAQ,GAAG,IAAI,CAACjB,MAAM,CAACkB,YAAY;IAEzC,IAAI,CAAC,IAAI,CAACnB,EAAE,CAACoB,eAAe,CAAC,CAAC,EAAE;MAC9B,MAAM,KAAIC,oBAAQ,EAChB,sIACF,CAAC;IACH;IACA,MAAMC,OAAO,GAAG,IAAI,CAACtB,EAAE,CAACuB,SAAS,CAACP,oBAAoB,CAAC;IACvD,MAAM,IAAI,CAAChB,EAAE,CAACwB,cAAc,CAAC;MAAEZ;IAAgB,CAAC,CAAC;IACjD,IAAI,CAACX,MAAM,CAACwB,GAAG,CAAC,CAAC;IACjBP,QAAQ,CAACQ,GAAG,CAAC,WAAW,EAAE;MAAEC,IAAI,EAAE,0BAA0BL,OAAO;IAAG,CAAC,CAAC;IAExE,MAAMM,QAAQ,GAAG,IAAI,CAAC5B,EAAE,CAAC6B,aAAa,CAAC;MACrCb,oBAAoB;MACpBH,WAAW;MACXiB,OAAO,EAAExB,WAAW;MACpBC,GAAG;MACHC,IAAI,EAAE,CAACA,IAAI;MACXC,OAAO;MACPC,OAAO;MACPI,gBAAgB;MAChBG;IACF,CAAC,CAAC;IAEFW,QAAQ,CACLG,IAAI,CAAC,MAAOC,MAAM,IAAK;MACtB,MAAMC,GAAG,GAAG,IAAI,CAACjC,EAAE,CAACkC,SAAS,IAAIF,MAAM,CAACG,OAAO;MAC/CjB,QAAQ,CAACkB,OAAO,CAAC,WAAW,EAAE;QAAET,IAAI,EAAE,mBAAmBU,gBAAK,CAACC,GAAG,CAAC,QAAQ,CAAC,IAAID,gBAAK,CAACE,IAAI,CAACN,GAAG,CAAC;MAAG,CAAC,CAAC;MACpG,IAAI,CAACD,MAAM,CAACQ,YAAY,EAAEC,oBAAoB,EAAE,OAAOC,SAAS;MAEhE,MAAMV,MAAM,CAACW,SAAS;MACtB,MAAMzC,IAAI,GAAG8B,MAAM,CAACY,OAAO,CAAC,CAAC;MAC7B,MAAMC,OAAO,GAAGR,gBAAK,CAACS,KAAK,CAAC,WAAWT,gBAAK,CAACU,IAAI,CAAC7C,IAAI,CAAC,mBAAmBmC,gBAAK,CAACE,IAAI,CAACN,GAAG,CAAC,EAAE,CAAC;MAC5Ff,QAAQ,CAACQ,GAAG,CAAC,SAAS,EAAE;QAAEC,IAAI,EAAEkB,OAAO;QAAEG,MAAM,EAAE;MAAgB,CAAC,CAAC;MACnE,IAAI,CAACrC,SAAS,EAAE;QACd,MAAM,IAAAsC,eAAI,EAAChB,GAAG,CAAC;MACjB;MACA,OAAOS,SAAS;IAClB,CAAC,CAAC,CACDQ,KAAK,CAAEC,KAAK,IAAK;MAChB,IAAI,CAAClD,MAAM,CAACkD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;MACzD;MACA,MAAM,IAAIC,KAAK,CACb,sJACF,CAAC;IACH,CAAC,CAAC;;IAEJ;IACA;IACA,IAAI,CAACpD,EAAE,CAACqD,aAAa,CAAC,CAAC;IACvB,IAAI,CAACrD,EAAE,CAACsD,YAAY,CAAC,CAAC;EACxB;AACF;AAACC,OAAA,CAAAzD,QAAA,GAAAA,QAAA","ignoreList":[]}
|
|
@@ -81,6 +81,10 @@ export type RuntimeOptions = {
|
|
|
81
81
|
* Show the internal urls of the dev servers
|
|
82
82
|
*/
|
|
83
83
|
showInternalUrls?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* resolve component previews from root node_modules instead of .bit_roots
|
|
86
|
+
*/
|
|
87
|
+
useRootModules?: boolean;
|
|
84
88
|
};
|
|
85
89
|
export declare class UiMain {
|
|
86
90
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_fs","data","require","_aspectLoader","_cache","_cli","_component","_express","_graphql","_chalk","_interopRequireDefault","_harmony","_logger","_pubsub","_toolboxCrypto","_pMapSeries","_fsExtra","_toolboxNetwork","_harmonyModules","_path","_core","_events","_exceptions","_start","_uiBuild","_uiServer","_ui","_rspackBrowser","_rspackSsr","_bundleUi","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","UiMain","constructor","pubsub","config","graphql","uiRootSlot","express","preStartSlot","onStartSlot","publicDirOverwriteSlot","buildMethodOverwriteSlot","componentExtension","cache","logger","harmony","startPluginSlot","targetHost","targetPort","uiRoot","UiServerStartedEvent","Date","now","publicDir","overwriteFn","getOverwritePublic","hasDir","startsWith","substring","getUiByName","name","roots","toArray","root","find","build","uiRootAspectIdOrName","customOutputPath","debug","maybeUiRoot","getUi","UnknownUI","possibleUis","uiRootAspectId","ssr","buildOptions","mainEntry","generateRoot","resolveAspects","UIRuntime","outputPath","path","browserConfig","createRspackBrowserConfig","compiler","rspack","results","errors","runRspackPromise","UnknownBuildError","clearConsole","Error","hasErrors","toString","ssrConfig","createRspackSsrConfig","ssrCompiler","ssrResults","ssrErrors","registerStartPlugin","startPlugin","register","Promise","resolve","run","err","stats","error","undefined","stack","initiatePlugins","options","plugins","values","pMapSeries","plugin","initiate","getUIServer","currentUIServer","createRuntime","runtimeOptions","uiRootName","pattern","dev","port","rebuild","verbose","skipUiBuild","showInternalUrls","isHost","setHostPriority","uiServer","UIServer","create","uiRootExtension","ui","startPlugins","addSignalListener","portRange","buildUI","bundleUiPath","getBundleUiPath","bundleUiPublicPath","join","bundleUiRoot","_isBundleUiServed","existsSync","start","pub","UIAspect","id","createUiServerStartedEvent","host","process","on","exit","getPort","selectPort","registerPreStart","preStartFn","registerOnStart","onStartFn","registerBuildUIOverwrite","fn","registerPublicDirOverwrite","getOverwriteBuildFn","buildMethodOverwrite","overwritePublic","invokePreStart","preStartOpts","onPreStartFuncs","invokeOnStart","onStartFuncs","filter","registerUiRoot","get","uis","length","priority","isHostAvailable","Boolean","getHost","getUiName","map","createLink","aspectDefs","rootExtensionName","createRoot","runtimeName","rootAspect","ignoreVersion","addRuntimes","harmonyPackage","shouldRun","contents","toObject","filepath","pathResolve","__dirname","sha1","fs","outputFileSync","from","to","usedPorts","Port","set","concat","overwrite","shouldServeBundleUi","buildIfChanged","buildIfNoBundle","force","prebundle","currentBundleUiHash","createBundleUiHash","cachedBundleUiHash","readBundleUiHash","isLocalBuildAvailable","currentBuildUiHash","createBuildUiHash","cachedBuildUiHash","console","chalk","magenta","cyan","configFile","runtime","aspects","sort","a","b","aspectPath","aspectPathStrings","aspect","runtimePath","buildUiHash","getId","aspectIds","bundleUiPathFromBvm","hashFilePath","BUNDLE_UI_HASH_FILENAME","readFileSync","uiPathFromBvm","getAspectDirFromBvm","BundleUiTask","getArtifactDirectory","output","pathExistsSync","hash","stdout","write","platform","publicUrl","provider","cli","loggerMain","proxyGetterSlot","createLogger","StartCmd","UIBuildCmd","exports","MainRuntime","PubsubAspect","CLIAspect","GraphqlAspect","ExpressAspect","ComponentAspect","CacheAspect","LoggerAspect","Slot","withType","addRuntime"],"sources":["ui.main.runtime.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'fs';\nimport type { ComponentType } from 'react';\nimport type { AspectMain } from '@teambit/aspect';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport { getAspectDirFromBvm } from '@teambit/aspect-loader';\nimport type { CacheMain } from '@teambit/cache';\nimport { CacheAspect } from '@teambit/cache';\nimport type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport type { ComponentMain } from '@teambit/component';\nimport { ComponentAspect } from '@teambit/component';\nimport type { ExpressMain } from '@teambit/express';\nimport { ExpressAspect } from '@teambit/express';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport chalk from 'chalk';\nimport type { SlotRegistry, Harmony } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { PubsubMain } from '@teambit/pubsub';\nimport { PubsubAspect } from '@teambit/pubsub';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport pMapSeries from 'p-map-series';\nimport fs from 'fs-extra';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { createRoot } from '@teambit/harmony.modules.harmony-root-generator';\nimport { join, resolve as pathResolve } from 'path';\nimport { rspack } from '@rspack/core';\nimport { UiServerStartedEvent } from './events';\nimport { UnknownUI, UnknownBuildError } from './exceptions';\nimport { StartCmd } from './start.cmd';\nimport { UIBuildCmd } from './ui-build.cmd';\nimport type { UIRoot } from './ui-root';\nimport { UIServer } from './ui-server';\nimport { UIAspect, UIRuntime } from './ui.aspect';\nimport createRspackBrowserConfig from './rspack/rspack.browser.config';\nimport createRspackSsrConfig from './rspack/rspack.ssr.config';\nimport type { StartPlugin, StartPluginOptions } from './start-plugin';\nimport { BundleUiTask, BUNDLE_UI_HASH_FILENAME } from './bundle-ui.task';\n\nexport type UIDeps = [PubsubMain, CLIMain, GraphqlMain, ExpressMain, ComponentMain, CacheMain, LoggerMain, AspectMain];\n\nexport type UIRootRegistry = SlotRegistry<UIRoot>;\n\nexport type PreStart = (preStartOpts: PreStartOpts) => Promise<void>;\n\nexport type PreStartOpts = { skipCompilation?: boolean };\n\nexport type OnStart = () => Promise<undefined | ComponentType<{}>>;\n\nexport type StartPluginSlot = SlotRegistry<StartPlugin>;\n\nexport type PublicDirOverwrite = (uiRoot: UIRoot) => Promise<string | undefined>;\n\nexport type BuildMethodOverwrite = (name: string, uiRoot: UIRoot, rebuild?: boolean) => Promise<string>;\n\nexport type PreStartSlot = SlotRegistry<PreStart>;\n\nexport type OnStartSlot = SlotRegistry<OnStart>;\n\nexport type PublicDirOverwriteSlot = SlotRegistry<PublicDirOverwrite>;\n\nexport type BuildMethodOverwriteSlot = SlotRegistry<BuildMethodOverwrite>;\n\nexport type UIConfig = {\n /**\n * port for the UI root to use.\n */\n port?: number;\n\n /**\n * port range for the UI root to use.\n */\n portRange: [number, number];\n\n /**\n * host for the UI root\n */\n host: string;\n\n /**\n * directory in workspace to use for public assets.\n * always relative to the workspace root directory.\n */\n publicDir: string;\n\n /** the url to display when server is listening. Note that bit does not provide proxying to this url */\n publicUrl?: string;\n};\n\nexport type RuntimeOptions = {\n /**\n * determine whether to initiate on verbose mode.\n */\n verbose?: boolean;\n\n /**\n * name of the UI root to load.\n */\n uiRootName?: string;\n uiRootAspectIdOrName?: string;\n\n /**\n * component selector pattern to load.\n */\n pattern?: string;\n\n /**\n * determine whether to start a dev server (defaults to false).\n */\n dev?: boolean;\n\n /**\n * port of the config.\n */\n port?: number;\n\n /**\n * determine whether to rebuild the UI before start.\n */\n rebuild?: boolean;\n\n /**\n * skip build the UI before start\n */\n skipUiBuild?: boolean;\n\n /**\n * Show the internal urls of the dev servers\n */\n showInternalUrls?: boolean;\n};\n\nexport class UiMain {\n private _isBundleUiServed = false;\n private currentUIServer: UIServer | undefined;\n\n constructor(\n /**\n * Pubsub extension.\n */\n private pubsub: PubsubMain,\n\n private config: UIConfig,\n\n /**\n * graphql extension.\n */\n private graphql: GraphqlMain,\n\n /**\n * slot registry of ui roots.\n */\n private uiRootSlot: UIRootRegistry,\n\n /**\n * express extension.\n */\n private express: ExpressMain,\n\n /**\n * pre-start slot\n */\n private preStartSlot: PreStartSlot,\n\n /**\n * on start slot\n */\n private onStartSlot: OnStartSlot,\n\n /**\n * Overwrite the public dir Slot\n */\n private publicDirOverwriteSlot: PublicDirOverwriteSlot,\n\n /**\n * Overwrite the build ui method\n */\n private buildMethodOverwriteSlot: BuildMethodOverwriteSlot,\n\n /**\n * component extension.\n */\n private componentExtension: ComponentMain,\n\n /**\n * ui logger instance.\n */\n private cache: CacheMain,\n\n /**\n * ui logger instance.\n */\n private logger: Logger,\n\n private harmony: Harmony,\n\n private startPluginSlot: StartPluginSlot\n ) {}\n\n async publicDir(uiRoot: UIRoot) {\n const overwriteFn = this.getOverwritePublic();\n if (overwriteFn) {\n const hasDir = await overwriteFn(uiRoot);\n if (hasDir) return hasDir;\n }\n\n if (this.config.publicDir.startsWith('/')) {\n return this.config.publicDir.substring(1);\n }\n\n return this.config.publicDir;\n }\n\n private getUiByName(name: string) {\n const roots = this.uiRootSlot.toArray();\n const [, root] =\n roots.find(([, uiRoot]) => {\n return uiRoot.name === name;\n }) || [];\n\n return root;\n }\n\n /**\n * create a build of the given UI root.\n */\n async build(uiRootAspectIdOrName?: string, customOutputPath?: string): Promise<any> {\n this.logger.debug(`build, uiRootAspectIdOrName: \"${uiRootAspectIdOrName}\"`);\n const maybeUiRoot = this.getUi(uiRootAspectIdOrName);\n\n if (!maybeUiRoot) throw new UnknownUI(uiRootAspectIdOrName, this.possibleUis());\n const [uiRootAspectId, uiRoot] = maybeUiRoot;\n\n // TODO: @uri refactor all dev server related code to use the bundler extension instead.\n const ssr = uiRoot.buildOptions?.ssr || false;\n const mainEntry = await this.generateRoot(await uiRoot.resolveAspects(UIRuntime.name), uiRootAspectId);\n const outputPath = customOutputPath || uiRoot.path;\n const publicDir = await this.publicDir(uiRoot);\n\n const browserConfig = createRspackBrowserConfig(outputPath, [mainEntry], uiRoot.name, publicDir);\n const compiler = rspack(browserConfig as any);\n this.logger.debug(`rspack (build): running for browser`);\n const [results, errors] = await this.runRspackPromise(compiler);\n this.logger.debug(`rspack (build): completed browser`);\n if (!results) throw new UnknownBuildError();\n if (errors) {\n this.clearConsole();\n throw new Error(errors);\n }\n if (results?.hasErrors()) {\n this.clearConsole();\n throw new Error(results?.toString());\n }\n\n if (ssr) {\n const ssrConfig = createRspackSsrConfig(outputPath, [mainEntry], publicDir);\n const ssrCompiler = rspack(ssrConfig as any);\n this.logger.debug(`rspack (build): running for SSR`);\n const [ssrResults, ssrErrors] = await this.runRspackPromise(ssrCompiler);\n this.logger.debug(`rspack (build): completed SSR build`);\n if (ssrErrors) {\n this.clearConsole();\n throw new Error(ssrErrors);\n }\n if (ssrResults?.hasErrors()) {\n this.clearConsole();\n throw new Error(ssrResults?.toString());\n }\n }\n\n return results;\n }\n\n registerStartPlugin(startPlugin: StartPlugin) {\n this.startPluginSlot.register(startPlugin);\n return this;\n }\n\n private async runRspackPromise(compiler: any): Promise<[any | undefined, string | undefined]> {\n return new Promise((resolve) =>\n compiler.run((err, stats) => {\n if (err) {\n this.logger.error('get error from rspack compiler, when bundling ui server, full error:', err);\n return resolve([undefined, `${err.toString()}\\n${err.stack}`]);\n }\n return resolve([stats, undefined]);\n })\n );\n }\n\n private async initiatePlugins(options: StartPluginOptions) {\n const plugins = this.startPluginSlot.values();\n await pMapSeries(plugins, (plugin) => plugin.initiate(options));\n return plugins;\n }\n\n runtimeOptions: RuntimeOptions = {};\n\n getUIServer(): UIServer | undefined {\n return this.currentUIServer;\n }\n /**\n * create a Bit UI runtime.\n */\n async createRuntime(runtimeOptions: RuntimeOptions) {\n this.runtimeOptions = runtimeOptions;\n const { uiRootName, pattern, dev, port, rebuild, verbose, skipUiBuild, showInternalUrls } = this.runtimeOptions;\n // uiRootName to be deprecated\n const uiRootAspectIdOrName = uiRootName || runtimeOptions.uiRootAspectIdOrName;\n const maybeUiRoot = this.getUi(uiRootAspectIdOrName);\n if (!maybeUiRoot) throw new UnknownUI(uiRootAspectIdOrName, this.possibleUis());\n\n const [uiRootAspectId, uiRoot] = maybeUiRoot;\n\n const plugins = await this.initiatePlugins({\n verbose,\n pattern,\n showInternalUrls,\n });\n\n if (this.componentExtension.isHost(uiRootAspectId)) this.componentExtension.setHostPriority(uiRootAspectId);\n\n const publicDir = await this.publicDir(uiRoot);\n const uiServer = UIServer.create({\n express: this.express,\n graphql: this.graphql,\n uiRoot,\n uiRootExtension: uiRootAspectId,\n ui: this,\n logger: this.logger,\n publicDir,\n startPlugins: plugins,\n });\n\n this.currentUIServer = uiServer;\n\n // Adding signal listeners to make sure we immediately close the process on sigint / sigterm (otherwise webpack dev server closing will take time)\n this.addSignalListener();\n if (dev) {\n await uiServer.dev({ portRange: port || this.config.portRange });\n } else {\n if (!skipUiBuild) await this.buildUI(uiRootAspectId, uiRoot, rebuild);\n const bundleUiPath = this.getBundleUiPath(uiRootAspectId);\n const bundleUiPublicPath = bundleUiPath ? join(bundleUiPath, publicDir) : undefined;\n const bundleUiRoot =\n this._isBundleUiServed && bundleUiPublicPath && existsSync(bundleUiPublicPath || '')\n ? bundleUiPublicPath\n : undefined;\n if (bundleUiRoot)\n this.logger.debug(`UI createRuntime of ${uiRootAspectId}, bundle will be served from ${bundleUiRoot}`);\n await uiServer.start({ portRange: port || this.config.portRange, bundleUiRoot });\n }\n\n this.pubsub.pub(UIAspect.id, this.createUiServerStartedEvent(this.config.host, uiServer.port, uiRoot));\n\n return uiServer;\n }\n\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n async getPort(port?: number): Promise<number> {\n if (port) return port;\n return this.config.port || this.selectPort();\n }\n\n /**\n * Events\n */\n private createUiServerStartedEvent = (targetHost, targetPort, uiRoot) => {\n return new UiServerStartedEvent(Date.now(), targetHost, targetPort, uiRoot);\n };\n\n /**\n * pre-start events are triggered and *completed* before the webserver started.\n * (the promise is awaited)\n */\n registerPreStart(preStartFn: PreStart) {\n this.preStartSlot.register(preStartFn);\n }\n\n /**\n * bind to ui server start event.\n */\n registerOnStart(onStartFn: OnStart) {\n this.onStartSlot.register(onStartFn);\n return this;\n }\n\n /**\n * overwrite the build ui function\n */\n registerBuildUIOverwrite(fn: BuildMethodOverwrite) {\n this.buildMethodOverwriteSlot.register(fn);\n return this;\n }\n\n /**\n * overwrite the build ui function\n */\n registerPublicDirOverwrite(fn: PublicDirOverwrite) {\n this.publicDirOverwriteSlot.register(fn);\n return this;\n }\n\n private getOverwriteBuildFn() {\n const buildMethodOverwrite = this.buildMethodOverwriteSlot.toArray();\n if (buildMethodOverwrite[0]) {\n const [, fn] = buildMethodOverwrite[0];\n return fn;\n }\n return undefined;\n }\n\n private getOverwritePublic() {\n const overwritePublic = this.publicDirOverwriteSlot.toArray();\n if (overwritePublic[0]) {\n const [, fn] = overwritePublic[0];\n return fn;\n }\n return undefined;\n }\n\n async invokePreStart(preStartOpts: PreStartOpts): Promise<void> {\n const onPreStartFuncs = this.preStartSlot.values();\n await pMapSeries(onPreStartFuncs, async (fn) => fn(preStartOpts));\n }\n\n async invokeOnStart(): Promise<ComponentType[]> {\n const onStartFuncs = this.onStartSlot.values();\n const startPlugins = await pMapSeries(onStartFuncs, async (fn) => fn());\n return startPlugins.filter((plugin) => !!plugin) as ComponentType[];\n }\n\n /**\n * register a UI slot.\n */\n registerUiRoot(uiRoot: UIRoot) {\n return this.uiRootSlot.register(uiRoot);\n }\n\n /**\n * get a UI runtime instance.\n */\n getUi(uiRootAspectIdOrName?: string): [string, UIRoot] | undefined {\n if (uiRootAspectIdOrName) {\n const root = this.uiRootSlot.get(uiRootAspectIdOrName) || this.getUiByName(uiRootAspectIdOrName);\n if (!root) return undefined;\n return [uiRootAspectIdOrName, root];\n }\n const uis = this.uiRootSlot.toArray();\n if (uis.length === 1) return uis[0];\n return uis.find(([, root]) => root.priority);\n }\n\n isHostAvailable(): boolean {\n return Boolean(this.componentExtension.getHost());\n }\n\n getUiName(uiRootAspectIdOrName?: string): string | undefined {\n const [, ui] = this.getUi(uiRootAspectIdOrName) || [];\n if (!ui) return undefined;\n\n return ui.name;\n }\n\n private possibleUis() {\n return this.uiRootSlot.toArray().map(([id]) => id);\n }\n\n createLink(aspectDefs: AspectDefinition[], rootExtensionName: string) {\n return createRoot(aspectDefs, rootExtensionName);\n }\n\n /**\n * generate the root file of the UI runtime.\n */\n async generateRoot(\n aspectDefs: AspectDefinition[],\n rootExtensionName: string,\n runtimeName = UIRuntime.name,\n rootAspect = UIAspect.id,\n config?: object,\n path?: string,\n ignoreVersion?: boolean,\n addRuntimes?: boolean,\n harmonyPackage?: string,\n shouldRun = false\n ) {\n const contents = await createRoot(\n aspectDefs,\n rootExtensionName,\n rootAspect,\n runtimeName,\n config || this.harmony.config.toObject(),\n ignoreVersion,\n addRuntimes,\n harmonyPackage,\n shouldRun\n );\n const filepath = pathResolve(join(path || __dirname, `${runtimeName}.root${sha1(contents)}.js`));\n if (fs.existsSync(filepath)) return filepath;\n fs.outputFileSync(filepath, contents);\n return filepath;\n }\n\n private async selectPort() {\n const [from, to] = this.config.portRange;\n const usedPorts = (await this.cache.get<number[]>(`${from}${to}`)) || [];\n const port = await Port.getPort(from, to, usedPorts);\n // this will lock the port for 1 min to avoid race conditions\n await this.cache.set(`${from}${to}`, usedPorts.concat(port), 5000);\n return port;\n }\n\n private async buildUI(uiRootAspectId: string, uiRoot: UIRoot, rebuild?: boolean): Promise<string> {\n this.logger.debug(`buildUI, uiRootAspectId ${uiRootAspectId}`);\n\n const overwrite = this.getOverwriteBuildFn();\n if (overwrite) return overwrite(uiRootAspectId, uiRoot, rebuild);\n\n this._isBundleUiServed = await this.shouldServeBundleUi(uiRootAspectId, uiRoot, rebuild);\n await this.buildIfChanged(uiRootAspectId, uiRoot, rebuild);\n await this.buildIfNoBundle(uiRootAspectId, uiRoot);\n return '';\n }\n\n private async shouldServeBundleUi(\n uiRootAspectId: string,\n uiRoot: UIRoot,\n force: boolean | undefined\n ): Promise<boolean> {\n if (!uiRoot.buildOptions?.prebundle) {\n return false;\n }\n\n const currentBundleUiHash = await this.createBundleUiHash(uiRoot);\n const cachedBundleUiHash = this.readBundleUiHash(uiRootAspectId);\n const isLocalBuildAvailable = existsSync(join(uiRoot.path, await this.publicDir(uiRoot)));\n\n return currentBundleUiHash === cachedBundleUiHash && !isLocalBuildAvailable && !force;\n }\n\n async buildIfChanged(uiRootAspectId: string, uiRoot: UIRoot, force: boolean | undefined): Promise<boolean> {\n this.logger.debug(`buildIfChanged, uiRootAspectId ${uiRootAspectId}`);\n\n if (this._isBundleUiServed) {\n this.logger.debug(`buildIfChanged, uiRootAspectId ${uiRootAspectId}, returned from ui bundle cache`);\n return false;\n }\n\n const currentBuildUiHash = await this.createBuildUiHash(uiRoot);\n const cachedBuildUiHash = await this.cache.get(uiRoot.path);\n if (currentBuildUiHash === cachedBuildUiHash && !force) {\n this.logger.debug(`buildIfChanged, uiRootAspectId ${uiRootAspectId}, returned from ui build cache`);\n return false;\n }\n\n if (!cachedBuildUiHash) {\n this.logger.console(\n `${chalk.magenta('[Rspack]')} Building UI assets for '${chalk.cyan(uiRoot.name)}' in target directory: ${chalk.cyan(\n await this.publicDir(uiRoot)\n )}. The first time we build the UI it may take a few minutes.`\n );\n } else {\n this.logger.console(\n `${chalk.magenta('[Rspack]')} Rebuilding UI assets for '${chalk.cyan(uiRoot.name)}' in target directory: ${chalk.cyan(\n await this.publicDir(uiRoot)\n )}' as ${uiRoot.configFile} has been changed.`\n );\n }\n\n await this.build(uiRootAspectId);\n await this.cache.set(uiRoot.path, currentBuildUiHash);\n return true;\n }\n\n private async createBuildUiHash(uiRoot: UIRoot, runtime = 'ui'): Promise<string> {\n const aspects = await uiRoot.resolveAspects(runtime);\n aspects.sort((a, b) => (a.aspectPath > 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\n /**\n * Generate hash for a given root\n * This API is public and used by external users, do not rename this function\n */\n async buildUiHash(uiRoot: UIRoot, runtime = 'ui'): Promise<string> {\n return this.createBuildUiHash(uiRoot, runtime);\n }\n\n async createBundleUiHash(uiRoot: UIRoot, runtime = 'ui'): 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 aspectIds = aspects.map((aspect) => aspect.getId || aspect.aspectPath);\n return sha1(aspectIds.join(''));\n }\n\n private readBundleUiHash(uiRootAspectId: string) {\n const bundleUiPathFromBvm = this.getBundleUiPath(uiRootAspectId);\n if (!bundleUiPathFromBvm) {\n return '';\n }\n const hashFilePath = join(bundleUiPathFromBvm, BUNDLE_UI_HASH_FILENAME);\n if (existsSync(hashFilePath)) {\n return readFileSync(hashFilePath).toString();\n }\n return '';\n }\n\n private getBundleUiPath(uiRootAspectId: string): string | undefined {\n try {\n const uiPathFromBvm = getAspectDirFromBvm(UIAspect.id);\n return join(uiPathFromBvm, BundleUiTask.getArtifactDirectory(uiRootAspectId));\n } catch (err) {\n this.logger.error(`getBundleUiPath, getAspectDirFromBvm failed with err: ${err}`);\n return undefined;\n }\n }\n\n private async buildIfNoBundle(uiRootAspectId: string, uiRoot: UIRoot): Promise<boolean> {\n if (this._isBundleUiServed) return false;\n\n const config = createRspackBrowserConfig(\n uiRoot.path,\n [await this.generateRoot(await uiRoot.resolveAspects(UIRuntime.name), uiRootAspectId)],\n uiRoot.name,\n await this.publicDir(uiRoot)\n );\n if (config.output?.path && fs.pathExistsSync(config.output.path as string)) return false;\n const hash = await this.createBuildUiHash(uiRoot);\n await this.build(uiRootAspectId);\n await this.cache.set(uiRoot.path, hash);\n return true;\n }\n\n clearConsole() {\n process.stdout.write(process.platform === 'win32' ? '\\x1B[2J\\x1B[0f' : '\\x1B[2J\\x1B[3J\\x1B[H');\n }\n\n get publicUrl() {\n return this.config.publicUrl;\n }\n\n static defaultConfig: UIConfig = {\n publicDir: 'public/bit',\n portRange: [3000, 3100],\n host: 'localhost',\n };\n\n static runtime = MainRuntime;\n static dependencies = [\n PubsubAspect,\n CLIAspect,\n GraphqlAspect,\n ExpressAspect,\n ComponentAspect,\n CacheAspect,\n LoggerAspect,\n ];\n\n static slots = [\n Slot.withType<UIRoot>(),\n Slot.withType<PreStart>(),\n Slot.withType<OnStart>(),\n Slot.withType<PublicDirOverwriteSlot>(),\n Slot.withType<BuildMethodOverwriteSlot>(),\n Slot.withType<StartPlugin>(),\n ];\n\n static async provider(\n [pubsub, cli, graphql, express, componentExtension, cache, loggerMain]: UIDeps,\n config,\n [uiRootSlot, preStartSlot, onStartSlot, publicDirOverwriteSlot, buildMethodOverwriteSlot, proxyGetterSlot]: [\n UIRootRegistry,\n PreStartSlot,\n OnStartSlot,\n PublicDirOverwriteSlot,\n BuildMethodOverwriteSlot,\n StartPluginSlot,\n ],\n harmony: Harmony\n ) {\n // aspectExtension.registerRuntime(new RuntimeDefinition('ui', []))\n const logger = loggerMain.createLogger(UIAspect.id);\n\n const ui = new UiMain(\n pubsub,\n config,\n graphql,\n uiRootSlot,\n express,\n preStartSlot,\n onStartSlot,\n publicDirOverwriteSlot,\n buildMethodOverwriteSlot,\n componentExtension,\n cache,\n logger,\n harmony,\n proxyGetterSlot\n );\n\n cli.register(new StartCmd(ui, logger), new UIBuildCmd(ui));\n\n return ui;\n }\n}\n\nUIAspect.addRuntime(UiMain);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_fs","data","require","_aspectLoader","_cache","_cli","_component","_express","_graphql","_chalk","_interopRequireDefault","_harmony","_logger","_pubsub","_toolboxCrypto","_pMapSeries","_fsExtra","_toolboxNetwork","_harmonyModules","_path","_core","_events","_exceptions","_start","_uiBuild","_uiServer","_ui","_rspackBrowser","_rspackSsr","_bundleUi","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","UiMain","constructor","pubsub","config","graphql","uiRootSlot","express","preStartSlot","onStartSlot","publicDirOverwriteSlot","buildMethodOverwriteSlot","componentExtension","cache","logger","harmony","startPluginSlot","targetHost","targetPort","uiRoot","UiServerStartedEvent","Date","now","publicDir","overwriteFn","getOverwritePublic","hasDir","startsWith","substring","getUiByName","name","roots","toArray","root","find","build","uiRootAspectIdOrName","customOutputPath","debug","maybeUiRoot","getUi","UnknownUI","possibleUis","uiRootAspectId","ssr","buildOptions","mainEntry","generateRoot","resolveAspects","UIRuntime","outputPath","path","browserConfig","createRspackBrowserConfig","compiler","rspack","results","errors","runRspackPromise","UnknownBuildError","clearConsole","Error","hasErrors","toString","ssrConfig","createRspackSsrConfig","ssrCompiler","ssrResults","ssrErrors","registerStartPlugin","startPlugin","register","Promise","resolve","run","err","stats","error","undefined","stack","initiatePlugins","options","plugins","values","pMapSeries","plugin","initiate","getUIServer","currentUIServer","createRuntime","runtimeOptions","uiRootName","pattern","dev","port","rebuild","verbose","skipUiBuild","showInternalUrls","isHost","setHostPriority","uiServer","UIServer","create","uiRootExtension","ui","startPlugins","addSignalListener","portRange","buildUI","bundleUiPath","getBundleUiPath","bundleUiPublicPath","join","bundleUiRoot","_isBundleUiServed","existsSync","start","pub","UIAspect","id","createUiServerStartedEvent","host","process","on","exit","getPort","selectPort","registerPreStart","preStartFn","registerOnStart","onStartFn","registerBuildUIOverwrite","fn","registerPublicDirOverwrite","getOverwriteBuildFn","buildMethodOverwrite","overwritePublic","invokePreStart","preStartOpts","onPreStartFuncs","invokeOnStart","onStartFuncs","filter","registerUiRoot","get","uis","length","priority","isHostAvailable","Boolean","getHost","getUiName","map","createLink","aspectDefs","rootExtensionName","createRoot","runtimeName","rootAspect","ignoreVersion","addRuntimes","harmonyPackage","shouldRun","contents","toObject","filepath","pathResolve","__dirname","sha1","fs","outputFileSync","from","to","usedPorts","Port","set","concat","overwrite","shouldServeBundleUi","buildIfChanged","buildIfNoBundle","force","prebundle","currentBundleUiHash","createBundleUiHash","cachedBundleUiHash","readBundleUiHash","isLocalBuildAvailable","currentBuildUiHash","createBuildUiHash","cachedBuildUiHash","console","chalk","magenta","cyan","configFile","runtime","aspects","sort","a","b","aspectPath","aspectPathStrings","aspect","runtimePath","buildUiHash","getId","aspectIds","bundleUiPathFromBvm","hashFilePath","BUNDLE_UI_HASH_FILENAME","readFileSync","uiPathFromBvm","getAspectDirFromBvm","BundleUiTask","getArtifactDirectory","output","pathExistsSync","hash","stdout","write","platform","publicUrl","provider","cli","loggerMain","proxyGetterSlot","createLogger","StartCmd","UIBuildCmd","exports","MainRuntime","PubsubAspect","CLIAspect","GraphqlAspect","ExpressAspect","ComponentAspect","CacheAspect","LoggerAspect","Slot","withType","addRuntime"],"sources":["ui.main.runtime.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'fs';\nimport type { ComponentType } from 'react';\nimport type { AspectMain } from '@teambit/aspect';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport { getAspectDirFromBvm } from '@teambit/aspect-loader';\nimport type { CacheMain } from '@teambit/cache';\nimport { CacheAspect } from '@teambit/cache';\nimport type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport type { ComponentMain } from '@teambit/component';\nimport { ComponentAspect } from '@teambit/component';\nimport type { ExpressMain } from '@teambit/express';\nimport { ExpressAspect } from '@teambit/express';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport chalk from 'chalk';\nimport type { SlotRegistry, Harmony } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { PubsubMain } from '@teambit/pubsub';\nimport { PubsubAspect } from '@teambit/pubsub';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport pMapSeries from 'p-map-series';\nimport fs from 'fs-extra';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { createRoot } from '@teambit/harmony.modules.harmony-root-generator';\nimport { join, resolve as pathResolve } from 'path';\nimport { rspack } from '@rspack/core';\nimport { UiServerStartedEvent } from './events';\nimport { UnknownUI, UnknownBuildError } from './exceptions';\nimport { StartCmd } from './start.cmd';\nimport { UIBuildCmd } from './ui-build.cmd';\nimport type { UIRoot } from './ui-root';\nimport { UIServer } from './ui-server';\nimport { UIAspect, UIRuntime } from './ui.aspect';\nimport createRspackBrowserConfig from './rspack/rspack.browser.config';\nimport createRspackSsrConfig from './rspack/rspack.ssr.config';\nimport type { StartPlugin, StartPluginOptions } from './start-plugin';\nimport { BundleUiTask, BUNDLE_UI_HASH_FILENAME } from './bundle-ui.task';\n\nexport type UIDeps = [PubsubMain, CLIMain, GraphqlMain, ExpressMain, ComponentMain, CacheMain, LoggerMain, AspectMain];\n\nexport type UIRootRegistry = SlotRegistry<UIRoot>;\n\nexport type PreStart = (preStartOpts: PreStartOpts) => Promise<void>;\n\nexport type PreStartOpts = { skipCompilation?: boolean };\n\nexport type OnStart = () => Promise<undefined | ComponentType<{}>>;\n\nexport type StartPluginSlot = SlotRegistry<StartPlugin>;\n\nexport type PublicDirOverwrite = (uiRoot: UIRoot) => Promise<string | undefined>;\n\nexport type BuildMethodOverwrite = (name: string, uiRoot: UIRoot, rebuild?: boolean) => Promise<string>;\n\nexport type PreStartSlot = SlotRegistry<PreStart>;\n\nexport type OnStartSlot = SlotRegistry<OnStart>;\n\nexport type PublicDirOverwriteSlot = SlotRegistry<PublicDirOverwrite>;\n\nexport type BuildMethodOverwriteSlot = SlotRegistry<BuildMethodOverwrite>;\n\nexport type UIConfig = {\n /**\n * port for the UI root to use.\n */\n port?: number;\n\n /**\n * port range for the UI root to use.\n */\n portRange: [number, number];\n\n /**\n * host for the UI root\n */\n host: string;\n\n /**\n * directory in workspace to use for public assets.\n * always relative to the workspace root directory.\n */\n publicDir: string;\n\n /** the url to display when server is listening. Note that bit does not provide proxying to this url */\n publicUrl?: string;\n};\n\nexport type RuntimeOptions = {\n /**\n * determine whether to initiate on verbose mode.\n */\n verbose?: boolean;\n\n /**\n * name of the UI root to load.\n */\n uiRootName?: string;\n uiRootAspectIdOrName?: string;\n\n /**\n * component selector pattern to load.\n */\n pattern?: string;\n\n /**\n * determine whether to start a dev server (defaults to false).\n */\n dev?: boolean;\n\n /**\n * port of the config.\n */\n port?: number;\n\n /**\n * determine whether to rebuild the UI before start.\n */\n rebuild?: boolean;\n\n /**\n * skip build the UI before start\n */\n skipUiBuild?: boolean;\n\n /**\n * Show the internal urls of the dev servers\n */\n showInternalUrls?: boolean;\n\n /**\n * resolve component previews from root node_modules instead of .bit_roots\n */\n useRootModules?: boolean;\n};\n\nexport class UiMain {\n private _isBundleUiServed = false;\n private currentUIServer: UIServer | undefined;\n\n constructor(\n /**\n * Pubsub extension.\n */\n private pubsub: PubsubMain,\n\n private config: UIConfig,\n\n /**\n * graphql extension.\n */\n private graphql: GraphqlMain,\n\n /**\n * slot registry of ui roots.\n */\n private uiRootSlot: UIRootRegistry,\n\n /**\n * express extension.\n */\n private express: ExpressMain,\n\n /**\n * pre-start slot\n */\n private preStartSlot: PreStartSlot,\n\n /**\n * on start slot\n */\n private onStartSlot: OnStartSlot,\n\n /**\n * Overwrite the public dir Slot\n */\n private publicDirOverwriteSlot: PublicDirOverwriteSlot,\n\n /**\n * Overwrite the build ui method\n */\n private buildMethodOverwriteSlot: BuildMethodOverwriteSlot,\n\n /**\n * component extension.\n */\n private componentExtension: ComponentMain,\n\n /**\n * ui logger instance.\n */\n private cache: CacheMain,\n\n /**\n * ui logger instance.\n */\n private logger: Logger,\n\n private harmony: Harmony,\n\n private startPluginSlot: StartPluginSlot\n ) {}\n\n async publicDir(uiRoot: UIRoot) {\n const overwriteFn = this.getOverwritePublic();\n if (overwriteFn) {\n const hasDir = await overwriteFn(uiRoot);\n if (hasDir) return hasDir;\n }\n\n if (this.config.publicDir.startsWith('/')) {\n return this.config.publicDir.substring(1);\n }\n\n return this.config.publicDir;\n }\n\n private getUiByName(name: string) {\n const roots = this.uiRootSlot.toArray();\n const [, root] =\n roots.find(([, uiRoot]) => {\n return uiRoot.name === name;\n }) || [];\n\n return root;\n }\n\n /**\n * create a build of the given UI root.\n */\n async build(uiRootAspectIdOrName?: string, customOutputPath?: string): Promise<any> {\n this.logger.debug(`build, uiRootAspectIdOrName: \"${uiRootAspectIdOrName}\"`);\n const maybeUiRoot = this.getUi(uiRootAspectIdOrName);\n\n if (!maybeUiRoot) throw new UnknownUI(uiRootAspectIdOrName, this.possibleUis());\n const [uiRootAspectId, uiRoot] = maybeUiRoot;\n\n // TODO: @uri refactor all dev server related code to use the bundler extension instead.\n const ssr = uiRoot.buildOptions?.ssr || false;\n const mainEntry = await this.generateRoot(await uiRoot.resolveAspects(UIRuntime.name), uiRootAspectId);\n const outputPath = customOutputPath || uiRoot.path;\n const publicDir = await this.publicDir(uiRoot);\n\n const browserConfig = createRspackBrowserConfig(outputPath, [mainEntry], uiRoot.name, publicDir);\n const compiler = rspack(browserConfig as any);\n this.logger.debug(`rspack (build): running for browser`);\n const [results, errors] = await this.runRspackPromise(compiler);\n this.logger.debug(`rspack (build): completed browser`);\n if (!results) throw new UnknownBuildError();\n if (errors) {\n this.clearConsole();\n throw new Error(errors);\n }\n if (results?.hasErrors()) {\n this.clearConsole();\n throw new Error(results?.toString());\n }\n\n if (ssr) {\n const ssrConfig = createRspackSsrConfig(outputPath, [mainEntry], publicDir);\n const ssrCompiler = rspack(ssrConfig as any);\n this.logger.debug(`rspack (build): running for SSR`);\n const [ssrResults, ssrErrors] = await this.runRspackPromise(ssrCompiler);\n this.logger.debug(`rspack (build): completed SSR build`);\n if (ssrErrors) {\n this.clearConsole();\n throw new Error(ssrErrors);\n }\n if (ssrResults?.hasErrors()) {\n this.clearConsole();\n throw new Error(ssrResults?.toString());\n }\n }\n\n return results;\n }\n\n registerStartPlugin(startPlugin: StartPlugin) {\n this.startPluginSlot.register(startPlugin);\n return this;\n }\n\n private async runRspackPromise(compiler: any): Promise<[any | undefined, string | undefined]> {\n return new Promise((resolve) =>\n compiler.run((err, stats) => {\n if (err) {\n this.logger.error('get error from rspack compiler, when bundling ui server, full error:', err);\n return resolve([undefined, `${err.toString()}\\n${err.stack}`]);\n }\n return resolve([stats, undefined]);\n })\n );\n }\n\n private async initiatePlugins(options: StartPluginOptions) {\n const plugins = this.startPluginSlot.values();\n await pMapSeries(plugins, (plugin) => plugin.initiate(options));\n return plugins;\n }\n\n runtimeOptions: RuntimeOptions = {};\n\n getUIServer(): UIServer | undefined {\n return this.currentUIServer;\n }\n /**\n * create a Bit UI runtime.\n */\n async createRuntime(runtimeOptions: RuntimeOptions) {\n this.runtimeOptions = runtimeOptions;\n const { uiRootName, pattern, dev, port, rebuild, verbose, skipUiBuild, showInternalUrls } = this.runtimeOptions;\n // uiRootName to be deprecated\n const uiRootAspectIdOrName = uiRootName || runtimeOptions.uiRootAspectIdOrName;\n const maybeUiRoot = this.getUi(uiRootAspectIdOrName);\n if (!maybeUiRoot) throw new UnknownUI(uiRootAspectIdOrName, this.possibleUis());\n\n const [uiRootAspectId, uiRoot] = maybeUiRoot;\n\n const plugins = await this.initiatePlugins({\n verbose,\n pattern,\n showInternalUrls,\n });\n\n if (this.componentExtension.isHost(uiRootAspectId)) this.componentExtension.setHostPriority(uiRootAspectId);\n\n const publicDir = await this.publicDir(uiRoot);\n const uiServer = UIServer.create({\n express: this.express,\n graphql: this.graphql,\n uiRoot,\n uiRootExtension: uiRootAspectId,\n ui: this,\n logger: this.logger,\n publicDir,\n startPlugins: plugins,\n });\n\n this.currentUIServer = uiServer;\n\n // Adding signal listeners to make sure we immediately close the process on sigint / sigterm (otherwise webpack dev server closing will take time)\n this.addSignalListener();\n if (dev) {\n await uiServer.dev({ portRange: port || this.config.portRange });\n } else {\n if (!skipUiBuild) await this.buildUI(uiRootAspectId, uiRoot, rebuild);\n const bundleUiPath = this.getBundleUiPath(uiRootAspectId);\n const bundleUiPublicPath = bundleUiPath ? join(bundleUiPath, publicDir) : undefined;\n const bundleUiRoot =\n this._isBundleUiServed && bundleUiPublicPath && existsSync(bundleUiPublicPath || '')\n ? bundleUiPublicPath\n : undefined;\n if (bundleUiRoot)\n this.logger.debug(`UI createRuntime of ${uiRootAspectId}, bundle will be served from ${bundleUiRoot}`);\n await uiServer.start({ portRange: port || this.config.portRange, bundleUiRoot });\n }\n\n this.pubsub.pub(UIAspect.id, this.createUiServerStartedEvent(this.config.host, uiServer.port, uiRoot));\n\n return uiServer;\n }\n\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n async getPort(port?: number): Promise<number> {\n if (port) return port;\n return this.config.port || this.selectPort();\n }\n\n /**\n * Events\n */\n private createUiServerStartedEvent = (targetHost, targetPort, uiRoot) => {\n return new UiServerStartedEvent(Date.now(), targetHost, targetPort, uiRoot);\n };\n\n /**\n * pre-start events are triggered and *completed* before the webserver started.\n * (the promise is awaited)\n */\n registerPreStart(preStartFn: PreStart) {\n this.preStartSlot.register(preStartFn);\n }\n\n /**\n * bind to ui server start event.\n */\n registerOnStart(onStartFn: OnStart) {\n this.onStartSlot.register(onStartFn);\n return this;\n }\n\n /**\n * overwrite the build ui function\n */\n registerBuildUIOverwrite(fn: BuildMethodOverwrite) {\n this.buildMethodOverwriteSlot.register(fn);\n return this;\n }\n\n /**\n * overwrite the build ui function\n */\n registerPublicDirOverwrite(fn: PublicDirOverwrite) {\n this.publicDirOverwriteSlot.register(fn);\n return this;\n }\n\n private getOverwriteBuildFn() {\n const buildMethodOverwrite = this.buildMethodOverwriteSlot.toArray();\n if (buildMethodOverwrite[0]) {\n const [, fn] = buildMethodOverwrite[0];\n return fn;\n }\n return undefined;\n }\n\n private getOverwritePublic() {\n const overwritePublic = this.publicDirOverwriteSlot.toArray();\n if (overwritePublic[0]) {\n const [, fn] = overwritePublic[0];\n return fn;\n }\n return undefined;\n }\n\n async invokePreStart(preStartOpts: PreStartOpts): Promise<void> {\n const onPreStartFuncs = this.preStartSlot.values();\n await pMapSeries(onPreStartFuncs, async (fn) => fn(preStartOpts));\n }\n\n async invokeOnStart(): Promise<ComponentType[]> {\n const onStartFuncs = this.onStartSlot.values();\n const startPlugins = await pMapSeries(onStartFuncs, async (fn) => fn());\n return startPlugins.filter((plugin) => !!plugin) as ComponentType[];\n }\n\n /**\n * register a UI slot.\n */\n registerUiRoot(uiRoot: UIRoot) {\n return this.uiRootSlot.register(uiRoot);\n }\n\n /**\n * get a UI runtime instance.\n */\n getUi(uiRootAspectIdOrName?: string): [string, UIRoot] | undefined {\n if (uiRootAspectIdOrName) {\n const root = this.uiRootSlot.get(uiRootAspectIdOrName) || this.getUiByName(uiRootAspectIdOrName);\n if (!root) return undefined;\n return [uiRootAspectIdOrName, root];\n }\n const uis = this.uiRootSlot.toArray();\n if (uis.length === 1) return uis[0];\n return uis.find(([, root]) => root.priority);\n }\n\n isHostAvailable(): boolean {\n return Boolean(this.componentExtension.getHost());\n }\n\n getUiName(uiRootAspectIdOrName?: string): string | undefined {\n const [, ui] = this.getUi(uiRootAspectIdOrName) || [];\n if (!ui) return undefined;\n\n return ui.name;\n }\n\n private possibleUis() {\n return this.uiRootSlot.toArray().map(([id]) => id);\n }\n\n createLink(aspectDefs: AspectDefinition[], rootExtensionName: string) {\n return createRoot(aspectDefs, rootExtensionName);\n }\n\n /**\n * generate the root file of the UI runtime.\n */\n async generateRoot(\n aspectDefs: AspectDefinition[],\n rootExtensionName: string,\n runtimeName = UIRuntime.name,\n rootAspect = UIAspect.id,\n config?: object,\n path?: string,\n ignoreVersion?: boolean,\n addRuntimes?: boolean,\n harmonyPackage?: string,\n shouldRun = false\n ) {\n const contents = await createRoot(\n aspectDefs,\n rootExtensionName,\n rootAspect,\n runtimeName,\n config || this.harmony.config.toObject(),\n ignoreVersion,\n addRuntimes,\n harmonyPackage,\n shouldRun\n );\n const filepath = pathResolve(join(path || __dirname, `${runtimeName}.root${sha1(contents)}.js`));\n if (fs.existsSync(filepath)) return filepath;\n fs.outputFileSync(filepath, contents);\n return filepath;\n }\n\n private async selectPort() {\n const [from, to] = this.config.portRange;\n const usedPorts = (await this.cache.get<number[]>(`${from}${to}`)) || [];\n const port = await Port.getPort(from, to, usedPorts);\n // this will lock the port for 1 min to avoid race conditions\n await this.cache.set(`${from}${to}`, usedPorts.concat(port), 5000);\n return port;\n }\n\n private async buildUI(uiRootAspectId: string, uiRoot: UIRoot, rebuild?: boolean): Promise<string> {\n this.logger.debug(`buildUI, uiRootAspectId ${uiRootAspectId}`);\n\n const overwrite = this.getOverwriteBuildFn();\n if (overwrite) return overwrite(uiRootAspectId, uiRoot, rebuild);\n\n this._isBundleUiServed = await this.shouldServeBundleUi(uiRootAspectId, uiRoot, rebuild);\n await this.buildIfChanged(uiRootAspectId, uiRoot, rebuild);\n await this.buildIfNoBundle(uiRootAspectId, uiRoot);\n return '';\n }\n\n private async shouldServeBundleUi(\n uiRootAspectId: string,\n uiRoot: UIRoot,\n force: boolean | undefined\n ): Promise<boolean> {\n if (!uiRoot.buildOptions?.prebundle) {\n return false;\n }\n\n const currentBundleUiHash = await this.createBundleUiHash(uiRoot);\n const cachedBundleUiHash = this.readBundleUiHash(uiRootAspectId);\n const isLocalBuildAvailable = existsSync(join(uiRoot.path, await this.publicDir(uiRoot)));\n\n return currentBundleUiHash === cachedBundleUiHash && !isLocalBuildAvailable && !force;\n }\n\n async buildIfChanged(uiRootAspectId: string, uiRoot: UIRoot, force: boolean | undefined): Promise<boolean> {\n this.logger.debug(`buildIfChanged, uiRootAspectId ${uiRootAspectId}`);\n\n if (this._isBundleUiServed) {\n this.logger.debug(`buildIfChanged, uiRootAspectId ${uiRootAspectId}, returned from ui bundle cache`);\n return false;\n }\n\n const currentBuildUiHash = await this.createBuildUiHash(uiRoot);\n const cachedBuildUiHash = await this.cache.get(uiRoot.path);\n if (currentBuildUiHash === cachedBuildUiHash && !force) {\n this.logger.debug(`buildIfChanged, uiRootAspectId ${uiRootAspectId}, returned from ui build cache`);\n return false;\n }\n\n if (!cachedBuildUiHash) {\n this.logger.console(\n `${chalk.magenta('[Rspack]')} Building UI assets for '${chalk.cyan(uiRoot.name)}' in target directory: ${chalk.cyan(\n await this.publicDir(uiRoot)\n )}. The first time we build the UI it may take a few minutes.`\n );\n } else {\n this.logger.console(\n `${chalk.magenta('[Rspack]')} Rebuilding UI assets for '${chalk.cyan(uiRoot.name)}' in target directory: ${chalk.cyan(\n await this.publicDir(uiRoot)\n )}' as ${uiRoot.configFile} has been changed.`\n );\n }\n\n await this.build(uiRootAspectId);\n await this.cache.set(uiRoot.path, currentBuildUiHash);\n return true;\n }\n\n private async createBuildUiHash(uiRoot: UIRoot, runtime = 'ui'): Promise<string> {\n const aspects = await uiRoot.resolveAspects(runtime);\n aspects.sort((a, b) => (a.aspectPath > 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\n /**\n * Generate hash for a given root\n * This API is public and used by external users, do not rename this function\n */\n async buildUiHash(uiRoot: UIRoot, runtime = 'ui'): Promise<string> {\n return this.createBuildUiHash(uiRoot, runtime);\n }\n\n async createBundleUiHash(uiRoot: UIRoot, runtime = 'ui'): 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 aspectIds = aspects.map((aspect) => aspect.getId || aspect.aspectPath);\n return sha1(aspectIds.join(''));\n }\n\n private readBundleUiHash(uiRootAspectId: string) {\n const bundleUiPathFromBvm = this.getBundleUiPath(uiRootAspectId);\n if (!bundleUiPathFromBvm) {\n return '';\n }\n const hashFilePath = join(bundleUiPathFromBvm, BUNDLE_UI_HASH_FILENAME);\n if (existsSync(hashFilePath)) {\n return readFileSync(hashFilePath).toString();\n }\n return '';\n }\n\n private getBundleUiPath(uiRootAspectId: string): string | undefined {\n try {\n const uiPathFromBvm = getAspectDirFromBvm(UIAspect.id);\n return join(uiPathFromBvm, BundleUiTask.getArtifactDirectory(uiRootAspectId));\n } catch (err) {\n this.logger.error(`getBundleUiPath, getAspectDirFromBvm failed with err: ${err}`);\n return undefined;\n }\n }\n\n private async buildIfNoBundle(uiRootAspectId: string, uiRoot: UIRoot): Promise<boolean> {\n if (this._isBundleUiServed) return false;\n\n const config = createRspackBrowserConfig(\n uiRoot.path,\n [await this.generateRoot(await uiRoot.resolveAspects(UIRuntime.name), uiRootAspectId)],\n uiRoot.name,\n await this.publicDir(uiRoot)\n );\n if (config.output?.path && fs.pathExistsSync(config.output.path as string)) return false;\n const hash = await this.createBuildUiHash(uiRoot);\n await this.build(uiRootAspectId);\n await this.cache.set(uiRoot.path, hash);\n return true;\n }\n\n clearConsole() {\n process.stdout.write(process.platform === 'win32' ? '\\x1B[2J\\x1B[0f' : '\\x1B[2J\\x1B[3J\\x1B[H');\n }\n\n get publicUrl() {\n return this.config.publicUrl;\n }\n\n static defaultConfig: UIConfig = {\n publicDir: 'public/bit',\n portRange: [3000, 3100],\n host: 'localhost',\n };\n\n static runtime = MainRuntime;\n static dependencies = [\n PubsubAspect,\n CLIAspect,\n GraphqlAspect,\n ExpressAspect,\n ComponentAspect,\n CacheAspect,\n LoggerAspect,\n ];\n\n static slots = [\n Slot.withType<UIRoot>(),\n Slot.withType<PreStart>(),\n Slot.withType<OnStart>(),\n Slot.withType<PublicDirOverwriteSlot>(),\n Slot.withType<BuildMethodOverwriteSlot>(),\n Slot.withType<StartPlugin>(),\n ];\n\n static async provider(\n [pubsub, cli, graphql, express, componentExtension, cache, loggerMain]: UIDeps,\n config,\n [uiRootSlot, preStartSlot, onStartSlot, publicDirOverwriteSlot, buildMethodOverwriteSlot, proxyGetterSlot]: [\n UIRootRegistry,\n PreStartSlot,\n OnStartSlot,\n PublicDirOverwriteSlot,\n BuildMethodOverwriteSlot,\n StartPluginSlot,\n ],\n harmony: Harmony\n ) {\n // aspectExtension.registerRuntime(new RuntimeDefinition('ui', []))\n const logger = loggerMain.createLogger(UIAspect.id);\n\n const ui = new UiMain(\n pubsub,\n config,\n graphql,\n uiRootSlot,\n express,\n preStartSlot,\n onStartSlot,\n publicDirOverwriteSlot,\n buildMethodOverwriteSlot,\n componentExtension,\n cache,\n logger,\n harmony,\n proxyGetterSlot\n );\n\n cli.register(new StartCmd(ui, logger), new UIBuildCmd(ui));\n\n return ui;\n }\n}\n\nUIAspect.addRuntime(UiMain);\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.886",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/ui-foundation/ui",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.ui-foundation",
|
|
8
8
|
"name": "ui",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.886"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "4.1.2",
|
|
@@ -45,7 +45,6 @@
|
|
|
45
45
|
"@teambit/toolbox.string.strip-trailing-char": "0.0.507",
|
|
46
46
|
"@teambit/harmony": "0.4.7",
|
|
47
47
|
"@teambit/cache": "0.0.1392",
|
|
48
|
-
"@teambit/harmony.modules.harmony-root-generator": "0.0.28",
|
|
49
48
|
"@teambit/toolbox.crypto.sha1": "0.0.14",
|
|
50
49
|
"@teambit/ui-foundation.ui.hooks.use-user-agent": "0.0.200",
|
|
51
50
|
"@teambit/api-reference.hooks.use-api-renderers": "0.0.37",
|
|
@@ -62,16 +61,17 @@
|
|
|
62
61
|
"@teambit/design.ui.tooltip": "0.0.382",
|
|
63
62
|
"@teambit/ui-foundation.ui.global-loader": "0.0.502",
|
|
64
63
|
"@teambit/design.themes.theme-toggler": "0.1.56",
|
|
65
|
-
"@teambit/builder": "1.0.
|
|
66
|
-
"@teambit/isolator": "1.0.
|
|
67
|
-
"@teambit/aspect-loader": "1.0.
|
|
68
|
-
"@teambit/bundler": "1.0.
|
|
69
|
-
"@teambit/component": "1.0.
|
|
70
|
-
"@teambit/graphql": "1.0.
|
|
71
|
-
"@teambit/aspect": "1.0.
|
|
72
|
-
"@teambit/
|
|
73
|
-
"@teambit/
|
|
74
|
-
"@teambit/
|
|
64
|
+
"@teambit/builder": "1.0.886",
|
|
65
|
+
"@teambit/isolator": "1.0.886",
|
|
66
|
+
"@teambit/aspect-loader": "1.0.886",
|
|
67
|
+
"@teambit/bundler": "1.0.886",
|
|
68
|
+
"@teambit/component": "1.0.886",
|
|
69
|
+
"@teambit/graphql": "1.0.886",
|
|
70
|
+
"@teambit/aspect": "1.0.886",
|
|
71
|
+
"@teambit/harmony.modules.harmony-root-generator": "0.0.30",
|
|
72
|
+
"@teambit/pubsub": "1.0.886",
|
|
73
|
+
"@teambit/react-router": "1.0.886",
|
|
74
|
+
"@teambit/webpack": "1.0.886"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@types/express": "4.17.21",
|
package/start.cmd.tsx
CHANGED
|
@@ -17,6 +17,7 @@ type StartFlags = {
|
|
|
17
17
|
skipCompilation: boolean;
|
|
18
18
|
skipUiBuild: boolean;
|
|
19
19
|
uiRootName: string;
|
|
20
|
+
useRootModules: boolean;
|
|
20
21
|
};
|
|
21
22
|
|
|
22
23
|
export class StartCmd implements Command {
|
|
@@ -51,6 +52,11 @@ includes hot module reloading for development.`;
|
|
|
51
52
|
'ui-root-name [type]',
|
|
52
53
|
'name of the ui root to use, e.g. "teambit.scope/scope" or "teambit.workspace/workspace"',
|
|
53
54
|
],
|
|
55
|
+
[
|
|
56
|
+
'',
|
|
57
|
+
'use-root-modules',
|
|
58
|
+
'EXPERIMENTAL. resolve component previews from root node_modules instead of .bit_roots. mainly for internal usage, use with caution only if you understand the implications',
|
|
59
|
+
],
|
|
54
60
|
] as CommandOptions;
|
|
55
61
|
|
|
56
62
|
constructor(
|
|
@@ -74,6 +80,7 @@ includes hot module reloading for development.`;
|
|
|
74
80
|
skipUiBuild,
|
|
75
81
|
showInternalUrls,
|
|
76
82
|
uiRootName: uiRootAspectIdOrName,
|
|
83
|
+
useRootModules,
|
|
77
84
|
}: StartFlags
|
|
78
85
|
) {
|
|
79
86
|
const spinnies = this.logger.multiSpinner;
|
|
@@ -97,6 +104,7 @@ includes hot module reloading for development.`;
|
|
|
97
104
|
rebuild,
|
|
98
105
|
verbose,
|
|
99
106
|
showInternalUrls,
|
|
107
|
+
useRootModules,
|
|
100
108
|
});
|
|
101
109
|
|
|
102
110
|
uiServer
|