@teambit/react 0.0.563 → 0.0.567

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.
@@ -116,8 +116,6 @@ export declare class ReactEnv implements TesterEnv, CompilerEnv, LinterEnv, DevE
116
116
  */
117
117
  getDevServer(context: DevServerContext, transformers?: WebpackConfigTransformer[]): DevServer;
118
118
  getBundler(context: BundlerContext, transformers?: WebpackConfigTransformer[]): Promise<Bundler>;
119
- private getComponentsModulesDirectories;
120
- private getEntriesFromWebpackConfig;
121
119
  /**
122
120
  * returns a path to a docs template.
123
121
  */
package/dist/react.env.js CHANGED
@@ -330,11 +330,7 @@ class ReactEnv {
330
330
  getDevServer(context, transformers = []) {
331
331
  const baseConfig = (0, _webpackConfig().default)(false);
332
332
  const envDevConfig = (0, _webpackConfigEnv().default)(context.id);
333
- const componentsDirs = this.getComponentsModulesDirectories(context.components); // const fileMapPath = this.writeFileMap(context.components, true);
334
- // const componentDevConfig = componentPreviewDevConfigFactory(fileMapPath, this.workspace.path);
335
- // const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);
336
-
337
- const componentDevConfig = (0, _webpackConfigComponent2().default)(this.workspace.path, context.id, componentsDirs);
333
+ const componentDevConfig = (0, _webpackConfigComponent2().default)(this.workspace.path, context.id);
338
334
 
339
335
  const defaultTransformer = configMutator => {
340
336
  const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);
@@ -358,39 +354,6 @@ class ReactEnv {
358
354
 
359
355
  return this.webpack.createPreviewBundler(context, [defaultTransformer, ...transformers]);
360
356
  }
361
-
362
- getComponentsModulesDirectories(components) {
363
- const dirs = components.map(component => {
364
- return this.pkg.getModulePath(component, {
365
- absPath: true
366
- });
367
- });
368
- return dirs;
369
- }
370
-
371
- getEntriesFromWebpackConfig(config) {
372
- if (!config || !config.entry) {
373
- return [];
374
- }
375
-
376
- if (typeof config.entry === 'string') {
377
- return [config.entry];
378
- }
379
-
380
- if (Array.isArray(config.entry)) {
381
- let entries = [];
382
- entries = config.entry.reduce((acc, entry) => {
383
- if (typeof entry === 'string') {
384
- acc.push(entry);
385
- }
386
-
387
- return acc;
388
- }, entries);
389
- return entries;
390
- }
391
-
392
- return [];
393
- }
394
357
  /**
395
358
  * returns a path to a docs template.
396
359
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["react.env.ts"],"names":["AspectEnvType","defaultTsConfig","require","buildTsConfig","eslintConfig","prettierConfig","ReactEnv","constructor","jestAspect","tsAspect","compiler","webpack","workspace","pkg","tester","config","eslint","prettier","getTsConfig","targetTsConfig","getBuildTsConfig","getTester","jestConfigPath","jestModulePath","resolve","createTester","getTsCompilerOptions","mode","tsconfig","pathToSource","__dirname","replace","compileJs","compileJsx","types","getTsCompiler","transformers","tsModule","ts","tsCompileOptions","createCompiler","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","Math","random","substr","JSON","stringify","getDevEnvId","ReactAspect","getSchemaExtractor","createSchemaExtractor","getDevServer","baseConfig","envDevConfig","componentsDirs","getComponentsModulesDirectories","componentDevConfig","merged","merge","createDevServer","getBundler","baseProdConfig","componentProdConfig","createPreviewBundler","dirs","map","getModulePath","absPath","getEntriesFromWebpackConfig","entry","Array","isArray","entries","acc","push","getDocsTemplate","getMounter","getPackageJsonProps","getDependencies","dependencies","react","devDependencies","peerDependencies","getBuildPipe","modifiers","tsModifier","getCompilerTask","module","task","tsCompiler","createTask","__getDescriptor","type"],"mappings":"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","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 } from '@teambit/builder';\nimport { merge } 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 { 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 { Configuration } from 'webpack';\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\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 AspectEnvType = '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 private 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\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 * returns a component tester.\n */\n getTester(jestConfigPath: string, jestModulePath?: string): Tester {\n const config = jestConfigPath || require.resolve('./jest/jest.config');\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n private getTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {\n const tsconfig = mode === 'dev' ? defaultTsConfig : 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 private getTsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.getTsCompiler('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).substr(2, 9)}.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 componentsDirs = this.getComponentsModulesDirectories(context.components);\n // const fileMapPath = this.writeFileMap(context.components, true);\n // const componentDevConfig = componentPreviewDevConfigFactory(fileMapPath, this.workspace.path);\n // const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);\n const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id, componentsDirs);\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 // const fileMapPath = this.writeFileMap(context.components);\n const baseConfig = basePreviewConfigFactory(true);\n const baseProdConfig = basePreviewProdConfigFactory();\n // const componentProdConfig = componentPreviewProdConfigFactory(fileMapPath);\n const componentProdConfig = componentPreviewProdConfigFactory();\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);\n return merged;\n };\n\n return this.webpack.createPreviewBundler(context, [defaultTransformer, ...transformers]);\n }\n\n private getComponentsModulesDirectories(components: Component[]): string[] {\n const dirs = components.map((component) => {\n return this.pkg.getModulePath(component, { absPath: true });\n });\n return dirs;\n }\n\n private getEntriesFromWebpackConfig(config?: Configuration): string[] {\n if (!config || !config.entry) {\n return [];\n }\n if (typeof config.entry === 'string') {\n return [config.entry];\n }\n if (Array.isArray(config.entry)) {\n let entries: string[] = [];\n entries = config.entry.reduce((acc, entry) => {\n if (typeof entry === 'string') {\n acc.push(entry);\n }\n return acc;\n }, entries);\n return entries;\n }\n return [];\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 /**\n * define the package json properties to add to each component.\n */\n getPackageJsonProps() {\n return this.tsAspect.getPackageJsonProps();\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 // '@types/react-router-dom': '^5.0.0', // TODO - should not be here (!)\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 private getCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n async __getDescriptor() {\n return {\n type: AspectEnvType,\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["react.env.ts"],"names":["AspectEnvType","defaultTsConfig","require","buildTsConfig","eslintConfig","prettierConfig","ReactEnv","constructor","jestAspect","tsAspect","compiler","webpack","workspace","pkg","tester","config","eslint","prettier","getTsConfig","targetTsConfig","getBuildTsConfig","getTester","jestConfigPath","jestModulePath","resolve","createTester","getTsCompilerOptions","mode","tsconfig","pathToSource","__dirname","replace","compileJs","compileJsx","types","getTsCompiler","transformers","tsModule","ts","tsCompileOptions","createCompiler","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","Math","random","substr","JSON","stringify","getDevEnvId","ReactAspect","getSchemaExtractor","createSchemaExtractor","getDevServer","baseConfig","envDevConfig","componentDevConfig","merged","merge","createDevServer","getBundler","baseProdConfig","componentProdConfig","createPreviewBundler","getDocsTemplate","getMounter","getPackageJsonProps","getDependencies","dependencies","react","devDependencies","peerDependencies","getBuildPipe","modifiers","tsModifier","getCompilerTask","module","task","tsCompiler","createTask","__getDescriptor","type"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AA0BA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAVA;AAIA;AACA;AAGA;AAIO,MAAMA,aAAa,GAAG,OAAtB;;;AACP,MAAMC,eAAe,GAAGC,OAAO,CAAC,4BAAD,CAA/B;;AACA,MAAMC,aAAa,GAAGD,OAAO,CAAC,kCAAD,CAA7B;;AACA,MAAME,YAAY,GAAGF,OAAO,CAAC,mBAAD,CAA5B;;AACA,MAAMG,cAAc,GAAGH,OAAO,CAAC,+BAAD,CAA9B,C,CAEA;;;AAOA;AACA;AACA;AACO,MAAMI,QAAN,CAEP;AACEC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,UAJC;AAMT;AACJ;AACA;AACYC,EAAAA,QATC;AAWT;AACJ;AACA;AACYC,EAAAA,QAdC;AAgBT;AACJ;AACA;AACYC,EAAAA,OAnBC;AAqBT;AACJ;AACA;AACYC,EAAAA,SAxBC;AA0BT;AACJ;AACA;AACYC,EAAAA,GA7BC;AA+BT;AACJ;AACA;AACYC,EAAAA,MAlCC,EAoCDC,MApCC,EAsCDC,MAtCC,EAwCDC,QAxCC,EAyCT;AAAA,SArCQT,UAqCR,GArCQA,UAqCR;AAAA,SAhCQC,QAgCR,GAhCQA,QAgCR;AAAA,SA3BQC,QA2BR,GA3BQA,QA2BR;AAAA,SAtBQC,OAsBR,GAtBQA,OAsBR;AAAA,SAjBQC,SAiBR,GAjBQA,SAiBR;AAAA,SAZQC,GAYR,GAZQA,GAYR;AAAA,SAPQC,MAOR,GAPQA,MAOR;AAAA,SALQC,MAKR,GALQA,MAKR;AAAA,SAHQC,MAGR,GAHQA,MAGR;AAAA,SADQC,QACR,GADQA,QACR;AAAA,kDAsJK,mDAtJL;AAAE;;AAEJC,EAAAA,WAAW,CAACC,cAAD,EAA0D;AACnE,WAAOA,cAAc,GAAG,qBAAM,EAAN,EAAUlB,eAAV,EAA2BkB,cAA3B,CAAH,GAAgDlB,eAArE;AACD;;AAEDmB,EAAAA,gBAAgB,CAACD,cAAD,EAA0D;AACxE,WAAOA,cAAc,GAAG,qBAAM,EAAN,EAAUhB,aAAV,EAAyBgB,cAAzB,CAAH,GAA8ChB,aAAnE;AACD;AAED;AACF;AACA;;;AACEkB,EAAAA,SAAS,CAACC,cAAD,EAAyBC,cAAzB,EAA0D;AACjE,UAAMR,MAAM,GAAGO,cAAc,IAAIpB,OAAO,CAACsB,OAAR,CAAgB,oBAAhB,CAAjC;;AACA,WAAO,KAAKhB,UAAL,CAAgBiB,YAAhB,CAA6BV,MAA7B,EAAqCQ,cAAc,IAAIrB,OAAO,CAACsB,OAAR,CAAgB,MAAhB,CAAvD,CAAP;AACD;;AAEOE,EAAAA,oBAAoB,CAACC,IAAkB,GAAG,KAAtB,EAAwD;AAClF,UAAMC,QAAQ,GAAGD,IAAI,KAAK,KAAT,GAAiB1B,eAAjB,GAAmCE,aAApD;AACA,UAAM0B,YAAY,GAAG,mCAAqBC,SAArB,EAAgCC,OAAhC,CAAwC,QAAxC,EAAkD,OAAlD,CAArB;AACA,UAAMC,SAAS,GAAG,IAAlB;AACA,UAAMC,UAAU,GAAG,IAAnB;AACA,WAAO;AACLL,MAAAA,QADK;AAEL;AACAM,MAAAA,KAAK,EAAE,CAAC,qBAAQL,YAAR,EAAsB,yBAAtB,CAAD,EAAmD,qBAAQA,YAAR,EAAsB,yBAAtB,CAAnD,CAHF;AAILG,MAAAA,SAJK;AAKLC,MAAAA;AALK,KAAP;AAOD;;AAEOE,EAAAA,aAAa,CAACR,IAAkB,GAAG,KAAtB,EAA6BS,YAAmC,GAAG,EAAnE,EAAuEC,QAAQ,GAAGC,qBAAlF,EAAsF;AACzG,UAAMC,gBAAgB,GAAG,KAAKb,oBAAL,CAA0BC,IAA1B,CAAzB;AACA,WAAO,KAAKlB,QAAL,CAAc+B,cAAd,CAA6BD,gBAA7B,EAA+CH,YAA/C,EAA6DC,QAA7D,CAAP;AACD;;AAEDI,EAAAA,WAAW,CAACL,YAAmC,GAAG,EAAvC,EAA2CC,QAAQ,GAAGC,qBAAtD,EAA0D;AACnE,WAAO,KAAKH,aAAL,CAAmB,KAAnB,EAA0BC,YAA1B,EAAwCC,QAAxC,CAAP;AACD;AAED;AACF;AACA;;;AACEK,EAAAA,SAAS,CAACC,OAAD,EAAyBP,YAAuC,GAAG,EAAnE,EAA+E;AACtF,UAAMQ,kBAA2C,GAAIC,aAAD,IAAmB;AACrEA,MAAAA,aAAa,CAACC,iBAAd,CAAgC,CAAC,KAAD,EAAQ,MAAR,CAAhC;AACA,aAAOD,aAAP;AACD,KAHD;;AAKA,UAAME,eAAe,GAAG,CAACH,kBAAD,EAAqB,GAAGR,YAAxB,CAAxB;AAEA,WAAO,KAAKpB,MAAL,CAAYgC,YAAZ,CACLL,OADK,EAEL;AACE5B,MAAAA,MAAM,EAAEX,YADV;AAEE;AACA6C,MAAAA,UAAU,EAAEnB;AAHd,KAFK,EAOLiB,eAPK,CAAP;AASD;AAED;AACF;AACA;;;AACEG,EAAAA,YAAY,CAACP,OAAD,EAA4BP,YAAyC,GAAG,EAAxE,EAAuF;AACjG,WAAO,KAAKnB,QAAL,CAAckC,eAAd,CACLR,OADK,EAEL;AACE5B,MAAAA,MAAM,EAAEV;AADV,KAFK,EAKL+B,YALK,CAAP;AAOD;;AAEOgB,EAAAA,UAAU,CAACC,UAAD,EAA0BC,KAAK,GAAG,KAAlC,EAAyC;AACzD,WAAOD,UAAU,CAACE,MAAX,CAAoD,CAACC,KAAD,EAAQC,SAAR,KAAiC;AAC1FA,MAAAA,SAAS,CAACC,KAAV,CAAgBC,UAAhB,CAA2BC,KAA3B,CAAiCC,OAAjC,CAA0CC,IAAD,IAAU;AACjDN,QAAAA,KAAK,CAACM,IAAI,CAACC,IAAN,CAAL,GAAmB;AACjBC,UAAAA,EAAE,EAAEP,SAAS,CAACO,EAAV,CAAaC,QAAb,EADa;AAEjBC,UAAAA,QAAQ,EAAEZ,KAAK,GAAI,IAAGG,SAAS,CAACO,EAAV,CAAaG,QAAS,EAA7B,GAAiCC,iCAAaC,KAAb,CAAmBZ,SAAS,CAACO,EAA7B;AAF/B,SAAnB;AAID,OALD;AAOA,aAAOR,KAAP;AACD,KATM,EASJ,EATI,CAAP;AAUD;;AAEOc,EAAAA,YAAY,CAACjB,UAAD,EAA0BC,KAA1B,EAA2C;AAC7D,UAAMiB,OAAO,GAAG,KAAKnB,UAAL,CAAgBC,UAAhB,EAA4BC,KAA5B,CAAhB;AACA,UAAMS,IAAI,GAAG,kBAAK,mBAAL,EAAgB,GAAES,IAAI,CAACC,MAAL,GAAcR,QAAd,CAAuB,EAAvB,EAA2BS,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAwC,OAA1D,CAAb;AACA,mCAAeX,IAAf,EAAqBY,IAAI,CAACC,SAAL,CAAeL,OAAf,CAArB;AACA,WAAOR,IAAP;AACD;AAED;AACF;AACA;;;AACEc,EAAAA,WAAW,CAACb,EAAD,EAAc;AACvB,QAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B,OAAOc,qBAAYd,EAAnB;AAC5B,WAAOA,EAAE,IAAIc,qBAAYd,EAAzB;AACD;AAED;AACF;AACA;;;AACEe,EAAAA,kBAAkB,CAACnD,QAAD,EAAgD;AAChE,WAAO,KAAKnB,QAAL,CAAcuE,qBAAd,CAAoC,KAAK9D,WAAL,CAAiBU,QAAjB,CAApC,CAAP;AACD;AAED;AACF;AACA;AACA;;;AACEqD,EAAAA,YAAY,CAACtC,OAAD,EAA4BP,YAAwC,GAAG,EAAvE,EAAsF;AAChG,UAAM8C,UAAU,GAAG,8BAAyB,KAAzB,CAAnB;AACA,UAAMC,YAAY,GAAG,iCAA2BxC,OAAO,CAACqB,EAAnC,CAArB;AACA,UAAMoB,kBAAkB,GAAG,wCAAiC,KAAKxE,SAAL,CAAemD,IAAhD,EAAsDpB,OAAO,CAACqB,EAA9D,CAA3B;;AAEA,UAAMpB,kBAA4C,GAAIC,aAAD,IAAmB;AACtE,YAAMwC,MAAM,GAAGxC,aAAa,CAACyC,KAAd,CAAoB,CAACJ,UAAD,EAAaC,YAAb,EAA2BC,kBAA3B,CAApB,CAAf;AACA,aAAOC,MAAP;AACD,KAHD;;AAKA,WAAO,KAAK1E,OAAL,CAAa4E,eAAb,CAA6B5C,OAA7B,EAAsC,CAACC,kBAAD,EAAqB,GAAGR,YAAxB,CAAtC,CAAP;AACD;;AAEe,QAAVoD,UAAU,CAAC7C,OAAD,EAA0BP,YAAwC,GAAG,EAArE,EAA2F;AACzG;AACA,UAAM8C,UAAU,GAAG,8BAAyB,IAAzB,CAAnB;AACA,UAAMO,cAAc,GAAG,mCAAvB,CAHyG,CAIzG;;AACA,UAAMC,mBAAmB,GAAG,wCAA5B;;AAEA,UAAM9C,kBAA4C,GAAIC,aAAD,IAAmB;AACtE,YAAMwC,MAAM,GAAGxC,aAAa,CAACyC,KAAd,CAAoB,CAACJ,UAAD,EAAaO,cAAb,EAA6BC,mBAA7B,CAApB,CAAf;AACA,aAAOL,MAAP;AACD,KAHD;;AAKA,WAAO,KAAK1E,OAAL,CAAagF,oBAAb,CAAkChD,OAAlC,EAA2C,CAACC,kBAAD,EAAqB,GAAGR,YAAxB,CAA3C,CAAP;AACD;AAED;AACF;AACA;;;AACEwD,EAAAA,eAAe,GAAG;AAChB,WAAO1F,OAAO,CAACsB,OAAR,CAAgB,4BAAhB,CAAP;AACD;;AAID;AACF;AACA;AACEqE,EAAAA,UAAU,GAAG;AACX,WAAO3F,OAAO,CAACsB,OAAR,CAAgB,SAAhB,CAAP;AACD;AAED;AACF;AACA;;;AACEsE,EAAAA,mBAAmB,GAAG;AACpB,WAAO,KAAKrF,QAAL,CAAcqF,mBAAd,EAAP;AACD;AAED;AACF;AACA;;;AACEC,EAAAA,eAAe,GAAG;AAChB,WAAO;AACLC,MAAAA,YAAY,EAAE;AACZC,QAAAA,KAAK,EAAE,GADK;AAEZ,qBAAa,GAFD;AAGZ,mBAAW;AAHC,OADT;AAML;AACAC,MAAAA,eAAe,EAAE;AACfD,QAAAA,KAAK,EAAE,GADQ;AAEf,qBAAa,GAFE;AAGf,wBAAgB,GAHD;AAIf,uBAAe,SAJA;AAKf,wBAAgB,SALD;AAMf,4BAAoB,SANL;AAOf,uBAAe,SAPA;AAQf;AACA;AACA,0BAAkB,SAVH;AAWf,4CAAoC;AAXrB,OAPZ;AAoBLE,MAAAA,gBAAgB,EAAE;AAChBF,QAAAA,KAAK,EAAE,oBADS;AAEhB,qBAAa;AAFG;AApBb,KAAP;AAyBD;AAED;AACF;AACA;;;AACEG,EAAAA,YAAY,CAACC,SAAgC,GAAG,EAApC,EAAqD;AAAA;;AAC/D,UAAMjE,YAAmC,GACvC,CAACiE,SAAD,aAACA,SAAD,gDAACA,SAAS,CAAEC,UAAZ,0DAAC,sBAAuBlE,YAAxB,KAAyE,EAD3E;AAEA,WAAO,CAAC,KAAKmE,eAAL,CAAqBnE,YAArB,EAAmC,CAAAiE,SAAS,SAAT,IAAAA,SAAS,WAAT,sCAAAA,SAAS,CAAEC,UAAX,kFAAuBE,MAAvB,KAAiClE,qBAApE,CAAD,EAA0E,KAAKxB,MAAL,CAAY2F,IAAtF,CAAP;AACD;;AAEOF,EAAAA,eAAe,CAACnE,YAAmC,GAAG,EAAvC,EAA2CC,QAAQ,GAAGC,qBAAtD,EAA0D;AAC/E,UAAMoE,UAAU,GAAG,KAAKvE,aAAL,CAAmB,OAAnB,EAA4BC,YAA5B,EAA0CC,QAA1C,CAAnB;AACA,WAAO,KAAK3B,QAAL,CAAciG,UAAd,CAAyB,YAAzB,EAAuCD,UAAvC,CAAP;AACD;;AAEoB,QAAfE,eAAe,GAAG;AACtB,WAAO;AACLC,MAAAA,IAAI,EAAE7G;AADD,KAAP;AAGD;;AAjQH","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 } from '@teambit/builder';\nimport { merge } 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 { 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';\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\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 AspectEnvType = '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 private 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\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 * returns a component tester.\n */\n getTester(jestConfigPath: string, jestModulePath?: string): Tester {\n const config = jestConfigPath || require.resolve('./jest/jest.config');\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n private getTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {\n const tsconfig = mode === 'dev' ? defaultTsConfig : 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 private getTsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.getTsCompiler('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).substr(2, 9)}.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 // const fileMapPath = this.writeFileMap(context.components);\n const baseConfig = basePreviewConfigFactory(true);\n const baseProdConfig = basePreviewProdConfigFactory();\n // const componentProdConfig = componentPreviewProdConfigFactory(fileMapPath);\n const componentProdConfig = componentPreviewProdConfigFactory();\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);\n return merged;\n };\n\n return this.webpack.createPreviewBundler(context, [defaultTransformer, ...transformers]);\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 /**\n * define the package json properties to add to each component.\n */\n getPackageJsonProps() {\n return this.tsAspect.getPackageJsonProps();\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 // '@types/react-router-dom': '^5.0.0', // TODO - should not be here (!)\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 private getCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n async __getDescriptor() {\n return {\n type: AspectEnvType,\n };\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { Configuration } from 'webpack';
2
2
  import '@teambit/react.babel.bit-react-transformer';
3
- export default function (workDir: string, envId: string, componentsDirs: string[]): Configuration;
3
+ export default function (workDir: string, envId: string): Configuration;
@@ -41,11 +41,12 @@ function _reactRefreshWebpackPlugin() {
41
41
 
42
42
  // Make sure the bit-react-transformer is a dependency
43
43
  // TODO: remove it once we can set policy from component to component then set it via the component.json
44
- // This is the production and development configuration.
44
+ const matchNothingRegex = 'a^'; // This is the production and development configuration.
45
45
  // It is focused on developer experience, fast rebuilds, and a minimal bundle.
46
46
  // eslint-disable-next-line complexity
47
47
  // export default function (workDir: string, envId: string): Configuration {
48
- function _default(workDir, envId, componentsDirs) {
48
+
49
+ function _default(workDir, envId) {
49
50
  return {
50
51
  module: {
51
52
  rules: [{
@@ -68,7 +69,7 @@ function _default(workDir, envId, componentsDirs) {
68
69
  descriptionData: {
69
70
  componentId: _componentId().ComponentID.isValidObject
70
71
  },
71
- use: [{
72
+ use: [require.resolve('@pmmmwh/react-refresh-webpack-plugin/loader'), {
72
73
  loader: require.resolve('babel-loader'),
73
74
  options: {
74
75
  babelrc: false,
@@ -89,7 +90,7 @@ function _default(workDir, envId, componentsDirs) {
89
90
  descriptionData: {
90
91
  componentId: value => !!value
91
92
  },
92
- use: [{
93
+ use: [require.resolve('@pmmmwh/react-refresh-webpack-plugin/loader'), {
93
94
  loader: require.resolve('babel-loader'),
94
95
  options: {
95
96
  babelrc: false,
@@ -112,15 +113,10 @@ function _default(workDir, envId, componentsDirs) {
112
113
  entry: require.resolve('./react-hot-dev-client'),
113
114
  module: require.resolve('./refresh')
114
115
  },
115
- // // having no value for include, exclude === revert to the defaults!
116
- // // original/defaults values:
117
- // include: /\.([cm]js|[jt]sx?|flow)$/i,
118
- // exclude: /node_modules/,
119
- include: componentsDirs,
120
- exclude: [// prevent recursion:
121
- /react-refresh-webpack-plugin/i, // file type filtering was done by `include`, so need to negative-filter them out here
122
- // A lookbehind assertion (`?<!`) has to be fixed width
123
- /(?<!\.mdx)(?<!\.js)$/i]
116
+ // we use '@pmmmwh/react-refresh-webpack-plugin/loader' directly where relevant.
117
+ // FYI, original defaults of the plugin are:
118
+ // include: /\.([cm]js|[jt]sx?|flow)$/i, exclude: /node_modules/,
119
+ include: matchNothingRegex
124
120
  })]
125
121
  };
126
122
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack.config.component.dev.ts"],"names":["workDir","envId","componentsDirs","module","rules","test","enforce","include","path","join","descriptionData","componentId","value","use","require","resolve","ComponentID","isValidObject","loader","options","babelrc","configFile","plugins","compact","minified","presets","ReactRefreshWebpackPlugin","overlay","sockPath","entry","exclude"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAHA;AACA;AAIA;AACA;AACA;AACA;AACe,kBAAUA,OAAV,EAA2BC,KAA3B,EAA0CC,cAA1C,EAAmF;AAChG,SAAO;AACLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,KAAK,EAAE,CACL;AACEC,QAAAA,IAAI,EAAE,OADR;AAEEC,QAAAA,OAAO,EAAE,KAFX;AAGE;AACA;AACAC,QAAAA,OAAO,EAAEC,gBAAKC,IAAL,CAAUT,OAAV,EAAmB,cAAnB,CALX;AAME;AACAU,QAAAA,eAAe,EAAE;AAAEC,UAAAA,WAAW,EAAGC,KAAD,IAAW,CAAC,CAACA;AAA5B,SAPnB;AAQEC,QAAAA,GAAG,EAAE,CAACC,OAAO,CAACC,OAAR,CAAgB,mBAAhB,CAAD;AARP,OADK,EAWL;AACEV,QAAAA,IAAI,EAAE,OADR;AAEE;AACA;AACAE,QAAAA,OAAO,EAAEC,gBAAKC,IAAL,CAAUT,OAAV,EAAmB,cAAnB,CAJX;AAKE;AACAU,QAAAA,eAAe,EAAE;AAAEC,UAAAA,WAAW,EAAEK,2BAAYC;AAA3B,SANnB;AAOEJ,QAAAA,GAAG,EAAE,CACH;AACEK,UAAAA,MAAM,EAAEJ,OAAO,CAACC,OAAR,CAAgB,cAAhB,CADV;AAEEI,UAAAA,OAAO,EAAE;AACPC,YAAAA,OAAO,EAAE,KADF;AAEPC,YAAAA,UAAU,EAAE,KAFL;AAGPC,YAAAA,OAAO,EAAE,CACPR,OAAO,CAACC,OAAR,CAAgB,qBAAhB,CADO,EAEP;AACA,aAACD,OAAO,CAACC,OAAR,CAAgB,4CAAhB,CAAD,CAHO,CAHF;AAQP;AACAQ,YAAAA,OAAO,EAAE,KATF;AAUPC,YAAAA,QAAQ,EAAE;AAVH;AAFX,SADG;AAPP,OAXK,EAoCL;AACA;AACEnB,QAAAA,IAAI,EAAE,SADR;AAEE;AACAE,QAAAA,OAAO,EAAEC,gBAAKC,IAAL,CAAUT,OAAV,EAAmB,cAAnB,CAHX;AAIE;AACAU,QAAAA,eAAe,EAAE;AAAEC,UAAAA,WAAW,EAAGC,KAAD,IAAW,CAAC,CAACA;AAA5B,SALnB;AAMEC,QAAAA,GAAG,EAAE,CACH;AACEK,UAAAA,MAAM,EAAEJ,OAAO,CAACC,OAAR,CAAgB,cAAhB,CADV;AAEEI,UAAAA,OAAO,EAAE;AACPC,YAAAA,OAAO,EAAE,KADF;AAEPC,YAAAA,UAAU,EAAE,KAFL;AAGPI,YAAAA,OAAO,EAAE,CAACX,OAAO,CAACC,OAAR,CAAgB,qBAAhB,CAAD,EAAyCD,OAAO,CAACC,OAAR,CAAgB,mBAAhB,CAAzC,CAHF;AAIPO,YAAAA,OAAO,EAAE,CAACR,OAAO,CAACC,OAAR,CAAgB,qBAAhB,CAAD;AAJF;AAFX,SADG,EAUH;AACEG,UAAAA,MAAM,EAAEJ,OAAO,CAACC,OAAR,CAAgB,iCAAhB;AADV,SAVG;AANP,OArCK;AADD,KADH;AA8DLO,IAAAA,OAAO,EAAE,CACP;AACA;AACA,SAAII,oCAAJ,EAA8B;AAC5BC,MAAAA,OAAO,EAAE;AACPC,QAAAA,QAAQ,EAAG,QAAO3B,KAAM,EADjB;AAEP;AACA;AACA4B,QAAAA,KAAK,EAAEf,OAAO,CAACC,OAAR,CAAgB,wBAAhB,CAJA;AAKPZ,QAAAA,MAAM,EAAEW,OAAO,CAACC,OAAR,CAAgB,WAAhB;AALD,OADmB;AAS5B;AACA;AACA;AACA;AAEAR,MAAAA,OAAO,EAAEL,cAdmB;AAe5B4B,MAAAA,OAAO,EAAE,CACP;AACA,qCAFO,EAGP;AACA;AACA,6BALO;AAfmB,KAA9B,CAHO;AA9DJ,GAAP;AA0FD","sourcesContent":["import path from 'path';\nimport { Configuration } from 'webpack';\nimport { ComponentID } from '@teambit/component-id';\n// Make sure the bit-react-transformer is a dependency\n// TODO: remove it once we can set policy from component to component then set it via the component.json\nimport '@teambit/react.babel.bit-react-transformer';\nimport ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-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\n// export default function (workDir: string, envId: string): Configuration {\nexport default function (workDir: string, envId: string, componentsDirs: string[]): Configuration {\n return {\n module: {\n rules: [\n {\n test: /\\.js$/,\n enforce: 'pre',\n // limit loader to files in the current project,\n // to skip any files linked from other projects (like Bit itself)\n include: path.join(workDir, 'node_modules'),\n // only apply to packages with componentId in their package.json (ie. bit components)\n descriptionData: { componentId: (value) => !!value },\n use: [require.resolve('source-map-loader')],\n },\n {\n test: /\\.js$/,\n // limit loader to files in the current project,\n // to skip any files linked from other projects (like Bit itself)\n include: path.join(workDir, 'node_modules'),\n // only apply to packages with componentId in their package.json (ie. bit components)\n descriptionData: { componentId: ComponentID.isValidObject },\n use: [\n {\n loader: require.resolve('babel-loader'),\n options: {\n babelrc: false,\n configFile: false,\n plugins: [\n require.resolve('react-refresh/babel'),\n // for component highlighting in preview.\n [require.resolve('@teambit/react.babel.bit-react-transformer')],\n ],\n // turn off all optimizations (only slow down for node_modules)\n compact: false,\n minified: false,\n },\n },\n ],\n },\n // MDX support (move to the mdx aspect and extend from there)\n {\n test: /\\.mdx?$/,\n // to skip any files linked from other projects (like Bit itself)\n include: path.join(workDir, 'node_modules'),\n // only apply to packages with componentId in their package.json (ie. bit components)\n descriptionData: { componentId: (value) => !!value },\n use: [\n {\n loader: require.resolve('babel-loader'),\n options: {\n babelrc: false,\n configFile: false,\n presets: [require.resolve('@babel/preset-react'), require.resolve('@babel/preset-env')],\n plugins: [require.resolve('react-refresh/babel')],\n },\n },\n {\n loader: require.resolve('@teambit/mdx.modules.mdx-loader'),\n },\n ],\n },\n ],\n },\n plugins: [\n // No need here as we have `hot: true` in the dev server\n // new webpack.HotModuleReplacementPlugin({}),\n new ReactRefreshWebpackPlugin({\n overlay: {\n sockPath: `_hmr/${envId}`,\n // TODO: check why webpackHotDevClient and react-error-overlay are not responding for runtime\n // errors\n entry: require.resolve('./react-hot-dev-client'),\n module: require.resolve('./refresh'),\n },\n\n // // having no value for include, exclude === revert to the defaults!\n // // original/defaults values:\n // include: /\\.([cm]js|[jt]sx?|flow)$/i,\n // exclude: /node_modules/,\n\n include: componentsDirs,\n exclude: [\n // prevent recursion:\n /react-refresh-webpack-plugin/i,\n // file type filtering was done by `include`, so need to negative-filter them out here\n // A lookbehind assertion (`?<!`) has to be fixed width\n /(?<!\\.mdx)(?<!\\.js)$/i,\n ],\n }),\n ],\n };\n}\n"]}
1
+ {"version":3,"sources":["webpack.config.component.dev.ts"],"names":["matchNothingRegex","workDir","envId","module","rules","test","enforce","include","path","join","descriptionData","componentId","value","use","require","resolve","ComponentID","isValidObject","loader","options","babelrc","configFile","plugins","compact","minified","presets","ReactRefreshWebpackPlugin","overlay","sockPath","entry"],"mappings":"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","sourcesContent":["import path from 'path';\nimport { Configuration } from 'webpack';\nimport { ComponentID } from '@teambit/component-id';\n// Make sure the bit-react-transformer is a dependency\n// TODO: remove it once we can set policy from component to component then set it via the component.json\nimport '@teambit/react.babel.bit-react-transformer';\nimport ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';\n\nconst matchNothingRegex = 'a^';\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\n// export default function (workDir: string, envId: string): Configuration {\nexport default function (workDir: string, envId: string): Configuration {\n return {\n module: {\n rules: [\n {\n test: /\\.js$/,\n enforce: 'pre',\n // limit loader to files in the current project,\n // to skip any files linked from other projects (like Bit itself)\n include: path.join(workDir, 'node_modules'),\n // only apply to packages with componentId in their package.json (ie. bit components)\n descriptionData: { componentId: (value) => !!value },\n use: [require.resolve('source-map-loader')],\n },\n {\n test: /\\.js$/,\n // limit loader to files in the current project,\n // to skip any files linked from other projects (like Bit itself)\n include: path.join(workDir, 'node_modules'),\n // only apply to packages with componentId in their package.json (ie. bit components)\n descriptionData: { componentId: ComponentID.isValidObject },\n use: [\n require.resolve('@pmmmwh/react-refresh-webpack-plugin/loader'),\n {\n loader: require.resolve('babel-loader'),\n options: {\n babelrc: false,\n configFile: false,\n plugins: [\n require.resolve('react-refresh/babel'),\n // for component highlighting in preview.\n [require.resolve('@teambit/react.babel.bit-react-transformer')],\n ],\n // turn off all optimizations (only slow down for node_modules)\n compact: false,\n minified: false,\n },\n },\n ],\n },\n // MDX support (move to the mdx aspect and extend from there)\n {\n test: /\\.mdx?$/,\n // to skip any files linked from other projects (like Bit itself)\n include: path.join(workDir, 'node_modules'),\n // only apply to packages with componentId in their package.json (ie. bit components)\n descriptionData: { componentId: (value) => !!value },\n use: [\n require.resolve('@pmmmwh/react-refresh-webpack-plugin/loader'),\n {\n loader: require.resolve('babel-loader'),\n options: {\n babelrc: false,\n configFile: false,\n presets: [require.resolve('@babel/preset-react'), require.resolve('@babel/preset-env')],\n plugins: [require.resolve('react-refresh/babel')],\n },\n },\n {\n loader: require.resolve('@teambit/mdx.modules.mdx-loader'),\n },\n ],\n },\n ],\n },\n plugins: [\n // No need here as we have `hot: true` in the dev server\n // new webpack.HotModuleReplacementPlugin({}),\n new ReactRefreshWebpackPlugin({\n overlay: {\n sockPath: `_hmr/${envId}`,\n // TODO: check why webpackHotDevClient and react-error-overlay are not responding for runtime\n // errors\n entry: require.resolve('./react-hot-dev-client'),\n module: require.resolve('./refresh'),\n },\n\n // we use '@pmmmwh/react-refresh-webpack-plugin/loader' directly where relevant.\n // FYI, original defaults of the plugin are:\n // include: /\\.([cm]js|[jt]sx?|flow)$/i, exclude: /node_modules/,\n include: matchNothingRegex,\n }),\n ],\n };\n}\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/react",
3
- "version": "0.0.563",
3
+ "version": "0.0.567",
4
4
  "homepage": "https://bit.dev/teambit/react/react",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.react",
8
8
  "name": "react",
9
- "version": "0.0.563"
9
+ "version": "0.0.567"
10
10
  },
11
11
  "dependencies": {
12
12
  "react-error-boundary": "^3.0.0",
@@ -15,7 +15,6 @@
15
15
  "fs-extra": "10.0.0",
16
16
  "lodash": "4.17.21",
17
17
  "typescript": "4.4.2",
18
- "webpack": "5.51.1",
19
18
  "graphql-tag": "2.12.1",
20
19
  "ramda": "0.27.1",
21
20
  "lodash.flatten": "4.4.0",
@@ -38,6 +37,7 @@
38
37
  "css-minimizer-webpack-plugin": "3.0.2",
39
38
  "terser-webpack-plugin": "5.2.0",
40
39
  "webpack-manifest-plugin": "4.0.2",
40
+ "webpack": "5.51.1",
41
41
  "workbox-webpack-plugin": "6.2.4",
42
42
  "mini-css-extract-plugin": "2.2.2",
43
43
  "react-dev-utils": "11.0.4",
@@ -79,65 +79,65 @@
79
79
  "@teambit/react.instructions.react.adding-compositions": "0.0.6",
80
80
  "@teambit/react.instructions.react.adding-tests": "0.0.6",
81
81
  "@teambit/design.ui.pages.standalone-not-found-page": "0.0.354",
82
- "@teambit/preview": "0.0.563",
83
- "@teambit/react.ui.error-fallback": "0.0.92",
84
- "@teambit/react.ui.loader-fallback": "0.0.70",
85
- "@teambit/compositions.ui.hooks.use-composition": "0.0.145",
82
+ "@teambit/preview": "0.0.567",
83
+ "@teambit/react.ui.error-fallback": "0.0.94",
84
+ "@teambit/react.ui.loader-fallback": "0.0.72",
85
+ "@teambit/compositions.ui.hooks.use-composition": "0.0.147",
86
86
  "@teambit/design.ui.input.option-button": "0.0.26",
87
87
  "@teambit/design.ui.tooltip": "0.0.352",
88
- "@teambit/application": "0.0.205",
89
- "@teambit/bundler": "0.0.563",
90
- "@teambit/builder": "0.0.563",
91
- "@teambit/isolator": "0.0.563",
92
- "@teambit/toolbox.network.get-port": "0.0.95",
93
- "@teambit/compiler": "0.0.563",
94
- "@teambit/component.modules.component-url": "0.0.102",
95
- "@teambit/component": "0.0.563",
96
- "@teambit/envs": "0.0.563",
97
- "@teambit/eslint": "0.0.563",
98
- "@teambit/formatter": "0.0.114",
99
- "@teambit/jest": "0.0.563",
100
- "@teambit/linter": "0.0.563",
101
- "@teambit/pkg": "0.0.563",
102
- "@teambit/prettier": "0.0.114",
103
- "@teambit/react.ui.highlighter.component-metadata.bit-component-meta": "0.0.2",
104
- "@teambit/schema": "0.0.563",
105
- "@teambit/tester": "0.0.563",
106
- "@teambit/typescript": "0.0.563",
107
- "@teambit/webpack": "0.0.563",
108
- "@teambit/workspace": "0.0.563",
109
- "@teambit/cli": "0.0.391",
110
- "@teambit/dependency-resolver": "0.0.563",
111
- "@teambit/generator": "0.0.563",
112
- "@teambit/graphql": "0.0.563",
113
- "@teambit/react.ui.highlighter-provider": "0.0.156",
114
- "@teambit/compositions": "0.0.563",
115
- "@teambit/ui": "0.0.563",
116
- "@teambit/react.eslint-config-bit-react": "0.0.469",
117
- "@teambit/mdx.modules.mdx-loader": "0.0.469",
118
- "@teambit/react.babel.bit-react-transformer": "0.0.476",
119
- "@teambit/webpack.modules.generate-style-loaders": "0.0.85",
120
- "@teambit/webpack.modules.style-regexps": "0.0.114",
121
- "@teambit/component-id": "0.0.381",
122
- "@teambit/config": "0.0.403"
88
+ "@teambit/application": "0.0.209",
89
+ "@teambit/bundler": "0.0.567",
90
+ "@teambit/builder": "0.0.567",
91
+ "@teambit/isolator": "0.0.567",
92
+ "@teambit/toolbox.network.get-port": "0.0.97",
93
+ "@teambit/compiler": "0.0.567",
94
+ "@teambit/component.modules.component-url": "0.0.104",
95
+ "@teambit/component": "0.0.567",
96
+ "@teambit/envs": "0.0.567",
97
+ "@teambit/eslint": "0.0.567",
98
+ "@teambit/formatter": "0.0.118",
99
+ "@teambit/jest": "0.0.567",
100
+ "@teambit/linter": "0.0.567",
101
+ "@teambit/pkg": "0.0.567",
102
+ "@teambit/prettier": "0.0.118",
103
+ "@teambit/react.ui.highlighter.component-metadata.bit-component-meta": "0.0.4",
104
+ "@teambit/schema": "0.0.567",
105
+ "@teambit/tester": "0.0.567",
106
+ "@teambit/typescript": "0.0.567",
107
+ "@teambit/webpack": "0.0.567",
108
+ "@teambit/workspace": "0.0.567",
109
+ "@teambit/cli": "0.0.393",
110
+ "@teambit/dependency-resolver": "0.0.567",
111
+ "@teambit/generator": "0.0.567",
112
+ "@teambit/graphql": "0.0.567",
113
+ "@teambit/react.ui.highlighter-provider": "0.0.158",
114
+ "@teambit/compositions": "0.0.567",
115
+ "@teambit/ui": "0.0.567",
116
+ "@teambit/react.eslint-config-bit-react": "0.0.471",
117
+ "@teambit/mdx.modules.mdx-loader": "0.0.471",
118
+ "@teambit/react.babel.bit-react-transformer": "0.0.478",
119
+ "@teambit/webpack.modules.generate-style-loaders": "0.0.87",
120
+ "@teambit/webpack.modules.style-regexps": "0.0.116",
121
+ "@teambit/component-id": "0.0.383",
122
+ "@teambit/config": "0.0.405"
123
123
  },
124
124
  "devDependencies": {
125
125
  "@types/react": "^17.0.8",
126
126
  "@types/react-dom": "^17.0.5",
127
127
  "@types/fs-extra": "9.0.7",
128
128
  "@types/lodash": "4.14.165",
129
- "@types/webpack": "5.28.0",
130
129
  "@types/lodash.flatten": "4.4.6",
130
+ "@types/webpack": "5.28.0",
131
131
  "@types/mini-css-extract-plugin": "2.2.0",
132
132
  "@types/postcss-normalize": "9.0.1",
133
133
  "@types/node": "12.20.4",
134
134
  "@types/mocha": "5.2.7",
135
135
  "@types/testing-library__jest-dom": "5.9.5",
136
136
  "@types/jest": "^26.0.0",
137
- "@teambit/react.aspect-docs.react": "0.0.110"
137
+ "@teambit/react.aspect-docs.react": "0.0.113"
138
138
  },
139
139
  "peerDependencies": {
140
- "@teambit/legacy": "1.0.177",
140
+ "@teambit/legacy": "1.0.179",
141
141
  "react-dom": "^16.8.0 || ^17.0.0",
142
142
  "react": "^16.8.0 || ^17.0.0"
143
143
  },
@@ -199,7 +199,7 @@
199
199
  "@types/jest": "^26.0.0"
200
200
  },
201
201
  "peerDependencies": {
202
- "@teambit/legacy": "1.0.177",
202
+ "@teambit/legacy": "1.0.179",
203
203
  "react-dom": "^16.8.0 || ^17.0.0",
204
204
  "react": "^16.8.0 || ^17.0.0"
205
205
  }