@teambit/react 0.0.520 → 0.0.524

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export type { ReactMain, UseWebpackModifiers, UseTypescriptModifiers } from './react.main.runtime';
2
2
  export type { ReactPreview } from './react.preview.runtime';
3
3
  export type { ReactEnv } from './react.env';
4
+ export type { ReactAppOptions } from './react-app-options';
4
5
  export { ReactAspect, ReactAspect as default } from './react.aspect';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAOA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export type { ReactMain, UseWebpackModifiers, UseTypescriptModifiers } from './react.main.runtime';\nexport type { ReactPreview } from './react.preview.runtime';\nexport type { ReactEnv } from './react.env';\n// Re-export it to indicate for people that extends the react env that we are using it\n// Commented - make errors in safari - SyntaxError: Invalid regular expression: invalid group specifier name\n// export * as styleRegexps from '@teambit/modules.style-regexps';\n\nexport { ReactAspect, ReactAspect as default } from './react.aspect';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAQA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export type { ReactMain, UseWebpackModifiers, UseTypescriptModifiers } from './react.main.runtime';\nexport type { ReactPreview } from './react.preview.runtime';\nexport type { ReactEnv } from './react.env';\nexport type { ReactAppOptions } from './react-app-options';\n// Re-export it to indicate for people that extends the react env that we are using it\n// Commented - make errors in safari - SyntaxError: Invalid regular expression: invalid group specifier name\n// export * as styleRegexps from '@teambit/modules.style-regexps';\n\nexport { ReactAspect, ReactAspect as default } from './react.aspect';\n"]}
@@ -18,7 +18,8 @@ module.exports = {
18
18
  transform: {
19
19
  '^.+\\.(js|jsx|ts|tsx)$': require.resolve('./transformer'),
20
20
  '^.+\\.css$': require.resolve('./css-transform.js'),
21
- '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js')
21
+ '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js') // '^(?!.*\\.(svg|png|jpg|jpeg|gif|webp|woff|ttf|woff2)$)': require.resolve('./file-transform.js'),
22
+
22
23
  },
23
24
  transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$', '^.+\\.module\\.(css|sass|scss)$'],
24
25
  modulePaths: [],
