@teambit/react 1.0.667 → 1.0.668

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 (71) hide show
  1. package/apps/web/compute-results.ts +2 -2
  2. package/apps/web/deploy-context.ts +2 -2
  3. package/apps/web/react-app-options.ts +3 -3
  4. package/apps/web/react-build-result.ts +1 -1
  5. package/apps/web/react.app-type.ts +3 -3
  6. package/apps/web/react.application.ts +7 -6
  7. package/apps/web/ssr/ssr-express.ts +2 -2
  8. package/apps/web/webpack/mutators.ts +1 -1
  9. package/artifacts/env-template/public/{118.882e2378b0e5623249d2.js → 15.c2a7fdb06f4c5b893f85.js} +2 -2
  10. package/artifacts/env-template/public/{252.5a48d08a4efe6ac7073d.js → 624.0063cd20896778773908.js} +2 -2
  11. package/artifacts/env-template/public/assets-manifest.json +12 -12
  12. package/artifacts/env-template/public/compositions.3e2d2848671f067adf00.js +1 -0
  13. package/artifacts/env-template/public/compositions.html +1 -1
  14. package/artifacts/env-template/public/{overview.68b2658603ed9cc99c3c.js → overview.46d1e65037427fabeba5.js} +1 -1
  15. package/artifacts/env-template/public/overview.html +1 -1
  16. package/artifacts/env-template/public/peers.6e375202353deaeb5b01.js +1 -0
  17. package/{compositions-1753809186996.js → compositions-1753833698619.js} +1 -1
  18. package/dist/apps/web/compute-results.d.ts +2 -2
  19. package/dist/apps/web/compute-results.js.map +1 -1
  20. package/dist/apps/web/deploy-context.d.ts +2 -2
  21. package/dist/apps/web/deploy-context.js.map +1 -1
  22. package/dist/apps/web/react-app-options.d.ts +3 -3
  23. package/dist/apps/web/react-app-options.js.map +1 -1
  24. package/dist/apps/web/react-build-result.d.ts +1 -1
  25. package/dist/apps/web/react-build-result.js.map +1 -1
  26. package/dist/apps/web/react.app-type.d.ts +3 -3
  27. package/dist/apps/web/react.app-type.js.map +1 -1
  28. package/dist/apps/web/react.application.d.ts +6 -6
  29. package/dist/apps/web/react.application.js.map +1 -1
  30. package/dist/apps/web/ssr/ssr-express.d.ts +2 -2
  31. package/dist/apps/web/ssr/ssr-express.js.map +1 -1
  32. package/dist/apps/web/webpack/mutators.d.ts +1 -1
  33. package/dist/apps/web/webpack/mutators.js.map +1 -1
  34. package/dist/{preview-1753809186996.js → preview-1753833698619.js} +2 -2
  35. package/dist/react.api.transformer.d.ts +3 -2
  36. package/dist/react.api.transformer.js.map +1 -1
  37. package/dist/react.env.d.ts +20 -19
  38. package/dist/react.env.js.map +1 -1
  39. package/dist/react.graphql.d.ts +2 -2
  40. package/dist/react.graphql.js.map +1 -1
  41. package/dist/react.main.runtime.d.ts +15 -16
  42. package/dist/react.main.runtime.js.map +1 -1
  43. package/dist/react.preview.runtime.d.ts +3 -3
  44. package/dist/react.preview.runtime.js.map +1 -1
  45. package/dist/react.schema.d.ts +2 -1
  46. package/dist/react.schema.js.map +1 -1
  47. package/dist/react.templates.d.ts +2 -2
  48. package/dist/react.templates.js.map +1 -1
  49. package/dist/react.ui.runtime.d.ts +3 -3
  50. package/dist/react.ui.runtime.js.map +1 -1
  51. package/dist/webpack/webpack.config.base.d.ts +1 -1
  52. package/dist/webpack/webpack.config.base.js.map +1 -1
  53. package/dist/webpack/webpack.config.base.prod.d.ts +1 -1
  54. package/dist/webpack/webpack.config.base.prod.js.map +1 -1
  55. package/dist/webpack/webpack.config.component.dev.d.ts +1 -1
  56. package/dist/webpack/webpack.config.component.dev.js.map +1 -1
  57. package/dist/webpack/webpack.config.component.prod.d.ts +1 -1
  58. package/dist/webpack/webpack.config.component.prod.js.map +1 -1
  59. package/dist/webpack/webpack.config.env.template.d.ts +1 -1
  60. package/dist/webpack/webpack.config.env.template.js.map +1 -1
  61. package/{overview-1753809186996.js → overview-1753833698619.js} +1 -1
  62. package/package.json +37 -37
  63. package/react.ui.runtime.tsx +6 -3
  64. package/webpack/webpack.config.base.prod.ts +1 -1
  65. package/webpack/webpack.config.base.ts +2 -1
  66. package/webpack/webpack.config.component.dev.ts +1 -1
  67. package/webpack/webpack.config.component.prod.ts +1 -1
  68. package/webpack/webpack.config.env.template.ts +1 -1
  69. package/artifacts/env-template/public/compositions.28d5bbd4971932cd3263.js +0 -1
  70. package/artifacts/env-template/public/peers.b0ca54a195877a7bb2cd.js +0 -1
  71. /package/artifacts/env-template/public/static/css/{252.cb193a47.css → 624.cb193a47.css} +0 -0
@@ -1,17 +1,17 @@
1
1
  {
2
- "118.882e2378b0e5623249d2.js": "118.882e2378b0e5623249d2.js",
3
- "252.5a48d08a4efe6ac7073d.js": "252.5a48d08a4efe6ac7073d.js",
2
+ "15.c2a7fdb06f4c5b893f85.js": "15.c2a7fdb06f4c5b893f85.js",
4
3
  "320.762ef2b410b3d3456b80.js": "320.762ef2b410b3d3456b80.js",
4
+ "624.0063cd20896778773908.js": "624.0063cd20896778773908.js",
5
5
  "977.2dc9f009f95933831eec.js": "977.2dc9f009f95933831eec.js",
6
6
  "compositions.css": "static/css/compositions.a801ccd3.css",
7
7
  "compositions.html": "compositions.html",
8
- "compositions.js": "compositions.28d5bbd4971932cd3263.js",
8
+ "compositions.js": "compositions.3e2d2848671f067adf00.js",
9
9
  "entrypoints": {
10
10
  "peers": {
11
11
  "assets": {
12
12
  "js": [
13
13
  "320.762ef2b410b3d3456b80.js",
14
- "peers.b0ca54a195877a7bb2cd.js"
14
+ "peers.6e375202353deaeb5b01.js"
15
15
  ]
16
16
  }
17
17
  },
@@ -29,8 +29,8 @@
29
29
  "compositions": {
30
30
  "assets": {
31
31
  "js": [
32
- "118.882e2378b0e5623249d2.js",
33
- "compositions.28d5bbd4971932cd3263.js"
32
+ "15.c2a7fdb06f4c5b893f85.js",
33
+ "compositions.3e2d2848671f067adf00.js"
34
34
  ],
35
35
  "css": [
36
36
  "static/css/compositions.a801ccd3.css"
@@ -40,19 +40,19 @@
40
40
  "overview": {
41
41
  "assets": {
42
42
  "js": [
43
- "252.5a48d08a4efe6ac7073d.js",
44
- "overview.68b2658603ed9cc99c3c.js"
43
+ "624.0063cd20896778773908.js",
44
+ "overview.46d1e65037427fabeba5.js"
45
45
  ],
46
46
  "css": [
47
- "static/css/252.cb193a47.css"
47
+ "static/css/624.cb193a47.css"
48
48
  ]
49
49
  }
50
50
  }
51
51
  },
52
52
  "overview.html": "overview.html",
53
- "overview.js": "overview.68b2658603ed9cc99c3c.js",
54
- "peers.js": "peers.b0ca54a195877a7bb2cd.js",
53
+ "overview.js": "overview.46d1e65037427fabeba5.js",
54
+ "peers.js": "peers.6e375202353deaeb5b01.js",
55
55
  "preview-root.css": "static/css/preview-root.cd64aba9.css",
56
56
  "preview-root.js": "preview-root.05f90bb5fbdee8df22bf.js",
57
- "static/css/252.cb193a47.css": "static/css/252.cb193a47.css"
57
+ "static/css/624.cb193a47.css": "static/css/624.cb193a47.css"
58
58
  }
@@ -0,0 +1 @@
1
+ "use strict";(self.__loadChunks_EnvTemplate=self.__loadChunks_EnvTemplate||[]).push([[866],{2203:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{var _home_circleci_bvm_versions_1_12_17_bit_1_12_17_node_modules_teambit_preview_dist_preview_modules_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(27296),_home_circleci_bit_bit_node_modules_teambit_local_preview_modules_fcb75543ae174d7107386380d75d5f3935f0d5b9_mjs__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(95860);(0,_home_circleci_bvm_versions_1_12_17_bit_1_12_17_node_modules_teambit_preview_dist_preview_modules_js__WEBPACK_IMPORTED_MODULE_0__.uf)("compositions",{modulesMap:{default:_home_circleci_bit_bit_node_modules_teambit_local_preview_modules_fcb75543ae174d7107386380d75d5f3935f0d5b9_mjs__WEBPACK_IMPORTED_MODULE_1__.x},isSplitComponentBundle:!0,componentMap:{}})}},__webpack_require__=>{var __webpack_exec__=moduleId=>__webpack_require__(__webpack_require__.s=moduleId);__webpack_require__.O(0,[15,320,977,518],()=>__webpack_exec__(2203));var __webpack_exports__=__webpack_require__.O()}]);
@@ -1,2 +1,2 @@
1
1
  <!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Preview</title><script>// Allow to use react dev-tools inside the examples
2
- try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}</script><style>body { margin: 0; }</style><script defer="defer" src="320.762ef2b410b3d3456b80.js"></script><script defer="defer" src="peers.b0ca54a195877a7bb2cd.js"></script><script defer="defer" src="977.2dc9f009f95933831eec.js"></script><script defer="defer" src="preview-root.05f90bb5fbdee8df22bf.js"></script><script defer="defer" src="118.882e2378b0e5623249d2.js"></script><script defer="defer" src="compositions.28d5bbd4971932cd3263.js"></script><link href="static/css/preview-root.cd64aba9.css" rel="stylesheet"><link href="static/css/compositions.a801ccd3.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
2
+ try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}</script><style>body { margin: 0; }</style><script defer="defer" src="320.762ef2b410b3d3456b80.js"></script><script defer="defer" src="peers.6e375202353deaeb5b01.js"></script><script defer="defer" src="977.2dc9f009f95933831eec.js"></script><script defer="defer" src="preview-root.05f90bb5fbdee8df22bf.js"></script><script defer="defer" src="15.c2a7fdb06f4c5b893f85.js"></script><script defer="defer" src="compositions.3e2d2848671f067adf00.js"></script><link href="static/css/preview-root.cd64aba9.css" rel="stylesheet"><link href="static/css/compositions.a801ccd3.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
@@ -1 +1 @@
1
- (self.__loadChunks_EnvTemplate=self.__loadChunks_EnvTemplate||[]).push([[542],{43291:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{"use strict";var _home_circleci_bvm_versions_1_12_17_bit_1_12_17_node_modules_teambit_preview_dist_preview_modules_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(27296),_home_circleci_bit_bit_node_modules_teambit_local_preview_modules_0557d705b67dd1e1bccbac0bd34835a41036cf72_mjs__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(52252);(0,_home_circleci_bvm_versions_1_12_17_bit_1_12_17_node_modules_teambit_preview_dist_preview_modules_js__WEBPACK_IMPORTED_MODULE_0__.uf)("overview",{modulesMap:{default:_home_circleci_bit_bit_node_modules_teambit_local_preview_modules_0557d705b67dd1e1bccbac0bd34835a41036cf72_mjs__WEBPACK_IMPORTED_MODULE_1__.x},isSplitComponentBundle:!0,componentMap:{}})},94891:()=>{},91044:()=>{},38954:()=>{},71220:()=>{},38854:()=>{}},__webpack_require__=>{var __webpack_exec__=moduleId=>__webpack_require__(__webpack_require__.s=moduleId);__webpack_require__.O(0,[252,320,977,518,118,866],()=>__webpack_exec__(43291));var __webpack_exports__=__webpack_require__.O()}]);
1
+ (self.__loadChunks_EnvTemplate=self.__loadChunks_EnvTemplate||[]).push([[542],{85847:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{"use strict";var _home_circleci_bvm_versions_1_12_17_bit_1_12_17_node_modules_teambit_preview_dist_preview_modules_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(27296),_home_circleci_bit_bit_node_modules_teambit_local_preview_modules_cf72038aae23437751eb71da99348a78344bd209_mjs__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(61624);(0,_home_circleci_bvm_versions_1_12_17_bit_1_12_17_node_modules_teambit_preview_dist_preview_modules_js__WEBPACK_IMPORTED_MODULE_0__.uf)("overview",{modulesMap:{default:_home_circleci_bit_bit_node_modules_teambit_local_preview_modules_cf72038aae23437751eb71da99348a78344bd209_mjs__WEBPACK_IMPORTED_MODULE_1__.x},isSplitComponentBundle:!0,componentMap:{}})},94891:()=>{},91044:()=>{},38954:()=>{},71220:()=>{},38854:()=>{}},__webpack_require__=>{var __webpack_exec__=moduleId=>__webpack_require__(__webpack_require__.s=moduleId);__webpack_require__.O(0,[624,320,977,518,15,866],()=>__webpack_exec__(85847));var __webpack_exports__=__webpack_require__.O()}]);
@@ -1,2 +1,2 @@
1
1
  <!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Preview</title><script>// Allow to use react dev-tools inside the examples
2
- try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}</script><style>body { margin: 0; }</style><script defer="defer" src="320.762ef2b410b3d3456b80.js"></script><script defer="defer" src="peers.b0ca54a195877a7bb2cd.js"></script><script defer="defer" src="977.2dc9f009f95933831eec.js"></script><script defer="defer" src="preview-root.05f90bb5fbdee8df22bf.js"></script><script defer="defer" src="118.882e2378b0e5623249d2.js"></script><script defer="defer" src="compositions.28d5bbd4971932cd3263.js"></script><script defer="defer" src="252.5a48d08a4efe6ac7073d.js"></script><script defer="defer" src="overview.68b2658603ed9cc99c3c.js"></script><link href="static/css/preview-root.cd64aba9.css" rel="stylesheet"><link href="static/css/compositions.a801ccd3.css" rel="stylesheet"><link href="static/css/252.cb193a47.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
2
+ try { window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__; } catch {}</script><style>body { margin: 0; }</style><script defer="defer" src="320.762ef2b410b3d3456b80.js"></script><script defer="defer" src="peers.6e375202353deaeb5b01.js"></script><script defer="defer" src="977.2dc9f009f95933831eec.js"></script><script defer="defer" src="preview-root.05f90bb5fbdee8df22bf.js"></script><script defer="defer" src="15.c2a7fdb06f4c5b893f85.js"></script><script defer="defer" src="compositions.3e2d2848671f067adf00.js"></script><script defer="defer" src="624.0063cd20896778773908.js"></script><script defer="defer" src="overview.46d1e65037427fabeba5.js"></script><link href="static/css/preview-root.cd64aba9.css" rel="stylesheet"><link href="static/css/compositions.a801ccd3.css" rel="stylesheet"><link href="static/css/624.cb193a47.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
@@ -0,0 +1 @@
1
+ (()=>{"use strict";var __webpack_modules__={98910:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__2)=>{var react__WEBPACK_IMPORTED_MODULE_2___namespace_cache,react_dom__WEBPACK_IMPORTED_MODULE_3___namespace_cache,_teambit_mdx_ui_mdx_scope_context__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__2(47717),_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__2(58860),react__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__2(37953),react_dom__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__2(88705),globalObj=window;guard("TeambitMdxUiMdxScopeContext",_teambit_mdx_ui_mdx_scope_context__WEBPACK_IMPORTED_MODULE_0__),guard("MdxJsReact",_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__),guard("React",react__WEBPACK_IMPORTED_MODULE_2___namespace_cache||(react__WEBPACK_IMPORTED_MODULE_2___namespace_cache=__webpack_require__2.t(react__WEBPACK_IMPORTED_MODULE_2__,2))),guard("ReactDom",react_dom__WEBPACK_IMPORTED_MODULE_3___namespace_cache||(react_dom__WEBPACK_IMPORTED_MODULE_3___namespace_cache=__webpack_require__2.t(react_dom__WEBPACK_IMPORTED_MODULE_3__,2))),globalObj.TeambitMdxUiMdxScopeContext=_teambit_mdx_ui_mdx_scope_context__WEBPACK_IMPORTED_MODULE_0__,globalObj.MdxJsReact=_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__,globalObj.React=react__WEBPACK_IMPORTED_MODULE_2___namespace_cache||(react__WEBPACK_IMPORTED_MODULE_2___namespace_cache=__webpack_require__2.t(react__WEBPACK_IMPORTED_MODULE_2__,2)),globalObj.ReactDom=react_dom__WEBPACK_IMPORTED_MODULE_3___namespace_cache||(react_dom__WEBPACK_IMPORTED_MODULE_3___namespace_cache=__webpack_require__2.t(react_dom__WEBPACK_IMPORTED_MODULE_3__,2));function guard(property,expected){var existing=globalObj[property];if(existing===expected&&expected!==void 0)console.warn('[expose-peers] "'+property+'" already exists in global scope, but with correct value');else if(existing!==void 0)throw new Error('[expose-peers] "'+property+'" already exists in the global scope, cannot overwrite')}}},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(cachedModule!==void 0)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},(()=>{var deferred=[];__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(chunkIds){priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority];return}for(var notFulfilled=1/0,i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(priority&!1||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every(key=>__webpack_require__.O[key](chunkIds[j]))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();r!==void 0&&(result=r)}}return result}})(),__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},(()=>{var getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,leafPrototypes;__webpack_require__.t=function(value,mode){if(mode&1&&(value=this(value)),mode&8||typeof value=="object"&&value&&(mode&4&&value.__esModule||mode&16&&typeof value.then=="function"))return value;var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=mode&2&&value;typeof current=="object"&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach(key=>def[key]=()=>value[key]);return def.default=()=>value,__webpack_require__.d(ns,def),ns}})(),__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),__webpack_require__.r=exports=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),(()=>{var installedChunks={626:0};__webpack_require__.O.j=chunkId=>installedChunks[chunkId]===0;var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var[chunkIds,moreModules,runtime]=data,moduleId,chunkId,i=0;if(chunkIds.some(id=>installedChunks[id]!==0)){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.__loadChunks_EnvTemplate=self.__loadChunks_EnvTemplate||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})();var __webpack_exports__=__webpack_require__.O(void 0,[320],()=>__webpack_require__(98910));__webpack_exports__=__webpack_require__.O(__webpack_exports__)})();
@@ -1,7 +1,7 @@
1
1
 
