@teambit/react 0.0.738 → 0.0.741

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 (50) hide show
  1. package/apps/web/compute-results.ts +18 -0
  2. package/apps/web/react.application.ts +14 -4
  3. package/artifacts/env-template/public/7.js +34 -0
  4. package/artifacts/env-template/public/assets-manifest.json +8 -8
  5. package/artifacts/env-template/public/{compositions.eb4e1edea0a4802cad5a.js → compositions.4d09788ea29660f2f0bb.js} +1 -1
  6. package/artifacts/env-template/public/compositions.html +1 -1
  7. package/artifacts/env-template/public/{overview.37b3198678667237c71a.js → overview.6b518357dda2ccb97ff6.js} +1 -1
  8. package/artifacts/env-template/public/overview.html +1 -1
  9. package/artifacts/env-template/public/{preview-root.0a3624f6e3564141db0b.js → preview-root.1e046ff5674d2ebaa6d7.js} +1 -1
  10. package/artifacts/env-template/public/service-worker.js +1 -1
  11. package/artifacts/preview/teambit_react_react-preview.js +2 -2
  12. package/{compositions-1653227849497.js → compositions-1653494536947.js} +0 -0
  13. package/dist/apps/web/compute-results.d.ts +7 -0
  14. package/dist/apps/web/compute-results.js +21 -0
  15. package/dist/apps/web/compute-results.js.map +1 -0
  16. package/dist/apps/web/react.application.d.ts +1 -0
  17. package/dist/apps/web/react.application.js +25 -7
  18. package/dist/apps/web/react.application.js.map +1 -1
  19. package/dist/react.env.d.ts +4 -2
  20. package/dist/react.env.js +10 -29
  21. package/dist/react.env.js.map +1 -1
  22. package/dist/react.main.runtime.d.ts +3 -2
  23. package/dist/react.main.runtime.js +13 -3
  24. package/dist/react.main.runtime.js.map +1 -1
  25. package/dist/webpack/webpack.config.base.prod.d.ts +1 -1
  26. package/dist/webpack/webpack.config.base.prod.js +1 -13
  27. package/dist/webpack/webpack.config.base.prod.js.map +1 -1
  28. package/{overview-1653227849497.js → overview-1653494536947.js} +0 -0
  29. package/package-tar/teambit-react-0.0.741.tgz +0 -0
  30. package/package.json +32 -39
  31. package/{preview-1653227849497.js → preview-1653494536947.js} +2 -2
  32. package/webpack/webpack.config.base.prod.ts +1 -5
  33. package/artifacts/env-template/public/756.js +0 -34
  34. package/dist/webpack/get-exposed-rules.d.ts +0 -3
  35. package/dist/webpack/get-exposed-rules.js +0 -60
  36. package/dist/webpack/get-exposed-rules.js.map +0 -1
  37. package/dist/webpack/get-externals.d.ts +0 -1
  38. package/dist/webpack/get-externals.js +0 -42
  39. package/dist/webpack/get-externals.js.map +0 -1
  40. package/dist/webpack/resolve-peer.d.ts +0 -14
  41. package/dist/webpack/resolve-peer.js +0 -108
  42. package/dist/webpack/resolve-peer.js.map +0 -1
  43. package/dist/webpack/transformers.d.ts +0 -10
  44. package/dist/webpack/transformers.js +0 -66
  45. package/dist/webpack/transformers.js.map +0 -1
  46. package/package-tar/teambit-react-0.0.738.tgz +0 -0
  47. package/webpack/get-exposed-rules.ts +0 -14
  48. package/webpack/get-externals.ts +0 -8
  49. package/webpack/resolve-peer.ts +0 -60
  50. package/webpack/transformers.ts +0 -37
package/dist/react.env.js CHANGED
@@ -165,16 +165,6 @@ function _webpackConfigComponent2() {
165
165
  return data;
166
166
  }
167
167
 
168
- function _transformers() {
169
- const data = require("./webpack/transformers");
170
-
171
- _transformers = function () {
172
- return data;
173
- };
174
-
175
- return data;
176
- }
177
-
178
168
  // webpack configs for both components and envs
179
169
  // webpack configs for envs only
180
170
  // import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';