@@ -1 +1 @@
1
- {"version":3,"sources":["jest.config.js"],"names":["module","exports","setupFiles","require","resolve","setupFilesAfterEnv","testEnvironment","transform","transformIgnorePatterns","modulePaths","moduleNameMapper","moduleFileExtensions"],"mappings":";;AAAAA,MAAM,CAACC,OAAP,GAAiB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,EAAAA,UAAU,EAAE,CAACC,OAAO,CAACC,OAAR,CAAgB,0BAAhB,CAAD,CARG;AASfC,EAAAA,kBAAkB,EAAE,CAACF,OAAO,CAACC,OAAR,CAAgB,iBAAhB,CAAD,CATL;AAUf;AACA;AACA;AACA;AACAE,EAAAA,eAAe,EAAEH,OAAO,CAACC,OAAR,CAAgB,wBAAhB,CAdF;AAefG,EAAAA,SAAS,EAAE;AACT,8BAA0BJ,OAAO,CAACC,OAAR,CAAgB,eAAhB,CADjB;AAET,kBAAcD,OAAO,CAACC,OAAR,CAAgB,oBAAhB,CAFL;AAGT,2CAAuCD,OAAO,CAACC,OAAR,CAAgB,qBAAhB;AAH9B,GAfI;AAoBfI,EAAAA,uBAAuB,EAAE,CAAC,iDAAD,EAAoD,iCAApD,CApBV;AAqBfC,EAAAA,WAAW,EAAE,EArBE;AAsBfC,EAAAA,gBAAgB,EAAE;AAChB,sBAAkBP,OAAO,CAACC,OAAR,CAAgB,kBAAhB,CADF;AAEhB,uCAAmCD,OAAO,CAACC,OAAR,CAAgB,oBAAhB;AAFnB,GAtBH;AA0BfO,EAAAA,oBAAoB,EAAE,CAAC,QAAD,EAAW,IAAX,EAAiB,QAAjB,EAA2B,IAA3B,EAAiC,SAAjC,EAA4C,KAA5C,EAAmD,MAAnD,EAA2D,SAA3D,EAAsE,KAAtE,EAA6E,MAA7E,CA1BP,CA2Bf;;AA3Be,CAAjB","sourcesContent":["module.exports = {\n // \"roots\": [\n // \"<rootDir>/src\"\n // ],\n // \"collectCoverageFrom\": [\n // \"src/**/*.{js,jsx,ts,tsx}\",\n // \"!src/**/*.d.ts\"\n // ],\n setupFiles: [require.resolve('react-app-polyfill/jsdom')],\n setupFilesAfterEnv: [require.resolve('./setupTests.js')],\n // \"testMatch\": [\n // \"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}\",\n // \"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}\"\n // ],\n testEnvironment: require.resolve('jest-environment-jsdom'),\n transform: {\n '^.+\\\\.(js|jsx|ts|tsx)$': require.resolve('./transformer'),\n '^.+\\\\.css$': require.resolve('./css-transform.js'),\n '^(?!.*\\\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js'),\n },\n transformIgnorePatterns: ['[/\\\\\\\\]node_modules[/\\\\\\\\].+\\\\.(js|jsx|ts|tsx)$', '^.+\\\\.module\\\\.(css|sass|scss)$'],\n modulePaths: [],\n moduleNameMapper: {\n '^react-native$': require.resolve('react-native-web'),\n '^.+\\\\.module\\\\.(css|sass|scss)$': require.resolve('identity-obj-proxy'),\n },\n moduleFileExtensions: ['web.js', 'js', 'web.ts', 'ts', 'web.tsx', 'tsx', 'json', 'web.jsx', 'jsx', 'node'],\n // watchPlugins: [require.resolve('jest-watch-typeahead/filename'), require.resolve('jest-watch-typeahead/testname')],\n};\n"]}
1
+ {"version":3,"sources":["jest.config.js"],"names":["module","exports","setupFiles","require","resolve","setupFilesAfterEnv","testEnvironment","transform","transformIgnorePatterns","modulePaths","moduleNameMapper","moduleFileExtensions"],"mappings":";;AAAAA,MAAM,CAACC,OAAP,GAAiB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,EAAAA,UAAU,EAAE,CAACC,OAAO,CAACC,OAAR,CAAgB,0BAAhB,CAAD,CARG;AASfC,EAAAA,kBAAkB,EAAE,CAACF,OAAO,CAACC,OAAR,CAAgB,iBAAhB,CAAD,CATL;AAUf;AACA;AACA;AACA;AACAE,EAAAA,eAAe,EAAEH,OAAO,CAACC,OAAR,CAAgB,wBAAhB,CAdF;AAefG,EAAAA,SAAS,EAAE;AACT,8BAA0BJ,OAAO,CAACC,OAAR,CAAgB,eAAhB,CADjB;AAET,kBAAcD,OAAO,CAACC,OAAR,CAAgB,oBAAhB,CAFL;AAGT,2CAAuCD,OAAO,CAACC,OAAR,CAAgB,qBAAhB,CAH9B,CAIT;;AAJS,GAfI;AAqBfI,EAAAA,uBAAuB,EAAE,CAAC,iDAAD,EAAoD,iCAApD,CArBV;AAsBfC,EAAAA,WAAW,EAAE,EAtBE;AAuBfC,EAAAA,gBAAgB,EAAE;AAChB,sBAAkBP,OAAO,CAACC,OAAR,CAAgB,kBAAhB,CADF;AAEhB,uCAAmCD,OAAO,CAACC,OAAR,CAAgB,oBAAhB;AAFnB,GAvBH;AA2BfO,EAAAA,oBAAoB,EAAE,CAAC,QAAD,EAAW,IAAX,EAAiB,QAAjB,EAA2B,IAA3B,EAAiC,SAAjC,EAA4C,KAA5C,EAAmD,MAAnD,EAA2D,SAA3D,EAAsE,KAAtE,EAA6E,MAA7E,CA3BP,CA4Bf;;AA5Be,CAAjB","sourcesContent":["module.exports = {\n // \"roots\": [\n // \"<rootDir>/src\"\n // ],\n // \"collectCoverageFrom\": [\n // \"src/**/*.{js,jsx,ts,tsx}\",\n // \"!src/**/*.d.ts\"\n // ],\n setupFiles: [require.resolve('react-app-polyfill/jsdom')],\n setupFilesAfterEnv: [require.resolve('./setupTests.js')],\n // \"testMatch\": [\n // \"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}\",\n // \"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}\"\n // ],\n testEnvironment: require.resolve('jest-environment-jsdom'),\n transform: {\n '^.+\\\\.(js|jsx|ts|tsx)$': require.resolve('./transformer'),\n '^.+\\\\.css$': require.resolve('./css-transform.js'),\n '^(?!.*\\\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js'),\n // '^(?!.*\\\\.(svg|png|jpg|jpeg|gif|webp|woff|ttf|woff2)$)': require.resolve('./file-transform.js'),\n },\n transformIgnorePatterns: ['[/\\\\\\\\]node_modules[/\\\\\\\\].+\\\\.(js|jsx|ts|tsx)$', '^.+\\\\.module\\\\.(css|sass|scss)$'],\n modulePaths: [],\n moduleNameMapper: {\n '^react-native$': require.resolve('react-native-web'),\n '^.+\\\\.module\\\\.(css|sass|scss)$': require.resolve('identity-obj-proxy'),\n },\n moduleFileExtensions: ['web.js', 'js', 'web.ts', 'ts', 'web.tsx', 'tsx', 'json', 'web.jsx', 'jsx', 'node'],\n // watchPlugins: [require.resolve('jest-watch-typeahead/filename'), require.resolve('jest-watch-typeahead/testname')],\n};\n"]}
@@ -0,0 +1,10 @@
1
+ import { ApplicationType } from '@teambit/application';
2
+ import { ReactEnv } from './react.env';
3
+ import { ReactAppOptions } from './react-app-options';
4
+ import { ReactApp } from './react.application';
5
+ export declare class ReactAppType implements ApplicationType<ReactAppOptions> {
6
+ readonly name: string;
7
+ private reactEnv;
8
+ constructor(name: string, reactEnv: ReactEnv);
9
+ createApp(options: ReactAppOptions): ReactApp;
10
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ReactAppType = void 0;
7
+
8
+ function _react() {
9
+ const data = require("./react.application");
10
+
11
+ _react = function () {
12
+ return data;
13
+ };
14
+
15
+ return data;
16
+ }
17
+
18
+ class ReactAppType {
19
+ constructor(name, reactEnv) {
20
+ this.name = name;
21
+ this.reactEnv = reactEnv;
22
+ }
23
+
24
+ createApp(options) {
25
+ return new (_react().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy);
26
+ }
27
+
28
+ }
29
+
30
+ exports.ReactAppType = ReactAppType;
31
+
32
+ //# sourceMappingURL=react.app-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["react.app-type.ts"],"names":["ReactAppType","constructor","name","reactEnv","createApp","options","ReactApp","entry","portRange","deploy"],"mappings":";;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,YAAN,CAA+D;AACpEC,EAAAA,WAAW,CAAUC,IAAV,EAAgCC,QAAhC,EAAoD;AAAA,SAA1CD,IAA0C,GAA1CA,IAA0C;AAAA,SAApBC,QAAoB,GAApBA,QAAoB;AAAE;;AAEjEC,EAAAA,SAAS,CAACC,OAAD,EAA2B;AAClC,WAAO,KAAIC,iBAAJ,EAAaD,OAAO,CAACH,IAArB,EAA2BG,OAAO,CAACE,KAAnC,EAA0CF,OAAO,CAACG,SAAR,IAAqB,CAAC,IAAD,EAAO,IAAP,CAA/D,EAA6E,KAAKL,QAAlF,EAA4FE,OAAO,CAACI,MAApG,CAAP;AACD;;AALmE","sourcesContent":["import { ApplicationType } from '@teambit/application';\nimport { ReactEnv } from './react.env';\nimport { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\n\nexport class ReactAppType implements ApplicationType<ReactAppOptions> {\n constructor(readonly name: string, private reactEnv: ReactEnv) {}\n\n createApp(options: ReactAppOptions) {\n return new ReactApp(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy);\n }\n}\n"]}
@@ -7,9 +7,8 @@ export declare class ReactApp implements Application {
7
7
  readonly entry: string[];
8
8
  readonly portRange: number[];
9
9
  private reactEnv;
10
- private rootPath;
11
10
  readonly deploy?: ((context: DeployContext) => Promise<void>) | undefined;
12
- constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv, rootPath: string, deploy?: ((context: DeployContext) => Promise<void>) | undefined);
11
+ constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv, deploy?: ((context: DeployContext) => Promise<void>) | undefined);
13
12
  applicationType: string;
14
13
  run(context: AppContext): Promise<number>;
15
14
  build(context: BuildContext, aspectId: string, appCapsule: Capsule): Promise<DeployContext>;
@@ -42,12 +42,11 @@ function _toolboxNetwork() {
42
42
  }
43
43
 