2
2
  import { linkModules } from '/home/circleci/.bvm/versions/1.12.17/bit-1.12.17/node_modules/@teambit/preview/dist/preview-modules.js';
3
3
 
4
- import {defaultMainModule} from "/home/circleci/bit/bit/node_modules/@teambit/_local/preview-modules-aa880bdba40b9af1d8fe895dca476e207182accb.mjs";
4
+ import {defaultMainModule} from "/home/circleci/bit/bit/node_modules/@teambit/_local/preview-modules-fcb75543ae174d7107386380d75d5f3935f0d5b9.mjs";
5
5
 
6
6
 
7
7
 
@@ -1,5 +1,5 @@
1
- import { BundlerResult } from '@teambit/bundler';
2
- import { ReactAppBuildResult } from './react-build-result';
1
+ import type { BundlerResult } from '@teambit/bundler';
2
+ import type { ReactAppBuildResult } from './react-build-result';
3
3
  type ResultsOptions = {
4
4
  publicDir: string;
5
5
  ssrPublicDir?: string;
@@ -1 +1 @@
1
- {"version":3,"names":["computeResults","results","publicDir","ssrPublicDir","result","metadata","errors","warnings"],"sources":["compute-results.ts"],"sourcesContent":["import { BundlerResult } from '@teambit/bundler';\nimport { ReactAppBuildResult } from './react-build-result';\n\ntype ResultsOptions = {\n publicDir: string;\n ssrPublicDir?: string;\n};\nexport async function computeResults(\n results: BundlerResult[],\n { publicDir, ssrPublicDir }: ResultsOptions\n): Promise<ReactAppBuildResult> {\n const result = results[0];\n\n return {\n publicDir, // TODO: remove this later. it's for backward compatibility. use \"metadata.publicDir\" instead.\n ssrPublicDir, // TODO: remove this later. it's for backward compatibility. use \"metadata.ssrPublicDir\" instead.\n metadata: {\n publicDir,\n ssrPublicDir,\n },\n errors: result.errors,\n warnings: result.warnings,\n };\n}\n"],"mappings":";;;;;;AAOO,eAAeA,cAAcA,CAClCC,OAAwB,EACxB;EAAEC,SAAS;EAAEC;AAA6B,CAAC,EACb;EAC9B,MAAMC,MAAM,GAAGH,OAAO,CAAC,CAAC,CAAC;EAEzB,OAAO;IACLC,SAAS;IAAE;IACXC,YAAY;IAAE;IACdE,QAAQ,EAAE;MACRH,SAAS;MACTC;IACF,CAAC;IACDG,MAAM,EAAEF,MAAM,CAACE,MAAM;IACrBC,QAAQ,EAAEH,MAAM,CAACG;EACnB,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["computeResults","results","publicDir","ssrPublicDir","result","metadata","errors","warnings"],"sources":["compute-results.ts"],"sourcesContent":["import type { BundlerResult } from '@teambit/bundler';\nimport type { ReactAppBuildResult } from './react-build-result';\n\ntype ResultsOptions = {\n publicDir: string;\n ssrPublicDir?: string;\n};\nexport async function computeResults(\n results: BundlerResult[],\n { publicDir, ssrPublicDir }: ResultsOptions\n): Promise<ReactAppBuildResult> {\n const result = results[0];\n\n return {\n publicDir, // TODO: remove this later. it's for backward compatibility. use \"metadata.publicDir\" instead.\n ssrPublicDir, // TODO: remove this later. it's for backward compatibility. use \"metadata.ssrPublicDir\" instead.\n metadata: {\n publicDir,\n ssrPublicDir,\n },\n errors: result.errors,\n warnings: result.warnings,\n };\n}\n"],"mappings":";;;;;;AAOO,eAAeA,cAAcA,CAClCC,OAAwB,EACxB;EAAEC,SAAS;EAAEC;AAA6B,CAAC,EACb;EAC9B,MAAMC,MAAM,GAAGH,OAAO,CAAC,CAAC,CAAC;EAEzB,OAAO;IACLC,SAAS;IAAE;IACXC,YAAY;IAAE;IACdE,QAAQ,EAAE;MACRH,SAAS;MACTC;IACF,CAAC;IACDG,MAAM,EAAEF,MAAM,CAACE,MAAM;IACrBC,QAAQ,EAAEH,MAAM,CAACG;EACnB,CAAC;AACH","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { AppDeployContext } from '@teambit/application';
2
- import { ReactAppBuildResult } from './react-build-result';
1
+ import type { AppDeployContext } from '@teambit/application';
2
+ import type { ReactAppBuildResult } from './react-build-result';
3
3
  export type ReactDeployContext = ReactAppBuildResult & AppDeployContext;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["deploy-context.ts"],"sourcesContent":["import { AppDeployContext } from '@teambit/application';\nimport { ReactAppBuildResult } from './react-build-result';\n\nexport type ReactDeployContext = ReactAppBuildResult & AppDeployContext;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["deploy-context.ts"],"sourcesContent":["import type { AppDeployContext } from '@teambit/application';\nimport type { ReactAppBuildResult } from './react-build-result';\n\nexport type ReactDeployContext = ReactAppBuildResult & AppDeployContext;\n"],"mappings":"","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { Bundler, DevServer } from '@teambit/bundler';
2
- import { WebpackConfigTransformer } from '@teambit/webpack';
3
- import { ReactDeployContext } from './deploy-context';
1
+ import type { Bundler, DevServer } from '@teambit/bundler';
2
+ import type { WebpackConfigTransformer } from '@teambit/webpack';
3
+ import type { ReactDeployContext } from './deploy-context';
4
4
  export type ReactAppOptions = {
5
5
  /**
6
6
  * name of the application.
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["react-app-options.ts"],"sourcesContent":["import { Bundler, DevServer } from '@teambit/bundler';\nimport { WebpackConfigTransformer } from '@teambit/webpack';\n\nimport { ReactDeployContext } from './deploy-context';\n\nexport type ReactAppOptions = {\n /**\n * name of the application.\n */\n name: string;\n\n /**\n * path to entry files of the application.\n */\n entry: string[] | ((path?: string) => Promise<string[]>);\n\n /**\n * path to server-rendered entrypoint of the app\n */\n ssr?: string | (() => Promise<string>);\n\n /**\n * instance of bundler to use. default is Webpack.\n */\n bundler?: Bundler;\n\n /**\n * instance of serverside bundler to use. default is Webpack.\n */\n ssrBundler?: Bundler;\n\n /**\n * instance of dev server to use. default is Webpack.\n */\n devServer?: DevServer;\n\n /**\n * set webpack transformers\n */\n webpackTransformers?: WebpackConfigTransformer[];\n\n /**\n * deploy function.\n */\n deploy?: (context: ReactDeployContext) => Promise<void>;\n\n /**\n * ranges of ports to use to run the app server.\n */\n portRange?: [start: number, end: number];\n\n /**\n * favicon for the app. You can pass an abs path (using require.resolve()) or a url.\n */\n favicon?: string;\n\n /**\n * path to load the webpack instance from\n */\n webpackModulePath?: string;\n\n /**\n * path to load the webpack dev server instance from.\n */\n webpackDevServerModulePath?: string;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["react-app-options.ts"],"sourcesContent":["import type { Bundler, DevServer } from '@teambit/bundler';\nimport type { WebpackConfigTransformer } from '@teambit/webpack';\n\nimport type { ReactDeployContext } from './deploy-context';\n\nexport type ReactAppOptions = {\n /**\n * name of the application.\n */\n name: string;\n\n /**\n * path to entry files of the application.\n */\n entry: string[] | ((path?: string) => Promise<string[]>);\n\n /**\n * path to server-rendered entrypoint of the app\n */\n ssr?: string | (() => Promise<string>);\n\n /**\n * instance of bundler to use. default is Webpack.\n */\n bundler?: Bundler;\n\n /**\n * instance of serverside bundler to use. default is Webpack.\n */\n ssrBundler?: Bundler;\n\n /**\n * instance of dev server to use. default is Webpack.\n */\n devServer?: DevServer;\n\n /**\n * set webpack transformers\n */\n webpackTransformers?: WebpackConfigTransformer[];\n\n /**\n * deploy function.\n */\n deploy?: (context: ReactDeployContext) => Promise<void>;\n\n /**\n * ranges of ports to use to run the app server.\n */\n portRange?: [start: number, end: number];\n\n /**\n * favicon for the app. You can pass an abs path (using require.resolve()) or a url.\n */\n favicon?: string;\n\n /**\n * path to load the webpack instance from\n */\n webpackModulePath?: string;\n\n /**\n * path to load the webpack dev server instance from.\n */\n webpackDevServerModulePath?: string;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { AppBuildResult } from '@teambit/application';
1
+ import type { AppBuildResult } from '@teambit/application';
2
2
  export type ReactAppBuildResult = {
3
3
  /**
4
4
  * the directory which includes the built application public assets.
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["react-build-result.ts"],"sourcesContent":["import { AppBuildResult } from '@teambit/application';\n\nexport type ReactAppBuildResult = {\n /**\n * the directory which includes the built application public assets.\n * when using ssr, public dir is undefined.\n */\n publicDir?: string;\n ssrPublicDir?: string;\n} & AppBuildResult;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["react-build-result.ts"],"sourcesContent":["import type { AppBuildResult } from '@teambit/application';\n\nexport type ReactAppBuildResult = {\n /**\n * the directory which includes the built application public assets.\n * when using ssr, public dir is undefined.\n */\n publicDir?: string;\n ssrPublicDir?: string;\n} & AppBuildResult;\n"],"mappings":"","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  import type { Logger } from '@teambit/logger';
2
2
  import type { DependencyResolverMain } from '@teambit/dependency-resolver';
3
- import { ApplicationType } from '@teambit/application';
4
- import { ReactAppOptions } from './react-app-options';
3
+ import type { ApplicationType } from '@teambit/application';
4
+ import type { ReactAppOptions } from './react-app-options';
5
5
  import { ReactApp } from './react.application';
6
- import { ReactEnv } from '../../react.env';
6
+ import type { ReactEnv } from '../../react.env';
7
7
  export declare class ReactAppType implements ApplicationType<ReactAppOptions> {
8
8
  readonly name: string;
9
9
  private reactEnv;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","require","ReactAppType","constructor","name","reactEnv","logger","dependencyResolver","createApp","options","ReactApp","entry","ssr","portRange","bundler","ssrBundler","devServer","webpackTransformers","deploy","favicon","webpackModulePath","webpackDevServerModulePath","exports"],"sources":["react.app-type.ts"],"sourcesContent":["import type { Logger } from '@teambit/logger';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { 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(\n readonly name: string,\n private reactEnv: ReactEnv,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n createApp(options: ReactAppOptions) {\n return new ReactApp(\n options.name,\n options.entry,\n options.ssr,\n options.portRange || [3000, 4000],\n this.reactEnv,\n this.logger,\n this.dependencyResolver,\n options.bundler,\n options.ssrBundler,\n options.devServer,\n options.webpackTransformers,\n options.deploy,\n options.favicon,\n options.webpackModulePath,\n options.webpackDevServerModulePath\n );\n }\n}\n"],"mappings":";;;;;;AAIA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,MAAME,YAAY,CAA6C;EACpEC,WAAWA,CACAC,IAAY,EACbC,QAAkB,EAClBC,MAAc,EACdC,kBAA0C,EAClD;IAAA,KAJSH,IAAY,GAAZA,IAAY;IAAA,KACbC,QAAkB,GAAlBA,QAAkB;IAAA,KAClBC,MAAc,GAAdA,MAAc;IAAA,KACdC,kBAA0C,GAA1CA,kBAA0C;EACjD;EAEHC,SAASA,CAACC,OAAwB,EAAE;IAClC,OAAO,KAAIC,iBAAQ,EACjBD,OAAO,CAACL,IAAI,EACZK,OAAO,CAACE,KAAK,EACbF,OAAO,CAACG,GAAG,EACXH,OAAO,CAACI,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EACjC,IAAI,CAACR,QAAQ,EACb,IAAI,CAACC,MAAM,EACX,IAAI,CAACC,kBAAkB,EACvBE,OAAO,CAACK,OAAO,EACfL,OAAO,CAACM,UAAU,EAClBN,OAAO,CAACO,SAAS,EACjBP,OAAO,CAACQ,mBAAmB,EAC3BR,OAAO,CAACS,MAAM,EACdT,OAAO,CAACU,OAAO,EACfV,OAAO,CAACW,iBAAiB,EACzBX,OAAO,CAACY,0BACV,CAAC;EACH;AACF;AAACC,OAAA,CAAApB,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","require","ReactAppType","constructor","name","reactEnv","logger","dependencyResolver","createApp","options","ReactApp","entry","ssr","portRange","bundler","ssrBundler","devServer","webpackTransformers","deploy","favicon","webpackModulePath","webpackDevServerModulePath","exports"],"sources":["react.app-type.ts"],"sourcesContent":["import type { Logger } from '@teambit/logger';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { ApplicationType } from '@teambit/application';\nimport type { ReactAppOptions } from './react-app-options';\nimport { ReactApp } from './react.application';\nimport type { ReactEnv } from '../../react.env';\n\nexport class ReactAppType implements ApplicationType<ReactAppOptions> {\n constructor(\n readonly name: string,\n private reactEnv: ReactEnv,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n createApp(options: ReactAppOptions) {\n return new ReactApp(\n options.name,\n options.entry,\n options.ssr,\n options.portRange || [3000, 4000],\n this.reactEnv,\n this.logger,\n this.dependencyResolver,\n options.bundler,\n options.ssrBundler,\n options.devServer,\n options.webpackTransformers,\n options.deploy,\n options.favicon,\n options.webpackModulePath,\n options.webpackDevServerModulePath\n );\n }\n}\n"],"mappings":";;;;;;AAIA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,MAAME,YAAY,CAA6C;EACpEC,WAAWA,CACAC,IAAY,EACbC,QAAkB,EAClBC,MAAc,EACdC,kBAA0C,EAClD;IAAA,KAJSH,IAAY,GAAZA,IAAY;IAAA,KACbC,QAAkB,GAAlBA,QAAkB;IAAA,KAClBC,MAAc,GAAdA,MAAc;IAAA,KACdC,kBAA0C,GAA1CA,kBAA0C;EACjD;EAEHC,SAASA,CAACC,OAAwB,EAAE;IAClC,OAAO,KAAIC,iBAAQ,EACjBD,OAAO,CAACL,IAAI,EACZK,OAAO,CAACE,KAAK,EACbF,OAAO,CAACG,GAAG,EACXH,OAAO,CAACI,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EACjC,IAAI,CAACR,QAAQ,EACb,IAAI,CAACC,MAAM,EACX,IAAI,CAACC,kBAAkB,EACvBE,OAAO,CAACK,OAAO,EACfL,OAAO,CAACM,UAAU,EAClBN,OAAO,CAACO,SAAS,EACjBP,OAAO,CAACQ,mBAAmB,EAC3BR,OAAO,CAACS,MAAM,EACdT,OAAO,CAACU,OAAO,EACfV,OAAO,CAACW,iBAAiB,EACzBX,OAAO,CAACY,0BACV,CAAC;EACH;AACF;AAACC,OAAA,CAAApB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1,11 +1,11 @@
1
- import { Application, AppContext, AppBuildContext, AppResult, ApplicationInstance } from '@teambit/application';
1
+ import type { Application, AppContext, AppBuildContext, AppResult, ApplicationInstance } from '@teambit/application';
2
2
  import type { Bundler, DevServer } from '@teambit/bundler';
3
3
  import type { Logger } from '@teambit/logger';
4
- import { DependencyResolverMain } from '@teambit/dependency-resolver';
5
- import { WebpackConfigTransformer } from '@teambit/webpack';
6
- import { ReactEnv } from '../../react.env';
7
- import { ReactAppBuildResult } from './react-build-result';
8
- import { ReactDeployContext } from './deploy-context';
4
+ import type { DependencyResolverMain } from '@teambit/dependency-resolver';
5
+ import type { WebpackConfigTransformer } from '@teambit/webpack';
6
+ import type { ReactEnv } from '../../react.env';
7
+ import type { ReactAppBuildResult } from './react-build-result';
8
+ import type { ReactDeployContext } from './deploy-context';
9
9
  export declare class ReactApp implements Application {
10
10
  readonly name: string;
11
11
  readonly entry: string[] | ((path?: string) => Promise<string[]>);
@@ -1 +1 @@
1
- {"version":3,"names":["_fs","data","require","_path","_toolboxNetwork","_component","_dependencyResolver","_lodash","_interopRequireDefault","_bitError","_webpack","_computeResults","_webpackAppSsr","_mutators","_ssrExpress","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ReactApp","constructor","name","entry","ssr","portRange","reactEnv","logger","dependencyResolver","bundler","ssrBundler","devServer","transformers","deploy","favicon","webpackModulePath","webpackDevServerModulePath","run","context","from","to","port","Port","getPort","listen","console","appName","devServerContext","getDevServerContext","getDevServer","addDevServer","setOutput","setDevServerClient","runSsr","_this$logger","_this$logger2","_this$logger3","clientBundle","buildClient","errors","info","serverBundle","buildSsr","app","loadSsrApp","workdir","expressApp","createExpressSsr","assets","parseAssets","htmlConfig","title","templateContent","html","minify","ctx","assign","create","targets","entries","getEntries","components","appComponent","outputPath","resolve","calcOutputPath","hostDependencies","getHostDependencies","aliasHostDependencies","capsuleNetwork","undefined","previousTasksResults","getBundler","config","merge","clientConfig","bundleResult","getSsrEntries","ssrConfig","build","ssrAppDir","join","getPublicDir","artifactsDir","buildSsrApp","computeResults","publicDir","dir","ssrPublicDir","getSsrBundler","runner","readFileSync","__dirname","toString","capsule","fs","writeFileSync","capsuleSsrDir","getPath","installer","getInstaller","packageManager","rootDir","cacheRootDirectory","install","getSsrPolicy","ComponentMap","Map","workspacePolicy","WorkspacePolicy","add","lifecycleType","dependencyId","version","getDefaultBundler","getDefaultSsrBundler","path","bundlerContext","getBuildContext","compact","configMutator","buildConfig","replaceTerserPlugin","env","ssrBuildConfig","ssrDir","distDir","getCompiler","targetEntries","map","basename","component","hostRootDir","rootPath","metaData","initiator","envId","id","applicationType","Array","isArray","BitError","publicPath","getAdditionalHostDependencies","exports"],"sources":["react.application.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { join, resolve, basename } from 'path';\nimport { Application, AppContext, AppBuildContext, AppResult, ApplicationInstance } from '@teambit/application';\nimport type { Bundler, DevServer, BundlerContext, DevServerContext, BundlerHtmlConfig } from '@teambit/bundler';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { ComponentMap } from '@teambit/component';\nimport type { Logger } from '@teambit/logger';\nimport { DependencyResolverMain, WorkspacePolicy } from '@teambit/dependency-resolver';\nimport compact from 'lodash.compact';\nimport { WebpackConfigTransformer } from '@teambit/webpack';\nimport { BitError } from '@teambit/bit-error';\nimport { ReactEnv } from '../../react.env';\nimport { ReactAppBuildResult } from './react-build-result';\nimport { html } from '../../webpack';\nimport { ReactDeployContext } from './deploy-context';\nimport { computeResults } from './compute-results';\nimport { clientConfig, ssrConfig, calcOutputPath, ssrBuildConfig, buildConfig } from './webpack/webpack.app.ssr.config';\nimport { addDevServer, setOutput, replaceTerserPlugin, setDevServerClient } from './webpack/mutators';\nimport { createExpressSsr, loadSsrApp, parseAssets } from './ssr/ssr-express';\n\nexport class ReactApp implements Application {\n constructor(\n readonly name: string,\n readonly entry: string[] | ((path?: string) => Promise<string[]>),\n readonly ssr: string | (() => Promise<string>) | undefined,\n readonly portRange: [number, number],\n private reactEnv: ReactEnv,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n readonly bundler?: Bundler,\n readonly ssrBundler?: Bundler,\n readonly devServer?: DevServer,\n readonly transformers: WebpackConfigTransformer[] = [],\n readonly deploy?: (context: ReactDeployContext) => Promise<void>,\n readonly favicon?: string,\n readonly webpackModulePath?: string,\n readonly webpackDevServerModulePath?: string\n ) {}\n readonly applicationType = 'react-common-js';\n readonly dir = 'public';\n readonly ssrDir = 'ssr';\n\n async run(context: AppContext): Promise<ApplicationInstance> {\n const [from, to] = this.portRange;\n const port = context.port || (await Port.getPort(from, to));\n\n if (this.devServer) {\n await this.devServer.listen(port);\n this.logger.console(`${context.appName} is listening on http://localhost:${port}`);\n\n return {\n appName: context.appName,\n port,\n };\n }\n\n const devServerContext = await this.getDevServerContext(context);\n const devServer = this.reactEnv.getDevServer(\n devServerContext,\n [addDevServer, setOutput, setDevServerClient, ...this.transformers],\n this.webpackModulePath,\n this.webpackDevServerModulePath\n );\n await devServer.listen(port);\n this.logger.console(`${context.appName} is listening on http://localhost:${port}`);\n\n return {\n appName: context.appName,\n port,\n };\n }\n\n async runSsr(context: AppContext): Promise<AppResult> {\n const [from, to] = this.portRange;\n const port = await Port.getPort(from, to);\n\n // bundle client\n const clientBundle = await this.buildClient(context);\n if (clientBundle.errors.length > 0) return { errors: clientBundle.errors };\n this.logger?.info('[react.application] [ssr] client bundle - complete');\n\n // bundle server\n const serverBundle = await this.buildSsr(context);\n if (serverBundle.errors.length > 0) return { errors: serverBundle.errors };\n this.logger?.info('[react.application] [ssr] server bundle - complete');\n\n // load server-side runtime\n const app = await loadSsrApp(context.workdir, context.appName);\n this.logger?.info('[react.application] [ssr] bundle code - loaded');\n\n const expressApp = createExpressSsr({\n name: context.appName,\n workdir: context.workdir,\n port,\n app,\n assets: parseAssets(clientBundle.assets),\n logger: this.logger,\n });\n\n expressApp.listen(port);\n this.logger.console(`listening on port ${port}`);\n return { port };\n }\n\n private async buildClient(context: AppContext) {\n const htmlConfig: BundlerHtmlConfig[] = [\n {\n title: context.appName,\n templateContent: html(context.appName),\n minify: false,\n favicon: this.favicon,\n },\n ];\n\n // extend, including prototype methods\n const ctx: BundlerContext = Object.assign(Object.create(context), {\n html: htmlConfig,\n targets: [\n {\n entries: await this.getEntries(),\n components: [context.appComponent],\n outputPath: resolve(context.workdir, calcOutputPath(context.appName, 'browser')),\n hostDependencies: this.getHostDependencies(),\n aliasHostDependencies: true,\n },\n ],\n\n // @ts-ignore\n capsuleNetwork: undefined,\n previousTasksResults: [],\n });\n\n const bundler = await this.reactEnv.getBundler(\n ctx,\n [(config) => config.merge([clientConfig()]), ...this.transformers],\n this.webpackModulePath\n );\n\n const bundleResult = await bundler.run();\n return bundleResult[0];\n }\n\n private async buildSsr(context: AppContext) {\n // extend, including prototype methods\n const ctx: BundlerContext = Object.assign(Object.create(context), {\n ...context,\n targets: [\n {\n entries: await this.getSsrEntries(),\n components: [context.appComponent],\n outputPath: resolve(context.workdir, calcOutputPath(context.appName, 'ssr')),\n hostDependencies: this.getHostDependencies(),\n aliasHostDependencies: true,\n },\n ],\n\n // @ts-ignore\n capsuleNetwork: undefined,\n previousTasksResults: [],\n });\n\n const bundler = await this.reactEnv.getBundler(\n ctx,\n [(config) => config.merge([ssrConfig()]), ...this.transformers],\n this.webpackModulePath\n );\n\n const bundleResult = await bundler.run();\n return bundleResult[0];\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 const bundleResult = await bundler.run();\n const ssrAppDir = join(this.getPublicDir(context.artifactsDir));\n\n if (this.ssr) await this.buildSsrApp(context, ssrAppDir);\n return computeResults(bundleResult, {\n publicDir: `${this.getPublicDir(context.artifactsDir)}/${this.dir}`,\n ssrPublicDir: ssrAppDir,\n });\n }\n\n private async buildSsrApp(context: AppBuildContext, ssrAppDir: string) {\n const ssrBundler = await this.getSsrBundler(context);\n await ssrBundler.run();\n const runner = readFileSync(join(__dirname, './ssr/app/runner')).toString();\n context.capsule.fs.writeFileSync(join(ssrAppDir, 'runner.js'), runner);\n const capsuleSsrDir = context.capsule.fs.getPath(ssrAppDir);\n const installer = this.dependencyResolver.getInstaller({\n packageManager: 'teambit.dependencies/yarn',\n rootDir: capsuleSsrDir,\n cacheRootDirectory: capsuleSsrDir,\n });\n await installer.install(capsuleSsrDir, this.getSsrPolicy(), new ComponentMap(new Map()));\n return ssrAppDir;\n }\n\n private getSsrPolicy() {\n const workspacePolicy = new WorkspacePolicy([]);\n workspacePolicy.add({ lifecycleType: 'runtime', dependencyId: 'express', value: { version: '4.18.1' } });\n workspacePolicy.add({\n lifecycleType: 'runtime',\n dependencyId: '@teambit/react.rendering.ssr',\n value: { version: '0.0.3' },\n });\n workspacePolicy.add({\n lifecycleType: 'runtime',\n dependencyId: '@teambit/ui-foundation.ui.pages.static-error',\n value: { version: '0.0.75' },\n });\n\n workspacePolicy.add({\n lifecycleType: 'peer',\n dependencyId: 'react',\n value: { version: '17.0.2' },\n });\n\n workspacePolicy.add({\n lifecycleType: 'peer',\n dependencyId: 'react-dom',\n value: { version: '17.0.2' },\n });\n return workspacePolicy;\n }\n\n private getBundler(context: AppBuildContext) {\n if (this.bundler) return this.bundler;\n return this.getDefaultBundler(context);\n }\n\n private getSsrBundler(context: AppBuildContext) {\n if (this.ssrBundler) return this.ssrBundler;\n return this.getDefaultSsrBundler(context);\n }\n\n private async getDefaultBundler(context: AppBuildContext) {\n const { capsule } = context;\n const publicDir = this.getPublicDir(context.artifactsDir);\n const outputPath = join(capsule.path, publicDir);\n\n const bundlerContext = await this.getBuildContext(context, { outputPath });\n const transformers: WebpackConfigTransformer[] = compact([\n (configMutator) => configMutator.merge(buildConfig({ outputPath: join(outputPath, this.dir) })),\n replaceTerserPlugin(),\n ...this.transformers,\n ]);\n\n const reactEnv = context.env as ReactEnv;\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, transformers, this.webpackModulePath);\n return bundler;\n }\n\n private async getDefaultSsrBundler(context: AppBuildContext) {\n const { capsule } = context;\n const publicDir = this.getPublicDir(context.artifactsDir);\n const outputPath = join(capsule.path, publicDir);\n\n const bundlerContext = await this.getBuildContext(context, { outputPath });\n const transformers: WebpackConfigTransformer[] = compact([\n (configMutator) => configMutator.merge(ssrBuildConfig({ outputPath: join(outputPath, this.ssrDir) })),\n replaceTerserPlugin(),\n ...this.transformers,\n ]);\n\n const reactEnv = context.env as ReactEnv;\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, transformers, this.webpackModulePath);\n return bundler;\n }\n\n private async getBuildContext(context: AppBuildContext, { outputPath }: { outputPath: string }) {\n const { capsule } = context;\n const reactEnv = context.env as ReactEnv;\n const { distDir } = reactEnv.getCompiler();\n const targetEntries = await this.getEntries(`${capsule.path}/${distDir}`);\n const entries = targetEntries.map((entry) => require.resolve(`${capsule.path}/${distDir}/${basename(entry)}`));\n\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [\n {\n components: [capsule?.component],\n entries,\n outputPath,\n hostRootDir: capsule?.path,\n hostDependencies: this.getHostDependencies(),\n aliasHostDependencies: true,\n },\n ],\n entry: [],\n rootPath: '/',\n metaData: {\n initiator: `building app: ${context.name}`,\n envId: context.id,\n },\n });\n\n return bundlerContext;\n }\n\n private getPublicDir(artifactsDir: string) {\n return join(artifactsDir, this.applicationType, this.name);\n }\n\n async getEntries(path?: string): Promise<string[]> {\n if (Array.isArray(this.entry)) return this.entry;\n return this.entry(path);\n }\n\n async getSsrEntries(): Promise<string[]> {\n if (!this.ssr) throw new BitError('tried to build ssr without ssr entries');\n if (typeof this.ssr === 'string') return [this.ssr];\n return [await this.ssr()];\n }\n\n private async getDevServerContext(context: AppContext): Promise<DevServerContext> {\n const entries = await this.getEntries();\n return Object.assign(context, {\n entry: entries,\n rootPath: '',\n publicPath: `public/${this.name}`,\n title: this.name,\n favicon: this.favicon,\n hostDependencies: await this.getHostDependencies(),\n aliasHostDependencies: true,\n });\n }\n\n private getHostDependencies(): string[] {\n return this.reactEnv.getAdditionalHostDependencies();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fs","data","require","_path","_toolboxNetwork","_component","_dependencyResolver","_lodash","_interopRequireDefault","_bitError","_webpack","_computeResults","_webpackAppSsr","_mutators","_ssrExpress","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ReactApp","constructor","name","entry","ssr","portRange","reactEnv","logger","dependencyResolver","bundler","ssrBundler","devServer","transformers","deploy","favicon","webpackModulePath","webpackDevServerModulePath","run","context","from","to","port","Port","getPort","listen","console","appName","devServerContext","getDevServerContext","getDevServer","addDevServer","setOutput","setDevServerClient","runSsr","_this$logger","_this$logger2","_this$logger3","clientBundle","buildClient","errors","info","serverBundle","buildSsr","app","loadSsrApp","workdir","expressApp","createExpressSsr","assets","parseAssets","htmlConfig","title","templateContent","html","minify","ctx","assign","create","targets","entries","getEntries","components","appComponent","outputPath","resolve","calcOutputPath","hostDependencies","getHostDependencies","aliasHostDependencies","capsuleNetwork","undefined","previousTasksResults","getBundler","config","merge","clientConfig","bundleResult","getSsrEntries","ssrConfig","build","ssrAppDir","join","getPublicDir","artifactsDir","buildSsrApp","computeResults","publicDir","dir","ssrPublicDir","getSsrBundler","runner","readFileSync","__dirname","toString","capsule","fs","writeFileSync","capsuleSsrDir","getPath","installer","getInstaller","packageManager","rootDir","cacheRootDirectory","install","getSsrPolicy","ComponentMap","Map","workspacePolicy","WorkspacePolicy","add","lifecycleType","dependencyId","version","getDefaultBundler","getDefaultSsrBundler","path","bundlerContext","getBuildContext","compact","configMutator","buildConfig","replaceTerserPlugin","env","ssrBuildConfig","ssrDir","distDir","getCompiler","targetEntries","map","basename","component","hostRootDir","rootPath","metaData","initiator","envId","id","applicationType","Array","isArray","BitError","publicPath","getAdditionalHostDependencies","exports"],"sources":["react.application.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { join, resolve, basename } from 'path';\nimport type { Application, AppContext, AppBuildContext, AppResult, ApplicationInstance } from '@teambit/application';\nimport type { Bundler, DevServer, BundlerContext, DevServerContext, BundlerHtmlConfig } from '@teambit/bundler';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { ComponentMap } from '@teambit/component';\nimport type { Logger } from '@teambit/logger';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { WorkspacePolicy } from '@teambit/dependency-resolver';\nimport compact from 'lodash.compact';\nimport type { WebpackConfigTransformer } from '@teambit/webpack';\nimport { BitError } from '@teambit/bit-error';\nimport type { ReactEnv } from '../../react.env';\nimport type { ReactAppBuildResult } from './react-build-result';\nimport { html } from '../../webpack';\nimport type { ReactDeployContext } from './deploy-context';\nimport { computeResults } from './compute-results';\nimport { clientConfig, ssrConfig, calcOutputPath, ssrBuildConfig, buildConfig } from './webpack/webpack.app.ssr.config';\nimport { addDevServer, setOutput, replaceTerserPlugin, setDevServerClient } from './webpack/mutators';\nimport { createExpressSsr, loadSsrApp, parseAssets } from './ssr/ssr-express';\n\nexport class ReactApp implements Application {\n constructor(\n readonly name: string,\n readonly entry: string[] | ((path?: string) => Promise<string[]>),\n readonly ssr: string | (() => Promise<string>) | undefined,\n readonly portRange: [number, number],\n private reactEnv: ReactEnv,\n private logger: Logger,\n private dependencyResolver: DependencyResolverMain,\n readonly bundler?: Bundler,\n readonly ssrBundler?: Bundler,\n readonly devServer?: DevServer,\n readonly transformers: WebpackConfigTransformer[] = [],\n readonly deploy?: (context: ReactDeployContext) => Promise<void>,\n readonly favicon?: string,\n readonly webpackModulePath?: string,\n readonly webpackDevServerModulePath?: string\n ) {}\n readonly applicationType = 'react-common-js';\n readonly dir = 'public';\n readonly ssrDir = 'ssr';\n\n async run(context: AppContext): Promise<ApplicationInstance> {\n const [from, to] = this.portRange;\n const port = context.port || (await Port.getPort(from, to));\n\n if (this.devServer) {\n await this.devServer.listen(port);\n this.logger.console(`${context.appName} is listening on http://localhost:${port}`);\n\n return {\n appName: context.appName,\n port,\n };\n }\n\n const devServerContext = await this.getDevServerContext(context);\n const devServer = this.reactEnv.getDevServer(\n devServerContext,\n [addDevServer, setOutput, setDevServerClient, ...this.transformers],\n this.webpackModulePath,\n this.webpackDevServerModulePath\n );\n await devServer.listen(port);\n this.logger.console(`${context.appName} is listening on http://localhost:${port}`);\n\n return {\n appName: context.appName,\n port,\n };\n }\n\n async runSsr(context: AppContext): Promise<AppResult> {\n const [from, to] = this.portRange;\n const port = await Port.getPort(from, to);\n\n // bundle client\n const clientBundle = await this.buildClient(context);\n if (clientBundle.errors.length > 0) return { errors: clientBundle.errors };\n this.logger?.info('[react.application] [ssr] client bundle - complete');\n\n // bundle server\n const serverBundle = await this.buildSsr(context);\n if (serverBundle.errors.length > 0) return { errors: serverBundle.errors };\n this.logger?.info('[react.application] [ssr] server bundle - complete');\n\n // load server-side runtime\n const app = await loadSsrApp(context.workdir, context.appName);\n this.logger?.info('[react.application] [ssr] bundle code - loaded');\n\n const expressApp = createExpressSsr({\n name: context.appName,\n workdir: context.workdir,\n port,\n app,\n assets: parseAssets(clientBundle.assets),\n logger: this.logger,\n });\n\n expressApp.listen(port);\n this.logger.console(`listening on port ${port}`);\n return { port };\n }\n\n private async buildClient(context: AppContext) {\n const htmlConfig: BundlerHtmlConfig[] = [\n {\n title: context.appName,\n templateContent: html(context.appName),\n minify: false,\n favicon: this.favicon,\n },\n ];\n\n // extend, including prototype methods\n const ctx: BundlerContext = Object.assign(Object.create(context), {\n html: htmlConfig,\n targets: [\n {\n entries: await this.getEntries(),\n components: [context.appComponent],\n outputPath: resolve(context.workdir, calcOutputPath(context.appName, 'browser')),\n hostDependencies: this.getHostDependencies(),\n aliasHostDependencies: true,\n },\n ],\n\n // @ts-ignore\n capsuleNetwork: undefined,\n previousTasksResults: [],\n });\n\n const bundler = await this.reactEnv.getBundler(\n ctx,\n [(config) => config.merge([clientConfig()]), ...this.transformers],\n this.webpackModulePath\n );\n\n const bundleResult = await bundler.run();\n return bundleResult[0];\n }\n\n private async buildSsr(context: AppContext) {\n // extend, including prototype methods\n const ctx: BundlerContext = Object.assign(Object.create(context), {\n ...context,\n targets: [\n {\n entries: await this.getSsrEntries(),\n components: [context.appComponent],\n outputPath: resolve(context.workdir, calcOutputPath(context.appName, 'ssr')),\n hostDependencies: this.getHostDependencies(),\n aliasHostDependencies: true,\n },\n ],\n\n // @ts-ignore\n capsuleNetwork: undefined,\n previousTasksResults: [],\n });\n\n const bundler = await this.reactEnv.getBundler(\n ctx,\n [(config) => config.merge([ssrConfig()]), ...this.transformers],\n this.webpackModulePath\n );\n\n const bundleResult = await bundler.run();\n return bundleResult[0];\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 const bundleResult = await bundler.run();\n const ssrAppDir = join(this.getPublicDir(context.artifactsDir));\n\n if (this.ssr) await this.buildSsrApp(context, ssrAppDir);\n return computeResults(bundleResult, {\n publicDir: `${this.getPublicDir(context.artifactsDir)}/${this.dir}`,\n ssrPublicDir: ssrAppDir,\n });\n }\n\n private async buildSsrApp(context: AppBuildContext, ssrAppDir: string) {\n const ssrBundler = await this.getSsrBundler(context);\n await ssrBundler.run();\n const runner = readFileSync(join(__dirname, './ssr/app/runner')).toString();\n context.capsule.fs.writeFileSync(join(ssrAppDir, 'runner.js'), runner);\n const capsuleSsrDir = context.capsule.fs.getPath(ssrAppDir);\n const installer = this.dependencyResolver.getInstaller({\n packageManager: 'teambit.dependencies/yarn',\n rootDir: capsuleSsrDir,\n cacheRootDirectory: capsuleSsrDir,\n });\n await installer.install(capsuleSsrDir, this.getSsrPolicy(), new ComponentMap(new Map()));\n return ssrAppDir;\n }\n\n private getSsrPolicy() {\n const workspacePolicy = new WorkspacePolicy([]);\n workspacePolicy.add({ lifecycleType: 'runtime', dependencyId: 'express', value: { version: '4.18.1' } });\n workspacePolicy.add({\n lifecycleType: 'runtime',\n dependencyId: '@teambit/react.rendering.ssr',\n value: { version: '0.0.3' },\n });\n workspacePolicy.add({\n lifecycleType: 'runtime',\n dependencyId: '@teambit/ui-foundation.ui.pages.static-error',\n value: { version: '0.0.75' },\n });\n\n workspacePolicy.add({\n lifecycleType: 'peer',\n dependencyId: 'react',\n value: { version: '17.0.2' },\n });\n\n workspacePolicy.add({\n lifecycleType: 'peer',\n dependencyId: 'react-dom',\n value: { version: '17.0.2' },\n });\n return workspacePolicy;\n }\n\n private getBundler(context: AppBuildContext) {\n if (this.bundler) return this.bundler;\n return this.getDefaultBundler(context);\n }\n\n private getSsrBundler(context: AppBuildContext) {\n if (this.ssrBundler) return this.ssrBundler;\n return this.getDefaultSsrBundler(context);\n }\n\n private async getDefaultBundler(context: AppBuildContext) {\n const { capsule } = context;\n const publicDir = this.getPublicDir(context.artifactsDir);\n const outputPath = join(capsule.path, publicDir);\n\n const bundlerContext = await this.getBuildContext(context, { outputPath });\n const transformers: WebpackConfigTransformer[] = compact([\n (configMutator) => configMutator.merge(buildConfig({ outputPath: join(outputPath, this.dir) })),\n replaceTerserPlugin(),\n ...this.transformers,\n ]);\n\n const reactEnv = context.env as ReactEnv;\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, transformers, this.webpackModulePath);\n return bundler;\n }\n\n private async getDefaultSsrBundler(context: AppBuildContext) {\n const { capsule } = context;\n const publicDir = this.getPublicDir(context.artifactsDir);\n const outputPath = join(capsule.path, publicDir);\n\n const bundlerContext = await this.getBuildContext(context, { outputPath });\n const transformers: WebpackConfigTransformer[] = compact([\n (configMutator) => configMutator.merge(ssrBuildConfig({ outputPath: join(outputPath, this.ssrDir) })),\n replaceTerserPlugin(),\n ...this.transformers,\n ]);\n\n const reactEnv = context.env as ReactEnv;\n const bundler: Bundler = await reactEnv.getBundler(bundlerContext, transformers, this.webpackModulePath);\n return bundler;\n }\n\n private async getBuildContext(context: AppBuildContext, { outputPath }: { outputPath: string }) {\n const { capsule } = context;\n const reactEnv = context.env as ReactEnv;\n const { distDir } = reactEnv.getCompiler();\n const targetEntries = await this.getEntries(`${capsule.path}/${distDir}`);\n const entries = targetEntries.map((entry) => require.resolve(`${capsule.path}/${distDir}/${basename(entry)}`));\n\n const bundlerContext: BundlerContext = Object.assign(context, {\n targets: [\n {\n components: [capsule?.component],\n entries,\n outputPath,\n hostRootDir: capsule?.path,\n hostDependencies: this.getHostDependencies(),\n aliasHostDependencies: true,\n },\n ],\n entry: [],\n rootPath: '/',\n metaData: {\n initiator: `building app: ${context.name}`,\n envId: context.id,\n },\n });\n\n return bundlerContext;\n }\n\n private getPublicDir(artifactsDir: string) {\n return join(artifactsDir, this.applicationType, this.name);\n }\n\n async getEntries(path?: string): Promise<string[]> {\n if (Array.isArray(this.entry)) return this.entry;\n return this.entry(path);\n }\n\n async getSsrEntries(): Promise<string[]> {\n if (!this.ssr) throw new BitError('tried to build ssr without ssr entries');\n if (typeof this.ssr === 'string') return [this.ssr];\n return [await this.ssr()];\n }\n\n private async getDevServerContext(context: AppContext): Promise<DevServerContext> {\n const entries = await this.getEntries();\n return Object.assign(context, {\n entry: entries,\n rootPath: '',\n publicPath: `public/${this.name}`,\n title: this.name,\n favicon: this.favicon,\n hostDependencies: await this.getHostDependencies(),\n aliasHostDependencies: true,\n });\n }\n\n private getHostDependencies(): string[] {\n return this.reactEnv.getAdditionalHostDependencies();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { Asset } from '@teambit/bundler';
2
- import { Logger } from '@teambit/logger';
1
+ import type { Asset } from '@teambit/bundler';
2
+ import type { Logger } from '@teambit/logger';
3
3
  import type { HtmlAssets } from '@teambit/react.rendering.ssr';
4
4
  import Express from 'express';
5
5
  type ExpressSsrOptions = {
@@ -1 +1 @@
1
- {"version":3,"names":["_uiFoundationUiPages","data","require","_reactRendering","_express","_interopRequireDefault","fs","_interopRequireWildcard","_path","_urlJoin","_webpackAppSsr","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MAGIC_FOLDER","createExpressSsr","name","workdir","port","app","assets","logger","express","Express","publicFolder","resolve","calcOutputPath","use","PUBLIC_PATH","static","request","response","next","query","_rendering","sendFile","info","url","browser","browserFromExpress","session","console","error","consoleError","status","send","serverError","loadSsrApp","appName","entryFile","SSR_ENTRY_FILE","existsSync","Error","entry","specifier","Promise","then","s","parseAssets","publicPath","deadAssets","filter","x","length","css","map","endsWith","urlJoin","js"],"sources":["ssr-express.ts"],"sourcesContent":["import { Asset } from '@teambit/bundler';\nimport { Logger } from '@teambit/logger';\nimport { serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport { browserFromExpress } from '@teambit/react.rendering.ssr';\nimport type { HtmlAssets, SsrSession } from '@teambit/react.rendering.ssr';\n\nimport Express from 'express';\nimport * as fs from 'fs-extra';\nimport { resolve } from 'path';\nimport urlJoin from 'url-join';\n\nimport { calcOutputPath, PUBLIC_PATH, SSR_ENTRY_FILE } from '../webpack/webpack.app.ssr.config';\n\nconst MAGIC_FOLDER = 'public'; // idk where this is comping from\n\ntype ExpressSsrOptions = {\n name: string;\n workdir: string;\n port: number;\n app: any;\n assets: HtmlAssets;\n logger?: Logger;\n};\n\nexport function createExpressSsr({ name, workdir, port, app, assets, logger }: ExpressSsrOptions): Express.Express {\n const express = Express();\n\n const publicFolder = resolve(workdir, calcOutputPath(name, 'browser'), MAGIC_FOLDER);\n\n express.use(PUBLIC_PATH, Express.static(publicFolder));\n express.use((request, response, next) => {\n if (request.query._rendering !== 'client') {\n next();\n return;\n }\n response.sendFile(resolve(workdir, calcOutputPath(name, 'browser'), MAGIC_FOLDER, 'index.html'));\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n express.use(async (request, response) => {\n logger?.info(`[react.application] [ssr] handling \"${request.url}\"`);\n const browser = browserFromExpress(request, port);\n const session: SsrSession = { assets, browser, request, response };\n\n try {\n // the app itself controls the response\n await app(session);\n logger?.console(`[react.application] [ssr] success \"${request.url}\"`);\n } catch (error: any) {\n logger?.consoleError(`[react.application] [ssr] error at \"${request.url}\"`, error);\n response.status(500).send(serverError());\n }\n });\n\n return express;\n}\n\nexport async function loadSsrApp(workdir: string, appName: string) {\n const entryFile = resolve(workdir, calcOutputPath(appName, 'ssr'), MAGIC_FOLDER, SSR_ENTRY_FILE);\n if (!fs.existsSync(entryFile)) throw new Error(`expected ssr bundle entry file at \"${entryFile}\"`);\n\n const entry = await import(entryFile);\n const app = entry?.default;\n if (!app) throw new Error(`bundle entry file has no default export (at \"${entryFile}\")`);\n\n return app;\n}\n\nexport function parseAssets(assets: Asset[], publicPath = PUBLIC_PATH): HtmlAssets {\n const deadAssets = assets.filter((x) => !x.name);\n if (deadAssets.length > 0) throw new Error('missing some build assets (maybe need to turn on cachedAssets, etc)');\n\n return {\n css: assets\n .map((x) => x.name)\n .filter((name) => name?.endsWith('.css'))\n .map((name) => urlJoin(publicPath, name)),\n js: assets\n .map((x) => x.name)\n .filter((name) => name?.endsWith('.js'))\n .map((name) => urlJoin(publicPath, name)),\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uiFoundationUiPages","data","require","_reactRendering","_express","_interopRequireDefault","fs","_interopRequireWildcard","_path","_urlJoin","_webpackAppSsr","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MAGIC_FOLDER","createExpressSsr","name","workdir","port","app","assets","logger","express","Express","publicFolder","resolve","calcOutputPath","use","PUBLIC_PATH","static","request","response","next","query","_rendering","sendFile","info","url","browser","browserFromExpress","session","console","error","consoleError","status","send","serverError","loadSsrApp","appName","entryFile","SSR_ENTRY_FILE","existsSync","Error","entry","specifier","Promise","then","s","parseAssets","publicPath","deadAssets","filter","x","length","css","map","endsWith","urlJoin","js"],"sources":["ssr-express.ts"],"sourcesContent":["import type { Asset } from '@teambit/bundler';\nimport type { Logger } from '@teambit/logger';\nimport { serverError } from '@teambit/ui-foundation.ui.pages.static-error';\nimport { browserFromExpress } from '@teambit/react.rendering.ssr';\nimport type { HtmlAssets, SsrSession } from '@teambit/react.rendering.ssr';\n\nimport Express from 'express';\nimport * as fs from 'fs-extra';\nimport { resolve } from 'path';\nimport urlJoin from 'url-join';\n\nimport { calcOutputPath, PUBLIC_PATH, SSR_ENTRY_FILE } from '../webpack/webpack.app.ssr.config';\n\nconst MAGIC_FOLDER = 'public'; // idk where this is comping from\n\ntype ExpressSsrOptions = {\n name: string;\n workdir: string;\n port: number;\n app: any;\n assets: HtmlAssets;\n logger?: Logger;\n};\n\nexport function createExpressSsr({ name, workdir, port, app, assets, logger }: ExpressSsrOptions): Express.Express {\n const express = Express();\n\n const publicFolder = resolve(workdir, calcOutputPath(name, 'browser'), MAGIC_FOLDER);\n\n express.use(PUBLIC_PATH, Express.static(publicFolder));\n express.use((request, response, next) => {\n if (request.query._rendering !== 'client') {\n next();\n return;\n }\n response.sendFile(resolve(workdir, calcOutputPath(name, 'browser'), MAGIC_FOLDER, 'index.html'));\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n express.use(async (request, response) => {\n logger?.info(`[react.application] [ssr] handling \"${request.url}\"`);\n const browser = browserFromExpress(request, port);\n const session: SsrSession = { assets, browser, request, response };\n\n try {\n // the app itself controls the response\n await app(session);\n logger?.console(`[react.application] [ssr] success \"${request.url}\"`);\n } catch (error: any) {\n logger?.consoleError(`[react.application] [ssr] error at \"${request.url}\"`, error);\n response.status(500).send(serverError());\n }\n });\n\n return express;\n}\n\nexport async function loadSsrApp(workdir: string, appName: string) {\n const entryFile = resolve(workdir, calcOutputPath(appName, 'ssr'), MAGIC_FOLDER, SSR_ENTRY_FILE);\n if (!fs.existsSync(entryFile)) throw new Error(`expected ssr bundle entry file at \"${entryFile}\"`);\n\n const entry = await import(entryFile);\n const app = entry?.default;\n if (!app) throw new Error(`bundle entry file has no default export (at \"${entryFile}\")`);\n\n return app;\n}\n\nexport function parseAssets(assets: Asset[], publicPath = PUBLIC_PATH): HtmlAssets {\n const deadAssets = assets.filter((x) => !x.name);\n if (deadAssets.length > 0) throw new Error('missing some build assets (maybe need to turn on cachedAssets, etc)');\n\n return {\n css: assets\n .map((x) => x.name)\n .filter((name) => name?.endsWith('.css'))\n .map((name) => urlJoin(publicPath, name)),\n js: assets\n .map((x) => x.name)\n .filter((name) => name?.endsWith('.js'))\n .map((name) => urlJoin(publicPath, name)),\n };\n}\n"],"mappings":";;;;;;;;AAEA,SAAAA,qBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,oBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,gBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,eAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,GAAA;EAAA,MAAAL,IAAA,GAAAM,uBAAA,CAAAL,OAAA;EAAAI,EAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,MAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,KAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,SAAA;EAAA,MAAAR,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAO,QAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,eAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,cAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgG,SAAAI,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAEhG,MAAMW,YAAY,GAAG,QAAQ,CAAC,CAAC;;AAWxB,SAASC,gBAAgBA,CAAC;EAAEC,IAAI;EAAEC,OAAO;EAAEC,IAAI;EAAEC,GAAG;EAAEC,MAAM;EAAEC;AAA0B,CAAC,EAAmB;EACjH,MAAMC,OAAO,GAAG,IAAAC,kBAAO,EAAC,CAAC;EAEzB,MAAMC,YAAY,GAAG,IAAAC,eAAO,EAACR,OAAO,EAAE,IAAAS,+BAAc,EAACV,IAAI,EAAE,SAAS,CAAC,EAAEF,YAAY,CAAC;EAEpFQ,OAAO,CAACK,GAAG,CAACC,4BAAW,EAAEL,kBAAO,CAACM,MAAM,CAACL,YAAY,CAAC,CAAC;EACtDF,OAAO,CAACK,GAAG,CAAC,CAACG,OAAO,EAAEC,QAAQ,EAAEC,IAAI,KAAK;IACvC,IAAIF,OAAO,CAACG,KAAK,CAACC,UAAU,KAAK,QAAQ,EAAE;MACzCF,IAAI,CAAC,CAAC;MACN;IACF;IACAD,QAAQ,CAACI,QAAQ,CAAC,IAAAV,eAAO,EAACR,OAAO,EAAE,IAAAS,+BAAc,EAACV,IAAI,EAAE,SAAS,CAAC,EAAEF,YAAY,EAAE,YAAY,CAAC,CAAC;EAClG,CAAC,CAAC;EACF;EACAQ,OAAO,CAACK,GAAG,CAAC,OAAOG,OAAO,EAAEC,QAAQ,KAAK;IACvCV,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEe,IAAI,CAAC,uCAAuCN,OAAO,CAACO,GAAG,GAAG,CAAC;IACnE,MAAMC,OAAO,GAAG,IAAAC,oCAAkB,EAACT,OAAO,EAAEZ,IAAI,CAAC;IACjD,MAAMsB,OAAmB,GAAG;MAAEpB,MAAM;MAAEkB,OAAO;MAAER,OAAO;MAAEC;IAAS,CAAC;IAElE,IAAI;MACF;MACA,MAAMZ,GAAG,CAACqB,OAAO,CAAC;MAClBnB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEoB,OAAO,CAAC,sCAAsCX,OAAO,CAACO,GAAG,GAAG,CAAC;IACvE,CAAC,CAAC,OAAOK,KAAU,EAAE;MACnBrB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEsB,YAAY,CAAC,uCAAuCb,OAAO,CAACO,GAAG,GAAG,EAAEK,KAAK,CAAC;MAClFX,QAAQ,CAACa,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAAC,kCAAW,EAAC,CAAC,CAAC;IAC1C;EACF,CAAC,CAAC;EAEF,OAAOxB,OAAO;AAChB;AAEO,eAAeyB,UAAUA,CAAC9B,OAAe,EAAE+B,OAAe,EAAE;EACjE,MAAMC,SAAS,GAAG,IAAAxB,eAAO,EAACR,OAAO,EAAE,IAAAS,+BAAc,EAACsB,OAAO,EAAE,KAAK,CAAC,EAAElC,YAAY,EAAEoC,+BAAc,CAAC;EAChG,IAAI,CAAC7D,EAAE,CAAD,CAAC,CAAC8D,UAAU,CAACF,SAAS,CAAC,EAAE,MAAM,IAAIG,KAAK,CAAC,sCAAsCH,SAAS,GAAG,CAAC;EAElG,MAAMI,KAAK,GAAG,OAAAC,SAAA,QAAAC,OAAA,CAAAxD,CAAA,IAAAA,CAAA,IAAAuD,SAAA,KAAAE,IAAA,CAAAC,CAAA,IAAAnE,uBAAA,CAAAL,OAAA,CAAAwE,CAAA,KAAaR,SAAS,CAAC;EACrC,MAAM9B,GAAG,GAAGkC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEzD,OAAO;EAC1B,IAAI,CAACuB,GAAG,EAAE,MAAM,IAAIiC,KAAK,CAAC,gDAAgDH,SAAS,IAAI,CAAC;EAExF,OAAO9B,GAAG;AACZ;AAEO,SAASuC,WAAWA,CAACtC,MAAe,EAAEuC,UAAU,GAAG/B,4BAAW,EAAc;EACjF,MAAMgC,UAAU,GAAGxC,MAAM,CAACyC,MAAM,CAAEC,CAAC,IAAK,CAACA,CAAC,CAAC9C,IAAI,CAAC;EAChD,IAAI4C,UAAU,CAACG,MAAM,GAAG,CAAC,EAAE,MAAM,IAAIX,KAAK,CAAC,qEAAqE,CAAC;EAEjH,OAAO;IACLY,GAAG,EAAE5C,MAAM,CACR6C,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAAC9C,IAAI,CAAC,CAClB6C,MAAM,CAAE7C,IAAI,IAAKA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkD,QAAQ,CAAC,MAAM,CAAC,CAAC,CACxCD,GAAG,CAAEjD,IAAI,IAAK,IAAAmD,kBAAO,EAACR,UAAU,EAAE3C,IAAI,CAAC,CAAC;IAC3CoD,EAAE,EAAEhD,MAAM,CACP6C,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAAC9C,IAAI,CAAC,CAClB6C,MAAM,CAAE7C,IAAI,IAAKA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkD,QAAQ,CAAC,KAAK,CAAC,CAAC,CACvCD,GAAG,CAAEjD,IAAI,IAAK,IAAAmD,kBAAO,EAACR,UAAU,EAAE3C,IAAI,CAAC;EAC5C,CAAC;AACH","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { WebpackConfigMutator } from '@teambit/webpack';
1
+ import type { WebpackConfigMutator } from '@teambit/webpack';
2
2
  export declare function addDevServer(configMutator: WebpackConfigMutator): WebpackConfigMutator;
3
3
  export declare function setOutput(configMutator: WebpackConfigMutator): WebpackConfigMutator;
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","_terserWebpackPlugin","_interopRequireDefault","e","__esModule","default","addDevServer","configMutator","addTopLevel","allowedHosts","historyApiFallback","index","disableDotRule","headers","setOutput","raw","output","publicPath","setDevServerClient","devServer","client","webSocketURL","replaceTerserPlugin","_configMutator$raw$op","_configMutator$raw$op2","_configMutator$raw$op3","optimization","minimizer","remove","constructor","name","terserer","CreateTerserPlugin","push","TerserPlugin","minify","esbuildMinify","terserOptions"],"sources":["mutators.ts"],"sourcesContent":["import { WebpackConfigMutator } from '@teambit/webpack';\nimport { remove } from 'lodash';\nimport TerserPlugin from 'terser-webpack-plugin';\n\nexport function addDevServer(configMutator: WebpackConfigMutator) {\n return configMutator.addTopLevel('devServer', {\n allowedHosts: 'all',\n historyApiFallback: {\n index: '/index.html',\n disableDotRule: true,\n },\n headers: {\n 'Access-Control-Allow-Origin': '*',\n },\n });\n}\n\nexport function setOutput(configMutator: WebpackConfigMutator) {\n if (!configMutator.raw.output) configMutator.raw.output = {};\n configMutator.raw.output.publicPath = '/';\n\n return configMutator;\n}\n\n/**\n * Setting the webSocketURL to use port 0\n * This is will make the dev server to use the same port as the website\n * This is mainly required for a cases when the port is forwarded to a different port\n * For example when using online vscode instances\n * @param configMutator\n * @returns\n */\nexport function setDevServerClient(configMutator: WebpackConfigMutator) {\n if (!configMutator.raw.devServer) configMutator.raw.devServer = {};\n\n configMutator.raw.devServer.client = {\n webSocketURL: 'ws://0.0.0.0:0/ws',\n };\n\n return configMutator;\n}\n\nexport function replaceTerserPlugin() {\n return (configMutator: WebpackConfigMutator) => {\n if (!configMutator.raw.optimization?.minimizer) return configMutator;\n\n remove(configMutator.raw.optimization?.minimizer, (minimizer: any) => {\n return minimizer.constructor.name === 'TerserPlugin';\n });\n\n const terserer = CreateTerserPlugin();\n configMutator.raw.optimization?.minimizer.push(terserer);\n\n return configMutator;\n };\n}\n\nfunction CreateTerserPlugin() {\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"],"mappings":";;;;;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,qBAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,oBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiD,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C,SAASG,YAAYA,CAACC,aAAmC,EAAE;EAChE,OAAOA,aAAa,CAACC,WAAW,CAAC,WAAW,EAAE;IAC5CC,YAAY,EAAE,KAAK;IACnBC,kBAAkB,EAAE;MAClBC,KAAK,EAAE,aAAa;MACpBC,cAAc,EAAE;IAClB,CAAC;IACDC,OAAO,EAAE;MACP,6BAA6B,EAAE;IACjC;EACF,CAAC,CAAC;AACJ;AAEO,SAASC,SAASA,CAACP,aAAmC,EAAE;EAC7D,IAAI,CAACA,aAAa,CAACQ,GAAG,CAACC,MAAM,EAAET,aAAa,CAACQ,GAAG,CAACC,MAAM,GAAG,CAAC,CAAC;EAC5DT,aAAa,CAACQ,GAAG,CAACC,MAAM,CAACC,UAAU,GAAG,GAAG;EAEzC,OAAOV,aAAa;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,kBAAkBA,CAACX,aAAmC,EAAE;EACtE,IAAI,CAACA,aAAa,CAACQ,GAAG,CAACI,SAAS,EAAEZ,aAAa,CAACQ,GAAG,CAACI,SAAS,GAAG,CAAC,CAAC;EAElEZ,aAAa,CAACQ,GAAG,CAACI,SAAS,CAACC,MAAM,GAAG;IACnCC,YAAY,EAAE;EAChB,CAAC;EAED,OAAOd,aAAa;AACtB;AAEO,SAASe,mBAAmBA,CAAA,EAAG;EACpC,OAAQf,aAAmC,IAAK;IAAA,IAAAgB,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC9C,IAAI,GAAAF,qBAAA,GAAChB,aAAa,CAACQ,GAAG,CAACW,YAAY,cAAAH,qBAAA,eAA9BA,qBAAA,CAAgCI,SAAS,GAAE,OAAOpB,aAAa;IAEpE,IAAAqB,gBAAM,GAAAJ,sBAAA,GAACjB,aAAa,CAACQ,GAAG,CAACW,YAAY,cAAAF,sBAAA,uBAA9BA,sBAAA,CAAgCG,SAAS,EAAGA,SAAc,IAAK;MACpE,OAAOA,SAAS,CAACE,WAAW,CAACC,IAAI,KAAK,cAAc;IACtD,CAAC,CAAC;IAEF,MAAMC,QAAQ,GAAGC,kBAAkB,CAAC,CAAC;IACrC,CAAAP,sBAAA,GAAAlB,aAAa,CAACQ,GAAG,CAACW,YAAY,cAAAD,sBAAA,eAA9BA,sBAAA,CAAgCE,SAAS,CAACM,IAAI,CAACF,QAAQ,CAAC;IAExD,OAAOxB,aAAa;EACtB,CAAC;AACH;AAEA,SAASyB,kBAAkBA,CAAA,EAAG;EAC5B,OAAO,KAAIE,8BAAY,EAAC;IACtBC,MAAM,EAAED,8BAAY,CAACE,aAAa;IAClC;IACA;IACAC,aAAa,EAAE;MACbF,MAAM,EAAE;IACV;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["_lodash","data","require","_terserWebpackPlugin","_interopRequireDefault","e","__esModule","default","addDevServer","configMutator","addTopLevel","allowedHosts","historyApiFallback","index","disableDotRule","headers","setOutput","raw","output","publicPath","setDevServerClient","devServer","client","webSocketURL","replaceTerserPlugin","_configMutator$raw$op","_configMutator$raw$op2","_configMutator$raw$op3","optimization","minimizer","remove","constructor","name","terserer","CreateTerserPlugin","push","TerserPlugin","minify","esbuildMinify","terserOptions"],"sources":["mutators.ts"],"sourcesContent":["import type { WebpackConfigMutator } from '@teambit/webpack';\nimport { remove } from 'lodash';\nimport TerserPlugin from 'terser-webpack-plugin';\n\nexport function addDevServer(configMutator: WebpackConfigMutator) {\n return configMutator.addTopLevel('devServer', {\n allowedHosts: 'all',\n historyApiFallback: {\n index: '/index.html',\n disableDotRule: true,\n },\n headers: {\n 'Access-Control-Allow-Origin': '*',\n },\n });\n}\n\nexport function setOutput(configMutator: WebpackConfigMutator) {\n if (!configMutator.raw.output) configMutator.raw.output = {};\n configMutator.raw.output.publicPath = '/';\n\n return configMutator;\n}\n\n/**\n * Setting the webSocketURL to use port 0\n * This is will make the dev server to use the same port as the website\n * This is mainly required for a cases when the port is forwarded to a different port\n * For example when using online vscode instances\n * @param configMutator\n * @returns\n */\nexport function setDevServerClient(configMutator: WebpackConfigMutator) {\n if (!configMutator.raw.devServer) configMutator.raw.devServer = {};\n\n configMutator.raw.devServer.client = {\n webSocketURL: 'ws://0.0.0.0:0/ws',\n };\n\n return configMutator;\n}\n\nexport function replaceTerserPlugin() {\n return (configMutator: WebpackConfigMutator) => {\n if (!configMutator.raw.optimization?.minimizer) return configMutator;\n\n remove(configMutator.raw.optimization?.minimizer, (minimizer: any) => {\n return minimizer.constructor.name === 'TerserPlugin';\n });\n\n const terserer = CreateTerserPlugin();\n configMutator.raw.optimization?.minimizer.push(terserer);\n\n return configMutator;\n };\n}\n\nfunction CreateTerserPlugin() {\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"],"mappings":";;;;;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,qBAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,oBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiD,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C,SAASG,YAAYA,CAACC,aAAmC,EAAE;EAChE,OAAOA,aAAa,CAACC,WAAW,CAAC,WAAW,EAAE;IAC5CC,YAAY,EAAE,KAAK;IACnBC,kBAAkB,EAAE;MAClBC,KAAK,EAAE,aAAa;MACpBC,cAAc,EAAE;IAClB,CAAC;IACDC,OAAO,EAAE;MACP,6BAA6B,EAAE;IACjC;EACF,CAAC,CAAC;AACJ;AAEO,SAASC,SAASA,CAACP,aAAmC,EAAE;EAC7D,IAAI,CAACA,aAAa,CAACQ,GAAG,CAACC,MAAM,EAAET,aAAa,CAACQ,GAAG,CAACC,MAAM,GAAG,CAAC,CAAC;EAC5DT,aAAa,CAACQ,GAAG,CAACC,MAAM,CAACC,UAAU,GAAG,GAAG;EAEzC,OAAOV,aAAa;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,kBAAkBA,CAACX,aAAmC,EAAE;EACtE,IAAI,CAACA,aAAa,CAACQ,GAAG,CAACI,SAAS,EAAEZ,aAAa,CAACQ,GAAG,CAACI,SAAS,GAAG,CAAC,CAAC;EAElEZ,aAAa,CAACQ,GAAG,CAACI,SAAS,CAACC,MAAM,GAAG;IACnCC,YAAY,EAAE;EAChB,CAAC;EAED,OAAOd,aAAa;AACtB;AAEO,SAASe,mBAAmBA,CAAA,EAAG;EACpC,OAAQf,aAAmC,IAAK;IAAA,IAAAgB,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC9C,IAAI,GAAAF,qBAAA,GAAChB,aAAa,CAACQ,GAAG,CAACW,YAAY,cAAAH,qBAAA,eAA9BA,qBAAA,CAAgCI,SAAS,GAAE,OAAOpB,aAAa;IAEpE,IAAAqB,gBAAM,GAAAJ,sBAAA,GAACjB,aAAa,CAACQ,GAAG,CAACW,YAAY,cAAAF,sBAAA,uBAA9BA,sBAAA,CAAgCG,SAAS,EAAGA,SAAc,IAAK;MACpE,OAAOA,SAAS,CAACE,WAAW,CAACC,IAAI,KAAK,cAAc;IACtD,CAAC,CAAC;IAEF,MAAMC,QAAQ,GAAGC,kBAAkB,CAAC,CAAC;IACrC,CAAAP,sBAAA,GAAAlB,aAAa,CAACQ,GAAG,CAACW,YAAY,cAAAD,sBAAA,eAA9BA,sBAAA,CAAgCE,SAAS,CAACM,IAAI,CAACF,QAAQ,CAAC;IAExD,OAAOxB,aAAa;EACtB,CAAC;AACH;AAEA,SAASyB,kBAAkBA,CAAA,EAAG;EAC5B,OAAO,KAAIE,8BAAY,EAAC;IACtBC,MAAM,EAAED,8BAAY,CAACE,aAAa;IAClC;IACA;IACAC,aAAa,EAAE;MACbF,MAAM,EAAE;IACV;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.react_react@1.0.667/dist/react.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.react_react@1.0.667/dist/react.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.react_react@1.0.668/dist/react.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.react_react@1.0.668/dist/react.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,5 +1,6 @@
1
- import { FunctionLikeSchema, SchemaNode } from '@teambit/semantics.entities.semantic-schema';
2
- import { SchemaNodeTransformer } from '@teambit/typescript';
1
+ import type { SchemaNode } from '@teambit/semantics.entities.semantic-schema';
2
+ import { FunctionLikeSchema } from '@teambit/semantics.entities.semantic-schema';
3
+ import type { SchemaNodeTransformer } from '@teambit/typescript';
3
4
  export declare class ReactAPITransformer implements SchemaNodeTransformer {
4
5
  predicate(node: SchemaNode): boolean;
5
6
  transform(node: FunctionLikeSchema): Promise<SchemaNode>;
@@ -1 +1 @@
1
- {"version":3,"names":["_semanticsEntities","data","require","_react","REACT_FILE_EXT","ReactAPITransformer","predicate","node","isFunctionLike","FunctionLikeSchema","functionNode","isReactFile","some","r","location","filePath","includes","params","length","returnsPotentialReactElement","getReturnTypeName","transform","ReactSchema","name","TypeRefSchema","returnType","undefined","signature","modifiers","doc","typeParams","toString","exports"],"sources":["react.api.transformer.ts"],"sourcesContent":["import {\n FunctionLikeSchema,\n ParameterSchema,\n SchemaNode,\n TypeRefSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaNodeTransformer } from '@teambit/typescript';\nimport { ReactSchema } from './react.schema';\n\nconst REACT_FILE_EXT = ['.tsx', '.jsx'];\n\n// only detects functional react components for now\nexport class ReactAPITransformer implements SchemaNodeTransformer {\n predicate(node: SchemaNode) {\n const isFunctionLike = node instanceof FunctionLikeSchema;\n if (!isFunctionLike) return false;\n const functionNode = node as FunctionLikeSchema;\n const isReactFile = REACT_FILE_EXT.some((r) => functionNode.location.filePath.includes(r));\n if (!isReactFile) return false;\n const params = functionNode.params;\n if (params.length > 1) return false;\n const returnsPotentialReactElement = [\n 'JSX.Element',\n 'React.ReactNode',\n 'null',\n 'undefined',\n 'React.ReactChild',\n 'React.ReactFragment',\n 'React.ReactPortal',\n 'React.JSX.Element',\n ].includes(this.getReturnTypeName(node));\n if (!returnsPotentialReactElement) return false;\n return true;\n }\n\n async transform(node: FunctionLikeSchema): Promise<SchemaNode> {\n return new ReactSchema(\n node.location,\n node.name,\n new TypeRefSchema(node.returnType.location, this.getReturnTypeName(node), undefined, 'react'),\n node.params[0] as ParameterSchema<TypeRefSchema>,\n node.signature,\n node.modifiers,\n node.doc,\n node.typeParams\n );\n }\n\n private getReturnTypeName(node: FunctionLikeSchema): string {\n const returnType = node.returnType;\n return returnType.name ?? returnType.toString();\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,MAAMG,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;;AAEvC;AACO,MAAMC,mBAAmB,CAAkC;EAChEC,SAASA,CAACC,IAAgB,EAAE;IAC1B,MAAMC,cAAc,GAAGD,IAAI,YAAYE,uCAAkB;IACzD,IAAI,CAACD,cAAc,EAAE,OAAO,KAAK;IACjC,MAAME,YAAY,GAAGH,IAA0B;IAC/C,MAAMI,WAAW,GAAGP,cAAc,CAACQ,IAAI,CAAEC,CAAC,IAAKH,YAAY,CAACI,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAACH,CAAC,CAAC,CAAC;IAC1F,IAAI,CAACF,WAAW,EAAE,OAAO,KAAK;IAC9B,MAAMM,MAAM,GAAGP,YAAY,CAACO,MAAM;IAClC,IAAIA,MAAM,CAACC,MAAM,GAAG,CAAC,EAAE,OAAO,KAAK;IACnC,MAAMC,4BAA4B,GAAG,CACnC,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,CACpB,CAACH,QAAQ,CAAC,IAAI,CAACI,iBAAiB,CAACb,IAAI,CAAC,CAAC;IACxC,IAAI,CAACY,4BAA4B,EAAE,OAAO,KAAK;IAC/C,OAAO,IAAI;EACb;EAEA,MAAME,SAASA,CAACd,IAAwB,EAAuB;IAC7D,OAAO,KAAIe,oBAAW,EACpBf,IAAI,CAACO,QAAQ,EACbP,IAAI,CAACgB,IAAI,EACT,KAAIC,kCAAa,EAACjB,IAAI,CAACkB,UAAU,CAACX,QAAQ,EAAE,IAAI,CAACM,iBAAiB,CAACb,IAAI,CAAC,EAAEmB,SAAS,EAAE,OAAO,CAAC,EAC7FnB,IAAI,CAACU,MAAM,CAAC,CAAC,CAAC,EACdV,IAAI,CAACoB,SAAS,EACdpB,IAAI,CAACqB,SAAS,EACdrB,IAAI,CAACsB,GAAG,EACRtB,IAAI,CAACuB,UACP,CAAC;EACH;EAEQV,iBAAiBA,CAACb,IAAwB,EAAU;IAC1D,MAAMkB,UAAU,GAAGlB,IAAI,CAACkB,UAAU;IAClC,OAAOA,UAAU,CAACF,IAAI,IAAIE,UAAU,CAACM,QAAQ,CAAC,CAAC;EACjD;AACF;AAACC,OAAA,CAAA3B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_semanticsEntities","data","require","_react","REACT_FILE_EXT","ReactAPITransformer","predicate","node","isFunctionLike","FunctionLikeSchema","functionNode","isReactFile","some","r","location","filePath","includes","params","length","returnsPotentialReactElement","getReturnTypeName","transform","ReactSchema","name","TypeRefSchema","returnType","undefined","signature","modifiers","doc","typeParams","toString","exports"],"sources":["react.api.transformer.ts"],"sourcesContent":["import type { ParameterSchema, SchemaNode } from '@teambit/semantics.entities.semantic-schema';\nimport { FunctionLikeSchema, TypeRefSchema } from '@teambit/semantics.entities.semantic-schema';\nimport type { SchemaNodeTransformer } from '@teambit/typescript';\nimport { ReactSchema } from './react.schema';\n\nconst REACT_FILE_EXT = ['.tsx', '.jsx'];\n\n// only detects functional react components for now\nexport class ReactAPITransformer implements SchemaNodeTransformer {\n predicate(node: SchemaNode) {\n const isFunctionLike = node instanceof FunctionLikeSchema;\n if (!isFunctionLike) return false;\n const functionNode = node as FunctionLikeSchema;\n const isReactFile = REACT_FILE_EXT.some((r) => functionNode.location.filePath.includes(r));\n if (!isReactFile) return false;\n const params = functionNode.params;\n if (params.length > 1) return false;\n const returnsPotentialReactElement = [\n 'JSX.Element',\n 'React.ReactNode',\n 'null',\n 'undefined',\n 'React.ReactChild',\n 'React.ReactFragment',\n 'React.ReactPortal',\n 'React.JSX.Element',\n ].includes(this.getReturnTypeName(node));\n if (!returnsPotentialReactElement) return false;\n return true;\n }\n\n async transform(node: FunctionLikeSchema): Promise<SchemaNode> {\n return new ReactSchema(\n node.location,\n node.name,\n new TypeRefSchema(node.returnType.location, this.getReturnTypeName(node), undefined, 'react'),\n node.params[0] as ParameterSchema<TypeRefSchema>,\n node.signature,\n node.modifiers,\n node.doc,\n node.typeParams\n );\n }\n\n private getReturnTypeName(node: FunctionLikeSchema): string {\n const returnType = node.returnType;\n return returnType.name ?? returnType.toString();\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,MAAMG,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;;AAEvC;AACO,MAAMC,mBAAmB,CAAkC;EAChEC,SAASA,CAACC,IAAgB,EAAE;IAC1B,MAAMC,cAAc,GAAGD,IAAI,YAAYE,uCAAkB;IACzD,IAAI,CAACD,cAAc,EAAE,OAAO,KAAK;IACjC,MAAME,YAAY,GAAGH,IAA0B;IAC/C,MAAMI,WAAW,GAAGP,cAAc,CAACQ,IAAI,CAAEC,CAAC,IAAKH,YAAY,CAACI,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAACH,CAAC,CAAC,CAAC;IAC1F,IAAI,CAACF,WAAW,EAAE,OAAO,KAAK;IAC9B,MAAMM,MAAM,GAAGP,YAAY,CAACO,MAAM;IAClC,IAAIA,MAAM,CAACC,MAAM,GAAG,CAAC,EAAE,OAAO,KAAK;IACnC,MAAMC,4BAA4B,GAAG,CACnC,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,CACpB,CAACH,QAAQ,CAAC,IAAI,CAACI,iBAAiB,CAACb,IAAI,CAAC,CAAC;IACxC,IAAI,CAACY,4BAA4B,EAAE,OAAO,KAAK;IAC/C,OAAO,IAAI;EACb;EAEA,MAAME,SAASA,CAACd,IAAwB,EAAuB;IAC7D,OAAO,KAAIe,oBAAW,EACpBf,IAAI,CAACO,QAAQ,EACbP,IAAI,CAACgB,IAAI,EACT,KAAIC,kCAAa,EAACjB,IAAI,CAACkB,UAAU,CAACX,QAAQ,EAAE,IAAI,CAACM,iBAAiB,CAACb,IAAI,CAAC,EAAEmB,SAAS,EAAE,OAAO,CAAC,EAC7FnB,IAAI,CAACU,MAAM,CAAC,CAAC,CAAC,EACdV,IAAI,CAACoB,SAAS,EACdpB,IAAI,CAACqB,SAAS,EACdrB,IAAI,CAACsB,GAAG,EACRtB,IAAI,CAACuB,UACP,CAAC;EACH;EAEQV,iBAAiBA,CAACb,IAAwB,EAAU;IAC1D,MAAMkB,UAAU,GAAGlB,IAAI,CAACkB,UAAU;IAClC,OAAOA,UAAU,CAACF,IAAI,IAAIE,UAAU,CAACM,QAAQ,CAAC,CAAC;EACjD;AACF;AAACC,OAAA,CAAA3B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,22 +1,23 @@
1
- import ts, { TsConfigSourceFile } from 'typescript';
2
- import { BuildTask } from '@teambit/builder';
3
- import { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';
4
- import { PreviewStrategyName } from '@teambit/preview';
5
- import { PrettierConfigTransformer } from '@teambit/defender.prettier.config-mutator';
6
- import { CompilerMain } from '@teambit/compiler';
7
- import { BuilderEnv, CompilerEnv, DependenciesEnv, DevEnv, LinterEnv, PackageEnv, TesterEnv, FormatterEnv, PipeServiceModifier, PipeServiceModifiersMap } from '@teambit/envs';
8
- import { PackageJsonProps, PkgMain } from '@teambit/pkg';
9
- import { Tester, TesterMain } from '@teambit/tester';
10
- import { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';
11
- import { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';
12
- import { Workspace } from '@teambit/workspace';
13
- import { EslintConfigTransformer } from '@teambit/defender.eslint.config-mutator';
14
- import { DependencyResolverMain } from '@teambit/dependency-resolver';
15
- import { Linter, LinterContext } from '@teambit/linter';
16
- import { Formatter, FormatterContext } from '@teambit/formatter';
17
- import { SchemaExtractor } from '@teambit/schema';
18
- import { Logger } from '@teambit/logger';
19
- import { ConfigWriterEntry } from '@teambit/workspace-config-files';
1
+ import type { TsConfigSourceFile } from 'typescript';
2
+ import ts from 'typescript';
3
+ import type { BuildTask } from '@teambit/builder';
4
+ import type { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';
5
+ import type { PreviewStrategyName } from '@teambit/preview';
6
+ import type { PrettierConfigTransformer } from '@teambit/defender.prettier.config-mutator';
7
+ import type { CompilerMain } from '@teambit/compiler';
8
+ import type { BuilderEnv, CompilerEnv, DependenciesEnv, DevEnv, LinterEnv, PackageEnv, TesterEnv, FormatterEnv, PipeServiceModifier, PipeServiceModifiersMap } from '@teambit/envs';
9
+ import type { PackageJsonProps, PkgMain } from '@teambit/pkg';
10
+ import type { Tester, TesterMain } from '@teambit/tester';
11
+ import type { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';
12
+ import type { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';
13
+ import type { Workspace } from '@teambit/workspace';
14
+ import type { EslintConfigTransformer } from '@teambit/defender.eslint.config-mutator';
15
+ import type { DependencyResolverMain } from '@teambit/dependency-resolver';
16
+ import type { Linter, LinterContext } from '@teambit/linter';
17
+ import type { Formatter, FormatterContext } from '@teambit/formatter';
18
+ import type { SchemaExtractor } from '@teambit/schema';
19
+ import type { Logger } from '@teambit/logger';
20
+ import type { ConfigWriterEntry } from '@teambit/workspace-config-files';
20
21
  import type { ReactMainConfig } from './react.main.runtime';
21
22
  import type { WorkerMain } from '@teambit/worker';
22
23
  import type { DevFilesMain } from '@teambit/dev-files';