@teambit/preview 0.0.737 → 0.0.738

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.
Files changed (42) hide show
  1. package/dist/artifact-file-middleware.js.map +1 -1
  2. package/dist/bundling-strategy.js.map +1 -1
  3. package/dist/component-preview.route.js.map +1 -1
  4. package/dist/env-preview-template.task.js.map +1 -1
  5. package/dist/env-template.route.js.map +1 -1
  6. package/dist/events/click-inside-an-iframe.js.map +1 -1
  7. package/dist/events/index.js.map +1 -1
  8. package/dist/exceptions/bundling-strategy-not-found.js.map +1 -1
  9. package/dist/exceptions/index.js.map +1 -1
  10. package/dist/exceptions/preview-artifact-not-found.js.map +1 -1
  11. package/dist/exceptions/preview-not-found.js.map +1 -1
  12. package/dist/exceptions/preview-output-file-not-found.js.map +1 -1
  13. package/dist/execution-ref.js.map +1 -1
  14. package/dist/generate-link.js.map +1 -1
  15. package/dist/gql/fetch-component-aspects.js.map +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/mk-temp-dir.js.map +1 -1
  18. package/dist/preview-artifact.js.map +1 -1
  19. package/dist/preview-assets.route.js.map +1 -1
  20. package/dist/preview-context.js.map +1 -1
  21. package/dist/preview-definition.js.map +1 -1
  22. package/dist/preview-type.js.map +1 -1
  23. package/dist/preview.aspect.js.map +1 -1
  24. package/dist/preview.composition.js.map +1 -1
  25. package/dist/preview.graphql.js.map +1 -1
  26. package/dist/preview.main.runtime.js.map +1 -1
  27. package/dist/preview.preview.runtime.js.map +1 -1
  28. package/dist/preview.route.js.map +1 -1
  29. package/dist/preview.start-plugin.js.map +1 -1
  30. package/dist/preview.task.js.map +1 -1
  31. package/dist/rendering-context.js.map +1 -1
  32. package/dist/strategies/component-strategy.js.map +1 -1
  33. package/dist/strategies/env-strategy.js.map +1 -1
  34. package/dist/strategies/generate-component-link.js.map +1 -1
  35. package/dist/strategies/index.js.map +1 -1
  36. package/dist/types/preview-module.js.map +1 -1
  37. package/dist/webpack/html.js.map +1 -1
  38. package/dist/webpack/index.js.map +1 -1
  39. package/package-tar/teambit-preview-0.0.738.tgz +0 -0
  40. package/package.json +15 -15
  41. package/{preview-1652930732694.js → preview-1653227849497.js} +2 -2
  42. package/package-tar/teambit-preview-0.0.737.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["artifact-file-middleware.ts"],"names":["getArtifactFileMiddleware","logger","getCacheControlFunc","req","res","artifact","isLegacyPath","file","getEnvTemplateFile","params","previewName","filePath","getPreviewFile","status","send","contents","str","cwd","path","contentType","mime","getType","set","cacheControl","e","error","prevName","finalFilePath","matchedFile","getFileEndsWith","parts","filter","x","join"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAeO,SAASA,yBAAT,CAAmCC,MAAnC,EAAmDC,mBAAnD,EAA8F;AACnG,SAAO,OAAOC,GAAP,EAAuCC,GAAvC,KAAyD;AAC9D,QAAI;AACF;AACA,YAAMC,QAAyB,GAAGF,GAAG,CAACE,QAAtC,CAFE,CAGF;;AACA,YAAMC,YAAY,GAAGH,GAAG,CAACG,YAAzB;AACA,UAAIC,IAAJ;;AACA,UAAI,CAACD,YAAL,EAAmB;AACjBC,QAAAA,IAAI,GAAGC,kBAAkB,CAACH,QAAD,EAAWF,GAAG,CAACM,MAAJ,CAAWC,WAAtB,EAAmCP,GAAG,CAACM,MAAJ,CAAWE,QAA9C,CAAzB;AACD,OAFD,MAEO;AACLJ,QAAAA,IAAI,GAAGK,cAAc,CAACP,QAAD,EAAWF,GAAG,CAACM,MAAJ,CAAWC,WAAtB,EAAmCP,GAAG,CAACM,MAAJ,CAAWE,QAA9C,CAArB;AACD;;AACD,UAAI,CAACJ,IAAL,EAAW,OAAOH,GAAG,CAACS,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,uCAArB,CAAP;AAEX,YAAMC,QAAQ,GAAGR,IAAI,CAACQ,QAAtB;AACA,YAAMC,GAAG,GAAI,GAAET,IAAI,CAACU,GAAI,IAAGV,IAAI,CAACW,IAAK,EAArC;;AACA,YAAMC,WAAW,GAAGC,gBAAKC,OAAL,CAAaL,GAAb,CAApB;;AACA,UAAIG,WAAJ,EAAiBf,GAAG,CAACkB,GAAJ,CAAQ,cAAR,EAAwBH,WAAxB;;AACjB,UAAIjB,mBAAJ,EAAyB;AACvB,cAAMqB,YAAY,GAAGrB,mBAAmB,CAACc,GAAD,EAAMD,QAAN,EAAgBI,WAAhB,CAAxC;;AACA,YAAII,YAAJ,EAAkB;AAChBnB,UAAAA,GAAG,CAACkB,GAAJ,CAAQ,eAAR,EAAyBC,YAAzB;AACD;AACF;;AACD,aAAOnB,GAAG,CAACU,IAAJ,CAASC,QAAT,CAAP;AACD,KAxBD,CAwBE,OAAOS,CAAP,EAAe;AACfvB,MAAAA,MAAM,CAACwB,KAAP,CAAa,wBAAb,EAAuCD,CAAvC;AACA,aAAOpB,GAAG,CAACS,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,yCAArB,CAAP;AACD;AACF,GA7BD;AA8BD;;AAED,SAASN,kBAAT,CAA4BH,QAA5B,EAAuDK,WAAvD,EAA6EC,QAA7E,EAAgG;AAC9F,QAAMe,QAAQ,GAAGhB,WAAW,IAAI,UAAhC;AACA,QAAMiB,aAAa,GAAGhB,QAAQ,IAAK,GAAEe,QAAS,OAA9C;AACA,QAAME,WAAW,GAAGvB,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAEwB,eAAV,CAA0BF,aAA1B,CAApB;AACA,SAAOC,WAAP;AACD;;AAED,SAAShB,cAAT,CAAwBP,QAAxB,EAAmDK,WAAnD,EAAyEC,QAAzE,EAA4F;AAC1F,MAAIgB,aAAa,GAAG,YAApB;;AACA,MAAIjB,WAAW,IAAIC,QAAnB,EAA6B;AAC3B,UAAMmB,KAAK,GAAG,CAACpB,WAAD,EAAcC,QAAd,EAAwBoB,MAAxB,CAAgCC,CAAD,IAAOA,CAAtC,CAAd;AACAL,IAAAA,aAAa,GAAGG,KAAK,CAACG,IAAN,CAAW,GAAX,CAAhB;AACD;;AACD,QAAML,WAAW,GAAGvB,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAEwB,eAAV,CAA0BF,aAA1B,CAApB;AACA,SAAOC,WAAP;AACD","sourcesContent":["import mime from 'mime';\nimport type { Request, Response } from '@teambit/express';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\nimport type { PreviewArtifact } from './preview-artifact';\n\nexport type PreviewUrlParams = {\n /**\n * preview name like overview or composition\n */\n previewName?: string;\n /** `/preview/:filePath(*)` */\n filePath?: string;\n};\n\nexport type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;\n\nexport function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc) {\n return async (req: Request<PreviewUrlParams>, res: Response) => {\n try {\n // @ts-ignore\n const artifact: PreviewArtifact = req.artifact;\n // @ts-ignore\n const isLegacyPath = req.isLegacyPath;\n let file;\n if (!isLegacyPath) {\n file = getEnvTemplateFile(artifact, req.params.previewName, req.params.filePath);\n } else {\n file = getPreviewFile(artifact, req.params.previewName, req.params.filePath);\n }\n if (!file) return res.status(404).send(noPreview());\n\n const contents = file.contents;\n const str = `${file.cwd}/${file.path}`;\n const contentType = mime.getType(str);\n if (contentType) res.set('Content-Type', contentType);\n if (getCacheControlFunc) {\n const cacheControl = getCacheControlFunc(str, contents, contentType);\n if (cacheControl) {\n res.set('Cache-control', cacheControl);\n }\n }\n return res.send(contents);\n } catch (e: any) {\n logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n };\n}\n\nfunction getEnvTemplateFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n const prevName = previewName || 'overview';\n const finalFilePath = filePath || `${prevName}.html`;\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n\nfunction getPreviewFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n let finalFilePath = 'index.html';\n if (previewName || filePath) {\n const parts = [previewName, filePath].filter((x) => x);\n finalFilePath = parts.join('/');\n }\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n"]}
1
+ {"version":3,"names":["getArtifactFileMiddleware","logger","getCacheControlFunc","req","res","artifact","isLegacyPath","file","getEnvTemplateFile","params","previewName","filePath","getPreviewFile","status","send","noPreview","contents","str","cwd","path","contentType","mime","getType","set","cacheControl","e","error","serverError","prevName","finalFilePath","matchedFile","getFileEndsWith","parts","filter","x","join"],"sources":["artifact-file-middleware.ts"],"sourcesContent":["import mime from 'mime';\nimport type { Request, Response } from '@teambit/express';\nimport { noPreview, serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\nimport type { PreviewArtifact } from './preview-artifact';\n\nexport type PreviewUrlParams = {\n /**\n * preview name like overview or composition\n */\n previewName?: string;\n /** `/preview/:filePath(*)` */\n filePath?: string;\n};\n\nexport type GetCacheControlFunc = (filePath: string, contents: string, mimeType?: string | null) => string | undefined;\n\nexport function getArtifactFileMiddleware(logger: Logger, getCacheControlFunc?: GetCacheControlFunc) {\n return async (req: Request<PreviewUrlParams>, res: Response) => {\n try {\n // @ts-ignore\n const artifact: PreviewArtifact = req.artifact;\n // @ts-ignore\n const isLegacyPath = req.isLegacyPath;\n let file;\n if (!isLegacyPath) {\n file = getEnvTemplateFile(artifact, req.params.previewName, req.params.filePath);\n } else {\n file = getPreviewFile(artifact, req.params.previewName, req.params.filePath);\n }\n if (!file) return res.status(404).send(noPreview());\n\n const contents = file.contents;\n const str = `${file.cwd}/${file.path}`;\n const contentType = mime.getType(str);\n if (contentType) res.set('Content-Type', contentType);\n if (getCacheControlFunc) {\n const cacheControl = getCacheControlFunc(str, contents, contentType);\n if (cacheControl) {\n res.set('Cache-control', cacheControl);\n }\n }\n return res.send(contents);\n } catch (e: any) {\n logger.error('failed getting preview', e);\n return res.status(500).send(serverError());\n }\n };\n}\n\nfunction getEnvTemplateFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n const prevName = previewName || 'overview';\n const finalFilePath = filePath || `${prevName}.html`;\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n\nfunction getPreviewFile(artifact: PreviewArtifact, previewName?: string, filePath?: string) {\n let finalFilePath = 'index.html';\n if (previewName || filePath) {\n const parts = [previewName, filePath].filter((x) => x);\n finalFilePath = parts.join('/');\n }\n const matchedFile = artifact?.getFileEndsWith(finalFilePath);\n return matchedFile;\n}\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAeO,SAASA,yBAAT,CAAmCC,MAAnC,EAAmDC,mBAAnD,EAA8F;EACnG,OAAO,OAAOC,GAAP,EAAuCC,GAAvC,KAAyD;IAC9D,IAAI;MACF;MACA,MAAMC,QAAyB,GAAGF,GAAG,CAACE,QAAtC,CAFE,CAGF;;MACA,MAAMC,YAAY,GAAGH,GAAG,CAACG,YAAzB;MACA,IAAIC,IAAJ;;MACA,IAAI,CAACD,YAAL,EAAmB;QACjBC,IAAI,GAAGC,kBAAkB,CAACH,QAAD,EAAWF,GAAG,CAACM,MAAJ,CAAWC,WAAtB,EAAmCP,GAAG,CAACM,MAAJ,CAAWE,QAA9C,CAAzB;MACD,CAFD,MAEO;QACLJ,IAAI,GAAGK,cAAc,CAACP,QAAD,EAAWF,GAAG,CAACM,MAAJ,CAAWC,WAAtB,EAAmCP,GAAG,CAACM,MAAJ,CAAWE,QAA9C,CAArB;MACD;;MACD,IAAI,CAACJ,IAAL,EAAW,OAAOH,GAAG,CAACS,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAC,gCAAA,GAArB,CAAP;MAEX,MAAMC,QAAQ,GAAGT,IAAI,CAACS,QAAtB;MACA,MAAMC,GAAG,GAAI,GAAEV,IAAI,CAACW,GAAI,IAAGX,IAAI,CAACY,IAAK,EAArC;;MACA,MAAMC,WAAW,GAAGC,eAAA,CAAKC,OAAL,CAAaL,GAAb,CAApB;;MACA,IAAIG,WAAJ,EAAiBhB,GAAG,CAACmB,GAAJ,CAAQ,cAAR,EAAwBH,WAAxB;;MACjB,IAAIlB,mBAAJ,EAAyB;QACvB,MAAMsB,YAAY,GAAGtB,mBAAmB,CAACe,GAAD,EAAMD,QAAN,EAAgBI,WAAhB,CAAxC;;QACA,IAAII,YAAJ,EAAkB;UAChBpB,GAAG,CAACmB,GAAJ,CAAQ,eAAR,EAAyBC,YAAzB;QACD;MACF;;MACD,OAAOpB,GAAG,CAACU,IAAJ,CAASE,QAAT,CAAP;IACD,CAxBD,CAwBE,OAAOS,CAAP,EAAe;MACfxB,MAAM,CAACyB,KAAP,CAAa,wBAAb,EAAuCD,CAAvC;MACA,OAAOrB,GAAG,CAACS,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAa,kCAAA,GAArB,CAAP;IACD;EACF,CA7BD;AA8BD;;AAED,SAASnB,kBAAT,CAA4BH,QAA5B,EAAuDK,WAAvD,EAA6EC,QAA7E,EAAgG;EAC9F,MAAMiB,QAAQ,GAAGlB,WAAW,IAAI,UAAhC;EACA,MAAMmB,aAAa,GAAGlB,QAAQ,IAAK,GAAEiB,QAAS,OAA9C;EACA,MAAME,WAAW,GAAGzB,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAE0B,eAAV,CAA0BF,aAA1B,CAApB;EACA,OAAOC,WAAP;AACD;;AAED,SAASlB,cAAT,CAAwBP,QAAxB,EAAmDK,WAAnD,EAAyEC,QAAzE,EAA4F;EAC1F,IAAIkB,aAAa,GAAG,YAApB;;EACA,IAAInB,WAAW,IAAIC,QAAnB,EAA6B;IAC3B,MAAMqB,KAAK,GAAG,CAACtB,WAAD,EAAcC,QAAd,EAAwBsB,MAAxB,CAAgCC,CAAD,IAAOA,CAAtC,CAAd;IACAL,aAAa,GAAGG,KAAK,CAACG,IAAN,CAAW,GAAX,CAAhB;EACD;;EACD,MAAML,WAAW,GAAGzB,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAE0B,eAAV,CAA0BF,aAA1B,CAApB;EACA,OAAOC,WAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["bundling-strategy.ts"],"sourcesContent":["import { BuildContext, BuiltTaskResult } from '@teambit/builder';\nimport { Target, BundlerResult, BundlerContext } from '@teambit/bundler';\nimport { PreviewDefinition } from './preview-definition';\nimport { PreviewTask } from './preview.task';\n\ntype ComputeTargetsExtraContextKeys = {\n splitComponentBundle?: boolean;\n};\n\nexport type ComputeTargetsContext = BuildContext & ComputeTargetsExtraContextKeys;\nexport interface BundlingStrategy {\n /**\n * name of the bundling strategy.\n */\n name: string;\n\n /**\n * compute bundling targets for the build context.\n */\n computeTargets(\n context: ComputeTargetsContext,\n previewDefs: PreviewDefinition[],\n previewTask: PreviewTask\n ): Promise<Target[]>;\n\n /**\n * compute the results of the bundler.\n */\n computeResults(context: BundlerContext, results: BundlerResult[], previewTask: PreviewTask): Promise<BuiltTaskResult>;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"sources":["component-preview.route.ts"],"names":["ComponentPreviewRoute","constructor","preview","logger","req","res","next","isLegacyPath","component","status","send","artifact","getPreview","e","error"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,qBAAN,CAA6C;AAClDC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,OAJC,EAKDC,MALC,EAMT;AAAA,SAFQD,OAER,GAFQA,OAER;AAAA,SADQC,MACR,GADQA,MACR;AAAA,mDAEO,iCAFP;AAAA,oDAGO,KAHP;AAAA,yDAKY,CACZ,OAAOC,GAAP,EAAuCC,GAAvC,EAAsDC,IAAtD,KAA6E;AAC3E,UAAI;AACF,YAAIC,YAAY,GAAG,KAAnB,CADE,CAEF;;AACA,cAAMC,SAAS,GAAGJ,GAAG,CAACI,SAAtB;AACA,YAAI,CAACA,SAAL,EAAgB,OAAOH,GAAG,CAACI,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,uCAArB,CAAP;AAEhB,YAAIC,QAAJ,CANE,CAOF;;AACA,YAAI;AACFJ,UAAAA,YAAY,GAAG,IAAf;AACAI,UAAAA,QAAQ,GAAG,MAAM,KAAKT,OAAL,CAAaU,UAAb,CAAwBJ,SAAxB,CAAjB;AACD,SAHD,CAGE,OAAOK,CAAP,EAAe;AACf,eAAKV,MAAL,CAAYW,KAAZ,CAAmB,+BAAnB,EAAmDD,CAAnD;AACA,iBAAOR,GAAG,CAACI,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,uCAArB,CAAP;AACD,SAdC,CAeF;;;AACAN,QAAAA,GAAG,CAACO,QAAJ,GAAeA,QAAf,CAhBE,CAiBF;;AACAP,QAAAA,GAAG,CAACG,YAAJ,GAAmBA,YAAnB;AACA,eAAOD,IAAI,EAAX;AACD,OApBD,CAoBE,OAAOO,CAAP,EAAe;AACf,aAAKV,MAAL,CAAYW,KAAZ,CAAkB,wBAAlB,EAA4CD,CAA5C;AACA,eAAOR,GAAG,CAACI,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,yCAArB,CAAP;AACD;AACF,KA1BW,EA2BZ,yDAA0B,KAAKP,MAA/B,CA3BY,CALZ;AAAE;;AAP8C","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 type { PreviewArtifact } from './preview-artifact';\nimport type { PreviewUrlParams } from './artifact-file-middleware';\nimport { getArtifactFileMiddleware } from './artifact-file-middleware';\n\nexport class ComponentPreviewRoute implements Route {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = `/component-preview/:filePath(*)`;\n method = 'get';\n\n middlewares = [\n async (req: Request<PreviewUrlParams>, res: Response, next: NextFunction) => {\n try {\n let isLegacyPath = false;\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\n let artifact: PreviewArtifact | undefined;\n // TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680\n try {\n isLegacyPath = true;\n artifact = await this.preview.getPreview(component);\n } catch (e: any) {\n this.logger.error(`preview.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"]}
1
+ {"version":3,"names":["ComponentPreviewRoute","constructor","preview","logger","req","res","next","isLegacyPath","component","status","send","noPreview","artifact","getPreview","e","error","serverError","getArtifactFileMiddleware"],"sources":["component-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 type { PreviewArtifact } from './preview-artifact';\nimport type { PreviewUrlParams } from './artifact-file-middleware';\nimport { getArtifactFileMiddleware } from './artifact-file-middleware';\n\nexport class ComponentPreviewRoute implements Route {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = `/component-preview/:filePath(*)`;\n method = 'get';\n\n middlewares = [\n async (req: Request<PreviewUrlParams>, res: Response, next: NextFunction) => {\n try {\n let isLegacyPath = false;\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\n let artifact: PreviewArtifact | undefined;\n // TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680\n try {\n isLegacyPath = true;\n artifact = await this.preview.getPreview(component);\n } catch (e: any) {\n this.logger.error(`preview.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":";;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAMA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,qBAAN,CAA6C;EAClDC,WAAW;EACT;AACJ;AACA;EACYC,OAJC,EAKDC,MALC,EAMT;IAAA,KAFQD,OAER,GAFQA,OAER;IAAA,KADQC,MACR,GADQA,MACR;IAAA,+CAEO,iCAFP;IAAA,gDAGO,KAHP;IAAA,qDAKY,CACZ,OAAOC,GAAP,EAAuCC,GAAvC,EAAsDC,IAAtD,KAA6E;MAC3E,IAAI;QACF,IAAIC,YAAY,GAAG,KAAnB,CADE,CAEF;;QACA,MAAMC,SAAS,GAAGJ,GAAG,CAACI,SAAtB;QACA,IAAI,CAACA,SAAL,EAAgB,OAAOH,GAAG,CAACI,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAC,gCAAA,GAArB,CAAP;QAEhB,IAAIC,QAAJ,CANE,CAOF;;QACA,IAAI;UACFL,YAAY,GAAG,IAAf;UACAK,QAAQ,GAAG,MAAM,KAAKV,OAAL,CAAaW,UAAb,CAAwBL,SAAxB,CAAjB;QACD,CAHD,CAGE,OAAOM,CAAP,EAAe;UACf,KAAKX,MAAL,CAAYY,KAAZ,CAAmB,+BAAnB,EAAmDD,CAAnD;UACA,OAAOT,GAAG,CAACI,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAC,gCAAA,GAArB,CAAP;QACD,CAdC,CAeF;;;QACAP,GAAG,CAACQ,QAAJ,GAAeA,QAAf,CAhBE,CAiBF;;QACAR,GAAG,CAACG,YAAJ,GAAmBA,YAAnB;QACA,OAAOD,IAAI,EAAX;MACD,CApBD,CAoBE,OAAOQ,CAAP,EAAe;QACf,KAAKX,MAAL,CAAYY,KAAZ,CAAkB,wBAAlB,EAA4CD,CAA5C;QACA,OAAOT,GAAG,CAACI,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAM,kCAAA,GAArB,CAAP;MACD;IACF,CA1BW,EA2BZ,IAAAC,mDAAA,EAA0B,KAAKd,MAA/B,CA3BY,CALZ;EAAE;;AAP8C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["env-preview-template.task.ts"],"names":["GENERATE_ENV_TEMPLATE_TASK_NAME","PREVIEW_ROOT_CHUNK_NAME","PEERS_CHUNK_NAME","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","execute","context","previewDefs","getDefs","htmlConfig","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","map","c","component","id","toString","grouped","Promise","all","components","length","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","target","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","push","componentsResults","runBundlerForGroups","groups","bundlerContext","Object","assign","entry","externalizePeer","development","metaData","initiator","envId","bundlerResults","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","isSplitComponentBundle","splitComponentBundle","peers","getHostDependencies","envComponentPeers","keys","getDependencies","peerDependencies","additionalHostDeps","getAdditionalHostDependencies","concat","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","previewModules","getPreviewModules","outputPath","computeOutputPath","getEntries","runtimeChunkName","html","chunking","splitChunks","previewRootChunkName","peersChunkName","options","htmlConfigs","previewModule","generateHtmlConfigForPreviewDef","previewDef","previewDeps","include","chunks","prefix","includePeers","unshift","config","title","templateContent","minify","filename","previewRootEntry","import","peersRootEntry","reduce","acc","module","linkFile","writeLink","ComponentMap","create","path","dependOn","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","def","renderTemplatePathByEnv","getArtifactDirectory","CAPSULE_ARTIFACTS_DIR","globPatterns","rootDir"],"mappings":"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","sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n ComponentResult,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Capsule } from '@teambit/isolator';\nimport { Bundler, BundlerContext, BundlerEntryMap, BundlerHtmlConfig, BundlerResult, Target } from '@teambit/bundler';\nimport type { EnvDefinition, Environment, EnvsMain } from '@teambit/envs';\nimport { join } from 'path';\nimport { compact, flatten, isEmpty } from 'lodash';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { PreviewDefinition } from '.';\nimport { html } from './webpack';\n\nexport type ModuleExpose = {\n name: string;\n path: string;\n include?: string[];\n};\n\ntype TargetsGroup = {\n env: Environment;\n targets: Target[];\n};\ntype TargetsGroupMap = {\n [envId: string]: TargetsGroup;\n};\n\nexport const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';\nexport const PREVIEW_ROOT_CHUNK_NAME = 'previewRoot';\nexport const PEERS_CHUNK_NAME = 'peers';\n\nexport class EnvPreviewTemplateTask implements BuildTask {\n aspectId = 'teambit.preview/preview';\n name = GENERATE_ENV_TEMPLATE_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n constructor(private preview: PreviewMain, private envs: EnvsMain, private aspectLoader: AspectLoaderMain) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const previewDefs = this.preview.getDefs();\n const htmlConfig = this.generateHtmlConfig(previewDefs, PREVIEW_ROOT_CHUNK_NAME, PEERS_CHUNK_NAME, {\n dev: context.dev,\n });\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n await Promise.all(\n context.components.map(async (component) => {\n // Do not run over other components in the graph. it make the process much longer with no need\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n const envDef = this.envs.getEnvFromComponent(component);\n if (!envDef) return undefined;\n const env = envDef.env;\n const bundlingStrategy = this.preview.getBundlingStrategy(envDef.env);\n if (bundlingStrategy.name === 'env') {\n return undefined;\n }\n const target = await this.getEnvTargetFromComponent(context, component, envDef, htmlConfig);\n if (!target) return undefined;\n const shouldUseDefaultBundler = this.shouldUseDefaultBundler(envDef);\n let envToGetBundler = this.envs.getEnvsEnvDefinition().env;\n let groupEnvId = 'default';\n if (!shouldUseDefaultBundler) {\n envToGetBundler = env;\n groupEnvId = envDef.id;\n }\n if (!grouped[groupEnvId]) {\n grouped[groupEnvId] = {\n env: envToGetBundler,\n targets: [target],\n };\n } else {\n grouped[groupEnvId].targets.push(target);\n }\n return undefined;\n })\n );\n if (isEmpty(grouped)) {\n return { componentsResults: [] };\n }\n\n return this.runBundlerForGroups(context, grouped);\n }\n\n private async runBundlerForGroups(context: BuildContext, groups: TargetsGroupMap): Promise<BuiltTaskResult> {\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [],\n entry: [],\n externalizePeer: false,\n development: context.dev,\n metaData: {\n initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,\n envId: context.id,\n },\n });\n const bundlerResults = await mapSeries(Object.entries(groups), async ([, targetsGroup]) => {\n bundlerContext.targets = targetsGroup.targets;\n const bundler: Bundler = await targetsGroup.env.getTemplateBundler(bundlerContext);\n const bundlerResult = await bundler.run();\n return bundlerResult;\n });\n\n const results = await this.computeResults(bundlerContext, flatten(bundlerResults));\n return results;\n }\n\n private shouldUseDefaultBundler(envDef: EnvDefinition): boolean {\n if (this.aspectLoader.isCoreEnv(envDef.id)) return true;\n const env = envDef.env;\n if (env.getTemplateBundler && typeof env.getTemplateBundler === 'function') return false;\n return true;\n }\n\n private async getEnvTargetFromComponent(\n context: BuildContext,\n envComponent: Component,\n envDef: EnvDefinition,\n htmlConfig: BundlerHtmlConfig[]\n ): Promise<Target | undefined> {\n const env = envDef.env;\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n const isSplitComponentBundle = envPreviewConfig.splitComponentBundle ?? false;\n let peers;\n if (env.getHostDependencies && typeof env.getHostDependencies === 'function') {\n peers = (await env.getHostDependencies()) || [];\n } else {\n const envComponentPeers = Object.keys((await env.getDependencies()).peerDependencies || {}) || [];\n let additionalHostDeps = [];\n if (env.getAdditionalHostDependencies && typeof env.getAdditionalHostDependencies === 'function') {\n additionalHostDeps = await env.getAdditionalHostDependencies();\n }\n peers = envComponentPeers.concat(additionalHostDeps);\n }\n\n // const module = await this.getPreviewModule(envComponent);\n // const entries = Object.keys(module).map((key) => module.exposes[key]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);\n if (!capsule) throw new Error('no capsule found');\n // Passing here the env itself to make sure it's preview runtime will be part of the preview root file\n // that's needed to make sure the providers register there are running correctly\n const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);\n const previewModules = await this.getPreviewModules(envDef);\n // const templatesFile = previewModules.map((template) => {\n // return this.preview.writeLink(template.name, ComponentMap.create([]), template.path, capsule.path);\n // });\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const entries = this.getEntries(previewModules, capsule, previewRoot, isSplitComponentBundle, peers);\n\n return {\n peers,\n runtimeChunkName: 'runtime',\n html: htmlConfig,\n entries,\n chunking: {\n splitChunks: true,\n },\n components: [envComponent],\n outputPath,\n };\n }\n\n private generateHtmlConfig(\n previewDefs: PreviewDefinition[],\n previewRootChunkName: string,\n peersChunkName: string,\n options: { dev?: boolean }\n ): BundlerHtmlConfig[] {\n const htmlConfigs = previewDefs.map((previewModule) =>\n this.generateHtmlConfigForPreviewDef(previewModule, previewRootChunkName, peersChunkName, options)\n );\n return htmlConfigs;\n }\n\n private generateHtmlConfigForPreviewDef(\n previewDef: PreviewDefinition,\n previewRootChunkName: string,\n peersChunkName: string,\n options: { dev?: boolean }\n ): BundlerHtmlConfig {\n const previewDeps = previewDef.include || [];\n const chunks = [...previewDeps, previewDef.prefix, previewRootChunkName];\n if (previewDef.includePeers) {\n chunks.unshift(peersChunkName);\n }\n\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n minify: options?.dev ?? true,\n chunks,\n filename: `${previewDef.prefix}.html`,\n };\n return config;\n }\n\n getEntries(\n previewModules: ModuleExpose[],\n capsule: Capsule,\n previewRoot: string,\n isSplitComponentBundle = false,\n peers: string[] = []\n ): BundlerEntryMap {\n const previewRootEntry = {\n filename: 'preview-root.[chunkhash].js',\n import: previewRoot,\n };\n\n const peersRootEntry = {\n filename: 'peers.[chunkhash].js',\n import: peers,\n };\n\n const entries = previewModules.reduce(\n (acc, module) => {\n const linkFile = this.preview.writeLink(\n module.name,\n ComponentMap.create([]),\n module.path,\n capsule.path,\n isSplitComponentBundle\n );\n acc[module.name] = {\n // filename: `${module.name}.[contenthash].js`,\n filename: `${module.name}.[chunkhash].js`,\n // filename: `${module.name}.js`,\n import: linkFile,\n // library: {\n // name: module.name,\n // type: 'umd',\n // },\n };\n if (module.include) {\n acc[module.name].dependOn = module.include;\n }\n return acc;\n },\n { [PREVIEW_ROOT_CHUNK_NAME]: previewRootEntry, [PEERS_CHUNK_NAME]: peersRootEntry }\n );\n\n return entries;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const allResults = results.map((result) => {\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n return componentsResults;\n });\n\n const componentsResults = flatten(allResults);\n\n const artifacts = getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n async getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]> {\n const previewDefs = this.preview.getDefs();\n\n const modules = compact(\n await Promise.all(\n previewDefs.map(async (def) => {\n if (!def.renderTemplatePathByEnv) return undefined;\n return {\n name: def.prefix,\n path: await def.renderTemplatePathByEnv(envDef.env),\n include: def.include,\n };\n })\n )\n );\n\n return modules;\n }\n\n private computeOutputPath(context: BuildContext, component: Component) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('no capsule found');\n return join(capsule.path, getArtifactDirectory());\n }\n}\n\nexport function getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'env-template');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'env-template',\n globPatterns: ['**'],\n rootDir: getArtifactDirectory(),\n },\n ];\n}\n"]}
1
+ {"version":3,"names":["GENERATE_ENV_TEMPLATE_TASK_NAME","PREVIEW_ROOT_CHUNK_NAME","PEERS_CHUNK_NAME","EnvPreviewTemplateTask","constructor","preview","envs","aspectLoader","execute","context","previewDefs","getDefs","htmlConfig","generateHtmlConfig","dev","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","map","c","component","id","toString","grouped","Promise","all","components","length","includes","undefined","envDef","getEnvFromComponent","env","bundlingStrategy","getBundlingStrategy","name","target","getEnvTargetFromComponent","shouldUseDefaultBundler","envToGetBundler","getEnvsEnvDefinition","groupEnvId","targets","push","isEmpty","componentsResults","runBundlerForGroups","groups","bundlerContext","Object","assign","entry","externalizePeer","development","metaData","initiator","envId","bundlerResults","mapSeries","entries","targetsGroup","bundler","getTemplateBundler","bundlerResult","run","results","computeResults","flatten","isCoreEnv","envComponent","envPreviewConfig","getEnvPreviewConfig","isSplitComponentBundle","splitComponentBundle","peers","getHostDependencies","envComponentPeers","keys","getDependencies","peerDependencies","additionalHostDeps","getAdditionalHostDependencies","concat","capsule","graphCapsules","getCapsule","Error","previewRoot","writePreviewRuntime","previewModules","getPreviewModules","outputPath","computeOutputPath","existsSync","mkdirpSync","getEntries","runtimeChunkName","html","chunking","splitChunks","previewRootChunkName","peersChunkName","options","htmlConfigs","previewModule","generateHtmlConfigForPreviewDef","previewDef","previewDeps","include","chunks","prefix","includePeers","unshift","config","title","templateContent","minify","filename","previewRootEntry","import","peersRootEntry","reduce","acc","module","linkFile","writeLink","ComponentMap","create","path","dependOn","allResults","result","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","modules","compact","def","renderTemplatePathByEnv","join","getArtifactDirectory","CAPSULE_ARTIFACTS_DIR","globPatterns","rootDir"],"sources":["env-preview-template.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n ComponentResult,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { Capsule } from '@teambit/isolator';\nimport { Bundler, BundlerContext, BundlerEntryMap, BundlerHtmlConfig, BundlerResult, Target } from '@teambit/bundler';\nimport type { EnvDefinition, Environment, EnvsMain } from '@teambit/envs';\nimport { join } from 'path';\nimport { compact, flatten, isEmpty } from 'lodash';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport type { PreviewMain } from './preview.main.runtime';\nimport { PreviewDefinition } from '.';\nimport { html } from './webpack';\n\nexport type ModuleExpose = {\n name: string;\n path: string;\n include?: string[];\n};\n\ntype TargetsGroup = {\n env: Environment;\n targets: Target[];\n};\ntype TargetsGroupMap = {\n [envId: string]: TargetsGroup;\n};\n\nexport const GENERATE_ENV_TEMPLATE_TASK_NAME = 'GenerateEnvTemplate';\nexport const PREVIEW_ROOT_CHUNK_NAME = 'previewRoot';\nexport const PEERS_CHUNK_NAME = 'peers';\n\nexport class EnvPreviewTemplateTask implements BuildTask {\n aspectId = 'teambit.preview/preview';\n name = GENERATE_ENV_TEMPLATE_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n constructor(private preview: PreviewMain, private envs: EnvsMain, private aspectLoader: AspectLoaderMain) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const previewDefs = this.preview.getDefs();\n const htmlConfig = this.generateHtmlConfig(previewDefs, PREVIEW_ROOT_CHUNK_NAME, PEERS_CHUNK_NAME, {\n dev: context.dev,\n });\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const grouped: TargetsGroupMap = {};\n await Promise.all(\n context.components.map(async (component) => {\n // Do not run over other components in the graph. it make the process much longer with no need\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n const envDef = this.envs.getEnvFromComponent(component);\n if (!envDef) return undefined;\n const env = envDef.env;\n const bundlingStrategy = this.preview.getBundlingStrategy(envDef.env);\n if (bundlingStrategy.name === 'env') {\n return undefined;\n }\n const target = await this.getEnvTargetFromComponent(context, component, envDef, htmlConfig);\n if (!target) return undefined;\n const shouldUseDefaultBundler = this.shouldUseDefaultBundler(envDef);\n let envToGetBundler = this.envs.getEnvsEnvDefinition().env;\n let groupEnvId = 'default';\n if (!shouldUseDefaultBundler) {\n envToGetBundler = env;\n groupEnvId = envDef.id;\n }\n if (!grouped[groupEnvId]) {\n grouped[groupEnvId] = {\n env: envToGetBundler,\n targets: [target],\n };\n } else {\n grouped[groupEnvId].targets.push(target);\n }\n return undefined;\n })\n );\n if (isEmpty(grouped)) {\n return { componentsResults: [] };\n }\n\n return this.runBundlerForGroups(context, grouped);\n }\n\n private async runBundlerForGroups(context: BuildContext, groups: TargetsGroupMap): Promise<BuiltTaskResult> {\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [],\n entry: [],\n externalizePeer: false,\n development: context.dev,\n metaData: {\n initiator: `${GENERATE_ENV_TEMPLATE_TASK_NAME} task`,\n envId: context.id,\n },\n });\n const bundlerResults = await mapSeries(Object.entries(groups), async ([, targetsGroup]) => {\n bundlerContext.targets = targetsGroup.targets;\n const bundler: Bundler = await targetsGroup.env.getTemplateBundler(bundlerContext);\n const bundlerResult = await bundler.run();\n return bundlerResult;\n });\n\n const results = await this.computeResults(bundlerContext, flatten(bundlerResults));\n return results;\n }\n\n private shouldUseDefaultBundler(envDef: EnvDefinition): boolean {\n if (this.aspectLoader.isCoreEnv(envDef.id)) return true;\n const env = envDef.env;\n if (env.getTemplateBundler && typeof env.getTemplateBundler === 'function') return false;\n return true;\n }\n\n private async getEnvTargetFromComponent(\n context: BuildContext,\n envComponent: Component,\n envDef: EnvDefinition,\n htmlConfig: BundlerHtmlConfig[]\n ): Promise<Target | undefined> {\n const env = envDef.env;\n const envPreviewConfig = this.preview.getEnvPreviewConfig(envDef.env);\n const isSplitComponentBundle = envPreviewConfig.splitComponentBundle ?? false;\n let peers;\n if (env.getHostDependencies && typeof env.getHostDependencies === 'function') {\n peers = (await env.getHostDependencies()) || [];\n } else {\n const envComponentPeers = Object.keys((await env.getDependencies()).peerDependencies || {}) || [];\n let additionalHostDeps = [];\n if (env.getAdditionalHostDependencies && typeof env.getAdditionalHostDependencies === 'function') {\n additionalHostDeps = await env.getAdditionalHostDependencies();\n }\n peers = envComponentPeers.concat(additionalHostDeps);\n }\n\n // const module = await this.getPreviewModule(envComponent);\n // const entries = Object.keys(module).map((key) => module.exposes[key]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(envComponent.id);\n if (!capsule) throw new Error('no capsule found');\n // Passing here the env itself to make sure it's preview runtime will be part of the preview root file\n // that's needed to make sure the providers register there are running correctly\n const previewRoot = await this.preview.writePreviewRuntime(context, [envComponent.id.toString()]);\n const previewModules = await this.getPreviewModules(envDef);\n // const templatesFile = previewModules.map((template) => {\n // return this.preview.writeLink(template.name, ComponentMap.create([]), template.path, capsule.path);\n // });\n const outputPath = this.computeOutputPath(context, envComponent);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const entries = this.getEntries(previewModules, capsule, previewRoot, isSplitComponentBundle, peers);\n\n return {\n peers,\n runtimeChunkName: 'runtime',\n html: htmlConfig,\n entries,\n chunking: {\n splitChunks: true,\n },\n components: [envComponent],\n outputPath,\n };\n }\n\n private generateHtmlConfig(\n previewDefs: PreviewDefinition[],\n previewRootChunkName: string,\n peersChunkName: string,\n options: { dev?: boolean }\n ): BundlerHtmlConfig[] {\n const htmlConfigs = previewDefs.map((previewModule) =>\n this.generateHtmlConfigForPreviewDef(previewModule, previewRootChunkName, peersChunkName, options)\n );\n return htmlConfigs;\n }\n\n private generateHtmlConfigForPreviewDef(\n previewDef: PreviewDefinition,\n previewRootChunkName: string,\n peersChunkName: string,\n options: { dev?: boolean }\n ): BundlerHtmlConfig {\n const previewDeps = previewDef.include || [];\n const chunks = [...previewDeps, previewDef.prefix, previewRootChunkName];\n if (previewDef.includePeers) {\n chunks.unshift(peersChunkName);\n }\n\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n minify: options?.dev ?? true,\n chunks,\n filename: `${previewDef.prefix}.html`,\n };\n return config;\n }\n\n getEntries(\n previewModules: ModuleExpose[],\n capsule: Capsule,\n previewRoot: string,\n isSplitComponentBundle = false,\n peers: string[] = []\n ): BundlerEntryMap {\n const previewRootEntry = {\n filename: 'preview-root.[chunkhash].js',\n import: previewRoot,\n };\n\n const peersRootEntry = {\n filename: 'peers.[chunkhash].js',\n import: peers,\n };\n\n const entries = previewModules.reduce(\n (acc, module) => {\n const linkFile = this.preview.writeLink(\n module.name,\n ComponentMap.create([]),\n module.path,\n capsule.path,\n isSplitComponentBundle\n );\n acc[module.name] = {\n // filename: `${module.name}.[contenthash].js`,\n filename: `${module.name}.[chunkhash].js`,\n // filename: `${module.name}.js`,\n import: linkFile,\n // library: {\n // name: module.name,\n // type: 'umd',\n // },\n };\n if (module.include) {\n acc[module.name].dependOn = module.include;\n }\n return acc;\n },\n { [PREVIEW_ROOT_CHUNK_NAME]: previewRootEntry, [PEERS_CHUNK_NAME]: peersRootEntry }\n );\n\n return entries;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const allResults = results.map((result) => {\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n return componentsResults;\n });\n\n const componentsResults = flatten(allResults);\n\n const artifacts = getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n async getPreviewModules(envDef: EnvDefinition): Promise<ModuleExpose[]> {\n const previewDefs = this.preview.getDefs();\n\n const modules = compact(\n await Promise.all(\n previewDefs.map(async (def) => {\n if (!def.renderTemplatePathByEnv) return undefined;\n return {\n name: def.prefix,\n path: await def.renderTemplatePathByEnv(envDef.env),\n include: def.include,\n };\n })\n )\n );\n\n return modules;\n }\n\n private computeOutputPath(context: BuildContext, component: Component) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('no capsule found');\n return join(capsule.path, getArtifactDirectory());\n }\n}\n\nexport function getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'env-template');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'env-template',\n globPatterns: ['**'],\n rootDir: getArtifactDirectory(),\n },\n ];\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["env-template.route.ts"],"names":["CACHE_MAX_AGE","getCacheControl","_filePath","_contents","mimeType","undefined","EnvTemplateRoute","constructor","preview","logger","req","res","next","artifact","componentId","envId","params","getEnvTemplateByEnvId","e","error","status","send","isLegacyPath"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMA;AACA,MAAMA,aAAa,GAAG,KAAK,EAAL,GAAU,EAAV,GAAe,CAArC;;AAEA,MAAMC,eAAoC,GAAG,CAACC,SAAD,EAAoBC,SAApB,EAAuCC,QAAvC,KAAoE;AAC/G;AACA,MAAIA,QAAQ,IAAIA,QAAQ,KAAK,WAA7B,EAA0C;AACxC,WAAOC,SAAP;AACD;;AACD,SAAQ,oBAAmBL,aAAc,EAAzC;AACD,CAND;;AAQO,MAAMM,gBAAN,CAA2D;AAChEC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,OAJC,EAKDC,MALC,EAMT;AAAA,SAFQD,OAER,GAFQA,OAER;AAAA,SADQC,MACR,GADQA,MACR;AAAA,mDAEO,yCAFP;AAAA,oDAGO,KAHP;AAAA,8DAOiB,KAPjB;AAAA,yDAUY,CACZ,OAAOC,GAAP,EAAgCC,GAAhC,EAA+CC,IAA/C,KAAsE;AACpE,UAAI;AACF;AACA;AACA;AAEA,YAAIC,QAAJ,CALE,CAMF;;AACA,YAAI;AACF,gBAAM;AAAEC,YAAAA,WAAW,EAAEC;AAAf,cAAyBL,GAAG,CAACM,MAAnC;AACAH,UAAAA,QAAQ,GAAG,MAAM,KAAKL,OAAL,CAAaS,qBAAb,CAAmCF,KAAnC,CAAjB;AACD,SAHD,CAGE,OAAOG,CAAP,EAAe;AACf,eAAKT,MAAL,CAAYU,KAAZ,CAAmB,kCAAnB,EAAsDD,CAAtD;AACA,iBAAOP,GAAG,CAACS,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,uCAArB,CAAP;AACD,SAbC,CAeF;;;AACAX,QAAAA,GAAG,CAACG,QAAJ,GAAeA,QAAf,CAhBE,CAiBF;;AACAH,QAAAA,GAAG,CAACY,YAAJ,GAAmB,KAAnB;AAEA,eAAOV,IAAI,EAAX;AACD,OArBD,CAqBE,OAAOM,CAAP,EAAe;AACf,aAAKT,MAAL,CAAYU,KAAZ,CAAkB,wBAAlB,EAA4CD,CAA5C;AACA,eAAOP,GAAG,CAACS,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,yCAArB,CAAP;AACD;AACF,KA3BW,EA4BZ,yDAA0B,KAAKZ,MAA/B,EAAuCR,eAAvC,CA5BY,CAVZ;AAAE;;AAP4D","sourcesContent":["import type { NextFunction, Request, Response } from '@teambit/express';\nimport type { ComponentUrlParams, RegisteredComponentRoute } 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, GetCacheControlFunc } from './artifact-file-middleware';\n\ntype UrlParams = ComponentUrlParams & {\n filePath?: string;\n};\n\n// Week for now\nconst CACHE_MAX_AGE = 60 * 60 * 24 * 7;\n\nconst getCacheControl: GetCacheControlFunc = (_filePath: string, _contents: string, mimeType?: string | null) => {\n // Do not cache the html files\n if (mimeType && mimeType === 'text/html') {\n return undefined;\n }\n return `private, max-age=${CACHE_MAX_AGE}`;\n};\n\nexport class EnvTemplateRoute implements RegisteredComponentRoute {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = `/env-template/:previewName/:filePath(*)`;\n method = 'get';\n\n // Since we might give it a core env id\n // Then in the component route when we do host.get(id) it will fail, as we don't have the core envs in the scope/workspace\n resolveComponent = false;\n\n // @ts-ignore\n middlewares = [\n async (req: Request<UrlParams>, 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\n let artifact: PreviewArtifact | undefined;\n // TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680\n try {\n const { componentId: envId } = req.params;\n artifact = await this.preview.getEnvTemplateByEnvId(envId);\n } catch (e: any) {\n this.logger.error(`getEnvTemplateByEnvId has failed`, e);\n return res.status(404).send(noPreview());\n }\n\n // @ts-ignore\n req.artifact = artifact;\n // @ts-ignore\n req.isLegacyPath = false;\n\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, getCacheControl),\n ];\n}\n"]}
1
+ {"version":3,"names":["CACHE_MAX_AGE","getCacheControl","_filePath","_contents","mimeType","undefined","EnvTemplateRoute","constructor","preview","logger","req","res","next","artifact","componentId","envId","params","getEnvTemplateByEnvId","e","error","status","send","noPreview","isLegacyPath","serverError","getArtifactFileMiddleware"],"sources":["env-template.route.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from '@teambit/express';\nimport type { ComponentUrlParams, RegisteredComponentRoute } 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, GetCacheControlFunc } from './artifact-file-middleware';\n\ntype UrlParams = ComponentUrlParams & {\n filePath?: string;\n};\n\n// Week for now\nconst CACHE_MAX_AGE = 60 * 60 * 24 * 7;\n\nconst getCacheControl: GetCacheControlFunc = (_filePath: string, _contents: string, mimeType?: string | null) => {\n // Do not cache the html files\n if (mimeType && mimeType === 'text/html') {\n return undefined;\n }\n return `private, max-age=${CACHE_MAX_AGE}`;\n};\n\nexport class EnvTemplateRoute implements RegisteredComponentRoute {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = `/env-template/:previewName/:filePath(*)`;\n method = 'get';\n\n // Since we might give it a core env id\n // Then in the component route when we do host.get(id) it will fail, as we don't have the core envs in the scope/workspace\n resolveComponent = false;\n\n // @ts-ignore\n middlewares = [\n async (req: Request<UrlParams>, 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\n let artifact: PreviewArtifact | undefined;\n // TODO - prevent error `getVinylsAndImportIfMissing is not a function` #4680\n try {\n const { componentId: envId } = req.params;\n artifact = await this.preview.getEnvTemplateByEnvId(envId);\n } catch (e: any) {\n this.logger.error(`getEnvTemplateByEnvId has failed`, e);\n return res.status(404).send(noPreview());\n }\n\n // @ts-ignore\n req.artifact = artifact;\n // @ts-ignore\n req.isLegacyPath = false;\n\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, getCacheControl),\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAMA;AACA,MAAMA,aAAa,GAAG,KAAK,EAAL,GAAU,EAAV,GAAe,CAArC;;AAEA,MAAMC,eAAoC,GAAG,CAACC,SAAD,EAAoBC,SAApB,EAAuCC,QAAvC,KAAoE;EAC/G;EACA,IAAIA,QAAQ,IAAIA,QAAQ,KAAK,WAA7B,EAA0C;IACxC,OAAOC,SAAP;EACD;;EACD,OAAQ,oBAAmBL,aAAc,EAAzC;AACD,CAND;;AAQO,MAAMM,gBAAN,CAA2D;EAChEC,WAAW;EACT;AACJ;AACA;EACYC,OAJC,EAKDC,MALC,EAMT;IAAA,KAFQD,OAER,GAFQA,OAER;IAAA,KADQC,MACR,GADQA,MACR;IAAA,+CAEO,yCAFP;IAAA,gDAGO,KAHP;IAAA,0DAOiB,KAPjB;IAAA,qDAUY,CACZ,OAAOC,GAAP,EAAgCC,GAAhC,EAA+CC,IAA/C,KAAsE;MACpE,IAAI;QACF;QACA;QACA;QAEA,IAAIC,QAAJ,CALE,CAMF;;QACA,IAAI;UACF,MAAM;YAAEC,WAAW,EAAEC;UAAf,IAAyBL,GAAG,CAACM,MAAnC;UACAH,QAAQ,GAAG,MAAM,KAAKL,OAAL,CAAaS,qBAAb,CAAmCF,KAAnC,CAAjB;QACD,CAHD,CAGE,OAAOG,CAAP,EAAe;UACf,KAAKT,MAAL,CAAYU,KAAZ,CAAmB,kCAAnB,EAAsDD,CAAtD;UACA,OAAOP,GAAG,CAACS,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAC,gCAAA,GAArB,CAAP;QACD,CAbC,CAeF;;;QACAZ,GAAG,CAACG,QAAJ,GAAeA,QAAf,CAhBE,CAiBF;;QACAH,GAAG,CAACa,YAAJ,GAAmB,KAAnB;QAEA,OAAOX,IAAI,EAAX;MACD,CArBD,CAqBE,OAAOM,CAAP,EAAe;QACf,KAAKT,MAAL,CAAYU,KAAZ,CAAkB,wBAAlB,EAA4CD,CAA5C;QACA,OAAOP,GAAG,CAACS,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAG,kCAAA,GAArB,CAAP;MACD;IACF,CA3BW,EA4BZ,IAAAC,mDAAA,EAA0B,KAAKhB,MAA/B,EAAuCR,eAAvC,CA5BY,CAVZ;EAAE;;AAP4D"}
@@ -1 +1 @@
1
- {"version":3,"sources":["click-inside-an-iframe.ts"],"names":["ClickInsideAnIframeEventData","constructor","clickEvent","ClickInsideAnIframeEvent","BitBaseEvent","timestamp","Date","now","TYPE"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AADA;AAGA,MAAMA,4BAAN,CAAmC;AACjCC,EAAAA,WAAW,CAASC,UAAT,EAA0B;AAAA,SAAjBA,UAAiB,GAAjBA,UAAiB;AAAE;;AADN;;AAI5B,MAAMC,wBAAN,SAAuCC,sBAAvC,CAAkF;AAGvFH,EAAAA,WAAW,CAAUI,SAAS,GAAGC,IAAI,CAACC,GAAL,EAAtB,EAA2CL,UAA3C,EAAuD;AAChE,UAAMC,wBAAwB,CAACK,IAA/B,EAAqC,OAArC,EAA8CH,SAA9C,EAAyD,IAAIL,4BAAJ,CAAiCE,UAAjC,CAAzD;AADgE,SAA7CG,SAA6C,GAA7CA,SAA6C;AAAA,SAAZH,UAAY,GAAZA,UAAY;AAEjE;;AALsF;;;gCAA5EC,wB,UACY,wB","sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { BitBaseEvent } from '@teambit/pubsub';\n\nclass ClickInsideAnIframeEventData {\n constructor(private clickEvent: any) {}\n}\n\nexport class ClickInsideAnIframeEvent extends BitBaseEvent<ClickInsideAnIframeEventData> {\n static readonly TYPE = 'click-inside-an-iframe';\n\n constructor(readonly timestamp = Date.now(), readonly clickEvent) {\n super(ClickInsideAnIframeEvent.TYPE, '0.0.1', timestamp, new ClickInsideAnIframeEventData(clickEvent));\n }\n}\n"]}
1
+ {"version":3,"names":["ClickInsideAnIframeEventData","constructor","clickEvent","ClickInsideAnIframeEvent","BitBaseEvent","timestamp","Date","now","TYPE"],"sources":["click-inside-an-iframe.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { BitBaseEvent } from '@teambit/pubsub';\n\nclass ClickInsideAnIframeEventData {\n constructor(private clickEvent: any) {}\n}\n\nexport class ClickInsideAnIframeEvent extends BitBaseEvent<ClickInsideAnIframeEventData> {\n static readonly TYPE = 'click-inside-an-iframe';\n\n constructor(readonly timestamp = Date.now(), readonly clickEvent) {\n super(ClickInsideAnIframeEvent.TYPE, '0.0.1', timestamp, new ClickInsideAnIframeEventData(clickEvent));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AADA;AAGA,MAAMA,4BAAN,CAAmC;EACjCC,WAAW,CAASC,UAAT,EAA0B;IAAA,KAAjBA,UAAiB,GAAjBA,UAAiB;EAAE;;AADN;;AAI5B,MAAMC,wBAAN,SAAuCC,sBAAvC,CAAkF;EAGvFH,WAAW,CAAUI,SAAS,GAAGC,IAAI,CAACC,GAAL,EAAtB,EAA2CL,UAA3C,EAAuD;IAChE,MAAMC,wBAAwB,CAACK,IAA/B,EAAqC,OAArC,EAA8CH,SAA9C,EAAyD,IAAIL,4BAAJ,CAAiCE,UAAjC,CAAzD;IADgE,KAA7CG,SAA6C,GAA7CA,SAA6C;IAAA,KAAZH,UAAY,GAAZA,UAAY;EAEjE;;AALsF;;;gCAA5EC,wB,UACY,wB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './click-inside-an-iframe';\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './click-inside-an-iframe';\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["bundling-strategy-not-found.ts"],"names":["BundlingStrategyNotFound","Error","constructor","strategyName"],"mappings":";;;;;;;AAAO,MAAMA,wBAAN,SAAuCC,KAAvC,CAA6C;AAClDC,EAAAA,WAAW,CAASC,YAAT,EAA+B;AACxC,UAAO,+BAA8BA,YAAa,gBAAlD;AADwC,SAAtBA,YAAsB,GAAtBA,YAAsB;AAEzC;;AAHiD","sourcesContent":["export class BundlingStrategyNotFound extends Error {\n constructor(private strategyName: string) {\n super(`bundling strategy with name ${strategyName} was not found`);\n }\n}\n"]}
1
+ {"version":3,"names":["BundlingStrategyNotFound","Error","constructor","strategyName"],"sources":["bundling-strategy-not-found.ts"],"sourcesContent":["export class BundlingStrategyNotFound extends Error {\n constructor(private strategyName: string) {\n super(`bundling strategy with name ${strategyName} was not found`);\n }\n}\n"],"mappings":";;;;;;;AAAO,MAAMA,wBAAN,SAAuCC,KAAvC,CAA6C;EAClDC,WAAW,CAASC,YAAT,EAA+B;IACxC,MAAO,+BAA8BA,YAAa,gBAAlD;IADwC,KAAtBA,YAAsB,GAAtBA,YAAsB;EAEzC;;AAHiD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { PreviewNotFound } from './preview-not-found';\nexport { PreviewArtifactNotFound } from './preview-artifact-not-found';\nexport { BundlingStrategyNotFound } from './bundling-strategy-not-found';\nexport { PreviewOutputFileNotFound } from './preview-output-file-not-found';\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { PreviewNotFound } from './preview-not-found';\nexport { PreviewArtifactNotFound } from './preview-artifact-not-found';\nexport { BundlingStrategyNotFound } from './bundling-strategy-not-found';\nexport { PreviewOutputFileNotFound } from './preview-output-file-not-found';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview-artifact-not-found.ts"],"names":["PreviewArtifactNotFound","BitError","constructor","componentId","toString"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,uBAAN,SAAsCC,oBAAtC,CAA+C;AACpDC,EAAAA,WAAW,CAACC,WAAD,EAA2B;AACpC,UAAO,yBAAwBA,WAAW,CAACC,QAAZ,EAAuB,gBAAtD;AACD;;AAHmD","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { ComponentID } from '@teambit/component';\n\nexport class PreviewArtifactNotFound extends BitError {\n constructor(componentId: ComponentID) {\n super(`preview for component ${componentId.toString()} was not found`);\n }\n}\n"]}
1
+ {"version":3,"names":["PreviewArtifactNotFound","BitError","constructor","componentId","toString"],"sources":["preview-artifact-not-found.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { ComponentID } from '@teambit/component';\n\nexport class PreviewArtifactNotFound extends BitError {\n constructor(componentId: ComponentID) {\n super(`preview for component ${componentId.toString()} was not found`);\n }\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,uBAAN,SAAsCC,oBAAtC,CAA+C;EACpDC,WAAW,CAACC,WAAD,EAA2B;IACpC,MAAO,yBAAwBA,WAAW,CAACC,QAAZ,EAAuB,gBAAtD;EACD;;AAHmD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview-not-found.ts"],"names":["PreviewNotFound","Error","constructor","name"],"mappings":";;;;;;;AAAO,MAAMA,eAAN,SAA8BC,KAA9B,CAAoC;AACzCC,EAAAA,WAAW,CAACC,IAAD,EAAsB;AAC/B,UAAO,qBAAoBA,IAAK,gBAAhC;AACD;;AAHwC","sourcesContent":["export class PreviewNotFound extends Error {\n constructor(name: string | null) {\n super(`Preview for name: ${name} was not found`);\n }\n}\n"]}
1
+ {"version":3,"names":["PreviewNotFound","Error","constructor","name"],"sources":["preview-not-found.ts"],"sourcesContent":["export class PreviewNotFound extends Error {\n constructor(name: string | null) {\n super(`Preview for name: ${name} was not found`);\n }\n}\n"],"mappings":";;;;;;;AAAO,MAAMA,eAAN,SAA8BC,KAA9B,CAAoC;EACzCC,WAAW,CAACC,IAAD,EAAsB;IAC/B,MAAO,qBAAoBA,IAAK,gBAAhC;EACD;;AAHwC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview-output-file-not-found.ts"],"names":["PreviewOutputFileNotFound","BitError","constructor","componentId","filePath","toString"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,yBAAN,SAAwCC,oBAAxC,CAAiD;AACtDC,EAAAA,WAAW,CAACC,WAAD,EAA2BC,QAA3B,EAA6C;AACtD,UAAO,uCAAsCD,WAAW,CAACE,QAAZ,EAAuB,iCAAgCD,QAAS;AACjH;AACA;AACA;AACA;AACA,8DALI;AAMD;;AARqD","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { ComponentID } from '@teambit/component';\n\nexport class PreviewOutputFileNotFound extends BitError {\n constructor(componentId: ComponentID, filePath: string) {\n super(`preview output file for component: \"${componentId.toString()}\" was not found in the path: \"${filePath}\".\n\nThis is usually a result of an error during the bundling process.\nThe error might be an error of another component that uses the same env.\nRun \"bit build\" with \"--dev\" to see more info.\nRun \"bit envs\" to see other components that uses the same env`);\n }\n}\n"]}
1
+ {"version":3,"names":["PreviewOutputFileNotFound","BitError","constructor","componentId","filePath","toString"],"sources":["preview-output-file-not-found.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { ComponentID } from '@teambit/component';\n\nexport class PreviewOutputFileNotFound extends BitError {\n constructor(componentId: ComponentID, filePath: string) {\n super(`preview output file for component: \"${componentId.toString()}\" was not found in the path: \"${filePath}\".\n\nThis is usually a result of an error during the bundling process.\nThe error might be an error of another component that uses the same env.\nRun \"bit build\" with \"--dev\" to see more info.\nRun \"bit envs\" to see other components that uses the same env`);\n }\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,yBAAN,SAAwCC,oBAAxC,CAAiD;EACtDC,WAAW,CAACC,WAAD,EAA2BC,QAA3B,EAA6C;IACtD,MAAO,uCAAsCD,WAAW,CAACE,QAAZ,EAAuB,iCAAgCD,QAAS;AACjH;AACA;AACA;AACA;AACA,8DALI;EAMD;;AARqD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["execution-ref.ts"],"names":["ExecutionRef","constructor","executionCtx","currentComponents","components","add","added","concat","remove","removed","filter","c","id","toString","update","next","map","equals","get","find","x","isEqual"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA;AACO,MAAMA,YAAN,CAAmB;AACxBC,EAAAA,WAAW,CAAQC,YAAR,EAAwC;AAAA,SAAhCA,YAAgC,GAAhCA,YAAgC;AAAA;AACjD,SAAKC,iBAAL,GAAyBD,YAAY,CAACE,UAAtC;AACD;;AAIDC,EAAAA,GAAG,CAACC,KAAD,EAAmB;AACpB,SAAKH,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBI,MAAvB,CAA8BD,KAA9B,CAAzB;AACD;;AACDE,EAAAA,MAAM,CAACC,OAAD,EAAuB;AAC3B,SAAKN,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBO,MAAvB,CAA+BC,CAAD,IAAOA,CAAC,CAACC,EAAF,CAAKC,QAAL,OAAoBJ,OAAO,CAACI,QAAR,EAAzD,CAAzB;AACD;;AACDC,EAAAA,MAAM,CAACC,IAAD,EAAkB;AACtB,SAAKZ,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBa,GAAvB,CAA4BL,CAAD,IAAQA,CAAC,CAACM,MAAF,CAASF,IAAT,IAAiBA,IAAjB,GAAwBJ,CAA3D,CAAzB;AACD;;AAEDO,EAAAA,GAAG,CAACN,EAAD,EAAkB;AACnB,WAAO,KAAKT,iBAAL,CAAuBgB,IAAvB,CAA6BC,CAAD,IAAOA,CAAC,CAACR,EAAF,CAAKS,OAAL,CAAaT,EAAb,CAAnC,CAAP;AACD;;AAnBuB","sourcesContent":["import { Component, ComponentID } from '@teambit/component';\nimport type { ExecutionContext } from '@teambit/envs';\n\n// TODO - use workspace.list() instead of this\nexport class ExecutionRef {\n constructor(public executionCtx: ExecutionContext) {\n this.currentComponents = executionCtx.components;\n }\n\n currentComponents: Component[];\n\n add(added: Component) {\n this.currentComponents = this.currentComponents.concat(added);\n }\n remove(removed: ComponentID) {\n this.currentComponents = this.currentComponents.filter((c) => c.id.toString() !== removed.toString());\n }\n update(next: Component) {\n this.currentComponents = this.currentComponents.map((c) => (c.equals(next) ? next : c));\n }\n\n get(id: ComponentID) {\n return this.currentComponents.find((x) => x.id.isEqual(id));\n }\n}\n"]}
1
+ {"version":3,"names":["ExecutionRef","constructor","executionCtx","currentComponents","components","add","added","concat","remove","removed","filter","c","id","toString","update","next","map","equals","get","find","x","isEqual"],"sources":["execution-ref.ts"],"sourcesContent":["import { Component, ComponentID } from '@teambit/component';\nimport type { ExecutionContext } from '@teambit/envs';\n\n// TODO - use workspace.list() instead of this\nexport class ExecutionRef {\n constructor(public executionCtx: ExecutionContext) {\n this.currentComponents = executionCtx.components;\n }\n\n currentComponents: Component[];\n\n add(added: Component) {\n this.currentComponents = this.currentComponents.concat(added);\n }\n remove(removed: ComponentID) {\n this.currentComponents = this.currentComponents.filter((c) => c.id.toString() !== removed.toString());\n }\n update(next: Component) {\n this.currentComponents = this.currentComponents.map((c) => (c.equals(next) ? next : c));\n }\n\n get(id: ComponentID) {\n return this.currentComponents.find((x) => x.id.isEqual(id));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA;AACO,MAAMA,YAAN,CAAmB;EACxBC,WAAW,CAAQC,YAAR,EAAwC;IAAA,KAAhCA,YAAgC,GAAhCA,YAAgC;IAAA;IACjD,KAAKC,iBAAL,GAAyBD,YAAY,CAACE,UAAtC;EACD;;EAIDC,GAAG,CAACC,KAAD,EAAmB;IACpB,KAAKH,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBI,MAAvB,CAA8BD,KAA9B,CAAzB;EACD;;EACDE,MAAM,CAACC,OAAD,EAAuB;IAC3B,KAAKN,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBO,MAAvB,CAA+BC,CAAD,IAAOA,CAAC,CAACC,EAAF,CAAKC,QAAL,OAAoBJ,OAAO,CAACI,QAAR,EAAzD,CAAzB;EACD;;EACDC,MAAM,CAACC,IAAD,EAAkB;IACtB,KAAKZ,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBa,GAAvB,CAA4BL,CAAD,IAAQA,CAAC,CAACM,MAAF,CAASF,IAAT,IAAiBA,IAAjB,GAAwBJ,CAA3D,CAAzB;EACD;;EAEDO,GAAG,CAACN,EAAD,EAAkB;IACnB,OAAO,KAAKT,iBAAL,CAAuBgB,IAAvB,CAA6BC,CAAD,IAAOA,CAAC,CAACR,EAAF,CAAKS,OAAL,CAAaT,EAAb,CAAnC,CAAP;EACD;;AAnBuB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["generate-link.ts"],"names":["generateLink","prefix","componentMap","mainModule","isSplitComponentBundle","require","resolve","toArray","map","modulePath","compIdx","path","pathIdx","moduleVarName","join","component","modulePaths","id","fullName","_","componentIdx","fileIdx"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AACO,SAASA,YAAT,CACLC,MADK,EAELC,YAFK,EAGLC,UAHK,EAILC,sBAAsB,GAAG,KAJpB,EAKG;AACR,SAAQ;AACV,+BAA+B,4CAAwBC,OAAO,CAACC,OAAR,CAAgB,2BAAhB,CAAxB,CAAsE;AACrG,uBAAuB,4CAAwBD,OAAO,CAACC,OAAR,CAAgB,kBAAhB,CAAxB,CAA6D;AACpF,EAAEH,UAAU,GAAI,gCAA+B,4CAAwBA,UAAxB,CAAoC,IAAvE,GAA6E,wBAAyB;AAClH;AACA,EACE;AACAD,EAAAA,YAAY,CACTK,OADH,GAEGC,GAFH,CAEO,CAAC,GAAGC,UAAH,CAAD,EAAiBC,OAAjB,KACHD,UAAU,CACPD,GADH,CAEI,CAACG,IAAD,EAAOC,OAAP,KAAoB,eAAcC,aAAa,CAACH,OAAD,EAAUE,OAAV,CAAmB,UAAS,4CAAwBD,IAAxB,CAA8B,GAF7G,EAIGG,IAJH,CAIQ,IAJR,CAHJ,EASGA,IATH,CASQ,IATR,CAUD;AACD;AACA,eAAeb,MAAO;AACtB;AACA,4BAA4BG,sBAAuB;AACnD;AACA,EACE;AACAF,EAAAA,YAAY,CACTK,OADH,GAEGC,GAFH,CAEO,CAAC,CAACO,SAAD,EAAYC,WAAZ,CAAD,EAA2BN,OAA3B,KAAuC;AAC1C,WAAQ,QAAOK,SAAS,CAACE,EAAV,CAAaC,QAAS,OAAMF,WAAW,CACnDR,GADwC,CACpC,CAACW,CAAD,EAAIP,OAAJ,KAAgBC,aAAa,CAACH,OAAD,EAAUE,OAAV,CADO,EAExCE,IAFwC,CAEnC,IAFmC,CAE7B,GAFd;AAGD,GANH,EAOGA,IAPH,CAOQ,KAPR,CAQD;AACD;AACA;AACA,CApCE;AAqCD;;AAED,SAASD,aAAT,CAAuBO,YAAvB,EAA6CC,OAA7C,EAA8D;AAC5D,SAAQ,QAAOD,YAAa,IAAGC,OAAQ,EAAvC;AACD","sourcesContent":["import { toWindowsCompatiblePath } from '@teambit/toolbox.path.to-windows-compatible-path';\nimport type { ComponentMap } from '@teambit/component';\n\n// :TODO refactor to building an AST and generate source code based on it.\nexport function generateLink(\n prefix: string,\n componentMap: ComponentMap<string[]>,\n mainModule?: string,\n isSplitComponentBundle = false\n): string {\n return `\nimport { linkModules } from '${toWindowsCompatiblePath(require.resolve('./preview.preview.runtime'))}';\nimport harmony from '${toWindowsCompatiblePath(require.resolve('@teambit/harmony'))}';\n${mainModule ? `import * as mainModule from '${toWindowsCompatiblePath(mainModule)}';` : 'const mainModule = {};'}\n\n${\n // generate imports:\n componentMap\n .toArray()\n .map(([, modulePath], compIdx) =>\n modulePath\n .map(\n (path, pathIdx) => `import * as ${moduleVarName(compIdx, pathIdx)} from '${toWindowsCompatiblePath(path)}'`\n )\n .join('\\n')\n )\n .join('\\n')\n}\n\nlinkModules('${prefix}', {\n mainModule,\n isSplitComponentBundle: ${isSplitComponentBundle},\n componentMap: {\n${\n // use imports:\n componentMap\n .toArray()\n .map(([component, modulePaths], compIdx) => {\n return ` '${component.id.fullName}': [${modulePaths\n .map((_, pathIdx) => moduleVarName(compIdx, pathIdx))\n .join(', ')}]`;\n })\n .join(',\\n')\n}\n }\n});\n`;\n}\n\nfunction moduleVarName(componentIdx: number, fileIdx: number) {\n return `file_${componentIdx}_${fileIdx}`;\n}\n"]}
1
+ {"version":3,"names":["generateLink","prefix","componentMap","mainModule","isSplitComponentBundle","toWindowsCompatiblePath","require","resolve","toArray","map","modulePath","compIdx","path","pathIdx","moduleVarName","join","component","modulePaths","id","fullName","_","componentIdx","fileIdx"],"sources":["generate-link.ts"],"sourcesContent":["import { toWindowsCompatiblePath } from '@teambit/toolbox.path.to-windows-compatible-path';\nimport type { ComponentMap } from '@teambit/component';\n\n// :TODO refactor to building an AST and generate source code based on it.\nexport function generateLink(\n prefix: string,\n componentMap: ComponentMap<string[]>,\n mainModule?: string,\n isSplitComponentBundle = false\n): string {\n return `\nimport { linkModules } from '${toWindowsCompatiblePath(require.resolve('./preview.preview.runtime'))}';\nimport harmony from '${toWindowsCompatiblePath(require.resolve('@teambit/harmony'))}';\n${mainModule ? `import * as mainModule from '${toWindowsCompatiblePath(mainModule)}';` : 'const mainModule = {};'}\n\n${\n // generate imports:\n componentMap\n .toArray()\n .map(([, modulePath], compIdx) =>\n modulePath\n .map(\n (path, pathIdx) => `import * as ${moduleVarName(compIdx, pathIdx)} from '${toWindowsCompatiblePath(path)}'`\n )\n .join('\\n')\n )\n .join('\\n')\n}\n\nlinkModules('${prefix}', {\n mainModule,\n isSplitComponentBundle: ${isSplitComponentBundle},\n componentMap: {\n${\n // use imports:\n componentMap\n .toArray()\n .map(([component, modulePaths], compIdx) => {\n return ` '${component.id.fullName}': [${modulePaths\n .map((_, pathIdx) => moduleVarName(compIdx, pathIdx))\n .join(', ')}]`;\n })\n .join(',\\n')\n}\n }\n});\n`;\n}\n\nfunction moduleVarName(componentIdx: number, fileIdx: number) {\n return `file_${componentIdx}_${fileIdx}`;\n}\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;AACO,SAASA,YAAT,CACLC,MADK,EAELC,YAFK,EAGLC,UAHK,EAILC,sBAAsB,GAAG,KAJpB,EAKG;EACR,OAAQ;AACV,+BAA+B,IAAAC,sCAAA,EAAwBC,OAAO,CAACC,OAAR,CAAgB,2BAAhB,CAAxB,CAAsE;AACrG,uBAAuB,IAAAF,sCAAA,EAAwBC,OAAO,CAACC,OAAR,CAAgB,kBAAhB,CAAxB,CAA6D;AACpF,EAAEJ,UAAU,GAAI,gCAA+B,IAAAE,sCAAA,EAAwBF,UAAxB,CAAoC,IAAvE,GAA6E,wBAAyB;AAClH;AACA,EACE;EACAD,YAAY,CACTM,OADH,GAEGC,GAFH,CAEO,CAAC,GAAGC,UAAH,CAAD,EAAiBC,OAAjB,KACHD,UAAU,CACPD,GADH,CAEI,CAACG,IAAD,EAAOC,OAAP,KAAoB,eAAcC,aAAa,CAACH,OAAD,EAAUE,OAAV,CAAmB,UAAS,IAAAR,sCAAA,EAAwBO,IAAxB,CAA8B,GAF7G,EAIGG,IAJH,CAIQ,IAJR,CAHJ,EASGA,IATH,CASQ,IATR,CAUD;AACD;AACA,eAAed,MAAO;AACtB;AACA,4BAA4BG,sBAAuB;AACnD;AACA,EACE;EACAF,YAAY,CACTM,OADH,GAEGC,GAFH,CAEO,CAAC,CAACO,SAAD,EAAYC,WAAZ,CAAD,EAA2BN,OAA3B,KAAuC;IAC1C,OAAQ,QAAOK,SAAS,CAACE,EAAV,CAAaC,QAAS,OAAMF,WAAW,CACnDR,GADwC,CACpC,CAACW,CAAD,EAAIP,OAAJ,KAAgBC,aAAa,CAACH,OAAD,EAAUE,OAAV,CADO,EAExCE,IAFwC,CAEnC,IAFmC,CAE7B,GAFd;EAGD,CANH,EAOGA,IAPH,CAOQ,KAPR,CAQD;AACD;AACA;AACA,CApCE;AAqCD;;AAED,SAASD,aAAT,CAAuBO,YAAvB,EAA6CC,OAA7C,EAA8D;EAC5D,OAAQ,QAAOD,YAAa,IAAGC,OAAQ,EAAvC;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["fetch-component-aspects.tsx"],"names":["GQL_SERVER","GET_COMPONENT_ASPECTS","fetchComponentAspects","componentId","response","id","toString","getHost","get","aspects","map","x","err","console","error","undefined"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA,MAAMA,UAAU,GAAG,UAAnB;AACA,MAAMC,qBAAqB,GAAG,0BAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAXA;;AAqBO,eAAeC,qBAAf,CAAqCC,WAArC,EAA0D;AAC/D,MAAI;AACF,UAAMC,QAAQ,GAAG,MAAM,+BAAqBJ,UAArB,EAAiCC,qBAAjC,EAAwD;AAAEI,MAAAA,EAAE,EAAEF,WAAW,CAACG,QAAZ;AAAN,KAAxD,CAAvB;AACA,WAAOF,QAAQ,CAACG,OAAT,CAAiBC,GAAjB,CAAqBC,OAArB,CAA6BC,GAA7B,CAAkCC,CAAD,IAAOA,CAAC,CAACN,EAA1C,CAAP;AACD,GAHD,CAGE,OAAOO,GAAP,EAAiB;AACjB;AACAC,IAAAA,OAAO,CAACC,KAAR,CAAe,2CAA0CF,GAAG,CAACN,QAAJ,EAAe,GAAxE;AACA,WAAOS,SAAP;AACD;AACF","sourcesContent":["import { request, gql } from 'graphql-request';\n\nconst GQL_SERVER = '/graphql';\nconst GET_COMPONENT_ASPECTS = gql`\n query getComponentAspects($id: String!) {\n getHost {\n id\n get(id: $id) {\n aspects {\n id\n }\n }\n }\n }\n`;\ntype QueryResult = {\n getHost: {\n id: string;\n get: {\n aspects: { id: string }[];\n };\n };\n};\n\nexport async function fetchComponentAspects(componentId: string) {\n try {\n const response = await request<QueryResult>(GQL_SERVER, GET_COMPONENT_ASPECTS, { id: componentId.toString() });\n return response.getHost.get.aspects.map((x) => x.id);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.error(`[gql] error on \"getComponentAspects\" - \"${err.toString()}\"`);\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"names":["GQL_SERVER","GET_COMPONENT_ASPECTS","gql","fetchComponentAspects","componentId","response","request","id","toString","getHost","get","aspects","map","x","err","console","error","undefined"],"sources":["fetch-component-aspects.tsx"],"sourcesContent":["import { request, gql } from 'graphql-request';\n\nconst GQL_SERVER = '/graphql';\nconst GET_COMPONENT_ASPECTS = gql`\n query getComponentAspects($id: String!) {\n getHost {\n id\n get(id: $id) {\n aspects {\n id\n }\n }\n }\n }\n`;\ntype QueryResult = {\n getHost: {\n id: string;\n get: {\n aspects: { id: string }[];\n };\n };\n};\n\nexport async function fetchComponentAspects(componentId: string) {\n try {\n const response = await request<QueryResult>(GQL_SERVER, GET_COMPONENT_ASPECTS, { id: componentId.toString() });\n return response.getHost.get.aspects.map((x) => x.id);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.error(`[gql] error on \"getComponentAspects\" - \"${err.toString()}\"`);\n return undefined;\n }\n}\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA,MAAMA,UAAU,GAAG,UAAnB;AACA,MAAMC,qBAAqB,GAAG,IAAAC,qBAAA,CAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAXA;;AAqBO,eAAeC,qBAAf,CAAqCC,WAArC,EAA0D;EAC/D,IAAI;IACF,MAAMC,QAAQ,GAAG,MAAM,IAAAC,yBAAA,EAAqBN,UAArB,EAAiCC,qBAAjC,EAAwD;MAAEM,EAAE,EAAEH,WAAW,CAACI,QAAZ;IAAN,CAAxD,CAAvB;IACA,OAAOH,QAAQ,CAACI,OAAT,CAAiBC,GAAjB,CAAqBC,OAArB,CAA6BC,GAA7B,CAAkCC,CAAD,IAAOA,CAAC,CAACN,EAA1C,CAAP;EACD,CAHD,CAGE,OAAOO,GAAP,EAAiB;IACjB;IACAC,OAAO,CAACC,KAAR,CAAe,2CAA0CF,GAAG,CAACN,QAAJ,EAAe,GAAxE;IACA,OAAOS,SAAP;EACD;AACF"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { PreviewAspect as default, PreviewAspect, PreviewRuntime } from './preview.aspect';\n\nexport * from './events';\nexport type { PreviewMain, EnvPreviewConfig, ComponentPreviewSize } from './preview.main.runtime';\nexport type { PreviewPreview, RenderingContextOptions, RenderingContextProvider } from './preview.preview.runtime';\nexport { PreviewDefinition } from './preview-definition';\nexport type { PreviewModule, ModuleFile } from './types/preview-module';\nexport type { RenderingContext } from './rendering-context';\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { PreviewAspect as default, PreviewAspect, PreviewRuntime } from './preview.aspect';\n\nexport * from './events';\nexport type { PreviewMain, EnvPreviewConfig, ComponentPreviewSize } from './preview.main.runtime';\nexport type { PreviewPreview, RenderingContextOptions, RenderingContextProvider } from './preview.preview.runtime';\nexport { PreviewDefinition } from './preview-definition';\nexport type { PreviewModule, ModuleFile } from './types/preview-module';\nexport type { RenderingContext } from './rendering-context';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["mk-temp-dir.ts"],"names":["makeTempDir","prefix","sep"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,SAASA,WAAT,CAAqBC,MAAM,GAAG,EAA9B,EAAkC;AACvC,SAAO,4BAAa,GAAE,mBAAS,GAAEC,WAAI,GAAED,MAAO,EAAvC,CAAP;AACD","sourcesContent":["import { mkdtempSync } from 'fs-extra';\nimport { tmpdir } from 'os';\nimport { sep } from 'path';\n\nexport function makeTempDir(prefix = '') {\n return mkdtempSync(`${tmpdir()}${sep}${prefix}`);\n}\n"]}
1
+ {"version":3,"names":["makeTempDir","prefix","mkdtempSync","tmpdir","sep"],"sources":["mk-temp-dir.ts"],"sourcesContent":["import { mkdtempSync } from 'fs-extra';\nimport { tmpdir } from 'os';\nimport { sep } from 'path';\n\nexport function makeTempDir(prefix = '') {\n return mkdtempSync(`${tmpdir()}${sep}${prefix}`);\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,SAASA,WAAT,CAAqBC,MAAM,GAAG,EAA9B,EAAkC;EACvC,OAAO,IAAAC,sBAAA,EAAa,GAAE,IAAAC,YAAA,GAAS,GAAEC,WAAI,GAAEH,MAAO,EAAvC,CAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview-artifact.ts"],"names":["PreviewArtifact","constructor","artifacts","getPaths","map","artifact","relative","getFile","path","find","file","getFileEndsWith","endsWith"],"mappings":";;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,eAAN,CAAsB;AAC3BC,EAAAA,WAAW,CAASC,SAAT,EAAqC;AAAA,SAA5BA,SAA4B,GAA5BA,SAA4B;AAAE;;AAElDC,EAAAA,QAAQ,GAAG;AACT;AACA,WAAO,oBAAK,KAAKD,SAAL,CAAeE,GAAf,CAAoBC,QAAD,IAAcA,QAAQ,CAACC,QAA1C,CAAL,CAAP;AACD;;AAEDC,EAAAA,OAAO,CAACC,IAAD,EAAe;AACpB,WAAO,KAAKN,SAAL,CAAeO,IAAf,CAAqBC,IAAD,IAAU;AACnC,aAAO,mCAAqBA,IAAI,CAACJ,QAA1B,MAAwCE,IAA/C;AACD,KAFM,CAAP;AAGD;;AAEDG,EAAAA,eAAe,CAACH,IAAD,EAAe;AAC5B,WAAO,KAAKN,SAAL,CAAeO,IAAf,CAAqBC,IAAD,IAAU;AACnC,aAAO,mCAAqBA,IAAI,CAACJ,QAA1B,EAAoCM,QAApC,CAA6CJ,IAA7C,CAAP;AACD,KAFM,CAAP;AAGD;;AAlB0B","sourcesContent":["import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { uniq } from 'lodash';\n\nexport class PreviewArtifact {\n constructor(private artifacts: AbstractVinyl[]) {}\n\n getPaths() {\n // TODO: check why the artifacts stored twice, then remove this uniq here\n return uniq(this.artifacts.map((artifact) => artifact.relative));\n }\n\n getFile(path: string) {\n return this.artifacts.find((file) => {\n return pathNormalizeToLinux(file.relative) === path;\n });\n }\n\n getFileEndsWith(path: string) {\n return this.artifacts.find((file) => {\n return pathNormalizeToLinux(file.relative).endsWith(path);\n });\n }\n}\n"]}
1
+ {"version":3,"names":["PreviewArtifact","constructor","artifacts","getPaths","uniq","map","artifact","relative","getFile","path","find","file","pathNormalizeToLinux","getFileEndsWith","endsWith"],"sources":["preview-artifact.ts"],"sourcesContent":["import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { uniq } from 'lodash';\n\nexport class PreviewArtifact {\n constructor(private artifacts: AbstractVinyl[]) {}\n\n getPaths() {\n // TODO: check why the artifacts stored twice, then remove this uniq here\n return uniq(this.artifacts.map((artifact) => artifact.relative));\n }\n\n getFile(path: string) {\n return this.artifacts.find((file) => {\n return pathNormalizeToLinux(file.relative) === path;\n });\n }\n\n getFileEndsWith(path: string) {\n return this.artifacts.find((file) => {\n return pathNormalizeToLinux(file.relative).endsWith(path);\n });\n }\n}\n"],"mappings":";;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,eAAN,CAAsB;EAC3BC,WAAW,CAASC,SAAT,EAAqC;IAAA,KAA5BA,SAA4B,GAA5BA,SAA4B;EAAE;;EAElDC,QAAQ,GAAG;IACT;IACA,OAAO,IAAAC,cAAA,EAAK,KAAKF,SAAL,CAAeG,GAAf,CAAoBC,QAAD,IAAcA,QAAQ,CAACC,QAA1C,CAAL,CAAP;EACD;;EAEDC,OAAO,CAACC,IAAD,EAAe;IACpB,OAAO,KAAKP,SAAL,CAAeQ,IAAf,CAAqBC,IAAD,IAAU;MACnC,OAAO,IAAAC,6BAAA,EAAqBD,IAAI,CAACJ,QAA1B,MAAwCE,IAA/C;IACD,CAFM,CAAP;EAGD;;EAEDI,eAAe,CAACJ,IAAD,EAAe;IAC5B,OAAO,KAAKP,SAAL,CAAeQ,IAAf,CAAqBC,IAAD,IAAU;MACnC,OAAO,IAAAC,6BAAA,EAAqBD,IAAI,CAACJ,QAA1B,EAAoCO,QAApC,CAA6CL,IAA7C,CAAP;IACD,CAFM,CAAP;EAGD;;AAlB0B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview-assets.route.ts"],"names":["PreviewAssetsRoute","constructor","preview","logger","req","res","component","status","jsonp","error","result","getPreviewFiles","json","e","send"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKO,MAAMA,kBAAN,CAA0C;AAC/CC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,OAJC,EAKDC,MALC,EAMT;AAAA,SAFQD,OAER,GAFQA,OAER;AAAA,SADQC,MACR,GADQA,MACR;AAAA,mDAEM,iBAFN;AAAA,oDAGO,KAHP;AAAA,yDAKY,CACZ,OAAOC,GAAP,EAAqBC,GAArB,KAAuC;AACrC,UAAI;AACF;AACA,cAAMC,SAAS,GAAGF,GAAG,CAACE,SAAtB,CAFE,CAGF;;AACA,YAAI,CAACA,SAAL,EAAgB,OAAOD,GAAG,CAACE,MAAJ,CAAW,GAAX,EAAgBC,KAAhB,CAAsB;AAAEC,UAAAA,KAAK,EAAE;AAAT,SAAtB,CAAP;AAChB,cAAMC,MAAM,GAAG,MAAM,KAAKR,OAAL,CAAaS,eAAb,CAA6BL,SAA7B,CAArB;AACA,YAAI,CAACI,MAAL,EAAa,OAAOL,GAAG,CAACE,MAAJ,CAAW,GAAX,EAAgBC,KAAhB,CAAsB;AAAEC,UAAAA,KAAK,EAAE;AAAT,SAAtB,CAAP;AACb,eAAOJ,GAAG,CAACO,IAAJ,CAASF,MAAT,CAAP;AACD,OARD,CAQE,OAAOG,CAAP,EAAe;AACf,aAAKV,MAAL,CAAYM,KAAZ,CAAkB,+BAAlB,EAAmDI,CAAnD;AACA,eAAOR,GAAG,CAACE,MAAJ,CAAW,GAAX,EAAgBO,IAAhB,CAAqB,yCAArB,CAAP;AACD;AACF,KAdW,CALZ;AAAE;;AAP2C","sourcesContent":["import type { Request, Response, Route } from '@teambit/express';\nimport type { Component } from '@teambit/component';\nimport { serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\n\nimport { PreviewMain } from './preview.main.runtime';\n\nexport class PreviewAssetsRoute implements Route {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = '/preview-assets';\n method = 'get';\n\n middlewares = [\n async (req: Request, res: Response) => {\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 if (!component) return res.status(404).jsonp({ error: 'not found' });\n const result = await this.preview.getPreviewFiles(component);\n if (!result) return res.status(404).jsonp({ error: 'not found' });\n return res.json(result);\n } catch (e: any) {\n this.logger.error('failed getting preview assets', e);\n return res.status(500).send(serverError());\n }\n },\n ];\n}\n"]}
1
+ {"version":3,"names":["PreviewAssetsRoute","constructor","preview","logger","req","res","component","status","jsonp","error","result","getPreviewFiles","json","e","send","serverError"],"sources":["preview-assets.route.ts"],"sourcesContent":["import type { Request, Response, Route } from '@teambit/express';\nimport type { Component } from '@teambit/component';\nimport { serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport type { Logger } from '@teambit/logger';\n\nimport { PreviewMain } from './preview.main.runtime';\n\nexport class PreviewAssetsRoute implements Route {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewMain,\n private logger: Logger\n ) {}\n\n route = '/preview-assets';\n method = 'get';\n\n middlewares = [\n async (req: Request, res: Response) => {\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 if (!component) return res.status(404).jsonp({ error: 'not found' });\n const result = await this.preview.getPreviewFiles(component);\n if (!result) return res.status(404).jsonp({ error: 'not found' });\n return res.json(result);\n } catch (e: any) {\n this.logger.error('failed getting preview assets', e);\n return res.status(500).send(serverError());\n }\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKO,MAAMA,kBAAN,CAA0C;EAC/CC,WAAW;EACT;AACJ;AACA;EACYC,OAJC,EAKDC,MALC,EAMT;IAAA,KAFQD,OAER,GAFQA,OAER;IAAA,KADQC,MACR,GADQA,MACR;IAAA,+CAEM,iBAFN;IAAA,gDAGO,KAHP;IAAA,qDAKY,CACZ,OAAOC,GAAP,EAAqBC,GAArB,KAAuC;MACrC,IAAI;QACF;QACA,MAAMC,SAAS,GAAGF,GAAG,CAACE,SAAtB,CAFE,CAGF;;QACA,IAAI,CAACA,SAAL,EAAgB,OAAOD,GAAG,CAACE,MAAJ,CAAW,GAAX,EAAgBC,KAAhB,CAAsB;UAAEC,KAAK,EAAE;QAAT,CAAtB,CAAP;QAChB,MAAMC,MAAM,GAAG,MAAM,KAAKR,OAAL,CAAaS,eAAb,CAA6BL,SAA7B,CAArB;QACA,IAAI,CAACI,MAAL,EAAa,OAAOL,GAAG,CAACE,MAAJ,CAAW,GAAX,EAAgBC,KAAhB,CAAsB;UAAEC,KAAK,EAAE;QAAT,CAAtB,CAAP;QACb,OAAOJ,GAAG,CAACO,IAAJ,CAASF,MAAT,CAAP;MACD,CARD,CAQE,OAAOG,CAAP,EAAe;QACf,KAAKV,MAAL,CAAYM,KAAZ,CAAkB,+BAAlB,EAAmDI,CAAnD;QACA,OAAOR,GAAG,CAACE,MAAJ,CAAW,GAAX,EAAgBO,IAAhB,CAAqB,IAAAC,kCAAA,GAArB,CAAP;MACD;IACF,CAdW,CALZ;EAAE;;AAP2C"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["preview-context.ts"],"sourcesContent":["import { BuildContext } from '@teambit/builder';\n\nexport interface PreviewContext extends BuildContext {\n entries: string[];\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["preview-definition.ts"],"sourcesContent":["import type { Component, ComponentMap } from '@teambit/component';\nimport type { Environment, ExecutionContext } from '@teambit/envs';\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\n\nexport interface PreviewDefinition {\n /**\n * extension preview prefix\n */\n prefix: string;\n\n /**\n * which other extension modules to include in the preview context.\n */\n include?: string[];\n\n /**\n * path of the default template to be executed.\n */\n renderTemplatePath?: (context: ExecutionContext) => Promise<string>;\n\n /**\n * get the template by env.\n * TODO: refactor `renderTemplatePath` to accept only an env and remove this method.\n */\n renderTemplatePathByEnv?: (env: Environment) => Promise<string>;\n\n /**\n * get all files to require in the preview runtime.\n */\n getModuleMap(components: Component[]): Promise<ComponentMap<AbstractVinyl[]>>;\n\n /**\n * Whether to include the peers chunk in the output html\n */\n includePeers?: boolean;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["preview-type.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { RenderingContext } from './rendering-context';\nimport { PreviewModule } from './types/preview-module';\n\nexport interface PreviewType {\n /**\n * preview name to register.\n */\n name: string;\n\n /**\n * preview render method.\n */\n render(\n componentId: ComponentID,\n linkedModules: PreviewModule<any>,\n includedPreviews: string[],\n renderingContext: RenderingContext\n ): void;\n\n /**\n * determine if this will be the default preview to render.\n */\n default?: boolean;\n\n /**\n * which other extension modules to include in the preview context.\n */\n include?: string[];\n\n /**\n * select relevant information to show in preview context\n */\n selectPreviewModel?: (componentId: string, module: PreviewModule) => any;\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview.aspect.ts"],"names":["PreviewRuntime","RuntimeDefinition","PreviewAspect","Aspect","create","id","dependencies","defaultConfig","declareRuntime"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,cAAc,GAAG,KAAIC,4BAAJ,EAAsB,SAAtB,CAAvB;;;AAEA,MAAMC,aAAa,GAAGC,kBAAOC,MAAP,CAAc;AACzCC,EAAAA,EAAE,EAAE,yBADqC;AAEzCC,EAAAA,YAAY,EAAE,EAF2B;AAGzCC,EAAAA,aAAa,EAAE,EAH0B;AAIzCC,EAAAA,cAAc,EAAER;AAJyB,CAAd,CAAtB;;;eAOQE,a","sourcesContent":["import { Aspect, RuntimeDefinition } from '@teambit/harmony';\n\nexport const PreviewRuntime = new RuntimeDefinition('preview');\n\nexport const PreviewAspect = Aspect.create({\n id: 'teambit.preview/preview',\n dependencies: [],\n defaultConfig: {},\n declareRuntime: PreviewRuntime,\n});\n\nexport default PreviewAspect;\n"]}
1
+ {"version":3,"names":["PreviewRuntime","RuntimeDefinition","PreviewAspect","Aspect","create","id","dependencies","defaultConfig","declareRuntime"],"sources":["preview.aspect.ts"],"sourcesContent":["import { Aspect, RuntimeDefinition } from '@teambit/harmony';\n\nexport const PreviewRuntime = new RuntimeDefinition('preview');\n\nexport const PreviewAspect = Aspect.create({\n id: 'teambit.preview/preview',\n dependencies: [],\n defaultConfig: {},\n declareRuntime: PreviewRuntime,\n});\n\nexport default PreviewAspect;\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,cAAc,GAAG,KAAIC,4BAAJ,EAAsB,SAAtB,CAAvB;;;AAEA,MAAMC,aAAa,GAAGC,iBAAA,CAAOC,MAAP,CAAc;EACzCC,EAAE,EAAE,yBADqC;EAEzCC,YAAY,EAAE,EAF2B;EAGzCC,aAAa,EAAE,EAH0B;EAIzCC,cAAc,EAAER;AAJyB,CAAd,CAAtB;;;eAOQE,a"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview.composition.tsx"],"names":["Logo","height","display","justifyContent","width"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,IAAI,GAAG,mBAClB;AAAK,EAAA,KAAK,EAAE;AAAEC,IAAAA,MAAM,EAAE,MAAV;AAAkBC,IAAAA,OAAO,EAAE,MAA3B;AAAmCC,IAAAA,cAAc,EAAE;AAAnD;AAAZ,gBACE;AAAK,EAAA,KAAK,EAAE;AAAEC,IAAAA,KAAK,EAAE;AAAT,GAAZ;AAA2B,EAAA,GAAG,EAAC;AAA/B,EADF,CADK","sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/preview.svg\" />\n </div>\n);\n"]}
1
+ {"version":3,"names":["Logo","height","display","justifyContent","width"],"sources":["preview.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/preview.svg\" />\n </div>\n);\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,IAAI,GAAG,mBAClB;EAAK,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAV;IAAkBC,OAAO,EAAE,MAA3B;IAAmCC,cAAc,EAAE;EAAnD;AAAZ,gBACE;EAAK,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAT,CAAZ;EAA2B,GAAG,EAAC;AAA/B,EADF,CADK"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview.graphql.ts"],"names":["previewSchema","previewExtension","typeDefs","resolvers","Component","preview","component","Preview","includesEnvTemplate","isBundledWithEnv"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIO,SAASA,aAAT,CAAuBC,gBAAvB,EAAsD;AAC3D,SAAO;AACLC,IAAAA,QAAQ,EAAE,0BAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAVS;AAWLC,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAE;AACTC,QAAAA,OAAO,EAAGC,SAAD,IAA0B;AACjC;AACA,iBAAO;AAAEA,YAAAA;AAAF,WAAP;AACD;AAJQ,OADF;AAOTC,MAAAA,OAAO,EAAE;AACPC,QAAAA,mBAAmB,EAAE,CAAC;AAAEF,UAAAA;AAAF,SAAD,KAAmB;AACtC,iBAAOL,gBAAgB,CAACQ,gBAAjB,CAAkCH,SAAlC,CAAP;AACD;AAHM;AAPA;AAXN,GAAP;AAyBD","sourcesContent":["import { Component } from '@teambit/component';\nimport gql from 'graphql-tag';\n\nimport { PreviewMain } from './preview.main.runtime';\n\nexport function previewSchema(previewExtension: PreviewMain) {\n return {\n typeDefs: gql`\n type Preview {\n # url: String!\n includesEnvTemplate: Boolean\n }\n\n extend type Component {\n preview: Preview\n }\n `,\n resolvers: {\n Component: {\n preview: (component: Component) => {\n // return previewExtension.getPreview(component);\n return { component };\n },\n },\n Preview: {\n includesEnvTemplate: ({ component }) => {\n return previewExtension.isBundledWithEnv(component);\n },\n },\n },\n };\n}\n"]}
1
+ {"version":3,"names":["previewSchema","previewExtension","typeDefs","gql","resolvers","Component","preview","component","Preview","includesEnvTemplate","isBundledWithEnv"],"sources":["preview.graphql.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport gql from 'graphql-tag';\n\nimport { PreviewMain } from './preview.main.runtime';\n\nexport function previewSchema(previewExtension: PreviewMain) {\n return {\n typeDefs: gql`\n type Preview {\n # url: String!\n includesEnvTemplate: Boolean\n }\n\n extend type Component {\n preview: Preview\n }\n `,\n resolvers: {\n Component: {\n preview: (component: Component) => {\n // return previewExtension.getPreview(component);\n return { component };\n },\n },\n Preview: {\n includesEnvTemplate: ({ component }) => {\n return previewExtension.isBundledWithEnv(component);\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIO,SAASA,aAAT,CAAuBC,gBAAvB,EAAsD;EAC3D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAA,CAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAVS;IAWLC,SAAS,EAAE;MACTC,SAAS,EAAE;QACTC,OAAO,EAAGC,SAAD,IAA0B;UACjC;UACA,OAAO;YAAEA;UAAF,CAAP;QACD;MAJQ,CADF;MAOTC,OAAO,EAAE;QACPC,mBAAmB,EAAE,CAAC;UAAEF;QAAF,CAAD,KAAmB;UACtC,OAAON,gBAAgB,CAACS,gBAAjB,CAAkCH,SAAlC,CAAP;QACD;MAHM;IAPA;EAXN,CAAP;AAyBD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview.main.runtime.tsx"],"names":["noopResult","results","toString","DEFAULT_TEMP_DIR","CACHE_ROOT","PreviewAspect","id","PreviewMain","constructor","harmony","previewSlot","ui","envs","componentAspect","pkg","aspectLoader","config","bundlingStrategySlot","builder","workspace","logger","dependencyResolver","Map","Date","now","c","updater","env","getEnv","envId","executionRef","executionRefs","get","warn","updateLinkFiles","currentComponents","executionCtx","cId","component","forEach","components","found","Promise","resolve","handleComponentChange","remove","tempFolder","getTempDir","getComponentBundleSize","data","getDataByAspect","undefined","COMPONENT_STRATEGY_SIZE_KEY_NAME","getPreview","artifacts","getArtifactsVinylByExtensionAndTaskName","PREVIEW_TASK_NAME","PreviewArtifact","getPreviewFiles","isBundledWithEnv","files","getPaths","getArtifactsVinylByExtensionAndName","COMPONENT_STRATEGY_ARTIFACT_NAME","length","getEnvTemplate","GENERATE_ENV_TEMPLATE_TASK_NAME","getCoreEnvTemplate","coreEnvDir","artifactDef","artifactFactory","ArtifactFactory","rootDir","getRootDir","coreEnvDirFromBvm","paths","resolvePaths","artifactFiles","ArtifactFiles","populateVinylsFromPaths","vinyls","getEnvTemplateFromComponentEnv","getEnvId","getEnvTemplateByEnvId","isCoreEnv","host","getHost","resolvedEnvId","resolveComponentId","envComponent","BitError","getDefs","values","writeLink","prefix","moduleMap","defaultModule","dirName","isSplitComponentBundle","contents","writeLinkContents","targetDir","hash","targetPath","timestamp","writeHash","set","getPreviewTarget","context","relatedContexts","ctxId","ExecutionRef","previewRuntime","writePreviewRuntime","linkFiles","previews","map","previewDef","templatePath","renderTemplatePath","getModuleMap","getEnvPreviewConfig","splitComponentBundle","withPaths","environment","compilerInstance","getCompiler","modulePath","getPreviewComponentRootPath","getModulePath","file","path","distRelativePath","getDistPathBySrcPath","relative","dirPath","recursive","link","all","aspectsIdsToNotFilterOut","getUi","Error","name","uiRoot","resolvedAspects","resolveAspects","PreviewRuntime","filteredAspects","filterAspectsByExecutionContext","filePath","generateRoot","aspects","allComponentContextAspects","reduce","acc","curr","concat","state","ids","hostAspects","Object","keys","toObject","allAspectsToInclude","filtered","filter","aspect","getId","isCoreAspect","includes","getDefaultStrategies","EnvBundlingStrategy","ComponentBundlingStrategy","getPreviewConfig","getBundlingStrategy","defaultStrategies","envPreviewConfig","strategyFromEnv","strategyName","bundlingStrategy","strategies","selected","find","strategy","BundlingStrategyNotFound","registerBundlingStrategy","register","registerDefinition","provider","bundler","componentExtension","uiMain","pubsub","loggerMain","graphql","createLogger","preview","registerStartPlugin","PreviewStartPlugin","registerRoute","PreviewRoute","ComponentPreviewRoute","EnvTemplateRoute","PreviewAssetsRoute","registerTarget","entry","bind","disabled","registerBuildTasks","EnvPreviewTemplateTask","PreviewTask","registerOnComponentAdd","add","registerOnComponentChange","update","registerOnComponentRemove","handleComponentRemoval","Slot","withType","MainRuntime","BundlerAspect","BuilderAspect","ComponentAspect","UIAspect","EnvsAspect","WorkspaceAspect","PkgAspect","PubsubAspect","AspectLoaderAspect","LoggerAspect","DependencyResolverAspect","GraphqlAspect","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;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","sourcesContent":["import { ArtifactFactory, BuilderAspect } from '@teambit/builder';\nimport type { BuilderMain } from '@teambit/builder';\nimport { Asset, BundlerAspect, BundlerMain } from '@teambit/bundler';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport { MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain, ComponentMap, ComponentID } from '@teambit/component';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { EnvsMain, ExecutionContext, PreviewEnv } from '@teambit/envs';\nimport { Slot, SlotRegistry, Harmony } from '@teambit/harmony';\nimport { UIAspect, UiMain } from '@teambit/ui';\nimport { CACHE_ROOT } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport objectHash from 'object-hash';\nimport { uniq } from 'lodash';\nimport { writeFileSync, existsSync, mkdirSync } from 'fs-extra';\nimport { join } from 'path';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport { AspectLoaderAspect, getAspectDir, getAspectDirFromBvm } from '@teambit/aspect-loader';\nimport type { AspectDefinition, AspectLoaderMain } from '@teambit/aspect-loader';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ArtifactFiles } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { BundlingStrategyNotFound } from './exceptions';\nimport { generateLink } from './generate-link';\nimport { PreviewArtifact } from './preview-artifact';\nimport { PreviewDefinition } from './preview-definition';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { PreviewRoute } from './preview.route';\nimport { PreviewTask, PREVIEW_TASK_NAME } from './preview.task';\nimport { BundlingStrategy } from './bundling-strategy';\nimport { EnvBundlingStrategy, ComponentBundlingStrategy } from './strategies';\nimport { ExecutionRef } from './execution-ref';\nimport { PreviewStartPlugin } from './preview.start-plugin';\nimport {\n EnvPreviewTemplateTask,\n GENERATE_ENV_TEMPLATE_TASK_NAME,\n getArtifactDef as getEnvTemplateArtifactDef,\n} from './env-preview-template.task';\nimport { EnvTemplateRoute } from './env-template.route';\nimport { ComponentPreviewRoute } from './component-preview.route';\nimport { COMPONENT_STRATEGY_ARTIFACT_NAME, COMPONENT_STRATEGY_SIZE_KEY_NAME } from './strategies/component-strategy';\nimport { previewSchema } from './preview.graphql';\nimport { PreviewAssetsRoute } from './preview-assets.route';\n\nconst noopResult = {\n results: [],\n toString: () => `updating link file`,\n};\n\nconst DEFAULT_TEMP_DIR = join(CACHE_ROOT, PreviewAspect.id);\n\nexport type PreviewDefinitionRegistry = SlotRegistry<PreviewDefinition>;\n\ntype PreviewFiles = {\n files: string[];\n isBundledWithEnv: boolean;\n};\n\nexport type ComponentPreviewSizedFile = Asset;\n\nexport type ComponentPreviewSize = {\n files: ComponentPreviewSizedFile[];\n assets: ComponentPreviewSizedFile[];\n totalFiles: number;\n compressedTotalFiles?: number;\n totalAssets: number;\n compressedTotalAssets?: number;\n total: number;\n compressedTotal?: number;\n};\n\nexport type ComponentPreviewMetaData = {\n size?: ComponentPreviewSize;\n};\n\nexport type PreviewConfig = {\n bundlingStrategy?: string;\n disabled: boolean;\n /**\n * limit concurrent components when running the bundling step for your bundler during generate components preview task.\n * this helps mitigate large memory consumption for the build pipeline. This may increase the overall time for the generate-preview task, but reduce memory footprint.\n * default - no limit.\n */\n maxChunkSize?: number;\n};\n\nexport type EnvPreviewConfig = {\n strategyName?: string;\n splitComponentBundle?: boolean;\n};\n\nexport type BundlingStrategySlot = SlotRegistry<BundlingStrategy>;\n\nexport type GenerateLinkFn = (prefix: string, componentMap: ComponentMap<string[]>, defaultModule?: string) => string;\n\nexport class PreviewMain {\n constructor(\n /**\n * harmony context.\n */\n private harmony: Harmony,\n\n /**\n * slot for preview definitions.\n */\n private previewSlot: PreviewDefinitionRegistry,\n\n private ui: UiMain,\n\n private envs: EnvsMain,\n\n private componentAspect: ComponentMain,\n\n private pkg: PkgMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly config: PreviewConfig,\n\n private bundlingStrategySlot: BundlingStrategySlot,\n\n private builder: BuilderMain,\n\n private workspace: Workspace | undefined,\n\n private logger: Logger,\n\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n get tempFolder(): string {\n return this.workspace?.getTempDir(PreviewAspect.id) || DEFAULT_TEMP_DIR;\n }\n\n getComponentBundleSize(component: Component): ComponentPreviewSize | undefined {\n const data = this.builder.getDataByAspect(component, PreviewAspect.id);\n\n if (!data) return undefined;\n return data[COMPONENT_STRATEGY_SIZE_KEY_NAME];\n }\n\n async getPreview(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByExtensionAndTaskName(\n component,\n PreviewAspect.id,\n PREVIEW_TASK_NAME\n );\n if (!artifacts) return undefined;\n return new PreviewArtifact(artifacts);\n }\n\n /**\n * Get a list of all the artifact files generated during the GeneratePreview task\n * @param component\n * @returns\n */\n async getPreviewFiles(component: Component): Promise<PreviewFiles | undefined> {\n const artifacts = await this.getPreview(component);\n const isBundledWithEnv = await this.isBundledWithEnv(component);\n if (!artifacts) return undefined;\n return {\n files: artifacts.getPaths(),\n isBundledWithEnv,\n };\n }\n\n /**\n * Check if the component preview bundle contain the env as part of the bundle or only the component code\n * (we used in the past to bundle them together, there might also be specific envs which still uses the env strategy)\n * @param component\n * @returns\n */\n async isBundledWithEnv(component: Component): Promise<boolean> {\n const artifacts = await this.builder.getArtifactsVinylByExtensionAndName(\n component,\n PreviewAspect.id,\n COMPONENT_STRATEGY_ARTIFACT_NAME\n );\n if (!artifacts || !artifacts.length) return true;\n\n return false;\n }\n\n /**\n * Getting the env template artifact\n * This should be called with the env itself or it will return undefined\n * If you want to get the env template from the env of the component,\n * use: getEnvTemplateFromComponentEnv below\n *\n * @param component\n * @returns\n */\n async getEnvTemplate(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByExtensionAndTaskName(\n component,\n PreviewAspect.id,\n GENERATE_ENV_TEMPLATE_TASK_NAME\n );\n if (!artifacts || !artifacts.length) return undefined;\n\n return new PreviewArtifact(artifacts);\n }\n\n /**\n * This is a special method to get a core env template\n * As the core envs doesn't exist in the scope we need to bring it from other place\n * We will bring it from the core env package files\n */\n private async getCoreEnvTemplate(envId: string): Promise<PreviewArtifact | undefined> {\n const coreEnvDir = getAspectDir(envId);\n // const finalDir = join(coreEnvDir, getEnvTemplateArtifactDirectory());\n const artifactDef = getEnvTemplateArtifactDef()[0];\n const artifactFactory = new ArtifactFactory();\n\n let rootDir = artifactFactory.getRootDir(coreEnvDir, artifactDef);\n if (!existsSync(rootDir)) {\n // fallback to the bvm folder\n const coreEnvDirFromBvm = getAspectDirFromBvm(envId);\n rootDir = artifactFactory.getRootDir(coreEnvDirFromBvm, artifactDef);\n }\n if (!existsSync(rootDir)) {\n return undefined;\n }\n const paths = artifactFactory.resolvePaths(rootDir, artifactDef);\n if (!paths || !paths.length) {\n return undefined;\n }\n const artifactFiles = new ArtifactFiles(paths);\n\n artifactFiles.populateVinylsFromPaths(rootDir);\n return new PreviewArtifact(artifactFiles.vinyls);\n }\n\n /**\n * This will fetch the component env, then will take the env template from the component env\n * @param component\n */\n async getEnvTemplateFromComponentEnv(component: Component): Promise<PreviewArtifact | undefined> {\n const envId = this.envs.getEnvId(component);\n return this.getEnvTemplateByEnvId(envId);\n }\n\n /**\n * This will fetch the component env, then will take the env template from the component env\n * @param component\n */\n async getEnvTemplateByEnvId(envId: string): Promise<PreviewArtifact | undefined> {\n // Special treatment for core envs\n if (this.aspectLoader.isCoreEnv(envId)) {\n return this.getCoreEnvTemplate(envId);\n }\n const host = this.componentAspect.getHost();\n const resolvedEnvId = await host.resolveComponentId(envId);\n const envComponent = await host.get(resolvedEnvId);\n if (!envComponent) {\n throw new BitError(`can't load env. env id is ${envId}`);\n }\n return this.getEnvTemplate(envComponent);\n }\n\n getDefs(): PreviewDefinition[] {\n return this.previewSlot.values();\n }\n\n private writeHash = new Map<string, string>();\n private timestamp = Date.now();\n\n /**\n * write a link to load custom modules dynamically.\n * @param prefix write\n * @param moduleMap map of components to module paths to require.\n * @param defaultModule\n * @param dirName\n */\n writeLink(\n prefix: string,\n moduleMap: ComponentMap<string[]>,\n defaultModule: string | undefined,\n dirName: string,\n isSplitComponentBundle: boolean\n ) {\n const contents = generateLink(prefix, moduleMap, defaultModule, isSplitComponentBundle);\n return this.writeLinkContents(contents, dirName, prefix);\n }\n\n writeLinkContents(contents: string, targetDir: string, prefix: string) {\n const hash = objectHash(contents);\n const targetPath = join(targetDir, `${prefix}-${this.timestamp}.js`);\n\n // write only if link has changed (prevents triggering fs watches)\n if (this.writeHash.get(targetPath) !== hash) {\n writeFileSync(targetPath, contents);\n this.writeHash.set(targetPath, hash);\n }\n\n return targetPath;\n }\n\n private executionRefs = new Map<string, ExecutionRef>();\n\n private async getPreviewTarget(\n /** execution context (of the specific env) */\n context: ExecutionContext\n ): Promise<string[]> {\n // store context for later link-file updates\n // also register related envs that this context is acting on their behalf\n [context.id, ...context.relatedContexts].forEach((ctxId) => {\n this.executionRefs.set(ctxId, new ExecutionRef(context));\n });\n\n const previewRuntime = await this.writePreviewRuntime(context);\n const linkFiles = await this.updateLinkFiles(context.components, context);\n\n return [...linkFiles, previewRuntime];\n }\n\n private updateLinkFiles(components: Component[] = [], context: ExecutionContext) {\n const previews = this.previewSlot.values();\n const paths = previews.map(async (previewDef) => {\n const templatePath = await previewDef.renderTemplatePath?.(context);\n\n const map = await previewDef.getModuleMap(components);\n const isSplitComponentBundle = this.getEnvPreviewConfig().splitComponentBundle ?? false;\n const withPaths = map.map<string[]>((files, component) => {\n const environment = this.envs.getEnv(component).env;\n const compilerInstance = environment.getCompiler?.();\n const modulePath =\n compilerInstance?.getPreviewComponentRootPath?.(component) || this.pkg.getModulePath(component);\n return files.map((file) => {\n if (!this.workspace || !compilerInstance) {\n return file.path;\n }\n const distRelativePath = compilerInstance.getDistPathBySrcPath(file.relative);\n return join(this.workspace.path, modulePath, distRelativePath);\n });\n // return files.map((file) => file.path);\n });\n\n const dirPath = join(this.tempFolder, context.id);\n if (!existsSync(dirPath)) mkdirSync(dirPath, { recursive: true });\n\n const link = this.writeLink(previewDef.prefix, withPaths, templatePath, dirPath, isSplitComponentBundle);\n return link;\n });\n\n return Promise.all(paths);\n }\n\n async writePreviewRuntime(context: { components: Component[] }, aspectsIdsToNotFilterOut: string[] = []) {\n const ui = this.ui.getUi();\n if (!ui) throw new Error('ui not found');\n const [name, uiRoot] = ui;\n const resolvedAspects = await uiRoot.resolveAspects(PreviewRuntime.name);\n const filteredAspects = this.filterAspectsByExecutionContext(resolvedAspects, context, aspectsIdsToNotFilterOut);\n const filePath = await this.ui.generateRoot(filteredAspects, name, 'preview', PreviewAspect.id);\n return filePath;\n }\n\n /**\n * Filter the aspects to have only aspects that are:\n * 1. core aspects\n * 2. configured on the host (workspace/scope)\n * 3. used by at least one component from the context\n * @param aspects\n * @param context\n */\n private filterAspectsByExecutionContext(\n aspects: AspectDefinition[],\n context: { components: Component[] },\n aspectsIdsToNotFilterOut: string[] = []\n ) {\n let allComponentContextAspects: string[] = [];\n allComponentContextAspects = context.components.reduce((acc, curr) => {\n return acc.concat(curr.state.aspects.ids);\n }, allComponentContextAspects);\n const hostAspects = Object.keys(this.harmony.config.toObject());\n const allAspectsToInclude = uniq(hostAspects.concat(allComponentContextAspects));\n const filtered = aspects.filter((aspect) => {\n if (!aspect.getId) {\n return false;\n }\n return (\n this.aspectLoader.isCoreAspect(aspect.getId) ||\n allAspectsToInclude.includes(aspect.getId) ||\n aspectsIdsToNotFilterOut.includes(aspect.getId)\n );\n });\n\n return filtered;\n }\n\n private getDefaultStrategies() {\n return [new EnvBundlingStrategy(this), new ComponentBundlingStrategy(this, this.pkg, this.dependencyResolver)];\n }\n\n // TODO - executionContext should be responsible for updating components list, and emit 'update' events\n // instead we keep track of changes\n private handleComponentChange = async (c: Component, updater: (currentComponents: ExecutionRef) => void) => {\n const env = this.envs.getEnv(c);\n const envId = env.id.toString();\n\n const executionRef = this.executionRefs.get(envId);\n if (!executionRef) {\n this.logger.warn(\n `failed to update link file for component \"${c.id.toString()}\" - could not find execution context for ${envId}`\n );\n return noopResult;\n }\n\n // add / remove / etc\n updater(executionRef);\n\n await this.updateLinkFiles(executionRef.currentComponents, executionRef.executionCtx);\n\n return noopResult;\n };\n\n private handleComponentRemoval = (cId: ComponentID) => {\n let component: Component | undefined;\n this.executionRefs.forEach((components) => {\n const found = components.get(cId);\n if (found) component = found;\n });\n if (!component) return Promise.resolve(noopResult);\n\n return this.handleComponentChange(component, (currentComponents) => currentComponents.remove(cId));\n };\n\n getEnvPreviewConfig(env?: PreviewEnv): EnvPreviewConfig {\n const config = env?.getPreviewConfig && typeof env?.getPreviewConfig === 'function' ? env?.getPreviewConfig() : {};\n\n return config;\n }\n\n /**\n * return the configured bundling strategy.\n */\n getBundlingStrategy(env?: PreviewEnv): BundlingStrategy {\n const defaultStrategies = this.getDefaultStrategies();\n const envPreviewConfig = this.getEnvPreviewConfig(env);\n const strategyFromEnv = envPreviewConfig?.strategyName;\n const strategyName = strategyFromEnv || this.config.bundlingStrategy || 'env';\n const strategies = this.bundlingStrategySlot.values().concat(defaultStrategies);\n const selected = strategies.find((strategy) => {\n return strategy.name === strategyName;\n });\n\n if (!selected) throw new BundlingStrategyNotFound(strategyName);\n\n return selected;\n }\n\n /**\n * register a new bundling strategy. default available strategies are `env` and ``\n */\n registerBundlingStrategy(bundlingStrategy: BundlingStrategy) {\n this.bundlingStrategySlot.register(bundlingStrategy);\n return this;\n }\n\n /**\n * register a new preview definition.\n */\n registerDefinition(previewDef: PreviewDefinition) {\n this.previewSlot.register(previewDef);\n }\n\n static slots = [Slot.withType<PreviewDefinition>(), Slot.withType<BundlingStrategy>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n BundlerAspect,\n BuilderAspect,\n ComponentAspect,\n UIAspect,\n EnvsAspect,\n WorkspaceAspect,\n PkgAspect,\n PubsubAspect,\n AspectLoaderAspect,\n LoggerAspect,\n DependencyResolverAspect,\n GraphqlAspect,\n ];\n\n static defaultConfig = {\n disabled: false,\n };\n\n static async provider(\n // eslint-disable-next-line max-len\n [\n bundler,\n builder,\n componentExtension,\n uiMain,\n envs,\n workspace,\n pkg,\n pubsub,\n aspectLoader,\n loggerMain,\n dependencyResolver,\n graphql,\n ]: [\n BundlerMain,\n BuilderMain,\n ComponentMain,\n UiMain,\n EnvsMain,\n Workspace | undefined,\n PkgMain,\n PubsubMain,\n AspectLoaderMain,\n LoggerMain,\n DependencyResolverMain,\n GraphqlMain\n ],\n config: PreviewConfig,\n [previewSlot, bundlingStrategySlot]: [PreviewDefinitionRegistry, BundlingStrategySlot],\n harmony: Harmony\n ) {\n const logger = loggerMain.createLogger(PreviewAspect.id);\n // app.registerApp(new PreviewApp());\n const preview = new PreviewMain(\n harmony,\n previewSlot,\n uiMain,\n envs,\n componentExtension,\n pkg,\n aspectLoader,\n config,\n bundlingStrategySlot,\n builder,\n workspace,\n logger,\n dependencyResolver\n );\n\n if (workspace) uiMain.registerStartPlugin(new PreviewStartPlugin(workspace, bundler, uiMain, pubsub, logger));\n\n componentExtension.registerRoute([\n new PreviewRoute(preview, logger),\n new ComponentPreviewRoute(preview, logger),\n // @ts-ignore\n new EnvTemplateRoute(preview, logger),\n new PreviewAssetsRoute(preview, logger),\n ]);\n\n bundler.registerTarget([\n {\n entry: preview.getPreviewTarget.bind(preview),\n },\n ]);\n\n if (!config.disabled)\n builder.registerBuildTasks([\n new EnvPreviewTemplateTask(preview, envs, aspectLoader),\n new PreviewTask(bundler, preview),\n ]);\n\n if (workspace) {\n workspace.registerOnComponentAdd((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.add(c))\n );\n workspace.registerOnComponentChange((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.update(c))\n );\n workspace.registerOnComponentRemove((cId) => preview.handleComponentRemoval(cId));\n }\n\n graphql.register(previewSchema(preview));\n\n return preview;\n }\n}\n\nPreviewAspect.addRuntime(PreviewMain);\n"]}
1
+ {"version":3,"names":["noopResult","results","toString","DEFAULT_TEMP_DIR","join","CACHE_ROOT","PreviewAspect","id","PreviewMain","constructor","harmony","previewSlot","ui","envs","componentAspect","pkg","aspectLoader","config","bundlingStrategySlot","builder","workspace","logger","dependencyResolver","Map","Date","now","c","updater","env","getEnv","envId","executionRef","executionRefs","get","warn","updateLinkFiles","currentComponents","executionCtx","cId","component","forEach","components","found","Promise","resolve","handleComponentChange","remove","tempFolder","getTempDir","getComponentBundleSize","data","getDataByAspect","undefined","COMPONENT_STRATEGY_SIZE_KEY_NAME","getPreview","artifacts","getArtifactsVinylByExtensionAndTaskName","PREVIEW_TASK_NAME","PreviewArtifact","getPreviewFiles","isBundledWithEnv","files","getPaths","getArtifactsVinylByExtensionAndName","COMPONENT_STRATEGY_ARTIFACT_NAME","length","getEnvTemplate","GENERATE_ENV_TEMPLATE_TASK_NAME","getCoreEnvTemplate","coreEnvDir","getAspectDir","artifactDef","getEnvTemplateArtifactDef","artifactFactory","ArtifactFactory","rootDir","getRootDir","existsSync","coreEnvDirFromBvm","getAspectDirFromBvm","paths","resolvePaths","artifactFiles","ArtifactFiles","populateVinylsFromPaths","vinyls","getEnvTemplateFromComponentEnv","getEnvId","getEnvTemplateByEnvId","isCoreEnv","host","getHost","resolvedEnvId","resolveComponentId","envComponent","BitError","getDefs","values","writeLink","prefix","moduleMap","defaultModule","dirName","isSplitComponentBundle","contents","generateLink","writeLinkContents","targetDir","hash","objectHash","targetPath","timestamp","writeHash","writeFileSync","set","getPreviewTarget","context","relatedContexts","ctxId","ExecutionRef","previewRuntime","writePreviewRuntime","linkFiles","previews","map","previewDef","templatePath","renderTemplatePath","getModuleMap","getEnvPreviewConfig","splitComponentBundle","withPaths","environment","compilerInstance","getCompiler","modulePath","getPreviewComponentRootPath","getModulePath","file","path","distRelativePath","getDistPathBySrcPath","relative","dirPath","mkdirSync","recursive","link","all","aspectsIdsToNotFilterOut","getUi","Error","name","uiRoot","resolvedAspects","resolveAspects","PreviewRuntime","filteredAspects","filterAspectsByExecutionContext","filePath","generateRoot","aspects","allComponentContextAspects","reduce","acc","curr","concat","state","ids","hostAspects","Object","keys","toObject","allAspectsToInclude","uniq","filtered","filter","aspect","getId","isCoreAspect","includes","getDefaultStrategies","EnvBundlingStrategy","ComponentBundlingStrategy","getPreviewConfig","getBundlingStrategy","defaultStrategies","envPreviewConfig","strategyFromEnv","strategyName","bundlingStrategy","strategies","selected","find","strategy","BundlingStrategyNotFound","registerBundlingStrategy","register","registerDefinition","provider","bundler","componentExtension","uiMain","pubsub","loggerMain","graphql","createLogger","preview","registerStartPlugin","PreviewStartPlugin","registerRoute","PreviewRoute","ComponentPreviewRoute","EnvTemplateRoute","PreviewAssetsRoute","registerTarget","entry","bind","disabled","registerBuildTasks","EnvPreviewTemplateTask","PreviewTask","registerOnComponentAdd","add","registerOnComponentChange","update","registerOnComponentRemove","handleComponentRemoval","previewSchema","Slot","withType","MainRuntime","BundlerAspect","BuilderAspect","ComponentAspect","UIAspect","EnvsAspect","WorkspaceAspect","PkgAspect","PubsubAspect","AspectLoaderAspect","LoggerAspect","DependencyResolverAspect","GraphqlAspect","addRuntime"],"sources":["preview.main.runtime.tsx"],"sourcesContent":["import { ArtifactFactory, BuilderAspect } from '@teambit/builder';\nimport type { BuilderMain } from '@teambit/builder';\nimport { Asset, BundlerAspect, BundlerMain } from '@teambit/bundler';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport { MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain, ComponentMap, ComponentID } from '@teambit/component';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { EnvsMain, ExecutionContext, PreviewEnv } from '@teambit/envs';\nimport { Slot, SlotRegistry, Harmony } from '@teambit/harmony';\nimport { UIAspect, UiMain } from '@teambit/ui';\nimport { CACHE_ROOT } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport objectHash from 'object-hash';\nimport { uniq } from 'lodash';\nimport { writeFileSync, existsSync, mkdirSync } from 'fs-extra';\nimport { join } from 'path';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport { AspectLoaderAspect, getAspectDir, getAspectDirFromBvm } from '@teambit/aspect-loader';\nimport type { AspectDefinition, AspectLoaderMain } from '@teambit/aspect-loader';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ArtifactFiles } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { BundlingStrategyNotFound } from './exceptions';\nimport { generateLink } from './generate-link';\nimport { PreviewArtifact } from './preview-artifact';\nimport { PreviewDefinition } from './preview-definition';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { PreviewRoute } from './preview.route';\nimport { PreviewTask, PREVIEW_TASK_NAME } from './preview.task';\nimport { BundlingStrategy } from './bundling-strategy';\nimport { EnvBundlingStrategy, ComponentBundlingStrategy } from './strategies';\nimport { ExecutionRef } from './execution-ref';\nimport { PreviewStartPlugin } from './preview.start-plugin';\nimport {\n EnvPreviewTemplateTask,\n GENERATE_ENV_TEMPLATE_TASK_NAME,\n getArtifactDef as getEnvTemplateArtifactDef,\n} from './env-preview-template.task';\nimport { EnvTemplateRoute } from './env-template.route';\nimport { ComponentPreviewRoute } from './component-preview.route';\nimport { COMPONENT_STRATEGY_ARTIFACT_NAME, COMPONENT_STRATEGY_SIZE_KEY_NAME } from './strategies/component-strategy';\nimport { previewSchema } from './preview.graphql';\nimport { PreviewAssetsRoute } from './preview-assets.route';\n\nconst noopResult = {\n results: [],\n toString: () => `updating link file`,\n};\n\nconst DEFAULT_TEMP_DIR = join(CACHE_ROOT, PreviewAspect.id);\n\nexport type PreviewDefinitionRegistry = SlotRegistry<PreviewDefinition>;\n\ntype PreviewFiles = {\n files: string[];\n isBundledWithEnv: boolean;\n};\n\nexport type ComponentPreviewSizedFile = Asset;\n\nexport type ComponentPreviewSize = {\n files: ComponentPreviewSizedFile[];\n assets: ComponentPreviewSizedFile[];\n totalFiles: number;\n compressedTotalFiles?: number;\n totalAssets: number;\n compressedTotalAssets?: number;\n total: number;\n compressedTotal?: number;\n};\n\nexport type ComponentPreviewMetaData = {\n size?: ComponentPreviewSize;\n};\n\nexport type PreviewConfig = {\n bundlingStrategy?: string;\n disabled: boolean;\n /**\n * limit concurrent components when running the bundling step for your bundler during generate components preview task.\n * this helps mitigate large memory consumption for the build pipeline. This may increase the overall time for the generate-preview task, but reduce memory footprint.\n * default - no limit.\n */\n maxChunkSize?: number;\n};\n\nexport type EnvPreviewConfig = {\n strategyName?: string;\n splitComponentBundle?: boolean;\n};\n\nexport type BundlingStrategySlot = SlotRegistry<BundlingStrategy>;\n\nexport type GenerateLinkFn = (prefix: string, componentMap: ComponentMap<string[]>, defaultModule?: string) => string;\n\nexport class PreviewMain {\n constructor(\n /**\n * harmony context.\n */\n private harmony: Harmony,\n\n /**\n * slot for preview definitions.\n */\n private previewSlot: PreviewDefinitionRegistry,\n\n private ui: UiMain,\n\n private envs: EnvsMain,\n\n private componentAspect: ComponentMain,\n\n private pkg: PkgMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly config: PreviewConfig,\n\n private bundlingStrategySlot: BundlingStrategySlot,\n\n private builder: BuilderMain,\n\n private workspace: Workspace | undefined,\n\n private logger: Logger,\n\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n get tempFolder(): string {\n return this.workspace?.getTempDir(PreviewAspect.id) || DEFAULT_TEMP_DIR;\n }\n\n getComponentBundleSize(component: Component): ComponentPreviewSize | undefined {\n const data = this.builder.getDataByAspect(component, PreviewAspect.id);\n\n if (!data) return undefined;\n return data[COMPONENT_STRATEGY_SIZE_KEY_NAME];\n }\n\n async getPreview(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByExtensionAndTaskName(\n component,\n PreviewAspect.id,\n PREVIEW_TASK_NAME\n );\n if (!artifacts) return undefined;\n return new PreviewArtifact(artifacts);\n }\n\n /**\n * Get a list of all the artifact files generated during the GeneratePreview task\n * @param component\n * @returns\n */\n async getPreviewFiles(component: Component): Promise<PreviewFiles | undefined> {\n const artifacts = await this.getPreview(component);\n const isBundledWithEnv = await this.isBundledWithEnv(component);\n if (!artifacts) return undefined;\n return {\n files: artifacts.getPaths(),\n isBundledWithEnv,\n };\n }\n\n /**\n * Check if the component preview bundle contain the env as part of the bundle or only the component code\n * (we used in the past to bundle them together, there might also be specific envs which still uses the env strategy)\n * @param component\n * @returns\n */\n async isBundledWithEnv(component: Component): Promise<boolean> {\n const artifacts = await this.builder.getArtifactsVinylByExtensionAndName(\n component,\n PreviewAspect.id,\n COMPONENT_STRATEGY_ARTIFACT_NAME\n );\n if (!artifacts || !artifacts.length) return true;\n\n return false;\n }\n\n /**\n * Getting the env template artifact\n * This should be called with the env itself or it will return undefined\n * If you want to get the env template from the env of the component,\n * use: getEnvTemplateFromComponentEnv below\n *\n * @param component\n * @returns\n */\n async getEnvTemplate(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByExtensionAndTaskName(\n component,\n PreviewAspect.id,\n GENERATE_ENV_TEMPLATE_TASK_NAME\n );\n if (!artifacts || !artifacts.length) return undefined;\n\n return new PreviewArtifact(artifacts);\n }\n\n /**\n * This is a special method to get a core env template\n * As the core envs doesn't exist in the scope we need to bring it from other place\n * We will bring it from the core env package files\n */\n private async getCoreEnvTemplate(envId: string): Promise<PreviewArtifact | undefined> {\n const coreEnvDir = getAspectDir(envId);\n // const finalDir = join(coreEnvDir, getEnvTemplateArtifactDirectory());\n const artifactDef = getEnvTemplateArtifactDef()[0];\n const artifactFactory = new ArtifactFactory();\n\n let rootDir = artifactFactory.getRootDir(coreEnvDir, artifactDef);\n if (!existsSync(rootDir)) {\n // fallback to the bvm folder\n const coreEnvDirFromBvm = getAspectDirFromBvm(envId);\n rootDir = artifactFactory.getRootDir(coreEnvDirFromBvm, artifactDef);\n }\n if (!existsSync(rootDir)) {\n return undefined;\n }\n const paths = artifactFactory.resolvePaths(rootDir, artifactDef);\n if (!paths || !paths.length) {\n return undefined;\n }\n const artifactFiles = new ArtifactFiles(paths);\n\n artifactFiles.populateVinylsFromPaths(rootDir);\n return new PreviewArtifact(artifactFiles.vinyls);\n }\n\n /**\n * This will fetch the component env, then will take the env template from the component env\n * @param component\n */\n async getEnvTemplateFromComponentEnv(component: Component): Promise<PreviewArtifact | undefined> {\n const envId = this.envs.getEnvId(component);\n return this.getEnvTemplateByEnvId(envId);\n }\n\n /**\n * This will fetch the component env, then will take the env template from the component env\n * @param component\n */\n async getEnvTemplateByEnvId(envId: string): Promise<PreviewArtifact | undefined> {\n // Special treatment for core envs\n if (this.aspectLoader.isCoreEnv(envId)) {\n return this.getCoreEnvTemplate(envId);\n }\n const host = this.componentAspect.getHost();\n const resolvedEnvId = await host.resolveComponentId(envId);\n const envComponent = await host.get(resolvedEnvId);\n if (!envComponent) {\n throw new BitError(`can't load env. env id is ${envId}`);\n }\n return this.getEnvTemplate(envComponent);\n }\n\n getDefs(): PreviewDefinition[] {\n return this.previewSlot.values();\n }\n\n private writeHash = new Map<string, string>();\n private timestamp = Date.now();\n\n /**\n * write a link to load custom modules dynamically.\n * @param prefix write\n * @param moduleMap map of components to module paths to require.\n * @param defaultModule\n * @param dirName\n */\n writeLink(\n prefix: string,\n moduleMap: ComponentMap<string[]>,\n defaultModule: string | undefined,\n dirName: string,\n isSplitComponentBundle: boolean\n ) {\n const contents = generateLink(prefix, moduleMap, defaultModule, isSplitComponentBundle);\n return this.writeLinkContents(contents, dirName, prefix);\n }\n\n writeLinkContents(contents: string, targetDir: string, prefix: string) {\n const hash = objectHash(contents);\n const targetPath = join(targetDir, `${prefix}-${this.timestamp}.js`);\n\n // write only if link has changed (prevents triggering fs watches)\n if (this.writeHash.get(targetPath) !== hash) {\n writeFileSync(targetPath, contents);\n this.writeHash.set(targetPath, hash);\n }\n\n return targetPath;\n }\n\n private executionRefs = new Map<string, ExecutionRef>();\n\n private async getPreviewTarget(\n /** execution context (of the specific env) */\n context: ExecutionContext\n ): Promise<string[]> {\n // store context for later link-file updates\n // also register related envs that this context is acting on their behalf\n [context.id, ...context.relatedContexts].forEach((ctxId) => {\n this.executionRefs.set(ctxId, new ExecutionRef(context));\n });\n\n const previewRuntime = await this.writePreviewRuntime(context);\n const linkFiles = await this.updateLinkFiles(context.components, context);\n\n return [...linkFiles, previewRuntime];\n }\n\n private updateLinkFiles(components: Component[] = [], context: ExecutionContext) {\n const previews = this.previewSlot.values();\n const paths = previews.map(async (previewDef) => {\n const templatePath = await previewDef.renderTemplatePath?.(context);\n\n const map = await previewDef.getModuleMap(components);\n const isSplitComponentBundle = this.getEnvPreviewConfig().splitComponentBundle ?? false;\n const withPaths = map.map<string[]>((files, component) => {\n const environment = this.envs.getEnv(component).env;\n const compilerInstance = environment.getCompiler?.();\n const modulePath =\n compilerInstance?.getPreviewComponentRootPath?.(component) || this.pkg.getModulePath(component);\n return files.map((file) => {\n if (!this.workspace || !compilerInstance) {\n return file.path;\n }\n const distRelativePath = compilerInstance.getDistPathBySrcPath(file.relative);\n return join(this.workspace.path, modulePath, distRelativePath);\n });\n // return files.map((file) => file.path);\n });\n\n const dirPath = join(this.tempFolder, context.id);\n if (!existsSync(dirPath)) mkdirSync(dirPath, { recursive: true });\n\n const link = this.writeLink(previewDef.prefix, withPaths, templatePath, dirPath, isSplitComponentBundle);\n return link;\n });\n\n return Promise.all(paths);\n }\n\n async writePreviewRuntime(context: { components: Component[] }, aspectsIdsToNotFilterOut: string[] = []) {\n const ui = this.ui.getUi();\n if (!ui) throw new Error('ui not found');\n const [name, uiRoot] = ui;\n const resolvedAspects = await uiRoot.resolveAspects(PreviewRuntime.name);\n const filteredAspects = this.filterAspectsByExecutionContext(resolvedAspects, context, aspectsIdsToNotFilterOut);\n const filePath = await this.ui.generateRoot(filteredAspects, name, 'preview', PreviewAspect.id);\n return filePath;\n }\n\n /**\n * Filter the aspects to have only aspects that are:\n * 1. core aspects\n * 2. configured on the host (workspace/scope)\n * 3. used by at least one component from the context\n * @param aspects\n * @param context\n */\n private filterAspectsByExecutionContext(\n aspects: AspectDefinition[],\n context: { components: Component[] },\n aspectsIdsToNotFilterOut: string[] = []\n ) {\n let allComponentContextAspects: string[] = [];\n allComponentContextAspects = context.components.reduce((acc, curr) => {\n return acc.concat(curr.state.aspects.ids);\n }, allComponentContextAspects);\n const hostAspects = Object.keys(this.harmony.config.toObject());\n const allAspectsToInclude = uniq(hostAspects.concat(allComponentContextAspects));\n const filtered = aspects.filter((aspect) => {\n if (!aspect.getId) {\n return false;\n }\n return (\n this.aspectLoader.isCoreAspect(aspect.getId) ||\n allAspectsToInclude.includes(aspect.getId) ||\n aspectsIdsToNotFilterOut.includes(aspect.getId)\n );\n });\n\n return filtered;\n }\n\n private getDefaultStrategies() {\n return [new EnvBundlingStrategy(this), new ComponentBundlingStrategy(this, this.pkg, this.dependencyResolver)];\n }\n\n // TODO - executionContext should be responsible for updating components list, and emit 'update' events\n // instead we keep track of changes\n private handleComponentChange = async (c: Component, updater: (currentComponents: ExecutionRef) => void) => {\n const env = this.envs.getEnv(c);\n const envId = env.id.toString();\n\n const executionRef = this.executionRefs.get(envId);\n if (!executionRef) {\n this.logger.warn(\n `failed to update link file for component \"${c.id.toString()}\" - could not find execution context for ${envId}`\n );\n return noopResult;\n }\n\n // add / remove / etc\n updater(executionRef);\n\n await this.updateLinkFiles(executionRef.currentComponents, executionRef.executionCtx);\n\n return noopResult;\n };\n\n private handleComponentRemoval = (cId: ComponentID) => {\n let component: Component | undefined;\n this.executionRefs.forEach((components) => {\n const found = components.get(cId);\n if (found) component = found;\n });\n if (!component) return Promise.resolve(noopResult);\n\n return this.handleComponentChange(component, (currentComponents) => currentComponents.remove(cId));\n };\n\n getEnvPreviewConfig(env?: PreviewEnv): EnvPreviewConfig {\n const config = env?.getPreviewConfig && typeof env?.getPreviewConfig === 'function' ? env?.getPreviewConfig() : {};\n\n return config;\n }\n\n /**\n * return the configured bundling strategy.\n */\n getBundlingStrategy(env?: PreviewEnv): BundlingStrategy {\n const defaultStrategies = this.getDefaultStrategies();\n const envPreviewConfig = this.getEnvPreviewConfig(env);\n const strategyFromEnv = envPreviewConfig?.strategyName;\n const strategyName = strategyFromEnv || this.config.bundlingStrategy || 'env';\n const strategies = this.bundlingStrategySlot.values().concat(defaultStrategies);\n const selected = strategies.find((strategy) => {\n return strategy.name === strategyName;\n });\n\n if (!selected) throw new BundlingStrategyNotFound(strategyName);\n\n return selected;\n }\n\n /**\n * register a new bundling strategy. default available strategies are `env` and ``\n */\n registerBundlingStrategy(bundlingStrategy: BundlingStrategy) {\n this.bundlingStrategySlot.register(bundlingStrategy);\n return this;\n }\n\n /**\n * register a new preview definition.\n */\n registerDefinition(previewDef: PreviewDefinition) {\n this.previewSlot.register(previewDef);\n }\n\n static slots = [Slot.withType<PreviewDefinition>(), Slot.withType<BundlingStrategy>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n BundlerAspect,\n BuilderAspect,\n ComponentAspect,\n UIAspect,\n EnvsAspect,\n WorkspaceAspect,\n PkgAspect,\n PubsubAspect,\n AspectLoaderAspect,\n LoggerAspect,\n DependencyResolverAspect,\n GraphqlAspect,\n ];\n\n static defaultConfig = {\n disabled: false,\n };\n\n static async provider(\n // eslint-disable-next-line max-len\n [\n bundler,\n builder,\n componentExtension,\n uiMain,\n envs,\n workspace,\n pkg,\n pubsub,\n aspectLoader,\n loggerMain,\n dependencyResolver,\n graphql,\n ]: [\n BundlerMain,\n BuilderMain,\n ComponentMain,\n UiMain,\n EnvsMain,\n Workspace | undefined,\n PkgMain,\n PubsubMain,\n AspectLoaderMain,\n LoggerMain,\n DependencyResolverMain,\n GraphqlMain\n ],\n config: PreviewConfig,\n [previewSlot, bundlingStrategySlot]: [PreviewDefinitionRegistry, BundlingStrategySlot],\n harmony: Harmony\n ) {\n const logger = loggerMain.createLogger(PreviewAspect.id);\n // app.registerApp(new PreviewApp());\n const preview = new PreviewMain(\n harmony,\n previewSlot,\n uiMain,\n envs,\n componentExtension,\n pkg,\n aspectLoader,\n config,\n bundlingStrategySlot,\n builder,\n workspace,\n logger,\n dependencyResolver\n );\n\n if (workspace) uiMain.registerStartPlugin(new PreviewStartPlugin(workspace, bundler, uiMain, pubsub, logger));\n\n componentExtension.registerRoute([\n new PreviewRoute(preview, logger),\n new ComponentPreviewRoute(preview, logger),\n // @ts-ignore\n new EnvTemplateRoute(preview, logger),\n new PreviewAssetsRoute(preview, logger),\n ]);\n\n bundler.registerTarget([\n {\n entry: preview.getPreviewTarget.bind(preview),\n },\n ]);\n\n if (!config.disabled)\n builder.registerBuildTasks([\n new EnvPreviewTemplateTask(preview, envs, aspectLoader),\n new PreviewTask(bundler, preview),\n ]);\n\n if (workspace) {\n workspace.registerOnComponentAdd((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.add(c))\n );\n workspace.registerOnComponentChange((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.update(c))\n );\n workspace.registerOnComponentRemove((cId) => preview.handleComponentRemoval(cId));\n }\n\n graphql.register(previewSchema(preview));\n\n return preview;\n }\n}\n\nPreviewAspect.addRuntime(PreviewMain);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview.preview.runtime.tsx"],"names":["PREVIEW_MODULES","PreviewPreview","constructor","pubsub","previewSlot","renderingContextSlot","rootExt","previewName","componentId","getLocation","name","getDefault","isDev","preview","getPreview","PreviewNotFound","includesAll","Promise","all","include","map","prevName","includedPreview","undefined","selectPreviewModel","fullName","getPreviewModule","includes","filter","module","componentAspects","getComponentAspects","toString","render","getRenderingContext","fetchComponentAspects","max","maxAge","registerClickPubSub","window","addEventListener","e","timestamp","Date","now","clickEvent","Object","assign","pub","PreviewAspect","id","ClickInsideAnIframeEvent","parentPreviewName","relevantModel","componentMap","component","fetchComponentPreview","mainModule","previewFile","allFiles","fetchComponentPreviewFiles","resolve","forEach","file","endsWith","addComponentFileElement","reject","previewScriptElement","getPreviewScriptElement","document","head","appendChild","previewBundleFileName","addComponentFileScriptElement","addComponentFileLinkElement","previewAssetsRoute","stringId","url","res","status","parsed","json","isBundledWithEnv","files","length","script","createElement","setAttribute","previewRoute","src","link","href","onload","componentPreview","toStringWithoutVersion","targetPreview","registerPreview","register","aspectsFilter","RenderingContext","registerRenderContext","renderContext","previews","values","defaultOne","find","previewCandidate","default","getParam","query","param","params","URLSearchParams","get","withoutHash","location","hash","substring","before","after","split","ComponentID","tryFromString","provider","config","PreviewRuntime","PubsubAspect","Slot","withType","linkModules","previewModule","addRuntime"],"mappings":"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","sourcesContent":["import PubsubAspect, { PubsubPreview } from '@teambit/pubsub';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { ComponentID } from '@teambit/component-id';\nimport crossFetch from 'cross-fetch';\nimport memoize from 'memoizee';\n\nimport { PreviewNotFound } from './exceptions';\nimport { PreviewType } from './preview-type';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { ClickInsideAnIframeEvent } from './events';\nimport { PreviewModule } from './types/preview-module';\nimport { RenderingContext } from './rendering-context';\nimport { fetchComponentAspects } from './gql/fetch-component-aspects';\n\nexport type PreviewSlot = SlotRegistry<PreviewType>;\n\nconst PREVIEW_MODULES: Record<string, PreviewModule> = {};\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 /**\n * render the preview.\n */\n render = async (rootExt?: string) => {\n const { previewName, componentId } = 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 (prevName) => {\n const includedPreview = this.getPreview(prevName);\n if (!includedPreview) return undefined;\n\n return includedPreview.selectPreviewModel?.(\n componentId.fullName,\n await this.getPreviewModule(prevName, componentId, name)\n );\n })\n );\n\n const includes = includesAll.filter((module) => !!module);\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\n return preview.render(\n componentId,\n await this.getPreviewModule(name, componentId),\n includes,\n this.getRenderingContext(componentAspects)\n );\n };\n\n async getPreviewModule(name: string, id: ComponentID, parentPreviewName?: string): Promise<PreviewModule> {\n const relevantModel = PREVIEW_MODULES[name];\n if (relevantModel.componentMap[id.fullName]) return relevantModel;\n\n let component;\n // Handle case when there is overview but no composition on the workspace dev server\n if (!parentPreviewName || !PREVIEW_MODULES[parentPreviewName].componentMap[id.fullName]) {\n // if (!window[name]) throw new PreviewNotFound(name);\n // const isSplitComponentBundle = relevantModel.isSplitComponentBundle ?? false;\n // const component = window[id.toStringWithoutVersion()];\n component = await this.fetchComponentPreview(id, name);\n }\n\n return {\n mainModule: relevantModel.mainModule,\n componentMap: {\n [id.fullName]: component,\n },\n };\n }\n\n async fetchComponentPreview(id: ComponentID, name: string) {\n let previewFile;\n const allFiles = await this.fetchComponentPreviewFiles(id, name);\n // It's a component bundled with the env\n if (allFiles === null) {\n return Promise.resolve(undefined);\n }\n allFiles.forEach((file) => {\n // We want to run the preview file always last\n if (file.endsWith('-preview.js')) {\n previewFile = file;\n } else {\n this.addComponentFileElement(id, file);\n }\n });\n return new Promise((resolve, reject) => {\n const previewScriptElement = this.getPreviewScriptElement(id, name, previewFile, resolve, reject);\n document.head.appendChild(previewScriptElement);\n });\n }\n\n private addComponentFileElement(id: ComponentID, previewBundleFileName: string) {\n if (previewBundleFileName.endsWith('.js')) {\n return this.addComponentFileScriptElement(id, previewBundleFileName);\n }\n return this.addComponentFileLinkElement(id, previewBundleFileName);\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 script = document.createElement('script');\n script.setAttribute('defer', 'defer');\n const stringId = id.toString();\n const previewRoute = `~aspect/component-preview`;\n const src = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n script.src = src;\n document.head.appendChild(script);\n return script;\n }\n\n private addComponentFileLinkElement(id: ComponentID, previewBundleFileName: string) {\n const link = document.createElement('link');\n const stringId = id.toString();\n const previewRoute = `~aspect/component-preview`;\n const href = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n link.setAttribute('href', href);\n if (previewBundleFileName.endsWith('.css')) {\n link.setAttribute('rel', 'stylesheet');\n }\n document.head.appendChild(link);\n return link;\n }\n\n private getPreviewScriptElement(id: ComponentID, name: string, previewBundleFileName: string, resolve, reject) {\n const script = document.createElement('script');\n script.setAttribute('defer', 'defer');\n const stringId = id.toString();\n // const previewRoute = `~aspect/preview`;\n const previewRoute = `~aspect/component-preview`;\n const src = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n script.src = src; // generate path to remote scope. [scope url]/\n script.onload = () => {\n const componentPreview = window[`${id.toStringWithoutVersion()}-preview`];\n if (!componentPreview) return reject(new PreviewNotFound(name));\n const targetPreview = componentPreview[name];\n if (!targetPreview) return resolve(undefined);\n\n return resolve(targetPreview);\n };\n return script;\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 private getParam(query: string, param: string) {\n const params = new URLSearchParams(query);\n return params.get(param);\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 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\nexport function linkModules(previewName: string, previewModule: PreviewModule) {\n PREVIEW_MODULES[previewName] = previewModule;\n}\n\nPreviewAspect.addRuntime(PreviewPreview);\n"]}
1
+ {"version":3,"names":["PREVIEW_MODULES","PreviewPreview","constructor","pubsub","previewSlot","renderingContextSlot","rootExt","previewName","componentId","getLocation","name","getDefault","isDev","preview","getPreview","PreviewNotFound","includesAll","Promise","all","include","map","prevName","includedPreview","undefined","selectPreviewModel","fullName","getPreviewModule","includes","filter","module","componentAspects","getComponentAspects","toString","render","getRenderingContext","memoize","fetchComponentAspects","max","maxAge","registerClickPubSub","window","addEventListener","e","timestamp","Date","now","clickEvent","Object","assign","pub","PreviewAspect","id","ClickInsideAnIframeEvent","parentPreviewName","relevantModel","componentMap","component","fetchComponentPreview","mainModule","previewFile","allFiles","fetchComponentPreviewFiles","resolve","forEach","file","endsWith","addComponentFileElement","reject","previewScriptElement","getPreviewScriptElement","document","head","appendChild","previewBundleFileName","addComponentFileScriptElement","addComponentFileLinkElement","previewAssetsRoute","stringId","url","res","crossFetch","status","parsed","json","isBundledWithEnv","files","length","script","createElement","setAttribute","previewRoute","src","link","href","onload","componentPreview","toStringWithoutVersion","targetPreview","registerPreview","register","aspectsFilter","RenderingContext","registerRenderContext","renderContext","previews","values","defaultOne","find","previewCandidate","default","getParam","query","param","params","URLSearchParams","get","withoutHash","location","hash","substring","before","after","split","ComponentID","tryFromString","provider","config","PreviewRuntime","PubsubAspect","Slot","withType","linkModules","previewModule","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';\nimport crossFetch from 'cross-fetch';\nimport memoize from 'memoizee';\n\nimport { PreviewNotFound } from './exceptions';\nimport { PreviewType } from './preview-type';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { ClickInsideAnIframeEvent } from './events';\nimport { PreviewModule } from './types/preview-module';\nimport { RenderingContext } from './rendering-context';\nimport { fetchComponentAspects } from './gql/fetch-component-aspects';\n\nexport type PreviewSlot = SlotRegistry<PreviewType>;\n\nconst PREVIEW_MODULES: Record<string, PreviewModule> = {};\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 /**\n * render the preview.\n */\n render = async (rootExt?: string) => {\n const { previewName, componentId } = 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 (prevName) => {\n const includedPreview = this.getPreview(prevName);\n if (!includedPreview) return undefined;\n\n return includedPreview.selectPreviewModel?.(\n componentId.fullName,\n await this.getPreviewModule(prevName, componentId, name)\n );\n })\n );\n\n const includes = includesAll.filter((module) => !!module);\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\n return preview.render(\n componentId,\n await this.getPreviewModule(name, componentId),\n includes,\n this.getRenderingContext(componentAspects)\n );\n };\n\n async getPreviewModule(name: string, id: ComponentID, parentPreviewName?: string): Promise<PreviewModule> {\n const relevantModel = PREVIEW_MODULES[name];\n if (relevantModel.componentMap[id.fullName]) return relevantModel;\n\n let component;\n // Handle case when there is overview but no composition on the workspace dev server\n if (!parentPreviewName || !PREVIEW_MODULES[parentPreviewName].componentMap[id.fullName]) {\n // if (!window[name]) throw new PreviewNotFound(name);\n // const isSplitComponentBundle = relevantModel.isSplitComponentBundle ?? false;\n // const component = window[id.toStringWithoutVersion()];\n component = await this.fetchComponentPreview(id, name);\n }\n\n return {\n mainModule: relevantModel.mainModule,\n componentMap: {\n [id.fullName]: component,\n },\n };\n }\n\n async fetchComponentPreview(id: ComponentID, name: string) {\n let previewFile;\n const allFiles = await this.fetchComponentPreviewFiles(id, name);\n // It's a component bundled with the env\n if (allFiles === null) {\n return Promise.resolve(undefined);\n }\n allFiles.forEach((file) => {\n // We want to run the preview file always last\n if (file.endsWith('-preview.js')) {\n previewFile = file;\n } else {\n this.addComponentFileElement(id, file);\n }\n });\n return new Promise((resolve, reject) => {\n const previewScriptElement = this.getPreviewScriptElement(id, name, previewFile, resolve, reject);\n document.head.appendChild(previewScriptElement);\n });\n }\n\n private addComponentFileElement(id: ComponentID, previewBundleFileName: string) {\n if (previewBundleFileName.endsWith('.js')) {\n return this.addComponentFileScriptElement(id, previewBundleFileName);\n }\n return this.addComponentFileLinkElement(id, previewBundleFileName);\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 script = document.createElement('script');\n script.setAttribute('defer', 'defer');\n const stringId = id.toString();\n const previewRoute = `~aspect/component-preview`;\n const src = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n script.src = src;\n document.head.appendChild(script);\n return script;\n }\n\n private addComponentFileLinkElement(id: ComponentID, previewBundleFileName: string) {\n const link = document.createElement('link');\n const stringId = id.toString();\n const previewRoute = `~aspect/component-preview`;\n const href = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n link.setAttribute('href', href);\n if (previewBundleFileName.endsWith('.css')) {\n link.setAttribute('rel', 'stylesheet');\n }\n document.head.appendChild(link);\n return link;\n }\n\n private getPreviewScriptElement(id: ComponentID, name: string, previewBundleFileName: string, resolve, reject) {\n const script = document.createElement('script');\n script.setAttribute('defer', 'defer');\n const stringId = id.toString();\n // const previewRoute = `~aspect/preview`;\n const previewRoute = `~aspect/component-preview`;\n const src = `/api/${stringId}/${previewRoute}/${previewBundleFileName}`;\n script.src = src; // generate path to remote scope. [scope url]/\n script.onload = () => {\n const componentPreview = window[`${id.toStringWithoutVersion()}-preview`];\n if (!componentPreview) return reject(new PreviewNotFound(name));\n const targetPreview = componentPreview[name];\n if (!targetPreview) return resolve(undefined);\n\n return resolve(targetPreview);\n };\n return script;\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 private getParam(query: string, param: string) {\n const params = new URLSearchParams(query);\n return params.get(param);\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 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\nexport function linkModules(previewName: string, previewModule: PreviewModule) {\n PREVIEW_MODULES[previewName] = previewModule;\n}\n\nPreviewAspect.addRuntime(PreviewPreview);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview.route.ts"],"names":["PreviewRoute","constructor","preview","logger","req","res","next","component","status","send","isLegacyPath","isBundledWithEnv","artifact","getEnvTemplateFromComponentEnv","getPreview","e","error"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,YAAN,CAAoC;AACzCC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,OAJC,EAKDC,MALC,EAMT;AAAA,SAFQD,OAER,GAFQA,OAER;AAAA,SADQC,MACR,GADQA,MACR;AAAA,mDAEO,qCAFP;AAAA,oDAGO,KAHP;AAAA,yDAKY,CACZ,OAAOC,GAAP,EAAuCC,GAAvC,EAAsDC,IAAtD,KAA6E;AAC3E,UAAI;AACF;AACA,cAAMC,SAAS,GAAGH,GAAG,CAACG,SAAtB;AACA,YAAI,CAACA,SAAL,EAAgB,OAAOF,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,uCAArB,CAAP;AAChB,cAAMC,YAAY,GAAG,MAAM,KAAKR,OAAL,CAAaS,gBAAb,CAA8BJ,SAA9B,CAA3B;AAEA,YAAIK,QAAJ,CANE,CAOF;;AACA,YAAI;AACF;AACA;AACA,cAAI,CAACF,YAAL,EAAmB;AACjBE,YAAAA,QAAQ,GAAG,MAAM,KAAKV,OAAL,CAAaW,8BAAb,CAA4CN,SAA5C,CAAjB;AACD,WAFD,MAEO;AACL;AACAK,YAAAA,QAAQ,GAAG,MAAM,KAAKV,OAAL,CAAaY,UAAb,CAAwBP,SAAxB,CAAjB;AACD;AACF,SATD,CASE,OAAOQ,CAAP,EAAe;AACf,eAAKZ,MAAL,CAAYa,KAAZ,CAAmB,yDAAnB,EAA6ED,CAA7E;AACA,iBAAOV,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,uCAArB,CAAP;AACD,SApBC,CAqBF;;;AACAL,QAAAA,GAAG,CAACQ,QAAJ,GAAeA,QAAf,CAtBE,CAuBF;;AACAR,QAAAA,GAAG,CAACM,YAAJ,GAAmBA,YAAnB;AACA,eAAOJ,IAAI,EAAX;AACD,OA1BD,CA0BE,OAAOS,CAAP,EAAe;AACf,aAAKZ,MAAL,CAAYa,KAAZ,CAAkB,wBAAlB,EAA4CD,CAA5C;AACA,eAAOV,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,yCAArB,CAAP;AACD;AACF,KAhCW,EAiCZ,yDAA0B,KAAKN,MAA/B,CAjCY,CALZ;AAAE;;AAPqC","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"]}
1
+ {"version":3,"names":["PreviewRoute","constructor","preview","logger","req","res","next","component","status","send","noPreview","isLegacyPath","isBundledWithEnv","artifact","getEnvTemplateFromComponentEnv","getPreview","e","error","serverError","getArtifactFileMiddleware"],"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":";;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,YAAN,CAAoC;EACzCC,WAAW;EACT;AACJ;AACA;EACYC,OAJC,EAKDC,MALC,EAMT;IAAA,KAFQD,OAER,GAFQA,OAER;IAAA,KADQC,MACR,GADQA,MACR;IAAA,+CAEO,qCAFP;IAAA,gDAGO,KAHP;IAAA,qDAKY,CACZ,OAAOC,GAAP,EAAuCC,GAAvC,EAAsDC,IAAtD,KAA6E;MAC3E,IAAI;QACF;QACA,MAAMC,SAAS,GAAGH,GAAG,CAACG,SAAtB;QACA,IAAI,CAACA,SAAL,EAAgB,OAAOF,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAC,gCAAA,GAArB,CAAP;QAChB,MAAMC,YAAY,GAAG,MAAM,KAAKT,OAAL,CAAaU,gBAAb,CAA8BL,SAA9B,CAA3B;QAEA,IAAIM,QAAJ,CANE,CAOF;;QACA,IAAI;UACF;UACA;UACA,IAAI,CAACF,YAAL,EAAmB;YACjBE,QAAQ,GAAG,MAAM,KAAKX,OAAL,CAAaY,8BAAb,CAA4CP,SAA5C,CAAjB;UACD,CAFD,MAEO;YACL;YACAM,QAAQ,GAAG,MAAM,KAAKX,OAAL,CAAaa,UAAb,CAAwBR,SAAxB,CAAjB;UACD;QACF,CATD,CASE,OAAOS,CAAP,EAAe;UACf,KAAKb,MAAL,CAAYc,KAAZ,CAAmB,yDAAnB,EAA6ED,CAA7E;UACA,OAAOX,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAC,gCAAA,GAArB,CAAP;QACD,CApBC,CAqBF;;;QACAN,GAAG,CAACS,QAAJ,GAAeA,QAAf,CAtBE,CAuBF;;QACAT,GAAG,CAACO,YAAJ,GAAmBA,YAAnB;QACA,OAAOL,IAAI,EAAX;MACD,CA1BD,CA0BE,OAAOU,CAAP,EAAe;QACf,KAAKb,MAAL,CAAYc,KAAZ,CAAkB,wBAAlB,EAA4CD,CAA5C;QACA,OAAOX,GAAG,CAACG,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqB,IAAAS,kCAAA,GAArB,CAAP;MACD;IACF,CAhCW,EAiCZ,IAAAC,mDAAA,EAA0B,KAAKhB,MAA/B,CAjCY,CALZ;EAAE;;AAPqC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview.start-plugin.tsx"],"names":["PreviewStartPlugin","constructor","workspace","bundler","ui","pubsub","logger","Promise","resolve","setReady","servers","initialState","setServers","updateServers","noneAreCompiling","Object","values","every","x","compiling","previewServers","initiate","options","listenToDevServers","components","byPattern","pattern","devServer","forEach","server","listen","watcher","watchAll","spawnTSServer","checkTypes","CheckTypes","None","preCompile","initiator","CompilationInitiator","Start","catch","err","msg","error","console","message","concat","getProxy","proxyConfigs","map","context","envRuntime","id","target","port","ws","onStart","state","onDone","results","whenReady","readyPromise"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;;AAMO,MAAMA,kBAAN,CAAgD;AACrDC,EAAAA,WAAW,CACDC,SADC,EAEDC,OAFC,EAGDC,EAHC,EAIDC,MAJC,EAKDC,MALC,EAMT;AAAA,SALQJ,SAKR,GALQA,SAKR;AAAA,SAJQC,OAIR,GAJQA,OAIR;AAAA,SAHQC,EAGR,GAHQA,EAGR;AAAA,SAFQC,MAER,GAFQA,MAER;AAAA,SADQC,MACR,GADQA,MACR;AAAA,4DAEkC,EAFlC;AAAA;AAAA,0DAkEqB,IAAIC,OAAJ,CAAmBC,OAAD,IAAc,KAAKC,QAAL,GAAgBD,OAAhD,CAlErB;AAAA,0DAuEyC,EAvEzC;AAAA,2DAyEsCE,OAAD,IAAa;AAClD,WAAKC,YAAL,GAAoB,OAAOD,OAAP,KAAmB,UAAnB,GAAgCA,OAAO,CAAC,KAAKC,YAAN,CAAvC,GAA6DD,OAAjF;AACA,aAAOA,OAAP;AACD,KA5EC;AAAA,oDA8EO,MAAM;AACb,YAAM,CAACA,OAAD,EAAUE,UAAV,IAAwB,uBAA6B,KAAKD,YAAlC,CAA9B;AACA,WAAKE,aAAL,GAAqBD,UAArB;AACA,WAAKD,YAAL,GAAoB,EAApB;AAEA,8BAAU,MAAM;AACd,cAAMG,gBAAgB,GAAGC,MAAM,CAACC,MAAP,CAAcN,OAAd,EAAuBO,KAAvB,CAA8BC,CAAD,IAAO,CAACA,CAAC,CAACC,SAAvC,CAAzB;AACA,YAAIL,gBAAJ,EAAsB,KAAKL,QAAL;AACvB,OAHD,EAGG,CAACC,OAAD,CAHH;AAKA,0BAAO,+BAAC,iCAAD;AAAqB,QAAA,cAAc,EAAE,KAAKU,cAA1C;AAA0D,QAAA,WAAW,EAAEV;AAAvE,QAAP;AACD,KAzFC;AAAE;;AAIU,QAARW,QAAQ,CAACC,OAAD,EAA8B;AAC1C,SAAKC,kBAAL;AAEA,UAAMC,UAAU,GAAG,MAAM,KAAKtB,SAAL,CAAeuB,SAAf,CAAyBH,OAAO,CAACI,OAAR,IAAmB,EAA5C,CAAzB,CAH0C,CAI1C;;AACA,UAAMN,cAAc,GAAG,MAAM,KAAKjB,OAAL,CAAawB,SAAb,CAAuBH,UAAvB,CAA7B,CAL0C,CAM1C;;AACAJ,IAAAA,cAAc,CAACQ,OAAf,CAAwBC,MAAD,IAAYA,MAAM,CAACC,MAAP,EAAnC,EAP0C,CAQ1C;;AACA,SAAK5B,SAAL,CAAe6B,OAAf,CACGC,QADH,CACY;AACRC,MAAAA,aAAa,EAAE,IADP;AAERC,MAAAA,UAAU,EAAEC,wBAAWC,IAFf;AAGRC,MAAAA,UAAU,EAAE,KAHJ;AAIRC,MAAAA,SAAS,EAAEC,iCAAqBC;AAJxB,KADZ,EAOGC,KAPH,CAOUC,GAAD,IAAS;AACd,YAAMC,GAAG,GAAI,wBAAb;AACA,WAAKrC,MAAL,CAAYsC,KAAZ,CAAkBD,GAAlB,EAAuBD,GAAvB;AACA,WAAKpC,MAAL,CAAYuC,OAAZ,CAAqB,GAAEF,GAAI,KAAID,GAAG,CAACI,OAAQ,EAA3C;AACD,KAXH;AAYA,SAAK1B,cAAL,GAAsB,KAAKA,cAAL,CAAoB2B,MAApB,CAA2B3B,cAA3B,CAAtB;AACD;;AAED4B,EAAAA,QAAQ,GAAiB;AACvB,UAAMC,YAAY,GAAG,KAAK7B,cAAL,CAAoB8B,GAApB,CAAuCrB,MAAD,IAAY;AACrE,aAAO,CACL;AACEsB,QAAAA,OAAO,EAAE,CAAE,YAAWtB,MAAM,CAACsB,OAAP,CAAeC,UAAf,CAA0BC,EAAG,EAA1C,CADX;AAEEC,QAAAA,MAAM,EAAG,oBAAmBzB,MAAM,CAAC0B,IAAK;AAF1C,OADK,EAKL;AACEJ,QAAAA,OAAO,EAAE,CAAE,SAAQtB,MAAM,CAACsB,OAAP,CAAeC,UAAf,CAA0BC,EAAG,EAAvC,CADX;AAEEC,QAAAA,MAAM,EAAG,oBAAmBzB,MAAM,CAAC0B,IAAK,EAF1C;AAGEC,QAAAA,EAAE,EAAE;AAHN,OALK,CAAP;AAWD,KAZoB,CAArB;AAcA,WAAO,uBAAQP,YAAR,CAAP;AACD,GAnDoD,CAqDrD;;;AACQ1B,EAAAA,kBAAkB,GAAG;AAC3B;AACA,iDAAyB,KAAKlB,MAA9B,EAAsC;AACpCoD,MAAAA,OAAO,EAAGJ,EAAD,IAAQ;AACf,aAAKxC,aAAL,CAAoB6C,KAAD,oCACdA,KADc;AAEjB,WAACL,EAAD,GAAM;AAAElC,YAAAA,SAAS,EAAE;AAAb;AAFW,UAAnB;AAID,OANmC;AAOpCwC,MAAAA,MAAM,EAAE,CAACN,EAAD,EAAKO,OAAL,KAAiB;AACvB,aAAK/C,aAAL,CAAoB6C,KAAD,oCACdA,KADc;AAEjB,WAACL,EAAD,GAAMO;AAFW,UAAnB;AAID;AAZmC,KAAtC;AAcD;;AAIY,MAATC,SAAS,GAAkB;AAC7B,WAAO,KAAKC,YAAZ;AACD;;AA5EoD","sourcesContent":["import React, { useState, useEffect, Dispatch, SetStateAction } from 'react';\nimport { flatten } from 'lodash';\nimport { PreviewServerStatus } from '@teambit/preview.cli.preview-server-status';\nimport { BundlerMain, ComponentServer } from '@teambit/bundler';\nimport { PubsubMain } from '@teambit/pubsub';\nimport { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';\nimport { Workspace, CheckTypes } from '@teambit/workspace';\nimport { SubscribeToWebpackEvents, CompilationResult } from '@teambit/preview.cli.webpack-events-listener';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { Logger } from '@teambit/logger';\n\ntype CompilationServers = Record<string, CompilationResult>;\ntype ServersSetter = Dispatch<SetStateAction<CompilationServers>>;\n\nexport class PreviewStartPlugin implements StartPlugin {\n constructor(\n private workspace: Workspace,\n private bundler: BundlerMain,\n private ui: UiMain,\n private pubsub: PubsubMain,\n private logger: Logger\n ) {}\n\n previewServers: ComponentServer[] = [];\n\n async initiate(options: StartPluginOptions) {\n this.listenToDevServers();\n\n const components = await this.workspace.byPattern(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 // eslint-disable-next-line @typescript-eslint/no-misused-promises\n previewServers.forEach((server) => server.listen());\n // DON'T add wait! this promise never resolve so it's stop all the start process!\n this.workspace.watcher\n .watchAll({\n spawnTSServer: true,\n checkTypes: CheckTypes.None,\n preCompile: false,\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() {\n // keep state changes immutable!\n SubscribeToWebpackEvents(this.pubsub, {\n onStart: (id) => {\n this.updateServers((state) => ({\n ...state,\n [id]: { compiling: true },\n }));\n },\n onDone: (id, results) => {\n this.updateServers((state) => ({\n ...state,\n [id]: results,\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 private initialState: CompilationServers = {};\n // implements react-like setter (value or updater)\n private updateServers: ServersSetter = (servers) => {\n this.initialState = typeof servers === 'function' ? servers(this.initialState) : servers;\n return servers;\n };\n\n render = () => {\n const [servers, setServers] = useState<CompilationServers>(this.initialState);\n this.updateServers = setServers;\n this.initialState = {};\n\n useEffect(() => {\n const noneAreCompiling = Object.values(servers).every((x) => !x.compiling);\n if (noneAreCompiling) this.setReady();\n }, [servers]);\n\n return <PreviewServerStatus previewServers={this.previewServers} serverStats={servers} />;\n };\n}\n"]}
1
+ {"version":3,"names":["PreviewStartPlugin","constructor","workspace","bundler","ui","pubsub","logger","Promise","resolve","setReady","servers","initialState","setServers","useState","updateServers","useEffect","noneAreCompiling","Object","values","every","x","compiling","previewServers","initiate","options","listenToDevServers","components","byPattern","pattern","devServer","forEach","server","listen","watcher","watchAll","spawnTSServer","checkTypes","CheckTypes","None","preCompile","initiator","CompilationInitiator","Start","catch","err","msg","error","console","message","concat","getProxy","proxyConfigs","map","context","envRuntime","id","target","port","ws","flatten","SubscribeToWebpackEvents","onStart","state","onDone","results","whenReady","readyPromise"],"sources":["preview.start-plugin.tsx"],"sourcesContent":["import React, { useState, useEffect, Dispatch, SetStateAction } from 'react';\nimport { flatten } from 'lodash';\nimport { PreviewServerStatus } from '@teambit/preview.cli.preview-server-status';\nimport { BundlerMain, ComponentServer } from '@teambit/bundler';\nimport { PubsubMain } from '@teambit/pubsub';\nimport { ProxyEntry, StartPlugin, StartPluginOptions, UiMain } from '@teambit/ui';\nimport { Workspace, CheckTypes } from '@teambit/workspace';\nimport { SubscribeToWebpackEvents, CompilationResult } from '@teambit/preview.cli.webpack-events-listener';\nimport { CompilationInitiator } from '@teambit/compiler';\nimport { Logger } from '@teambit/logger';\n\ntype CompilationServers = Record<string, CompilationResult>;\ntype ServersSetter = Dispatch<SetStateAction<CompilationServers>>;\n\nexport class PreviewStartPlugin implements StartPlugin {\n constructor(\n private workspace: Workspace,\n private bundler: BundlerMain,\n private ui: UiMain,\n private pubsub: PubsubMain,\n private logger: Logger\n ) {}\n\n previewServers: ComponentServer[] = [];\n\n async initiate(options: StartPluginOptions) {\n this.listenToDevServers();\n\n const components = await this.workspace.byPattern(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 // eslint-disable-next-line @typescript-eslint/no-misused-promises\n previewServers.forEach((server) => server.listen());\n // DON'T add wait! this promise never resolve so it's stop all the start process!\n this.workspace.watcher\n .watchAll({\n spawnTSServer: true,\n checkTypes: CheckTypes.None,\n preCompile: false,\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() {\n // keep state changes immutable!\n SubscribeToWebpackEvents(this.pubsub, {\n onStart: (id) => {\n this.updateServers((state) => ({\n ...state,\n [id]: { compiling: true },\n }));\n },\n onDone: (id, results) => {\n this.updateServers((state) => ({\n ...state,\n [id]: results,\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 private initialState: CompilationServers = {};\n // implements react-like setter (value or updater)\n private updateServers: ServersSetter = (servers) => {\n this.initialState = typeof servers === 'function' ? servers(this.initialState) : servers;\n return servers;\n };\n\n render = () => {\n const [servers, setServers] = useState<CompilationServers>(this.initialState);\n this.updateServers = setServers;\n this.initialState = {};\n\n useEffect(() => {\n const noneAreCompiling = Object.values(servers).every((x) => !x.compiling);\n if (noneAreCompiling) this.setReady();\n }, [servers]);\n\n return <PreviewServerStatus previewServers={this.previewServers} serverStats={servers} />;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;;;;;AAMO,MAAMA,kBAAN,CAAgD;EACrDC,WAAW,CACDC,SADC,EAEDC,OAFC,EAGDC,EAHC,EAIDC,MAJC,EAKDC,MALC,EAMT;IAAA,KALQJ,SAKR,GALQA,SAKR;IAAA,KAJQC,OAIR,GAJQA,OAIR;IAAA,KAHQC,EAGR,GAHQA,EAGR;IAAA,KAFQC,MAER,GAFQA,MAER;IAAA,KADQC,MACR,GADQA,MACR;IAAA,wDAEkC,EAFlC;IAAA;IAAA,sDAkEqB,IAAIC,OAAJ,CAAmBC,OAAD,IAAc,KAAKC,QAAL,GAAgBD,OAAhD,CAlErB;IAAA,sDAuEyC,EAvEzC;IAAA,uDAyEsCE,OAAD,IAAa;MAClD,KAAKC,YAAL,GAAoB,OAAOD,OAAP,KAAmB,UAAnB,GAAgCA,OAAO,CAAC,KAAKC,YAAN,CAAvC,GAA6DD,OAAjF;MACA,OAAOA,OAAP;IACD,CA5EC;IAAA,gDA8EO,MAAM;MACb,MAAM,CAACA,OAAD,EAAUE,UAAV,IAAwB,IAAAC,iBAAA,EAA6B,KAAKF,YAAlC,CAA9B;MACA,KAAKG,aAAL,GAAqBF,UAArB;MACA,KAAKD,YAAL,GAAoB,EAApB;MAEA,IAAAI,kBAAA,EAAU,MAAM;QACd,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,MAAP,CAAcR,OAAd,EAAuBS,KAAvB,CAA8BC,CAAD,IAAO,CAACA,CAAC,CAACC,SAAvC,CAAzB;QACA,IAAIL,gBAAJ,EAAsB,KAAKP,QAAL;MACvB,CAHD,EAGG,CAACC,OAAD,CAHH;MAKA,oBAAO,+BAAC,iCAAD;QAAqB,cAAc,EAAE,KAAKY,cAA1C;QAA0D,WAAW,EAAEZ;MAAvE,EAAP;IACD,CAzFC;EAAE;;EAIU,MAARa,QAAQ,CAACC,OAAD,EAA8B;IAC1C,KAAKC,kBAAL;IAEA,MAAMC,UAAU,GAAG,MAAM,KAAKxB,SAAL,CAAeyB,SAAf,CAAyBH,OAAO,CAACI,OAAR,IAAmB,EAA5C,CAAzB,CAH0C,CAI1C;;IACA,MAAMN,cAAc,GAAG,MAAM,KAAKnB,OAAL,CAAa0B,SAAb,CAAuBH,UAAvB,CAA7B,CAL0C,CAM1C;;IACAJ,cAAc,CAACQ,OAAf,CAAwBC,MAAD,IAAYA,MAAM,CAACC,MAAP,EAAnC,EAP0C,CAQ1C;;IACA,KAAK9B,SAAL,CAAe+B,OAAf,CACGC,QADH,CACY;MACRC,aAAa,EAAE,IADP;MAERC,UAAU,EAAEC,uBAAA,CAAWC,IAFf;MAGRC,UAAU,EAAE,KAHJ;MAIRC,SAAS,EAAEC,gCAAA,CAAqBC;IAJxB,CADZ,EAOGC,KAPH,CAOUC,GAAD,IAAS;MACd,MAAMC,GAAG,GAAI,wBAAb;MACA,KAAKvC,MAAL,CAAYwC,KAAZ,CAAkBD,GAAlB,EAAuBD,GAAvB;MACA,KAAKtC,MAAL,CAAYyC,OAAZ,CAAqB,GAAEF,GAAI,KAAID,GAAG,CAACI,OAAQ,EAA3C;IACD,CAXH;IAYA,KAAK1B,cAAL,GAAsB,KAAKA,cAAL,CAAoB2B,MAApB,CAA2B3B,cAA3B,CAAtB;EACD;;EAED4B,QAAQ,GAAiB;IACvB,MAAMC,YAAY,GAAG,KAAK7B,cAAL,CAAoB8B,GAApB,CAAuCrB,MAAD,IAAY;MACrE,OAAO,CACL;QACEsB,OAAO,EAAE,CAAE,YAAWtB,MAAM,CAACsB,OAAP,CAAeC,UAAf,CAA0BC,EAAG,EAA1C,CADX;QAEEC,MAAM,EAAG,oBAAmBzB,MAAM,CAAC0B,IAAK;MAF1C,CADK,EAKL;QACEJ,OAAO,EAAE,CAAE,SAAQtB,MAAM,CAACsB,OAAP,CAAeC,UAAf,CAA0BC,EAAG,EAAvC,CADX;QAEEC,MAAM,EAAG,oBAAmBzB,MAAM,CAAC0B,IAAK,EAF1C;QAGEC,EAAE,EAAE;MAHN,CALK,CAAP;IAWD,CAZoB,CAArB;IAcA,OAAO,IAAAC,iBAAA,EAAQR,YAAR,CAAP;EACD,CAnDoD,CAqDrD;;;EACQ1B,kBAAkB,GAAG;IAC3B;IACA,IAAAmC,uCAAA,EAAyB,KAAKvD,MAA9B,EAAsC;MACpCwD,OAAO,EAAGN,EAAD,IAAQ;QACf,KAAKzC,aAAL,CAAoBgD,KAAD,oCACdA,KADc;UAEjB,CAACP,EAAD,GAAM;YAAElC,SAAS,EAAE;UAAb;QAFW,EAAnB;MAID,CANmC;MAOpC0C,MAAM,EAAE,CAACR,EAAD,EAAKS,OAAL,KAAiB;QACvB,KAAKlD,aAAL,CAAoBgD,KAAD,oCACdA,KADc;UAEjB,CAACP,EAAD,GAAMS;QAFW,EAAnB;MAID;IAZmC,CAAtC;EAcD;;EAIY,IAATC,SAAS,GAAkB;IAC7B,OAAO,KAAKC,YAAZ;EACD;;AA5EoD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["preview.task.ts"],"names":["PREVIEW_TASK_NAME","PreviewTask","constructor","bundler","preview","execute","context","defs","getDefs","url","envRuntime","id","bundlingStrategy","getBundlingStrategy","env","envPreviewConfig","getEnvPreviewConfig","splitComponentBundle","computeTargetsContext","Object","assign","targets","computeTargets","bundlerContext","externalizePeer","name","compress","entry","publicPath","getPreviewDirectory","rootPath","development","dev","metaData","initiator","envId","getBundler","bundlerResults","run","results","computeResults","getLinkFileDirectory","CAPSULE_ARTIFACTS_DIR","outputPath","getPathsFromMap","capsule","moduleMap","compiler","getCompiler","map","files","file","path","getDistPathBySrcPath","relative"],"mappings":"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","sourcesContent":["import { resolve, join } from 'path';\nimport { ExecutionContext } from '@teambit/envs';\nimport { BuildContext, BuiltTaskResult, BuildTask, TaskLocation, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { Bundler, BundlerContext, BundlerMain, Target } from '@teambit/bundler';\nimport { Compiler } from '@teambit/compiler';\nimport { ComponentMap } from '@teambit/component';\nimport { Capsule } from '@teambit/isolator';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { 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\n aspectId = 'teambit.preview/preview';\n name = PREVIEW_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\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 externalizePeer: bundlingStrategy.name !== 'env',\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)));\n });\n }\n}\n"]}
1
+ {"version":3,"names":["PREVIEW_TASK_NAME","PreviewTask","constructor","bundler","preview","execute","context","defs","getDefs","url","envRuntime","id","bundlingStrategy","getBundlingStrategy","env","envPreviewConfig","getEnvPreviewConfig","splitComponentBundle","computeTargetsContext","Object","assign","targets","computeTargets","bundlerContext","externalizePeer","name","compress","entry","publicPath","getPreviewDirectory","rootPath","development","dev","metaData","initiator","envId","getBundler","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, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { Bundler, BundlerContext, BundlerMain, Target } from '@teambit/bundler';\nimport { Compiler } from '@teambit/compiler';\nimport { ComponentMap } from '@teambit/component';\nimport { Capsule } from '@teambit/isolator';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { 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\n aspectId = 'teambit.preview/preview';\n name = PREVIEW_TASK_NAME;\n location: TaskLocation = 'end';\n // readonly dependencies = [CompilerAspect.id];\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\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 externalizePeer: bundlingStrategy.name !== 'env',\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)));\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["rendering-context.ts"],"names":["RenderingContext","constructor","contexts","options","get","aspectId","contextFactory"],"mappings":";;;;;;;AAKO,MAAMA,gBAAN,CAAuB;AAC5BC,EAAAA,WAAW,CAASC,QAAT,EAAiDC,OAAgC,GAAG,EAApF,EAAwF;AAAA,SAA/ED,QAA+E,GAA/EA,QAA+E;AAAA,SAAvCC,OAAuC,GAAvCA,OAAuC;AAAE;AAErG;AACF;AACA;;;AACEC,EAAAA,GAAG,CAACC,QAAD,EAAmB;AACpB,UAAMC,cAAc,GAAG,KAAKJ,QAAL,CAAcE,GAAd,CAAkBC,QAAlB,CAAvB;AACA,WAAOC,cAAP,aAAOA,cAAP,uBAAOA,cAAc,CAAG,KAAKH,OAAR,CAArB;AACD;;AAT2B","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(private contexts: RenderingContextSlot, private options: RenderingContextOptions = {}) {}\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"]}
1
+ {"version":3,"names":["RenderingContext","constructor","contexts","options","get","aspectId","contextFactory"],"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(private contexts: RenderingContextSlot, private options: RenderingContextOptions = {}) {}\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,gBAAN,CAAuB;EAC5BC,WAAW,CAASC,QAAT,EAAiDC,OAAgC,GAAG,EAApF,EAAwF;IAAA,KAA/ED,QAA+E,GAA/EA,QAA+E;IAAA,KAAvCC,OAAuC,GAAvCA,OAAuC;EAAE;EAErG;AACF;AACA;;;EACEC,GAAG,CAACC,QAAD,EAAmB;IACpB,MAAMC,cAAc,GAAG,KAAKJ,QAAL,CAAcE,GAAd,CAAkBC,QAAlB,CAAvB;IACA,OAAOC,cAAP,aAAOA,cAAP,uBAAOA,cAAc,CAAG,KAAKH,OAAR,CAArB;EACD;;AAT2B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["component-strategy.ts"],"names":["PREVIEW_CHUNK_SUFFIX","COMPONENT_CHUNK_SUFFIX","PREVIEW_CHUNK_FILENAME_SUFFIX","COMPONENT_CHUNK_FILENAME_SUFFIX","COMPONENT_STRATEGY_SIZE_KEY_NAME","COMPONENT_STRATEGY_ARTIFACT_NAME","ComponentBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","origComponents","capsuleNetwork","originalSeedersCapsules","map","capsule","component","entriesArr","Promise","all","computeComponentEntry","chunkSize","config","maxChunkSize","chunks","targets","currentChunk","entries","components","forEach","entry","Object","assign","push","path","computePaths","componentPath","getPaths","mainFile","componentPreviewChunkId","getComponentChunkId","id","filename","getComponentChunkFileName","toString","fsCompatible","ignoreVersion","import","library","name","type","splitComponentBundle","componentChunkId","toStringWithoutVersion","componentId","idstr","suffix","getAssetAbsolutePath","asset","copyAssetsToCapsules","result","graphCapsules","getCapsule","files","findAssetsForComponent","assets","entriesAssetsMap","artifactDirFullPath","getArtifactDirectory","filePath","PreviewOutputFileNotFound","destFilePath","fs","copyFileSync","undefined","componentEntryId","componentPreviewEntryId","componentFiles","componentAuxiliaryFiles","auxiliaryAssets","componentPreviewFiles","componentPreviewAuxiliaryFiles","concat","CAPSULE_ARTIFACTS_DIR","computeComponentMetadata","file","size","compressedSize","filesTotalSize","assetsSize","compressedTotalFiles","compressedAssetsSize","assetsTotalSize","auxiliaryAssetsSize","compressedTotalAssets","compressedAuxiliaryAssetsSize","totalSize","compressedTotal","metadata","totalFiles","totalAssets","total","computeResults","results","componentsResults","computeTargetResult","artifacts","getArtifactDef","errors","err","message","warning","warnings","startTime","endTime","globPatterns","rootDir","getDirName","envName","replace","capsulesRootDir","compiler","env","getCompiler","getDistPathBySrcPath","relative","getComponentOutputPath","defs","BitError","moduleMapsPromise","previewDef","moduleMap","getModuleMap","maybeFiles","get","compiledPaths","prefix","paths","moduleMaps","contents","writeLinkContents"],"mappings":"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","sourcesContent":["import { join, resolve, basename, dirname } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { Component } from '@teambit/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, isEmpty, chunk } from 'lodash';\nimport { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport type { Capsule } from '@teambit/isolator';\nimport { CAPSULE_ARTIFACTS_DIR, ComponentResult } from '@teambit/builder';\nimport type { PkgMain } from '@teambit/pkg';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap } from '@teambit/bundler';\nimport { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport type { PreviewDefinition } from '../preview-definition';\nimport type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';\nimport { generateComponentLink } from './generate-component-link';\nimport { PreviewOutputFileNotFound } from '../exceptions';\n\nexport const PREVIEW_CHUNK_SUFFIX = 'preview';\nexport const COMPONENT_CHUNK_SUFFIX = 'component';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = `${PREVIEW_CHUNK_SUFFIX}.js`;\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = `${COMPONENT_CHUNK_SUFFIX}.js`;\n\nexport const COMPONENT_STRATEGY_SIZE_KEY_NAME = 'size';\nexport const COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';\n\ntype ComponentEntry = {\n component: Component;\n entries: Object;\n};\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class ComponentBundlingStrategy implements BundlingStrategy {\n name = 'component';\n\n constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n\n // const entriesArr = flatten(\n // await Promise.all(\n // context.capsuleNetwork.seedersCapsules.map((capsule) => {\n // return this.computeComponentEntry(previewDefs, capsule.component, context);\n // }, {})\n // )\n // );\n\n const origComponents = context.capsuleNetwork.originalSeedersCapsules.map((capsule) => capsule.component);\n\n const entriesArr = await Promise.all(\n origComponents.map((component) => {\n return this.computeComponentEntry(previewDefs, component, context);\n }, {})\n );\n\n const chunkSize = this.preview.config.maxChunkSize;\n\n const chunks = chunkSize ? chunk(entriesArr, chunkSize) : [entriesArr];\n\n const targets = chunks.map((currentChunk) => {\n const entries: BundlerEntryMap = {};\n const components: Component[] = [];\n currentChunk.forEach((entry) => {\n Object.assign(entries, entry.entries);\n components.push(entry.component);\n });\n\n return {\n entries,\n components,\n outputPath,\n };\n });\n\n return targets;\n // const entries = entriesArr.reduce((entriesMap, entry) => {\n // entriesMap[entry.library.name] = entry;\n // return entriesMap;\n // }, {});\n\n // const modules = await Promise.all(entriesArr.map(async (entry) => {\n // const dependencies = await this.dependencyResolver.getDependencies(entry.component);\n // const manifest = dependencies.toDependenciesManifest();\n // const peer = Object.entries(manifest.peerDependencies || {}).reduce((acc, [packageName, version]) => {\n // acc[packageName] = {\n // singleton: true,\n // requiredVersion: version\n // };\n\n // return acc;\n // }, {});\n // // console.log(entry);\n // return {\n // name: entry.library.name,\n // exposes: {\n // '.': entry.import || ''\n // },\n // shared: {\n // ...manifest.dependencies,\n // ...peer\n // },\n // };\n // }));\n }\n\n async computeComponentEntry(\n previewDefs: PreviewDefinition[],\n component: Component,\n context: ComputeTargetsContext\n ): Promise<ComponentEntry> {\n const path = await this.computePaths(previewDefs, context, component);\n const [componentPath] = this.getPaths(context, component, [component.mainFile]);\n const componentPreviewChunkId = this.getComponentChunkId(component.id, 'preview');\n\n const entries = {\n [componentPreviewChunkId]: {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'preview'\n ),\n import: path,\n // dependOn: component.id.toStringWithoutVersion(),\n library: {\n name: componentPreviewChunkId,\n type: 'umd',\n },\n },\n };\n if (context.splitComponentBundle) {\n const componentChunkId = component.id.toStringWithoutVersion();\n entries[componentChunkId] = {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'component'\n ),\n import: componentPath,\n library: {\n name: componentChunkId,\n type: 'umd',\n },\n };\n }\n return { component, entries };\n }\n\n private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? componentId.toStringWithoutVersion()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkFileName(idstr: string, type: 'component' | 'preview') {\n const suffix = type === 'component' ? COMPONENT_CHUNK_FILENAME_SUFFIX : PREVIEW_CHUNK_FILENAME_SUFFIX;\n return `${idstr}-${suffix}`;\n }\n\n private getAssetAbsolutePath(context: BundlerContext, asset: Asset): string {\n const path = this.getOutputPath(context);\n return join(path, 'public', asset.name);\n }\n\n copyAssetsToCapsules(context: BundlerContext, result: BundlerResult) {\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n const files = this.findAssetsForComponent(component, result.assets, result.entriesAssetsMap || {});\n if (!files) return;\n const artifactDirFullPath = join(capsule.path, this.getArtifactDirectory());\n // We don't use the mkdirSync as it uses the capsule fs which uses memfs, which doesn't know to handle nested none existing folders\n mkdirpSync(artifactDirFullPath);\n\n files.forEach((asset) => {\n const filePath = this.getAssetAbsolutePath(context, asset);\n if (!existsSync(filePath)) {\n throw new PreviewOutputFileNotFound(component.id, filePath);\n }\n const destFilePath = join(artifactDirFullPath, asset.name);\n mkdirpSync(dirname(destFilePath));\n capsule.fs.copyFileSync(filePath, destFilePath);\n });\n });\n }\n\n // private getCssFileName(componentId: ComponentID): string {\n // return `${componentId.toString({ ignoreVersion: true, fsCompatible: true })}.css`;\n // }\n\n private findAssetsForComponent(\n component: Component,\n assets: Asset[],\n entriesAssetsMap: EntriesAssetsMap\n ): Asset[] | undefined {\n if (!assets) return undefined;\n\n const componentEntryId = component.id.toStringWithoutVersion();\n const componentPreviewEntryId = this.getComponentChunkId(component.id, 'preview');\n const componentFiles = entriesAssetsMap[componentEntryId]?.assets || [];\n const componentAuxiliaryFiles = entriesAssetsMap[componentEntryId]?.auxiliaryAssets || [];\n const componentPreviewFiles = entriesAssetsMap[componentPreviewEntryId]?.assets || [];\n const componentPreviewAuxiliaryFiles = entriesAssetsMap[componentPreviewEntryId]?.auxiliaryAssets || [];\n\n const files = componentFiles\n .concat(componentAuxiliaryFiles)\n .concat(componentPreviewFiles)\n .concat(componentPreviewAuxiliaryFiles);\n return files;\n }\n\n private getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview');\n }\n\n private computeComponentMetadata(\n context: BundlerContext,\n result: BundlerResult,\n component: Component\n ): ComponentPreviewMetaData {\n const componentEntryId = component.id.toStringWithoutVersion();\n if (!result?.entriesAssetsMap || !result?.entriesAssetsMap[componentEntryId]) {\n return {};\n }\n const files = (result.entriesAssetsMap[componentEntryId]?.assets || []).map((file) => {\n return {\n name: basename(file.name),\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const filesTotalSize = result.entriesAssetsMap[componentEntryId]?.assetsSize || 0;\n const compressedTotalFiles = result.entriesAssetsMap[componentEntryId]?.compressedAssetsSize || 0;\n const assets = (result.entriesAssetsMap[componentEntryId]?.auxiliaryAssets || []).map((file) => {\n return {\n name: basename(file.name),\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const assetsTotalSize = result.entriesAssetsMap[componentEntryId]?.auxiliaryAssetsSize || 0;\n const compressedTotalAssets = result.entriesAssetsMap[componentEntryId]?.compressedAuxiliaryAssetsSize || 0;\n const totalSize = filesTotalSize + assetsTotalSize;\n const compressedTotal = compressedTotalFiles + compressedTotalAssets;\n\n const metadata = {\n [COMPONENT_STRATEGY_SIZE_KEY_NAME]: {\n files,\n assets,\n totalFiles: filesTotalSize,\n totalAssets: assetsTotalSize,\n total: totalSize,\n compressedTotalFiles,\n compressedTotalAssets,\n compressedTotal,\n },\n };\n\n return metadata;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const componentsResults = flatten(\n await Promise.all(results.map((result) => this.computeTargetResult(context, result)))\n );\n\n const artifacts = this.getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n async computeTargetResult(context: BundlerContext, result: BundlerResult) {\n if (isEmpty(result.errors)) {\n // In case there are errors files will not be emitted so trying to copy them will fail anyway\n this.copyAssetsToCapsules(context, result);\n }\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n const metadata = this.computeComponentMetadata(context, result, component);\n return {\n component,\n metadata,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n return componentsResults;\n }\n\n private getArtifactDef() {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n // const env: 'env' = 'env';\n // const rootDir = this.getDirName(context);\n\n return [\n {\n name: COMPONENT_STRATEGY_ARTIFACT_NAME,\n globPatterns: ['**'],\n rootDir: this.getArtifactDirectory(),\n // context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, component: Component, files: AbstractVinyl[]) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return [];\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private getComponentOutputPath(capsule: Capsule) {\n return resolve(`${capsule.path}`);\n }\n\n private async computePaths(\n defs: PreviewDefinition[],\n context: ComputeTargetsContext,\n component: Component\n ): Promise<string> {\n // const previewMain = await this.preview.writePreviewRuntime(context);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n // if (!capsule) return undefined;\n if (!capsule)\n throw new BitError(\n `could not find capsule for component ${component.id.toString()} during compute paths to bundle`\n );\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap([component]);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, component, files);\n // const files = flatten(paths.toArray().map(([, file]) => file));\n\n return {\n prefix: previewDef.prefix,\n paths: compiledPaths,\n };\n });\n\n const moduleMaps = flatten(await Promise.all(moduleMapsPromise));\n\n const contents = generateComponentLink(moduleMaps);\n return this.preview.writeLinkContents(contents, this.getComponentOutputPath(capsule), 'preview');\n // return flatten(moduleMaps);\n }\n}\n"]}
1
+ {"version":3,"names":["PREVIEW_CHUNK_SUFFIX","COMPONENT_CHUNK_SUFFIX","PREVIEW_CHUNK_FILENAME_SUFFIX","COMPONENT_CHUNK_FILENAME_SUFFIX","COMPONENT_STRATEGY_SIZE_KEY_NAME","COMPONENT_STRATEGY_ARTIFACT_NAME","ComponentBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","origComponents","capsuleNetwork","originalSeedersCapsules","map","capsule","component","entriesArr","Promise","all","computeComponentEntry","chunkSize","config","maxChunkSize","chunks","chunk","targets","currentChunk","entries","components","forEach","entry","Object","assign","push","path","computePaths","componentPath","getPaths","mainFile","componentPreviewChunkId","getComponentChunkId","id","filename","getComponentChunkFileName","toString","fsCompatible","ignoreVersion","import","library","name","type","splitComponentBundle","componentChunkId","toStringWithoutVersion","componentId","idstr","suffix","getAssetAbsolutePath","asset","join","copyAssetsToCapsules","result","graphCapsules","getCapsule","files","findAssetsForComponent","assets","entriesAssetsMap","artifactDirFullPath","getArtifactDirectory","filePath","PreviewOutputFileNotFound","destFilePath","dirname","fs","copyFileSync","undefined","componentEntryId","componentPreviewEntryId","componentFiles","componentAuxiliaryFiles","auxiliaryAssets","componentPreviewFiles","componentPreviewAuxiliaryFiles","concat","CAPSULE_ARTIFACTS_DIR","computeComponentMetadata","file","basename","size","compressedSize","filesTotalSize","assetsSize","compressedTotalFiles","compressedAssetsSize","assetsTotalSize","auxiliaryAssetsSize","compressedTotalAssets","compressedAuxiliaryAssetsSize","totalSize","compressedTotal","metadata","totalFiles","totalAssets","total","computeResults","results","componentsResults","flatten","computeTargetResult","artifacts","getArtifactDef","isEmpty","errors","err","message","warning","warnings","startTime","endTime","globPatterns","rootDir","getDirName","envName","replace","resolve","capsulesRootDir","compiler","env","getCompiler","getDistPathBySrcPath","relative","getComponentOutputPath","defs","BitError","moduleMapsPromise","previewDef","moduleMap","getModuleMap","maybeFiles","get","compiledPaths","prefix","paths","moduleMaps","contents","generateComponentLink","writeLinkContents"],"sources":["component-strategy.ts"],"sourcesContent":["import { join, resolve, basename, dirname } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { Component } from '@teambit/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, isEmpty, chunk } from 'lodash';\nimport { Compiler } from '@teambit/compiler';\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport type { Capsule } from '@teambit/isolator';\nimport { CAPSULE_ARTIFACTS_DIR, ComponentResult } from '@teambit/builder';\nimport type { PkgMain } from '@teambit/pkg';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { BundlerResult, BundlerContext, Asset, BundlerEntryMap, EntriesAssetsMap } from '@teambit/bundler';\nimport { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport type { PreviewDefinition } from '../preview-definition';\nimport type { ComponentPreviewMetaData, PreviewMain } from '../preview.main.runtime';\nimport { generateComponentLink } from './generate-component-link';\nimport { PreviewOutputFileNotFound } from '../exceptions';\n\nexport const PREVIEW_CHUNK_SUFFIX = 'preview';\nexport const COMPONENT_CHUNK_SUFFIX = 'component';\nexport const PREVIEW_CHUNK_FILENAME_SUFFIX = `${PREVIEW_CHUNK_SUFFIX}.js`;\nexport const COMPONENT_CHUNK_FILENAME_SUFFIX = `${COMPONENT_CHUNK_SUFFIX}.js`;\n\nexport const COMPONENT_STRATEGY_SIZE_KEY_NAME = 'size';\nexport const COMPONENT_STRATEGY_ARTIFACT_NAME = 'preview-component';\n\ntype ComponentEntry = {\n component: Component;\n entries: Object;\n};\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class ComponentBundlingStrategy implements BundlingStrategy {\n name = 'component';\n\n constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n\n // const entriesArr = flatten(\n // await Promise.all(\n // context.capsuleNetwork.seedersCapsules.map((capsule) => {\n // return this.computeComponentEntry(previewDefs, capsule.component, context);\n // }, {})\n // )\n // );\n\n const origComponents = context.capsuleNetwork.originalSeedersCapsules.map((capsule) => capsule.component);\n\n const entriesArr = await Promise.all(\n origComponents.map((component) => {\n return this.computeComponentEntry(previewDefs, component, context);\n }, {})\n );\n\n const chunkSize = this.preview.config.maxChunkSize;\n\n const chunks = chunkSize ? chunk(entriesArr, chunkSize) : [entriesArr];\n\n const targets = chunks.map((currentChunk) => {\n const entries: BundlerEntryMap = {};\n const components: Component[] = [];\n currentChunk.forEach((entry) => {\n Object.assign(entries, entry.entries);\n components.push(entry.component);\n });\n\n return {\n entries,\n components,\n outputPath,\n };\n });\n\n return targets;\n // const entries = entriesArr.reduce((entriesMap, entry) => {\n // entriesMap[entry.library.name] = entry;\n // return entriesMap;\n // }, {});\n\n // const modules = await Promise.all(entriesArr.map(async (entry) => {\n // const dependencies = await this.dependencyResolver.getDependencies(entry.component);\n // const manifest = dependencies.toDependenciesManifest();\n // const peer = Object.entries(manifest.peerDependencies || {}).reduce((acc, [packageName, version]) => {\n // acc[packageName] = {\n // singleton: true,\n // requiredVersion: version\n // };\n\n // return acc;\n // }, {});\n // // console.log(entry);\n // return {\n // name: entry.library.name,\n // exposes: {\n // '.': entry.import || ''\n // },\n // shared: {\n // ...manifest.dependencies,\n // ...peer\n // },\n // };\n // }));\n }\n\n async computeComponentEntry(\n previewDefs: PreviewDefinition[],\n component: Component,\n context: ComputeTargetsContext\n ): Promise<ComponentEntry> {\n const path = await this.computePaths(previewDefs, context, component);\n const [componentPath] = this.getPaths(context, component, [component.mainFile]);\n const componentPreviewChunkId = this.getComponentChunkId(component.id, 'preview');\n\n const entries = {\n [componentPreviewChunkId]: {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'preview'\n ),\n import: path,\n // dependOn: component.id.toStringWithoutVersion(),\n library: {\n name: componentPreviewChunkId,\n type: 'umd',\n },\n },\n };\n if (context.splitComponentBundle) {\n const componentChunkId = component.id.toStringWithoutVersion();\n entries[componentChunkId] = {\n filename: this.getComponentChunkFileName(\n component.id.toString({\n fsCompatible: true,\n ignoreVersion: true,\n }),\n 'component'\n ),\n import: componentPath,\n library: {\n name: componentChunkId,\n type: 'umd',\n },\n };\n }\n return { component, entries };\n }\n\n private getComponentChunkId(componentId: ComponentID, type: 'component' | 'preview') {\n const id =\n type === 'component'\n ? componentId.toStringWithoutVersion()\n : `${componentId.toStringWithoutVersion()}-${PREVIEW_CHUNK_SUFFIX}`;\n return id;\n }\n\n private getComponentChunkFileName(idstr: string, type: 'component' | 'preview') {\n const suffix = type === 'component' ? COMPONENT_CHUNK_FILENAME_SUFFIX : PREVIEW_CHUNK_FILENAME_SUFFIX;\n return `${idstr}-${suffix}`;\n }\n\n private getAssetAbsolutePath(context: BundlerContext, asset: Asset): string {\n const path = this.getOutputPath(context);\n return join(path, 'public', asset.name);\n }\n\n copyAssetsToCapsules(context: BundlerContext, result: BundlerResult) {\n context.components.forEach((component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return;\n const files = this.findAssetsForComponent(component, result.assets, result.entriesAssetsMap || {});\n if (!files) return;\n const artifactDirFullPath = join(capsule.path, this.getArtifactDirectory());\n // We don't use the mkdirSync as it uses the capsule fs which uses memfs, which doesn't know to handle nested none existing folders\n mkdirpSync(artifactDirFullPath);\n\n files.forEach((asset) => {\n const filePath = this.getAssetAbsolutePath(context, asset);\n if (!existsSync(filePath)) {\n throw new PreviewOutputFileNotFound(component.id, filePath);\n }\n const destFilePath = join(artifactDirFullPath, asset.name);\n mkdirpSync(dirname(destFilePath));\n capsule.fs.copyFileSync(filePath, destFilePath);\n });\n });\n }\n\n // private getCssFileName(componentId: ComponentID): string {\n // return `${componentId.toString({ ignoreVersion: true, fsCompatible: true })}.css`;\n // }\n\n private findAssetsForComponent(\n component: Component,\n assets: Asset[],\n entriesAssetsMap: EntriesAssetsMap\n ): Asset[] | undefined {\n if (!assets) return undefined;\n\n const componentEntryId = component.id.toStringWithoutVersion();\n const componentPreviewEntryId = this.getComponentChunkId(component.id, 'preview');\n const componentFiles = entriesAssetsMap[componentEntryId]?.assets || [];\n const componentAuxiliaryFiles = entriesAssetsMap[componentEntryId]?.auxiliaryAssets || [];\n const componentPreviewFiles = entriesAssetsMap[componentPreviewEntryId]?.assets || [];\n const componentPreviewAuxiliaryFiles = entriesAssetsMap[componentPreviewEntryId]?.auxiliaryAssets || [];\n\n const files = componentFiles\n .concat(componentAuxiliaryFiles)\n .concat(componentPreviewFiles)\n .concat(componentPreviewAuxiliaryFiles);\n return files;\n }\n\n private getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, 'preview');\n }\n\n private computeComponentMetadata(\n context: BundlerContext,\n result: BundlerResult,\n component: Component\n ): ComponentPreviewMetaData {\n const componentEntryId = component.id.toStringWithoutVersion();\n if (!result?.entriesAssetsMap || !result?.entriesAssetsMap[componentEntryId]) {\n return {};\n }\n const files = (result.entriesAssetsMap[componentEntryId]?.assets || []).map((file) => {\n return {\n name: basename(file.name),\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const filesTotalSize = result.entriesAssetsMap[componentEntryId]?.assetsSize || 0;\n const compressedTotalFiles = result.entriesAssetsMap[componentEntryId]?.compressedAssetsSize || 0;\n const assets = (result.entriesAssetsMap[componentEntryId]?.auxiliaryAssets || []).map((file) => {\n return {\n name: basename(file.name),\n size: file.size,\n compressedSize: file.compressedSize,\n };\n });\n const assetsTotalSize = result.entriesAssetsMap[componentEntryId]?.auxiliaryAssetsSize || 0;\n const compressedTotalAssets = result.entriesAssetsMap[componentEntryId]?.compressedAuxiliaryAssetsSize || 0;\n const totalSize = filesTotalSize + assetsTotalSize;\n const compressedTotal = compressedTotalFiles + compressedTotalAssets;\n\n const metadata = {\n [COMPONENT_STRATEGY_SIZE_KEY_NAME]: {\n files,\n assets,\n totalFiles: filesTotalSize,\n totalAssets: assetsTotalSize,\n total: totalSize,\n compressedTotalFiles,\n compressedTotalAssets,\n compressedTotal,\n },\n };\n\n return metadata;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const componentsResults = flatten(\n await Promise.all(results.map((result) => this.computeTargetResult(context, result)))\n );\n\n const artifacts = this.getArtifactDef();\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n async computeTargetResult(context: BundlerContext, result: BundlerResult) {\n if (isEmpty(result.errors)) {\n // In case there are errors files will not be emitted so trying to copy them will fail anyway\n this.copyAssetsToCapsules(context, result);\n }\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n const metadata = this.computeComponentMetadata(context, result, component);\n return {\n component,\n metadata,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n return componentsResults;\n }\n\n private getArtifactDef() {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n // const env: 'env' = 'env';\n // const rootDir = this.getDirName(context);\n\n return [\n {\n name: COMPONENT_STRATEGY_ARTIFACT_NAME,\n globPatterns: ['**'],\n rootDir: this.getArtifactDirectory(),\n // context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, component: Component, files: AbstractVinyl[]) {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) return [];\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private getComponentOutputPath(capsule: Capsule) {\n return resolve(`${capsule.path}`);\n }\n\n private async computePaths(\n defs: PreviewDefinition[],\n context: ComputeTargetsContext,\n component: Component\n ): Promise<string> {\n // const previewMain = await this.preview.writePreviewRuntime(context);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n // if (!capsule) return undefined;\n if (!capsule)\n throw new BitError(\n `could not find capsule for component ${component.id.toString()} during compute paths to bundle`\n );\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap([component]);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, component, files);\n // const files = flatten(paths.toArray().map(([, file]) => file));\n\n return {\n prefix: previewDef.prefix,\n paths: compiledPaths,\n };\n });\n\n const moduleMaps = flatten(await Promise.all(moduleMapsPromise));\n\n const contents = generateComponentLink(moduleMaps);\n return this.preview.writeLinkContents(contents, this.getComponentOutputPath(capsule), 'preview');\n // return flatten(moduleMaps);\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["env-strategy.ts"],"names":["EnvBundlingStrategy","constructor","preview","computeTargets","context","previewDefs","outputPath","getOutputPath","htmlConfig","generateHtmlConfig","dev","entries","computePaths","html","components","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","component","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","env","rootDir","getDirName","name","globPatterns","envName","id","replace","capsuleNetwork","capsulesRootDir","getPaths","files","capsule","compiler","getCompiler","file","path","getDistPathBySrcPath","relative","defs","previewMain","writePreviewRuntime","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","graphCapsules","getCapsule","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","undefined","toArray","concat","moduleMaps","Promise","all"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AASA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AACA;AACA;AACO,MAAMA,mBAAN,CAAsD;AAG3DC,EAAAA,WAAW,CAASC,OAAT,EAA+B;AAAA,SAAtBA,OAAsB,GAAtBA,OAAsB;AAAA,kDAFnC,KAEmC;AAAE;;AAExB,QAAdC,cAAc,CAACC,OAAD,EAAiCC,WAAjC,EAAmE;AACrF,UAAMC,UAAU,GAAG,KAAKC,aAAL,CAAmBH,OAAnB,CAAnB;AACA,QAAI,CAAC,2BAAWE,UAAX,CAAL,EAA6B,2BAAWA,UAAX;AAC7B,UAAME,UAAU,GAAG,KAAKC,kBAAL,CAAwB;AAAEC,MAAAA,GAAG,EAAEN,OAAO,CAACM;AAAf,KAAxB,CAAnB;AAEA,WAAO,CACL;AACEC,MAAAA,OAAO,EAAE,MAAM,KAAKC,YAAL,CAAkBN,UAAlB,EAA8BD,WAA9B,EAA2CD,OAA3C,CADjB;AAEES,MAAAA,IAAI,EAAE,CAACL,UAAD,CAFR;AAGEM,MAAAA,UAAU,EAAEV,OAAO,CAACU,UAHtB;AAIER,MAAAA;AAJF,KADK,CAAP;AAQD;;AAEOG,EAAAA,kBAAkB,CAACM,OAAD,EAAgD;AAAA;;AACxE,UAAMC,MAAM,GAAG;AACbC,MAAAA,KAAK,EAAE,SADM;AAEbC,MAAAA,eAAe,EAAE,qBAAK,SAAL,CAFJ;AAGbC,MAAAA,KAAK,EAAE,KAHM;AAIbC,MAAAA,MAAM,kBAAEL,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEL,GAAX,uDAAkB;AAJX,KAAf;AAMA,WAAOM,MAAP;AACD;;AAEmB,QAAdK,cAAc,CAACjB,OAAD,EAA0BkB,OAA1B,EAAoD;AACtE,UAAMC,MAAM,GAAGD,OAAO,CAAC,CAAD,CAAtB;AAEA,UAAME,iBAAoC,GAAGD,MAAM,CAACT,UAAP,CAAkBW,GAAlB,CAAuBC,SAAD,IAAe;AAChF,aAAO;AACLA,QAAAA,SADK;AAELC,QAAAA,MAAM,EAAEJ,MAAM,CAACI,MAAP,CAAcF,GAAd,CAAmBG,GAAD,IAAU,OAAOA,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgCA,GAAG,CAACC,OAAhE,CAFH;AAGLC,QAAAA,OAAO,EAAEP,MAAM,CAACQ,QAHX;AAILC,QAAAA,SAAS,EAAET,MAAM,CAACS,SAJb;AAKLC,QAAAA,OAAO,EAAEV,MAAM,CAACU;AALX,OAAP;AAOD,KAR4C,CAA7C;AAUA,UAAMC,SAAS,GAAG,KAAKC,cAAL,CAAoB/B,OAApB,CAAlB;AAEA,WAAO;AACLoB,MAAAA,iBADK;AAELU,MAAAA;AAFK,KAAP;AAID;;AAEOC,EAAAA,cAAc,CAAC/B,OAAD,EAAiC;AACrD;AACA,UAAMgC,GAAU,GAAG,KAAnB;AACA,UAAMC,OAAO,GAAG,KAAKC,UAAL,CAAgBlC,OAAhB,CAAhB;AAEA,WAAO,CACL;AACEmC,MAAAA,IAAI,EAAE,SADR;AAEEC,MAAAA,YAAY,EAAE,CAAC,WAAD,CAFhB;AAGEH,MAAAA,OAHF;AAIEjC,MAAAA,OAAO,EAAEgC;AAJX,KADK,CAAP;AAQD;;AAEDE,EAAAA,UAAU,CAAClC,OAAD,EAAiC;AACzC,UAAMqC,OAAO,GAAGrC,OAAO,CAACsC,EAAR,CAAWC,OAAX,CAAmB,GAAnB,EAAwB,IAAxB,CAAhB;AACA,WAAQ,GAAEF,OAAQ,UAAlB;AACD;;AAEOlC,EAAAA,aAAa,CAACH,OAAD,EAAiC;AACpD,WAAO,qBAAS,GAAEA,OAAO,CAACwC,cAAR,CAAuBC,eAAgB,IAAG,KAAKP,UAAL,CAAgBlC,OAAhB,CAAyB,EAA9E,CAAP;AACD;;AAEO0C,EAAAA,QAAQ,CAAC1C,OAAD,EAAiC2C,KAAjC,EAAyDC,OAAzD,EAA2E;AACzF,UAAMC,QAAkB,GAAG7C,OAAO,CAACgC,GAAR,CAAYc,WAAZ,EAA3B;AACA,WAAOH,KAAK,CAACtB,GAAN,CAAW0B,IAAD,IAAU,kBAAKH,OAAO,CAACI,IAAb,EAAmBH,QAAQ,CAACI,oBAAT,CAA8BF,IAAI,CAACG,QAAnC,CAAnB,CAApB,CAAP;AACD;;AAEyB,QAAZ1C,YAAY,CACxBN,UADwB,EAExBiD,IAFwB,EAGxBnD,OAHwB,EAIL;AACnB,UAAMoD,WAAW,GAAG,MAAM,KAAKtD,OAAL,CAAauD,mBAAb,CAAiCrD,OAAjC,CAA1B;AACA,UAAMsD,iBAAiB,GAAGH,IAAI,CAAC9B,GAAL,CAAS,MAAOkC,UAAP,IAAsB;AACvD,YAAMC,SAAS,GAAG,MAAMD,UAAU,CAACE,YAAX,CAAwBzD,OAAO,CAACU,UAAhC,CAAxB;;AAEA,YAAMgD,KAAK,GAAGC,0BAAaC,EAAb,CAAgB5D,OAAO,CAACU,UAAxB,EAAqCY,SAAD,IAAe;AAC/D,cAAMsB,OAAO,GAAG5C,OAAO,CAACwC,cAAR,CAAuBqB,aAAvB,CAAqCC,UAArC,CAAgDxC,SAAS,CAACgB,EAA1D,CAAhB;AACA,cAAMyB,UAAU,GAAGP,SAAS,CAACQ,GAAV,CAAc1C,SAAd,CAAnB;AACA,YAAI,CAACyC,UAAD,IAAe,CAACnB,OAApB,EAA6B,OAAO,EAAP;AAC7B,cAAM,GAAGD,KAAH,IAAYoB,UAAlB;AACA,cAAME,aAAa,GAAG,KAAKvB,QAAL,CAAc1C,OAAd,EAAuB2C,KAAvB,EAA8BC,OAA9B,CAAtB;AACA,eAAOqB,aAAP;AACD,OAPa,CAAd;;AASA,YAAMC,QAAQ,GAAGX,UAAU,CAACY,kBAAX,GAAgC,MAAMZ,UAAU,CAACY,kBAAX,CAA8BnE,OAA9B,CAAtC,GAA+E,WAAhG;AAEA,YAAMoE,IAAI,GAAG,KAAKtE,OAAL,CAAauE,SAAb,CACXd,UAAU,CAACe,MADA,EAEXZ,KAFW,EAGXH,UAAU,CAACY,kBAAX,GAAgC,MAAMZ,UAAU,CAACY,kBAAX,CAA8BnE,OAA9B,CAAtC,GAA+EuE,SAHpE,EAIXrE,UAJW,EAKX,KALW,CAAb;AAQA,YAAMyC,KAAK,GAAG,uBAAQe,KAAK,CAACc,OAAN,GAAgBnD,GAAhB,CAAoB,CAAC,GAAG0B,IAAH,CAAD,KAAcA,IAAlC,CAAR,EAAiD0B,MAAjD,CAAwD,CAACL,IAAD,CAAxD,CAAd;AAEA,UAAIF,QAAJ,EAAc,OAAOvB,KAAK,CAAC8B,MAAN,CAAa,CAACP,QAAD,CAAb,CAAP;AACd,aAAOvB,KAAP;AACD,KA1ByB,CAA1B;AA4BA,UAAM+B,UAAU,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYtB,iBAAZ,CAAzB;AAEA,WAAO,uBAAQoB,UAAU,CAACD,MAAX,CAAkB,CAACrB,WAAD,CAAlB,CAAR,CAAP;AACD;;AArH0D","sourcesContent":["import { join, resolve } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { flatten } from 'lodash';\nimport { ComponentMap } from '@teambit/component';\nimport { Compiler } from '@teambit/compiler';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { Capsule } from '@teambit/isolator';\nimport { ComponentResult } from '@teambit/builder';\nimport { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport { PreviewDefinition } from '../preview-definition';\nimport { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../webpack';\n\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class EnvBundlingStrategy implements BundlingStrategy {\n name = 'env';\n\n constructor(private preview: PreviewMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const htmlConfig = this.generateHtmlConfig({ dev: context.dev });\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n html: [htmlConfig],\n components: context.components,\n outputPath,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext) {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: 'preview',\n globPatterns: ['public/**'],\n rootDir,\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewRuntime(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : undefined,\n outputPath,\n false\n );\n\n const files = flatten(paths.toArray().map(([, file]) => file)).concat([link]);\n\n if (template) return files.concat([template]);\n return files;\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n return flatten(moduleMaps.concat([previewMain]));\n }\n}\n"]}
1
+ {"version":3,"names":["EnvBundlingStrategy","constructor","preview","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","htmlConfig","generateHtmlConfig","dev","entries","computePaths","html","components","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","component","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","env","rootDir","getDirName","name","globPatterns","envName","id","replace","resolve","capsuleNetwork","capsulesRootDir","getPaths","files","capsule","compiler","getCompiler","file","join","path","getDistPathBySrcPath","relative","defs","previewMain","writePreviewRuntime","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","graphCapsules","getCapsule","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","undefined","flatten","toArray","concat","moduleMaps","Promise","all"],"sources":["env-strategy.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { flatten } from 'lodash';\nimport { ComponentMap } from '@teambit/component';\nimport { Compiler } from '@teambit/compiler';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { Capsule } from '@teambit/isolator';\nimport { ComponentResult } from '@teambit/builder';\nimport { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport { PreviewDefinition } from '../preview-definition';\nimport { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../webpack';\n\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class EnvBundlingStrategy implements BundlingStrategy {\n name = 'env';\n\n constructor(private preview: PreviewMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const htmlConfig = this.generateHtmlConfig({ dev: context.dev });\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n html: [htmlConfig],\n components: context.components,\n outputPath,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext) {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: 'preview',\n globPatterns: ['public/**'],\n rootDir,\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewRuntime(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : undefined,\n outputPath,\n false\n );\n\n const files = flatten(paths.toArray().map(([, file]) => file)).concat([link]);\n\n if (template) return files.concat([template]);\n return files;\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n return flatten(moduleMaps.concat([previewMain]));\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["generate-component-link.ts"],"names":["generateComponentLink","modules","map","moduleVar","prefix","paths","path","join"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAOO,SAASA,qBAAT,CAA+BC,OAA/B,EAA6D;AAClE,SAAQ,GAAEA,OAAO,CACdC,GADO,CACFC,SAAD,IAAe;AAClB,WAAQ,gBAAeA,SAAS,CAACC,MAAO,OAAMD,SAAS,CAACE,KAAV,CAC3CH,GAD2C,CACtCI,IAAD,IAAW,YAAW,4CAAwBA,IAAxB,CAA8B,IADb,EAE3CC,IAF2C,CAEtC,IAFsC,CAEhC,GAFd,CADkB,CAKlB;AACD,GAPO,EAQPA,IARO,CAQF,IARE,CAQI;AAChB,CATE;AAUD","sourcesContent":["import { toWindowsCompatiblePath } from '@teambit/toolbox.path.to-windows-compatible-path';\n\nexport type ModuleVar = {\n prefix: string;\n paths: string[];\n};\n\nexport function generateComponentLink(modules: ModuleVar[]): string {\n return `${modules\n .map((moduleVar) => {\n return `export const ${moduleVar.prefix} = [${moduleVar.paths\n .map((path) => `require('${toWindowsCompatiblePath(path)}')`)\n .join(', ')}]`;\n\n // return `export { * as ${moduleVar.prefix} } from '${toWindowsCompatiblePath(moduleVar.paths)}'`;\n })\n .join('\\n')}\n`;\n}\n"]}
1
+ {"version":3,"names":["generateComponentLink","modules","map","moduleVar","prefix","paths","path","toWindowsCompatiblePath","join"],"sources":["generate-component-link.ts"],"sourcesContent":["import { toWindowsCompatiblePath } from '@teambit/toolbox.path.to-windows-compatible-path';\n\nexport type ModuleVar = {\n prefix: string;\n paths: string[];\n};\n\nexport function generateComponentLink(modules: ModuleVar[]): string {\n return `${modules\n .map((moduleVar) => {\n return `export const ${moduleVar.prefix} = [${moduleVar.paths\n .map((path) => `require('${toWindowsCompatiblePath(path)}')`)\n .join(', ')}]`;\n\n // return `export { * as ${moduleVar.prefix} } from '${toWindowsCompatiblePath(moduleVar.paths)}'`;\n })\n .join('\\n')}\n`;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOO,SAASA,qBAAT,CAA+BC,OAA/B,EAA6D;EAClE,OAAQ,GAAEA,OAAO,CACdC,GADO,CACFC,SAAD,IAAe;IAClB,OAAQ,gBAAeA,SAAS,CAACC,MAAO,OAAMD,SAAS,CAACE,KAAV,CAC3CH,GAD2C,CACtCI,IAAD,IAAW,YAAW,IAAAC,sCAAA,EAAwBD,IAAxB,CAA8B,IADb,EAE3CE,IAF2C,CAEtC,IAFsC,CAEhC,GAFd,CADkB,CAKlB;EACD,CAPO,EAQPA,IARO,CAQF,IARE,CAQI;AAChB,CATE;AAUD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { EnvBundlingStrategy } from './env-strategy';\nexport { ComponentBundlingStrategy } from './component-strategy';\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { EnvBundlingStrategy } from './env-strategy';\nexport { ComponentBundlingStrategy } from './component-strategy';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["preview-module.ts"],"sourcesContent":["/**\n * A full index of the preview data\n */\nexport type PreviewModule<T = any> = {\n /** Dictionary mapping components to their module files. */\n componentMap: Record<string, ModuleFile<T>[]>;\n\n /** The 'main file' for this Preview type */\n mainModule: {\n default: (...args: any[]) => void;\n };\n\n isSplitComponentBundle?: boolean;\n};\n\n/** single preview module, e.g. compositions file */\nexport type ModuleFile<T = any> = Record<string, T>;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"sources":["html.ts"],"names":["html","title"],"mappings":";;;;;;;AAAA;AACO,SAASA,IAAT,CAAcC,KAAd,EAA6B;AAClC,SAAQ;AACV;AACA;AACA;AACA;AACA;AACA,eAAeA,KAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAlBE;AAmBD","sourcesContent":["/** html template for Previews (docs, compositions, etc) */\nexport function html(title: string) {\n return `\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${title}</title>\n <script>\n // Allow to use react dev-tools inside the examples\n try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}\n </script>\n <!-- minimal css resets -->\n <style> html { height: 100%; } body { margin: 0; height: 100%; } #root { height: 100%; } </style>\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n </html>\n `;\n}\n"]}
1
+ {"version":3,"names":["html","title"],"sources":["html.ts"],"sourcesContent":["/** html template for Previews (docs, compositions, etc) */\nexport function html(title: string) {\n return `\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${title}</title>\n <script>\n // Allow to use react dev-tools inside the examples\n try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}\n </script>\n <!-- minimal css resets -->\n <style> html { height: 100%; } body { margin: 0; height: 100%; } #root { height: 100%; } </style>\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n </html>\n `;\n}\n"],"mappings":";;;;;;;AAAA;AACO,SAASA,IAAT,CAAcC,KAAd,EAA6B;EAClC,OAAQ;AACV;AACA;AACA;AACA;AACA;AACA,eAAeA,KAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAlBE;AAmBD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { html } from './html';\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { html } from './html';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/preview",
3
- "version": "0.0.737",
3
+ "version": "0.0.738",
4
4
  "homepage": "https://bit.dev/teambit/preview/preview",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.preview",
8
8
  "name": "preview",
9
- "version": "0.0.737"
9
+ "version": "0.0.738"
10
10
  },
11
11
  "dependencies": {
12
12
  "mime": "2.5.2",
@@ -24,23 +24,23 @@
24
24
  "@teambit/express": "0.0.587",
25
25
  "@teambit/logger": "0.0.583",
26
26
  "@teambit/ui-foundation.ui.pages.static-error": "0.0.72",
27
- "@teambit/builder": "0.0.737",
28
- "@teambit/bundler": "0.0.737",
29
- "@teambit/component": "0.0.737",
30
- "@teambit/aspect-loader": "0.0.737",
31
- "@teambit/envs": "0.0.737",
32
- "@teambit/isolator": "0.0.737",
27
+ "@teambit/builder": "0.0.738",
28
+ "@teambit/bundler": "0.0.738",
29
+ "@teambit/component": "0.0.738",
30
+ "@teambit/aspect-loader": "0.0.738",
31
+ "@teambit/envs": "0.0.738",
32
+ "@teambit/isolator": "0.0.738",
33
33
  "@teambit/toolbox.path.to-windows-compatible-path": "0.0.483",
34
34
  "@teambit/component-id": "0.0.402",
35
35
  "@teambit/bit-error": "0.0.394",
36
36
  "@teambit/cli": "0.0.491",
37
- "@teambit/dependency-resolver": "0.0.737",
38
- "@teambit/graphql": "0.0.737",
39
- "@teambit/pkg": "0.0.737",
40
- "@teambit/pubsub": "0.0.737",
41
- "@teambit/ui": "0.0.737",
42
- "@teambit/workspace": "0.0.737",
43
- "@teambit/compiler": "0.0.737",
37
+ "@teambit/dependency-resolver": "0.0.738",
38
+ "@teambit/graphql": "0.0.738",
39
+ "@teambit/pkg": "0.0.738",
40
+ "@teambit/pubsub": "0.0.738",
41
+ "@teambit/ui": "0.0.738",
42
+ "@teambit/workspace": "0.0.738",
43
+ "@teambit/compiler": "0.0.738",
44
44
  "@teambit/preview.cli.preview-server-status": "0.0.491",
45
45
  "@teambit/preview.cli.webpack-events-listener": "0.0.161"
46
46
  },
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.737/dist/preview.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.737/dist/preview.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.738/dist/preview.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.preview_preview@0.0.738/dist/preview.docs.mdx')]