@teambit/react 0.0.703 → 0.0.706

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/apps/web/plugins/prerender.ts +7 -2
  2. package/apps/web/react-app-options.ts +21 -4
  3. package/apps/web/react.app-type.ts +1 -1
  4. package/apps/web/react.application.ts +58 -12
  5. package/artifacts/env-template/public/{694.js → 101.js} +10 -2
  6. package/artifacts/env-template/public/{187.js → 413.js} +3 -3
  7. package/artifacts/env-template/public/677.js +14 -2
  8. package/artifacts/env-template/public/750.js +7 -3
  9. package/artifacts/env-template/public/793.js +91 -35
  10. package/artifacts/env-template/public/assets-manifest.json +13 -13
  11. package/artifacts/env-template/public/compositions.e7003a9ac0638e4fda6e.js +1 -0
  12. package/artifacts/env-template/public/compositions.html +1 -1
  13. package/artifacts/env-template/public/overview.f4bdf4cdb5c17c3242ae.js +5 -0
  14. package/artifacts/env-template/public/overview.html +1 -1
  15. package/artifacts/env-template/public/{preview-root.080e7a4a6152a8f872c7.js → preview-root.598f047e01605292ce77.js} +1 -1
  16. package/artifacts/env-template/public/service-worker.js +1 -1
  17. package/artifacts/env-template/public/static/css/793.ebb74038.css +1 -0
  18. package/artifacts/preview/teambit_react_react-preview.js +2 -2
  19. package/{compositions-1649301819971.js → compositions-1649647448813.js} +0 -0
  20. package/dist/apps/web/plugins/prerender.d.ts +2 -1
  21. package/dist/apps/web/plugins/prerender.js +19 -3
  22. package/dist/apps/web/plugins/prerender.js.map +1 -1
  23. package/dist/apps/web/react-app-options.d.ts +27 -4
  24. package/dist/apps/web/react.app-type.js +1 -3
  25. package/dist/apps/web/react.app-type.js.map +1 -1
  26. package/dist/apps/web/react.application.d.ts +4 -2
  27. package/dist/apps/web/react.application.js +56 -11
  28. package/dist/apps/web/react.application.js.map +1 -1
  29. package/dist/templates/react-workspace/index.js +1 -1
  30. package/dist/templates/react-workspace/index.js.map +1 -1
  31. package/dist/templates/react-workspace-app/index.js +1 -1
  32. package/dist/templates/react-workspace-app/index.js.map +1 -1
  33. package/dist/templates/react-workspace-deprecated/index.js +1 -1
  34. package/dist/templates/react-workspace-deprecated/index.js.map +1 -1
  35. package/dist/templates/react-workspace-lib/index.js +1 -1
  36. package/dist/templates/react-workspace-lib/index.js.map +1 -1
  37. package/{overview-1649301819971.js → overview-1649647448813.js} +0 -0
  38. package/package-tar/teambit-react-0.0.706.tgz +0 -0
  39. package/package.json +31 -31
  40. package/{preview-1649301819971.js → preview-1649647448813.js} +2 -2
  41. package/templates/react-workspace/index.ts +1 -1
  42. package/templates/react-workspace-app/index.ts +1 -1
  43. package/templates/react-workspace-deprecated/index.ts +1 -1
  44. package/templates/react-workspace-lib/index.ts +1 -1
  45. package/artifacts/env-template/public/compositions.3a821cc422bfc1366df5.js +0 -1
  46. package/artifacts/env-template/public/overview.b7f6a9d3a38cbc5072f4.js +0 -5
  47. package/artifacts/env-template/public/static/css/793.fecb3731.css +0 -1
  48. package/package-tar/teambit-react-0.0.703.tgz +0 -0
@@ -7,6 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.prerenderSPAPlugin = void 0;
9
9
 