@@ -223,7 +213,7 @@ class ReactEnv {
223
213
  /**
224
214
  * tester extension
225
215
  */
226
- tester, config, eslint, prettier, logger, compilerAspectId) {
216
+ tester, config, eslint, prettier, dependencyResolver, logger, compilerAspectId) {
227
217
  this.jestAspect = jestAspect;
228
218
  this.tsAspect = tsAspect;
229
219
  this.compiler = compiler;
@@ -234,6 +224,7 @@ class ReactEnv {
234
224
  this.config = config;
235
225
  this.eslint = eslint;
236
226
  this.prettier = prettier;
227
+ this.dependencyResolver = dependencyResolver;
237
228
  this.logger = logger;
238
229
  this.compilerAspectId = compilerAspectId;
239
230
  (0, _defineProperty2().default)(this, "icon", 'https://static.bit.dev/extensions-icons/react.svg');
@@ -402,15 +393,13 @@ class ReactEnv {
402
393
  const baseConfig = (0, _webpackConfig().default)(false);
403
394
  const envDevConfig = (0, _webpackConfigEnv().default)(context.id);
404
395
  const componentDevConfig = (0, _webpackConfigComponent2().default)(this.workspace.path, context.id);
405
- const peers = this.getAllHostDependencies();
406
- const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(peers, this.logger);
407
396
 
408
397
  const defaultTransformer = configMutator => {
409
398
  const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);
410
399
  return merged;
411
400
  };
412
401
 
413
- return this.webpack.createDevServer(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);
402
+ return this.webpack.createDevServer(context, [defaultTransformer, ...transformers]);
414
403
  }
415
404
 
416
405
  async getBundler(context, transformers = []) {
@@ -418,10 +407,8 @@ class ReactEnv {
418
407
  }
419
408
 
420
409
  async createComponentsWebpackBundler(context, transformers = []) {
421
- const peers = this.getAllHostDependencies();
422
- const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(peers, this.logger);
423
410
  const baseConfig = (0, _webpackConfig().default)(!context.development);
424
- const baseProdConfig = (0, _webpackConfigBase().default)(Boolean(context.externalizePeer), peers, context.development);
411
+ const baseProdConfig = (0, _webpackConfigBase().default)(context.development);
425
412
  const componentProdConfig = (0, _webpackConfigComponent().default)();
426
413
 
427
414
  const defaultTransformer = configMutator => {
@@ -429,23 +416,20 @@ class ReactEnv {
429
416
  return merged;
430
417
  };
431
418
 
432
- const mergedTransformers = [defaultTransformer, peerAliasesTransformer, ...transformers];
419
+ const mergedTransformers = [defaultTransformer, ...transformers];
433
420
  return this.createWebpackBundler(context, mergedTransformers);
434
421
  }
435
422
 
436
423
  async createTemplateWebpackBundler(context, transformers = []) {
437
- const peers = this.getAllHostDependencies();
438
- const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(peers, this.logger);
439
- const exposePeersTransformer = (0, _transformers().generateExposePeersTransformer)(peers, this.logger);
440
424
  const baseConfig = (0, _webpackConfig().default)(!context.development);
441
- const baseProdConfig = (0, _webpackConfigBase().default)(Boolean(context.externalizePeer), peers, context.development);
425
+ const baseProdConfig = (0, _webpackConfigBase().default)(context.development);
442
426
 
443
427
  const defaultTransformer = configMutator => {
444
428
  const merged = configMutator.merge([baseConfig, baseProdConfig]);
445
429
  return merged;
446
430
  };
447
431
 
448
- const mergedTransformers = [defaultTransformer, peerAliasesTransformer, exposePeersTransformer, ...transformers];
432
+ const mergedTransformers = [defaultTransformer, ...transformers];
449
433
  return this.createWebpackBundler(context, mergedTransformers);
450
434
  }
451
435
 
@@ -457,15 +441,12 @@ class ReactEnv {
457
441
  */
458
442
 
459
443
 
460
- getAllHostDependencies() {
461
- const envComponentPeers = Object.keys(this.getDependencies().peerDependencies || {}) || [];
462
- const additionalHostDeps = this.getAdditionalHostDependencies() || [];
463
- const peers = envComponentPeers.concat(additionalHostDeps);
464
- return peers;
444
+ getPeerDependenciesList() {
445
+ return this.dependencyResolver.getPeerDependenciesListFromEnv(this);
465
446
  }
466
447
 
467
448
  getAdditionalHostDependencies() {
468
- return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react'];
449
+ return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react', 'react'];
469
450
  }
470
451
  /**
471
452
  * returns a path to a docs template.
@@ -1 +1 @@
1
- {"version":3,"names":["ReactEnvType","defaultTsConfig","require","buildTsConfig","eslintConfig","prettierConfig","ReactEnv","constructor","jestAspect","tsAspect","compiler","webpack","workspace","pkg","tester","config","eslint","prettier","logger","compilerAspectId","getTsConfig","targetTsConfig","merge","getBuildTsConfig","getCjsJestTester","jestConfigPath","jestModulePath","pathToSource","pathNormalizeToLinux","__dirname","replace","defaultConfig","join","createTester","resolve","getEsmJestTester","getTester","getTsCompilerOptions","mode","tsconfig","cloneDeep","compileJs","compileJsx","types","getTsCjsCompiler","transformers","tsModule","ts","tsCompileOptions","createCjsCompiler","getTsEsmCompiler","createEsmCompiler","getCompiler","getLinter","context","defaultTransformer","configMutator","addExtensionTypes","allTransformers","createLinter","pluginPath","getFormatter","createFormatter","getFileMap","components","local","reduce","index","component","state","filesystem","files","forEach","file","path","id","toString","homepage","fullName","ComponentUrl","toUrl","writeFileMap","fileMap","tmpdir","Math","random","slice","outputFileSync","JSON","stringify","getDevEnvId","ReactAspect","getSchemaExtractor","createSchemaExtractor","getDevServer","baseConfig","basePreviewConfigFactory","envDevConfig","envPreviewDevConfigFactory","componentDevConfig","componentPreviewDevConfigFactory","peers","getAllHostDependencies","peerAliasesTransformer","generateAddAliasesFromPeersTransformer","merged","createDevServer","getBundler","createComponentsWebpackBundler","development","baseProdConfig","basePreviewProdConfigFactory","Boolean","externalizePeer","componentProdConfig","componentPreviewProdConfigFactory","mergedTransformers","createWebpackBundler","createTemplateWebpackBundler","exposePeersTransformer","generateExposePeersTransformer","createBundler","envComponentPeers","Object","keys","getDependencies","peerDependencies","additionalHostDeps","getAdditionalHostDependencies","concat","getDocsTemplate","getMounter","getPreviewConfig","strategyName","splitComponentBundle","getPackageJsonProps","getCjsPackageJsonProps","getEsmPackageJsonProps","getNpmIgnore","CAPSULE_ARTIFACTS_DIR","dependencies","react","devDependencies","getBuildPipe","modifiers","tsModifier","getCompilerTask","module","task","getBuildPipeWithoutCompiler","pipeWithoutCompiler","filter","aspectId","getEsmCompilerTask","tsCompiler","createTask","getCjsCompilerTask","__getDescriptor","type"],"sources":["react.env.ts"],"sourcesContent":["import ts, { TsConfigSourceFile } from 'typescript';\nimport { tmpdir } from 'os';\nimport { Component } from '@teambit/component';\nimport { ComponentUrl } from '@teambit/component.modules.component-url';\nimport { BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { merge, cloneDeep } from 'lodash';\nimport { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';\nimport { CompilerMain } from '@teambit/compiler';\nimport {\n BuilderEnv,\n CompilerEnv,\n DependenciesEnv,\n DevEnv,\n LinterEnv,\n PackageEnv,\n TesterEnv,\n FormatterEnv,\n PipeServiceModifier,\n PipeServiceModifiersMap,\n} from '@teambit/envs';\nimport { JestMain } from '@teambit/jest';\nimport { PackageJsonProps, PkgMain } from '@teambit/pkg';\nimport { Tester, TesterMain } from '@teambit/tester';\nimport { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';\nimport type { TypeScriptCompilerOptions } from '@teambit/typescript';\nimport { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';\nimport { Workspace } from '@teambit/workspace';\nimport { ESLintMain, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierConfigTransformer, PrettierMain } from '@teambit/prettier';\nimport { Linter, LinterContext } from '@teambit/linter';\nimport { Formatter, FormatterContext } from '@teambit/formatter';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport type { ComponentMeta } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { join, resolve } from 'path';\nimport { outputFileSync } from 'fs-extra';\nimport { Logger } from '@teambit/logger';\n// Makes sure the @teambit/react.ui.docs-app is a dependency\n// TODO: remove this import once we can set policy from component to component with workspace version. Then set it via the component.json\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ReactMainConfig } from './react.main.runtime';\nimport { ReactAspect } from './react.aspect';\n// webpack configs for both components and envs\nimport basePreviewConfigFactory from './webpack/webpack.config.base';\nimport basePreviewProdConfigFactory from './webpack/webpack.config.base.prod';\n\n// webpack configs for envs only\n// import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';\nimport envPreviewDevConfigFactory from './webpack/webpack.config.env.dev';\n\n// webpack configs for components only\nimport componentPreviewProdConfigFactory from './webpack/webpack.config.component.prod';\nimport componentPreviewDevConfigFactory from './webpack/webpack.config.component.dev';\nimport { generateAddAliasesFromPeersTransformer, generateExposePeersTransformer } from './webpack/transformers';\n\nexport const ReactEnvType = 'react';\nconst defaultTsConfig = require('./typescript/tsconfig.json');\nconst buildTsConfig = require('./typescript/tsconfig.build.json');\nconst eslintConfig = require('./eslint/eslintrc');\nconst prettierConfig = require('./prettier/prettier.config.js');\n\n// TODO: move to be taken from the key mode of compiler context\ntype CompilerMode = 'build' | 'dev';\n\ntype GetBuildPipeModifiers = PipeServiceModifiersMap & {\n tsModifier?: PipeServiceModifier;\n};\n\n/**\n * a component environment built for [React](https://reactjs.org) .\n */\nexport class ReactEnv\n implements TesterEnv, CompilerEnv, LinterEnv, DevEnv, BuilderEnv, DependenciesEnv, PackageEnv, FormatterEnv\n{\n constructor(\n /**\n * jest extension\n */\n private jestAspect: JestMain,\n\n /**\n * typescript extension.\n */\n protected tsAspect: TypescriptMain,\n\n /**\n * compiler extension.\n */\n private compiler: CompilerMain,\n\n /**\n * webpack extension.\n */\n private webpack: WebpackMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * pkg extension.\n */\n private pkg: PkgMain,\n\n /**\n * tester extension\n */\n private tester: TesterMain,\n\n private config: ReactMainConfig,\n\n private eslint: ESLintMain,\n\n private prettier: PrettierMain,\n\n private logger: Logger,\n\n private compilerAspectId: string\n ) {}\n\n getTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, defaultTsConfig, targetTsConfig) : defaultTsConfig;\n }\n\n getBuildTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, buildTsConfig, targetTsConfig) : buildTsConfig;\n }\n\n /**\n * Get a jest tester instance with react config and cjs configs\n * @param jestConfigPath\n * @param jestModulePath\n * @returns\n */\n getCjsJestTester(jestConfigPath?: string, jestModulePath?: string): Tester {\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist', '');\n const defaultConfig = join(pathToSource, './jest/jest.cjs.config.js');\n const config = jestConfigPath || defaultConfig;\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n /**\n * Get a jest tester instance with react config and esm configs\n * @param jestConfigPath\n * @param jestModulePath\n * @returns\n */\n getEsmJestTester(jestConfigPath?: string, jestModulePath?: string): Tester {\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist', '');\n const defaultConfig = join(pathToSource, './jest/jest.esm.config.js');\n const config = jestConfigPath || defaultConfig;\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n /**\n * returns a component tester.\n */\n getTester(jestConfigPath: string, jestModulePath?: string): Tester {\n // return this.getEsmJestTester(jestConfigPath, jestModulePath);\n return this.getCjsJestTester(jestConfigPath, jestModulePath);\n }\n\n private getTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {\n const tsconfig = mode === 'dev' ? cloneDeep(defaultTsConfig) : cloneDeep(buildTsConfig);\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist/', '/src/');\n const compileJs = true;\n const compileJsx = true;\n return {\n tsconfig,\n // TODO: @david please remove this line and refactor to be something that makes sense.\n types: [resolve(pathToSource, './typescript/style.d.ts'), resolve(pathToSource, './typescript/asset.d.ts')],\n compileJs,\n compileJsx,\n };\n }\n\n /**\n * Get a compiler instance with react config and set it to cjs module\n * @param mode\n * @param transformers\n * @param tsModule\n * @returns\n */\n getTsCjsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createCjsCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n /**\n * Get a compiler instance with react config and set it to esm module\n * @param mode\n * @param transformers\n * @param tsModule\n * @returns\n */\n getTsEsmCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createEsmCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n // return this.getTsEsmCompiler('dev', transformers, tsModule);\n return this.getTsCjsCompiler('dev', transformers, tsModule);\n }\n\n /**\n * returns and configures the component linter.\n */\n getLinter(context: LinterContext, transformers: EslintConfigTransformer[] = []): Linter {\n const defaultTransformer: EslintConfigTransformer = (configMutator) => {\n configMutator.addExtensionTypes(['.md', '.mdx']);\n return configMutator;\n };\n\n const allTransformers = [defaultTransformer, ...transformers];\n\n return this.eslint.createLinter(\n context,\n {\n config: eslintConfig,\n // resolve all plugins from the react environment.\n pluginPath: __dirname,\n },\n allTransformers\n );\n }\n\n /**\n * returns and configures the component formatter.\n */\n getFormatter(context: FormatterContext, transformers: PrettierConfigTransformer[] = []): Formatter {\n return this.prettier.createFormatter(\n context,\n {\n config: prettierConfig,\n },\n transformers\n );\n }\n\n private getFileMap(components: Component[], local = false) {\n return components.reduce<{ [key: string]: ComponentMeta }>((index, component: Component) => {\n component.state.filesystem.files.forEach((file) => {\n index[file.path] = {\n id: component.id.toString(),\n homepage: local ? `/${component.id.fullName}` : ComponentUrl.toUrl(component.id),\n };\n });\n\n return index;\n }, {});\n }\n\n private writeFileMap(components: Component[], local?: boolean) {\n const fileMap = this.getFileMap(components, local);\n const path = join(tmpdir(), `${Math.random().toString(36).slice(2, 11)}.json`);\n outputFileSync(path, JSON.stringify(fileMap));\n return path;\n }\n\n /**\n * required for `bit start`\n */\n getDevEnvId(id?: string) {\n if (typeof id !== 'string') return ReactAspect.id;\n return id || ReactAspect.id;\n }\n\n /**\n * get a schema generator instance configured with the correct tsconfig.\n */\n getSchemaExtractor(tsconfig: TsConfigSourceFile): SchemaExtractor {\n return this.tsAspect.createSchemaExtractor(this.getTsConfig(tsconfig));\n }\n\n /**\n * returns and configures the React component dev server.\n * required for `bit start`\n */\n getDevServer(context: DevServerContext, transformers: WebpackConfigTransformer[] = []): DevServer {\n const baseConfig = basePreviewConfigFactory(false);\n const envDevConfig = envPreviewDevConfigFactory(context.id);\n const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);\n const peers = this.getAllHostDependencies();\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers, this.logger);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);\n return merged;\n };\n\n return this.webpack.createDevServer(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);\n }\n\n async getBundler(context: BundlerContext, transformers: WebpackConfigTransformer[] = []): Promise<Bundler> {\n return this.createComponentsWebpackBundler(context, transformers);\n }\n\n async createComponentsWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n const peers = this.getAllHostDependencies();\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers, this.logger);\n const baseConfig = basePreviewConfigFactory(!context.development);\n const baseProdConfig = basePreviewProdConfigFactory(Boolean(context.externalizePeer), peers, context.development);\n const componentProdConfig = componentPreviewProdConfigFactory();\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);\n return merged;\n };\n const mergedTransformers = [defaultTransformer, peerAliasesTransformer, ...transformers];\n return this.createWebpackBundler(context, mergedTransformers);\n }\n\n async createTemplateWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n const peers = this.getAllHostDependencies();\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers, this.logger);\n const exposePeersTransformer = generateExposePeersTransformer(peers, this.logger);\n const baseConfig = basePreviewConfigFactory(!context.development);\n const baseProdConfig = basePreviewProdConfigFactory(Boolean(context.externalizePeer), peers, context.development);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig]);\n return merged;\n };\n const mergedTransformers = [defaultTransformer, peerAliasesTransformer, exposePeersTransformer, ...transformers];\n return this.createWebpackBundler(context, mergedTransformers);\n }\n\n private async createWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n return this.webpack.createBundler(context, transformers);\n }\n\n /**\n * Get the peers configured by the env on the components + the host deps configured by the env\n */\n getAllHostDependencies() {\n const envComponentPeers = Object.keys(this.getDependencies().peerDependencies || {}) || [];\n const additionalHostDeps = this.getAdditionalHostDependencies() || [];\n const peers = envComponentPeers.concat(additionalHostDeps);\n return peers;\n }\n\n getAdditionalHostDependencies(): string[] {\n return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react'];\n }\n\n /**\n * returns a path to a docs template.\n */\n getDocsTemplate() {\n return require.resolve('@teambit/react.ui.docs-app');\n }\n\n icon = 'https://static.bit.dev/extensions-icons/react.svg';\n\n /**\n * returns a paths to a function which mounts a given component to DOM\n */\n getMounter() {\n return require.resolve('./mount');\n }\n\n getPreviewConfig() {\n return {\n strategyName: 'component',\n splitComponentBundle: true,\n };\n }\n\n /**\n * define the package json properties to add to each component.\n */\n getPackageJsonProps(): PackageJsonProps {\n // React compile by default to esm, so uses type module\n // return this.getEsmPackageJsonProps();\n return this.getCjsPackageJsonProps();\n }\n\n /**\n * Get the default package.json props for a cjs component\n * @returns\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return this.tsAspect.getCjsPackageJsonProps();\n }\n\n /**\n * Get the default package.json props for an esm component\n * @returns\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return this.tsAspect.getEsmPackageJsonProps();\n }\n\n getNpmIgnore() {\n // ignores only .ts files in the root directory, so d.ts files inside dists are unaffected.\n // without this change, the package has \"index.ts\" file in the root, causing typescript to parse it instead of the\n // d.ts files. (changing the \"types\" prop in the package.json file doesn't help).\n return [`${CAPSULE_ARTIFACTS_DIR}/`];\n }\n\n /**\n * adds dependencies to all configured components.\n */\n getDependencies() {\n return {\n dependencies: {\n react: '-',\n 'react-dom': '-',\n 'core-js': '^3.0.0',\n },\n // TODO: add this only if using ts\n devDependencies: {\n react: '-',\n 'react-dom': '-',\n '@types/mocha': '-',\n '@types/node': '12.20.4',\n '@types/react': '^17.0.8',\n '@types/react-dom': '^17.0.5',\n '@types/jest': '^26.0.0',\n // This is added as dev dep since our jest file transformer uses babel plugins that require this to be installed\n '@babel/runtime': '7.12.18',\n '@types/testing-library__jest-dom': '5.9.5',\n },\n peerDependencies: {\n react: '^16.8.0 || ^17.0.0',\n 'react-dom': '^16.8.0 || ^17.0.0',\n },\n };\n }\n\n /**\n * returns the component build pipeline.\n */\n getBuildPipe(modifiers: GetBuildPipeModifiers = {}): BuildTask[] {\n const transformers: TsConfigTransformer[] =\n (modifiers?.tsModifier?.transformers as any as TsConfigTransformer[]) || [];\n return [this.getCompilerTask(transformers, modifiers?.tsModifier?.module || ts), this.tester.task];\n }\n\n /**\n * Get the react build pipeline without the compilation task.\n * This help in cases you want to only replace the compilation task with something else\n * @returns\n */\n getBuildPipeWithoutCompiler(): BuildTask[] {\n const pipeWithoutCompiler = this.getBuildPipe().filter((task) => task.aspectId !== this.compilerAspectId);\n return pipeWithoutCompiler;\n }\n\n /**\n * Get a compiler task with react config and set to esm module\n * @param transformers\n * @param tsModule\n * @returns\n */\n getEsmCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsEsmCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n /**\n * Get a compiler task with react config and set to cjs module\n * @param transformers\n * @param tsModule\n * @returns\n */\n getCjsCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsCjsCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n private getCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.getCjsCompilerTask(transformers, tsModule);\n }\n\n async __getDescriptor() {\n return {\n type: ReactEnvType,\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["ReactEnvType","defaultTsConfig","require","buildTsConfig","eslintConfig","prettierConfig","ReactEnv","constructor","jestAspect","tsAspect","compiler","webpack","workspace","pkg","tester","config","eslint","prettier","dependencyResolver","logger","compilerAspectId","getTsConfig","targetTsConfig","merge","getBuildTsConfig","getCjsJestTester","jestConfigPath","jestModulePath","pathToSource","pathNormalizeToLinux","__dirname","replace","defaultConfig","join","createTester","resolve","getEsmJestTester","getTester","getTsCompilerOptions","mode","tsconfig","cloneDeep","compileJs","compileJsx","types","getTsCjsCompiler","transformers","tsModule","ts","tsCompileOptions","createCjsCompiler","getTsEsmCompiler","createEsmCompiler","getCompiler","getLinter","context","defaultTransformer","configMutator","addExtensionTypes","allTransformers","createLinter","pluginPath","getFormatter","createFormatter","getFileMap","components","local","reduce","index","component","state","filesystem","files","forEach","file","path","id","toString","homepage","fullName","ComponentUrl","toUrl","writeFileMap","fileMap","tmpdir","Math","random","slice","outputFileSync","JSON","stringify","getDevEnvId","ReactAspect","getSchemaExtractor","createSchemaExtractor","getDevServer","baseConfig","basePreviewConfigFactory","envDevConfig","envPreviewDevConfigFactory","componentDevConfig","componentPreviewDevConfigFactory","merged","createDevServer","getBundler","createComponentsWebpackBundler","development","baseProdConfig","basePreviewProdConfigFactory","componentProdConfig","componentPreviewProdConfigFactory","mergedTransformers","createWebpackBundler","createTemplateWebpackBundler","createBundler","getPeerDependenciesList","getPeerDependenciesListFromEnv","getAdditionalHostDependencies","getDocsTemplate","getMounter","getPreviewConfig","strategyName","splitComponentBundle","getPackageJsonProps","getCjsPackageJsonProps","getEsmPackageJsonProps","getNpmIgnore","CAPSULE_ARTIFACTS_DIR","getDependencies","dependencies","react","devDependencies","peerDependencies","getBuildPipe","modifiers","tsModifier","getCompilerTask","module","task","getBuildPipeWithoutCompiler","pipeWithoutCompiler","filter","aspectId","getEsmCompilerTask","tsCompiler","createTask","getCjsCompilerTask","__getDescriptor","type"],"sources":["react.env.ts"],"sourcesContent":["import ts, { TsConfigSourceFile } from 'typescript';\nimport { tmpdir } from 'os';\nimport { Component } from '@teambit/component';\nimport { ComponentUrl } from '@teambit/component.modules.component-url';\nimport { BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { merge, cloneDeep } from 'lodash';\nimport { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';\nimport { CompilerMain } from '@teambit/compiler';\nimport {\n BuilderEnv,\n CompilerEnv,\n DependenciesEnv,\n DevEnv,\n LinterEnv,\n PackageEnv,\n TesterEnv,\n FormatterEnv,\n PipeServiceModifier,\n PipeServiceModifiersMap,\n} from '@teambit/envs';\nimport { JestMain } from '@teambit/jest';\nimport { PackageJsonProps, PkgMain } from '@teambit/pkg';\nimport { Tester, TesterMain } from '@teambit/tester';\nimport { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';\nimport type { TypeScriptCompilerOptions } from '@teambit/typescript';\nimport { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';\nimport { Workspace } from '@teambit/workspace';\nimport { ESLintMain, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierConfigTransformer, PrettierMain } from '@teambit/prettier';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Linter, LinterContext } from '@teambit/linter';\nimport { Formatter, FormatterContext } from '@teambit/formatter';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport type { ComponentMeta } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { join, resolve } from 'path';\nimport { outputFileSync } from 'fs-extra';\nimport { Logger } from '@teambit/logger';\n// Makes sure the @teambit/react.ui.docs-app is a dependency\n// TODO: remove this import once we can set policy from component to component with workspace version. Then set it via the component.json\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ReactMainConfig } from './react.main.runtime';\nimport { ReactAspect } from './react.aspect';\n// webpack configs for both components and envs\nimport basePreviewConfigFactory from './webpack/webpack.config.base';\nimport basePreviewProdConfigFactory from './webpack/webpack.config.base.prod';\n\n// webpack configs for envs only\n// import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';\nimport envPreviewDevConfigFactory from './webpack/webpack.config.env.dev';\n\n// webpack configs for components only\nimport componentPreviewProdConfigFactory from './webpack/webpack.config.component.prod';\nimport componentPreviewDevConfigFactory from './webpack/webpack.config.component.dev';\n\nexport const ReactEnvType = 'react';\nconst defaultTsConfig = require('./typescript/tsconfig.json');\nconst buildTsConfig = require('./typescript/tsconfig.build.json');\nconst eslintConfig = require('./eslint/eslintrc');\nconst prettierConfig = require('./prettier/prettier.config.js');\n\n// TODO: move to be taken from the key mode of compiler context\ntype CompilerMode = 'build' | 'dev';\n\ntype GetBuildPipeModifiers = PipeServiceModifiersMap & {\n tsModifier?: PipeServiceModifier;\n};\n\n/**\n * a component environment built for [React](https://reactjs.org) .\n */\nexport class ReactEnv\n implements TesterEnv, CompilerEnv, LinterEnv, DevEnv, BuilderEnv, DependenciesEnv, PackageEnv, FormatterEnv\n{\n constructor(\n /**\n * jest extension\n */\n private jestAspect: JestMain,\n\n /**\n * typescript extension.\n */\n protected tsAspect: TypescriptMain,\n\n /**\n * compiler extension.\n */\n private compiler: CompilerMain,\n\n /**\n * webpack extension.\n */\n private webpack: WebpackMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * pkg extension.\n */\n private pkg: PkgMain,\n\n /**\n * tester extension\n */\n private tester: TesterMain,\n\n private config: ReactMainConfig,\n\n private eslint: ESLintMain,\n\n private prettier: PrettierMain,\n\n private dependencyResolver: DependencyResolverMain,\n\n private logger: Logger,\n\n private compilerAspectId: string\n ) {}\n\n getTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, defaultTsConfig, targetTsConfig) : defaultTsConfig;\n }\n\n getBuildTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, buildTsConfig, targetTsConfig) : buildTsConfig;\n }\n\n /**\n * Get a jest tester instance with react config and cjs configs\n * @param jestConfigPath\n * @param jestModulePath\n * @returns\n */\n getCjsJestTester(jestConfigPath?: string, jestModulePath?: string): Tester {\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist', '');\n const defaultConfig = join(pathToSource, './jest/jest.cjs.config.js');\n const config = jestConfigPath || defaultConfig;\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n /**\n * Get a jest tester instance with react config and esm configs\n * @param jestConfigPath\n * @param jestModulePath\n * @returns\n */\n getEsmJestTester(jestConfigPath?: string, jestModulePath?: string): Tester {\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist', '');\n const defaultConfig = join(pathToSource, './jest/jest.esm.config.js');\n const config = jestConfigPath || defaultConfig;\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n /**\n * returns a component tester.\n */\n getTester(jestConfigPath: string, jestModulePath?: string): Tester {\n // return this.getEsmJestTester(jestConfigPath, jestModulePath);\n return this.getCjsJestTester(jestConfigPath, jestModulePath);\n }\n\n private getTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {\n const tsconfig = mode === 'dev' ? cloneDeep(defaultTsConfig) : cloneDeep(buildTsConfig);\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist/', '/src/');\n const compileJs = true;\n const compileJsx = true;\n return {\n tsconfig,\n // TODO: @david please remove this line and refactor to be something that makes sense.\n types: [resolve(pathToSource, './typescript/style.d.ts'), resolve(pathToSource, './typescript/asset.d.ts')],\n compileJs,\n compileJsx,\n };\n }\n\n /**\n * Get a compiler instance with react config and set it to cjs module\n * @param mode\n * @param transformers\n * @param tsModule\n * @returns\n */\n getTsCjsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createCjsCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n /**\n * Get a compiler instance with react config and set it to esm module\n * @param mode\n * @param transformers\n * @param tsModule\n * @returns\n */\n getTsEsmCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createEsmCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n // return this.getTsEsmCompiler('dev', transformers, tsModule);\n return this.getTsCjsCompiler('dev', transformers, tsModule);\n }\n\n /**\n * returns and configures the component linter.\n */\n getLinter(context: LinterContext, transformers: EslintConfigTransformer[] = []): Linter {\n const defaultTransformer: EslintConfigTransformer = (configMutator) => {\n configMutator.addExtensionTypes(['.md', '.mdx']);\n return configMutator;\n };\n\n const allTransformers = [defaultTransformer, ...transformers];\n\n return this.eslint.createLinter(\n context,\n {\n config: eslintConfig,\n // resolve all plugins from the react environment.\n pluginPath: __dirname,\n },\n allTransformers\n );\n }\n\n /**\n * returns and configures the component formatter.\n */\n getFormatter(context: FormatterContext, transformers: PrettierConfigTransformer[] = []): Formatter {\n return this.prettier.createFormatter(\n context,\n {\n config: prettierConfig,\n },\n transformers\n );\n }\n\n private getFileMap(components: Component[], local = false) {\n return components.reduce<{ [key: string]: ComponentMeta }>((index, component: Component) => {\n component.state.filesystem.files.forEach((file) => {\n index[file.path] = {\n id: component.id.toString(),\n homepage: local ? `/${component.id.fullName}` : ComponentUrl.toUrl(component.id),\n };\n });\n\n return index;\n }, {});\n }\n\n private writeFileMap(components: Component[], local?: boolean) {\n const fileMap = this.getFileMap(components, local);\n const path = join(tmpdir(), `${Math.random().toString(36).slice(2, 11)}.json`);\n outputFileSync(path, JSON.stringify(fileMap));\n return path;\n }\n\n /**\n * required for `bit start`\n */\n getDevEnvId(id?: string) {\n if (typeof id !== 'string') return ReactAspect.id;\n return id || ReactAspect.id;\n }\n\n /**\n * get a schema generator instance configured with the correct tsconfig.\n */\n getSchemaExtractor(tsconfig: TsConfigSourceFile): SchemaExtractor {\n return this.tsAspect.createSchemaExtractor(this.getTsConfig(tsconfig));\n }\n\n /**\n * returns and configures the React component dev server.\n * required for `bit start`\n */\n getDevServer(context: DevServerContext, transformers: WebpackConfigTransformer[] = []): DevServer {\n const baseConfig = basePreviewConfigFactory(false);\n const envDevConfig = envPreviewDevConfigFactory(context.id);\n const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);\n return merged;\n };\n\n return this.webpack.createDevServer(context, [defaultTransformer, ...transformers]);\n }\n\n async getBundler(context: BundlerContext, transformers: WebpackConfigTransformer[] = []): Promise<Bundler> {\n return this.createComponentsWebpackBundler(context, transformers);\n }\n\n async createComponentsWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n const baseConfig = basePreviewConfigFactory(!context.development);\n const baseProdConfig = basePreviewProdConfigFactory(context.development);\n const componentProdConfig = componentPreviewProdConfigFactory();\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);\n return merged;\n };\n const mergedTransformers = [defaultTransformer, ...transformers];\n return this.createWebpackBundler(context, mergedTransformers);\n }\n\n async createTemplateWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n const baseConfig = basePreviewConfigFactory(!context.development);\n const baseProdConfig = basePreviewProdConfigFactory(context.development);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig]);\n return merged;\n };\n const mergedTransformers = [defaultTransformer, ...transformers];\n return this.createWebpackBundler(context, mergedTransformers);\n }\n\n private async createWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n return this.webpack.createBundler(context, transformers);\n }\n\n /**\n * Get the peers configured by the env on the components + the host deps configured by the env\n */\n getPeerDependenciesList() {\n return this.dependencyResolver.getPeerDependenciesListFromEnv(this);\n }\n\n getAdditionalHostDependencies(): string[] {\n return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react', 'react'];\n }\n\n /**\n * returns a path to a docs template.\n */\n getDocsTemplate() {\n return require.resolve('@teambit/react.ui.docs-app');\n }\n\n icon = 'https://static.bit.dev/extensions-icons/react.svg';\n\n /**\n * returns a paths to a function which mounts a given component to DOM\n */\n getMounter() {\n return require.resolve('./mount');\n }\n\n getPreviewConfig() {\n return {\n strategyName: 'component',\n splitComponentBundle: true,\n };\n }\n\n /**\n * define the package json properties to add to each component.\n */\n getPackageJsonProps(): PackageJsonProps {\n // React compile by default to esm, so uses type module\n // return this.getEsmPackageJsonProps();\n return this.getCjsPackageJsonProps();\n }\n\n /**\n * Get the default package.json props for a cjs component\n * @returns\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return this.tsAspect.getCjsPackageJsonProps();\n }\n\n /**\n * Get the default package.json props for an esm component\n * @returns\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return this.tsAspect.getEsmPackageJsonProps();\n }\n\n getNpmIgnore() {\n // ignores only .ts files in the root directory, so d.ts files inside dists are unaffected.\n // without this change, the package has \"index.ts\" file in the root, causing typescript to parse it instead of the\n // d.ts files. (changing the \"types\" prop in the package.json file doesn't help).\n return [`${CAPSULE_ARTIFACTS_DIR}/`];\n }\n\n /**\n * adds dependencies to all configured components.\n */\n getDependencies() {\n return {\n dependencies: {\n react: '-',\n 'react-dom': '-',\n 'core-js': '^3.0.0',\n },\n // TODO: add this only if using ts\n devDependencies: {\n react: '-',\n 'react-dom': '-',\n '@types/mocha': '-',\n '@types/node': '12.20.4',\n '@types/react': '^17.0.8',\n '@types/react-dom': '^17.0.5',\n '@types/jest': '^26.0.0',\n // This is added as dev dep since our jest file transformer uses babel plugins that require this to be installed\n '@babel/runtime': '7.12.18',\n '@types/testing-library__jest-dom': '5.9.5',\n },\n peerDependencies: {\n react: '^16.8.0 || ^17.0.0',\n 'react-dom': '^16.8.0 || ^17.0.0',\n },\n };\n }\n\n /**\n * returns the component build pipeline.\n */\n getBuildPipe(modifiers: GetBuildPipeModifiers = {}): BuildTask[] {\n const transformers: TsConfigTransformer[] =\n (modifiers?.tsModifier?.transformers as any as TsConfigTransformer[]) || [];\n return [this.getCompilerTask(transformers, modifiers?.tsModifier?.module || ts), this.tester.task];\n }\n\n /**\n * Get the react build pipeline without the compilation task.\n * This help in cases you want to only replace the compilation task with something else\n * @returns\n */\n getBuildPipeWithoutCompiler(): BuildTask[] {\n const pipeWithoutCompiler = this.getBuildPipe().filter((task) => task.aspectId !== this.compilerAspectId);\n return pipeWithoutCompiler;\n }\n\n /**\n * Get a compiler task with react config and set to esm module\n * @param transformers\n * @param tsModule\n * @returns\n */\n getEsmCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsEsmCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n /**\n * Get a compiler task with react config and set to cjs module\n * @param transformers\n * @param tsModule\n * @returns\n */\n getCjsCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsCjsCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n private getCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.getCjsCompilerTask(transformers, tsModule);\n }\n\n async __getDescriptor() {\n return {\n type: ReactEnvType,\n };\n }\n}\n"],"mappings":"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"}
@@ -11,7 +11,7 @@ import type { TypescriptMain, TsCompilerOptionsWithoutTsConfig, TsConfigTransfor
11
11
  import type { WebpackMain, Configuration, WebpackConfigTransformer } from '@teambit/webpack';
12
12
  import { GeneratorMain } from '@teambit/generator';
13
13
  import { Workspace } from '@teambit/workspace';
14
- import { EnvPolicyConfigObject } from '@teambit/dependency-resolver';
14
+ import { DependencyResolverMain, EnvPolicyConfigObject } from '@teambit/dependency-resolver';
15
15
  import { ApplicationMain } from '@teambit/application';
16
16
  import { LoggerMain } from '@teambit/logger';
17
17
  import { ESLintMain, EslintConfigTransformer } from '@teambit/eslint';
@@ -33,6 +33,7 @@ declare type ReactDeps = [
33
33
  PrettierMain,
34
34
  ApplicationMain,
35
35
  GeneratorMain,
36
+ DependencyResolverMain,
36
37
  LoggerMain
37
38
  ];
38
39
  export declare type ReactMainConfig = {
@@ -176,6 +177,6 @@ export declare class ReactMain {
176
177
  } | null;
177
178
  static runtime: import("@teambit/harmony").RuntimeDefinition;
178
179
  static dependencies: import("@teambit/harmony").Aspect[];
179
- static provider([envs, jestAspect, tsAspect, compiler, webpack, workspace, graphql, pkg, tester, eslint, prettier, application, generator, loggerMain,]: ReactDeps, config: ReactMainConfig): Promise<ReactMain>;
180
+ static provider([envs, jestAspect, tsAspect, compiler, webpack, workspace, graphql, pkg, tester, eslint, prettier, application, generator, dependencyResolver, loggerMain,]: ReactDeps, config: ReactMainConfig): Promise<ReactMain>;
180
181
  }
181
182
  export {};
@@ -153,6 +153,16 @@ function _workspace() {
153
153
  return data;
154
154
  }
155
155
 
156
+ function _dependencyResolver() {
157
+ const data = require("@teambit/dependency-resolver");
158
+
159
+ _dependencyResolver = function () {
160
+ return data;
161
+ };
162
+
163
+ return data;
164
+ }
165
+
156
166
  function _typescript2() {
157
167
  const data = _interopRequireDefault(require("typescript"));
158
168
 
@@ -574,9 +584,9 @@ class ReactMain {
574
584
  };
575
585
  }
576
586
 
577
- static async provider([envs, jestAspect, tsAspect, compiler, webpack, workspace, graphql, pkg, tester, eslint, prettier, application, generator, loggerMain], config) {
587
+ static async provider([envs, jestAspect, tsAspect, compiler, webpack, workspace, graphql, pkg, tester, eslint, prettier, application, generator, dependencyResolver, loggerMain], config) {
578
588
  const logger = loggerMain.createLogger(_react().ReactAspect.id);
579
- const reactEnv = new (_react2().ReactEnv)(jestAspect, tsAspect, compiler, webpack, workspace, pkg, tester, config, eslint, prettier, logger, _compiler().CompilerAspect.id);
589
+ const reactEnv = new (_react2().ReactEnv)(jestAspect, tsAspect, compiler, webpack, workspace, pkg, tester, config, eslint, prettier, dependencyResolver, logger, _compiler().CompilerAspect.id);
580
590
  const appType = new (_web().ReactAppType)('react-app', reactEnv);
581
591
  const react = new ReactMain(reactEnv, envs, application, appType);
582
592
  graphql.register((0, _react3().reactSchema)(react));
@@ -591,7 +601,7 @@ class ReactMain {
591
601
 
592
602
  exports.ReactMain = ReactMain;
593
603
  (0, _defineProperty2().default)(ReactMain, "runtime", _cli().MainRuntime);
594
- (0, _defineProperty2().default)(ReactMain, "dependencies", [_envs().EnvsAspect, _jest().JestAspect, _typescript().TypescriptAspect, _compiler().CompilerAspect, _webpack().WebpackAspect, _workspace().WorkspaceAspect, _graphql().GraphqlAspect, _pkg().PkgAspect, _tester().TesterAspect, _eslint().ESLintAspect, _prettier().PrettierAspect, _application().ApplicationAspect, _generator().GeneratorAspect, _logger().LoggerAspect]);
604
+ (0, _defineProperty2().default)(ReactMain, "dependencies", [_envs().EnvsAspect, _jest().JestAspect, _typescript().TypescriptAspect, _compiler().CompilerAspect, _webpack().WebpackAspect, _workspace().WorkspaceAspect, _graphql().GraphqlAspect, _pkg().PkgAspect, _tester().TesterAspect, _eslint().ESLintAspect, _prettier().PrettierAspect, _application().ApplicationAspect, _generator().GeneratorAspect, _dependencyResolver().DependencyResolverAspect, _logger().LoggerAspect]);
595
605
 
596
606
  _react().ReactAspect.addRuntime(ReactMain);
597
607
 
@@ -1 +1 @@
1
- {"version":3,"names":["ReactMain","constructor","reactEnv","envs","application","reactAppType","getReactAppType","name","ReactAppType","registerApp","reactApp","createApp","useTypescript","modifiers","tsModule","ts","overrides","devTransformers","devConfig","getCompiler","buildTransformers","buildConfig","buildPipeModifiers","tsModifier","transformers","module","getBuildPipe","override","overrideTsConfig","tsconfig","compilerOptions","transformer","configMutator","mergeTsConfig","raw","compileJs","compileJsx","types","addTypes","genericCompilerOptions","omit","Object","assign","overrideDocsTemplate","templatePath","getDocsTemplate","overrideBuildTsConfig","useWebpack","devServerTransformers","devServerConfig","getDevServer","context","getDevEnvId","envDefinition","id","previewTransformers","previewConfig","getBundler","useEslint","getLinter","usePrettier","getFormatter","overrideDevServerConfig","config","merge","overridePreviewConfig","overrideMounter","mounterPath","getMounter","compose","targetEnv","overrideJestConfig","jestConfigPath","jestModulePath","getTester","overrideBuildPipe","tasks","overrideCompilerTasks","pipeWithoutCompiler","getBuildPipeWithoutCompiler","overrideDependencies","dependencyPolicy","getDependencies","reactDeps","mergeDeepLeft","overrideCompiler","compiler","overrideEslintConfig","overridePackageJsonProps","props","getPackageJsonProps","getDocs","component","docsArray","state","_consumer","docs","abstract","description","filePath","properties","provider","jestAspect","tsAspect","webpack","workspace","graphql","pkg","tester","eslint","prettier","generator","loggerMain","logger","createLogger","ReactAspect","ReactEnv","CompilerAspect","appType","react","register","reactSchema","registerEnv","registerComponentTemplate","componentTemplates","registerWorkspaceTemplate","workspaceTemplates","registerAppType","MainRuntime","EnvsAspect","JestAspect","TypescriptAspect","WebpackAspect","WorkspaceAspect","GraphqlAspect","PkgAspect","TesterAspect","ESLintAspect","PrettierAspect","ApplicationAspect","GeneratorAspect","LoggerAspect","addRuntime"],"sources":["react.main.runtime.ts"],"sourcesContent":["import mergeDeepLeft from 'ramda/src/mergeDeepLeft';\nimport { omit } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport type { CompilerMain } from '@teambit/compiler';\nimport { CompilerAspect, Compiler } from '@teambit/compiler';\nimport { BuildTask } from '@teambit/builder';\nimport { Component } from '@teambit/component';\nimport { EnvsAspect, EnvsMain, EnvTransformer, Environment } from '@teambit/envs';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { JestMain } from '@teambit/jest';\nimport { JestAspect } from '@teambit/jest';\nimport type { PkgMain, PackageJsonProps } from '@teambit/pkg';\nimport { PkgAspect } from '@teambit/pkg';\nimport type { TesterMain } from '@teambit/tester';\nimport { TesterAspect } from '@teambit/tester';\nimport type { TypescriptMain, TsCompilerOptionsWithoutTsConfig, TsConfigTransformer } from '@teambit/typescript';\nimport { TypescriptAspect } from '@teambit/typescript';\nimport type { WebpackMain, Configuration, WebpackConfigTransformer } from '@teambit/webpack';\nimport { WebpackAspect } from '@teambit/webpack';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { DevServerContext, BundlerContext } from '@teambit/bundler';\nimport { EnvPolicyConfigObject } from '@teambit/dependency-resolver';\nimport ts from 'typescript';\nimport { ApplicationAspect, ApplicationMain } from '@teambit/application';\nimport { FormatterContext } from '@teambit/formatter';\nimport { LinterContext } from '@teambit/linter';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ESLintMain, ESLintAspect, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierMain, PrettierAspect, PrettierConfigTransformer } from '@teambit/prettier';\nimport { ReactAspect } from './react.aspect';\nimport { ReactEnv } from './react.env';\nimport { ReactAppType } from './apps/web';\nimport { reactSchema } from './react.graphql';\nimport { componentTemplates, workspaceTemplates } from './react.templates';\nimport { ReactAppOptions } from './apps/web/react-app-options';\n\ntype ReactDeps = [\n EnvsMain,\n JestMain,\n TypescriptMain,\n CompilerMain,\n WebpackMain,\n Workspace,\n GraphqlMain,\n PkgMain,\n TesterMain,\n ESLintMain,\n PrettierMain,\n ApplicationMain,\n GeneratorMain,\n LoggerMain\n];\n\nexport type ReactMainConfig = {\n /**\n * configure the react env compiler.\n * can be configured to either TypeScript ('ts') or Babel ('babel').\n */\n compiler: 'babel' | 'ts';\n\n /**\n * configure the component tester.\n * can be either Jest ('jest') or Mocha ('mocha')\n */\n tester: 'jest' | 'mocha';\n\n /**\n * version of React to configure.\n */\n reactVersion: string;\n};\n\nexport type UseWebpackModifiers = {\n previewConfig?: WebpackConfigTransformer[];\n devServerConfig?: WebpackConfigTransformer[];\n};\n\nexport type UseTypescriptModifiers = {\n buildConfig?: TsConfigTransformer[];\n devConfig?: TsConfigTransformer[];\n};\n\nexport type UseEslintModifiers = {\n transformers: EslintConfigTransformer[];\n};\nexport type UsePrettierModifiers = {\n transformers: PrettierConfigTransformer[];\n};\n\nexport class ReactMain {\n constructor(\n /**\n * an instance of the React env.\n */\n readonly reactEnv: ReactEnv,\n\n private envs: EnvsMain,\n\n private application: ApplicationMain,\n\n private reactAppType: ReactAppType\n ) {}\n\n readonly env = this.reactEnv;\n\n getReactAppType(name: string) {\n return new ReactAppType(name, this.reactEnv);\n }\n\n /**\n * use this to register apps programmatically.\n */\n async registerApp(reactApp: ReactAppOptions) {\n return this.application.registerApp(await this.reactAppType.createApp(reactApp));\n }\n\n /**\n * override the env's typescript config for both dev and build time.\n * Replaces both overrideTsConfig (devConfig) and overrideBuildTsConfig (buildConfig)\n */\n useTypescript(modifiers?: UseTypescriptModifiers, tsModule: any = ts) {\n const overrides: any = {};\n const devTransformers = modifiers?.devConfig;\n if (devTransformers) {\n overrides.getCompiler = () => this.reactEnv.getCompiler(devTransformers, tsModule);\n }\n const buildTransformers = modifiers?.buildConfig;\n if (buildTransformers) {\n const buildPipeModifiers = {\n tsModifier: {\n transformers: buildTransformers,\n module: tsModule,\n },\n };\n overrides.getBuildPipe = () => this.reactEnv.getBuildPipe(buildPipeModifiers);\n }\n return this.envs.override(overrides);\n }\n\n /**\n * @deprecated use useTypescript()\n * override the TS config of the React environment.\n * @param tsModule typeof `ts` module instance.\n */\n overrideTsConfig(\n tsconfig: Record<string, any> = {},\n compilerOptions: Partial<TsCompilerOptionsWithoutTsConfig> = {},\n tsModule: any = ts\n ) {\n const transformer: TsConfigTransformer = (configMutator) => {\n configMutator.mergeTsConfig(tsconfig);\n configMutator.raw.compileJs = compilerOptions.compileJs ?? configMutator.raw.compileJs;\n configMutator.raw.compileJsx = compilerOptions.compileJsx ?? configMutator.raw.compileJsx;\n if (compilerOptions.types) {\n configMutator.addTypes(compilerOptions.types);\n }\n const genericCompilerOptions = omit(compilerOptions, ['types', 'compileJs', 'compileJsx']);\n configMutator.raw = Object.assign(configMutator.raw, genericCompilerOptions);\n return configMutator;\n };\n // return this.envs.override({\n // getCompiler: () => this.reactEnv.getCompiler([transformer], tsModule),\n // });\n return this.useTypescript({ devConfig: [transformer] }, tsModule);\n }\n\n /**\n * Override the Bit documentation link. See docs: https://bit.dev/docs/docs/doc-templates\n */\n overrideDocsTemplate(templatePath: string) {\n return this.envs.override({\n getDocsTemplate: () => templatePath,\n });\n }\n\n /**\n * @deprecated use useTypescript()\n * override the build tsconfig.\n */\n overrideBuildTsConfig(\n tsconfig: Record<string, any> = {},\n compilerOptions: Partial<TsCompilerOptionsWithoutTsConfig> = {},\n tsModule: any = ts\n ) {\n const transformer: TsConfigTransformer = (configMutator) => {\n configMutator.mergeTsConfig(tsconfig);\n configMutator.raw.compileJs = compilerOptions.compileJs ?? configMutator.raw.compileJs;\n configMutator.raw.compileJsx = compilerOptions.compileJsx ?? configMutator.raw.compileJsx;\n if (compilerOptions.types) {\n configMutator.addTypes(compilerOptions.types);\n }\n const genericCompilerOptions = omit(compilerOptions, ['types', 'compileJs', 'compileJsx']);\n configMutator.raw = Object.assign(configMutator.raw, genericCompilerOptions);\n return configMutator;\n };\n // return this.envs.override({\n // getBuildPipe: () => this.reactEnv.getBuildPipe([transformer], tsModule),\n // });\n return this.useTypescript({ buildConfig: [transformer] }, tsModule);\n }\n\n /**\n * override the env's dev server and preview webpack configurations.\n * Replaces both overrideDevServerConfig and overridePreviewConfig\n */\n useWebpack(modifiers?: UseWebpackModifiers): EnvTransformer {\n const overrides: any = {};\n const devServerTransformers = modifiers?.devServerConfig;\n if (devServerTransformers) {\n overrides.getDevServer = (context: DevServerContext) =>\n this.reactEnv.getDevServer(context, devServerTransformers);\n overrides.getDevEnvId = (context: DevServerContext) => this.reactEnv.getDevEnvId(context.envDefinition.id);\n }\n const previewTransformers = modifiers?.previewConfig;\n if (previewTransformers) {\n overrides.getBundler = (context: BundlerContext) => this.reactEnv.getBundler(context, previewTransformers);\n }\n return this.envs.override(overrides);\n }\n\n /**\n * An API to mutate the prettier config\n * @param modifiers\n * @returns\n */\n useEslint(modifiers?: UseEslintModifiers): EnvTransformer {\n const transformers = modifiers?.transformers || [];\n return this.envs.override({\n getLinter: (context: LinterContext) => this.reactEnv.getLinter(context, transformers),\n });\n }\n\n /**\n * An API to mutate the prettier config\n * @param modifiers\n * @returns\n */\n usePrettier(modifiers?: UsePrettierModifiers): EnvTransformer {\n const transformers = modifiers?.transformers || [];\n return this.envs.override({\n getFormatter: (context: FormatterContext) => this.reactEnv.getFormatter(context, transformers),\n });\n }\n\n /**\n * @deprecated use useWebpack()\n * override the dev server webpack config.\n */\n overrideDevServerConfig(config: Configuration) {\n const transformer: WebpackConfigTransformer = (configMutator) => {\n return configMutator.merge([config]);\n };\n\n return this.envs.override({\n getDevServer: (context: DevServerContext) => this.reactEnv.getDevServer(context, [transformer]),\n getDevEnvId: (context: DevServerContext) => this.reactEnv.getDevEnvId(context.envDefinition.id),\n });\n }\n\n /**\n * @deprecated use useWebpack()\n * override the preview webpack config.\n */\n overridePreviewConfig(config: Configuration) {\n const transformer: WebpackConfigTransformer = (configMutator) => {\n return configMutator.merge([config]);\n };\n return this.envs.override({\n getBundler: (context: BundlerContext) => this.reactEnv.getBundler(context, [transformer]),\n });\n }\n\n overrideMounter(mounterPath: string) {\n return this.envs.override({\n getMounter: () => {\n return mounterPath;\n },\n });\n }\n\n /**\n * create a new composition of the react environment.\n */\n compose(transformers: EnvTransformer[], targetEnv: Environment = {}) {\n return this.envs.compose(this.envs.merge(targetEnv, this.reactEnv), transformers);\n }\n\n /**\n * override the jest configuration.\n * @param jestConfigPath {typeof jest} absolute path to jest.config.json.\n * @param jestModulePath absolute path to jest\n */\n overrideJestConfig(jestConfigPath: string, jestModulePath?: string) {\n return this.envs.override({\n getTester: () => this.reactEnv.getTester(jestConfigPath, jestModulePath),\n });\n }\n\n /**\n * override the build pipeline of the component environment.\n */\n overrideBuildPipe(tasks: BuildTask[]) {\n return this.envs.override({\n getBuildPipe: () => tasks,\n });\n }\n\n /**\n * override the compiler tasks inside the build pipeline of the component environment.\n */\n overrideCompilerTasks(tasks: BuildTask[]) {\n const pipeWithoutCompiler = this.reactEnv.getBuildPipeWithoutCompiler();\n\n return this.envs.override({\n getBuildPipe: () => [...tasks, ...pipeWithoutCompiler],\n });\n }\n\n /**\n * override the dependency configuration of the component environment.\n */\n overrideDependencies(dependencyPolicy: EnvPolicyConfigObject) {\n return this.envs.override({\n getDependencies: async () => {\n const reactDeps = await this.reactEnv.getDependencies();\n return mergeDeepLeft(dependencyPolicy, reactDeps);\n },\n });\n }\n\n /**\n * override the workspace compiler.\n */\n overrideCompiler(compiler: Compiler) {\n return this.envs.override({\n getCompiler: () => {\n return compiler;\n },\n });\n }\n\n /**\n * TODO: @gilad we need to implement this.\n */\n overrideEslintConfig() {}\n\n /**\n * override the package json props of the component environment.\n */\n overridePackageJsonProps(props: PackageJsonProps) {\n return this.envs.override({\n getPackageJsonProps: () => {\n return {\n ...this.reactEnv.getPackageJsonProps(),\n ...props,\n };\n },\n });\n }\n\n /**\n * returns doc adjusted specifically for react components.\n */\n getDocs(component: Component) {\n const docsArray = component.state._consumer.docs;\n if (!docsArray || !docsArray[0]) {\n return null;\n }\n\n const docs = docsArray[0];\n\n return {\n abstract: docs.description,\n filePath: docs.filePath,\n properties: docs.properties,\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n EnvsAspect,\n JestAspect,\n TypescriptAspect,\n CompilerAspect,\n WebpackAspect,\n WorkspaceAspect,\n GraphqlAspect,\n PkgAspect,\n TesterAspect,\n ESLintAspect,\n PrettierAspect,\n ApplicationAspect,\n GeneratorAspect,\n LoggerAspect,\n ];\n\n static async provider(\n [\n envs,\n jestAspect,\n tsAspect,\n compiler,\n webpack,\n workspace,\n graphql,\n pkg,\n tester,\n eslint,\n prettier,\n application,\n generator,\n loggerMain,\n ]: ReactDeps,\n config: ReactMainConfig\n ) {\n const logger = loggerMain.createLogger(ReactAspect.id);\n const reactEnv = new ReactEnv(\n jestAspect,\n tsAspect,\n compiler,\n webpack,\n workspace,\n pkg,\n tester,\n config,\n eslint,\n prettier,\n logger,\n CompilerAspect.id\n );\n const appType = new ReactAppType('react-app', reactEnv);\n const react = new ReactMain(reactEnv, envs, application, appType);\n graphql.register(reactSchema(react));\n envs.registerEnv(reactEnv);\n generator.registerComponentTemplate(componentTemplates);\n generator.registerWorkspaceTemplate(workspaceTemplates);\n application.registerAppType(appType);\n\n return react;\n }\n}\n\nReactAspect.addRuntime(ReactMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["ReactMain","constructor","reactEnv","envs","application","reactAppType","getReactAppType","name","ReactAppType","registerApp","reactApp","createApp","useTypescript","modifiers","tsModule","ts","overrides","devTransformers","devConfig","getCompiler","buildTransformers","buildConfig","buildPipeModifiers","tsModifier","transformers","module","getBuildPipe","override","overrideTsConfig","tsconfig","compilerOptions","transformer","configMutator","mergeTsConfig","raw","compileJs","compileJsx","types","addTypes","genericCompilerOptions","omit","Object","assign","overrideDocsTemplate","templatePath","getDocsTemplate","overrideBuildTsConfig","useWebpack","devServerTransformers","devServerConfig","getDevServer","context","getDevEnvId","envDefinition","id","previewTransformers","previewConfig","getBundler","useEslint","getLinter","usePrettier","getFormatter","overrideDevServerConfig","config","merge","overridePreviewConfig","overrideMounter","mounterPath","getMounter","compose","targetEnv","overrideJestConfig","jestConfigPath","jestModulePath","getTester","overrideBuildPipe","tasks","overrideCompilerTasks","pipeWithoutCompiler","getBuildPipeWithoutCompiler","overrideDependencies","dependencyPolicy","getDependencies","reactDeps","mergeDeepLeft","overrideCompiler","compiler","overrideEslintConfig","overridePackageJsonProps","props","getPackageJsonProps","getDocs","component","docsArray","state","_consumer","docs","abstract","description","filePath","properties","provider","jestAspect","tsAspect","webpack","workspace","graphql","pkg","tester","eslint","prettier","generator","dependencyResolver","loggerMain","logger","createLogger","ReactAspect","ReactEnv","CompilerAspect","appType","react","register","reactSchema","registerEnv","registerComponentTemplate","componentTemplates","registerWorkspaceTemplate","workspaceTemplates","registerAppType","MainRuntime","EnvsAspect","JestAspect","TypescriptAspect","WebpackAspect","WorkspaceAspect","GraphqlAspect","PkgAspect","TesterAspect","ESLintAspect","PrettierAspect","ApplicationAspect","GeneratorAspect","DependencyResolverAspect","LoggerAspect","addRuntime"],"sources":["react.main.runtime.ts"],"sourcesContent":["import mergeDeepLeft from 'ramda/src/mergeDeepLeft';\nimport { omit } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport type { CompilerMain } from '@teambit/compiler';\nimport { CompilerAspect, Compiler } from '@teambit/compiler';\nimport { BuildTask } from '@teambit/builder';\nimport { Component } from '@teambit/component';\nimport { EnvsAspect, EnvsMain, EnvTransformer, Environment } from '@teambit/envs';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { JestMain } from '@teambit/jest';\nimport { JestAspect } from '@teambit/jest';\nimport type { PkgMain, PackageJsonProps } from '@teambit/pkg';\nimport { PkgAspect } from '@teambit/pkg';\nimport type { TesterMain } from '@teambit/tester';\nimport { TesterAspect } from '@teambit/tester';\nimport type { TypescriptMain, TsCompilerOptionsWithoutTsConfig, TsConfigTransformer } from '@teambit/typescript';\nimport { TypescriptAspect } from '@teambit/typescript';\nimport type { WebpackMain, Configuration, WebpackConfigTransformer } from '@teambit/webpack';\nimport { WebpackAspect } from '@teambit/webpack';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { DevServerContext, BundlerContext } from '@teambit/bundler';\nimport { DependencyResolverAspect, DependencyResolverMain, EnvPolicyConfigObject } from '@teambit/dependency-resolver';\nimport ts from 'typescript';\nimport { ApplicationAspect, ApplicationMain } from '@teambit/application';\nimport { FormatterContext } from '@teambit/formatter';\nimport { LinterContext } from '@teambit/linter';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ESLintMain, ESLintAspect, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierMain, PrettierAspect, PrettierConfigTransformer } from '@teambit/prettier';\nimport { ReactAspect } from './react.aspect';\nimport { ReactEnv } from './react.env';\nimport { ReactAppType } from './apps/web';\nimport { reactSchema } from './react.graphql';\nimport { componentTemplates, workspaceTemplates } from './react.templates';\nimport { ReactAppOptions } from './apps/web/react-app-options';\n\ntype ReactDeps = [\n EnvsMain,\n JestMain,\n TypescriptMain,\n CompilerMain,\n WebpackMain,\n Workspace,\n GraphqlMain,\n PkgMain,\n TesterMain,\n ESLintMain,\n PrettierMain,\n ApplicationMain,\n GeneratorMain,\n DependencyResolverMain,\n LoggerMain\n];\n\nexport type ReactMainConfig = {\n /**\n * configure the react env compiler.\n * can be configured to either TypeScript ('ts') or Babel ('babel').\n */\n compiler: 'babel' | 'ts';\n\n /**\n * configure the component tester.\n * can be either Jest ('jest') or Mocha ('mocha')\n */\n tester: 'jest' | 'mocha';\n\n /**\n * version of React to configure.\n */\n reactVersion: string;\n};\n\nexport type UseWebpackModifiers = {\n previewConfig?: WebpackConfigTransformer[];\n devServerConfig?: WebpackConfigTransformer[];\n};\n\nexport type UseTypescriptModifiers = {\n buildConfig?: TsConfigTransformer[];\n devConfig?: TsConfigTransformer[];\n};\n\nexport type UseEslintModifiers = {\n transformers: EslintConfigTransformer[];\n};\nexport type UsePrettierModifiers = {\n transformers: PrettierConfigTransformer[];\n};\n\nexport class ReactMain {\n constructor(\n /**\n * an instance of the React env.\n */\n readonly reactEnv: ReactEnv,\n\n private envs: EnvsMain,\n\n private application: ApplicationMain,\n\n private reactAppType: ReactAppType\n ) {}\n\n readonly env = this.reactEnv;\n\n getReactAppType(name: string) {\n return new ReactAppType(name, this.reactEnv);\n }\n\n /**\n * use this to register apps programmatically.\n */\n async registerApp(reactApp: ReactAppOptions) {\n return this.application.registerApp(await this.reactAppType.createApp(reactApp));\n }\n\n /**\n * override the env's typescript config for both dev and build time.\n * Replaces both overrideTsConfig (devConfig) and overrideBuildTsConfig (buildConfig)\n */\n useTypescript(modifiers?: UseTypescriptModifiers, tsModule: any = ts) {\n const overrides: any = {};\n const devTransformers = modifiers?.devConfig;\n if (devTransformers) {\n overrides.getCompiler = () => this.reactEnv.getCompiler(devTransformers, tsModule);\n }\n const buildTransformers = modifiers?.buildConfig;\n if (buildTransformers) {\n const buildPipeModifiers = {\n tsModifier: {\n transformers: buildTransformers,\n module: tsModule,\n },\n };\n overrides.getBuildPipe = () => this.reactEnv.getBuildPipe(buildPipeModifiers);\n }\n return this.envs.override(overrides);\n }\n\n /**\n * @deprecated use useTypescript()\n * override the TS config of the React environment.\n * @param tsModule typeof `ts` module instance.\n */\n overrideTsConfig(\n tsconfig: Record<string, any> = {},\n compilerOptions: Partial<TsCompilerOptionsWithoutTsConfig> = {},\n tsModule: any = ts\n ) {\n const transformer: TsConfigTransformer = (configMutator) => {\n configMutator.mergeTsConfig(tsconfig);\n configMutator.raw.compileJs = compilerOptions.compileJs ?? configMutator.raw.compileJs;\n configMutator.raw.compileJsx = compilerOptions.compileJsx ?? configMutator.raw.compileJsx;\n if (compilerOptions.types) {\n configMutator.addTypes(compilerOptions.types);\n }\n const genericCompilerOptions = omit(compilerOptions, ['types', 'compileJs', 'compileJsx']);\n configMutator.raw = Object.assign(configMutator.raw, genericCompilerOptions);\n return configMutator;\n };\n // return this.envs.override({\n // getCompiler: () => this.reactEnv.getCompiler([transformer], tsModule),\n // });\n return this.useTypescript({ devConfig: [transformer] }, tsModule);\n }\n\n /**\n * Override the Bit documentation link. See docs: https://bit.dev/docs/docs/doc-templates\n */\n overrideDocsTemplate(templatePath: string) {\n return this.envs.override({\n getDocsTemplate: () => templatePath,\n });\n }\n\n /**\n * @deprecated use useTypescript()\n * override the build tsconfig.\n */\n overrideBuildTsConfig(\n tsconfig: Record<string, any> = {},\n compilerOptions: Partial<TsCompilerOptionsWithoutTsConfig> = {},\n tsModule: any = ts\n ) {\n const transformer: TsConfigTransformer = (configMutator) => {\n configMutator.mergeTsConfig(tsconfig);\n configMutator.raw.compileJs = compilerOptions.compileJs ?? configMutator.raw.compileJs;\n configMutator.raw.compileJsx = compilerOptions.compileJsx ?? configMutator.raw.compileJsx;\n if (compilerOptions.types) {\n configMutator.addTypes(compilerOptions.types);\n }\n const genericCompilerOptions = omit(compilerOptions, ['types', 'compileJs', 'compileJsx']);\n configMutator.raw = Object.assign(configMutator.raw, genericCompilerOptions);\n return configMutator;\n };\n // return this.envs.override({\n // getBuildPipe: () => this.reactEnv.getBuildPipe([transformer], tsModule),\n // });\n return this.useTypescript({ buildConfig: [transformer] }, tsModule);\n }\n\n /**\n * override the env's dev server and preview webpack configurations.\n * Replaces both overrideDevServerConfig and overridePreviewConfig\n */\n useWebpack(modifiers?: UseWebpackModifiers): EnvTransformer {\n const overrides: any = {};\n const devServerTransformers = modifiers?.devServerConfig;\n if (devServerTransformers) {\n overrides.getDevServer = (context: DevServerContext) =>\n this.reactEnv.getDevServer(context, devServerTransformers);\n overrides.getDevEnvId = (context: DevServerContext) => this.reactEnv.getDevEnvId(context.envDefinition.id);\n }\n const previewTransformers = modifiers?.previewConfig;\n if (previewTransformers) {\n overrides.getBundler = (context: BundlerContext) => this.reactEnv.getBundler(context, previewTransformers);\n }\n return this.envs.override(overrides);\n }\n\n /**\n * An API to mutate the prettier config\n * @param modifiers\n * @returns\n */\n useEslint(modifiers?: UseEslintModifiers): EnvTransformer {\n const transformers = modifiers?.transformers || [];\n return this.envs.override({\n getLinter: (context: LinterContext) => this.reactEnv.getLinter(context, transformers),\n });\n }\n\n /**\n * An API to mutate the prettier config\n * @param modifiers\n * @returns\n */\n usePrettier(modifiers?: UsePrettierModifiers): EnvTransformer {\n const transformers = modifiers?.transformers || [];\n return this.envs.override({\n getFormatter: (context: FormatterContext) => this.reactEnv.getFormatter(context, transformers),\n });\n }\n\n /**\n * @deprecated use useWebpack()\n * override the dev server webpack config.\n */\n overrideDevServerConfig(config: Configuration) {\n const transformer: WebpackConfigTransformer = (configMutator) => {\n return configMutator.merge([config]);\n };\n\n return this.envs.override({\n getDevServer: (context: DevServerContext) => this.reactEnv.getDevServer(context, [transformer]),\n getDevEnvId: (context: DevServerContext) => this.reactEnv.getDevEnvId(context.envDefinition.id),\n });\n }\n\n /**\n * @deprecated use useWebpack()\n * override the preview webpack config.\n */\n overridePreviewConfig(config: Configuration) {\n const transformer: WebpackConfigTransformer = (configMutator) => {\n return configMutator.merge([config]);\n };\n return this.envs.override({\n getBundler: (context: BundlerContext) => this.reactEnv.getBundler(context, [transformer]),\n });\n }\n\n overrideMounter(mounterPath: string) {\n return this.envs.override({\n getMounter: () => {\n return mounterPath;\n },\n });\n }\n\n /**\n * create a new composition of the react environment.\n */\n compose(transformers: EnvTransformer[], targetEnv: Environment = {}) {\n return this.envs.compose(this.envs.merge(targetEnv, this.reactEnv), transformers);\n }\n\n /**\n * override the jest configuration.\n * @param jestConfigPath {typeof jest} absolute path to jest.config.json.\n * @param jestModulePath absolute path to jest\n */\n overrideJestConfig(jestConfigPath: string, jestModulePath?: string) {\n return this.envs.override({\n getTester: () => this.reactEnv.getTester(jestConfigPath, jestModulePath),\n });\n }\n\n /**\n * override the build pipeline of the component environment.\n */\n overrideBuildPipe(tasks: BuildTask[]) {\n return this.envs.override({\n getBuildPipe: () => tasks,\n });\n }\n\n /**\n * override the compiler tasks inside the build pipeline of the component environment.\n */\n overrideCompilerTasks(tasks: BuildTask[]) {\n const pipeWithoutCompiler = this.reactEnv.getBuildPipeWithoutCompiler();\n\n return this.envs.override({\n getBuildPipe: () => [...tasks, ...pipeWithoutCompiler],\n });\n }\n\n /**\n * override the dependency configuration of the component environment.\n */\n overrideDependencies(dependencyPolicy: EnvPolicyConfigObject) {\n return this.envs.override({\n getDependencies: async () => {\n const reactDeps = await this.reactEnv.getDependencies();\n return mergeDeepLeft(dependencyPolicy, reactDeps);\n },\n });\n }\n\n /**\n * override the workspace compiler.\n */\n overrideCompiler(compiler: Compiler) {\n return this.envs.override({\n getCompiler: () => {\n return compiler;\n },\n });\n }\n\n /**\n * TODO: @gilad we need to implement this.\n */\n overrideEslintConfig() {}\n\n /**\n * override the package json props of the component environment.\n */\n overridePackageJsonProps(props: PackageJsonProps) {\n return this.envs.override({\n getPackageJsonProps: () => {\n return {\n ...this.reactEnv.getPackageJsonProps(),\n ...props,\n };\n },\n });\n }\n\n /**\n * returns doc adjusted specifically for react components.\n */\n getDocs(component: Component) {\n const docsArray = component.state._consumer.docs;\n if (!docsArray || !docsArray[0]) {\n return null;\n }\n\n const docs = docsArray[0];\n\n return {\n abstract: docs.description,\n filePath: docs.filePath,\n properties: docs.properties,\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n EnvsAspect,\n JestAspect,\n TypescriptAspect,\n CompilerAspect,\n WebpackAspect,\n WorkspaceAspect,\n GraphqlAspect,\n PkgAspect,\n TesterAspect,\n ESLintAspect,\n PrettierAspect,\n ApplicationAspect,\n GeneratorAspect,\n DependencyResolverAspect,\n LoggerAspect,\n ];\n\n static async provider(\n [\n envs,\n jestAspect,\n tsAspect,\n compiler,\n webpack,\n workspace,\n graphql,\n pkg,\n tester,\n eslint,\n prettier,\n application,\n generator,\n dependencyResolver,\n loggerMain,\n ]: ReactDeps,\n config: ReactMainConfig\n ) {\n const logger = loggerMain.createLogger(ReactAspect.id);\n const reactEnv = new ReactEnv(\n jestAspect,\n tsAspect,\n compiler,\n webpack,\n workspace,\n pkg,\n tester,\n config,\n eslint,\n prettier,\n dependencyResolver,\n logger,\n CompilerAspect.id\n );\n const appType = new ReactAppType('react-app', reactEnv);\n const react = new ReactMain(reactEnv, envs, application, appType);\n graphql.register(reactSchema(react));\n envs.registerEnv(reactEnv);\n generator.registerComponentTemplate(componentTemplates);\n generator.registerWorkspaceTemplate(workspaceTemplates);\n application.registerAppType(appType);\n\n return react;\n }\n}\n\nReactAspect.addRuntime(ReactMain);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;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;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;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;;AAGA;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;;;;;;AAyDO,MAAMA,SAAN,CAAgB;EACrBC,WAAW;EACT;AACJ;AACA;EACaC,QAJA,EAMDC,IANC,EAQDC,WARC,EAUDC,YAVC,EAWT;IAAA,KAPSH,QAOT,GAPSA,QAOT;IAAA,KALQC,IAKR,GALQA,IAKR;IAAA,KAHQC,WAGR,GAHQA,WAGR;IAAA,KADQC,YACR,GADQA,YACR;IAAA,6CAEa,KAAKH,QAFlB;EAAE;;EAIJI,eAAe,CAACC,IAAD,EAAe;IAC5B,OAAO,KAAIC,mBAAJ,EAAiBD,IAAjB,EAAuB,KAAKL,QAA5B,CAAP;EACD;EAED;AACF;AACA;;;EACmB,MAAXO,WAAW,CAACC,QAAD,EAA4B;IAC3C,OAAO,KAAKN,WAAL,CAAiBK,WAAjB,CAA6B,MAAM,KAAKJ,YAAL,CAAkBM,SAAlB,CAA4BD,QAA5B,CAAnC,CAAP;EACD;EAED;AACF;AACA;AACA;;;EACEE,aAAa,CAACC,SAAD,EAAqCC,QAAa,GAAGC,sBAArD,EAAyD;IACpE,MAAMC,SAAc,GAAG,EAAvB;IACA,MAAMC,eAAe,GAAGJ,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEK,SAAnC;;IACA,IAAID,eAAJ,EAAqB;MACnBD,SAAS,CAACG,WAAV,GAAwB,MAAM,KAAKjB,QAAL,CAAciB,WAAd,CAA0BF,eAA1B,EAA2CH,QAA3C,CAA9B;IACD;;IACD,MAAMM,iBAAiB,GAAGP,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEQ,WAArC;;IACA,IAAID,iBAAJ,EAAuB;MACrB,MAAME,kBAAkB,GAAG;QACzBC,UAAU,EAAE;UACVC,YAAY,EAAEJ,iBADJ;UAEVK,MAAM,EAAEX;QAFE;MADa,CAA3B;;MAMAE,SAAS,CAACU,YAAV,GAAyB,MAAM,KAAKxB,QAAL,CAAcwB,YAAd,CAA2BJ,kBAA3B,CAA/B;IACD;;IACD,OAAO,KAAKnB,IAAL,CAAUwB,QAAV,CAAmBX,SAAnB,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;;;EACEY,gBAAgB,CACdC,QAA6B,GAAG,EADlB,EAEdC,eAA0D,GAAG,EAF/C,EAGdhB,QAAa,GAAGC,sBAHF,EAId;IACA,MAAMgB,WAAgC,GAAIC,aAAD,IAAmB;MAAA;;MAC1DA,aAAa,CAACC,aAAd,CAA4BJ,QAA5B;MACAG,aAAa,CAACE,GAAd,CAAkBC,SAAlB,4BAA8BL,eAAe,CAACK,SAA9C,yEAA2DH,aAAa,CAACE,GAAd,CAAkBC,SAA7E;MACAH,aAAa,CAACE,GAAd,CAAkBE,UAAlB,6BAA+BN,eAAe,CAACM,UAA/C,2EAA6DJ,aAAa,CAACE,GAAd,CAAkBE,UAA/E;;MACA,IAAIN,eAAe,CAACO,KAApB,EAA2B;QACzBL,aAAa,CAACM,QAAd,CAAuBR,eAAe,CAACO,KAAvC;MACD;;MACD,MAAME,sBAAsB,GAAG,IAAAC,cAAA,EAAKV,eAAL,EAAsB,CAAC,OAAD,EAAU,WAAV,EAAuB,YAAvB,CAAtB,CAA/B;MACAE,aAAa,CAACE,GAAd,GAAoBO,MAAM,CAACC,MAAP,CAAcV,aAAa,CAACE,GAA5B,EAAiCK,sBAAjC,CAApB;MACA,OAAOP,aAAP;IACD,CAVD,CADA,CAYA;IACA;IACA;;;IACA,OAAO,KAAKpB,aAAL,CAAmB;MAAEM,SAAS,EAAE,CAACa,WAAD;IAAb,CAAnB,EAAiDjB,QAAjD,CAAP;EACD;EAED;AACF;AACA;;;EACE6B,oBAAoB,CAACC,YAAD,EAAuB;IACzC,OAAO,KAAKzC,IAAL,CAAUwB,QAAV,CAAmB;MACxBkB,eAAe,EAAE,MAAMD;IADC,CAAnB,CAAP;EAGD;EAED;AACF;AACA;AACA;;;EACEE,qBAAqB,CACnBjB,QAA6B,GAAG,EADb,EAEnBC,eAA0D,GAAG,EAF1C,EAGnBhB,QAAa,GAAGC,sBAHG,EAInB;IACA,MAAMgB,WAAgC,GAAIC,aAAD,IAAmB;MAAA;;MAC1DA,aAAa,CAACC,aAAd,CAA4BJ,QAA5B;MACAG,aAAa,CAACE,GAAd,CAAkBC,SAAlB,6BAA8BL,eAAe,CAACK,SAA9C,2EAA2DH,aAAa,CAACE,GAAd,CAAkBC,SAA7E;MACAH,aAAa,CAACE,GAAd,CAAkBE,UAAlB,6BAA+BN,eAAe,CAACM,UAA/C,2EAA6DJ,aAAa,CAACE,GAAd,CAAkBE,UAA/E;;MACA,IAAIN,eAAe,CAACO,KAApB,EAA2B;QACzBL,aAAa,CAACM,QAAd,CAAuBR,eAAe,CAACO,KAAvC;MACD;;MACD,MAAME,sBAAsB,GAAG,IAAAC,cAAA,EAAKV,eAAL,EAAsB,CAAC,OAAD,EAAU,WAAV,EAAuB,YAAvB,CAAtB,CAA/B;MACAE,aAAa,CAACE,GAAd,GAAoBO,MAAM,CAACC,MAAP,CAAcV,aAAa,CAACE,GAA5B,EAAiCK,sBAAjC,CAApB;MACA,OAAOP,aAAP;IACD,CAVD,CADA,CAYA;IACA;IACA;;;IACA,OAAO,KAAKpB,aAAL,CAAmB;MAAES,WAAW,EAAE,CAACU,WAAD;IAAf,CAAnB,EAAmDjB,QAAnD,CAAP;EACD;EAED;AACF;AACA;AACA;;;EACEiC,UAAU,CAAClC,SAAD,EAAkD;IAC1D,MAAMG,SAAc,GAAG,EAAvB;IACA,MAAMgC,qBAAqB,GAAGnC,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEoC,eAAzC;;IACA,IAAID,qBAAJ,EAA2B;MACzBhC,SAAS,CAACkC,YAAV,GAA0BC,OAAD,IACvB,KAAKjD,QAAL,CAAcgD,YAAd,CAA2BC,OAA3B,EAAoCH,qBAApC,CADF;;MAEAhC,SAAS,CAACoC,WAAV,GAAyBD,OAAD,IAA+B,KAAKjD,QAAL,CAAckD,WAAd,CAA0BD,OAAO,CAACE,aAAR,CAAsBC,EAAhD,CAAvD;IACD;;IACD,MAAMC,mBAAmB,GAAG1C,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAE2C,aAAvC;;IACA,IAAID,mBAAJ,EAAyB;MACvBvC,SAAS,CAACyC,UAAV,GAAwBN,OAAD,IAA6B,KAAKjD,QAAL,CAAcuD,UAAd,CAAyBN,OAAzB,EAAkCI,mBAAlC,CAApD;IACD;;IACD,OAAO,KAAKpD,IAAL,CAAUwB,QAAV,CAAmBX,SAAnB,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;;;EACE0C,SAAS,CAAC7C,SAAD,EAAiD;IACxD,MAAMW,YAAY,GAAG,CAAAX,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEW,YAAX,KAA2B,EAAhD;IACA,OAAO,KAAKrB,IAAL,CAAUwB,QAAV,CAAmB;MACxBgC,SAAS,EAAGR,OAAD,IAA4B,KAAKjD,QAAL,CAAcyD,SAAd,CAAwBR,OAAxB,EAAiC3B,YAAjC;IADf,CAAnB,CAAP;EAGD;EAED;AACF;AACA;AACA;AACA;;;EACEoC,WAAW,CAAC/C,SAAD,EAAmD;IAC5D,MAAMW,YAAY,GAAG,CAAAX,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEW,YAAX,KAA2B,EAAhD;IACA,OAAO,KAAKrB,IAAL,CAAUwB,QAAV,CAAmB;MACxBkC,YAAY,EAAGV,OAAD,IAA+B,KAAKjD,QAAL,CAAc2D,YAAd,CAA2BV,OAA3B,EAAoC3B,YAApC;IADrB,CAAnB,CAAP;EAGD;EAED;AACF;AACA;AACA;;;EACEsC,uBAAuB,CAACC,MAAD,EAAwB;IAC7C,MAAMhC,WAAqC,GAAIC,aAAD,IAAmB;MAC/D,OAAOA,aAAa,CAACgC,KAAd,CAAoB,CAACD,MAAD,CAApB,CAAP;IACD,CAFD;;IAIA,OAAO,KAAK5D,IAAL,CAAUwB,QAAV,CAAmB;MACxBuB,YAAY,EAAGC,OAAD,IAA+B,KAAKjD,QAAL,CAAcgD,YAAd,CAA2BC,OAA3B,EAAoC,CAACpB,WAAD,CAApC,CADrB;MAExBqB,WAAW,EAAGD,OAAD,IAA+B,KAAKjD,QAAL,CAAckD,WAAd,CAA0BD,OAAO,CAACE,aAAR,CAAsBC,EAAhD;IAFpB,CAAnB,CAAP;EAID;EAED;AACF;AACA;AACA;;;EACEW,qBAAqB,CAACF,MAAD,EAAwB;IAC3C,MAAMhC,WAAqC,GAAIC,aAAD,IAAmB;MAC/D,OAAOA,aAAa,CAACgC,KAAd,CAAoB,CAACD,MAAD,CAApB,CAAP;IACD,CAFD;;IAGA,OAAO,KAAK5D,IAAL,CAAUwB,QAAV,CAAmB;MACxB8B,UAAU,EAAGN,OAAD,IAA6B,KAAKjD,QAAL,CAAcuD,UAAd,CAAyBN,OAAzB,EAAkC,CAACpB,WAAD,CAAlC;IADjB,CAAnB,CAAP;EAGD;;EAEDmC,eAAe,CAACC,WAAD,EAAsB;IACnC,OAAO,KAAKhE,IAAL,CAAUwB,QAAV,CAAmB;MACxByC,UAAU,EAAE,MAAM;QAChB,OAAOD,WAAP;MACD;IAHuB,CAAnB,CAAP;EAKD;EAED;AACF;AACA;;;EACEE,OAAO,CAAC7C,YAAD,EAAiC8C,SAAsB,GAAG,EAA1D,EAA8D;IACnE,OAAO,KAAKnE,IAAL,CAAUkE,OAAV,CAAkB,KAAKlE,IAAL,CAAU6D,KAAV,CAAgBM,SAAhB,EAA2B,KAAKpE,QAAhC,CAAlB,EAA6DsB,YAA7D,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;;;EACE+C,kBAAkB,CAACC,cAAD,EAAyBC,cAAzB,EAAkD;IAClE,OAAO,KAAKtE,IAAL,CAAUwB,QAAV,CAAmB;MACxB+C,SAAS,EAAE,MAAM,KAAKxE,QAAL,CAAcwE,SAAd,CAAwBF,cAAxB,EAAwCC,cAAxC;IADO,CAAnB,CAAP;EAGD;EAED;AACF;AACA;;;EACEE,iBAAiB,CAACC,KAAD,EAAqB;IACpC,OAAO,KAAKzE,IAAL,CAAUwB,QAAV,CAAmB;MACxBD,YAAY,EAAE,MAAMkD;IADI,CAAnB,CAAP;EAGD;EAED;AACF;AACA;;;EACEC,qBAAqB,CAACD,KAAD,EAAqB;IACxC,MAAME,mBAAmB,GAAG,KAAK5E,QAAL,CAAc6E,2BAAd,EAA5B;IAEA,OAAO,KAAK5E,IAAL,CAAUwB,QAAV,CAAmB;MACxBD,YAAY,EAAE,MAAM,CAAC,GAAGkD,KAAJ,EAAW,GAAGE,mBAAd;IADI,CAAnB,CAAP;EAGD;EAED;AACF;AACA;;;EACEE,oBAAoB,CAACC,gBAAD,EAA0C;IAC5D,OAAO,KAAK9E,IAAL,CAAUwB,QAAV,CAAmB;MACxBuD,eAAe,EAAE,YAAY;QAC3B,MAAMC,SAAS,GAAG,MAAM,KAAKjF,QAAL,CAAcgF,eAAd,EAAxB;QACA,OAAO,IAAAE,wBAAA,EAAcH,gBAAd,EAAgCE,SAAhC,CAAP;MACD;IAJuB,CAAnB,CAAP;EAMD;EAED;AACF;AACA;;;EACEE,gBAAgB,CAACC,QAAD,EAAqB;IACnC,OAAO,KAAKnF,IAAL,CAAUwB,QAAV,CAAmB;MACxBR,WAAW,EAAE,MAAM;QACjB,OAAOmE,QAAP;MACD;IAHuB,CAAnB,CAAP;EAKD;EAED;AACF;AACA;;;EACEC,oBAAoB,GAAG,CAAE;EAEzB;AACF;AACA;;;EACEC,wBAAwB,CAACC,KAAD,EAA0B;IAChD,OAAO,KAAKtF,IAAL,CAAUwB,QAAV,CAAmB;MACxB+D,mBAAmB,EAAE,MAAM;QACzB,uCACK,KAAKxF,QAAL,CAAcwF,mBAAd,EADL,GAEKD,KAFL;MAID;IANuB,CAAnB,CAAP;EAQD;EAED;AACF;AACA;;;EACEE,OAAO,CAACC,SAAD,EAAuB;IAC5B,MAAMC,SAAS,GAAGD,SAAS,CAACE,KAAV,CAAgBC,SAAhB,CAA0BC,IAA5C;;IACA,IAAI,CAACH,SAAD,IAAc,CAACA,SAAS,CAAC,CAAD,CAA5B,EAAiC;MAC/B,OAAO,IAAP;IACD;;IAED,MAAMG,IAAI,GAAGH,SAAS,CAAC,CAAD,CAAtB;IAEA,OAAO;MACLI,QAAQ,EAAED,IAAI,CAACE,WADV;MAELC,QAAQ,EAAEH,IAAI,CAACG,QAFV;MAGLC,UAAU,EAAEJ,IAAI,CAACI;IAHZ,CAAP;EAKD;;EAqBoB,aAARC,QAAQ,CACnB,CACElG,IADF,EAEEmG,UAFF,EAGEC,QAHF,EAIEjB,QAJF,EAKEkB,OALF,EAMEC,SANF,EAOEC,OAPF,EAQEC,GARF,EASEC,MATF,EAUEC,MAVF,EAWEC,QAXF,EAYE1G,WAZF,EAaE2G,SAbF,EAcEC,kBAdF,EAeEC,UAfF,CADmB,EAkBnBlD,MAlBmB,EAmBnB;IACA,MAAMmD,MAAM,GAAGD,UAAU,CAACE,YAAX,CAAwBC,oBAAA,CAAY9D,EAApC,CAAf;IACA,MAAMpD,QAAQ,GAAG,KAAImH,kBAAJ,EACff,UADe,EAEfC,QAFe,EAGfjB,QAHe,EAIfkB,OAJe,EAKfC,SALe,EAMfE,GANe,EAOfC,MAPe,EAQf7C,MARe,EASf8C,MATe,EAUfC,QAVe,EAWfE,kBAXe,EAYfE,MAZe,EAafI,0BAAA,CAAehE,EAbA,CAAjB;IAeA,MAAMiE,OAAO,GAAG,KAAI/G,mBAAJ,EAAiB,WAAjB,EAA8BN,QAA9B,CAAhB;IACA,MAAMsH,KAAK,GAAG,IAAIxH,SAAJ,CAAcE,QAAd,EAAwBC,IAAxB,EAA8BC,WAA9B,EAA2CmH,OAA3C,CAAd;IACAb,OAAO,CAACe,QAAR,CAAiB,IAAAC,qBAAA,EAAYF,KAAZ,CAAjB;IACArH,IAAI,CAACwH,WAAL,CAAiBzH,QAAjB;IACA6G,SAAS,CAACa,yBAAV,CAAoCC,4BAApC;IACAd,SAAS,CAACe,yBAAV,CAAoCC,4BAApC;IACA3H,WAAW,CAAC4H,eAAZ,CAA4BT,OAA5B;IAEA,OAAOC,KAAP;EACD;;AAjWoB;;;gCAAVxH,S,aAiSMiI,kB;gCAjSNjI,S,kBAkSW,CACpBkI,kBADoB,EAEpBC,kBAFoB,EAGpBC,8BAHoB,EAIpBd,0BAJoB,EAKpBe,wBALoB,EAMpBC,4BANoB,EAOpBC,wBAPoB,EAQpBC,gBARoB,EASpBC,sBAToB,EAUpBC,sBAVoB,EAWpBC,0BAXoB,EAYpBC,gCAZoB,EAapBC,4BAboB,EAcpBC,8CAdoB,EAepBC,sBAfoB,C;;AAkExB3B,oBAAA,CAAY4B,UAAZ,CAAuBhJ,SAAvB"}
@@ -1,2 +1,2 @@
1
1
  import { Configuration } from 'webpack';
2
- export default function (externalizePeer: boolean, peers: string[], dev?: boolean): Configuration;
2
+ export default function (dev?: boolean): Configuration;
@@ -41,22 +41,11 @@ function _terserWebpackPlugin() {
41
41
  return data;
42
42
  }
43
43
 
44
- function _getExternals() {
45
- const data = require("./get-externals");
46
-
47
- _getExternals = function () {
48
- return data;
49
- };
50
-
51
- return data;
52
- }
53
-
54
44
  // import { WebpackManifestPlugin } from 'webpack-manifest-plugin';
55
45
  // This is the production and development configuration.
56
46
  // It is focused on developer experience, fast rebuilds, and a minimal bundle.
57
47
  // eslint-disable-next-line complexity
58
- function _default(externalizePeer, peers, dev) {
59
- const externals = externalizePeer ? (0, _getExternals().getExternals)(peers) : undefined;
48
+ function _default(dev) {
60
49
  const optimization = dev ? undefined : {
61
50
  minimize: true,
62
51
  minimizer: [new (_terserWebpackPlugin().default)({
@@ -135,7 +124,6 @@ function _default(externalizePeer, peers, dev) {
135
124
 
136
125
  };
137
126
  return {
138
- externals,
139
127
  optimization,
140
128
  plugins: [// Generate an asset manifest file with the following content:
141
129
  // - "files" key: Mapping of all asset filenames to their corresponding
@@ -1 +1 @@
1
- {"version":3,"names":["externalizePeer","peers","dev","externals","getExternals","undefined","optimization","minimize","minimizer","TerserPlugin","minify","esbuildMinify","terserOptions","minifyWhitespace","minifyIdentifiers","minifySyntax","CssMinimizerPlugin","minimizerOptions","preset","minifyFontValues","removeQuotes","plugins","WorkboxWebpackPlugin","GenerateSW","clientsClaim","exclude","navigateFallback","navigateFallbackDenylist","RegExp","filter","Boolean","performance"],"sources":["webpack.config.base.prod.ts"],"sourcesContent":["import WorkboxWebpackPlugin from 'workbox-webpack-plugin';\nimport CssMinimizerPlugin from 'css-minimizer-webpack-plugin';\nimport TerserPlugin from 'terser-webpack-plugin';\nimport { Configuration } from 'webpack';\nimport { getExternals } from './get-externals';\n// import { WebpackManifestPlugin } from 'webpack-manifest-plugin';\n\n// This is the production and development configuration.\n// It is focused on developer experience, fast rebuilds, and a minimal bundle.\n// eslint-disable-next-line complexity\nexport default function (externalizePeer: boolean, peers: string[], dev?: boolean): Configuration {\n const externals = externalizePeer ? (getExternals(peers) as any) : undefined;\n\n const optimization = dev\n ? undefined\n : {\n minimize: true,\n minimizer: [\n new TerserPlugin({\n minify: TerserPlugin.esbuildMinify,\n // `terserOptions` options will be passed to `esbuild`\n // Link to options - https://esbuild.github.io/api/#minify\n // Note: the `minify` options is true by default (and override other `minify*` options), so if you want to disable the `minifyIdentifiers` option (or other `minify*` options) please use:\n terserOptions: {\n minify: false,\n minifyWhitespace: true,\n // We don't want to minify identifiers to enable easier debugging on remote scopes when there are preview issues\n minifyIdentifiers: false,\n // minifyIdentifiers: true,\n minifySyntax: true,\n },\n // terserOptions: {},\n }),\n\n // This is only used in production mode\n // new TerserPlugin({\n // extractComments: false,\n // terserOptions: {\n // parse: {\n // // We want terser to parse ecma 8 code. However, we don't want it\n // // to apply any minification steps that turns valid ecma 5 code\n // // into invalid ecma 5 code. This is why the 'compress' and 'output'\n // // sections only apply transformations that are ecma 5 safe\n // // https://github.com/facebook/create-react-app/pull/4234\n // ecma: 8,\n // },\n // compress: {\n // ecma: 5,\n // warnings: false,\n // // Disabled because of an issue with Uglify breaking seemingly valid code:\n // // https://github.com/facebook/create-react-app/issues/2376\n // // Pending further investigation:\n // // https://github.com/mishoo/UglifyJS2/issues/2011\n // comparisons: false,\n // // Disabled because of an issue with Terser breaking valid code:\n // // https://github.com/facebook/create-react-app/issues/5250\n // // Pending further investigation:\n // // https://github.com/terser-js/terser/issues/120\n // inline: 2,\n // },\n // mangle: {\n // safari10: true,\n // },\n // output: {\n // ecma: 5,\n // comments: false,\n // // Turned on because emoji and regex is not minified properly using default\n // // https://github.com/facebook/create-react-app/issues/2488\n // ascii_only: true,\n // },\n // },\n // }),\n new CssMinimizerPlugin({\n minimizerOptions: {\n preset: [\n 'default',\n {\n minifyFontValues: { removeQuotes: false },\n },\n ],\n },\n }),\n ],\n // Automatically split vendor and commons\n // https://twitter.com/wSokra/status/969633336732905474\n // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366\n // splitChunks: {\n // chunks: 'all',\n // name: false,\n // },\n // Keep the runtime chunk separated to enable long term caching\n // https://twitter.com/wSokra/status/969679223278505985\n // https://github.com/facebook/create-react-app/issues/5358\n // runtimeChunk: {\n // name: (entrypoint) => `runtime-${entrypoint.name}`,\n // },\n };\n\n return {\n externals,\n optimization,\n\n plugins: [\n // Generate an asset manifest file with the following content:\n // - \"files\" key: Mapping of all asset filenames to their corresponding\n // output file so that tools can pick it up without having to parse\n // `index.html`\n // can be used to reconstruct the HTML if necessary\n // new WebpackManifestPlugin({\n // fileName: 'asset-manifest.json',\n // publicPath: 'public',\n // generate: (seed, files, entrypoints) => {\n // const manifestFiles = files.reduce((manifest, file) => {\n // manifest[file.name] = file.path;\n // return manifest;\n // }, seed);\n // const entrypointFiles = entrypoints.main.filter((fileName) => !fileName.endsWith('.map'));\n\n // // @ts-ignore - https://github.com/shellscape/webpack-manifest-plugin/issues/276\n // return {\n // files: manifestFiles,\n // entrypoints: entrypointFiles,\n // } as Record<string, string>;\n // },\n // }),\n // Generate a service worker script that will precache, and keep up to date,\n // the HTML & assets that are part of the webpack build.\n new WorkboxWebpackPlugin.GenerateSW({\n clientsClaim: true,\n exclude: [/\\.map$/, /asset-manifest\\.json$/],\n // importWorkboxFrom: 'cdn',\n navigateFallback: 'public/index.html',\n navigateFallbackDenylist: [\n // Exclude URLs starting with /_, as they're likely an API call\n new RegExp('^/_'),\n // Exclude any URLs whose last part seems to be a file extension\n // as they're likely a resource and not a SPA route.\n // URLs containing a \"?\" character won't be blacklisted as they're likely\n // a route with query params (e.g. auth callbacks).\n new RegExp('/[^/?]+\\\\.[^/]+$'),\n ],\n }),\n ].filter(Boolean),\n // Turn off performance processing because we utilize\n // our own hints via the FileSizeReporter\n performance: false,\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;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;AAEA;AACA;AACA;AACe,kBAAUA,eAAV,EAAoCC,KAApC,EAAqDC,GAArD,EAAmF;EAChG,MAAMC,SAAS,GAAGH,eAAe,GAAI,IAAAI,4BAAA,EAAaH,KAAb,CAAJ,GAAkCI,SAAnE;EAEA,MAAMC,YAAY,GAAGJ,GAAG,GACpBG,SADoB,GAEpB;IACEE,QAAQ,EAAE,IADZ;IAEEC,SAAS,EAAE,CACT,KAAIC,8BAAJ,EAAiB;MACfC,MAAM,EAAED,8BAAA,CAAaE,aADN;MAEf;MACA;MACA;MACAC,aAAa,EAAE;QACbF,MAAM,EAAE,KADK;QAEbG,gBAAgB,EAAE,IAFL;QAGb;QACAC,iBAAiB,EAAE,KAJN;QAKb;QACAC,YAAY,EAAE;MAND,CALA,CAaf;;IAbe,CAAjB,CADS,EAiBT;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,KAAIC,oCAAJ,EAAuB;MACrBC,gBAAgB,EAAE;QAChBC,MAAM,EAAE,CACN,SADM,EAEN;UACEC,gBAAgB,EAAE;YAAEC,YAAY,EAAE;UAAhB;QADpB,CAFM;MADQ;IADG,CAAvB,CAvDS,CAFb,CAoEE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAhFF,CAFJ;EAqFA,OAAO;IACLjB,SADK;IAELG,YAFK;IAILe,OAAO,EAAE,CACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,KAAIC,+BAAA,CAAqBC,UAAzB,EAAoC;MAClCC,YAAY,EAAE,IADoB;MAElCC,OAAO,EAAE,CAAC,QAAD,EAAW,uBAAX,CAFyB;MAGlC;MACAC,gBAAgB,EAAE,mBAJgB;MAKlCC,wBAAwB,EAAE,CACxB;MACA,IAAIC,MAAJ,CAAW,KAAX,CAFwB,EAGxB;MACA;MACA;MACA;MACA,IAAIA,MAAJ,CAAW,kBAAX,CAPwB;IALQ,CAApC,CAzBO,EAwCPC,MAxCO,CAwCAC,OAxCA,CAJJ;IA6CL;IACA;IACAC,WAAW,EAAE;EA/CR,CAAP;AAiDD"}
1
+ {"version":3,"names":["dev","optimization","undefined","minimize","minimizer","TerserPlugin","minify","esbuildMinify","terserOptions","minifyWhitespace","minifyIdentifiers","minifySyntax","CssMinimizerPlugin","minimizerOptions","preset","minifyFontValues","removeQuotes","plugins","WorkboxWebpackPlugin","GenerateSW","clientsClaim","exclude","navigateFallback","navigateFallbackDenylist","RegExp","filter","Boolean","performance"],"sources":["webpack.config.base.prod.ts"],"sourcesContent":["import WorkboxWebpackPlugin from 'workbox-webpack-plugin';\nimport CssMinimizerPlugin from 'css-minimizer-webpack-plugin';\nimport TerserPlugin from 'terser-webpack-plugin';\nimport { Configuration } from 'webpack';\n// import { WebpackManifestPlugin } from 'webpack-manifest-plugin';\n\n// This is the production and development configuration.\n// It is focused on developer experience, fast rebuilds, and a minimal bundle.\n// eslint-disable-next-line complexity\nexport default function (dev?: boolean): Configuration {\n const optimization = dev\n ? undefined\n : {\n minimize: true,\n minimizer: [\n new TerserPlugin({\n minify: TerserPlugin.esbuildMinify,\n // `terserOptions` options will be passed to `esbuild`\n // Link to options - https://esbuild.github.io/api/#minify\n // Note: the `minify` options is true by default (and override other `minify*` options), so if you want to disable the `minifyIdentifiers` option (or other `minify*` options) please use:\n terserOptions: {\n minify: false,\n minifyWhitespace: true,\n // We don't want to minify identifiers to enable easier debugging on remote scopes when there are preview issues\n minifyIdentifiers: false,\n // minifyIdentifiers: true,\n minifySyntax: true,\n },\n // terserOptions: {},\n }),\n\n // This is only used in production mode\n // new TerserPlugin({\n // extractComments: false,\n // terserOptions: {\n // parse: {\n // // We want terser to parse ecma 8 code. However, we don't want it\n // // to apply any minification steps that turns valid ecma 5 code\n // // into invalid ecma 5 code. This is why the 'compress' and 'output'\n // // sections only apply transformations that are ecma 5 safe\n // // https://github.com/facebook/create-react-app/pull/4234\n // ecma: 8,\n // },\n // compress: {\n // ecma: 5,\n // warnings: false,\n // // Disabled because of an issue with Uglify breaking seemingly valid code:\n // // https://github.com/facebook/create-react-app/issues/2376\n // // Pending further investigation:\n // // https://github.com/mishoo/UglifyJS2/issues/2011\n // comparisons: false,\n // // Disabled because of an issue with Terser breaking valid code:\n // // https://github.com/facebook/create-react-app/issues/5250\n // // Pending further investigation:\n // // https://github.com/terser-js/terser/issues/120\n // inline: 2,\n // },\n // mangle: {\n // safari10: true,\n // },\n // output: {\n // ecma: 5,\n // comments: false,\n // // Turned on because emoji and regex is not minified properly using default\n // // https://github.com/facebook/create-react-app/issues/2488\n // ascii_only: true,\n // },\n // },\n // }),\n new CssMinimizerPlugin({\n minimizerOptions: {\n preset: [\n 'default',\n {\n minifyFontValues: { removeQuotes: false },\n },\n ],\n },\n }),\n ],\n // Automatically split vendor and commons\n // https://twitter.com/wSokra/status/969633336732905474\n // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366\n // splitChunks: {\n // chunks: 'all',\n // name: false,\n // },\n // Keep the runtime chunk separated to enable long term caching\n // https://twitter.com/wSokra/status/969679223278505985\n // https://github.com/facebook/create-react-app/issues/5358\n // runtimeChunk: {\n // name: (entrypoint) => `runtime-${entrypoint.name}`,\n // },\n };\n\n return {\n optimization,\n\n plugins: [\n // Generate an asset manifest file with the following content:\n // - \"files\" key: Mapping of all asset filenames to their corresponding\n // output file so that tools can pick it up without having to parse\n // `index.html`\n // can be used to reconstruct the HTML if necessary\n // new WebpackManifestPlugin({\n // fileName: 'asset-manifest.json',\n // publicPath: 'public',\n // generate: (seed, files, entrypoints) => {\n // const manifestFiles = files.reduce((manifest, file) => {\n // manifest[file.name] = file.path;\n // return manifest;\n // }, seed);\n // const entrypointFiles = entrypoints.main.filter((fileName) => !fileName.endsWith('.map'));\n\n // // @ts-ignore - https://github.com/shellscape/webpack-manifest-plugin/issues/276\n // return {\n // files: manifestFiles,\n // entrypoints: entrypointFiles,\n // } as Record<string, string>;\n // },\n // }),\n // Generate a service worker script that will precache, and keep up to date,\n // the HTML & assets that are part of the webpack build.\n new WorkboxWebpackPlugin.GenerateSW({\n clientsClaim: true,\n exclude: [/\\.map$/, /asset-manifest\\.json$/],\n // importWorkboxFrom: 'cdn',\n navigateFallback: 'public/index.html',\n navigateFallbackDenylist: [\n // Exclude URLs starting with /_, as they're likely an API call\n new RegExp('^/_'),\n // Exclude any URLs whose last part seems to be a file extension\n // as they're likely a resource and not a SPA route.\n // URLs containing a \"?\" character won't be blacklisted as they're likely\n // a route with query params (e.g. auth callbacks).\n new RegExp('/[^/?]+\\\\.[^/]+$'),\n ],\n }),\n ].filter(Boolean),\n // Turn off performance processing because we utilize\n // our own hints via the FileSizeReporter\n performance: false,\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;;AAEA;AAEA;AACA;AACA;AACe,kBAAUA,GAAV,EAAwC;EACrD,MAAMC,YAAY,GAAGD,GAAG,GACpBE,SADoB,GAEpB;IACEC,QAAQ,EAAE,IADZ;IAEEC,SAAS,EAAE,CACT,KAAIC,8BAAJ,EAAiB;MACfC,MAAM,EAAED,8BAAA,CAAaE,aADN;MAEf;MACA;MACA;MACAC,aAAa,EAAE;QACbF,MAAM,EAAE,KADK;QAEbG,gBAAgB,EAAE,IAFL;QAGb;QACAC,iBAAiB,EAAE,KAJN;QAKb;QACAC,YAAY,EAAE;MAND,CALA,CAaf;;IAbe,CAAjB,CADS,EAiBT;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,KAAIC,oCAAJ,EAAuB;MACrBC,gBAAgB,EAAE;QAChBC,MAAM,EAAE,CACN,SADM,EAEN;UACEC,gBAAgB,EAAE;YAAEC,YAAY,EAAE;UAAhB;QADpB,CAFM;MADQ;IADG,CAAvB,CAvDS,CAFb,CAoEE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAhFF,CAFJ;EAqFA,OAAO;IACLf,YADK;IAGLgB,OAAO,EAAE,CACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,KAAIC,+BAAA,CAAqBC,UAAzB,EAAoC;MAClCC,YAAY,EAAE,IADoB;MAElCC,OAAO,EAAE,CAAC,QAAD,EAAW,uBAAX,CAFyB;MAGlC;MACAC,gBAAgB,EAAE,mBAJgB;MAKlCC,wBAAwB,EAAE,CACxB;MACA,IAAIC,MAAJ,CAAW,KAAX,CAFwB,EAGxB;MACA;MACA;MACA;MACA,IAAIA,MAAJ,CAAW,kBAAX,CAPwB;IALQ,CAApC,CAzBO,EAwCPC,MAxCO,CAwCAC,OAxCA,CAHJ;IA4CL;IACA;IACAC,WAAW,EAAE;EA9CR,CAAP;AAgDD"}