@teambit/preview 1.0.666 → 1.0.668
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundler/html-plugin.ts +1 -1
- package/dist/bundler/html-plugin.d.ts +1 -1
- package/dist/bundler/html-plugin.js.map +1 -1
- package/dist/bundling-strategy.d.ts +4 -4
- package/dist/bundling-strategy.js.map +1 -1
- package/dist/component-preview.route.d.ts +1 -1
- package/dist/component-preview.route.js.map +1 -1
- package/dist/env-preview-template.task.d.ts +5 -5
- package/dist/env-preview-template.task.js.map +1 -1
- package/dist/env-template.route.js.map +1 -1
- package/dist/exceptions/preview-artifact-not-found.d.ts +1 -1
- package/dist/exceptions/preview-artifact-not-found.js.map +1 -1
- package/dist/exceptions/preview-output-file-not-found.d.ts +1 -1
- package/dist/exceptions/preview-output-file-not-found.js.map +1 -1
- package/dist/execution-ref.d.ts +1 -1
- package/dist/execution-ref.js.map +1 -1
- package/dist/generate-preview.cmd.d.ts +2 -2
- package/dist/generate-preview.cmd.js.map +1 -1
- package/dist/pre-bundle-utils.d.ts +3 -3
- package/dist/pre-bundle-utils.js.map +1 -1
- package/dist/pre-bundle.d.ts +1 -1
- package/dist/pre-bundle.js.map +1 -1
- package/dist/pre-bundle.task.d.ts +3 -3
- package/dist/pre-bundle.task.js.map +1 -1
- package/dist/{preview-1753803956605.js → preview-1753833698619.js} +2 -2
- package/dist/preview-artifact.d.ts +1 -1
- package/dist/preview-artifact.js.map +1 -1
- package/dist/preview-assets.route.d.ts +1 -1
- package/dist/preview-assets.route.js.map +1 -1
- package/dist/preview-context.d.ts +1 -1
- package/dist/preview-context.js.map +1 -1
- package/dist/preview-env.d.ts +3 -3
- package/dist/preview-env.js.map +1 -1
- package/dist/preview-type.d.ts +3 -3
- package/dist/preview-type.js.map +1 -1
- package/dist/preview.d.ts +1 -1
- package/dist/preview.graphql.d.ts +2 -2
- package/dist/preview.graphql.js.map +1 -1
- package/dist/preview.js.map +1 -1
- package/dist/preview.main.runtime.d.ts +16 -16
- package/dist/preview.main.runtime.js.map +1 -1
- package/dist/preview.preview.runtime.d.ts +4 -4
- package/dist/preview.preview.runtime.js.map +1 -1
- package/dist/preview.route.d.ts +1 -1
- package/dist/preview.route.js.map +1 -1
- package/dist/preview.service.d.ts +7 -7
- package/dist/preview.service.js.map +1 -1
- package/dist/preview.start-plugin.d.ts +7 -7
- package/dist/preview.start-plugin.js.map +1 -1
- package/dist/preview.task.d.ts +9 -9
- package/dist/preview.task.js.map +1 -1
- package/dist/rendering-context.d.ts +1 -1
- package/dist/rendering-context.js.map +1 -1
- package/dist/serve-preview.cmd.d.ts +1 -1
- package/dist/serve-preview.cmd.js.map +1 -1
- package/dist/strategies/component-strategy.d.ts +4 -4
- package/dist/strategies/component-strategy.js.map +1 -1
- package/dist/strategies/env-strategy.d.ts +6 -6
- package/dist/strategies/env-strategy.js.map +1 -1
- package/dist/webpack/webpack.config.d.ts +1 -1
- package/dist/webpack/webpack.config.js.map +1 -1
- package/exceptions/preview-artifact-not-found.ts +1 -1
- package/exceptions/preview-output-file-not-found.ts +1 -1
- package/generate-preview.cmd.tsx +2 -2
- package/package.json +25 -25
- package/preview.preview.runtime.tsx +6 -4
- package/preview.service.tsx +7 -7
- package/preview.start-plugin.tsx +8 -8
- package/serve-preview.cmd.tsx +1 -1
- package/strategies/component-strategy.ts +7 -6
- package/strategies/env-strategy.ts +9 -9
- package/webpack/webpack.config.ts +2 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_pubsub","data","require","_harmony","_componentId","_crossFetch","_interopRequireDefault","_memoizee","_lodash","_exceptions","_preview","_events","_renderingContext","_fetchComponentAspects","_previewModules","_htmlUtils","_sizeEvent","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PreviewPreview","constructor","pubsub","previewSlot","renderingContextSlot","isReady","Promise","resolve","_setupPromise","PREVIEW_MODULES","onSet","add","rootExt","window","document","body","style","width","previewName","componentId","envId","getLocation","name","getDefault","isDev","preview","getPreview","PreviewNotFound","includesAll","all","include","map","inclPreviewName","includedPreview","undefined","inclPreviewModule","getPreviewModule","selectPreviewModel","fullName","query","getQuery","onlyOverview","getParam","includes","filter","module","isObject","keysWithoutDefault","keys","key","defaultKeys","intersection","length","componentAspects","getComponentAspects","toString","previewModule","render","getRenderingContext","reportSize","setViewport","setFullScreen","memoize","fetchComponentAspects","max","maxAge","registerClickPubSub","addEventListener","timestamp","Date","now","clickEvent","assign","pub","PreviewAspect","id","ClickInsideAnIframeEvent","has","includedReady","every","included","fullScreen","root","getElementById","height","viewPort","maxWidth","parent","measure","documentElement","prevHeight","scrollHeight","scrollWidth","publish","SizeEvent","debounced","debounce","resizedObserver","ResizeObserver","observe","compShortId","relevantModel","get","Error","componentMap","componentPreviews","fetchComponentPreview","loadComponentPreviews","component","metadata","modulesMap","componentMapMetadata","previewFile","allFiles","fetchComponentPreviewFiles","file","endsWith","addComponentFileElement","loadPreviewScript","previewBundleFileName","addComponentFileScriptElement","addComponentFileLinkElement","catch","err","previewAssetsRoute","stringId","url","res","crossFetch","status","parsed","json","isBundledWithEnv","files","previewRoute","src","loadScript","href","loadLink","globalId","toStringWithoutVersion","componentPreview","registerPreview","register","aspectsFilter","RenderingContext","registerRenderContext","renderContext","previews","values","defaultOne","find","previewCandidate","param","params","URLSearchParams","withoutHash","location","hash","substring","after","split","before","ComponentID","tryFromString","provider","config","exports","PreviewRuntime","PubsubAspect","Slot","withType","addRuntime"],"sources":["preview.preview.runtime.tsx"],"sourcesContent":["import { PubsubAspect, PubsubPreview } from '@teambit/pubsub';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { ComponentID } from '@teambit/component-id';\n// Using cross-fetch here instead of @pnpm/node-fetch\n// which is crucial in this context as preview operates from the frontend where proxy and CA cert handling are not required\n// Reverting to cross-fetch restores correct handling of relative URLs, ensuring that previews render correctly\nimport crossFetch from 'cross-fetch';\nimport memoize from 'memoizee';\nimport { debounce, intersection, isObject } from 'lodash';\n\nimport { PreviewNotFound } from './exceptions';\nimport { PreviewType } from './preview-type';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { ClickInsideAnIframeEvent } from './events';\nimport { ModuleFile, PreviewModule } from './types/preview-module';\nimport { RenderingContext } from './rendering-context';\nimport { fetchComponentAspects } from './gql/fetch-component-aspects';\nimport { PREVIEW_MODULES } from './preview-modules';\nimport { loadScript, loadLink } from './html-utils';\nimport { SizeEvent } from './size-event';\n\n// forward linkModules() for generate-link.ts\nexport { linkModules } from './preview-modules';\n\nexport type PreviewSlot = SlotRegistry<PreviewType>;\n\nexport type RenderingContextOptions = { aspectsFilter?: string[] };\nexport type RenderingContextProvider = (options: RenderingContextOptions) => { [key: string]: any };\nexport type RenderingContextSlot = SlotRegistry<RenderingContextProvider>;\n\nexport class PreviewPreview {\n constructor(\n /**\n * register to pubsub\n */\n private pubsub: PubsubPreview,\n\n /**\n * preview slot.\n */\n private previewSlot: PreviewSlot,\n\n private renderingContextSlot: RenderingContextSlot\n ) {\n this.registerClickPubSub();\n }\n\n private registerClickPubSub() {\n window.addEventListener('click', (e) => {\n const timestamp = Date.now();\n const clickEvent = Object.assign({}, e);\n this.pubsub.pub(PreviewAspect.id, new ClickInsideAnIframeEvent(timestamp, clickEvent));\n });\n }\n\n private isDev = false;\n\n private isReady() {\n const { previewName } = this.getLocation();\n const name = previewName || this.getDefault();\n\n if (!PREVIEW_MODULES.has(name)) return false;\n const preview = this.getPreview(name);\n if (!preview) return false;\n const includedReady = preview.include?.every((included) => PREVIEW_MODULES.has(included)) ?? true;\n if (!includedReady) return false;\n\n return true;\n }\n\n private _setupPromise?: Promise<void>;\n setup = () => {\n if (this.isReady()) return Promise.resolve();\n\n this._setupPromise ??= new Promise((resolve) => {\n PREVIEW_MODULES.onSet.add(() => {\n if (this.isReady()) resolve();\n });\n });\n\n return this._setupPromise;\n };\n\n /**\n * render the preview.\n */\n render = async (rootExt?: string) => {\n // fit content always.\n window.document.body.style.width = 'fit-content';\n\n const { previewName, componentId, envId } = this.getLocation();\n const name = previewName || this.getDefault();\n if (rootExt) this.isDev = rootExt === 'teambit.workspace/workspace';\n\n const preview = this.getPreview(name);\n if (!preview || !componentId) {\n throw new PreviewNotFound(previewName);\n }\n\n const includesAll = await Promise.all(\n (preview.include || []).map(async (inclPreviewName) => {\n const includedPreview = this.getPreview(inclPreviewName);\n if (!includedPreview) return undefined;\n\n const inclPreviewModule = await this.getPreviewModule(inclPreviewName, componentId);\n return includedPreview.selectPreviewModel?.(componentId.fullName, inclPreviewModule);\n })\n );\n\n const query = this.getQuery();\n const onlyOverview = this.getParam(query, 'onlyOverview');\n\n const includes =\n onlyOverview === 'true'\n ? []\n : includesAll\n .filter((module) => !!module)\n .map((module) => {\n if (!module.default || !isObject(module.default)) return module;\n // This aims to handle use cases where we have package.json with type:\"module\" in the root\n // in that case sometime we might get the props both under default and in the object root\n const keysWithoutDefault = Object.keys(module).filter((key) => key !== 'default');\n const defaultKeys = Object.keys(module.default);\n if (intersection(keysWithoutDefault, defaultKeys).length === defaultKeys.length) return module.default;\n return module;\n });\n\n // during build / tag, the component is isolated, so all aspects are relevant, and do not require filtering\n const componentAspects = this.isDev ? await this.getComponentAspects(componentId.toString()) : undefined;\n const previewModule = await this.getPreviewModule(name, componentId);\n const render = preview.render(\n componentId,\n envId || '',\n previewModule,\n includes,\n this.getRenderingContext(componentAspects)\n );\n\n this.reportSize();\n this.setViewport();\n this.setFullScreen();\n return render;\n };\n\n setFullScreen() {\n const query = this.getQuery();\n const fullScreen = this.getParam(query, 'fullscreen');\n\n if (!fullScreen) return;\n\n const root = window.document.getElementById('root');\n\n if (root) {\n root.style.height = '100vh';\n }\n }\n\n setViewport() {\n const query = this.getQuery();\n const viewPort = this.getParam(query, 'viewport');\n if (!viewPort) {\n window.document.body.style.width = '100%';\n return;\n }\n\n window.document.body.style.maxWidth = `${viewPort}px`;\n }\n\n reportSize() {\n if (!window?.parent || !window?.document) return;\n // In Preview, the <body> is always exactly as tall as the iframe viewport, not as tall as the content.\n // by measuring the scrollHeight of the root element, we can get the height of the content.\n const measure = () => {\n const root = window.document.getElementById('root') ?? window.document.documentElement;\n const prevHeight = root.style.height;\n // set height auto to make the browser calculate the natural block formatting height\n // scrollHeight of an element that has height: 100% reports the viewport height, not the content height\n root.style.height = 'auto';\n const height = root.scrollHeight;\n const width = root.scrollWidth;\n // restore the previous height so nothing visually changes within the same tick\n root.style.height = prevHeight;\n return { width, height };\n };\n const publish = () => {\n const { width, height } = measure();\n this.pubsub.pub(PreviewAspect.id, new SizeEvent({ width, height }));\n };\n // publish right away so the parent gets the first real size as soon as possible\n publish();\n // publish dimension changes when the content size actually changes\n const debounced = debounce(publish, 100);\n const resizedObserver = new ResizeObserver(debounced);\n resizedObserver.observe(window.document.documentElement);\n const root = window.document.getElementById('root');\n if (root) resizedObserver.observe(root);\n }\n\n async getPreviewModule(previewName: string, id: ComponentID): Promise<PreviewModule> {\n const compShortId = id.fullName;\n\n const relevantModel = PREVIEW_MODULES.get(previewName);\n if (!relevantModel) throw new Error(`[preview.preview] missing preview \"${previewName}\"`);\n if (relevantModel.componentMap[compShortId]) return relevantModel;\n\n const componentPreviews = await this.fetchComponentPreview(id, previewName);\n PREVIEW_MODULES.loadComponentPreviews(compShortId, componentPreviews);\n\n const component = componentPreviews[previewName];\n const metadata = componentPreviews[`${previewName}_metadata`];\n\n return {\n modulesMap: relevantModel.modulesMap,\n componentMap: {\n [id.fullName]: component,\n },\n componentMapMetadata: {\n [id.fullName]: metadata,\n },\n };\n }\n\n async fetchComponentPreview(id: ComponentID, name: string): Promise<Record<string, ModuleFile[]>> {\n let previewFile: string | undefined;\n const allFiles = await this.fetchComponentPreviewFiles(id, name);\n // It's a component bundled with the env\n if (allFiles === null) return {};\n\n await Promise.all(\n allFiles.map((file) => {\n // We want to run the preview file always last\n if (file.endsWith('-preview.js')) {\n previewFile = file;\n return undefined;\n }\n\n return this.addComponentFileElement(id, file);\n })\n );\n\n if (!previewFile) return {};\n return this.loadPreviewScript(id, name, previewFile);\n }\n\n private addComponentFileElement(id: ComponentID, previewBundleFileName: string) {\n if (previewBundleFileName.endsWith('.js')) {\n return this.addComponentFileScriptElement(id, previewBundleFileName);\n }\n\n // TODO - should we load assets other than .css / .js?\n // if (previewBundleFileName.endsWith('.css')) {\n this.addComponentFileLinkElement(id, previewBundleFileName).catch((err) => {\n throw new Error(\n `[preview.preview] failed loading asset \"${previewBundleFileName}\". Error - \"${err?.toString()}\"`\n );\n });\n\n // do NOT await non js assets, as they might never load (like images), and not critical for rendering.\n return undefined;\n }\n\n private async fetchComponentPreviewFiles(id: ComponentID, previewName: string): Promise<string[] | null> {\n const previewAssetsRoute = `~aspect/preview-assets`;\n const stringId = id.toString();\n const url = `/api/${stringId}/${previewAssetsRoute}`;\n\n const res = await crossFetch(url);\n if (res.status >= 400) {\n throw new PreviewNotFound(previewName);\n }\n const parsed = await res.json();\n // This is component bundled with the env, no reason to bring the files, as they will be the files of the env\n if (parsed.isBundledWithEnv) {\n return null;\n }\n if (!parsed.files || !parsed.files.length) {\n throw new PreviewNotFound(previewName);\n }\n return parsed.files;\n }\n\n private addComponentFileScriptElement(id: ComponentID, previewBundleFileName: string) {\n const previewRoute = `~aspect/component-preview`;\n const stringId = id.toString();\n const src = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n return loadScript({ src });\n }\n\n private addComponentFileLinkElement(id: ComponentID, previewBundleFileName: string) {\n const stringId = id.toString();\n const previewRoute = `~aspect/component-preview`;\n const href = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n return loadLink({ href });\n }\n\n private async loadPreviewScript(id: ComponentID, previewName: string, previewBundleFileName: string) {\n const previewRoute = `~aspect/component-preview`;\n const src = `/api/${id.toString()}/${previewRoute}/${previewBundleFileName}`;\n await loadScript({ src });\n\n // TODO - replace with jsonp\n const globalId = `${id.toStringWithoutVersion()}-preview`;\n const componentPreview = window[globalId];\n if (!componentPreview) throw new PreviewNotFound(previewName);\n\n return componentPreview as Record<string, ModuleFile[]>;\n }\n\n private getComponentAspects = memoize(fetchComponentAspects, {\n max: 100,\n maxAge: 12 * 60 * 60 * 1000,\n });\n\n /**\n * register a new preview.\n */\n registerPreview(preview: PreviewType) {\n this.previewSlot.register(preview);\n return this;\n }\n\n /**\n * get the preview rendering context.\n */\n getRenderingContext(aspectsFilter?: string[]) {\n return new RenderingContext(this.renderingContextSlot, { aspectsFilter });\n }\n\n /**\n * allows aspects to add rendering contexts.\n * render context is available through all preview definitions.\n */\n registerRenderContext(renderContext: RenderingContextProvider) {\n this.renderingContextSlot.register(renderContext);\n return this;\n }\n\n getDefault() {\n const previews = this.previewSlot.values();\n const defaultOne = previews.find((previewCandidate) => previewCandidate.default);\n\n return defaultOne?.name || previews[0].name;\n }\n\n private getPreview(previewName: string): undefined | PreviewType {\n const previews = this.previewSlot.values();\n const preview = previews.find((previewCandidate) => previewCandidate.name === previewName);\n\n return preview;\n }\n\n getParam(query: string, param: string) {\n const params = new URLSearchParams(query);\n return params.get(param);\n }\n\n getQuery() {\n const withoutHash = window.location.hash.substring(1);\n const [, after] = withoutHash.split('?');\n return after;\n }\n\n private getLocation() {\n const withoutHash = window.location.hash.substring(1);\n const [before, after] = withoutHash.split('?');\n\n return {\n previewName: this.getParam(after, 'preview'),\n envId: this.getParam(after, 'env'),\n componentId: ComponentID.tryFromString(before),\n };\n }\n\n static runtime = PreviewRuntime;\n\n static dependencies = [PubsubAspect];\n\n static slots = [Slot.withType<PreviewType>(), Slot.withType<RenderingContextProvider>()];\n\n static async provider(\n [pubsub]: [PubsubPreview],\n config,\n [previewSlot, renderingContextSlot]: [PreviewSlot, RenderingContextSlot]\n ) {\n const preview = new PreviewPreview(pubsub, previewSlot, renderingContextSlot);\n\n window.addEventListener('hashchange', () => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n preview.render();\n });\n\n return preview;\n }\n}\n\nPreviewAspect.addRuntime(PreviewPreview);\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_pubsub","data","require","_harmony","_componentId","_crossFetch","_interopRequireDefault","_memoizee","_lodash","_exceptions","_preview","_events","_renderingContext","_fetchComponentAspects","_previewModules","_htmlUtils","_sizeEvent","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PreviewPreview","constructor","pubsub","previewSlot","renderingContextSlot","isReady","Promise","resolve","_setupPromise","PREVIEW_MODULES","onSet","add","rootExt","window","document","body","style","width","previewName","componentId","envId","getLocation","name","getDefault","isDev","preview","getPreview","PreviewNotFound","includesAll","all","include","map","inclPreviewName","includedPreview","undefined","inclPreviewModule","getPreviewModule","selectPreviewModel","fullName","query","getQuery","onlyOverview","getParam","includes","filter","module","isObject","keysWithoutDefault","keys","key","defaultKeys","intersection","length","componentAspects","getComponentAspects","toString","previewModule","render","getRenderingContext","reportSize","setViewport","setFullScreen","memoize","fetchComponentAspects","max","maxAge","registerClickPubSub","addEventListener","timestamp","Date","now","clickEvent","assign","pub","PreviewAspect","id","ClickInsideAnIframeEvent","has","includedReady","every","included","fullScreen","root","getElementById","height","viewPort","maxWidth","parent","measure","documentElement","prevHeight","scrollHeight","scrollWidth","publish","SizeEvent","debounced","debounce","resizedObserver","ResizeObserver","observe","compShortId","relevantModel","get","Error","componentMap","componentPreviews","fetchComponentPreview","loadComponentPreviews","component","metadata","modulesMap","componentMapMetadata","previewFile","allFiles","fetchComponentPreviewFiles","file","endsWith","addComponentFileElement","loadPreviewScript","previewBundleFileName","addComponentFileScriptElement","addComponentFileLinkElement","catch","err","previewAssetsRoute","stringId","url","res","crossFetch","status","parsed","json","isBundledWithEnv","files","previewRoute","src","loadScript","href","loadLink","globalId","toStringWithoutVersion","componentPreview","registerPreview","register","aspectsFilter","RenderingContext","registerRenderContext","renderContext","previews","values","defaultOne","find","previewCandidate","param","params","URLSearchParams","withoutHash","location","hash","substring","after","split","before","ComponentID","tryFromString","provider","config","exports","PreviewRuntime","PubsubAspect","Slot","withType","addRuntime"],"sources":["preview.preview.runtime.tsx"],"sourcesContent":["import type { PubsubPreview } from '@teambit/pubsub';\nimport { PubsubAspect } from '@teambit/pubsub';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport { ComponentID } from '@teambit/component-id';\n// Using cross-fetch here instead of @pnpm/node-fetch\n// which is crucial in this context as preview operates from the frontend where proxy and CA cert handling are not required\n// Reverting to cross-fetch restores correct handling of relative URLs, ensuring that previews render correctly\nimport crossFetch from 'cross-fetch';\nimport memoize from 'memoizee';\nimport { debounce, intersection, isObject } from 'lodash';\n\nimport { PreviewNotFound } from './exceptions';\nimport type { PreviewType } from './preview-type';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { ClickInsideAnIframeEvent } from './events';\nimport type { ModuleFile, PreviewModule } from './types/preview-module';\nimport { RenderingContext } from './rendering-context';\nimport { fetchComponentAspects } from './gql/fetch-component-aspects';\nimport { PREVIEW_MODULES } from './preview-modules';\nimport { loadScript, loadLink } from './html-utils';\nimport { SizeEvent } from './size-event';\n\n// forward linkModules() for generate-link.ts\nexport { linkModules } from './preview-modules';\n\nexport type PreviewSlot = SlotRegistry<PreviewType>;\n\nexport type RenderingContextOptions = { aspectsFilter?: string[] };\nexport type RenderingContextProvider = (options: RenderingContextOptions) => { [key: string]: any };\nexport type RenderingContextSlot = SlotRegistry<RenderingContextProvider>;\n\nexport class PreviewPreview {\n constructor(\n /**\n * register to pubsub\n */\n private pubsub: PubsubPreview,\n\n /**\n * preview slot.\n */\n private previewSlot: PreviewSlot,\n\n private renderingContextSlot: RenderingContextSlot\n ) {\n this.registerClickPubSub();\n }\n\n private registerClickPubSub() {\n window.addEventListener('click', (e) => {\n const timestamp = Date.now();\n const clickEvent = Object.assign({}, e);\n this.pubsub.pub(PreviewAspect.id, new ClickInsideAnIframeEvent(timestamp, clickEvent));\n });\n }\n\n private isDev = false;\n\n private isReady() {\n const { previewName } = this.getLocation();\n const name = previewName || this.getDefault();\n\n if (!PREVIEW_MODULES.has(name)) return false;\n const preview = this.getPreview(name);\n if (!preview) return false;\n const includedReady = preview.include?.every((included) => PREVIEW_MODULES.has(included)) ?? true;\n if (!includedReady) return false;\n\n return true;\n }\n\n private _setupPromise?: Promise<void>;\n setup = () => {\n if (this.isReady()) return Promise.resolve();\n\n this._setupPromise ??= new Promise((resolve) => {\n PREVIEW_MODULES.onSet.add(() => {\n if (this.isReady()) resolve();\n });\n });\n\n return this._setupPromise;\n };\n\n /**\n * render the preview.\n */\n render = async (rootExt?: string) => {\n // fit content always.\n window.document.body.style.width = 'fit-content';\n\n const { previewName, componentId, envId } = this.getLocation();\n const name = previewName || this.getDefault();\n if (rootExt) this.isDev = rootExt === 'teambit.workspace/workspace';\n\n const preview = this.getPreview(name);\n if (!preview || !componentId) {\n throw new PreviewNotFound(previewName);\n }\n\n const includesAll = await Promise.all(\n (preview.include || []).map(async (inclPreviewName) => {\n const includedPreview = this.getPreview(inclPreviewName);\n if (!includedPreview) return undefined;\n\n const inclPreviewModule = await this.getPreviewModule(inclPreviewName, componentId);\n return includedPreview.selectPreviewModel?.(componentId.fullName, inclPreviewModule);\n })\n );\n\n const query = this.getQuery();\n const onlyOverview = this.getParam(query, 'onlyOverview');\n\n const includes =\n onlyOverview === 'true'\n ? []\n : includesAll\n .filter((module) => !!module)\n .map((module) => {\n if (!module.default || !isObject(module.default)) return module;\n // This aims to handle use cases where we have package.json with type:\"module\" in the root\n // in that case sometime we might get the props both under default and in the object root\n const keysWithoutDefault = Object.keys(module).filter((key) => key !== 'default');\n const defaultKeys = Object.keys(module.default);\n if (intersection(keysWithoutDefault, defaultKeys).length === defaultKeys.length) return module.default;\n return module;\n });\n\n // during build / tag, the component is isolated, so all aspects are relevant, and do not require filtering\n const componentAspects = this.isDev ? await this.getComponentAspects(componentId.toString()) : undefined;\n const previewModule = await this.getPreviewModule(name, componentId);\n const render = preview.render(\n componentId,\n envId || '',\n previewModule,\n includes,\n this.getRenderingContext(componentAspects)\n );\n\n this.reportSize();\n this.setViewport();\n this.setFullScreen();\n return render;\n };\n\n setFullScreen() {\n const query = this.getQuery();\n const fullScreen = this.getParam(query, 'fullscreen');\n\n if (!fullScreen) return;\n\n const root = window.document.getElementById('root');\n\n if (root) {\n root.style.height = '100vh';\n }\n }\n\n setViewport() {\n const query = this.getQuery();\n const viewPort = this.getParam(query, 'viewport');\n if (!viewPort) {\n window.document.body.style.width = '100%';\n return;\n }\n\n window.document.body.style.maxWidth = `${viewPort}px`;\n }\n\n reportSize() {\n if (!window?.parent || !window?.document) return;\n // In Preview, the <body> is always exactly as tall as the iframe viewport, not as tall as the content.\n // by measuring the scrollHeight of the root element, we can get the height of the content.\n const measure = () => {\n const root = window.document.getElementById('root') ?? window.document.documentElement;\n const prevHeight = root.style.height;\n // set height auto to make the browser calculate the natural block formatting height\n // scrollHeight of an element that has height: 100% reports the viewport height, not the content height\n root.style.height = 'auto';\n const height = root.scrollHeight;\n const width = root.scrollWidth;\n // restore the previous height so nothing visually changes within the same tick\n root.style.height = prevHeight;\n return { width, height };\n };\n const publish = () => {\n const { width, height } = measure();\n this.pubsub.pub(PreviewAspect.id, new SizeEvent({ width, height }));\n };\n // publish right away so the parent gets the first real size as soon as possible\n publish();\n // publish dimension changes when the content size actually changes\n const debounced = debounce(publish, 100);\n const resizedObserver = new ResizeObserver(debounced);\n resizedObserver.observe(window.document.documentElement);\n const root = window.document.getElementById('root');\n if (root) resizedObserver.observe(root);\n }\n\n async getPreviewModule(previewName: string, id: ComponentID): Promise<PreviewModule> {\n const compShortId = id.fullName;\n\n const relevantModel = PREVIEW_MODULES.get(previewName);\n if (!relevantModel) throw new Error(`[preview.preview] missing preview \"${previewName}\"`);\n if (relevantModel.componentMap[compShortId]) return relevantModel;\n\n const componentPreviews = await this.fetchComponentPreview(id, previewName);\n PREVIEW_MODULES.loadComponentPreviews(compShortId, componentPreviews);\n\n const component = componentPreviews[previewName];\n const metadata = componentPreviews[`${previewName}_metadata`];\n\n return {\n modulesMap: relevantModel.modulesMap,\n componentMap: {\n [id.fullName]: component,\n },\n componentMapMetadata: {\n [id.fullName]: metadata,\n },\n };\n }\n\n async fetchComponentPreview(id: ComponentID, name: string): Promise<Record<string, ModuleFile[]>> {\n let previewFile: string | undefined;\n const allFiles = await this.fetchComponentPreviewFiles(id, name);\n // It's a component bundled with the env\n if (allFiles === null) return {};\n\n await Promise.all(\n allFiles.map((file) => {\n // We want to run the preview file always last\n if (file.endsWith('-preview.js')) {\n previewFile = file;\n return undefined;\n }\n\n return this.addComponentFileElement(id, file);\n })\n );\n\n if (!previewFile) return {};\n return this.loadPreviewScript(id, name, previewFile);\n }\n\n private addComponentFileElement(id: ComponentID, previewBundleFileName: string) {\n if (previewBundleFileName.endsWith('.js')) {\n return this.addComponentFileScriptElement(id, previewBundleFileName);\n }\n\n // TODO - should we load assets other than .css / .js?\n // if (previewBundleFileName.endsWith('.css')) {\n this.addComponentFileLinkElement(id, previewBundleFileName).catch((err) => {\n throw new Error(\n `[preview.preview] failed loading asset \"${previewBundleFileName}\". Error - \"${err?.toString()}\"`\n );\n });\n\n // do NOT await non js assets, as they might never load (like images), and not critical for rendering.\n return undefined;\n }\n\n private async fetchComponentPreviewFiles(id: ComponentID, previewName: string): Promise<string[] | null> {\n const previewAssetsRoute = `~aspect/preview-assets`;\n const stringId = id.toString();\n const url = `/api/${stringId}/${previewAssetsRoute}`;\n\n const res = await crossFetch(url);\n if (res.status >= 400) {\n throw new PreviewNotFound(previewName);\n }\n const parsed = await res.json();\n // This is component bundled with the env, no reason to bring the files, as they will be the files of the env\n if (parsed.isBundledWithEnv) {\n return null;\n }\n if (!parsed.files || !parsed.files.length) {\n throw new PreviewNotFound(previewName);\n }\n return parsed.files;\n }\n\n private addComponentFileScriptElement(id: ComponentID, previewBundleFileName: string) {\n const previewRoute = `~aspect/component-preview`;\n const stringId = id.toString();\n const src = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n return loadScript({ src });\n }\n\n private addComponentFileLinkElement(id: ComponentID, previewBundleFileName: string) {\n const stringId = id.toString();\n const previewRoute = `~aspect/component-preview`;\n const href = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n return loadLink({ href });\n }\n\n private async loadPreviewScript(id: ComponentID, previewName: string, previewBundleFileName: string) {\n const previewRoute = `~aspect/component-preview`;\n const src = `/api/${id.toString()}/${previewRoute}/${previewBundleFileName}`;\n await loadScript({ src });\n\n // TODO - replace with jsonp\n const globalId = `${id.toStringWithoutVersion()}-preview`;\n const componentPreview = window[globalId];\n if (!componentPreview) throw new PreviewNotFound(previewName);\n\n return componentPreview as Record<string, ModuleFile[]>;\n }\n\n private getComponentAspects = memoize(fetchComponentAspects, {\n max: 100,\n maxAge: 12 * 60 * 60 * 1000,\n });\n\n /**\n * register a new preview.\n */\n registerPreview(preview: PreviewType) {\n this.previewSlot.register(preview);\n return this;\n }\n\n /**\n * get the preview rendering context.\n */\n getRenderingContext(aspectsFilter?: string[]) {\n return new RenderingContext(this.renderingContextSlot, { aspectsFilter });\n }\n\n /**\n * allows aspects to add rendering contexts.\n * render context is available through all preview definitions.\n */\n registerRenderContext(renderContext: RenderingContextProvider) {\n this.renderingContextSlot.register(renderContext);\n return this;\n }\n\n getDefault() {\n const previews = this.previewSlot.values();\n const defaultOne = previews.find((previewCandidate) => previewCandidate.default);\n\n return defaultOne?.name || previews[0].name;\n }\n\n private getPreview(previewName: string): undefined | PreviewType {\n const previews = this.previewSlot.values();\n const preview = previews.find((previewCandidate) => previewCandidate.name === previewName);\n\n return preview;\n }\n\n getParam(query: string, param: string) {\n const params = new URLSearchParams(query);\n return params.get(param);\n }\n\n getQuery() {\n const withoutHash = window.location.hash.substring(1);\n const [, after] = withoutHash.split('?');\n return after;\n }\n\n private getLocation() {\n const withoutHash = window.location.hash.substring(1);\n const [before, after] = withoutHash.split('?');\n\n return {\n previewName: this.getParam(after, 'preview'),\n envId: this.getParam(after, 'env'),\n componentId: ComponentID.tryFromString(before),\n };\n }\n\n static runtime = PreviewRuntime;\n\n static dependencies = [PubsubAspect];\n\n static slots = [Slot.withType<PreviewType>(), Slot.withType<RenderingContextProvider>()];\n\n static async provider(\n [pubsub]: [PubsubPreview],\n config,\n [previewSlot, renderingContextSlot]: [PreviewSlot, RenderingContextSlot]\n ) {\n const preview = new PreviewPreview(pubsub, previewSlot, renderingContextSlot);\n\n window.addEventListener('hashchange', () => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n preview.render();\n });\n\n return preview;\n }\n}\n\nPreviewAspect.addRuntime(PreviewPreview);\n"],"mappings":";;;;;;;;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,aAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,YAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAK,sBAAA,CAAAJ,OAAA;EAAAG,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,UAAA;EAAA,MAAAN,IAAA,GAAAK,sBAAA,CAAAJ,OAAA;EAAAK,SAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAQ,YAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,WAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,SAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,QAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,QAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,OAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAW,kBAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,iBAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,uBAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,sBAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,gBAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,eAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,WAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,UAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,WAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,UAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAyC,SAAAK,uBAAAW,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,KAhBzC;AACA;AACA;AAgBA;AASO,MAAMgB,cAAc,CAAC;EAC1BC,WAAWA;EACT;AACJ;AACA;EACYC,MAAqB;EAE7B;AACJ;AACA;EACYC,WAAwB,EAExBC,oBAA0C,EAClD;IAAA,KARQF,MAAqB,GAArBA,MAAqB;IAAA,KAKrBC,WAAwB,GAAxBA,WAAwB;IAAA,KAExBC,oBAA0C,GAA1CA,oBAA0C;IAAAtB,eAAA,gBAapC,KAAK;IAAAA,eAAA;IAAAA,eAAA,gBAgBb,MAAM;MACZ,IAAI,IAAI,CAACuB,OAAO,CAAC,CAAC,EAAE,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;MAE5C,IAAI,CAACC,aAAa,KAAK,IAAIF,OAAO,CAAEC,OAAO,IAAK;QAC9CE,iCAAe,CAACC,KAAK,CAACC,GAAG,CAAC,MAAM;UAC9B,IAAI,IAAI,CAACN,OAAO,CAAC,CAAC,EAAEE,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,OAAO,IAAI,CAACC,aAAa;IAC3B,CAAC;IAED;AACF;AACA;IAFE1B,eAAA,iBAGS,MAAO8B,OAAgB,IAAK;MACnC;MACAC,MAAM,CAACC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,KAAK,GAAG,aAAa;MAEhD,MAAM;QAAEC,WAAW;QAAEC,WAAW;QAAEC;MAAM,CAAC,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC;MAC9D,MAAMC,IAAI,GAAGJ,WAAW,IAAI,IAAI,CAACK,UAAU,CAAC,CAAC;MAC7C,IAAIX,OAAO,EAAE,IAAI,CAACY,KAAK,GAAGZ,OAAO,KAAK,6BAA6B;MAEnE,MAAMa,OAAO,GAAG,IAAI,CAACC,UAAU,CAACJ,IAAI,CAAC;MACrC,IAAI,CAACG,OAAO,IAAI,CAACN,WAAW,EAAE;QAC5B,MAAM,KAAIQ,6BAAe,EAACT,WAAW,CAAC;MACxC;MAEA,MAAMU,WAAW,GAAG,MAAMtB,OAAO,CAACuB,GAAG,CACnC,CAACJ,OAAO,CAACK,OAAO,IAAI,EAAE,EAAEC,GAAG,CAAC,MAAOC,eAAe,IAAK;QACrD,MAAMC,eAAe,GAAG,IAAI,CAACP,UAAU,CAACM,eAAe,CAAC;QACxD,IAAI,CAACC,eAAe,EAAE,OAAOC,SAAS;QAEtC,MAAMC,iBAAiB,GAAG,MAAM,IAAI,CAACC,gBAAgB,CAACJ,eAAe,EAAEb,WAAW,CAAC;QACnF,OAAOc,eAAe,CAACI,kBAAkB,GAAGlB,WAAW,CAACmB,QAAQ,EAAEH,iBAAiB,CAAC;MACtF,CAAC,CACH,CAAC;MAED,MAAMI,KAAK,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;MAC7B,MAAMC,YAAY,GAAG,IAAI,CAACC,QAAQ,CAACH,KAAK,EAAE,cAAc,CAAC;MAEzD,MAAMI,QAAQ,GACZF,YAAY,KAAK,MAAM,GACnB,EAAE,GACFb,WAAW,CACRgB,MAAM,CAAEC,MAAM,IAAK,CAAC,CAACA,MAAM,CAAC,CAC5Bd,GAAG,CAAEc,MAAM,IAAK;QACf,IAAI,CAACA,MAAM,CAAChE,OAAO,IAAI,CAAC,IAAAiE,kBAAQ,EAACD,MAAM,CAAChE,OAAO,CAAC,EAAE,OAAOgE,MAAM;QAC/D;QACA;QACA,MAAME,kBAAkB,GAAG7D,MAAM,CAAC8D,IAAI,CAACH,MAAM,CAAC,CAACD,MAAM,CAAEK,GAAG,IAAKA,GAAG,KAAK,SAAS,CAAC;QACjF,MAAMC,WAAW,GAAGhE,MAAM,CAAC8D,IAAI,CAACH,MAAM,CAAChE,OAAO,CAAC;QAC/C,IAAI,IAAAsE,sBAAY,EAACJ,kBAAkB,EAAEG,WAAW,CAAC,CAACE,MAAM,KAAKF,WAAW,CAACE,MAAM,EAAE,OAAOP,MAAM,CAAChE,OAAO;QACtG,OAAOgE,MAAM;MACf,CAAC,CAAC;;MAEV;MACA,MAAMQ,gBAAgB,GAAG,IAAI,CAAC7B,KAAK,GAAG,MAAM,IAAI,CAAC8B,mBAAmB,CAACnC,WAAW,CAACoC,QAAQ,CAAC,CAAC,CAAC,GAAGrB,SAAS;MACxG,MAAMsB,aAAa,GAAG,MAAM,IAAI,CAACpB,gBAAgB,CAACd,IAAI,EAAEH,WAAW,CAAC;MACpE,MAAMsC,MAAM,GAAGhC,OAAO,CAACgC,MAAM,CAC3BtC,WAAW,EACXC,KAAK,IAAI,EAAE,EACXoC,aAAa,EACbb,QAAQ,EACR,IAAI,CAACe,mBAAmB,CAACL,gBAAgB,CAC3C,CAAC;MAED,IAAI,CAACM,UAAU,CAAC,CAAC;MACjB,IAAI,CAACC,WAAW,CAAC,CAAC;MAClB,IAAI,CAACC,aAAa,CAAC,CAAC;MACpB,OAAOJ,MAAM;IACf,CAAC;IAAA3E,eAAA,8BAsK6B,IAAAgF,mBAAO,EAACC,8CAAqB,EAAE;MAC3DC,GAAG,EAAE,GAAG;MACRC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzB,CAAC,CAAC;IA3QA,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B;EAEQA,mBAAmBA,CAAA,EAAG;IAC5BrD,MAAM,CAACsD,gBAAgB,CAAC,OAAO,EAAGxF,CAAC,IAAK;MACtC,MAAMyF,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MAC5B,MAAMC,UAAU,GAAGrF,MAAM,CAACsF,MAAM,CAAC,CAAC,CAAC,EAAE7F,CAAC,CAAC;MACvC,IAAI,CAACuB,MAAM,CAACuE,GAAG,CAACC,wBAAa,CAACC,EAAE,EAAE,KAAIC,kCAAwB,EAACR,SAAS,EAAEG,UAAU,CAAC,CAAC;IACxF,CAAC,CAAC;EACJ;EAIQlE,OAAOA,CAAA,EAAG;IAChB,MAAM;MAAEa;IAAY,CAAC,GAAG,IAAI,CAACG,WAAW,CAAC,CAAC;IAC1C,MAAMC,IAAI,GAAGJ,WAAW,IAAI,IAAI,CAACK,UAAU,CAAC,CAAC;IAE7C,IAAI,CAACd,iCAAe,CAACoE,GAAG,CAACvD,IAAI,CAAC,EAAE,OAAO,KAAK;IAC5C,MAAMG,OAAO,GAAG,IAAI,CAACC,UAAU,CAACJ,IAAI,CAAC;IACrC,IAAI,CAACG,OAAO,EAAE,OAAO,KAAK;IAC1B,MAAMqD,aAAa,GAAGrD,OAAO,CAACK,OAAO,EAAEiD,KAAK,CAAEC,QAAQ,IAAKvE,iCAAe,CAACoE,GAAG,CAACG,QAAQ,CAAC,CAAC,IAAI,IAAI;IACjG,IAAI,CAACF,aAAa,EAAE,OAAO,KAAK;IAEhC,OAAO,IAAI;EACb;EA4EAjB,aAAaA,CAAA,EAAG;IACd,MAAMtB,KAAK,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;IAC7B,MAAMyC,UAAU,GAAG,IAAI,CAACvC,QAAQ,CAACH,KAAK,EAAE,YAAY,CAAC;IAErD,IAAI,CAAC0C,UAAU,EAAE;IAEjB,MAAMC,IAAI,GAAGrE,MAAM,CAACC,QAAQ,CAACqE,cAAc,CAAC,MAAM,CAAC;IAEnD,IAAID,IAAI,EAAE;MACRA,IAAI,CAAClE,KAAK,CAACoE,MAAM,GAAG,OAAO;IAC7B;EACF;EAEAxB,WAAWA,CAAA,EAAG;IACZ,MAAMrB,KAAK,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;IAC7B,MAAM6C,QAAQ,GAAG,IAAI,CAAC3C,QAAQ,CAACH,KAAK,EAAE,UAAU,CAAC;IACjD,IAAI,CAAC8C,QAAQ,EAAE;MACbxE,MAAM,CAACC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,KAAK,GAAG,MAAM;MACzC;IACF;IAEAJ,MAAM,CAACC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACsE,QAAQ,GAAG,GAAGD,QAAQ,IAAI;EACvD;EAEA1B,UAAUA,CAAA,EAAG;IACX,IAAI,CAAC9C,MAAM,EAAE0E,MAAM,IAAI,CAAC1E,MAAM,EAAEC,QAAQ,EAAE;IAC1C;IACA;IACA,MAAM0E,OAAO,GAAGA,CAAA,KAAM;MACpB,MAAMN,IAAI,GAAGrE,MAAM,CAACC,QAAQ,CAACqE,cAAc,CAAC,MAAM,CAAC,IAAItE,MAAM,CAACC,QAAQ,CAAC2E,eAAe;MACtF,MAAMC,UAAU,GAAGR,IAAI,CAAClE,KAAK,CAACoE,MAAM;MACpC;MACA;MACAF,IAAI,CAAClE,KAAK,CAACoE,MAAM,GAAG,MAAM;MAC1B,MAAMA,MAAM,GAAGF,IAAI,CAACS,YAAY;MAChC,MAAM1E,KAAK,GAAGiE,IAAI,CAACU,WAAW;MAC9B;MACAV,IAAI,CAAClE,KAAK,CAACoE,MAAM,GAAGM,UAAU;MAC9B,OAAO;QAAEzE,KAAK;QAAEmE;MAAO,CAAC;IAC1B,CAAC;IACD,MAAMS,OAAO,GAAGA,CAAA,KAAM;MACpB,MAAM;QAAE5E,KAAK;QAAEmE;MAAO,CAAC,GAAGI,OAAO,CAAC,CAAC;MACnC,IAAI,CAACtF,MAAM,CAACuE,GAAG,CAACC,wBAAa,CAACC,EAAE,EAAE,KAAImB,sBAAS,EAAC;QAAE7E,KAAK;QAAEmE;MAAO,CAAC,CAAC,CAAC;IACrE,CAAC;IACD;IACAS,OAAO,CAAC,CAAC;IACT;IACA,MAAME,SAAS,GAAG,IAAAC,kBAAQ,EAACH,OAAO,EAAE,GAAG,CAAC;IACxC,MAAMI,eAAe,GAAG,IAAIC,cAAc,CAACH,SAAS,CAAC;IACrDE,eAAe,CAACE,OAAO,CAACtF,MAAM,CAACC,QAAQ,CAAC2E,eAAe,CAAC;IACxD,MAAMP,IAAI,GAAGrE,MAAM,CAACC,QAAQ,CAACqE,cAAc,CAAC,MAAM,CAAC;IACnD,IAAID,IAAI,EAAEe,eAAe,CAACE,OAAO,CAACjB,IAAI,CAAC;EACzC;EAEA,MAAM9C,gBAAgBA,CAAClB,WAAmB,EAAEyD,EAAe,EAA0B;IACnF,MAAMyB,WAAW,GAAGzB,EAAE,CAACrC,QAAQ;IAE/B,MAAM+D,aAAa,GAAG5F,iCAAe,CAAC6F,GAAG,CAACpF,WAAW,CAAC;IACtD,IAAI,CAACmF,aAAa,EAAE,MAAM,IAAIE,KAAK,CAAC,sCAAsCrF,WAAW,GAAG,CAAC;IACzF,IAAImF,aAAa,CAACG,YAAY,CAACJ,WAAW,CAAC,EAAE,OAAOC,aAAa;IAEjE,MAAMI,iBAAiB,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAAC/B,EAAE,EAAEzD,WAAW,CAAC;IAC3ET,iCAAe,CAACkG,qBAAqB,CAACP,WAAW,EAAEK,iBAAiB,CAAC;IAErE,MAAMG,SAAS,GAAGH,iBAAiB,CAACvF,WAAW,CAAC;IAChD,MAAM2F,QAAQ,GAAGJ,iBAAiB,CAAC,GAAGvF,WAAW,WAAW,CAAC;IAE7D,OAAO;MACL4F,UAAU,EAAET,aAAa,CAACS,UAAU;MACpCN,YAAY,EAAE;QACZ,CAAC7B,EAAE,CAACrC,QAAQ,GAAGsE;MACjB,CAAC;MACDG,oBAAoB,EAAE;QACpB,CAACpC,EAAE,CAACrC,QAAQ,GAAGuE;MACjB;IACF,CAAC;EACH;EAEA,MAAMH,qBAAqBA,CAAC/B,EAAe,EAAErD,IAAY,EAAyC;IAChG,IAAI0F,WAA+B;IACnC,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACC,0BAA0B,CAACvC,EAAE,EAAErD,IAAI,CAAC;IAChE;IACA,IAAI2F,QAAQ,KAAK,IAAI,EAAE,OAAO,CAAC,CAAC;IAEhC,MAAM3G,OAAO,CAACuB,GAAG,CACfoF,QAAQ,CAAClF,GAAG,CAAEoF,IAAI,IAAK;MACrB;MACA,IAAIA,IAAI,CAACC,QAAQ,CAAC,aAAa,CAAC,EAAE;QAChCJ,WAAW,GAAGG,IAAI;QAClB,OAAOjF,SAAS;MAClB;MAEA,OAAO,IAAI,CAACmF,uBAAuB,CAAC1C,EAAE,EAAEwC,IAAI,CAAC;IAC/C,CAAC,CACH,CAAC;IAED,IAAI,CAACH,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,IAAI,CAACM,iBAAiB,CAAC3C,EAAE,EAAErD,IAAI,EAAE0F,WAAW,CAAC;EACtD;EAEQK,uBAAuBA,CAAC1C,EAAe,EAAE4C,qBAA6B,EAAE;IAC9E,IAAIA,qBAAqB,CAACH,QAAQ,CAAC,KAAK,CAAC,EAAE;MACzC,OAAO,IAAI,CAACI,6BAA6B,CAAC7C,EAAE,EAAE4C,qBAAqB,CAAC;IACtE;;IAEA;IACA;IACA,IAAI,CAACE,2BAA2B,CAAC9C,EAAE,EAAE4C,qBAAqB,CAAC,CAACG,KAAK,CAAEC,GAAG,IAAK;MACzE,MAAM,IAAIpB,KAAK,CACb,2CAA2CgB,qBAAqB,eAAeI,GAAG,EAAEpE,QAAQ,CAAC,CAAC,GAChG,CAAC;IACH,CAAC,CAAC;;IAEF;IACA,OAAOrB,SAAS;EAClB;EAEA,MAAcgF,0BAA0BA,CAACvC,EAAe,EAAEzD,WAAmB,EAA4B;IACvG,MAAM0G,kBAAkB,GAAG,wBAAwB;IACnD,MAAMC,QAAQ,GAAGlD,EAAE,CAACpB,QAAQ,CAAC,CAAC;IAC9B,MAAMuE,GAAG,GAAG,QAAQD,QAAQ,IAAID,kBAAkB,EAAE;IAEpD,MAAMG,GAAG,GAAG,MAAM,IAAAC,qBAAU,EAACF,GAAG,CAAC;IACjC,IAAIC,GAAG,CAACE,MAAM,IAAI,GAAG,EAAE;MACrB,MAAM,KAAItG,6BAAe,EAACT,WAAW,CAAC;IACxC;IACA,MAAMgH,MAAM,GAAG,MAAMH,GAAG,CAACI,IAAI,CAAC,CAAC;IAC/B;IACA,IAAID,MAAM,CAACE,gBAAgB,EAAE;MAC3B,OAAO,IAAI;IACb;IACA,IAAI,CAACF,MAAM,CAACG,KAAK,IAAI,CAACH,MAAM,CAACG,KAAK,CAACjF,MAAM,EAAE;MACzC,MAAM,KAAIzB,6BAAe,EAACT,WAAW,CAAC;IACxC;IACA,OAAOgH,MAAM,CAACG,KAAK;EACrB;EAEQb,6BAA6BA,CAAC7C,EAAe,EAAE4C,qBAA6B,EAAE;IACpF,MAAMe,YAAY,GAAG,2BAA2B;IAChD,MAAMT,QAAQ,GAAGlD,EAAE,CAACpB,QAAQ,CAAC,CAAC;IAC9B,MAAMgF,GAAG,GAAG,QAAQV,QAAQ,IAAIS,YAAY,IAAIf,qBAAqB,EAAE;IACvE,OAAO,IAAAiB,uBAAU,EAAC;MAAED;IAAI,CAAC,CAAC;EAC5B;EAEQd,2BAA2BA,CAAC9C,EAAe,EAAE4C,qBAA6B,EAAE;IAClF,MAAMM,QAAQ,GAAGlD,EAAE,CAACpB,QAAQ,CAAC,CAAC;IAC9B,MAAM+E,YAAY,GAAG,2BAA2B;IAChD,MAAMG,IAAI,GAAG,QAAQZ,QAAQ,IAAIS,YAAY,IAAIf,qBAAqB,EAAE;IACxE,OAAO,IAAAmB,qBAAQ,EAAC;MAAED;IAAK,CAAC,CAAC;EAC3B;EAEA,MAAcnB,iBAAiBA,CAAC3C,EAAe,EAAEzD,WAAmB,EAAEqG,qBAA6B,EAAE;IACnG,MAAMe,YAAY,GAAG,2BAA2B;IAChD,MAAMC,GAAG,GAAG,QAAQ5D,EAAE,CAACpB,QAAQ,CAAC,CAAC,IAAI+E,YAAY,IAAIf,qBAAqB,EAAE;IAC5E,MAAM,IAAAiB,uBAAU,EAAC;MAAED;IAAI,CAAC,CAAC;;IAEzB;IACA,MAAMI,QAAQ,GAAG,GAAGhE,EAAE,CAACiE,sBAAsB,CAAC,CAAC,UAAU;IACzD,MAAMC,gBAAgB,GAAGhI,MAAM,CAAC8H,QAAQ,CAAC;IACzC,IAAI,CAACE,gBAAgB,EAAE,MAAM,KAAIlH,6BAAe,EAACT,WAAW,CAAC;IAE7D,OAAO2H,gBAAgB;EACzB;EAOA;AACF;AACA;EACEC,eAAeA,CAACrH,OAAoB,EAAE;IACpC,IAAI,CAACtB,WAAW,CAAC4I,QAAQ,CAACtH,OAAO,CAAC;IAClC,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEiC,mBAAmBA,CAACsF,aAAwB,EAAE;IAC5C,OAAO,KAAIC,oCAAgB,EAAC,IAAI,CAAC7I,oBAAoB,EAAE;MAAE4I;IAAc,CAAC,CAAC;EAC3E;;EAEA;AACF;AACA;AACA;EACEE,qBAAqBA,CAACC,aAAuC,EAAE;IAC7D,IAAI,CAAC/I,oBAAoB,CAAC2I,QAAQ,CAACI,aAAa,CAAC;IACjD,OAAO,IAAI;EACb;EAEA5H,UAAUA,CAAA,EAAG;IACX,MAAM6H,QAAQ,GAAG,IAAI,CAACjJ,WAAW,CAACkJ,MAAM,CAAC,CAAC;IAC1C,MAAMC,UAAU,GAAGF,QAAQ,CAACG,IAAI,CAAEC,gBAAgB,IAAKA,gBAAgB,CAAC3K,OAAO,CAAC;IAEhF,OAAOyK,UAAU,EAAEhI,IAAI,IAAI8H,QAAQ,CAAC,CAAC,CAAC,CAAC9H,IAAI;EAC7C;EAEQI,UAAUA,CAACR,WAAmB,EAA2B;IAC/D,MAAMkI,QAAQ,GAAG,IAAI,CAACjJ,WAAW,CAACkJ,MAAM,CAAC,CAAC;IAC1C,MAAM5H,OAAO,GAAG2H,QAAQ,CAACG,IAAI,CAAEC,gBAAgB,IAAKA,gBAAgB,CAAClI,IAAI,KAAKJ,WAAW,CAAC;IAE1F,OAAOO,OAAO;EAChB;EAEAiB,QAAQA,CAACH,KAAa,EAAEkH,KAAa,EAAE;IACrC,MAAMC,MAAM,GAAG,IAAIC,eAAe,CAACpH,KAAK,CAAC;IACzC,OAAOmH,MAAM,CAACpD,GAAG,CAACmD,KAAK,CAAC;EAC1B;EAEAjH,QAAQA,CAAA,EAAG;IACT,MAAMoH,WAAW,GAAG/I,MAAM,CAACgJ,QAAQ,CAACC,IAAI,CAACC,SAAS,CAAC,CAAC,CAAC;IACrD,MAAM,GAAGC,KAAK,CAAC,GAAGJ,WAAW,CAACK,KAAK,CAAC,GAAG,CAAC;IACxC,OAAOD,KAAK;EACd;EAEQ3I,WAAWA,CAAA,EAAG;IACpB,MAAMuI,WAAW,GAAG/I,MAAM,CAACgJ,QAAQ,CAACC,IAAI,CAACC,SAAS,CAAC,CAAC,CAAC;IACrD,MAAM,CAACG,MAAM,EAAEF,KAAK,CAAC,GAAGJ,WAAW,CAACK,KAAK,CAAC,GAAG,CAAC;IAE9C,OAAO;MACL/I,WAAW,EAAE,IAAI,CAACwB,QAAQ,CAACsH,KAAK,EAAE,SAAS,CAAC;MAC5C5I,KAAK,EAAE,IAAI,CAACsB,QAAQ,CAACsH,KAAK,EAAE,KAAK,CAAC;MAClC7I,WAAW,EAAEgJ,0BAAW,CAACC,aAAa,CAACF,MAAM;IAC/C,CAAC;EACH;EAQA,aAAaG,QAAQA,CACnB,CAACnK,MAAM,CAAkB,EACzBoK,MAAM,EACN,CAACnK,WAAW,EAAEC,oBAAoB,CAAsC,EACxE;IACA,MAAMqB,OAAO,GAAG,IAAIzB,cAAc,CAACE,MAAM,EAAEC,WAAW,EAAEC,oBAAoB,CAAC;IAE7ES,MAAM,CAACsD,gBAAgB,CAAC,YAAY,EAAE,MAAM;MAC1C;MACA1C,OAAO,CAACgC,MAAM,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAOhC,OAAO;EAChB;AACF;AAAC8I,OAAA,CAAAvK,cAAA,GAAAA,cAAA;AAAAlB,eAAA,CA3WYkB,cAAc,aAuVRwK,yBAAc;AAAA1L,eAAA,CAvVpBkB,cAAc,kBAyVH,CAACyK,sBAAY,CAAC;AAAA3L,eAAA,CAzVzBkB,cAAc,WA2VV,CAAC0K,eAAI,CAACC,QAAQ,CAAc,CAAC,EAAED,eAAI,CAACC,QAAQ,CAA2B,CAAC,CAAC;AAkB1FjG,wBAAa,CAACkG,UAAU,CAAC5K,cAAc,CAAC","ignoreList":[]}
|
package/dist/preview.route.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { NextFunction, Request, Response, Route } from '@teambit/express';
|
2
2
|
import type { Logger } from '@teambit/logger';
|
3
|
-
import { PreviewMain } from './preview.main.runtime';
|
3
|
+
import type { PreviewMain } from './preview.main.runtime';
|
4
4
|
import type { PreviewUrlParams } from './artifact-file-middleware';
|
5
5
|
export declare class PreviewRoute implements Route {
|
6
6
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_uiFoundationUiPages","data","require","_artifactFileMiddleware","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PreviewRoute","constructor","preview","logger","req","res","next","component","status","send","noPreview","isLegacyPath","isBundledWithEnv","artifact","getEnvTemplateFromComponentEnv","getPreview","error","serverError","getArtifactFileMiddleware","exports"],"sources":["preview.route.ts"],"sourcesContent":["import type { NextFunction, Request, Response, Route } from '@teambit/express';\nimport type { Component } from '@teambit/component';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\n\nimport { PreviewMain } from './preview.main.runtime';\nimport { PreviewArtifact } from './preview-artifact';\nimport { getArtifactFileMiddleware } from './artifact-file-middleware';\nimport type { PreviewUrlParams } from './artifact-file-middleware';\n\nexport class PreviewRoute implements Route {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = `/preview/:previewName?/:filePath(*)`;\n method = 'get';\n\n middlewares = [\n async (req: Request<PreviewUrlParams>, res: Response, next: NextFunction) => {\n try {\n // @ts-ignore TODO: @guy please fix.\n const component = req.component as Component | undefined;\n if (!component) return res.status(404).send(noPreview());\n const isLegacyPath = await this.preview.isBundledWithEnv(component);\n\n let artifact: PreviewArtifact | undefined;\n // TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680\n try {\n // Taking the env template (in this case we will take the component only bundle throw component-preview route)\n // We use this route for the env template for backward compatibility - new scopes which contain components tagged with old versions of bit\n if (!isLegacyPath) {\n artifact = await this.preview.getEnvTemplateFromComponentEnv(component);\n } else {\n // If it's legacy (bundled together with the env template) take the preview bundle from the component directly\n artifact = await this.preview.getPreview(component);\n }\n } catch (e: any) {\n this.logger.error(`getEnvTemplateFromComponentEnv or getPreview has failed`, e);\n return res.status(404).send(noPreview());\n }\n // @ts-ignore\n req.artifact = artifact;\n // @ts-ignore\n req.isLegacyPath = isLegacyPath;\n return next();\n } catch (e: any) {\n this.logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n },\n getArtifactFileMiddleware(this.logger),\n ];\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_uiFoundationUiPages","data","require","_artifactFileMiddleware","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PreviewRoute","constructor","preview","logger","req","res","next","component","status","send","noPreview","isLegacyPath","isBundledWithEnv","artifact","getEnvTemplateFromComponentEnv","getPreview","error","serverError","getArtifactFileMiddleware","exports"],"sources":["preview.route.ts"],"sourcesContent":["import type { NextFunction, Request, Response, Route } from '@teambit/express';\nimport type { Component } from '@teambit/component';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\n\nimport type { PreviewMain } from './preview.main.runtime';\nimport type { PreviewArtifact } from './preview-artifact';\nimport { getArtifactFileMiddleware } from './artifact-file-middleware';\nimport type { PreviewUrlParams } from './artifact-file-middleware';\n\nexport class PreviewRoute implements Route {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = `/preview/:previewName?/:filePath(*)`;\n method = 'get';\n\n middlewares = [\n async (req: Request<PreviewUrlParams>, res: Response, next: NextFunction) => {\n try {\n // @ts-ignore TODO: @guy please fix.\n const component = req.component as Component | undefined;\n if (!component) return res.status(404).send(noPreview());\n const isLegacyPath = await this.preview.isBundledWithEnv(component);\n\n let artifact: PreviewArtifact | undefined;\n // TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680\n try {\n // Taking the env template (in this case we will take the component only bundle throw component-preview route)\n // We use this route for the env template for backward compatibility - new scopes which contain components tagged with old versions of bit\n if (!isLegacyPath) {\n artifact = await this.preview.getEnvTemplateFromComponentEnv(component);\n } else {\n // If it's legacy (bundled together with the env template) take the preview bundle from the component directly\n artifact = await this.preview.getPreview(component);\n }\n } catch (e: any) {\n this.logger.error(`getEnvTemplateFromComponentEnv or getPreview has failed`, e);\n return res.status(404).send(noPreview());\n }\n // @ts-ignore\n req.artifact = artifact;\n // @ts-ignore\n req.isLegacyPath = isLegacyPath;\n return next();\n } catch (e: any) {\n this.logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n },\n getArtifactFileMiddleware(this.logger),\n ];\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import { EnvService, ExecutionContext, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
|
2
|
-
import { EnvPreviewConfig, PreviewMain } from './preview.main.runtime';
|
3
|
-
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
4
|
-
import { Logger } from '@teambit/logger';
|
5
|
-
import { BundlerHtmlConfig } from '@teambit/bundler';
|
6
|
-
import { ComponentID } from '@teambit/component';
|
7
|
-
import { ScopeMain } from '@teambit/scope';
|
1
|
+
import type { EnvService, ExecutionContext, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
|
2
|
+
import type { EnvPreviewConfig, PreviewMain } from './preview.main.runtime';
|
3
|
+
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
4
|
+
import type { Logger } from '@teambit/logger';
|
5
|
+
import type { BundlerHtmlConfig } from '@teambit/bundler';
|
6
|
+
import type { ComponentID } from '@teambit/component';
|
7
|
+
import type { ScopeMain } from '@teambit/scope';
|
8
8
|
type PreviewTransformationMap = ServiceTransformationMap & {
|
9
9
|
/**
|
10
10
|
* Returns a paths to a function which mounts a given component to DOM
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_filenamify","data","_interopRequireDefault","require","_bitError","_path","_fsExtra","_htmlTemplate","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LOCAL_PREVIEW_DIR","PreviewService","constructor","preview","logger","dependencyResolver","scope","transform","env","envContext","undefined","transformMap","getAdditionalHostDependencies","getHostDependencies","bind","getMounter","getDocsTemplate","getPreviewConfig","getTemplateBundler","context","run","options","getBundler","defs","getDefs","onlyCompositionDef","def","prefix","BitError","components","componentIds","map","c","id","envDirName","getEnvDirName","outputPath","getEnvLocalPreviewDir","name","linkFiles","updateLinkFiles","dirPath","join","tempFolder","addComponentsToLocalMapping","previewRootEntry","generateLocalPreviewRoot","entries","peers","getPreviewHostDependenciesFromEnv","envDefinition","hostRootDir","envRuntime","envAspectDefinition","aspectPath","targets","getTargets","url","htmlConfig","generateHtmlConfig","bundlerContext","assign","compress","html","entry","publicPath","hostDependencies","aliasHostDependencies","rootPath","development","metaData","initiator","envId","bundler","res","reduce","acc","fullName","filenamify","replacement","getLocalPreviewDir","legacyScope","tmp","composePath","localPreviewDir","getComponentsPreviewPath","filePath","readComponentsPreview","readJsonSync","envDirPath","compIds","idsString","exists","pathExists","newFile","existingFile","outputFileSync","JSON","stringify","dir","contents","previewRootPath","resolve","config","title","templateContent","minify","filename","externalizeHostDependencies","exports"],"sources":["preview.service.tsx"],"sourcesContent":["import filenamify from 'filenamify';\nimport { EnvService, ExecutionContext, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport { EnvPreviewConfig, PreviewMain } from './preview.main.runtime';\nimport { BitError } from '@teambit/bit-error';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { Bundler, BundlerContext, BundlerHtmlConfig, Target } from '@teambit/bundler';\nimport { Component, ComponentID } from '@teambit/component';\nimport { join, resolve } from 'path';\nimport { outputFileSync, pathExists, readJsonSync } from 'fs-extra';\nimport { ScopeMain } from '@teambit/scope';\nimport { html } from './bundler/html-template';\n\ntype PreviewTransformationMap = ServiceTransformationMap & {\n /**\n * Returns a paths to a function which mounts a given component to DOM\n * Required for `bit start` & `bit build`\n */\n getMounter?: () => string;\n\n /**\n * Returns a path to a docs template.\n * Required for `bit start` & `bit build`\n */\n getDocsTemplate?: () => string;\n\n /**\n * Returns a list of additional host dependencies\n * this list will be provided as globals on the window after bit preview bundle\n * by default bit will merge this list with the peers from the getDependencies function\n */\n getAdditionalHostDependencies?: () => string[] | Promise<string[]>;\n\n /**\n * Returns preview config like the strategy name to use when bundling the components for the preview\n */\n getPreviewConfig?: () => EnvPreviewConfig;\n};\n\nconst LOCAL_PREVIEW_DIR = 'local-preview';\n\nexport class PreviewService implements EnvService<any> {\n name = 'preview';\n\n constructor(\n private preview: PreviewMain,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private scope: ScopeMain\n ) {}\n\n transform(env: Env, envContext: EnvContext): PreviewTransformationMap | undefined {\n // Old env\n if (!env?.preview) return undefined;\n const preview = env.preview()(envContext);\n\n const transformMap: PreviewTransformationMap = {\n getAdditionalHostDependencies: preview.getHostDependencies.bind(preview),\n getMounter: preview.getMounter.bind(preview),\n getDocsTemplate: preview.getDocsTemplate.bind(preview),\n getPreviewConfig: preview.getPreviewConfig.bind(preview),\n };\n\n if (preview.getTemplateBundler) {\n transformMap.getTemplateBundler = (context) => preview.getTemplateBundler(context)(envContext);\n }\n\n return transformMap;\n }\n\n async run(context: ExecutionContext, options: { name: string }): Promise<any> {\n if (!context.env.getBundler) {\n return undefined;\n }\n\n const defs = this.preview.getDefs();\n const onlyCompositionDef = defs.filter((def) => def.prefix === 'compositions');\n if (!onlyCompositionDef || onlyCompositionDef.length === 0) {\n throw new BitError('unable to find composition definition');\n }\n const components = context.components;\n const componentIds = components.map((c) => c.id);\n const envDirName = this.getEnvDirName(context.id);\n const outputPath = this.getEnvLocalPreviewDir(options.name, envDirName);\n const linkFiles = await this.preview.updateLinkFiles(onlyCompositionDef, context.components, context);\n const dirPath = join(this.preview.tempFolder, context.id);\n await this.addComponentsToLocalMapping(options.name, envDirName, componentIds);\n const previewRootEntry = this.generateLocalPreviewRoot(dirPath);\n\n const entries = [...linkFiles, previewRootEntry];\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n const hostRootDir = context.envRuntime.envAspectDefinition?.aspectPath;\n const targets = this.getTargets({ entries, components, outputPath, peers, hostRootDir });\n const url = `/preview/${context.envRuntime.id}`;\n const htmlConfig = this.generateHtmlConfig();\n // @ts-ignore we don't really need the full bundler type here, we should\n // change the original type to only have the relevant fields\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets,\n compress: false,\n html: [htmlConfig],\n components,\n entry: [],\n publicPath: '/',\n hostRootDir,\n hostDependencies: peers,\n aliasHostDependencies: true,\n rootPath: url,\n development: true,\n metaData: {\n initiator: `Generate local preview`,\n envId: context.id,\n },\n });\n\n const bundler: Bundler = await context.env.getBundler(bundlerContext);\n await bundler.run();\n const res = componentIds.reduce((acc, id) => {\n return { ...acc, [id.fullName]: outputPath };\n }, {});\n return res;\n }\n\n getEnvDirName(envId: string): string {\n return filenamify(envId, { replacement: '_' });\n }\n\n getLocalPreviewDir(name: string) {\n const dirPath = this.scope.legacyScope.tmp.composePath(`${LOCAL_PREVIEW_DIR}/${name}`);\n return dirPath;\n }\n\n getEnvLocalPreviewDir(name: string, envDirName: string) {\n const localPreviewDir = this.getLocalPreviewDir(name);\n return join(localPreviewDir, envDirName);\n }\n\n getComponentsPreviewPath(name: string) {\n const dirPath = this.getLocalPreviewDir(name);\n const filePath = join(dirPath, 'components-preview.json');\n return filePath;\n }\n\n async readComponentsPreview(name: string) {\n const filePath = this.getComponentsPreviewPath(name);\n return readJsonSync(filePath);\n }\n\n async addComponentsToLocalMapping(name: string, envDirPath: string, compIds: ComponentID[]) {\n const filePath = this.getComponentsPreviewPath(name);\n // const idsString = compIds.map((id) => id.toString());\n const idsString = compIds.map((id) => id.fullName);\n const exists = await pathExists(filePath);\n // let newFile = { [envDirPath]: idsString };\n let newFile = idsString.reduce((acc, id) => {\n return { ...acc, [id]: envDirPath };\n }, {});\n if (exists) {\n const existingFile = readJsonSync(filePath);\n newFile = { ...existingFile, ...newFile };\n }\n outputFileSync(filePath, JSON.stringify(newFile, null, 2));\n return newFile;\n }\n\n generateLocalPreviewRoot(dir: string) {\n const contents = `const previewModules = window.__bit_preview_modules;\nconst queryString = window.location.search;\nconst urlParams = new URLSearchParams(queryString);\nconst location = window.location.pathname;\nconst splitLocation = location.split('/').filter((x) => x);\n// Remove message part\nsplitLocation.shift();\n// const comp = urlParams.get('comp');\nconst comp = splitLocation.join('/');\nconst compositions = previewModules.get(\"compositions\");\nconst mounter = compositions.modulesMap.default;\nconst componentMap = compositions.componentMap;\nconst foundComponent = componentMap[comp];\nif (!foundComponent) {\n throw new Error('component not found');\n}\nlet compositionName = urlParams.get('name');\nif (!compositionName) {\n const allCompositions = Object.keys(foundComponent[0]);\n compositionName = allCompositions[0];\n}\nconst composition = foundComponent[0][compositionName];\nif (!composition) {\n throw new Error('composition not found');\n}\nlet func = mounter.default;\nif (typeof func !== 'function') {\n func = func.default;\n}\nfunc(composition);\n `;\n const previewRootPath = resolve(join(dir, `preview.entry.js`));\n\n // if (!existsSync(previewRootPath)) {\n outputFileSync(previewRootPath, contents);\n // }\n return previewRootPath;\n }\n\n generateHtmlConfig() {\n const config: BundlerHtmlConfig = {\n title: 'Preview',\n templateContent: html('Preview'),\n minify: false,\n filename: 'index.html',\n };\n return config;\n }\n\n private getTargets({\n entries,\n components,\n outputPath,\n peers,\n hostRootDir,\n }: {\n entries: string[];\n components: Component[];\n outputPath: string;\n peers?: string[];\n hostRootDir: string;\n }): Target[] {\n return [\n {\n entries,\n components,\n outputPath,\n hostRootDir,\n hostDependencies: peers,\n externalizeHostDependencies: false,\n aliasHostDependencies: true,\n },\n ];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_filenamify","data","_interopRequireDefault","require","_bitError","_path","_fsExtra","_htmlTemplate","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LOCAL_PREVIEW_DIR","PreviewService","constructor","preview","logger","dependencyResolver","scope","transform","env","envContext","undefined","transformMap","getAdditionalHostDependencies","getHostDependencies","bind","getMounter","getDocsTemplate","getPreviewConfig","getTemplateBundler","context","run","options","getBundler","defs","getDefs","onlyCompositionDef","def","prefix","BitError","components","componentIds","map","c","id","envDirName","getEnvDirName","outputPath","getEnvLocalPreviewDir","name","linkFiles","updateLinkFiles","dirPath","join","tempFolder","addComponentsToLocalMapping","previewRootEntry","generateLocalPreviewRoot","entries","peers","getPreviewHostDependenciesFromEnv","envDefinition","hostRootDir","envRuntime","envAspectDefinition","aspectPath","targets","getTargets","url","htmlConfig","generateHtmlConfig","bundlerContext","assign","compress","html","entry","publicPath","hostDependencies","aliasHostDependencies","rootPath","development","metaData","initiator","envId","bundler","res","reduce","acc","fullName","filenamify","replacement","getLocalPreviewDir","legacyScope","tmp","composePath","localPreviewDir","getComponentsPreviewPath","filePath","readComponentsPreview","readJsonSync","envDirPath","compIds","idsString","exists","pathExists","newFile","existingFile","outputFileSync","JSON","stringify","dir","contents","previewRootPath","resolve","config","title","templateContent","minify","filename","externalizeHostDependencies","exports"],"sources":["preview.service.tsx"],"sourcesContent":["import filenamify from 'filenamify';\nimport type { EnvService, ExecutionContext, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport type { EnvPreviewConfig, PreviewMain } from './preview.main.runtime';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport type { Bundler, BundlerContext, BundlerHtmlConfig, Target } from '@teambit/bundler';\nimport type { Component, ComponentID } from '@teambit/component';\nimport { join, resolve } from 'path';\nimport { outputFileSync, pathExists, readJsonSync } from 'fs-extra';\nimport type { ScopeMain } from '@teambit/scope';\nimport { html } from './bundler/html-template';\n\ntype PreviewTransformationMap = ServiceTransformationMap & {\n /**\n * Returns a paths to a function which mounts a given component to DOM\n * Required for `bit start` & `bit build`\n */\n getMounter?: () => string;\n\n /**\n * Returns a path to a docs template.\n * Required for `bit start` & `bit build`\n */\n getDocsTemplate?: () => string;\n\n /**\n * Returns a list of additional host dependencies\n * this list will be provided as globals on the window after bit preview bundle\n * by default bit will merge this list with the peers from the getDependencies function\n */\n getAdditionalHostDependencies?: () => string[] | Promise<string[]>;\n\n /**\n * Returns preview config like the strategy name to use when bundling the components for the preview\n */\n getPreviewConfig?: () => EnvPreviewConfig;\n};\n\nconst LOCAL_PREVIEW_DIR = 'local-preview';\n\nexport class PreviewService implements EnvService<any> {\n name = 'preview';\n\n constructor(\n private preview: PreviewMain,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n private scope: ScopeMain\n ) {}\n\n transform(env: Env, envContext: EnvContext): PreviewTransformationMap | undefined {\n // Old env\n if (!env?.preview) return undefined;\n const preview = env.preview()(envContext);\n\n const transformMap: PreviewTransformationMap = {\n getAdditionalHostDependencies: preview.getHostDependencies.bind(preview),\n getMounter: preview.getMounter.bind(preview),\n getDocsTemplate: preview.getDocsTemplate.bind(preview),\n getPreviewConfig: preview.getPreviewConfig.bind(preview),\n };\n\n if (preview.getTemplateBundler) {\n transformMap.getTemplateBundler = (context) => preview.getTemplateBundler(context)(envContext);\n }\n\n return transformMap;\n }\n\n async run(context: ExecutionContext, options: { name: string }): Promise<any> {\n if (!context.env.getBundler) {\n return undefined;\n }\n\n const defs = this.preview.getDefs();\n const onlyCompositionDef = defs.filter((def) => def.prefix === 'compositions');\n if (!onlyCompositionDef || onlyCompositionDef.length === 0) {\n throw new BitError('unable to find composition definition');\n }\n const components = context.components;\n const componentIds = components.map((c) => c.id);\n const envDirName = this.getEnvDirName(context.id);\n const outputPath = this.getEnvLocalPreviewDir(options.name, envDirName);\n const linkFiles = await this.preview.updateLinkFiles(onlyCompositionDef, context.components, context);\n const dirPath = join(this.preview.tempFolder, context.id);\n await this.addComponentsToLocalMapping(options.name, envDirName, componentIds);\n const previewRootEntry = this.generateLocalPreviewRoot(dirPath);\n\n const entries = [...linkFiles, previewRootEntry];\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n const hostRootDir = context.envRuntime.envAspectDefinition?.aspectPath;\n const targets = this.getTargets({ entries, components, outputPath, peers, hostRootDir });\n const url = `/preview/${context.envRuntime.id}`;\n const htmlConfig = this.generateHtmlConfig();\n // @ts-ignore we don't really need the full bundler type here, we should\n // change the original type to only have the relevant fields\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets,\n compress: false,\n html: [htmlConfig],\n components,\n entry: [],\n publicPath: '/',\n hostRootDir,\n hostDependencies: peers,\n aliasHostDependencies: true,\n rootPath: url,\n development: true,\n metaData: {\n initiator: `Generate local preview`,\n envId: context.id,\n },\n });\n\n const bundler: Bundler = await context.env.getBundler(bundlerContext);\n await bundler.run();\n const res = componentIds.reduce((acc, id) => {\n return { ...acc, [id.fullName]: outputPath };\n }, {});\n return res;\n }\n\n getEnvDirName(envId: string): string {\n return filenamify(envId, { replacement: '_' });\n }\n\n getLocalPreviewDir(name: string) {\n const dirPath = this.scope.legacyScope.tmp.composePath(`${LOCAL_PREVIEW_DIR}/${name}`);\n return dirPath;\n }\n\n getEnvLocalPreviewDir(name: string, envDirName: string) {\n const localPreviewDir = this.getLocalPreviewDir(name);\n return join(localPreviewDir, envDirName);\n }\n\n getComponentsPreviewPath(name: string) {\n const dirPath = this.getLocalPreviewDir(name);\n const filePath = join(dirPath, 'components-preview.json');\n return filePath;\n }\n\n async readComponentsPreview(name: string) {\n const filePath = this.getComponentsPreviewPath(name);\n return readJsonSync(filePath);\n }\n\n async addComponentsToLocalMapping(name: string, envDirPath: string, compIds: ComponentID[]) {\n const filePath = this.getComponentsPreviewPath(name);\n // const idsString = compIds.map((id) => id.toString());\n const idsString = compIds.map((id) => id.fullName);\n const exists = await pathExists(filePath);\n // let newFile = { [envDirPath]: idsString };\n let newFile = idsString.reduce((acc, id) => {\n return { ...acc, [id]: envDirPath };\n }, {});\n if (exists) {\n const existingFile = readJsonSync(filePath);\n newFile = { ...existingFile, ...newFile };\n }\n outputFileSync(filePath, JSON.stringify(newFile, null, 2));\n return newFile;\n }\n\n generateLocalPreviewRoot(dir: string) {\n const contents = `const previewModules = window.__bit_preview_modules;\nconst queryString = window.location.search;\nconst urlParams = new URLSearchParams(queryString);\nconst location = window.location.pathname;\nconst splitLocation = location.split('/').filter((x) => x);\n// Remove message part\nsplitLocation.shift();\n// const comp = urlParams.get('comp');\nconst comp = splitLocation.join('/');\nconst compositions = previewModules.get(\"compositions\");\nconst mounter = compositions.modulesMap.default;\nconst componentMap = compositions.componentMap;\nconst foundComponent = componentMap[comp];\nif (!foundComponent) {\n throw new Error('component not found');\n}\nlet compositionName = urlParams.get('name');\nif (!compositionName) {\n const allCompositions = Object.keys(foundComponent[0]);\n compositionName = allCompositions[0];\n}\nconst composition = foundComponent[0][compositionName];\nif (!composition) {\n throw new Error('composition not found');\n}\nlet func = mounter.default;\nif (typeof func !== 'function') {\n func = func.default;\n}\nfunc(composition);\n `;\n const previewRootPath = resolve(join(dir, `preview.entry.js`));\n\n // if (!existsSync(previewRootPath)) {\n outputFileSync(previewRootPath, contents);\n // }\n return previewRootPath;\n }\n\n generateHtmlConfig() {\n const config: BundlerHtmlConfig = {\n title: 'Preview',\n templateContent: html('Preview'),\n minify: false,\n filename: 'index.html',\n };\n return config;\n }\n\n private getTargets({\n entries,\n components,\n outputPath,\n peers,\n hostRootDir,\n }: {\n entries: string[];\n components: Component[];\n outputPath: string;\n peers?: string[];\n hostRootDir: string;\n }): Target[] {\n return [\n {\n entries,\n components,\n outputPath,\n hostRootDir,\n hostDependencies: peers,\n externalizeHostDependencies: false,\n aliasHostDependencies: true,\n },\n ];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import { BundlerMain, ComponentServer } from '@teambit/bundler';
|
2
|
-
import { PubsubMain } from '@teambit/pubsub';
|
3
|
-
import { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';
|
4
|
-
import { Workspace } from '@teambit/workspace';
|
5
|
-
import { Logger } from '@teambit/logger';
|
6
|
-
import { WatcherMain } from '@teambit/watcher';
|
7
|
-
import { GraphqlMain } from '@teambit/graphql';
|
1
|
+
import type { BundlerMain, ComponentServer } from '@teambit/bundler';
|
2
|
+
import type { PubsubMain } from '@teambit/pubsub';
|
3
|
+
import type { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';
|
4
|
+
import type { Workspace } from '@teambit/workspace';
|
5
|
+
import type { Logger } from '@teambit/logger';
|
6
|
+
import type { WatcherMain } from '@teambit/watcher';
|
7
|
+
import type { GraphqlMain } from '@teambit/graphql';
|
8
8
|
type ServerState = {
|
9
9
|
isCompiling?: boolean;
|
10
10
|
isReady?: boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","_bundler","_previewCli","_previewCli2","_compiler","_watcher","_chalk","_interopRequireDefault","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PreviewStartPlugin","constructor","workspace","bundler","ui","pubsub","logger","watcher","graphql","Map","Promise","resolve","setReady","sub","BundlerAspect","id","event","type","NewDevServersCreatedEvent","TYPE","onNewDevServersCreated","componentsServers","ComponentsServerStartedEvent","onComponentServerStarted","componentsServer","componentServer","startedEnvId","context","envRuntime","serversMap","wasPending","pendingServers","has","delete","serversState","isStarted","index","previewServers","findIndex","s","uiServer","getUIServer","addComponentServerProxy","isCompilationDone","publishServerStarted","isPendingPublish","console","server","publish","ComponentServerStartedEvent","componentServers","servers","envId","set","isCompiling","isReady","listen","err","error","initiate","options","listenToDevServers","showInternalUrls","components","getComponentsByUserInput","pattern","devServer","watch","spawnTSServer","checkTypes","CheckTypes","None","preCompile","compile","initiator","CompilationInitiator","Start","catch","msg","message","concat","getProxy","proxyConfigs","map","target","port","ws","flatten","SubscribeToEvents","onStart","handleOnStartCompiling","onDone","results","handleOnDoneCompiling","SubscribeToWebpackEvents","spinnerId","getSpinnerId","text","getSpinnerCompilingMessage","get","exists","multiSpinner","spinners","add","errors","warnings","previewServer","spinner","isActive","hasErrors","getWarningsWithoutIgnored","hasWarnings","url","getSpinnerDoneMessage","undefined","fail","warn","succeed","noneAreCompiling","values","every","x","whenReady","readyPromise","exports","IGNORE_WARNINGS","warning","find","reg","match","verbose","prefix","chalk","cyan","includedEnvs","relatedContexts","stringifyIncludedEnvs","errorsTxt","join","errorsTxtWithTitle","red","warningsTxt","warningsTxtWithTitle","yellow","urlMessage"],"sources":["preview.start-plugin.tsx"],"sourcesContent":["import { flatten } from 'lodash';\nimport {\n BundlerAspect,\n BundlerMain,\n ComponentServer,\n ComponentServerStartedEvent,\n ComponentsServerStartedEvent,\n NewDevServersCreatedEvent,\n} from '@teambit/bundler';\nimport { PubsubMain } from '@teambit/pubsub';\nimport { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';\nimport { Workspace } from '@teambit/workspace';\nimport { SubscribeToEvents } from '@teambit/preview.cli.dev-server-events-listener';\nimport { SubscribeToWebpackEvents } from '@teambit/preview.cli.webpack-events-listener';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { Logger } from '@teambit/logger';\nimport { CheckTypes, WatcherMain } from '@teambit/watcher';\nimport { GraphqlMain } from '@teambit/graphql';\nimport chalk from 'chalk';\n\ntype ServerState = {\n isCompiling?: boolean;\n isReady?: boolean;\n errors?: Error[];\n warnings?: Error[];\n results?: any[];\n isStarted?: boolean;\n isCompilationDone?: boolean;\n isPendingPublish?: boolean;\n};\n\ntype ServerStateMap = Record<string, ServerState>;\n\nexport class PreviewStartPlugin implements StartPlugin {\n previewServers: ComponentServer[] = [];\n serversState: ServerStateMap = {};\n serversMap: Record<string, ComponentServer> = {};\n private pendingServers: Map<string, ComponentServer> = new Map();\n\n constructor(\n private workspace: Workspace,\n private bundler: BundlerMain,\n private ui: UiMain,\n private pubsub: PubsubMain,\n private logger: Logger,\n private watcher: WatcherMain,\n private graphql: GraphqlMain\n ) {\n this.pubsub.sub(BundlerAspect.id, async (event) => {\n if (event.type === NewDevServersCreatedEvent.TYPE) {\n await this.onNewDevServersCreated(event.componentsServers);\n }\n if (event.type === ComponentsServerStartedEvent.TYPE) {\n await this.onComponentServerStarted(event.componentsServer);\n }\n });\n }\n\n async onComponentServerStarted(componentServer: ComponentServer) {\n const startedEnvId = componentServer.context.envRuntime.id;\n this.serversMap[startedEnvId] = componentServer;\n const wasPending = this.pendingServers.has(startedEnvId);\n this.pendingServers.delete(startedEnvId);\n\n this.serversState[startedEnvId] = {\n ...this.serversState[startedEnvId],\n isStarted: true,\n };\n\n const index = this.previewServers.findIndex((s) => s.context.envRuntime.id === startedEnvId);\n if (index >= 0) {\n this.previewServers[index] = componentServer;\n } else {\n this.previewServers.push(componentServer);\n }\n\n const uiServer = this.ui.getUIServer();\n if (uiServer) {\n uiServer.addComponentServerProxy(componentServer);\n\n if (wasPending) {\n if (this.serversState[startedEnvId]?.isCompilationDone) {\n await this.publishServerStarted(componentServer);\n } else {\n this.serversState[startedEnvId] = {\n ...this.serversState[startedEnvId],\n isPendingPublish: true,\n };\n this.logger.console(\n `Server ${startedEnvId} started but waiting for compilation to complete before publishing event.`\n );\n }\n }\n }\n }\n\n private async publishServerStarted(server: ComponentServer) {\n await this.graphql.pubsub.publish(ComponentServerStartedEvent, {\n componentServers: server,\n });\n }\n\n async onNewDevServersCreated(servers: ComponentServer[]) {\n for (const server of servers) {\n const envId = server.context.envRuntime.id;\n this.pendingServers.set(envId, server);\n\n this.serversState[envId] = {\n isCompiling: false,\n isReady: false,\n isStarted: false,\n isCompilationDone: false,\n isPendingPublish: false,\n };\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n server.listen();\n } catch (err) {\n this.logger.error(`failed to start server for ${envId}`, err);\n }\n }\n }\n\n async initiate(options: StartPluginOptions) {\n this.listenToDevServers(options.showInternalUrls);\n const components = await this.workspace.getComponentsByUserInput(!options.pattern, options.pattern);\n // TODO: logic for creating preview servers must be refactored to this aspect from the DevServer aspect.\n const previewServers = await this.bundler.devServer(components);\n previewServers.forEach((server) => {\n const envId = server.context.envRuntime.id;\n this.serversMap[envId] = server;\n\n this.serversState[envId] = {\n isCompiling: false,\n isReady: false,\n isStarted: false,\n isCompilationDone: false,\n isPendingPublish: false,\n };\n\n // DON'T add wait! this promise never resolves, so it would stop the start process!\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n server.listen();\n });\n this.watcher\n .watch({\n spawnTSServer: true,\n checkTypes: CheckTypes.None,\n preCompile: false,\n compile: true,\n initiator: CompilationInitiator.Start,\n })\n .catch((err) => {\n const msg = `watcher found an error`;\n this.logger.error(msg, err);\n this.logger.console(`${msg}, ${err.message}`);\n });\n this.previewServers = this.previewServers.concat(previewServers);\n }\n\n getProxy(): ProxyEntry[] {\n const proxyConfigs = this.previewServers.map<ProxyEntry[]>((server) => {\n return [\n {\n context: [`/preview/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n },\n {\n context: [`/_hmr/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n ws: true,\n },\n ];\n });\n\n return flatten(proxyConfigs);\n }\n\n // TODO: this should be a part of the devServer\n private listenToDevServers(showInternalUrls?: boolean) {\n // keep state changes immutable!\n SubscribeToEvents(this.pubsub, {\n onStart: (id) => {\n this.handleOnStartCompiling(id);\n },\n onDone: (id, results) => {\n this.handleOnDoneCompiling(id, results, showInternalUrls);\n },\n });\n // @deprecated\n // for legacy webpack bit report plugin\n SubscribeToWebpackEvents(this.pubsub, {\n onStart: (id) => {\n this.handleOnStartCompiling(id);\n },\n onDone: (id, results) => {\n this.handleOnDoneCompiling(id, results, showInternalUrls);\n },\n });\n }\n\n private handleOnStartCompiling(id: string) {\n this.serversState[id] = {\n ...this.serversState[id],\n isCompiling: true,\n };\n const spinnerId = getSpinnerId(id);\n const text = getSpinnerCompilingMessage(this.serversMap[id] || this.pendingServers.get(id));\n const exists = this.logger.multiSpinner.spinners[spinnerId];\n if (!exists) {\n this.logger.multiSpinner.add(spinnerId, { text });\n }\n }\n\n private handleOnDoneCompiling(id: string, results, showInternalUrls?: boolean) {\n this.serversState[id] = {\n ...this.serversState[id],\n isCompiling: false,\n isReady: true,\n isCompilationDone: true,\n errors: results.errors,\n warnings: results.warnings,\n };\n const previewServer = this.serversMap[id] || this.pendingServers.get(id);\n const spinnerId = getSpinnerId(id);\n const spinner = this.logger.multiSpinner.spinners[spinnerId];\n if (spinner && spinner.isActive()) {\n const errors = results.errors || [];\n const hasErrors = !!errors.length;\n const warnings = getWarningsWithoutIgnored(results.warnings);\n const hasWarnings = !!warnings.length;\n const url = `http://localhost:${previewServer.port}`;\n const text = getSpinnerDoneMessage(this.serversMap[id], errors, warnings, url, undefined, showInternalUrls);\n if (hasErrors) {\n this.logger.multiSpinner.fail(spinnerId, { text });\n } else if (hasWarnings) {\n this.logger.multiSpinner.warn(spinnerId, { text });\n } else {\n this.logger.multiSpinner.succeed(spinnerId, { text });\n }\n }\n\n const noneAreCompiling = Object.values(this.serversState).every((x) => !x.isCompiling);\n if (noneAreCompiling) this.setReady();\n if (this.serversState[id]?.isPendingPublish) {\n const server = this.serversMap[id];\n if (server) {\n this.serversState[id].isPendingPublish = false;\n this.publishServerStarted(server).catch((err) => {\n this.logger.error(`failed to publish server started event for ${server.context.envRuntime.id}`, err);\n });\n }\n }\n }\n\n private setReady: () => void;\n private readyPromise = new Promise<void>((resolve) => (this.setReady = resolve));\n get whenReady(): Promise<void> {\n return this.readyPromise;\n }\n}\n\nfunction getWarningsWithoutIgnored(warnings?: Error[]): Error[] {\n if (!warnings || !warnings.length) return [];\n const IGNORE_WARNINGS = [\n // Webpack 5+ has no facility to disable this warning.\n // System.import is used in @angular/core for deprecated string-form lazy routes\n /System.import\\(\\) is deprecated and will be removed soon/i,\n // We need to include all the files in the compilation because we don't know what people will use in their compositions\n /is part of the TypeScript compilation but it's unused/i,\n // https://github.com/webpack-contrib/source-map-loader/blob/b2de4249c7431dd8432da607e08f0f65e9d64219/src/index.js#L83\n /Failed to parse source map from/,\n ];\n warnings.filter((warning) => !IGNORE_WARNINGS.find((reg) => warning?.message?.match(reg)));\n return warnings;\n}\n\nfunction getSpinnerId(envId: string) {\n return `preview-${envId}`;\n}\n\nfunction getSpinnerCompilingMessage(server: ComponentServer, verbose = false) {\n const prefix = 'COMPILING';\n const envId = chalk.cyan(server.context.envRuntime.id);\n let includedEnvs = '';\n if (server.context.relatedContexts && server.context.relatedContexts.length > 1) {\n includedEnvs = `on behalf of ${chalk.cyan(stringifyIncludedEnvs(server.context.relatedContexts, verbose))}`;\n }\n return `${prefix} ${envId} ${includedEnvs}`;\n}\n\nfunction getSpinnerDoneMessage(\n server: ComponentServer,\n errors: Error[],\n warnings: Error[],\n url: string,\n verbose = false,\n showInternalUrls?: boolean\n) {\n const hasErrors = !!errors.length;\n const hasWarnings = !!warnings.length;\n const prefix = hasErrors ? 'FAILED' : 'RUNNING';\n const envId = chalk.cyan(server.context.envRuntime.id);\n let includedEnvs = '';\n if (server.context.relatedContexts && server.context.relatedContexts.length > 1) {\n includedEnvs = ` on behalf of ${chalk.cyan(stringifyIncludedEnvs(server.context.relatedContexts, verbose))}`;\n }\n const errorsTxt = hasErrors ? errors.map((err) => err.message).join('\\n') : '';\n const errorsTxtWithTitle = hasErrors ? chalk.red(`\\nErrors:\\n${errorsTxt}`) : '';\n const warningsTxt = hasWarnings ? warnings.map((warning) => warning.message).join('\\n') : '';\n const warningsTxtWithTitle = hasWarnings ? chalk.yellow(`\\nWarnings:\\n${warningsTxt}`) : '';\n\n const urlMessage = hasErrors || !showInternalUrls ? '' : `at ${chalk.cyan(url)}`;\n return `${prefix} ${envId}${includedEnvs} ${urlMessage} ${errorsTxtWithTitle} ${warningsTxtWithTitle}`;\n}\n\nfunction stringifyIncludedEnvs(includedEnvs: string[] = [], verbose = false) {\n if (includedEnvs.length < 2) return '';\n if (includedEnvs.length > 2 && !verbose) return ` ${includedEnvs.length} other envs`;\n return includedEnvs.join(', ');\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_lodash","data","require","_bundler","_previewCli","_previewCli2","_compiler","_watcher","_chalk","_interopRequireDefault","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PreviewStartPlugin","constructor","workspace","bundler","ui","pubsub","logger","watcher","graphql","Map","Promise","resolve","setReady","sub","BundlerAspect","id","event","type","NewDevServersCreatedEvent","TYPE","onNewDevServersCreated","componentsServers","ComponentsServerStartedEvent","onComponentServerStarted","componentsServer","componentServer","startedEnvId","context","envRuntime","serversMap","wasPending","pendingServers","has","delete","serversState","isStarted","index","previewServers","findIndex","s","uiServer","getUIServer","addComponentServerProxy","isCompilationDone","publishServerStarted","isPendingPublish","console","server","publish","ComponentServerStartedEvent","componentServers","servers","envId","set","isCompiling","isReady","listen","err","error","initiate","options","listenToDevServers","showInternalUrls","components","getComponentsByUserInput","pattern","devServer","watch","spawnTSServer","checkTypes","CheckTypes","None","preCompile","compile","initiator","CompilationInitiator","Start","catch","msg","message","concat","getProxy","proxyConfigs","map","target","port","ws","flatten","SubscribeToEvents","onStart","handleOnStartCompiling","onDone","results","handleOnDoneCompiling","SubscribeToWebpackEvents","spinnerId","getSpinnerId","text","getSpinnerCompilingMessage","get","exists","multiSpinner","spinners","add","errors","warnings","previewServer","spinner","isActive","hasErrors","getWarningsWithoutIgnored","hasWarnings","url","getSpinnerDoneMessage","undefined","fail","warn","succeed","noneAreCompiling","values","every","x","whenReady","readyPromise","exports","IGNORE_WARNINGS","warning","find","reg","match","verbose","prefix","chalk","cyan","includedEnvs","relatedContexts","stringifyIncludedEnvs","errorsTxt","join","errorsTxtWithTitle","red","warningsTxt","warningsTxtWithTitle","yellow","urlMessage"],"sources":["preview.start-plugin.tsx"],"sourcesContent":["import { flatten } from 'lodash';\nimport type { BundlerMain, ComponentServer } from '@teambit/bundler';\nimport {\n BundlerAspect,\n ComponentServerStartedEvent,\n ComponentsServerStartedEvent,\n NewDevServersCreatedEvent,\n} from '@teambit/bundler';\nimport type { PubsubMain } from '@teambit/pubsub';\nimport type { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';\nimport type { Workspace } from '@teambit/workspace';\nimport { SubscribeToEvents } from '@teambit/preview.cli.dev-server-events-listener';\nimport { SubscribeToWebpackEvents } from '@teambit/preview.cli.webpack-events-listener';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport type { Logger } from '@teambit/logger';\nimport type { WatcherMain } from '@teambit/watcher';\nimport { CheckTypes } from '@teambit/watcher';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport chalk from 'chalk';\n\ntype ServerState = {\n isCompiling?: boolean;\n isReady?: boolean;\n errors?: Error[];\n warnings?: Error[];\n results?: any[];\n isStarted?: boolean;\n isCompilationDone?: boolean;\n isPendingPublish?: boolean;\n};\n\ntype ServerStateMap = Record<string, ServerState>;\n\nexport class PreviewStartPlugin implements StartPlugin {\n previewServers: ComponentServer[] = [];\n serversState: ServerStateMap = {};\n serversMap: Record<string, ComponentServer> = {};\n private pendingServers: Map<string, ComponentServer> = new Map();\n\n constructor(\n private workspace: Workspace,\n private bundler: BundlerMain,\n private ui: UiMain,\n private pubsub: PubsubMain,\n private logger: Logger,\n private watcher: WatcherMain,\n private graphql: GraphqlMain\n ) {\n this.pubsub.sub(BundlerAspect.id, async (event) => {\n if (event.type === NewDevServersCreatedEvent.TYPE) {\n await this.onNewDevServersCreated(event.componentsServers);\n }\n if (event.type === ComponentsServerStartedEvent.TYPE) {\n await this.onComponentServerStarted(event.componentsServer);\n }\n });\n }\n\n async onComponentServerStarted(componentServer: ComponentServer) {\n const startedEnvId = componentServer.context.envRuntime.id;\n this.serversMap[startedEnvId] = componentServer;\n const wasPending = this.pendingServers.has(startedEnvId);\n this.pendingServers.delete(startedEnvId);\n\n this.serversState[startedEnvId] = {\n ...this.serversState[startedEnvId],\n isStarted: true,\n };\n\n const index = this.previewServers.findIndex((s) => s.context.envRuntime.id === startedEnvId);\n if (index >= 0) {\n this.previewServers[index] = componentServer;\n } else {\n this.previewServers.push(componentServer);\n }\n\n const uiServer = this.ui.getUIServer();\n if (uiServer) {\n uiServer.addComponentServerProxy(componentServer);\n\n if (wasPending) {\n if (this.serversState[startedEnvId]?.isCompilationDone) {\n await this.publishServerStarted(componentServer);\n } else {\n this.serversState[startedEnvId] = {\n ...this.serversState[startedEnvId],\n isPendingPublish: true,\n };\n this.logger.console(\n `Server ${startedEnvId} started but waiting for compilation to complete before publishing event.`\n );\n }\n }\n }\n }\n\n private async publishServerStarted(server: ComponentServer) {\n await this.graphql.pubsub.publish(ComponentServerStartedEvent, {\n componentServers: server,\n });\n }\n\n async onNewDevServersCreated(servers: ComponentServer[]) {\n for (const server of servers) {\n const envId = server.context.envRuntime.id;\n this.pendingServers.set(envId, server);\n\n this.serversState[envId] = {\n isCompiling: false,\n isReady: false,\n isStarted: false,\n isCompilationDone: false,\n isPendingPublish: false,\n };\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n server.listen();\n } catch (err) {\n this.logger.error(`failed to start server for ${envId}`, err);\n }\n }\n }\n\n async initiate(options: StartPluginOptions) {\n this.listenToDevServers(options.showInternalUrls);\n const components = await this.workspace.getComponentsByUserInput(!options.pattern, options.pattern);\n // TODO: logic for creating preview servers must be refactored to this aspect from the DevServer aspect.\n const previewServers = await this.bundler.devServer(components);\n previewServers.forEach((server) => {\n const envId = server.context.envRuntime.id;\n this.serversMap[envId] = server;\n\n this.serversState[envId] = {\n isCompiling: false,\n isReady: false,\n isStarted: false,\n isCompilationDone: false,\n isPendingPublish: false,\n };\n\n // DON'T add wait! this promise never resolves, so it would stop the start process!\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n server.listen();\n });\n this.watcher\n .watch({\n spawnTSServer: true,\n checkTypes: CheckTypes.None,\n preCompile: false,\n compile: true,\n initiator: CompilationInitiator.Start,\n })\n .catch((err) => {\n const msg = `watcher found an error`;\n this.logger.error(msg, err);\n this.logger.console(`${msg}, ${err.message}`);\n });\n this.previewServers = this.previewServers.concat(previewServers);\n }\n\n getProxy(): ProxyEntry[] {\n const proxyConfigs = this.previewServers.map<ProxyEntry[]>((server) => {\n return [\n {\n context: [`/preview/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n },\n {\n context: [`/_hmr/${server.context.envRuntime.id}`],\n target: `http://localhost:${server.port}`,\n ws: true,\n },\n ];\n });\n\n return flatten(proxyConfigs);\n }\n\n // TODO: this should be a part of the devServer\n private listenToDevServers(showInternalUrls?: boolean) {\n // keep state changes immutable!\n SubscribeToEvents(this.pubsub, {\n onStart: (id) => {\n this.handleOnStartCompiling(id);\n },\n onDone: (id, results) => {\n this.handleOnDoneCompiling(id, results, showInternalUrls);\n },\n });\n // @deprecated\n // for legacy webpack bit report plugin\n SubscribeToWebpackEvents(this.pubsub, {\n onStart: (id) => {\n this.handleOnStartCompiling(id);\n },\n onDone: (id, results) => {\n this.handleOnDoneCompiling(id, results, showInternalUrls);\n },\n });\n }\n\n private handleOnStartCompiling(id: string) {\n this.serversState[id] = {\n ...this.serversState[id],\n isCompiling: true,\n };\n const spinnerId = getSpinnerId(id);\n const text = getSpinnerCompilingMessage(this.serversMap[id] || this.pendingServers.get(id));\n const exists = this.logger.multiSpinner.spinners[spinnerId];\n if (!exists) {\n this.logger.multiSpinner.add(spinnerId, { text });\n }\n }\n\n private handleOnDoneCompiling(id: string, results, showInternalUrls?: boolean) {\n this.serversState[id] = {\n ...this.serversState[id],\n isCompiling: false,\n isReady: true,\n isCompilationDone: true,\n errors: results.errors,\n warnings: results.warnings,\n };\n const previewServer = this.serversMap[id] || this.pendingServers.get(id);\n const spinnerId = getSpinnerId(id);\n const spinner = this.logger.multiSpinner.spinners[spinnerId];\n if (spinner && spinner.isActive()) {\n const errors = results.errors || [];\n const hasErrors = !!errors.length;\n const warnings = getWarningsWithoutIgnored(results.warnings);\n const hasWarnings = !!warnings.length;\n const url = `http://localhost:${previewServer.port}`;\n const text = getSpinnerDoneMessage(this.serversMap[id], errors, warnings, url, undefined, showInternalUrls);\n if (hasErrors) {\n this.logger.multiSpinner.fail(spinnerId, { text });\n } else if (hasWarnings) {\n this.logger.multiSpinner.warn(spinnerId, { text });\n } else {\n this.logger.multiSpinner.succeed(spinnerId, { text });\n }\n }\n\n const noneAreCompiling = Object.values(this.serversState).every((x) => !x.isCompiling);\n if (noneAreCompiling) this.setReady();\n if (this.serversState[id]?.isPendingPublish) {\n const server = this.serversMap[id];\n if (server) {\n this.serversState[id].isPendingPublish = false;\n this.publishServerStarted(server).catch((err) => {\n this.logger.error(`failed to publish server started event for ${server.context.envRuntime.id}`, err);\n });\n }\n }\n }\n\n private setReady: () => void;\n private readyPromise = new Promise<void>((resolve) => (this.setReady = resolve));\n get whenReady(): Promise<void> {\n return this.readyPromise;\n }\n}\n\nfunction getWarningsWithoutIgnored(warnings?: Error[]): Error[] {\n if (!warnings || !warnings.length) return [];\n const IGNORE_WARNINGS = [\n // Webpack 5+ has no facility to disable this warning.\n // System.import is used in @angular/core for deprecated string-form lazy routes\n /System.import\\(\\) is deprecated and will be removed soon/i,\n // We need to include all the files in the compilation because we don't know what people will use in their compositions\n /is part of the TypeScript compilation but it's unused/i,\n // https://github.com/webpack-contrib/source-map-loader/blob/b2de4249c7431dd8432da607e08f0f65e9d64219/src/index.js#L83\n /Failed to parse source map from/,\n ];\n warnings.filter((warning) => !IGNORE_WARNINGS.find((reg) => warning?.message?.match(reg)));\n return warnings;\n}\n\nfunction getSpinnerId(envId: string) {\n return `preview-${envId}`;\n}\n\nfunction getSpinnerCompilingMessage(server: ComponentServer, verbose = false) {\n const prefix = 'COMPILING';\n const envId = chalk.cyan(server.context.envRuntime.id);\n let includedEnvs = '';\n if (server.context.relatedContexts && server.context.relatedContexts.length > 1) {\n includedEnvs = `on behalf of ${chalk.cyan(stringifyIncludedEnvs(server.context.relatedContexts, verbose))}`;\n }\n return `${prefix} ${envId} ${includedEnvs}`;\n}\n\nfunction getSpinnerDoneMessage(\n server: ComponentServer,\n errors: Error[],\n warnings: Error[],\n url: string,\n verbose = false,\n showInternalUrls?: boolean\n) {\n const hasErrors = !!errors.length;\n const hasWarnings = !!warnings.length;\n const prefix = hasErrors ? 'FAILED' : 'RUNNING';\n const envId = chalk.cyan(server.context.envRuntime.id);\n let includedEnvs = '';\n if (server.context.relatedContexts && server.context.relatedContexts.length > 1) {\n includedEnvs = ` on behalf of ${chalk.cyan(stringifyIncludedEnvs(server.context.relatedContexts, verbose))}`;\n }\n const errorsTxt = hasErrors ? errors.map((err) => err.message).join('\\n') : '';\n const errorsTxtWithTitle = hasErrors ? chalk.red(`\\nErrors:\\n${errorsTxt}`) : '';\n const warningsTxt = hasWarnings ? warnings.map((warning) => warning.message).join('\\n') : '';\n const warningsTxtWithTitle = hasWarnings ? chalk.yellow(`\\nWarnings:\\n${warningsTxt}`) : '';\n\n const urlMessage = hasErrors || !showInternalUrls ? '' : `at ${chalk.cyan(url)}`;\n return `${prefix} ${envId}${includedEnvs} ${urlMessage} ${errorsTxtWithTitle} ${warningsTxtWithTitle}`;\n}\n\nfunction stringifyIncludedEnvs(includedEnvs: string[] = [], verbose = false) {\n if (includedEnvs.length < 2) return '';\n if (includedEnvs.length > 2 && !verbose) return ` ${includedEnvs.length} other envs`;\n return includedEnvs.join(', ');\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/preview.task.d.ts
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
import { ExecutionContext } from '@teambit/envs';
|
2
|
-
import { BuildContext, BuiltTaskResult, BuildTask, TaskLocation } from '@teambit/builder';
|
3
|
-
import { BundlerMain } from '@teambit/bundler';
|
4
|
-
import { ComponentMap } from '@teambit/component';
|
5
|
-
import { Capsule } from '@teambit/isolator';
|
6
|
-
import { AbstractVinyl } from '@teambit/component.sources';
|
7
|
-
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
8
|
-
import { Logger } from '@teambit/logger';
|
9
|
-
import { PreviewMain } from './preview.main.runtime';
|
1
|
+
import type { ExecutionContext } from '@teambit/envs';
|
2
|
+
import type { BuildContext, BuiltTaskResult, BuildTask, TaskLocation } from '@teambit/builder';
|
3
|
+
import type { BundlerMain } from '@teambit/bundler';
|
4
|
+
import type { ComponentMap } from '@teambit/component';
|
5
|
+
import type { Capsule } from '@teambit/isolator';
|
6
|
+
import type { AbstractVinyl } from '@teambit/component.sources';
|
7
|
+
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
8
|
+
import type { Logger } from '@teambit/logger';
|
9
|
+
import type { PreviewMain } from './preview.main.runtime';
|
10
10
|
export declare const PREVIEW_TASK_NAME = "GeneratePreview";
|
11
11
|
export declare class PreviewTask implements BuildTask {
|
12
12
|
/**
|
package/dist/preview.task.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_path","data","require","_builder","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PREVIEW_TASK_NAME","exports","PreviewTask","constructor","bundler","preview","dependencyResolver","logger","execute","context","env","getBundler","componentsResults","defs","getDefs","url","envRuntime","id","bundlingStrategy","getBundlingStrategy","envPreviewConfig","getEnvPreviewConfig","splitComponentBundle","computeTargetsContext","assign","targets","computeTargets","bundlerContext","compress","name","entry","publicPath","getPreviewDirectory","rootPath","development","dev","metaData","initiator","envId","bundlerResults","run","results","computeResults","getLinkFileDirectory","join","CAPSULE_ARTIFACTS_DIR","outputPath","resolve","getPathsFromMap","capsule","moduleMap","compiler","getCompiler","map","files","file","path","getDistPathBySrcPath","relative"],"sources":["preview.task.ts"],"sourcesContent":["import { resolve, join } from 'path';\nimport { ExecutionContext } from '@teambit/envs';\nimport { BuildContext, BuiltTaskResult, BuildTask, TaskLocation
|
1
|
+
{"version":3,"names":["_path","data","require","_builder","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PREVIEW_TASK_NAME","exports","PreviewTask","constructor","bundler","preview","dependencyResolver","logger","execute","context","env","getBundler","componentsResults","defs","getDefs","url","envRuntime","id","bundlingStrategy","getBundlingStrategy","envPreviewConfig","getEnvPreviewConfig","splitComponentBundle","computeTargetsContext","assign","targets","computeTargets","bundlerContext","compress","name","entry","publicPath","getPreviewDirectory","rootPath","development","dev","metaData","initiator","envId","bundlerResults","run","results","computeResults","getLinkFileDirectory","join","CAPSULE_ARTIFACTS_DIR","outputPath","resolve","getPathsFromMap","capsule","moduleMap","compiler","getCompiler","map","files","file","path","getDistPathBySrcPath","relative"],"sources":["preview.task.ts"],"sourcesContent":["import { resolve, join } from 'path';\nimport type { ExecutionContext } from '@teambit/envs';\nimport type { BuildContext, BuiltTaskResult, BuildTask, TaskLocation } from '@teambit/builder';\nimport { CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport type { Bundler, BundlerContext, BundlerMain, Target } from '@teambit/bundler';\nimport type { Compiler } from '@teambit/compiler';\nimport type { ComponentMap } from '@teambit/component';\nimport type { Capsule } from '@teambit/isolator';\nimport type { AbstractVinyl } from '@teambit/component.sources';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport type { PreviewMain } from './preview.main.runtime';\n\nexport const PREVIEW_TASK_NAME = 'GeneratePreview';\nexport class PreviewTask implements BuildTask {\n constructor(\n /**\n * bundler extension.\n */\n private bundler: BundlerMain,\n\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger\n ) {}\n\n aspectId = 'teambit.preview/preview';\n name = PREVIEW_TASK_NAME;\n description = 'Bundling components for preview';\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n if (!context.env.getBundler) {\n return { componentsResults: [] };\n }\n\n const defs = this.preview.getDefs();\n const url = `/preview/${context.envRuntime.id}`;\n const bundlingStrategy = this.preview.getBundlingStrategy(context.env);\n const envPreviewConfig = this.preview.getEnvPreviewConfig(context.env);\n const splitComponentBundle = envPreviewConfig.splitComponentBundle ?? false;\n const computeTargetsContext = Object.assign(context, { splitComponentBundle });\n\n const targets: Target[] = await bundlingStrategy.computeTargets(computeTargetsContext, defs, this);\n\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets,\n compress: bundlingStrategy.name !== 'env' && splitComponentBundle,\n entry: [],\n publicPath: this.getPreviewDirectory(context),\n rootPath: url,\n development: context.dev,\n metaData: {\n initiator: `${PREVIEW_TASK_NAME} task`,\n envId: context.id,\n },\n });\n\n const bundler: Bundler = await context.env.getBundler(bundlerContext);\n const bundlerResults = await bundler.run();\n\n const results = bundlingStrategy.computeResults(bundlerContext, bundlerResults, this);\n return results;\n }\n\n getLinkFileDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview-links');\n }\n\n getPreviewDirectory(context: ExecutionContext) {\n const outputPath = resolve(`${context.id}/public`);\n return outputPath;\n }\n\n getPathsFromMap(\n capsule: Capsule,\n moduleMap: ComponentMap<AbstractVinyl[]>,\n context: BuildContext\n ): ComponentMap<string[]> {\n const compiler: Compiler = context.env.getCompiler?.(context);\n return moduleMap.map((files) => {\n return files.map((file) => join(capsule.path, compiler?.getDistPathBySrcPath(file.relative) || file.relative));\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["RenderingContext","constructor","contexts","options","get","aspectId","contextFactory","exports"],"sources":["rendering-context.ts"],"sourcesContent":["import { RenderingContextSlot } from './preview.preview.runtime';\n\nexport type RenderingContextOptions = { aspectsFilter?: string[] };\nexport type RenderingContextProvider = (options: RenderingContextOptions) => { [key: string]: any };\n\nexport class RenderingContext {\n constructor(\n private contexts: RenderingContextSlot,\n private options: RenderingContextOptions = {}\n ) {}\n\n /**\n * obtain rendering context of a specific aspect.\n */\n get(aspectId: string) {\n const contextFactory = this.contexts.get(aspectId);\n return contextFactory?.(this.options);\n }\n}\n"],"mappings":";;;;;;AAKO,MAAMA,gBAAgB,CAAC;EAC5BC,WAAWA,CACDC,QAA8B,EAC9BC,OAAgC,GAAG,CAAC,CAAC,EAC7C;IAAA,KAFQD,QAA8B,GAA9BA,QAA8B;IAAA,KAC9BC,OAAgC,GAAhCA,OAAgC;EACvC;;EAEH;AACF;AACA;EACEC,GAAGA,CAACC,QAAgB,EAAE;IACpB,MAAMC,cAAc,GAAG,IAAI,CAACJ,QAAQ,CAACE,GAAG,CAACC,QAAQ,CAAC;IAClD,OAAOC,cAAc,GAAG,IAAI,CAACH,OAAO,CAAC;EACvC;AACF;AAACI,OAAA,CAAAP,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
1
|
+
{"version":3,"names":["RenderingContext","constructor","contexts","options","get","aspectId","contextFactory","exports"],"sources":["rendering-context.ts"],"sourcesContent":["import type { RenderingContextSlot } from './preview.preview.runtime';\n\nexport type RenderingContextOptions = { aspectsFilter?: string[] };\nexport type RenderingContextProvider = (options: RenderingContextOptions) => { [key: string]: any };\n\nexport class RenderingContext {\n constructor(\n private contexts: RenderingContextSlot,\n private options: RenderingContextOptions = {}\n ) {}\n\n /**\n * obtain rendering context of a specific aspect.\n */\n get(aspectId: string) {\n const contextFactory = this.contexts.get(aspectId);\n return contextFactory?.(this.options);\n }\n}\n"],"mappings":";;;;;;AAKO,MAAMA,gBAAgB,CAAC;EAC5BC,WAAWA,CACDC,QAA8B,EAC9BC,OAAgC,GAAG,CAAC,CAAC,EAC7C;IAAA,KAFQD,QAA8B,GAA9BA,QAA8B;IAAA,KAC9BC,OAAgC,GAAhCA,OAAgC;EACvC;;EAEH;AACF;AACA;EACEC,GAAGA,CAACC,QAAgB,EAAE;IACpB,MAAMC,cAAc,GAAG,IAAI,CAACJ,QAAQ,CAACE,GAAG,CAACC,QAAQ,CAAC;IAClD,OAAOC,cAAc,GAAG,IAAI,CAACH,OAAO,CAAC;EACvC;AACF;AAACI,OAAA,CAAAP,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["ServePreviewCmd","constructor","preview","_defineProperty","wait","args","options","serveLocalPreview","exports"],"sources":["serve-preview.cmd.tsx"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport type { PreviewMain } from './preview.main.runtime';\n\nexport class ServePreviewCmd implements Command {\n name = 'serve-preview';\n description = 'serve local preview bundle for components';\n group = 'run-serve';\n options = [['p', 'port [port]', 'port to run the server on']] as CommandOptions;\n private = true;\n\n constructor(\n /**\n * access to the extension instance.\n */\n private preview: PreviewMain\n ) {}\n\n async wait(args, options: { port: number }) {\n await this.preview.serveLocalPreview(options);\n }\n}\n"],"mappings":";;;;;;;;;AAGO,MAAMA,eAAe,CAAoB;EAO9CC,WAAWA;EACT;AACJ;AACA;EACYC,OAAoB,EAC5B;IAAA,KADQA,OAAoB,GAApBA,OAAoB;IAAAC,eAAA,eAVvB,eAAe;IAAAA,eAAA,sBACR,2CAA2C;IAAAA,eAAA,gBACjD,WAAW;IAAAA,eAAA,kBACT,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,2BAA2B,CAAC,CAAC;IAAAA,eAAA,kBACnD,IAAI;EAOX;EAEH,MAAMC,IAAIA,CAACC,IAAI,EAAEC,OAAyB,EAAE;IAC1C,MAAM,IAAI,CAACJ,OAAO,CAACK,iBAAiB,CAACD,OAAO,CAAC;EAC/C;AACF;AAACE,OAAA,CAAAR,eAAA,GAAAA,eAAA","ignoreList":[]}
|
1
|
+
{"version":3,"names":["ServePreviewCmd","constructor","preview","_defineProperty","wait","args","options","serveLocalPreview","exports"],"sources":["serve-preview.cmd.tsx"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { PreviewMain } from './preview.main.runtime';\n\nexport class ServePreviewCmd implements Command {\n name = 'serve-preview';\n description = 'serve local preview bundle for components';\n group = 'run-serve';\n options = [['p', 'port [port]', 'port to run the server on']] as CommandOptions;\n private = true;\n\n constructor(\n /**\n * access to the extension instance.\n */\n private preview: PreviewMain\n ) {}\n\n async wait(args, options: { port: number }) {\n await this.preview.serveLocalPreview(options);\n }\n}\n"],"mappings":";;;;;;;;;AAGO,MAAMA,eAAe,CAAoB;EAO9CC,WAAWA;EACT;AACJ;AACA;EACYC,OAAoB,EAC5B;IAAA,KADQA,OAAoB,GAApBA,OAAoB;IAAAC,eAAA,eAVvB,eAAe;IAAAA,eAAA,sBACR,2CAA2C;IAAAA,eAAA,gBACjD,WAAW;IAAAA,eAAA,kBACT,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,2BAA2B,CAAC,CAAC;IAAAA,eAAA,kBACnD,IAAI;EAOX;EAEH,MAAMC,IAAIA,CAACC,IAAI,EAAEC,OAAyB,EAAE;IAC1C,MAAM,IAAI,CAACJ,OAAO,CAACK,iBAAiB,CAACD,OAAO,CAAC;EAC/C;AACF;AAACE,OAAA,CAAAR,eAAA,GAAAA,eAAA","ignoreList":[]}
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import { Component } from '@teambit/component';
|
2
|
-
import { ArtifactDefinition, ComponentResult } from '@teambit/builder';
|
1
|
+
import type { Component } from '@teambit/component';
|
2
|
+
import type { ArtifactDefinition, ComponentResult } from '@teambit/builder';
|
3
3
|
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
|
4
|
-
import { Logger } from '@teambit/logger';
|
4
|
+
import type { Logger } from '@teambit/logger';
|
5
5
|
import type { BundlerResult, BundlerContext, Target } from '@teambit/bundler';
|
6
|
-
import { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
|
6
|
+
import type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';
|
7
7
|
import type { PreviewDefinition } from '../preview-definition';
|
8
8
|
import type { PreviewMain } from '../preview.main.runtime';
|
9
9
|
export declare const PREVIEW_GLOBAL_NAME_SUFFIX = "preview";
|