10
+ function _defineProperty2() {
11
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+
13
+ _defineProperty2 = function () {
14
+ return data;
15
+ };
16
+
17
+ return data;
18
+ }
19
+
10
20
  function _path() {
11
21
  const data = require("path");
12
22
 
@@ -27,16 +37,22 @@ function _prerenderSpaPlugin() {
27
37
  return data;
28
38
  }
29
39
 
30
- const prerenderSPAPlugin = (prerenderRoutes, staticDir) => {
40
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
+
42
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
43
+
44
+ const prerenderSPAPlugin = (prerender, staticDir) => {
31
45
  return new (_prerenderSpaPlugin().default)({
32
46
  staticDir,
33
- routes: prerenderRoutes,
47
+ routes: prerender === null || prerender === void 0 ? void 0 : prerender.routes,
34
48
 
35
49
  postProcess(renderedRoute) {
50
+ if (prerender.postProcess) return prerender.postProcess(renderedRoute, staticDir);
36
51
  renderedRoute.outputPath = (0, _path().join)(staticDir, `${renderedRoute.originalRoute}.html`);
37
52
  return renderedRoute;
38
- }
53
+ },
39
54
 
55
+ server: _objectSpread({}, prerender === null || prerender === void 0 ? void 0 : prerender.server)
40
56
  });
41
57
  };
42
58
 
@@ -1 +1 @@
1
- {"version":3,"sources":["prerender.ts"],"names":["prerenderSPAPlugin","prerenderRoutes","staticDir","PrerenderSPAPlugin","routes","postProcess","renderedRoute","outputPath","originalRoute"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,kBAAkB,GAAG,CAACC,eAAD,EAA4BC,SAA5B,KAAkD;AAClF,SAAO,KAAIC,6BAAJ,EAAuB;AAC5BD,IAAAA,SAD4B;AAE5BE,IAAAA,MAAM,EAAEH,eAFoB;;AAG5BI,IAAAA,WAAW,CAACC,aAAD,EAAqB;AAC9BA,MAAAA,aAAa,CAACC,UAAd,GAA2B,kBAAKL,SAAL,EAAiB,GAAEI,aAAa,CAACE,aAAc,OAA/C,CAA3B;AACA,aAAOF,aAAP;AACD;;AAN2B,GAAvB,CAAP;AAQD,CATM","sourcesContent":["import { join } from 'path';\nimport PrerenderSPAPlugin from '@dreysolano/prerender-spa-plugin';\n\nexport const prerenderSPAPlugin = (prerenderRoutes: string[], staticDir: string) => {\n return new PrerenderSPAPlugin({\n staticDir,\n routes: prerenderRoutes,\n postProcess(renderedRoute: any) {\n renderedRoute.outputPath = join(staticDir, `${renderedRoute.originalRoute}.html`);\n return renderedRoute;\n },\n });\n};\n"]}
1
+ {"version":3,"sources":["prerender.ts"],"names":["prerenderSPAPlugin","prerender","staticDir","PrerenderSPAPlugin","routes","postProcess","renderedRoute","outputPath","originalRoute","server"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAGO,MAAMA,kBAAkB,GAAG,CAACC,SAAD,EAAsCC,SAAtC,KAA4D;AAC5F,SAAO,KAAIC,6BAAJ,EAAuB;AAC5BD,IAAAA,SAD4B;AAE5BE,IAAAA,MAAM,EAAEH,SAAF,aAAEA,SAAF,uBAAEA,SAAS,CAAEG,MAFS;;AAG5BC,IAAAA,WAAW,CAACC,aAAD,EAAqB;AAC9B,UAAIL,SAAS,CAACI,WAAd,EAA2B,OAAOJ,SAAS,CAACI,WAAV,CAAsBC,aAAtB,EAAqCJ,SAArC,CAAP;AAC3BI,MAAAA,aAAa,CAACC,UAAd,GAA2B,kBAAKL,SAAL,EAAiB,GAAEI,aAAa,CAACE,aAAc,OAA/C,CAA3B;AACA,aAAOF,aAAP;AACD,KAP2B;;AAQ5BG,IAAAA,MAAM,oBACDR,SADC,aACDA,SADC,uBACDA,SAAS,CAAEQ,MADV;AARsB,GAAvB,CAAP;AAYD,CAbM","sourcesContent":["import { join } from 'path';\nimport PrerenderSPAPlugin from '@dreysolano/prerender-spa-plugin';\nimport { ReactAppPrerenderOptions } from '../react-app-options';\n\nexport const prerenderSPAPlugin = (prerender: ReactAppPrerenderOptions, staticDir: string) => {\n return new PrerenderSPAPlugin({\n staticDir,\n routes: prerender?.routes,\n postProcess(renderedRoute: any) {\n if (prerender.postProcess) return prerender.postProcess(renderedRoute, staticDir);\n renderedRoute.outputPath = join(staticDir, `${renderedRoute.originalRoute}.html`);\n return renderedRoute;\n },\n server: {\n ...prerender?.server,\n },\n });\n};\n"]}
@@ -1,6 +1,29 @@
1
1
  import { Bundler, DevServer } from '@teambit/bundler';
2
2
  import { WebpackConfigTransformer } from '@teambit/webpack';
3
3
  import { ReactDeployContext } from './deploy-context';
4
+ export declare type ReactAppPrerenderOptions = {
5
+ /**
6
+ * routes to prerender
7
+ */
8
+ routes: string[];
9
+ /**
10
+ * the proxy server you want the prerender headless browser to run on
11
+ */
12
+ server?: {
13
+ proxy: {
14
+ [key: string]: {
15
+ target: 'http://localhost:8000/';
16
+ pathRewrite: {
17
+ [key: string]: string;
18
+ };
19
+ };
20
+ };
21
+ };
22
+ /**
23
+ * Post processing of the prerendered html. This is useful for adding meta tags to the html or changing the file name.
24
+ */
25
+ postProcess?: (prerenderRoute: string, staticDir: string) => string;
26
+ };
4
27
  export declare type ReactAppOptions = {
5
28
  /**
6
29
  * name of the application.
@@ -28,11 +51,11 @@ export declare type ReactAppOptions = {
28
51
  webpackTransformers?: WebpackConfigTransformer[];
29
52
  /**
30
53
  * decide whether to prerender your app. accepts an array of routes. if none, prerender would not apply.
31
- * e.g ['/plugins', '/learn', '/docs/quick-start]
54
+ * e.g ['/plugins', '/learn', '/docs/quick-start]
55
+ * You can also pass a configuration for the proxy, please refer here: https://github.com/webpack/docs/wiki/webpack-dev-server#proxy
56
+ *
32
57
  */
33
- prerender?: {
34
- routes?: string[];
35
- };
58
+ prerender?: ReactAppPrerenderOptions;
36
59
  /**
37
60
  * deploy function.
38
61
  */
@@ -22,9 +22,7 @@ class ReactAppType {
22
22
  }
23
23
 
24
24
  createApp(options) {
25
- var _options$prerender;
26
-
27
- return new (_react().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, (_options$prerender = options.prerender) === null || _options$prerender === void 0 ? void 0 : _options$prerender.routes, options.bundler, options.devServer, options.webpackTransformers, options.deploy, options.favicon);
25
+ return new (_react().ReactApp)(options.name, options.entry, options.portRange || [3000, 4000], this.reactEnv, options.prerender, options.bundler, options.devServer, options.webpackTransformers, options.deploy, options.favicon);
28
26
  }
29
27
 
30
28
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["react.app-type.ts"],"names":["ReactAppType","constructor","name","reactEnv","createApp","options","ReactApp","entry","portRange","prerender","routes","bundler","devServer","webpackTransformers","deploy","favicon"],"mappings":";;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,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;AAAA;;AAClC,WAAO,KAAIC,iBAAJ,EACLD,OAAO,CAACH,IADH,EAELG,OAAO,CAACE,KAFH,EAGLF,OAAO,CAACG,SAAR,IAAqB,CAAC,IAAD,EAAO,IAAP,CAHhB,EAIL,KAAKL,QAJA,wBAKLE,OAAO,CAACI,SALH,uDAKL,mBAAmBC,MALd,EAMLL,OAAO,CAACM,OANH,EAOLN,OAAO,CAACO,SAPH,EAQLP,OAAO,CAACQ,mBARH,EASLR,OAAO,CAACS,MATH,EAULT,OAAO,CAACU,OAVH,CAAP;AAYD;;AAhBmE","sourcesContent":["import { ApplicationType } from '@teambit/application';\nimport { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\nimport { ReactEnv } from '../../react.env';\n\nexport class ReactAppType implements ApplicationType<ReactAppOptions> {\n constructor(readonly name: string, private reactEnv: ReactEnv) {}\n\n createApp(options: ReactAppOptions) {\n return new ReactApp(\n options.name,\n options.entry,\n options.portRange || [3000, 4000],\n this.reactEnv,\n options.prerender?.routes,\n options.bundler,\n options.devServer,\n options.webpackTransformers,\n options.deploy,\n options.favicon\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["react.app-type.ts"],"names":["ReactAppType","constructor","name","reactEnv","createApp","options","ReactApp","entry","portRange","prerender","bundler","devServer","webpackTransformers","deploy","favicon"],"mappings":";;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,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,EACLD,OAAO,CAACH,IADH,EAELG,OAAO,CAACE,KAFH,EAGLF,OAAO,CAACG,SAAR,IAAqB,CAAC,IAAD,EAAO,IAAP,CAHhB,EAIL,KAAKL,QAJA,EAKLE,OAAO,CAACI,SALH,EAMLJ,OAAO,CAACK,OANH,EAOLL,OAAO,CAACM,SAPH,EAQLN,OAAO,CAACO,mBARH,EASLP,OAAO,CAACQ,MATH,EAULR,OAAO,CAACS,OAVH,CAAP;AAYD;;AAhBmE","sourcesContent":["import { ApplicationType } from '@teambit/application';\nimport { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\nimport { ReactEnv } from '../../react.env';\n\nexport class ReactAppType implements ApplicationType<ReactAppOptions> {\n constructor(readonly name: string, private reactEnv: ReactEnv) {}\n\n createApp(options: ReactAppOptions) {\n return new ReactApp(\n options.name,\n options.entry,\n options.portRange || [3000, 4000],\n this.reactEnv,\n options.prerender,\n options.bundler,\n options.devServer,\n options.webpackTransformers,\n options.deploy,\n options.favicon\n );\n }\n}\n"]}
@@ -3,25 +3,27 @@ import { Bundler, DevServer } from '@teambit/bundler';
3
3
  import { WebpackConfigTransformer } from '@teambit/webpack';
4
4
  import { ReactEnv } from '../../react.env';
5
5
  import { ReactAppBuildResult } from './react-build-result';
6
+ import { ReactAppPrerenderOptions } from './react-app-options';
6
7
  import { ReactDeployContext } from '.';
7
8
  export declare class ReactApp implements Application {
8
9
  readonly name: string;
9
10
  readonly entry: string[];
10
11
  readonly portRange: number[];
11
12
  private reactEnv;
12
- readonly prerenderRoutes?: string[] | undefined;
13
+ readonly prerender?: ReactAppPrerenderOptions | undefined;
13
14
  readonly bundler?: Bundler | undefined;
14
15
  readonly devServer?: DevServer | undefined;
15
16
  readonly transformers?: WebpackConfigTransformer[] | undefined;
16
17
  readonly deploy?: ((context: ReactDeployContext) => Promise<void>) | undefined;
17
18
  readonly favicon?: string | undefined;
18
- constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv, prerenderRoutes?: string[] | undefined, bundler?: Bundler | undefined, devServer?: DevServer | undefined, transformers?: WebpackConfigTransformer[] | undefined, deploy?: ((context: ReactDeployContext) => Promise<void>) | undefined, favicon?: string | undefined);
19
+ constructor(name: string, entry: string[], portRange: number[], reactEnv: ReactEnv, prerender?: ReactAppPrerenderOptions | undefined, bundler?: Bundler | undefined, devServer?: DevServer | undefined, transformers?: WebpackConfigTransformer[] | undefined, deploy?: ((context: ReactDeployContext) => Promise<void>) | undefined, favicon?: string | undefined);
19
20
  readonly applicationType = "react-common-js";
20
21
  readonly dir = "public";
21
22
  run(context: AppContext): Promise<number>;
22
23
  build(context: AppBuildContext): Promise<ReactAppBuildResult>;
23
24
  private getBundler;
24
25
  private getDefaultBundler;
26
+ private getESBuildConfig;
25
27
  private getPublicDir;
26
28
  private getDevServerContext;
27
29
  }
@@ -82,12 +82,12 @@ function _webpack() {
82
82
  }
83
83
 
84
84
  class ReactApp {
85
- constructor(name, entry, portRange, reactEnv, prerenderRoutes, bundler, devServer, transformers, deploy, favicon) {
85
+ constructor(name, entry, portRange, reactEnv, prerender, bundler, devServer, transformers, deploy, favicon) {
86
86
  this.name = name;
87
87
  this.entry = entry;
88
88
  this.portRange = portRange;
89
89
  this.reactEnv = reactEnv;
90
- this.prerenderRoutes = prerenderRoutes;
90
+ this.prerender = prerender;
91
91
  this.bundler = bundler;
92
92
  this.devServer = devServer;
93
93
  this.transformers = transformers;
@@ -95,6 +95,58 @@ class ReactApp {
95
95
  this.favicon = favicon;
96
96
  (0, _defineProperty2().default)(this, "applicationType", 'react-common-js');
97
97
  (0, _defineProperty2().default)(this, "dir", 'public');
98
+ (0, _defineProperty2().default)(this, "getESBuildConfig", (isPrerendering = this.prerender) => {
99
+ // We don't want to use esbuild in case of prerendering since the headless browser puppeteer doesn't support
100
+ // the output of esbuild
101
+ if (isPrerendering) {
102
+ return new (_terserWebpackPlugin().default)({
103
+ extractComments: false,
104
+ terserOptions: {
105
+ parse: {
106
+ // We want terser to parse ecma 8 code. However, we don't want it
107
+ // to apply any minification steps that turns valid ecma 5 code
108
+ // into invalid ecma 5 code. This is why the 'compress' and 'output'
109
+ // sections only apply transformations that are ecma 5 safe
110
+ // https://github.com/facebook/create-react-app/pull/4234
111
+ ecma: 8
112
+ },
113
+ compress: {
114
+ ecma: 5,
115
+ warnings: false,
116
+ // Disabled because of an issue with Uglify breaking seemingly valid code:
117
+ // https://github.com/facebook/create-react-app/issues/2376
118
+ // Pending further investigation:
119
+ // https://github.com/mishoo/UglifyJS2/issues/2011
120
+ comparisons: false,
121
+ // Disabled because of an issue with Terser breaking valid code:
122
+ // https://github.com/facebook/create-react-app/issues/5250
123
+ // Pending further investigation:
124
+ // https://github.com/terser-js/terser/issues/120
125
+ inline: 2
126
+ },
127
+ mangle: {
128
+ safari10: true
129
+ },
130
+ output: {
131
+ ecma: 5,
132
+ comments: false,
133
+ // Turned on because emoji and regex is not minified properly using default
134
+ // https://github.com/facebook/create-react-app/issues/2488
135
+ ascii_only: true
136
+ }
137
+ }
138
+ });
139
+ }
140
+
141
+ return new (_terserWebpackPlugin().default)({
142
+ minify: _terserWebpackPlugin().default.esbuildMinify,
143
+ // `terserOptions` options will be passed to `esbuild`
144
+ // Link to options - https://esbuild.github.io/api/#minify
145
+ terserOptions: {
146
+ minify: true
147
+ }
148
+ });
149
+ });
98
150
  }
99
151
 
100
152
  async run(context) {
@@ -180,7 +232,7 @@ class ReactApp {
180
232
  path: staticDir,
181
233
  publicPath: `/`
182
234
  });
183
- if (this.prerenderRoutes) config.addPlugin((0, _plugins().prerenderSPAPlugin)(this.prerenderRoutes, staticDir));
235
+ if (this.prerender) config.addPlugin((0, _plugins().prerenderSPAPlugin)(this.prerender, staticDir));
184
236
 
185
237
  if ((_config$raw$optimizat = config.raw.optimization) !== null && _config$raw$optimizat !== void 0 && _config$raw$optimizat.minimizer) {
186
238
  var _config$raw$optimizat2, _config$raw$optimizat3;
@@ -188,14 +240,7 @@ class ReactApp {
188
240
  (0, _lodash().remove)((_config$raw$optimizat2 = config.raw.optimization) === null || _config$raw$optimizat2 === void 0 ? void 0 : _config$raw$optimizat2.minimizer, minimizer => {
189
241
  return minimizer.constructor.name === 'TerserPlugin';
190
242
  });
191
- (_config$raw$optimizat3 = config.raw.optimization) === null || _config$raw$optimizat3 === void 0 ? void 0 : _config$raw$optimizat3.minimizer.push(new (_terserWebpackPlugin().default)({
192
- minify: _terserWebpackPlugin().default.esbuildMinify,
193
- // `terserOptions` options will be passed to `esbuild`
194
- // Link to options - https://esbuild.github.io/api/#minify
195
- terserOptions: {
196
- minify: true
197
- }
198
- }));
243
+ (_config$raw$optimizat3 = config.raw.optimization) === null || _config$raw$optimizat3 === void 0 ? void 0 : _config$raw$optimizat3.minimizer.push(this.getESBuildConfig());
199
244
  }
200
245
 
201
246
  return config;
@@ -1 +1 @@
1
- {"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","prerenderRoutes","bundler","devServer","transformers","deploy","favicon","run","context","from","to","port","Port","getPort","listen","devServerContext","getDevServerContext","getDevServer","configMutator","addTopLevel","historyApiFallback","index","disableDotRule","raw","output","publicPath","build","htmlConfig","title","templateContent","minify","Object","assign","html","getBundler","publicDir","getPublicDir","dir","getDefaultBundler","capsule","env","outputPath","path","distDir","getCompiler","entries","map","require","resolve","staticDir","bundlerContext","targets","components","component","rootPath","metaData","initiator","envId","id","defaultTransformer","config","addPlugin","optimization","minimizer","push","TerserPlugin","esbuildMinify","terserOptions","applicationType"],"mappings":"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","sourcesContent":["import { join, basename } from 'path';\nimport { Application, AppContext, AppBuildContext } from '@teambit/application';\nimport { Bundler, DevServer, BundlerContext, DevServerContext, BundlerHtmlConfig } from '@teambit/bundler';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { remove } from 'lodash';\nimport TerserPlugin from 'terser-webpack-plugin';\nimport { WebpackConfigTransformer } from '@teambit/webpack';\nimport { ReactEnv } from '../../react.env';\nimport { prerenderSPAPlugin } from './plugins';\nimport { ReactAppBuildResult } from './react-build-result';\nimport { html } from '../../webpack';\nimport { ReactDeployContext } from '.';\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 prerenderRoutes?: string[],\n readonly bundler?: Bundler,\n readonly devServer?: DevServer,\n readonly transformers?: WebpackConfigTransformer[],\n readonly deploy?: (context: ReactDeployContext) => Promise<void>,\n readonly favicon?: string\n ) {}\n readonly applicationType = 'react-common-js';\n readonly dir = 'public';\n async run(context: AppContext): Promise<number> {\n const [from, to] = this.portRange;\n const port = await Port.getPort(from, to);\n if (this.devServer) {\n await this.devServer.listen(port);\n return port;\n }\n const devServerContext = this.getDevServerContext(context);\n const devServer = this.reactEnv.getDevServer(devServerContext, [\n (configMutator) => {\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 await devServer.listen(port);\n return port;\n }\n\n async build(context: AppBuildContext): Promise<ReactAppBuildResult> {\n const htmlConfig: BundlerHtmlConfig[] = [\n {\n title: context.name,\n templateContent: html(context.name),\n minify: false,\n favicon: this.favicon,\n // filename: ''.html`,\n },\n ];\n Object.assign(context, {\n html: htmlConfig,\n });\n const bundler = await this.getBundler(context);\n await bundler.run();\n return { publicDir: `${this.getPublicDir()}/${this.dir}` };\n }\n\n private getBundler(context: AppBuildContext) {\n if (this.bundler) return this.bundler;\n return this.getDefaultBundler(context);\n }\n private async getDefaultBundler(context: AppBuildContext) {\n const { capsule } = context;\n const reactEnv: ReactEnv = context.env;\n const publicDir = this.getPublicDir();\n const outputPath = join(capsule.path, publicDir);\n const { distDir } = reactEnv.getCompiler();\n const entries = this.entry.map((entry) => require.resolve(`${capsule.path}/${distDir}/${basename(entry)}`));\n const staticDir = join(outputPath, this.dir);\n\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [\n {\n components: [capsule?.component],\n entries,\n outputPath,\n },\n ],\n entry: [],\n rootPath: '/',\n metaData: {\n initiator: `building app: ${context.name}`,\n envId: context.id,\n },\n });\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const config = configMutator.addTopLevel('output', { path: staticDir, publicPath: `/` });\n if (this.prerenderRoutes) config.addPlugin(prerenderSPAPlugin(this.prerenderRoutes, staticDir));\n if (config.raw.optimization?.minimizer) {\n remove(config.raw.optimization?.minimizer, (minimizer) => {\n return minimizer.constructor.name === 'TerserPlugin';\n });\n config.raw.optimization?.minimizer.push(\n new TerserPlugin({\n minify: TerserPlugin.esbuildMinify,\n // `terserOptions` options will be passed to `esbuild`\n // Link to options - https://esbuild.github.io/api/#minify\n terserOptions: {\n minify: true,\n },\n })\n );\n }\n return config;\n };\n const transformers = [defaultTransformer, ...(this.transformers ?? [])];\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, transformers);\n return bundler;\n }\n\n private getPublicDir() {\n return join(this.applicationType, this.name);\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 favicon: this.favicon,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["react.application.ts"],"names":["ReactApp","constructor","name","entry","portRange","reactEnv","prerender","bundler","devServer","transformers","deploy","favicon","isPrerendering","TerserPlugin","extractComments","terserOptions","parse","ecma","compress","warnings","comparisons","inline","mangle","safari10","output","comments","ascii_only","minify","esbuildMinify","run","context","from","to","port","Port","getPort","listen","devServerContext","getDevServerContext","getDevServer","configMutator","addTopLevel","historyApiFallback","index","disableDotRule","raw","publicPath","build","htmlConfig","title","templateContent","Object","assign","html","getBundler","publicDir","getPublicDir","dir","getDefaultBundler","capsule","env","outputPath","path","distDir","getCompiler","entries","map","require","resolve","staticDir","bundlerContext","targets","components","component","rootPath","metaData","initiator","envId","id","defaultTransformer","config","addPlugin","optimization","minimizer","push","getESBuildConfig","applicationType"],"mappings":"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","sourcesContent":["import { join, basename } from 'path';\nimport { Application, AppContext, AppBuildContext } from '@teambit/application';\nimport { Bundler, DevServer, BundlerContext, DevServerContext, BundlerHtmlConfig } from '@teambit/bundler';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { remove } from 'lodash';\nimport TerserPlugin from 'terser-webpack-plugin';\nimport { WebpackConfigTransformer } from '@teambit/webpack';\nimport { ReactEnv } from '../../react.env';\nimport { prerenderSPAPlugin } from './plugins';\nimport { ReactAppBuildResult } from './react-build-result';\nimport { ReactAppPrerenderOptions } from './react-app-options';\nimport { html } from '../../webpack';\nimport { ReactDeployContext } from '.';\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 prerender?: ReactAppPrerenderOptions,\n readonly bundler?: Bundler,\n readonly devServer?: DevServer,\n readonly transformers?: WebpackConfigTransformer[],\n readonly deploy?: (context: ReactDeployContext) => Promise<void>,\n readonly favicon?: string\n ) {}\n readonly applicationType = 'react-common-js';\n readonly dir = 'public';\n async run(context: AppContext): Promise<number> {\n const [from, to] = this.portRange;\n const port = await Port.getPort(from, to);\n if (this.devServer) {\n await this.devServer.listen(port);\n return port;\n }\n const devServerContext = this.getDevServerContext(context);\n const devServer = this.reactEnv.getDevServer(devServerContext, [\n (configMutator) => {\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 await devServer.listen(port);\n return port;\n }\n\n async build(context: AppBuildContext): Promise<ReactAppBuildResult> {\n const htmlConfig: BundlerHtmlConfig[] = [\n {\n title: context.name,\n templateContent: html(context.name),\n minify: false,\n favicon: this.favicon,\n // filename: ''.html`,\n },\n ];\n Object.assign(context, {\n html: htmlConfig,\n });\n const bundler = await this.getBundler(context);\n await bundler.run();\n return { publicDir: `${this.getPublicDir()}/${this.dir}` };\n }\n\n private getBundler(context: AppBuildContext) {\n if (this.bundler) return this.bundler;\n return this.getDefaultBundler(context);\n }\n private async getDefaultBundler(context: AppBuildContext) {\n const { capsule } = context;\n const reactEnv: ReactEnv = context.env;\n const publicDir = this.getPublicDir();\n const outputPath = join(capsule.path, publicDir);\n const { distDir } = reactEnv.getCompiler();\n const entries = this.entry.map((entry) => require.resolve(`${capsule.path}/${distDir}/${basename(entry)}`));\n const staticDir = join(outputPath, this.dir);\n\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [\n {\n components: [capsule?.component],\n entries,\n outputPath,\n },\n ],\n entry: [],\n rootPath: '/',\n metaData: {\n initiator: `building app: ${context.name}`,\n envId: context.id,\n },\n });\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const config = configMutator.addTopLevel('output', { path: staticDir, publicPath: `/` });\n if (this.prerender) config.addPlugin(prerenderSPAPlugin(this.prerender, staticDir));\n if (config.raw.optimization?.minimizer) {\n remove(config.raw.optimization?.minimizer, (minimizer) => {\n return minimizer.constructor.name === 'TerserPlugin';\n });\n\n config.raw.optimization?.minimizer.push(this.getESBuildConfig());\n }\n\n return config;\n };\n const transformers = [defaultTransformer, ...(this.transformers ?? [])];\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, transformers);\n return bundler;\n }\n private getESBuildConfig = (isPrerendering = this.prerender) => {\n // We don't want to use esbuild in case of prerendering since the headless browser puppeteer doesn't support\n // the output of esbuild\n\n if (isPrerendering) {\n return new TerserPlugin({\n extractComments: false,\n terserOptions: {\n parse: {\n // We want terser to parse ecma 8 code. However, we don't want it\n // to apply any minification steps that turns valid ecma 5 code\n // into invalid ecma 5 code. This is why the 'compress' and 'output'\n // sections only apply transformations that are ecma 5 safe\n // https://github.com/facebook/create-react-app/pull/4234\n ecma: 8,\n },\n compress: {\n ecma: 5,\n warnings: false,\n // Disabled because of an issue with Uglify breaking seemingly valid code:\n // https://github.com/facebook/create-react-app/issues/2376\n // Pending further investigation:\n // https://github.com/mishoo/UglifyJS2/issues/2011\n comparisons: false,\n // Disabled because of an issue with Terser breaking valid code:\n // https://github.com/facebook/create-react-app/issues/5250\n // Pending further investigation:\n // https://github.com/terser-js/terser/issues/120\n inline: 2,\n },\n mangle: {\n safari10: true,\n },\n output: {\n ecma: 5,\n comments: false,\n // Turned on because emoji and regex is not minified properly using default\n // https://github.com/facebook/create-react-app/issues/2488\n ascii_only: true,\n },\n },\n });\n }\n return new TerserPlugin({\n minify: TerserPlugin.esbuildMinify,\n // `terserOptions` options will be passed to `esbuild`\n // Link to options - https://esbuild.github.io/api/#minify\n terserOptions: {\n minify: true,\n },\n });\n };\n\n private getPublicDir() {\n return join(this.applicationType, this.name);\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 favicon: this.favicon,\n });\n }\n}\n"]}
@@ -23,7 +23,7 @@ const reactWorkspaceTemplate = {
23
23
  generateFiles: async context => {
24
24
  return (0, _workspaceCommon().generateFiles)(context);
25
25
  },
26
- importComponents: () => {
26
+ fork: () => {
27
27
  return [// {
28
28
  // id: 'teambit.react/templates/envs/my-react',
29
29
  // targetName: 'envs/my-react',
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["reactWorkspaceTemplate","name","description","generateFiles","context","importComponents"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,sBAAyC,GAAG;AACvDC,EAAAA,IAAI,EAAE,OADiD;AAEvDC,EAAAA,WAAW,EAAE,sCAF0C;AAGvDC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GALsD;AAMvDC,EAAAA,gBAAgB,EAAE,MAAM;AACtB,WAAO,CACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbK,KAAP;AAeD;AAtBsD,CAAlD","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const reactWorkspaceTemplate: WorkspaceTemplate = {\n name: 'react',\n description: 'React workspace with demo components',\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n importComponents: () => {\n return [\n // {\n // id: 'teambit.react/templates/envs/my-react',\n // targetName: 'envs/my-react',\n // path: 'demo/envs/my-react',\n // },\n // { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },\n // { id: 'teambit.react/templates/ui/heading', targetName: 'ui/heading', path: 'demo/ui/heading' },\n // { id: 'teambit.react/templates/ui/card', targetName: 'ui/card', path: 'demo/ui/card' },\n // {\n // id: 'teambit.react/templates/pages/welcome',\n // targetName: 'pages/welcome',\n // path: 'demo/pages/welcome',\n // },\n ];\n },\n};\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["reactWorkspaceTemplate","name","description","generateFiles","context","fork"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,sBAAyC,GAAG;AACvDC,EAAAA,IAAI,EAAE,OADiD;AAEvDC,EAAAA,WAAW,EAAE,sCAF0C;AAGvDC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GALsD;AAMvDC,EAAAA,IAAI,EAAE,MAAM;AACV,WAAO,CACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbK,KAAP;AAeD;AAtBsD,CAAlD","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const reactWorkspaceTemplate: WorkspaceTemplate = {\n name: 'react',\n description: 'React workspace with demo components',\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n fork: () => {\n return [\n // {\n // id: 'teambit.react/templates/envs/my-react',\n // targetName: 'envs/my-react',\n // path: 'demo/envs/my-react',\n // },\n // { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },\n // { id: 'teambit.react/templates/ui/heading', targetName: 'ui/heading', path: 'demo/ui/heading' },\n // { id: 'teambit.react/templates/ui/card', targetName: 'ui/card', path: 'demo/ui/card' },\n // {\n // id: 'teambit.react/templates/pages/welcome',\n // targetName: 'pages/welcome',\n // path: 'demo/pages/welcome',\n // },\n ];\n },\n};\n"]}
@@ -24,7 +24,7 @@ const reactWorkspaceAppTemplate = {
24
24
  generateFiles: async context => {
25
25
  return (0, _workspaceCommon().generateFiles)(context);
26
26
  },
27
- importComponents: () => {
27
+ fork: () => {
28
28
  return [{
29
29
  id: 'teambit.react/templates/apps/my-app',
30
30
  path: 'apps/my-app'
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["reactWorkspaceAppTemplate","name","description","hidden","generateFiles","context","importComponents","id","path"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,yBAA4C,GAAG;AAC1DC,EAAAA,IAAI,EAAE,WADoD;AAE1DC,EAAAA,WAAW,EAAE,0CAF6C;AAG1DC,EAAAA,MAAM,EAAE,IAHkD;AAI1DC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GANyD;AAO1DC,EAAAA,gBAAgB,EAAE,MAAM;AACtB,WAAO,CACL;AAAEC,MAAAA,EAAE,EAAE,qCAAN;AAA6CC,MAAAA,IAAI,EAAE;AAAnD,KADK,EAEL;AAAED,MAAAA,EAAE,EAAE,uCAAN;AAA+CC,MAAAA,IAAI,EAAE;AAArD,KAFK,EAGL;AAAED,MAAAA,EAAE,EAAE,sCAAN;AAA8CC,MAAAA,IAAI,EAAE;AAApD,KAHK,EAIL;AAAED,MAAAA,EAAE,EAAE,uCAAN;AAA+CC,MAAAA,IAAI,EAAE;AAArD,KAJK,EAKL;AAAED,MAAAA,EAAE,EAAE,oCAAN;AAA4CC,MAAAA,IAAI,EAAE;AAAlD,KALK,CAAP;AAOD;AAfyD,CAArD","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const reactWorkspaceAppTemplate: WorkspaceTemplate = {\n name: 'react-app',\n description: 'EXPERIMENTAL. react workspace for an app',\n hidden: true,\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n importComponents: () => {\n return [\n { id: 'teambit.react/templates/apps/my-app', path: 'apps/my-app' },\n { id: 'teambit.react/templates/envs/my-react', path: 'envs/my-react' },\n { id: 'teambit.react/templates/themes/theme', path: 'themes/theme' },\n { id: 'teambit.react/templates/styles/colors', path: 'styles/colors' },\n { id: 'teambit.react/templates/ui/heading', path: 'ui/heading' },\n ];\n },\n};\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["reactWorkspaceAppTemplate","name","description","hidden","generateFiles","context","fork","id","path"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,yBAA4C,GAAG;AAC1DC,EAAAA,IAAI,EAAE,WADoD;AAE1DC,EAAAA,WAAW,EAAE,0CAF6C;AAG1DC,EAAAA,MAAM,EAAE,IAHkD;AAI1DC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GANyD;AAO1DC,EAAAA,IAAI,EAAE,MAAM;AACV,WAAO,CACL;AAAEC,MAAAA,EAAE,EAAE,qCAAN;AAA6CC,MAAAA,IAAI,EAAE;AAAnD,KADK,EAEL;AAAED,MAAAA,EAAE,EAAE,uCAAN;AAA+CC,MAAAA,IAAI,EAAE;AAArD,KAFK,EAGL;AAAED,MAAAA,EAAE,EAAE,sCAAN;AAA8CC,MAAAA,IAAI,EAAE;AAApD,KAHK,EAIL;AAAED,MAAAA,EAAE,EAAE,uCAAN;AAA+CC,MAAAA,IAAI,EAAE;AAArD,KAJK,EAKL;AAAED,MAAAA,EAAE,EAAE,oCAAN;AAA4CC,MAAAA,IAAI,EAAE;AAAlD,KALK,CAAP;AAOD;AAfyD,CAArD","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const reactWorkspaceAppTemplate: WorkspaceTemplate = {\n name: 'react-app',\n description: 'EXPERIMENTAL. react workspace for an app',\n hidden: true,\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n fork: () => {\n return [\n { id: 'teambit.react/templates/apps/my-app', path: 'apps/my-app' },\n { id: 'teambit.react/templates/envs/my-react', path: 'envs/my-react' },\n { id: 'teambit.react/templates/themes/theme', path: 'themes/theme' },\n { id: 'teambit.react/templates/styles/colors', path: 'styles/colors' },\n { id: 'teambit.react/templates/ui/heading', path: 'ui/heading' },\n ];\n },\n};\n"]}
@@ -24,7 +24,7 @@ const deprecatedReactWorkspaceTemplate = {
24
24
  generateFiles: async context => {
25
25
  return (0, _workspaceCommon().generateFiles)(context);
26
26
  },
27
- importComponents: () => {
27
+ fork: () => {
28
28
  return [{
29
29
  id: 'teambit.react/templates/envs/my-react',
30
30
  targetName: 'envs/my-react',
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["deprecatedReactWorkspaceTemplate","name","description","hidden","generateFiles","context","importComponents","id","targetName","path"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,gCAAmD,GAAG;AACjEC,EAAAA,IAAI,EAAE,iBAD2D;AAEjEC,EAAAA,WAAW,EAAE,sCAFoD;AAGjEC,EAAAA,MAAM,EAAE,IAHyD;AAIjEC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GANgE;AAOjEC,EAAAA,gBAAgB,EAAE,MAAM;AACtB,WAAO,CACL;AACEC,MAAAA,EAAE,EAAE,uCADN;AAEEC,MAAAA,UAAU,EAAE,eAFd;AAGEC,MAAAA,IAAI,EAAE;AAHR,KADK,EAML;AAAEF,MAAAA,EAAE,EAAE,iCAAN;AAAyCC,MAAAA,UAAU,EAAE,SAArD;AAAgEC,MAAAA,IAAI,EAAE;AAAtE,KANK,EAOL;AAAEF,MAAAA,EAAE,EAAE,oCAAN;AAA4CC,MAAAA,UAAU,EAAE,YAAxD;AAAsEC,MAAAA,IAAI,EAAE;AAA5E,KAPK,EAQL;AAAEF,MAAAA,EAAE,EAAE,iCAAN;AAAyCC,MAAAA,UAAU,EAAE,SAArD;AAAgEC,MAAAA,IAAI,EAAE;AAAtE,KARK,EASL;AACEF,MAAAA,EAAE,EAAE,uCADN;AAEEC,MAAAA,UAAU,EAAE,eAFd;AAGEC,MAAAA,IAAI,EAAE;AAHR,KATK,CAAP;AAeD;AAvBgE,CAA5D","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const deprecatedReactWorkspaceTemplate: WorkspaceTemplate = {\n name: 'react-workspace',\n description: 'React workspace with demo components',\n hidden: true,\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n importComponents: () => {\n return [\n {\n id: 'teambit.react/templates/envs/my-react',\n targetName: 'envs/my-react',\n path: 'demo/envs/my-react',\n },\n { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },\n { id: 'teambit.react/templates/ui/heading', targetName: 'ui/heading', path: 'demo/ui/heading' },\n { id: 'teambit.react/templates/ui/card', targetName: 'ui/card', path: 'demo/ui/card' },\n {\n id: 'teambit.react/templates/pages/welcome',\n targetName: 'pages/welcome',\n path: 'demo/pages/welcome',\n },\n ];\n },\n};\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["deprecatedReactWorkspaceTemplate","name","description","hidden","generateFiles","context","fork","id","targetName","path"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,gCAAmD,GAAG;AACjEC,EAAAA,IAAI,EAAE,iBAD2D;AAEjEC,EAAAA,WAAW,EAAE,sCAFoD;AAGjEC,EAAAA,MAAM,EAAE,IAHyD;AAIjEC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GANgE;AAOjEC,EAAAA,IAAI,EAAE,MAAM;AACV,WAAO,CACL;AACEC,MAAAA,EAAE,EAAE,uCADN;AAEEC,MAAAA,UAAU,EAAE,eAFd;AAGEC,MAAAA,IAAI,EAAE;AAHR,KADK,EAML;AAAEF,MAAAA,EAAE,EAAE,iCAAN;AAAyCC,MAAAA,UAAU,EAAE,SAArD;AAAgEC,MAAAA,IAAI,EAAE;AAAtE,KANK,EAOL;AAAEF,MAAAA,EAAE,EAAE,oCAAN;AAA4CC,MAAAA,UAAU,EAAE,YAAxD;AAAsEC,MAAAA,IAAI,EAAE;AAA5E,KAPK,EAQL;AAAEF,MAAAA,EAAE,EAAE,iCAAN;AAAyCC,MAAAA,UAAU,EAAE,SAArD;AAAgEC,MAAAA,IAAI,EAAE;AAAtE,KARK,EASL;AACEF,MAAAA,EAAE,EAAE,uCADN;AAEEC,MAAAA,UAAU,EAAE,eAFd;AAGEC,MAAAA,IAAI,EAAE;AAHR,KATK,CAAP;AAeD;AAvBgE,CAA5D","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const deprecatedReactWorkspaceTemplate: WorkspaceTemplate = {\n name: 'react-workspace',\n description: 'React workspace with demo components',\n hidden: true,\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n fork: () => {\n return [\n {\n id: 'teambit.react/templates/envs/my-react',\n targetName: 'envs/my-react',\n path: 'demo/envs/my-react',\n },\n { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },\n { id: 'teambit.react/templates/ui/heading', targetName: 'ui/heading', path: 'demo/ui/heading' },\n { id: 'teambit.react/templates/ui/card', targetName: 'ui/card', path: 'demo/ui/card' },\n {\n id: 'teambit.react/templates/pages/welcome',\n targetName: 'pages/welcome',\n path: 'demo/pages/welcome',\n },\n ];\n },\n};\n"]}
@@ -24,7 +24,7 @@ const reactWorkspaceLibTemplate = {
24
24
  generateFiles: async context => {
25
25
  return (0, _workspaceCommon().generateFiles)(context);
26
26
  },
27
- importComponents: () => {
27
+ fork: () => {
28
28
  return [{
29
29
  id: 'teambit.react/templates/envs/my-react',
30
30
  targetName: 'envs/my-react',
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["reactWorkspaceLibTemplate","name","description","hidden","generateFiles","context","importComponents","id","targetName","path"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,yBAA4C,GAAG;AAC1DC,EAAAA,IAAI,EAAE,WADoD;AAE1DC,EAAAA,WAAW,EAAE,uDAF6C;AAG1DC,EAAAA,MAAM,EAAE,IAHkD;AAI1DC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GANyD;AAO1DC,EAAAA,gBAAgB,EAAE,MAAM;AACtB,WAAO,CACL;AAAEC,MAAAA,EAAE,EAAE,uCAAN;AAA+CC,MAAAA,UAAU,EAAE,eAA3D;AAA4EC,MAAAA,IAAI,EAAE;AAAlF,KADK,EAEL;AAAEF,MAAAA,EAAE,EAAE,iCAAN;AAAyCC,MAAAA,UAAU,EAAE,SAArD;AAAgEC,MAAAA,IAAI,EAAE;AAAtE,KAFK,EAGL;AAAEF,MAAAA,EAAE,EAAE,oCAAN;AAA4CC,MAAAA,UAAU,EAAE,YAAxD;AAAsEC,MAAAA,IAAI,EAAE;AAA5E,KAHK,EAIL;AAAEF,MAAAA,EAAE,EAAE,iCAAN;AAAyCC,MAAAA,UAAU,EAAE,SAArD;AAAgEC,MAAAA,IAAI,EAAE;AAAtE,KAJK,EAKL;AAAEF,MAAAA,EAAE,EAAE,uCAAN;AAA+CC,MAAAA,UAAU,EAAE,eAA3D;AAA4EC,MAAAA,IAAI,EAAE;AAAlF,KALK,EAML;AAAEF,MAAAA,EAAE,EAAE,sCAAN;AAA8CC,MAAAA,UAAU,EAAE,cAA1D;AAA0EC,MAAAA,IAAI,EAAE;AAAhF,KANK,CAAP;AAQD;AAhByD,CAArD","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const reactWorkspaceLibTemplate: WorkspaceTemplate = {\n name: 'react-lib',\n description: 'EXPERIMENTAL. react workspace for a component library',\n hidden: true,\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n importComponents: () => {\n return [\n { id: 'teambit.react/templates/envs/my-react', targetName: 'envs/my-react', path: 'demo/envs/my-react' },\n { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },\n { id: 'teambit.react/templates/ui/heading', targetName: 'ui/heading', path: 'demo/ui/heading' },\n { id: 'teambit.react/templates/ui/card', targetName: 'ui/card', path: 'demo/ui/card' },\n { id: 'teambit.react/templates/styles/colors', targetName: 'styles/colors', path: 'demo/styles/colors' },\n { id: 'teambit.react/templates/themes/theme', targetName: 'themes/theme', path: 'demo/themes/theme' },\n ];\n },\n};\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["reactWorkspaceLibTemplate","name","description","hidden","generateFiles","context","fork","id","targetName","path"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,yBAA4C,GAAG;AAC1DC,EAAAA,IAAI,EAAE,WADoD;AAE1DC,EAAAA,WAAW,EAAE,uDAF6C;AAG1DC,EAAAA,MAAM,EAAE,IAHkD;AAI1DC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GANyD;AAO1DC,EAAAA,IAAI,EAAE,MAAM;AACV,WAAO,CACL;AAAEC,MAAAA,EAAE,EAAE,uCAAN;AAA+CC,MAAAA,UAAU,EAAE,eAA3D;AAA4EC,MAAAA,IAAI,EAAE;AAAlF,KADK,EAEL;AAAEF,MAAAA,EAAE,EAAE,iCAAN;AAAyCC,MAAAA,UAAU,EAAE,SAArD;AAAgEC,MAAAA,IAAI,EAAE;AAAtE,KAFK,EAGL;AAAEF,MAAAA,EAAE,EAAE,oCAAN;AAA4CC,MAAAA,UAAU,EAAE,YAAxD;AAAsEC,MAAAA,IAAI,EAAE;AAA5E,KAHK,EAIL;AAAEF,MAAAA,EAAE,EAAE,iCAAN;AAAyCC,MAAAA,UAAU,EAAE,SAArD;AAAgEC,MAAAA,IAAI,EAAE;AAAtE,KAJK,EAKL;AAAEF,MAAAA,EAAE,EAAE,uCAAN;AAA+CC,MAAAA,UAAU,EAAE,eAA3D;AAA4EC,MAAAA,IAAI,EAAE;AAAlF,KALK,EAML;AAAEF,MAAAA,EAAE,EAAE,sCAAN;AAA8CC,MAAAA,UAAU,EAAE,cAA1D;AAA0EC,MAAAA,IAAI,EAAE;AAAhF,KANK,CAAP;AAQD;AAhByD,CAArD","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const reactWorkspaceLibTemplate: WorkspaceTemplate = {\n name: 'react-lib',\n description: 'EXPERIMENTAL. react workspace for a component library',\n hidden: true,\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n fork: () => {\n return [\n { id: 'teambit.react/templates/envs/my-react', targetName: 'envs/my-react', path: 'demo/envs/my-react' },\n { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },\n { id: 'teambit.react/templates/ui/heading', targetName: 'ui/heading', path: 'demo/ui/heading' },\n { id: 'teambit.react/templates/ui/card', targetName: 'ui/card', path: 'demo/ui/card' },\n { id: 'teambit.react/templates/styles/colors', targetName: 'styles/colors', path: 'demo/styles/colors' },\n { id: 'teambit.react/templates/themes/theme', targetName: 'themes/theme', path: 'demo/themes/theme' },\n ];\n },\n};\n"]}
package/package.json CHANGED
@@ -1,16 +1,15 @@
1
1
  {
2
2
  "name": "@teambit/react",
3
- "version": "0.0.703",
3
+ "version": "0.0.706",
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.703"
9
+ "version": "0.0.706"
10
10
  },
11
11
  "dependencies": {
12
12
  "react-error-boundary": "^3.0.0",
13
- "@teambit/harmony": "0.2.11",
14
13
  "fs-extra": "10.0.0",
15
14
  "lodash": "4.17.21",
16
15
  "typescript": "4.4.2",
@@ -78,42 +77,43 @@
78
77
  "@svgr/webpack": "5.5.0",
79
78
  "core-js": "^3.0.0",
80
79
  "@teambit/base-ui.utils.composer": "1.0.0",
80
+ "@teambit/harmony": "0.3.3",
81
81
  "@teambit/react.instructions.react.adding-compositions": "0.0.6",
82
82
  "@teambit/react.instructions.react.adding-tests": "0.0.6",
83
83
  "@teambit/design.ui.pages.standalone-not-found-page": "0.0.356",
84
- "@teambit/preview": "0.0.703",
84
+ "@teambit/preview": "0.0.706",
85
85
  "@teambit/react.ui.error-fallback": "0.0.111",
86
86
  "@teambit/react.ui.loader-fallback": "0.0.89",
87
87
  "@teambit/compositions.ui.hooks.use-composition": "0.0.163",
88
88
  "@teambit/design.ui.input.option-button": "0.0.26",
89
89
  "@teambit/design.ui.tooltip": "0.0.352",
90
- "@teambit/builder": "0.0.703",
91
- "@teambit/bundler": "0.0.703",
92
- "@teambit/compiler": "0.0.703",
90
+ "@teambit/builder": "0.0.706",
91
+ "@teambit/bundler": "0.0.706",
92
+ "@teambit/compiler": "0.0.706",
93
93
  "@teambit/component.modules.component-url": "0.0.124",
94
- "@teambit/component": "0.0.703",
95
- "@teambit/envs": "0.0.703",
96
- "@teambit/eslint": "0.0.703",
97
- "@teambit/formatter": "0.0.254",
98
- "@teambit/jest": "0.0.703",
99
- "@teambit/linter": "0.0.703",
100
- "@teambit/pkg": "0.0.703",
101
- "@teambit/prettier": "0.0.254",
94
+ "@teambit/component": "0.0.706",
95
+ "@teambit/envs": "0.0.706",
96
+ "@teambit/eslint": "0.0.706",
97
+ "@teambit/formatter": "0.0.257",
98
+ "@teambit/jest": "0.0.706",
99
+ "@teambit/linter": "0.0.706",
100
+ "@teambit/pkg": "0.0.706",
101
+ "@teambit/prettier": "0.0.257",
102
102
  "@teambit/react.ui.highlighter.component-metadata.bit-component-meta": "0.0.21",
103
- "@teambit/schema": "0.0.703",
104
- "@teambit/tester": "0.0.703",
105
- "@teambit/typescript": "0.0.703",
106
- "@teambit/webpack": "0.0.703",
107
- "@teambit/workspace": "0.0.703",
108
- "@teambit/application": "0.0.345",
109
- "@teambit/cli": "0.0.467",
110
- "@teambit/dependency-resolver": "0.0.703",
111
- "@teambit/generator": "0.0.703",
112
- "@teambit/graphql": "0.0.703",
103
+ "@teambit/schema": "0.0.706",
104
+ "@teambit/tester": "0.0.706",
105
+ "@teambit/typescript": "0.0.706",
106
+ "@teambit/webpack": "0.0.706",
107
+ "@teambit/workspace": "0.0.706",
108
+ "@teambit/application": "0.0.348",
109
+ "@teambit/cli": "0.0.470",
110
+ "@teambit/dependency-resolver": "0.0.706",
111
+ "@teambit/generator": "0.0.706",
112
+ "@teambit/graphql": "0.0.706",
113
113
  "@teambit/react.ui.highlighter-provider": "0.0.189",
114
- "@teambit/compositions": "0.0.703",
115
- "@teambit/ui": "0.0.703",
116
- "@teambit/react.eslint-config-bit-react": "0.0.543",
114
+ "@teambit/compositions": "0.0.706",
115
+ "@teambit/ui": "0.0.706",
116
+ "@teambit/react.eslint-config-bit-react": "0.0.545",
117
117
  "@teambit/webpack.modules.generate-expose-loaders": "0.0.3",
118
118
  "@teambit/webpack.modules.generate-externals": "0.0.3",
119
119
  "@teambit/webpack.modules.config-mutator": "0.0.137",
@@ -123,7 +123,7 @@
123
123
  "@teambit/webpack.modules.style-regexps": "0.0.132",
124
124
  "@teambit/component-id": "0.0.402",
125
125
  "@teambit/toolbox.network.get-port": "0.0.113",
126
- "@teambit/config": "0.0.480"
126
+ "@teambit/config": "0.0.483"
127
127
  },
128
128
  "devDependencies": {
129
129
  "@types/react": "^17.0.8",
@@ -142,7 +142,7 @@
142
142
  "@teambit/react.content.react-overview": "1.95.0"
143
143
  },
144
144
  "peerDependencies": {
145
- "@teambit/legacy": "1.0.245",
145
+ "@teambit/legacy": "1.0.247",
146
146
  "react-dom": "^16.8.0 || ^17.0.0",
147
147
  "react": "^16.8.0 || ^17.0.0"
148
148
  },
@@ -206,7 +206,7 @@
206
206
  "@types/jest": "^26.0.0"
207
207
  },
208
208
  "peerDependencies": {
209
- "@teambit/legacy": "1.0.245",
209
+ "@teambit/legacy": "1.0.247",
210
210
  "react-dom": "^16.8.0 || ^17.0.0",
211
211
  "react": "^16.8.0 || ^17.0.0"
212
212
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.react_react@0.0.703/dist/react.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.react_react@0.0.703/dist/react.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.react_react@0.0.706/dist/react.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.react_react@0.0.706/dist/react.docs.mdx')]
@@ -7,7 +7,7 @@ export const reactWorkspaceTemplate: WorkspaceTemplate = {
7
7
  generateFiles: async (context: WorkspaceContext) => {
8
8
  return generateCommonFiles(context);
9
9
  },
10
- importComponents: () => {
10
+ fork: () => {
11
11
  return [
12
12
  // {
13
13
  // id: 'teambit.react/templates/envs/my-react',
@@ -8,7 +8,7 @@ export const reactWorkspaceAppTemplate: WorkspaceTemplate = {
8
8
  generateFiles: async (context: WorkspaceContext) => {
9
9
  return generateCommonFiles(context);
10
10
  },
11
- importComponents: () => {
11
+ fork: () => {
12
12
  return [
13
13
  { id: 'teambit.react/templates/apps/my-app', path: 'apps/my-app' },
14
14
  { id: 'teambit.react/templates/envs/my-react', path: 'envs/my-react' },
@@ -8,7 +8,7 @@ export const deprecatedReactWorkspaceTemplate: WorkspaceTemplate = {
8
8
  generateFiles: async (context: WorkspaceContext) => {
9
9
  return generateCommonFiles(context);
10
10
  },
11
- importComponents: () => {
11
+ fork: () => {
12
12
  return [
13
13
  {
14
14
  id: 'teambit.react/templates/envs/my-react',
@@ -8,7 +8,7 @@ export const reactWorkspaceLibTemplate: WorkspaceTemplate = {
8
8
  generateFiles: async (context: WorkspaceContext) => {
9
9
  return generateCommonFiles(context);
10
10
  },
11
- importComponents: () => {
11
+ fork: () => {
12
12
  return [
13
13
  { id: 'teambit.react/templates/envs/my-react', targetName: 'envs/my-react', path: 'demo/envs/my-react' },
14
14
  { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_teambit_legacy=self.webpackChunk_teambit_legacy||[]).push([[384],{73249:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{var _home_circleci_bit_bit_node_modules_teambit_preview_dist_preview_preview_runtime_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(74649),_home_circleci_bit_bit_node_modules_teambit_harmony_dist_index_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(16738),_home_circleci_bit_bit_node_modules_teambit_react_dist_mount_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(677);(0,_home_circleci_bit_bit_node_modules_teambit_preview_dist_preview_preview_runtime_js__WEBPACK_IMPORTED_MODULE_0__.Bu)("compositions",{mainModule:_home_circleci_bit_bit_node_modules_teambit_react_dist_mount_js__WEBPACK_IMPORTED_MODULE_2__,isSplitComponentBundle:!0,componentMap:{}})}},__webpack_require__=>{var __webpack_exec__=moduleId=>__webpack_require__(__webpack_require__.s=moduleId);__webpack_require__.O(0,[283,750,677],()=>__webpack_exec__(73249));var __webpack_exports__=__webpack_require__.O()}]);