44
44
  class ReactApp {
45
- constructor(name, entry, portRange, reactEnv, rootPath, deploy) {
45
+ constructor(name, entry, portRange, reactEnv, deploy) {
46
46
  this.name = name;
47
47
  this.entry = entry;
48
48
  this.portRange = portRange;
49
49
  this.reactEnv = reactEnv;
50
- this.rootPath = rootPath;
51
50
  this.deploy = deploy;
52
51
  (0, _defineProperty2().default)(this, "applicationType", 'react');
53
52
  }
@@ -56,6 +55,14 @@ class ReactApp {
56
55
  const devServerContext = this.getDevServerContext(context);
57
56
  const devServer = this.reactEnv.getDevServer(devServerContext, [configMutator => {
58
57
  // configMutator.addTopLevel('output', { publicPath: `/public/${this.name}` });
58
+ configMutator.addTopLevel('devServer', {
59
+ historyApiFallback: {
60
+ index: '/index.html',
61
+ disableDotRule: true
62
+ }
63
+ });
64
+ if (!configMutator.raw.output) configMutator.raw.output = {};
65
+ configMutator.raw.output.publicPath = '/';
59
66
  return configMutator;
60
67
  }]);
61
68
  const [from, to] = this.portRange;
@@ -1 +1 @@
1
- {"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","rootPath","deploy","run","context","devServerContext","getDevServerContext","devServer","getDevServer","configMutator","from","to","port","Port","getPort","listen","build","aspectId","appCapsule","env","publicDir","outputPath","path","distDir","getCompiler","entries","map","require","resolve","bundlerContext","Object","assign","targets","components","component","bundler","getBundler","addTopLevel","publicPath","deployContext","applicationType","title"],"mappings":"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","sourcesContent":["import { join, basename } from 'path';\nimport { Capsule } from '@teambit/isolator';\nimport { Application, AppContext, DeployContext } from '@teambit/application';\nimport { BuildContext } from '@teambit/builder';\nimport { Bundler, BundlerContext, DevServerContext } from '@teambit/bundler';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { ReactEnv } from './react.env';\n\nexport class ReactApp implements Application {\n constructor(\n readonly name: string,\n readonly entry: string[],\n readonly portRange: number[],\n private reactEnv: ReactEnv,\n private rootPath: string,\n readonly deploy?: (context: DeployContext) => Promise<void>\n ) {}\n\n applicationType = 'react';\n\n async run(context: AppContext): Promise<number> {\n const devServerContext = this.getDevServerContext(context);\n const devServer = this.reactEnv.getDevServer(devServerContext, [\n (configMutator) => {\n // configMutator.addTopLevel('output', { publicPath: `/public/${this.name}` });\n return configMutator;\n },\n ]);\n const [from, to] = this.portRange;\n const port = await Port.getPort(from, to);\n await devServer.listen(port);\n return port;\n }\n\n async build(context: BuildContext, aspectId: string, appCapsule: Capsule): Promise<DeployContext> {\n const reactEnv: ReactEnv = context.env;\n const publicDir = join('applications', this.name, 'build');\n const outputPath = join(appCapsule.path, publicDir);\n const { distDir } = reactEnv.getCompiler();\n const entries = this.entry.map((entry) => require.resolve(`${appCapsule.path}/${distDir}/${basename(entry)}`));\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [\n {\n components: [appCapsule?.component],\n entries,\n outputPath,\n },\n ],\n entry: [],\n rootPath: '/',\n });\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, [\n (configMutator) => {\n configMutator.addTopLevel('output', { path: join(outputPath, 'public'), publicPath: `/` });\n return configMutator;\n },\n ]);\n await bundler.run();\n const deployContext = Object.assign(context, {\n applicationType: this.applicationType,\n aspectId,\n publicDir: join(appCapsule.path, publicDir, 'public'),\n });\n return deployContext;\n }\n\n private getDevServerContext(context: AppContext): DevServerContext {\n return Object.assign(context, {\n entry: this.entry,\n rootPath: '',\n publicPath: `public/${this.name}`,\n title: this.name,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","deploy","run","context","devServerContext","getDevServerContext","devServer","getDevServer","configMutator","addTopLevel","historyApiFallback","index","disableDotRule","raw","output","publicPath","from","to","port","Port","getPort","listen","build","aspectId","appCapsule","env","publicDir","outputPath","path","distDir","getCompiler","entries","map","require","resolve","bundlerContext","Object","assign","targets","components","component","rootPath","bundler","getBundler","deployContext","applicationType","title"],"mappings":"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","sourcesContent":["import { join, basename } from 'path';\nimport { Capsule } from '@teambit/isolator';\nimport { Application, AppContext, DeployContext } from '@teambit/application';\nimport { BuildContext } from '@teambit/builder';\nimport { Bundler, BundlerContext, DevServerContext } from '@teambit/bundler';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { ReactEnv } from './react.env';\n\nexport class ReactApp implements Application {\n constructor(\n readonly name: string,\n readonly entry: string[],\n readonly portRange: number[],\n private reactEnv: ReactEnv,\n readonly deploy?: (context: DeployContext) => Promise<void>\n ) {}\n\n applicationType = 'react';\n\n async run(context: AppContext): Promise<number> {\n const devServerContext = this.getDevServerContext(context);\n const devServer = this.reactEnv.getDevServer(devServerContext, [\n (configMutator) => {\n // configMutator.addTopLevel('output', { publicPath: `/public/${this.name}` });\n configMutator.addTopLevel('devServer', {\n historyApiFallback: {\n index: '/index.html',\n disableDotRule: true,\n },\n });\n\n if (!configMutator.raw.output) configMutator.raw.output = {};\n configMutator.raw.output.publicPath = '/';\n\n return configMutator;\n },\n ]);\n const [from, to] = this.portRange;\n const port = await Port.getPort(from, to);\n await devServer.listen(port);\n return port;\n }\n\n async build(context: BuildContext, aspectId: string, appCapsule: Capsule): Promise<DeployContext> {\n const reactEnv: ReactEnv = context.env;\n const publicDir = join('applications', this.name, 'build');\n const outputPath = join(appCapsule.path, publicDir);\n const { distDir } = reactEnv.getCompiler();\n const entries = this.entry.map((entry) => require.resolve(`${appCapsule.path}/${distDir}/${basename(entry)}`));\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [\n {\n components: [appCapsule?.component],\n entries,\n outputPath,\n },\n ],\n entry: [],\n rootPath: '/',\n });\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, [\n (configMutator) => {\n configMutator.addTopLevel('output', { path: join(outputPath, 'public'), publicPath: `/` });\n return configMutator;\n },\n ]);\n await bundler.run();\n const deployContext = Object.assign(context, {\n applicationType: this.applicationType,\n aspectId,\n publicDir: join(appCapsule.path, publicDir, 'public'),\n });\n return deployContext;\n }\n\n private getDevServerContext(context: AppContext): DevServerContext {\n return Object.assign(context, {\n entry: this.entry,\n rootPath: '',\n publicPath: `public/${this.name}`,\n title: this.name,\n });\n }\n}\n"]}
@@ -60,8 +60,9 @@ export declare class ReactMain {
60
60
  readonly env: ReactEnv;
61
61
  useTypescript(modifiers?: UseTypescriptModifiers, tsModule?: any): EnvTransformer;
62
62
  overrideTsConfig(tsconfig?: Record<string, any>, compilerOptions?: Partial<TsCompilerOptionsWithoutTsConfig>, tsModule?: any): EnvTransformer;
63
+ overrideDocsTemplate(templatePath: string): EnvTransformer;
63
64
  overrideBuildTsConfig(tsconfig?: Record<string, any>, compilerOptions?: Partial<TsCompilerOptionsWithoutTsConfig>, tsModule?: any): EnvTransformer;
64
- registerReactApp(options: ReactAppOptions): void;
65
+ registerReactApp(options: ReactAppOptions): this;
65
66
  useWebpack(modifiers?: UseWebpackModifiers): EnvTransformer;
66
67
  useEslint(modifiers?: UseEslintModifiers): EnvTransformer;
67
68
  usePrettier(modifiers?: UsePrettierModifiers): EnvTransformer;
@@ -214,7 +214,7 @@ function _react2() {
214
214
  }
215
215
 
216
216
  function _react3() {
217
- const data = require("./react.graphql");
217
+ const data = require("./react.app-type");
218
218
 
219
219
  _react3 = function () {
220
220
  return data;
@@ -224,7 +224,7 @@ function _react3() {
224
224
  }
225
225
 
226
226
  function _react4() {
227
- const data = require("./react.application");
227
+ const data = require("./react.graphql");
228
228
 
229
229
  _react4 = function () {
230
230
  return data;
@@ -234,7 +234,7 @@ function _react4() {
234
234
  }
235
235
 
236
236
  function _react5() {
237
- const data = require("./react.templates");
237
+ const data = require("./react.application");
238
238
 
239
239
  _react5 = function () {
240
240
  return data;
@@ -243,6 +243,16 @@ function _react5() {
243
243
  return data;
244
244
  }
245
245
 
246
+ function _react6() {
247
+ const data = require("./react.templates");
248
+
249
+ _react6 = function () {
250
+ return data;
251
+ };
252
+
253
+ return data;
254
+ }
255
+
246
256
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
247
257
 
248
258
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -318,6 +328,16 @@ class ReactMain {
318
328
  devConfig: [transformer]
319
329
  }, tsModule);
320
330
  }
331
+ /**
332
+ * Override the Bit documentation link. See docs: https://bit.dev/docs/docs/doc-templates
333
+ */
334
+
335
+
336
+ overrideDocsTemplate(templatePath) {
337
+ return this.envs.override({
338
+ getDocsTemplate: () => templatePath
339
+ });
340
+ }
321
341
  /**
322
342
  * @deprecated use useTypescript()
323
343
  * override the build tsconfig.
@@ -354,8 +374,8 @@ class ReactMain {
354
374
 
355
375
 
356
376
  registerReactApp(options) {
357
- if (!this.workspace) return;
358
- this.application.registerApp(new (_react4().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, this.workspace.path, options.deploy));
377
+ this.application.registerApp(new (_react5().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy));
378
+ return this;
359
379
  }
360
380
  /**
361
381
  * override the env's dev server and preview webpack configurations.
@@ -553,10 +573,11 @@ class ReactMain {
553
573
  static async provider([envs, jestAspect, tsAspect, compiler, webpack, workspace, graphql, pkg, tester, eslint, prettier, application, generator], config) {
554
574
  const reactEnv = new (_react2().ReactEnv)(jestAspect, tsAspect, compiler, webpack, workspace, pkg, tester, config, eslint, prettier);
555
575
  const react = new ReactMain(reactEnv, envs, application, workspace);
556
- graphql.register((0, _react3().reactSchema)(react));
576
+ graphql.register((0, _react4().reactSchema)(react));
557
577
  envs.registerEnv(reactEnv);
558
- generator.registerComponentTemplate(_react5().componentTemplates);
559
- generator.registerWorkspaceTemplate(_react5().workspaceTemplates);
578
+ generator.registerComponentTemplate(_react6().componentTemplates);
579
+ generator.registerWorkspaceTemplate(_react6().workspaceTemplates);
580
+ application.registerAppType(new (_react3().ReactAppType)('react-app', reactEnv));
560
581
  return react;
561
582
  }
562
583
 
@@ -1 +1 @@
1
- {"version":3,"sources":["react.main.runtime.ts"],"names":["ReactMain","constructor","reactEnv","envs","application","workspace","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","Object","assign","overrideBuildTsConfig","registerReactApp","options","registerApp","ReactApp","name","entry","portRange","path","deploy","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","filter","task","aspectId","CompilerAspect","overrideDependencies","dependencyPolicy","getDependencies","reactDeps","overrideCompiler","compiler","overrideEslintConfig","overridePackageJsonProps","props","getPackageJsonProps","getDocs","component","docsArray","state","_consumer","docs","abstract","description","filePath","properties","provider","jestAspect","tsAspect","webpack","graphql","pkg","tester","eslint","prettier","generator","ReactEnv","react","register","registerEnv","registerComponentTemplate","componentTemplates","registerWorkspaceTemplate","workspaceTemplates","MainRuntime","EnvsAspect","JestAspect","TypescriptAspect","WebpackAspect","WorkspaceAspect","GraphqlAspect","PkgAspect","TesterAspect","ESLintAspect","PrettierAspect","ApplicationAspect","GeneratorAspect","ReactAspect","addRuntime"],"mappings":"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","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 { VariantPolicyConfigObject } 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 { ESLintMain, ESLintAspect, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierMain, PrettierAspect, PrettierConfigTransformer } from '@teambit/prettier';\nimport { ReactAspect } from './react.aspect';\nimport { ReactEnv } from './react.env';\nimport { reactSchema } from './react.graphql';\nimport { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\nimport { componentTemplates, workspaceTemplates } from './react.templates';\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];\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 workspace: Workspace\n ) {}\n\n readonly env = this.reactEnv;\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 * @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 * register a new React application.\n */\n registerReactApp(options: ReactAppOptions) {\n if (!this.workspace) return;\n this.application.registerApp(\n new ReactApp(\n options.name,\n options.entry,\n options.portRange || [3000, 4000],\n this.reactEnv,\n this.workspace.path,\n options.deploy\n )\n );\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.getBuildPipe().filter((task) => task.aspectId !== CompilerAspect.id);\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: VariantPolicyConfigObject) {\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 ...props,\n ...this.reactEnv.getPackageJsonProps(),\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 ];\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 ]: ReactDeps,\n config: ReactMainConfig\n ) {\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 );\n const react = new ReactMain(reactEnv, envs, application, workspace);\n graphql.register(reactSchema(react));\n envs.registerEnv(reactEnv);\n generator.registerComponentTemplate(componentTemplates);\n generator.registerWorkspaceTemplate(workspaceTemplates);\n return react;\n }\n}\n\nReactAspect.addRuntime(ReactMain);\n"]}
1
+ {"version":3,"sources":["react.main.runtime.ts"],"names":["ReactMain","constructor","reactEnv","envs","application","workspace","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","Object","assign","overrideDocsTemplate","templatePath","getDocsTemplate","overrideBuildTsConfig","registerReactApp","options","registerApp","ReactApp","name","entry","portRange","deploy","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","filter","task","aspectId","CompilerAspect","overrideDependencies","dependencyPolicy","getDependencies","reactDeps","overrideCompiler","compiler","overrideEslintConfig","overridePackageJsonProps","props","getPackageJsonProps","getDocs","component","docsArray","state","_consumer","docs","abstract","description","filePath","properties","provider","jestAspect","tsAspect","webpack","graphql","pkg","tester","eslint","prettier","generator","ReactEnv","react","register","registerEnv","registerComponentTemplate","componentTemplates","registerWorkspaceTemplate","workspaceTemplates","registerAppType","ReactAppType","MainRuntime","EnvsAspect","JestAspect","TypescriptAspect","WebpackAspect","WorkspaceAspect","GraphqlAspect","PkgAspect","TesterAspect","ESLintAspect","PrettierAspect","ApplicationAspect","GeneratorAspect","ReactAspect","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAsDO,MAAMA,SAAN,CAAgB;AACrBC,EAAAA,WAAW;AACT;AACJ;AACA;AACaC,EAAAA,QAJA,EAMDC,IANC,EAQDC,WARC,EAUDC,SAVC,EAWT;AAAA,SAPSH,QAOT,GAPSA,QAOT;AAAA,SALQC,IAKR,GALQA,IAKR;AAAA,SAHQC,WAGR,GAHQA,WAGR;AAAA,SADQC,SACR,GADQA,SACR;AAAA,iDAEa,KAAKH,QAFlB;AAAE;;AAIJ;AACF;AACA;AACA;AACEI,EAAAA,aAAa,CAACC,SAAD,EAAqCC,QAAa,GAAGC,sBAArD,EAAyD;AACpE,UAAMC,SAAc,GAAG,EAAvB;AACA,UAAMC,eAAe,GAAGJ,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEK,SAAnC;;AACA,QAAID,eAAJ,EAAqB;AACnBD,MAAAA,SAAS,CAACG,WAAV,GAAwB,MAAM,KAAKX,QAAL,CAAcW,WAAd,CAA0BF,eAA1B,EAA2CH,QAA3C,CAA9B;AACD;;AACD,UAAMM,iBAAiB,GAAGP,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEQ,WAArC;;AACA,QAAID,iBAAJ,EAAuB;AACrB,YAAME,kBAAkB,GAAG;AACzBC,QAAAA,UAAU,EAAE;AACVC,UAAAA,YAAY,EAAEJ,iBADJ;AAEVK,UAAAA,MAAM,EAAEX;AAFE;AADa,OAA3B;;AAMAE,MAAAA,SAAS,CAACU,YAAV,GAAyB,MAAM,KAAKlB,QAAL,CAAckB,YAAd,CAA2BJ,kBAA3B,CAA/B;AACD;;AACD,WAAO,KAAKb,IAAL,CAAUkB,QAAV,CAAmBX,SAAnB,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEY,EAAAA,gBAAgB,CACdC,QAA6B,GAAG,EADlB,EAEdC,eAA0D,GAAG,EAF/C,EAGdhB,QAAa,GAAGC,sBAHF,EAId;AACA,UAAMgB,WAAgC,GAAIC,aAAD,IAAmB;AAAA;;AAC1DA,MAAAA,aAAa,CAACC,aAAd,CAA4BJ,QAA5B;AACAG,MAAAA,aAAa,CAACE,GAAd,CAAkBC,SAAlB,4BAA8BL,eAAe,CAACK,SAA9C,yEAA2DH,aAAa,CAACE,GAAd,CAAkBC,SAA7E;AACAH,MAAAA,aAAa,CAACE,GAAd,CAAkBE,UAAlB,6BAA+BN,eAAe,CAACM,UAA/C,2EAA6DJ,aAAa,CAACE,GAAd,CAAkBE,UAA/E;;AACA,UAAIN,eAAe,CAACO,KAApB,EAA2B;AACzBL,QAAAA,aAAa,CAACM,QAAd,CAAuBR,eAAe,CAACO,KAAvC;AACD;;AACD,YAAME,sBAAsB,GAAG,oBAAKT,eAAL,EAAsB,CAAC,OAAD,EAAU,WAAV,EAAuB,YAAvB,CAAtB,CAA/B;AACAE,MAAAA,aAAa,CAACE,GAAd,GAAoBM,MAAM,CAACC,MAAP,CAAcT,aAAa,CAACE,GAA5B,EAAiCK,sBAAjC,CAApB;AACA,aAAOP,aAAP;AACD,KAVD,CADA,CAYA;AACA;AACA;;;AACA,WAAO,KAAKpB,aAAL,CAAmB;AAAEM,MAAAA,SAAS,EAAE,CAACa,WAAD;AAAb,KAAnB,EAAiDjB,QAAjD,CAAP;AACD;AAED;AACF;AACA;;;AACE4B,EAAAA,oBAAoB,CAACC,YAAD,EAAuB;AACzC,WAAO,KAAKlC,IAAL,CAAUkB,QAAV,CAAmB;AACxBiB,MAAAA,eAAe,EAAE,MAAMD;AADC,KAAnB,CAAP;AAGD;AAED;AACF;AACA;AACA;;;AACEE,EAAAA,qBAAqB,CACnBhB,QAA6B,GAAG,EADb,EAEnBC,eAA0D,GAAG,EAF1C,EAGnBhB,QAAa,GAAGC,sBAHG,EAInB;AACA,UAAMgB,WAAgC,GAAIC,aAAD,IAAmB;AAAA;;AAC1DA,MAAAA,aAAa,CAACC,aAAd,CAA4BJ,QAA5B;AACAG,MAAAA,aAAa,CAACE,GAAd,CAAkBC,SAAlB,6BAA8BL,eAAe,CAACK,SAA9C,2EAA2DH,aAAa,CAACE,GAAd,CAAkBC,SAA7E;AACAH,MAAAA,aAAa,CAACE,GAAd,CAAkBE,UAAlB,6BAA+BN,eAAe,CAACM,UAA/C,2EAA6DJ,aAAa,CAACE,GAAd,CAAkBE,UAA/E;;AACA,UAAIN,eAAe,CAACO,KAApB,EAA2B;AACzBL,QAAAA,aAAa,CAACM,QAAd,CAAuBR,eAAe,CAACO,KAAvC;AACD;;AACD,YAAME,sBAAsB,GAAG,oBAAKT,eAAL,EAAsB,CAAC,OAAD,EAAU,WAAV,EAAuB,YAAvB,CAAtB,CAA/B;AACAE,MAAAA,aAAa,CAACE,GAAd,GAAoBM,MAAM,CAACC,MAAP,CAAcT,aAAa,CAACE,GAA5B,EAAiCK,sBAAjC,CAApB;AACA,aAAOP,aAAP;AACD,KAVD,CADA,CAYA;AACA;AACA;;;AACA,WAAO,KAAKpB,aAAL,CAAmB;AAAES,MAAAA,WAAW,EAAE,CAACU,WAAD;AAAf,KAAnB,EAAmDjB,QAAnD,CAAP;AACD;AAED;AACF;AACA;;;AACEgC,EAAAA,gBAAgB,CAACC,OAAD,EAA2B;AACzC,SAAKrC,WAAL,CAAiBsC,WAAjB,CACE,KAAIC,kBAAJ,EAAaF,OAAO,CAACG,IAArB,EAA2BH,OAAO,CAACI,KAAnC,EAA0CJ,OAAO,CAACK,SAAR,IAAqB,CAAC,IAAD,EAAO,IAAP,CAA/D,EAA6E,KAAK5C,QAAlF,EAA4FuC,OAAO,CAACM,MAApG,CADF;AAIA,WAAO,IAAP;AACD;AAED;AACF;AACA;AACA;;;AACEC,EAAAA,UAAU,CAACzC,SAAD,EAAkD;AAC1D,UAAMG,SAAc,GAAG,EAAvB;AACA,UAAMuC,qBAAqB,GAAG1C,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAE2C,eAAzC;;AACA,QAAID,qBAAJ,EAA2B;AACzBvC,MAAAA,SAAS,CAACyC,YAAV,GAA0BC,OAAD,IACvB,KAAKlD,QAAL,CAAciD,YAAd,CAA2BC,OAA3B,EAAoCH,qBAApC,CADF;;AAEAvC,MAAAA,SAAS,CAAC2C,WAAV,GAAyBD,OAAD,IAA+B,KAAKlD,QAAL,CAAcmD,WAAd,CAA0BD,OAAO,CAACE,aAAR,CAAsBC,EAAhD,CAAvD;AACD;;AACD,UAAMC,mBAAmB,GAAGjD,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEkD,aAAvC;;AACA,QAAID,mBAAJ,EAAyB;AACvB9C,MAAAA,SAAS,CAACgD,UAAV,GAAwBN,OAAD,IAA6B,KAAKlD,QAAL,CAAcwD,UAAd,CAAyBN,OAAzB,EAAkCI,mBAAlC,CAApD;AACD;;AACD,WAAO,KAAKrD,IAAL,CAAUkB,QAAV,CAAmBX,SAAnB,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEiD,EAAAA,SAAS,CAACpD,SAAD,EAAiD;AACxD,UAAMW,YAAY,GAAG,CAAAX,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEW,YAAX,KAA2B,EAAhD;AACA,WAAO,KAAKf,IAAL,CAAUkB,QAAV,CAAmB;AACxBuC,MAAAA,SAAS,EAAGR,OAAD,IAA4B,KAAKlD,QAAL,CAAc0D,SAAd,CAAwBR,OAAxB,EAAiClC,YAAjC;AADf,KAAnB,CAAP;AAGD;AAED;AACF;AACA;AACA;AACA;;;AACE2C,EAAAA,WAAW,CAACtD,SAAD,EAAmD;AAC5D,UAAMW,YAAY,GAAG,CAAAX,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEW,YAAX,KAA2B,EAAhD;AACA,WAAO,KAAKf,IAAL,CAAUkB,QAAV,CAAmB;AACxByC,MAAAA,YAAY,EAAGV,OAAD,IAA+B,KAAKlD,QAAL,CAAc4D,YAAd,CAA2BV,OAA3B,EAAoClC,YAApC;AADrB,KAAnB,CAAP;AAGD;AAED;AACF;AACA;AACA;;;AACE6C,EAAAA,uBAAuB,CAACC,MAAD,EAAwB;AAC7C,UAAMvC,WAAqC,GAAIC,aAAD,IAAmB;AAC/D,aAAOA,aAAa,CAACuC,KAAd,CAAoB,CAACD,MAAD,CAApB,CAAP;AACD,KAFD;;AAIA,WAAO,KAAK7D,IAAL,CAAUkB,QAAV,CAAmB;AACxB8B,MAAAA,YAAY,EAAGC,OAAD,IAA+B,KAAKlD,QAAL,CAAciD,YAAd,CAA2BC,OAA3B,EAAoC,CAAC3B,WAAD,CAApC,CADrB;AAExB4B,MAAAA,WAAW,EAAGD,OAAD,IAA+B,KAAKlD,QAAL,CAAcmD,WAAd,CAA0BD,OAAO,CAACE,aAAR,CAAsBC,EAAhD;AAFpB,KAAnB,CAAP;AAID;AAED;AACF;AACA;AACA;;;AACEW,EAAAA,qBAAqB,CAACF,MAAD,EAAwB;AAC3C,UAAMvC,WAAqC,GAAIC,aAAD,IAAmB;AAC/D,aAAOA,aAAa,CAACuC,KAAd,CAAoB,CAACD,MAAD,CAApB,CAAP;AACD,KAFD;;AAGA,WAAO,KAAK7D,IAAL,CAAUkB,QAAV,CAAmB;AACxBqC,MAAAA,UAAU,EAAGN,OAAD,IAA6B,KAAKlD,QAAL,CAAcwD,UAAd,CAAyBN,OAAzB,EAAkC,CAAC3B,WAAD,CAAlC;AADjB,KAAnB,CAAP;AAGD;;AAED0C,EAAAA,eAAe,CAACC,WAAD,EAAsB;AACnC,WAAO,KAAKjE,IAAL,CAAUkB,QAAV,CAAmB;AACxBgD,MAAAA,UAAU,EAAE,MAAM;AAChB,eAAOD,WAAP;AACD;AAHuB,KAAnB,CAAP;AAKD;AAED;AACF;AACA;;;AACEE,EAAAA,OAAO,CAACpD,YAAD,EAAiCqD,SAAsB,GAAG,EAA1D,EAA8D;AACnE,WAAO,KAAKpE,IAAL,CAAUmE,OAAV,CAAkB,KAAKnE,IAAL,CAAU8D,KAAV,CAAgBM,SAAhB,EAA2B,KAAKrE,QAAhC,CAAlB,EAA6DgB,YAA7D,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;AACEsD,EAAAA,kBAAkB,CAACC,cAAD,EAAyBC,cAAzB,EAAkD;AAClE,WAAO,KAAKvE,IAAL,CAAUkB,QAAV,CAAmB;AACxBsD,MAAAA,SAAS,EAAE,MAAM,KAAKzE,QAAL,CAAcyE,SAAd,CAAwBF,cAAxB,EAAwCC,cAAxC;AADO,KAAnB,CAAP;AAGD;AAED;AACF;AACA;;;AACEE,EAAAA,iBAAiB,CAACC,KAAD,EAAqB;AACpC,WAAO,KAAK1E,IAAL,CAAUkB,QAAV,CAAmB;AACxBD,MAAAA,YAAY,EAAE,MAAMyD;AADI,KAAnB,CAAP;AAGD;AAED;AACF;AACA;;;AACEC,EAAAA,qBAAqB,CAACD,KAAD,EAAqB;AACxC,UAAME,mBAAmB,GAAG,KAAK7E,QAAL,CAAckB,YAAd,GAA6B4D,MAA7B,CAAqCC,IAAD,IAAUA,IAAI,CAACC,QAAL,KAAkBC,2BAAe5B,EAA/E,CAA5B;AAEA,WAAO,KAAKpD,IAAL,CAAUkB,QAAV,CAAmB;AACxBD,MAAAA,YAAY,EAAE,MAAM,CAAC,GAAGyD,KAAJ,EAAW,GAAGE,mBAAd;AADI,KAAnB,CAAP;AAGD;AAED;AACF;AACA;;;AACEK,EAAAA,oBAAoB,CAACC,gBAAD,EAA8C;AAChE,WAAO,KAAKlF,IAAL,CAAUkB,QAAV,CAAmB;AACxBiE,MAAAA,eAAe,EAAE,YAAY;AAC3B,cAAMC,SAAS,GAAG,MAAM,KAAKrF,QAAL,CAAcoF,eAAd,EAAxB;AACA,eAAO,8BAAcD,gBAAd,EAAgCE,SAAhC,CAAP;AACD;AAJuB,KAAnB,CAAP;AAMD;AAED;AACF;AACA;;;AACEC,EAAAA,gBAAgB,CAACC,QAAD,EAAqB;AACnC,WAAO,KAAKtF,IAAL,CAAUkB,QAAV,CAAmB;AACxBR,MAAAA,WAAW,EAAE,MAAM;AACjB,eAAO4E,QAAP;AACD;AAHuB,KAAnB,CAAP;AAKD;AAED;AACF;AACA;;;AACEC,EAAAA,oBAAoB,GAAG,CAAE;AAEzB;AACF;AACA;;;AACEC,EAAAA,wBAAwB,CAACC,KAAD,EAA0B;AAChD,WAAO,KAAKzF,IAAL,CAAUkB,QAAV,CAAmB;AACxBwE,MAAAA,mBAAmB,EAAE,MAAM;AACzB,+CACKD,KADL,GAEK,KAAK1F,QAAL,CAAc2F,mBAAd,EAFL;AAID;AANuB,KAAnB,CAAP;AAQD;AAED;AACF;AACA;;;AACEC,EAAAA,OAAO,CAACC,SAAD,EAAuB;AAC5B,UAAMC,SAAS,GAAGD,SAAS,CAACE,KAAV,CAAgBC,SAAhB,CAA0BC,IAA5C;;AACA,QAAI,CAACH,SAAD,IAAc,CAACA,SAAS,CAAC,CAAD,CAA5B,EAAiC;AAC/B,aAAO,IAAP;AACD;;AAED,UAAMG,IAAI,GAAGH,SAAS,CAAC,CAAD,CAAtB;AAEA,WAAO;AACLI,MAAAA,QAAQ,EAAED,IAAI,CAACE,WADV;AAELC,MAAAA,QAAQ,EAAEH,IAAI,CAACG,QAFV;AAGLC,MAAAA,UAAU,EAAEJ,IAAI,CAACI;AAHZ,KAAP;AAKD;;AAmBoB,eAARC,QAAQ,CACnB,CACErG,IADF,EAEEsG,UAFF,EAGEC,QAHF,EAIEjB,QAJF,EAKEkB,OALF,EAMEtG,SANF,EAOEuG,OAPF,EAQEC,GARF,EASEC,MATF,EAUEC,MAVF,EAWEC,QAXF,EAYE5G,WAZF,EAaE6G,SAbF,CADmB,EAgBnBjD,MAhBmB,EAiBnB;AACA,UAAM9D,QAAQ,GAAG,KAAIgH,kBAAJ,EACfT,UADe,EAEfC,QAFe,EAGfjB,QAHe,EAIfkB,OAJe,EAKftG,SALe,EAMfwG,GANe,EAOfC,MAPe,EAQf9C,MARe,EASf+C,MATe,EAUfC,QAVe,CAAjB;AAYA,UAAMG,KAAK,GAAG,IAAInH,SAAJ,CAAcE,QAAd,EAAwBC,IAAxB,EAA8BC,WAA9B,EAA2CC,SAA3C,CAAd;AACAuG,IAAAA,OAAO,CAACQ,QAAR,CAAiB,2BAAYD,KAAZ,CAAjB;AACAhH,IAAAA,IAAI,CAACkH,WAAL,CAAiBnH,QAAjB;AACA+G,IAAAA,SAAS,CAACK,yBAAV,CAAoCC,4BAApC;AACAN,IAAAA,SAAS,CAACO,yBAAV,CAAoCC,4BAApC;AACArH,IAAAA,WAAW,CAACsH,eAAZ,CAA4B,KAAIC,sBAAJ,EAAiB,WAAjB,EAA8BzH,QAA9B,CAA5B;AACA,WAAOiH,KAAP;AACD;;AAvVoB;;;gCAAVnH,S,aAiSM4H,kB;gCAjSN5H,S,kBAkSW,CACpB6H,kBADoB,EAEpBC,kBAFoB,EAGpBC,8BAHoB,EAIpB5C,0BAJoB,EAKpB6C,wBALoB,EAMpBC,4BANoB,EAOpBC,wBAPoB,EAQpBC,gBARoB,EASpBC,sBAToB,EAUpBC,sBAVoB,EAWpBC,0BAXoB,EAYpBC,gCAZoB,EAapBC,4BAboB,C;;AAwDxBC,qBAAYC,UAAZ,CAAuB1I,SAAvB","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 { VariantPolicyConfigObject } 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 { 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 './react.app-type';\nimport { reactSchema } from './react.graphql';\nimport { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\nimport { componentTemplates, workspaceTemplates } from './react.templates';\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];\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 workspace: Workspace\n ) {}\n\n readonly env = this.reactEnv;\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 * register a new React application.\n */\n registerReactApp(options: ReactAppOptions) {\n this.application.registerApp(\n new ReactApp(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy)\n );\n\n return this;\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.getBuildPipe().filter((task) => task.aspectId !== CompilerAspect.id);\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: VariantPolicyConfigObject) {\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 ...props,\n ...this.reactEnv.getPackageJsonProps(),\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 ];\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 ]: ReactDeps,\n config: ReactMainConfig\n ) {\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 );\n const react = new ReactMain(reactEnv, envs, application, workspace);\n graphql.register(reactSchema(react));\n envs.registerEnv(reactEnv);\n generator.registerComponentTemplate(componentTemplates);\n generator.registerWorkspaceTemplate(workspaceTemplates);\n application.registerAppType(new ReactAppType('react-app', reactEnv));\n return react;\n }\n}\n\nReactAspect.addRuntime(ReactMain);\n"]}
package/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export type { ReactMain, UseWebpackModifiers, UseTypescriptModifiers } from './react.main.runtime';
2
2
  export type { ReactPreview } from './react.preview.runtime';
3
3
  export type { ReactEnv } from './react.env';
4
+ export type { ReactAppOptions } from './react-app-options';
4
5
  // Re-export it to indicate for people that extends the react env that we are using it
5
6
  // Commented - make errors in safari - SyntaxError: Invalid regular expression: invalid group specifier name
6
7
  // export * as styleRegexps from '@teambit/modules.style-regexps';
@@ -17,6 +17,7 @@ module.exports = {
17
17
  '^.+\\.(js|jsx|ts|tsx)$': require.resolve('./transformer'),
18
18
  '^.+\\.css$': require.resolve('./css-transform.js'),
19
19
  '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': require.resolve('./file-transform.js'),
20
+ // '^(?!.*\\.(svg|png|jpg|jpeg|gif|webp|woff|ttf|woff2)$)': require.resolve('./file-transform.js'),
20
21
  },
21
22
  transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$', '^.+\\.module\\.(css|sass|scss)$'],
22
23
  modulePaths: [],
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/react",
3
- "version": "0.0.520",
3
+ "version": "0.0.524",
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.520"
9
+ "version": "0.0.524"
10
10
  },
11
11
  "dependencies": {
12
12
  "react-error-boundary": "^3.0.0",
@@ -75,49 +75,49 @@
75
75
  "@svgr/webpack": "5.5.0",
76
76
  "core-js": "^3.0.0",
77
77
  "@teambit/base-ui.utils.composer": "1.0.0",
78
- "@teambit/react.instructions.react.adding-compositions": "0.0.5",
79
- "@teambit/react.instructions.react.adding-tests": "0.0.5",
80
- "@teambit/design.ui.pages.standalone-not-found-page": "0.0.353",
81
- "@teambit/preview": "0.0.520",
82
- "@teambit/react.ui.error-fallback": "0.0.68",
83
- "@teambit/react.ui.loader-fallback": "0.0.47",
84
- "@teambit/compositions.ui.hooks.use-composition": "0.0.122",
85
- "@teambit/design.ui.input.option-button": "0.0.25",
86
- "@teambit/design.ui.tooltip": "0.0.351",
87
- "@teambit/application": "0.0.162",
88
- "@teambit/bundler": "0.0.520",
89
- "@teambit/builder": "0.0.520",
90
- "@teambit/isolator": "0.0.520",
91
- "@teambit/toolbox.network.get-port": "0.0.72",
92
- "@teambit/compiler": "0.0.520",
93
- "@teambit/component.modules.component-url": "0.0.77",
94
- "@teambit/component": "0.0.520",
95
- "@teambit/envs": "0.0.520",
96
- "@teambit/eslint": "0.0.520",
97
- "@teambit/formatter": "0.0.71",
98
- "@teambit/jest": "0.0.520",
99
- "@teambit/linter": "0.0.520",
100
- "@teambit/pkg": "0.0.520",
101
- "@teambit/prettier": "0.0.71",
102
- "@teambit/react.babel.bit-react-transformer": "0.0.450",
103
- "@teambit/schema": "0.0.520",
104
- "@teambit/tester": "0.0.520",
105
- "@teambit/typescript": "0.0.520",
106
- "@teambit/webpack": "0.0.520",
107
- "@teambit/workspace": "0.0.520",
108
- "@teambit/cli": "0.0.379",
109
- "@teambit/dependency-resolver": "0.0.520",
110
- "@teambit/generator": "0.0.520",
111
- "@teambit/graphql": "0.0.520",
112
- "@teambit/react.ui.highlighter-provider": "0.0.130",
113
- "@teambit/compositions": "0.0.520",
114
- "@teambit/ui": "0.0.520",
115
- "@teambit/react.eslint-config-bit-react": "0.0.445",
116
- "@teambit/mdx.modules.mdx-loader": "0.0.445",
117
- "@teambit/webpack.modules.generate-style-loaders": "0.0.62",
118
- "@teambit/webpack.modules.style-regexps": "0.0.91",
119
- "@teambit/component-id": "0.0.369",
120
- "@teambit/config": "0.0.390"
78
+ "@teambit/react.instructions.react.adding-compositions": "0.0.6",
79
+ "@teambit/react.instructions.react.adding-tests": "0.0.6",
80
+ "@teambit/design.ui.pages.standalone-not-found-page": "0.0.354",
81
+ "@teambit/preview": "0.0.524",
82
+ "@teambit/react.ui.error-fallback": "0.0.69",
83
+ "@teambit/react.ui.loader-fallback": "0.0.48",
84
+ "@teambit/compositions.ui.hooks.use-composition": "0.0.123",
85
+ "@teambit/design.ui.input.option-button": "0.0.26",
86
+ "@teambit/design.ui.tooltip": "0.0.352",
87
+ "@teambit/application": "0.0.166",
88
+ "@teambit/bundler": "0.0.524",
89
+ "@teambit/builder": "0.0.524",
90
+ "@teambit/isolator": "0.0.524",
91
+ "@teambit/toolbox.network.get-port": "0.0.73",
92
+ "@teambit/compiler": "0.0.524",
93
+ "@teambit/component.modules.component-url": "0.0.78",
94
+ "@teambit/component": "0.0.524",
95
+ "@teambit/envs": "0.0.524",
96
+ "@teambit/eslint": "0.0.524",
97
+ "@teambit/formatter": "0.0.75",
98
+ "@teambit/jest": "0.0.524",
99
+ "@teambit/linter": "0.0.524",
100
+ "@teambit/pkg": "0.0.524",
101
+ "@teambit/prettier": "0.0.75",
102
+ "@teambit/react.babel.bit-react-transformer": "0.0.451",
103
+ "@teambit/schema": "0.0.524",
104
+ "@teambit/tester": "0.0.524",
105
+ "@teambit/typescript": "0.0.524",
106
+ "@teambit/webpack": "0.0.524",
107
+ "@teambit/workspace": "0.0.524",
108
+ "@teambit/cli": "0.0.380",
109
+ "@teambit/dependency-resolver": "0.0.524",
110
+ "@teambit/generator": "0.0.524",
111
+ "@teambit/graphql": "0.0.524",
112
+ "@teambit/react.ui.highlighter-provider": "0.0.131",
113
+ "@teambit/compositions": "0.0.524",
114
+ "@teambit/ui": "0.0.524",
115
+ "@teambit/react.eslint-config-bit-react": "0.0.446",
116
+ "@teambit/mdx.modules.mdx-loader": "0.0.446",
117
+ "@teambit/webpack.modules.generate-style-loaders": "0.0.63",
118
+ "@teambit/webpack.modules.style-regexps": "0.0.92",
119
+ "@teambit/component-id": "0.0.370",
120
+ "@teambit/config": "0.0.391"
121
121
  },
122
122
  "devDependencies": {
123
123
  "@types/react": "^17.0.8",
@@ -132,14 +132,14 @@
132
132
  "@types/mocha": "5.2.7",
133
133
  "@types/testing-library__jest-dom": "5.9.5",
134
134
  "@types/jest": "^26.0.0",
135
- "@teambit/react.aspect-docs.react": "0.0.85"
135
+ "@teambit/react.aspect-docs.react": "0.0.86"
136
136
  },
137
137
  "peerDependencies": {
138
138
  "@teambit/legacy": "1.0.160",
139
139
  "react-dom": "^16.8.0 || ^17.0.0",
140
140
  "react": "^16.8.0 || ^17.0.0"
141
141
  },
142
- "license": "SEE LICENSE IN LICENSE",
142
+ "license": "Apache-2.0",
143
143
  "bit": {
144
144
  "bindingPrefix": "@teambit",
145
145
  "env": {},
@@ -0,0 +1,12 @@
1
+ import { ApplicationType } from '@teambit/application';
2
+ import { ReactEnv } from './react.env';
3
+ import { ReactAppOptions } from './react-app-options';
4
+ import { ReactApp } from './react.application';
5
+
6
+ export class ReactAppType implements ApplicationType<ReactAppOptions> {
7
+ constructor(readonly name: string, private reactEnv: ReactEnv) {}
8
+
9
+ createApp(options: ReactAppOptions) {
10
+ return new ReactApp(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy);
11
+ }
12
+ }
@@ -12,7 +12,6 @@ export class ReactApp implements Application {
12
12
  readonly entry: string[],
13
13
  readonly portRange: number[],
14
14
  private reactEnv: ReactEnv,
15
- private rootPath: string,
16
15
  readonly deploy?: (context: DeployContext) => Promise<void>
17
16
  ) {}
18
17
 
@@ -23,6 +22,16 @@ export class ReactApp implements Application {
23
22
  const devServer = this.reactEnv.getDevServer(devServerContext, [
24
23
  (configMutator) => {
25
24
  // configMutator.addTopLevel('output', { publicPath: `/public/${this.name}` });
25
+ configMutator.addTopLevel('devServer', {
26
+ historyApiFallback: {
27
+ index: '/index.html',
28
+ disableDotRule: true,
29
+ },
30
+ });
31
+
32
+ if (!configMutator.raw.output) configMutator.raw.output = {};
33
+ configMutator.raw.output.publicPath = '/';
34
+
26
35
  return configMutator;
27
36
  },
28
37
  ]);
@@ -30,6 +30,7 @@ import { ESLintMain, ESLintAspect, EslintConfigTransformer } from '@teambit/esli
30
30
  import { PrettierMain, PrettierAspect, PrettierConfigTransformer } from '@teambit/prettier';
31
31
  import { ReactAspect } from './react.aspect';
32
32
  import { ReactEnv } from './react.env';
33
+ import { ReactAppType } from './react.app-type';
33
34
  import { reactSchema } from './react.graphql';
34
35
  import { ReactAppOptions } from './react-app-options';
35
36
  import { ReactApp } from './react.application';
@@ -153,6 +154,15 @@ export class ReactMain {
153
154
  return this.useTypescript({ devConfig: [transformer] }, tsModule);
154
155
  }
155
156
 
157
+ /**
158
+ * Override the Bit documentation link. See docs: https://bit.dev/docs/docs/doc-templates
159
+ */
160
+ overrideDocsTemplate(templatePath: string) {
161
+ return this.envs.override({
162
+ getDocsTemplate: () => templatePath,
163
+ });
164
+ }
165
+
156
166
  /**
157
167
  * @deprecated use useTypescript()
158
168
  * override the build tsconfig.
@@ -183,17 +193,11 @@ export class ReactMain {
183
193
  * register a new React application.
184
194
  */
185
195
  registerReactApp(options: ReactAppOptions) {
186
- if (!this.workspace) return;
187
196
  this.application.registerApp(
188
- new ReactApp(
189
- options.name,
190
- options.entry,
191
- options.portRange || [3000, 4000],
192
- this.reactEnv,
193
- this.workspace.path,
194
- options.deploy
195
- )
197
+ new ReactApp(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.deploy)
196
198
  );
199
+
200
+ return this;
197
201
  }
198
202
 
199
203
  /**
@@ -425,6 +429,7 @@ export class ReactMain {
425
429
  envs.registerEnv(reactEnv);
426
430
  generator.registerComponentTemplate(componentTemplates);
427
431
  generator.registerWorkspaceTemplate(workspaceTemplates);
432
+ application.registerAppType(new ReactAppType('react-app', reactEnv));
428
433
  return react;
429
434
  }
430
435
  }