@teambit/workspace 1.0.265 → 1.0.267

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.
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <testsuites tests="0" failures="0" errors="0" skipped="0">
3
- <testsuite name="teambit.workspace/workspace@1.0.265" tests="0" failures="0" errors="0" skipped="0"/>
3
+ <testsuite name="teambit.workspace/workspace@1.0.267" tests="0" failures="0" errors="0" skipped="0"/>
4
4
  </testsuites>
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see teambit_workspace_workspace-preview.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.workspace/workspace-preview"]=t():e["teambit.workspace/workspace-preview"]=t()}(self,(()=>(()=>{var e={88443:(e,t)=>{var n;!function(){"use strict";var o={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)&&n.length){var i=r.apply(null,n);i&&e.push(i)}else if("object"===a)for(var s in n)o.call(n,s)&&n[s]&&e.push(s)}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},69685:(e,t)=>{var n;!function(){"use strict";var o={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)){if(n.length){var i=r.apply(null,n);i&&e.push(i)}}else if("object"===a)if(n.toString===Object.prototype.toString)for(var s in n)o.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},78552:()=>{!function(){if("undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof HTMLElement){var e=!1;try{var t=document.createElement("div");t.addEventListener("focus",(function(e){e.preventDefault(),e.stopPropagation()}),!0),t.focus(Object.defineProperty({},"preventScroll",{get:function(){e=!0}}))}catch(e){}void 0!==HTMLElement.prototype.nativeFocus||e||(HTMLElement.prototype.nativeFocus=HTMLElement.prototype.focus,HTMLElement.prototype.focus=function(e){var t=window.scrollY||window.pageYOffset;this.nativeFocus(),e&&e.preventScroll&&setTimeout((function(){window.scroll(window.scrollX||window.pageXOffset,t)}),0)})}}()},89380:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNavigator=t.isBrowser=t.off=t.on=t.noop=void 0,t.noop=function(){},t.on=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)},t.off=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)},t.isBrowser="undefined"!=typeof window,t.isNavigator="undefined"!=typeof navigator},64210:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(41594);t.default=function(e){o.useEffect(e,[])}},48896:(e,t,n)=>{"use strict";var o=n(41594),r=n(89380),a=r.isBrowser?window:null,i=function(e){return!!e.addEventListener},s=function(e){return!!e.on};t.A=function(e,t,n,c){void 0===n&&(n=a),o.useEffect((function(){if(t&&n)return i(n)?r.on(n,e,t,c):s(n)&&n.on(e,t,c),function(){i(n)?r.off(n,e,t,c):s(n)&&n.off(e,t,c)}}),[e,t,n,JSON.stringify(c)])}},90892:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(22729),r=n(41594),a=o.__importDefault(n(23764));t.default=function(e){var t=r.useRef(0),n=r.useState(e),o=n[0],i=n[1],s=r.useCallback((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){i(e)}))}),[]);return a.default((function(){cancelAnimationFrame(t.current)})),[o,s]}},23764:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(22729),r=n(41594),a=o.__importDefault(n(64210));t.default=function(e){var t=r.useRef(e);t.current=e,a.default((function(){return function(){return t.current()}}))}},92623:(e,t,n)=>{"use strict";var o=n(22729),r=n(41594),a=o.__importDefault(n(90892)),i=n(89380);t.A=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var n=a.default({width:i.isBrowser?window.innerWidth:e,height:i.isBrowser?window.innerHeight:t}),o=n[0],s=n[1];return r.useEffect((function(){if(i.isBrowser){var e=function(){s({width:window.innerWidth,height:window.innerHeight})};return i.on(window,"resize",e),function(){i.off(window,"resize",e)}}}),[]),o}},16448:function(e,t,n){"use strict";var o=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseImage=void 0;const a=r(n(41594)),i=r(n(88443)),s=r(n(25229));function c(e){var{alt:t,className:n,fullWidth:r}=e,c=o(e,["alt","className","fullWidth"]);return a.default.createElement("img",Object.assign({"data-bit-id":"teambit.base-ui/elements/image",alt:t},c,{className:i.default(s.default.image,r&&s.default.fullWidth,n)}))}c.__bit_component={id:"teambit.base-ui/elements/image@1.0.0",homepage:"https://bit.dev/teambit/base-ui/elements/image",exported:!0},t.BaseImage=c},85309:function(e,t,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(16448),t)},21322:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Image:()=>y});var o=n(41594),r=n.n(o),a=n(69685),i=n.n(a);n(78552);const s=ReactDom;var c=n(48896),l=n(92623),p=n(22729),u=function(e){return e+"ms"},d={getBoundingClientRect:function(){return{height:0,left:0,top:0,width:0}},style:{transform:null}},m=(0,o.memo)((function(e){var t=e.children,n=e.closeText,a=void 0===n?"Unzoom Image":n,i=e.onUnload,m=e.onLoad,f=e.overlayBgColorEnd,h=void 0===f?"rgba(255, 255, 255, 0.95)":f,y=e.overlayBgColorStart,v=void 0===y?"rgba(255, 255, 255, 0)":y,g=e.parentRef,w=e.portalEl,b=void 0===w?document.body:w,x=e.scrollableEl,_=void 0===x?window:x,O=e.transitionDuration,k=void 0===O?300:O,j=e.zoomMargin,N=void 0===j?0:j,S=e.zoomZindex,E=void 0===S?2147483647:S,P=(0,o.useRef)(null),C=(0,o.useState)(0)[1],T=(0,o.useState)(!1),M=T[0],D=T[1],I=(0,o.useState)(!1),z=I[0],B=I[1],A=(0,l.A)(),R=A.width,L=A.height,W=(0,o.useCallback)((function(e){e.preventDefault(),B(!0)}),[]),F=(0,o.useCallback)((function(e){"Escape"!==e.key&&27!==e.keyCode||(e.stopPropagation(),B(!0))}),[]),H=(0,o.useCallback)((function(){C((function(e){return e+1})),z||B(!0)}),[z]);(0,c.A)("keydown",F,document),(0,c.A)("scroll",H,_),(0,o.useEffect)((function(){D(!0),m(),P.current&&P.current.focus({preventScroll:!0})}),[m]),(0,o.useEffect)((function(){var e=z?setTimeout(i,k):null;return function(){e&&clearTimeout(e)}}),[z,i,k]);var U=g.current||d,X=U.getBoundingClientRect(),Y=X.height,G=X.left,Z=X.top,q=X.width,J=function(e){var t=e.isLoaded,n=e.isUnloading,o=e.overlayBgColorEnd,r=e.zoomZindex,a={backgroundColor:e.overlayBgColorStart,transitionDuration:u(e.transitionDuration),zIndex:r};return t&&!n&&(a.backgroundColor=o),a}({isLoaded:M,isUnloading:z,overlayBgColorEnd:h,overlayBgColorStart:v,transitionDuration:k,zoomZindex:E}),V=function(e){var t=e.height,n=e.innerHeight,o=e.innerWidth,r=e.isLoaded,a=e.isUnloading,i=e.left,s=e.originalTransform,c=e.top,l=e.transitionDuration,d=e.width,m=e.zoomMargin,f=u(l);if(!r||a){var h=(0,p.__spreadArrays)(["scale(1)","translate(0, 0)"],s?[s]:[]).join(" ");return{height:t,left:i,top:c,transform:h,WebkitTransform:h,transitionDuration:f,width:d}}var y=function(e){var t=e.zoomMargin,n=e.innerWidth/(e.width+t),o=e.innerHeight/(e.height+t);return Math.min(n,o)}({height:t,innerWidth:o,innerHeight:n,width:d,zoomMargin:m}),v=(o/2-(i+d/2))/y,g=(n/2-(c+t/2))/y,w=(0,p.__spreadArrays)(["scale("+y+")","translate("+v+"px, "+g+"px)"],s?[s]:[]).join(" ");return{height:t,left:i,top:c,transform:w,WebkitTransform:w,transitionDuration:f,width:d}}({height:Y,isLoaded:M,innerHeight:L,innerWidth:R,isUnloading:z,left:G,originalTransform:U.style.transform,top:Z,transitionDuration:k,width:q,zoomMargin:N});return(0,s.createPortal)(r().createElement("div",{"aria-modal":!0,"data-rmiz-overlay":!0,role:"dialog",style:J},r().createElement("div",{"data-rmiz-modal-content":!0,style:V},t),r().createElement("button",{"aria-label":a,"data-rmiz-btn-close":!0,onClick:W,ref:P})),b)}));const f=(0,o.memo)((function(e){var t=e.children,n=e.closeText,a=void 0===n?"Unzoom image":n,i=e.overlayBgColorEnd,s=void 0===i?"rgba(255, 255, 255, 0.95)":i,c=e.overlayBgColorStart,l=void 0===c?"rgba(255, 255, 255, 0)":c,p=e.portalEl,u=e.openText,d=void 0===u?"Zoom image":u,f=e.scrollableEl,h=e.transitionDuration,y=void 0===h?300:h,v=e.wrapElement,g=void 0===v?"div":v,w=e.wrapStyle,b=e.zoomMargin,x=void 0===b?0:b,_=e.zoomZindex,O=void 0===_?2147483647:_,k=(0,o.useState)(!1),j=k[0],N=k[1],S=(0,o.useState)(!1),E=S[0],P=S[1],C=(0,o.useRef)(null),T=(0,o.useRef)(null),M=(0,o.useCallback)((function(e){j||(e.preventDefault(),N(!0))}),[j]),D=(0,o.useCallback)((function(){P(!0)}),[]),I=(0,o.useCallback)((function(){N(!1),P(!1),T.current&&T.current.focus({preventScroll:!0})}),[]),z=j&&E?"hidden":"visible";return r().createElement(o.StrictMode,null,r().createElement(g,{"data-rmiz-wrap":z,ref:C,style:w},t,r().createElement("button",{"aria-label":d,"data-rmiz-btn-open":!0,onClick:M,ref:T}),"undefined"!=typeof window&&j&&r().createElement(m,{closeText:a,onLoad:D,onUnload:I,overlayBgColorEnd:s,overlayBgColorStart:l,parentRef:C,portalEl:p,scrollableEl:f,transitionDuration:y,zoomMargin:x,zoomZindex:O},t)))}));var h=n(85309);const y=e=>{var{center:t=!0,width:n,alt:o,src:a,className:s}=e,c=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}(e,["center","width","alt","src","className"]);return r().createElement("div",{style:{width:n||"100%"},className:i()(t&&"image_center__33Jmm",s)},r().createElement(f,null,r().createElement(h.BaseImage,Object.assign({fullWidth:!0,alt:o,src:a},c))))};y.__bit_component={id:"teambit.docs/ui/zoomable-image@1.95.0",homepage:"https://bit.dev/teambit/docs/ui/zoomable-image",exported:!0}},55491:(e,t,n)=>{"use strict";Object.defineProperty(t,"Ay",{enumerable:!0,get:function(){return o.default}});var o=r(n(29));function r(e){return e&&e.__esModule?e:{default:e}}r.__bit_component={id:"teambit.workspace/content/workspace-overview@1.95.0",homepage:"https://bit.dev/teambit/workspace/content/workspace-overview",exported:!0}},29:(e,t,n)=>{"use strict";var o={id:"teambit.workspace/content/workspace-overview@1.95.0",homepage:"https://bit.dev/teambit/workspace/content/workspace-overview",exported:!0};Object.defineProperty(t,"__esModule",{value:!0}),t.default=v,u(n(41594));var r=n(5016),a=n(65682),i=n(21322),s=u(n(87323)),c=u(n(70409)),l=u(n(69454)),p=["components"];function u(e){return e&&e.__esModule?e:{default:e}}function d(){return d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},d.apply(this,arguments)}function m(e,t){if(null==e)return{};var n,o,r=f(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function f(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}u.__bit_component=o,d.__bit_component=o,m.__bit_component=o,f.__bit_component=o;var h={},y="wrapper";function v(e){var t=e.components,n=m(e,p);return(0,r.mdx)(y,d({},h,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)(a.MDXScopeProvider,{components:{Image:i.Image,wsScreenshot:s.default,looseComponents:c.default,multiRepo:l.default},mdxType:"MDXScopeProvider"},(0,r.mdx)("h1",null,"Workspace Overview"),(0,r.mdx)("p",null,"You can use the Bit workspace to either create, use or import components, make changes to them, and export these changes back.\nWorkspaces are tech-agnonstic and allow development of components of all kinds. They can be used by a single developer maintaining few components, exist on top of\nexisting repositories or shared as a Workspace component."),(0,r.mdx)(i.Image,{src:c.default,width:"85%",mdxType:"Image"}),(0,r.mdx)("p",null,"Get started and generate a demo workspace:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-bash"},"bit new react demo\n")),(0,r.mdx)("h2",null,"Component development server"),(0,r.mdx)("p",null,"All components in your workspace are rendered and presented on a local development server. To start it, run the following command:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"bit start\n")),(0,r.mdx)(i.Image,{src:s.default,width:"80%",mdxType:"Image"}),(0,r.mdx)("h2",null,"Simple, scalable dev experience"),(0,r.mdx)("p",null,"Keeping a similar dev-experience across workspaces allows you to jump in and out from codebases. When you don't need to deal with a per-project setup or learn the workflow commands/scripts you simply focus on the code."),(0,r.mdx)("p",null,"Simple dev experience means you can ",(0,r.mdx)("strong",{parentName:"p"},"easily onboard")," yourself to a workspace, thanks to:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("strong",{parentName:"li"},"Use the same commands")," - Regardless of the tooling and configs used in a workspace, you use the same commands (",(0,r.mdx)("inlineCode",{parentName:"li"},"compile"),", ",(0,r.mdx)("inlineCode",{parentName:"li"},"test"),", etc) and get similarly structured outputs."),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("strong",{parentName:"li"},"Minimal configuration")," - Most of the configuration and setup is automated. No need to define per-component dependencies and no additional files needed to change a component's build pipeline."),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("strong",{parentName:"li"},"Templates and standards")," - Create new components with templates and apply your formatting, linting, compilation and testing standards with a single policy."),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("strong",{parentName:"li"},"Components are directories")," - Each ",(0,r.mdx)("a",{parentName:"li",href:"docs/workspace/component-directory"},"component in your workspace is a directory")," so relevant files, assets and tests available in a single place.")),(0,r.mdx)("p",null,"This makes it easy to scale the amount of components in a workspace, scale the amount of workspaces and even scale the amount of developers!"),(0,r.mdx)("h2",null,"Composition of components"),(0,r.mdx)("p",null,'The workspace is a container for the components. You get a monolithic-like developer experience and ability to refactor many components in a single place. In this "container" a component manages its own implementation, history and config (',(0,r.mdx)("a",{parentName:"p",href:"/docs/components/component-overview"},"read more"),").",(0,r.mdx)("br",{parentName:"p"}),"\n","This allows you to be flexible with how you structure a workspace and its contents. For example, you can ",(0,r.mdx)("a",{parentName:"p",href:"/docs/components/importing-components"},"import a component"),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-bash"},"bit import teambit.community/ui/graph/bubble-graph\n")),(0,r.mdx)("p",null,"Bit adds the new component to the list of components in the workspace, pulls down the complete revision history, configs and dependencies. Now you can do local modifications, see the component when running ",(0,r.mdx)("inlineCode",{parentName:"p"},"bit start"),", and maintain it as if you implemented it in your own workspace."),(0,r.mdx)("p",null,"In the same sense you can ",(0,r.mdx)("inlineCode",{parentName:"p"},"export")," and even ",(0,r.mdx)("inlineCode",{parentName:"p"},"eject")," any of your components from a workspace, and more it to another one. So if you started with building all components in the same place, you are not locked to that decision."),(0,r.mdx)(i.Image,{src:l.default,width:"85%",mdxType:"Image"}),(0,r.mdx)("h3",null,"Personalize your workspace"),(0,r.mdx)("p",null,"With composability in mind you can personalize your workspace on a per-feature basis or on the work you are currently focus on. You can start your flow by using ",(0,r.mdx)("inlineCode",{parentName:"p"},"bit import")," and fetch all required components, starting to modify and work on them as needed.",(0,r.mdx)("br",{parentName:"p"}),"\n","When done, you can version and eject unneeded components. Instead of you working in the boundaries of your workspace, have the workspace fit to your current work."),(0,r.mdx)("h2",null,"Configuration-less"),(0,r.mdx)("p",null,"Regardless of the amount of components you have in your workspace, and how different they may be in their configuration, it only requires two files to manage components."),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("inlineCode",{parentName:"li"},"workspace.jsonc")," - Contains the configuration policy for all components in the workspace."),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("inlineCode",{parentName:"li"},".bitmap")," - Maps Bit components to their corresponding location (dir) in the workspace.")),(0,r.mdx)("p",null,"With both these files you track where each component is located and can apply configuration from a centralized location according to various ",(0,r.mdx)("a",{parentName:"p",href:"/docs/workspace/variants"},(0,r.mdx)("inlineCode",{parentName:"a"},"variant"))," rules. The workspace then calculates the configuration to apply on a per-component basis."),(0,r.mdx)("p",null,"The end result is a clean workspace where you have a minimal amount of configuration files, no matter how many components you have and their variants."),(0,r.mdx)("h2",null,"Any dev environment, any framework"),(0,r.mdx)("p",null,"Angular modules, React components, Node modules or any other type of components you might need are rendered with the same ",(0,r.mdx)("a",{parentName:"p",href:"docs/workspace/workspace-ui"},"workspace UI"),", compiled by the same ",(0,r.mdx)("inlineCode",{parentName:"p"},"compile")," command, etc.",(0,r.mdx)("br",{parentName:"p"}),"\n","You can maintain components of different types and frameworks in a Bit workspace, as each component has it's own configured ",(0,r.mdx)("a",{parentName:"p",href:"/docs/envs/envs-overview"},"Component Development Environment"),", which the workspace use to run various workflows."),(0,r.mdx)("h2",null,"Components in the workspace"),(0,r.mdx)("p",null,"A Bit Workspace manages many components. It aims to create symmetry between component naming and the directory structure."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"├── cart\n│   ├── purchase-summary\n│   └── shopping-cart\n└── design\n ├── ui\n │   ├── button\n │   └── card // for example, the corresponding component ID: my-org.design/ui/button\n └── theme\n ├── color-pallet\n └── theme-context\n")),(0,r.mdx)("div",{className:"admonition admonition-tip alert alert--success"},(0,r.mdx)("div",{parentName:"div",className:"admonition-heading"},(0,r.mdx)("h5",{parentName:"div"},(0,r.mdx)("span",{parentName:"h5",className:"admonition-icon"},(0,r.mdx)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,r.mdx)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"The structure is not rigid. You can sort components however you see fit.")),(0,r.mdx)("div",{parentName:"div",className:"admonition-content"})),(0,r.mdx)("p",null,"For each component Bit generates a link in the root ",(0,r.mdx)("inlineCode",{parentName:"p"},"node_modules")," directory according to the component ID. It contains the compiled output of a component."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-bash"},"└── node_modules\n └── @my-org\n └── my-scope.ui.card\n")),(0,r.mdx)("p",null,"Use these modules when consuming one component in another, even in the same workspace."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-jsx"},"import { Card } from '@my-org/my-scope.ui.card';\n")),(0,r.mdx)("div",{className:"admonition admonition-info alert alert--info"},(0,r.mdx)("div",{parentName:"div",className:"admonition-heading"},(0,r.mdx)("h5",{parentName:"div"},(0,r.mdx)("span",{parentName:"h5",className:"admonition-icon"},(0,r.mdx)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,r.mdx)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"Absolute import statements decouple a component from the project's file structure.")),(0,r.mdx)("div",{parentName:"div",className:"admonition-content"})),(0,r.mdx)("h2",null,"Dependency Policy"),(0,r.mdx)("p",null,"The workspace dependency policy defines how external dependencies are installed and in which version. You may apply complex setups to have multiple versions of a dependency installed to fit different components. It allows you to determine where you want to adopt to a new version and which components should still use past versions."),(0,r.mdx)("p",null,"In your workspace you also have a ",(0,r.mdx)("a",{parentName:"p",href:"/docs/dependencies/dependencies-overview"},"dependency resolver")," that uses the policy to determine the type of dependency on a per-component basis.",(0,r.mdx)("br",{parentName:"p"}),"\n","Types of dependencies, like ",(0,r.mdx)("inlineCode",{parentName:"p"},"dependency")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"devDependency")," are contextual for each component. Meaning that according to where a component ",(0,r.mdx)("inlineCode",{parentName:"p"},"import"),"s a dependency, it will be set with the corresponding type. For example, a dependency only used in a test file will set as a ",(0,r.mdx)("inlineCode",{parentName:"p"},"devDependency")," for that specific component."),(0,r.mdx)("h2",null,"Performance"),(0,r.mdx)("p",null,"Bit workspace is optimized for quick and snappy feedback loop on code changes. It leaves the tough work of ensuring de-coupling and isolation to a more robust CI flow."),(0,r.mdx)("p",null,"To optimize performance even further any time you change a component Bit find which components are affected by the change. Bit then build your modified components and their affected dependents."),(0,r.mdx)("h2",null,"Integrate to existing codebases"),(0,r.mdx)("p",null,"Bit is a build tool that allows you to manage independent components. You may create a Bit workspace in a fresh directory or initialize one as part of an existing repository.",(0,r.mdx)("br",{parentName:"p"}),"\n","You can get started working on independent components alongside projects built with ",(0,r.mdx)("a",{parentName:"p",href:"https://angular.io/tutorial/toh-pt0"},"Angular"),", ",(0,r.mdx)("a",{parentName:"p",href:"https://create-react-app.dev"},"CRA")," and even ",(0,r.mdx)("a",{parentName:"p",href:"https://lerna.js.org"},"Lerna"),"."),(0,r.mdx)("p",null,(0,r.mdx)("inlineCode",{parentName:"p"},"cd")," to a pre-existing repository and run:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-bash"},"bit init\n")),(0,r.mdx)("p",null,"From here you may use any Bit command and flow to build independent components and integrate them into your application.")))}v.__bit_component=o,v.isMDXComponent=!0},96594:(e,t,n)=>{"use strict";var o={id:"teambit.workspace/workspace@1.0.265",homepage:"https://bit.cloud/teambit/workspace/workspace",exported:!0};function r(){const e=a(n(41594));return r=function(){return e},e}function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Logo=void 0,r.__bit_component=o,a.__bit_component=o;const i=()=>r().default.createElement("div",{style:{height:"100%",display:"flex",justifyContent:"center"}},r().default.createElement("img",{style:{width:70},src:"https://static.bit.dev/extensions-icons/workspace.svg"}));i.__bit_component=o,t.Logo=i},25229:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});const o={fullWidth:"image_fullWidth__DuFxF"}},70409:(e,t,n)=>{"use strict";e.exports=n.p+"static/images/b40d450de296e275550f.png"},69454:(e,t,n)=>{"use strict";e.exports=n.p+"static/images/2f046646df38433e90d7.png"},87323:(e,t,n)=>{"use strict";e.exports=n.p+"static/images/cb67fb802479e2710016.png"},5016:e=>{"use strict";e.exports=MdxJsReact},41594:e=>{"use strict";e.exports=React},65682:e=>{"use strict";e.exports=TeambitMdxUiMdxScopeContext},22729:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>I,__assign:()=>a,__asyncDelegator:()=>j,__asyncGenerator:()=>k,__asyncValues:()=>N,__await:()=>O,__awaiter:()=>f,__classPrivateFieldGet:()=>T,__classPrivateFieldIn:()=>D,__classPrivateFieldSet:()=>M,__createBinding:()=>y,__decorate:()=>s,__disposeResources:()=>B,__esDecorate:()=>l,__exportStar:()=>v,__extends:()=>r,__generator:()=>h,__importDefault:()=>C,__importStar:()=>P,__makeTemplateObject:()=>S,__metadata:()=>m,__param:()=>c,__propKey:()=>u,__read:()=>w,__rest:()=>i,__runInitializers:()=>p,__setFunctionName:()=>d,__spread:()=>b,__spreadArray:()=>_,__spreadArrays:()=>x,__values:()=>g,default:()=>A});var o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)};function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},a.apply(this,arguments)};function i(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}function s(e,t,n,o){var r,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(i=(a<3?r(i):a>3?r(t,n,i):r(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function c(e,t){return function(n,o){t(n,o,e)}}function l(e,t,n,o,r,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=o.kind,l="getter"===c?"get":"setter"===c?"set":"value",p=!t&&e?o.static?e:e.prototype:null,u=t||(p?Object.getOwnPropertyDescriptor(p,o.name):{}),d=!1,m=n.length-1;m>=0;m--){var f={};for(var h in o)f[h]="access"===h?{}:o[h];for(var h in o.access)f.access[h]=o.access[h];f.addInitializer=function(e){if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var y=(0,n[m])("accessor"===c?{get:u.get,set:u.set}:u[l],f);if("accessor"===c){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(s=i(y.get))&&(u.get=s),(s=i(y.set))&&(u.set=s),(s=i(y.init))&&r.unshift(s)}else(s=i(y))&&("field"===c?r.unshift(s):u[l]=s)}p&&Object.defineProperty(p,o.name,u),d=!0}function p(e,t,n){for(var o=arguments.length>2,r=0;r<t.length;r++)n=o?t[r].call(e,n):t[r].call(e);return o?n:void 0}function u(e){return"symbol"==typeof e?e:"".concat(e)}function d(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function m(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function f(e,t,n,o){return new(n||(n=Promise))((function(r,a){function i(e){try{c(o.next(e))}catch(e){a(e)}}function s(e){try{c(o.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((o=o.apply(e,t||[])).next())}))}function h(e,t){var n,o,r,a,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(n=1,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,o=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){i.label=s[1];break}if(6===s[0]&&i.label<r[1]){i.label=r[1],r=s;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(s);break}r[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],o=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}var y=Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]};function v(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||y(t,e,n)}function g(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function b(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(w(arguments[t]));return e}function x(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var o=Array(e),r=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,s=a.length;i<s;i++,r++)o[r]=a[i];return o}function _(e,t,n){if(n||2===arguments.length)for(var o,r=0,a=t.length;r<a;r++)!o&&r in t||(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}function O(e){return this instanceof O?(this.v=e,this):new O(e)}function k(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=n.apply(e,t||[]),a=[];return o={},i("next"),i("throw"),i("return"),o[Symbol.asyncIterator]=function(){return this},o;function i(e){r[e]&&(o[e]=function(t){return new Promise((function(n,o){a.push([e,t,n,o])>1||s(e,t)}))})}function s(e,t){try{(n=r[e](t)).value instanceof O?Promise.resolve(n.value.v).then(c,l):p(a[0][2],n)}catch(e){p(a[0][3],e)}var n}function c(e){s("next",e)}function l(e){s("throw",e)}function p(e,t){e(t),a.shift(),a.length&&s(a[0][0],a[0][1])}}function j(e){var t,n;return t={},o("next"),o("throw",(function(e){throw e})),o("return"),t[Symbol.iterator]=function(){return this},t;function o(o,r){t[o]=e[o]?function(t){return(n=!n)?{value:O(e[o](t)),done:!1}:r?r(t):t}:r}}function N(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=g(e),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(n){t[n]=e[n]&&function(t){return new Promise((function(o,r){!function(e,t,n,o){Promise.resolve(o).then((function(t){e({value:t,done:n})}),t)}(o,r,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var E=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function P(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&y(t,e,n);return E(t,e),t}function C(e){return e&&e.__esModule?e:{default:e}}function T(e,t,n,o){if("a"===n&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?o:"a"===n?o.call(e):o?o.value:t.get(e)}function M(e,t,n,o,r){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?r.call(e,n):r?r.value=n:t.set(e,n),n}function D(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function I(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");o=t[Symbol.asyncDispose]}if(void 0===o){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");o=t[Symbol.dispose]}if("function"!=typeof o)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:o,async:n})}else n&&e.stack.push({async:!0});return t}var z="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var o=new Error(n);return o.name="SuppressedError",o.error=e,o.suppressed=t,o};function B(e){function t(t){e.error=e.hasError?new z(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var o=e.stack.pop();try{var r=o.dispose&&o.dispose.call(o.value);if(o.async)return Promise.resolve(r).then(n,(function(e){return t(e),n()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()}const A={__extends:r,__assign:a,__rest:i,__decorate:s,__param:c,__metadata:m,__awaiter:f,__generator:h,__createBinding:y,__exportStar:v,__values:g,__read:w,__spread:b,__spreadArrays:x,__spreadArray:_,__await:O,__asyncGenerator:k,__asyncDelegator:j,__asyncValues:N,__makeTemplateObject:S,__importStar:P,__importDefault:C,__classPrivateFieldGet:T,__classPrivateFieldSet:M,__classPrivateFieldIn:D,__addDisposableResource:I,__disposeResources:B}}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var a=t[o]={exports:{}};return e[o].call(a.exports,a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var r=o.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=o[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})();var o={};return(()=>{"use strict";n.r(o),n.d(o,{compositions:()=>d,compositions_metadata:()=>f,overview:()=>m});var e={};n.r(e),n.d(e,{default:()=>u});var t=n(96594),r=(n(41594),n(5016)),a=n(65682),i=n(55491),s=["components"];function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},c.apply(this,arguments)}var l={},p="wrapper";function u(e){var t=e.components,n=function(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n={};for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){if(t.indexOf(o)>=0)continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,s);return(0,r.mdx)(p,c({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)(a.MDXScopeProvider,{components:{WorkspaceOverview:i.Ay},mdxType:"MDXScopeProvider"},(0,r.mdx)(i.Ay,{mdxType:"WorkspaceOverview"})))}u.isMDXComponent=!0;const d=[t],m=[e],f={compositions:[{displayName:"Logo",identifier:"Logo"}]}})(),o})()));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.workspace/workspace-preview"]=t():e["teambit.workspace/workspace-preview"]=t()}(self,(()=>(()=>{var e={88443:(e,t)=>{var n;!function(){"use strict";var o={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)&&n.length){var i=r.apply(null,n);i&&e.push(i)}else if("object"===a)for(var s in n)o.call(n,s)&&n[s]&&e.push(s)}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},69685:(e,t)=>{var n;!function(){"use strict";var o={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)){if(n.length){var i=r.apply(null,n);i&&e.push(i)}}else if("object"===a)if(n.toString===Object.prototype.toString)for(var s in n)o.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},78552:()=>{!function(){if("undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof HTMLElement){var e=!1;try{var t=document.createElement("div");t.addEventListener("focus",(function(e){e.preventDefault(),e.stopPropagation()}),!0),t.focus(Object.defineProperty({},"preventScroll",{get:function(){e=!0}}))}catch(e){}void 0!==HTMLElement.prototype.nativeFocus||e||(HTMLElement.prototype.nativeFocus=HTMLElement.prototype.focus,HTMLElement.prototype.focus=function(e){var t=window.scrollY||window.pageYOffset;this.nativeFocus(),e&&e.preventScroll&&setTimeout((function(){window.scroll(window.scrollX||window.pageXOffset,t)}),0)})}}()},89380:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNavigator=t.isBrowser=t.off=t.on=t.noop=void 0,t.noop=function(){},t.on=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)},t.off=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)},t.isBrowser="undefined"!=typeof window,t.isNavigator="undefined"!=typeof navigator},64210:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(41594);t.default=function(e){o.useEffect(e,[])}},48896:(e,t,n)=>{"use strict";var o=n(41594),r=n(89380),a=r.isBrowser?window:null,i=function(e){return!!e.addEventListener},s=function(e){return!!e.on};t.A=function(e,t,n,c){void 0===n&&(n=a),o.useEffect((function(){if(t&&n)return i(n)?r.on(n,e,t,c):s(n)&&n.on(e,t,c),function(){i(n)?r.off(n,e,t,c):s(n)&&n.off(e,t,c)}}),[e,t,n,JSON.stringify(c)])}},90892:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(22729),r=n(41594),a=o.__importDefault(n(23764));t.default=function(e){var t=r.useRef(0),n=r.useState(e),o=n[0],i=n[1],s=r.useCallback((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){i(e)}))}),[]);return a.default((function(){cancelAnimationFrame(t.current)})),[o,s]}},23764:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(22729),r=n(41594),a=o.__importDefault(n(64210));t.default=function(e){var t=r.useRef(e);t.current=e,a.default((function(){return function(){return t.current()}}))}},92623:(e,t,n)=>{"use strict";var o=n(22729),r=n(41594),a=o.__importDefault(n(90892)),i=n(89380);t.A=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var n=a.default({width:i.isBrowser?window.innerWidth:e,height:i.isBrowser?window.innerHeight:t}),o=n[0],s=n[1];return r.useEffect((function(){if(i.isBrowser){var e=function(){s({width:window.innerWidth,height:window.innerHeight})};return i.on(window,"resize",e),function(){i.off(window,"resize",e)}}}),[]),o}},16448:function(e,t,n){"use strict";var o=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseImage=void 0;const a=r(n(41594)),i=r(n(88443)),s=r(n(25229));function c(e){var{alt:t,className:n,fullWidth:r}=e,c=o(e,["alt","className","fullWidth"]);return a.default.createElement("img",Object.assign({"data-bit-id":"teambit.base-ui/elements/image",alt:t},c,{className:i.default(s.default.image,r&&s.default.fullWidth,n)}))}c.__bit_component={id:"teambit.base-ui/elements/image@1.0.0",homepage:"https://bit.dev/teambit/base-ui/elements/image",exported:!0},t.BaseImage=c},85309:function(e,t,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(16448),t)},21322:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Image:()=>y});var o=n(41594),r=n.n(o),a=n(69685),i=n.n(a);n(78552);const s=ReactDom;var c=n(48896),l=n(92623),p=n(22729),u=function(e){return e+"ms"},d={getBoundingClientRect:function(){return{height:0,left:0,top:0,width:0}},style:{transform:null}},m=(0,o.memo)((function(e){var t=e.children,n=e.closeText,a=void 0===n?"Unzoom Image":n,i=e.onUnload,m=e.onLoad,f=e.overlayBgColorEnd,h=void 0===f?"rgba(255, 255, 255, 0.95)":f,y=e.overlayBgColorStart,v=void 0===y?"rgba(255, 255, 255, 0)":y,g=e.parentRef,w=e.portalEl,b=void 0===w?document.body:w,x=e.scrollableEl,_=void 0===x?window:x,O=e.transitionDuration,k=void 0===O?300:O,j=e.zoomMargin,N=void 0===j?0:j,S=e.zoomZindex,E=void 0===S?2147483647:S,P=(0,o.useRef)(null),C=(0,o.useState)(0)[1],T=(0,o.useState)(!1),M=T[0],D=T[1],I=(0,o.useState)(!1),z=I[0],B=I[1],A=(0,l.A)(),R=A.width,L=A.height,W=(0,o.useCallback)((function(e){e.preventDefault(),B(!0)}),[]),F=(0,o.useCallback)((function(e){"Escape"!==e.key&&27!==e.keyCode||(e.stopPropagation(),B(!0))}),[]),H=(0,o.useCallback)((function(){C((function(e){return e+1})),z||B(!0)}),[z]);(0,c.A)("keydown",F,document),(0,c.A)("scroll",H,_),(0,o.useEffect)((function(){D(!0),m(),P.current&&P.current.focus({preventScroll:!0})}),[m]),(0,o.useEffect)((function(){var e=z?setTimeout(i,k):null;return function(){e&&clearTimeout(e)}}),[z,i,k]);var U=g.current||d,X=U.getBoundingClientRect(),Y=X.height,G=X.left,Z=X.top,q=X.width,J=function(e){var t=e.isLoaded,n=e.isUnloading,o=e.overlayBgColorEnd,r=e.zoomZindex,a={backgroundColor:e.overlayBgColorStart,transitionDuration:u(e.transitionDuration),zIndex:r};return t&&!n&&(a.backgroundColor=o),a}({isLoaded:M,isUnloading:z,overlayBgColorEnd:h,overlayBgColorStart:v,transitionDuration:k,zoomZindex:E}),V=function(e){var t=e.height,n=e.innerHeight,o=e.innerWidth,r=e.isLoaded,a=e.isUnloading,i=e.left,s=e.originalTransform,c=e.top,l=e.transitionDuration,d=e.width,m=e.zoomMargin,f=u(l);if(!r||a){var h=(0,p.__spreadArrays)(["scale(1)","translate(0, 0)"],s?[s]:[]).join(" ");return{height:t,left:i,top:c,transform:h,WebkitTransform:h,transitionDuration:f,width:d}}var y=function(e){var t=e.zoomMargin,n=e.innerWidth/(e.width+t),o=e.innerHeight/(e.height+t);return Math.min(n,o)}({height:t,innerWidth:o,innerHeight:n,width:d,zoomMargin:m}),v=(o/2-(i+d/2))/y,g=(n/2-(c+t/2))/y,w=(0,p.__spreadArrays)(["scale("+y+")","translate("+v+"px, "+g+"px)"],s?[s]:[]).join(" ");return{height:t,left:i,top:c,transform:w,WebkitTransform:w,transitionDuration:f,width:d}}({height:Y,isLoaded:M,innerHeight:L,innerWidth:R,isUnloading:z,left:G,originalTransform:U.style.transform,top:Z,transitionDuration:k,width:q,zoomMargin:N});return(0,s.createPortal)(r().createElement("div",{"aria-modal":!0,"data-rmiz-overlay":!0,role:"dialog",style:J},r().createElement("div",{"data-rmiz-modal-content":!0,style:V},t),r().createElement("button",{"aria-label":a,"data-rmiz-btn-close":!0,onClick:W,ref:P})),b)}));const f=(0,o.memo)((function(e){var t=e.children,n=e.closeText,a=void 0===n?"Unzoom image":n,i=e.overlayBgColorEnd,s=void 0===i?"rgba(255, 255, 255, 0.95)":i,c=e.overlayBgColorStart,l=void 0===c?"rgba(255, 255, 255, 0)":c,p=e.portalEl,u=e.openText,d=void 0===u?"Zoom image":u,f=e.scrollableEl,h=e.transitionDuration,y=void 0===h?300:h,v=e.wrapElement,g=void 0===v?"div":v,w=e.wrapStyle,b=e.zoomMargin,x=void 0===b?0:b,_=e.zoomZindex,O=void 0===_?2147483647:_,k=(0,o.useState)(!1),j=k[0],N=k[1],S=(0,o.useState)(!1),E=S[0],P=S[1],C=(0,o.useRef)(null),T=(0,o.useRef)(null),M=(0,o.useCallback)((function(e){j||(e.preventDefault(),N(!0))}),[j]),D=(0,o.useCallback)((function(){P(!0)}),[]),I=(0,o.useCallback)((function(){N(!1),P(!1),T.current&&T.current.focus({preventScroll:!0})}),[]),z=j&&E?"hidden":"visible";return r().createElement(o.StrictMode,null,r().createElement(g,{"data-rmiz-wrap":z,ref:C,style:w},t,r().createElement("button",{"aria-label":d,"data-rmiz-btn-open":!0,onClick:M,ref:T}),"undefined"!=typeof window&&j&&r().createElement(m,{closeText:a,onLoad:D,onUnload:I,overlayBgColorEnd:s,overlayBgColorStart:l,parentRef:C,portalEl:p,scrollableEl:f,transitionDuration:y,zoomMargin:x,zoomZindex:O},t)))}));var h=n(85309);const y=e=>{var{center:t=!0,width:n,alt:o,src:a,className:s}=e,c=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}(e,["center","width","alt","src","className"]);return r().createElement("div",{style:{width:n||"100%"},className:i()(t&&"image_center__33Jmm",s)},r().createElement(f,null,r().createElement(h.BaseImage,Object.assign({fullWidth:!0,alt:o,src:a},c))))};y.__bit_component={id:"teambit.docs/ui/zoomable-image@1.95.0",homepage:"https://bit.dev/teambit/docs/ui/zoomable-image",exported:!0}},55491:(e,t,n)=>{"use strict";Object.defineProperty(t,"Ay",{enumerable:!0,get:function(){return o.default}});var o=r(n(29));function r(e){return e&&e.__esModule?e:{default:e}}r.__bit_component={id:"teambit.workspace/content/workspace-overview@1.95.0",homepage:"https://bit.dev/teambit/workspace/content/workspace-overview",exported:!0}},29:(e,t,n)=>{"use strict";var o={id:"teambit.workspace/content/workspace-overview@1.95.0",homepage:"https://bit.dev/teambit/workspace/content/workspace-overview",exported:!0};Object.defineProperty(t,"__esModule",{value:!0}),t.default=v,u(n(41594));var r=n(5016),a=n(65682),i=n(21322),s=u(n(87323)),c=u(n(70409)),l=u(n(69454)),p=["components"];function u(e){return e&&e.__esModule?e:{default:e}}function d(){return d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},d.apply(this,arguments)}function m(e,t){if(null==e)return{};var n,o,r=f(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function f(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}u.__bit_component=o,d.__bit_component=o,m.__bit_component=o,f.__bit_component=o;var h={},y="wrapper";function v(e){var t=e.components,n=m(e,p);return(0,r.mdx)(y,d({},h,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)(a.MDXScopeProvider,{components:{Image:i.Image,wsScreenshot:s.default,looseComponents:c.default,multiRepo:l.default},mdxType:"MDXScopeProvider"},(0,r.mdx)("h1",null,"Workspace Overview"),(0,r.mdx)("p",null,"You can use the Bit workspace to either create, use or import components, make changes to them, and export these changes back.\nWorkspaces are tech-agnonstic and allow development of components of all kinds. They can be used by a single developer maintaining few components, exist on top of\nexisting repositories or shared as a Workspace component."),(0,r.mdx)(i.Image,{src:c.default,width:"85%",mdxType:"Image"}),(0,r.mdx)("p",null,"Get started and generate a demo workspace:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-bash"},"bit new react demo\n")),(0,r.mdx)("h2",null,"Component development server"),(0,r.mdx)("p",null,"All components in your workspace are rendered and presented on a local development server. To start it, run the following command:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"bit start\n")),(0,r.mdx)(i.Image,{src:s.default,width:"80%",mdxType:"Image"}),(0,r.mdx)("h2",null,"Simple, scalable dev experience"),(0,r.mdx)("p",null,"Keeping a similar dev-experience across workspaces allows you to jump in and out from codebases. When you don't need to deal with a per-project setup or learn the workflow commands/scripts you simply focus on the code."),(0,r.mdx)("p",null,"Simple dev experience means you can ",(0,r.mdx)("strong",{parentName:"p"},"easily onboard")," yourself to a workspace, thanks to:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("strong",{parentName:"li"},"Use the same commands")," - Regardless of the tooling and configs used in a workspace, you use the same commands (",(0,r.mdx)("inlineCode",{parentName:"li"},"compile"),", ",(0,r.mdx)("inlineCode",{parentName:"li"},"test"),", etc) and get similarly structured outputs."),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("strong",{parentName:"li"},"Minimal configuration")," - Most of the configuration and setup is automated. No need to define per-component dependencies and no additional files needed to change a component's build pipeline."),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("strong",{parentName:"li"},"Templates and standards")," - Create new components with templates and apply your formatting, linting, compilation and testing standards with a single policy."),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("strong",{parentName:"li"},"Components are directories")," - Each ",(0,r.mdx)("a",{parentName:"li",href:"docs/workspace/component-directory"},"component in your workspace is a directory")," so relevant files, assets and tests available in a single place.")),(0,r.mdx)("p",null,"This makes it easy to scale the amount of components in a workspace, scale the amount of workspaces and even scale the amount of developers!"),(0,r.mdx)("h2",null,"Composition of components"),(0,r.mdx)("p",null,'The workspace is a container for the components. You get a monolithic-like developer experience and ability to refactor many components in a single place. In this "container" a component manages its own implementation, history and config (',(0,r.mdx)("a",{parentName:"p",href:"/docs/components/component-overview"},"read more"),").",(0,r.mdx)("br",{parentName:"p"}),"\n","This allows you to be flexible with how you structure a workspace and its contents. For example, you can ",(0,r.mdx)("a",{parentName:"p",href:"/docs/components/importing-components"},"import a component"),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-bash"},"bit import teambit.community/ui/graph/bubble-graph\n")),(0,r.mdx)("p",null,"Bit adds the new component to the list of components in the workspace, pulls down the complete revision history, configs and dependencies. Now you can do local modifications, see the component when running ",(0,r.mdx)("inlineCode",{parentName:"p"},"bit start"),", and maintain it as if you implemented it in your own workspace."),(0,r.mdx)("p",null,"In the same sense you can ",(0,r.mdx)("inlineCode",{parentName:"p"},"export")," and even ",(0,r.mdx)("inlineCode",{parentName:"p"},"eject")," any of your components from a workspace, and more it to another one. So if you started with building all components in the same place, you are not locked to that decision."),(0,r.mdx)(i.Image,{src:l.default,width:"85%",mdxType:"Image"}),(0,r.mdx)("h3",null,"Personalize your workspace"),(0,r.mdx)("p",null,"With composability in mind you can personalize your workspace on a per-feature basis or on the work you are currently focus on. You can start your flow by using ",(0,r.mdx)("inlineCode",{parentName:"p"},"bit import")," and fetch all required components, starting to modify and work on them as needed.",(0,r.mdx)("br",{parentName:"p"}),"\n","When done, you can version and eject unneeded components. Instead of you working in the boundaries of your workspace, have the workspace fit to your current work."),(0,r.mdx)("h2",null,"Configuration-less"),(0,r.mdx)("p",null,"Regardless of the amount of components you have in your workspace, and how different they may be in their configuration, it only requires two files to manage components."),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("inlineCode",{parentName:"li"},"workspace.jsonc")," - Contains the configuration policy for all components in the workspace."),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("inlineCode",{parentName:"li"},".bitmap")," - Maps Bit components to their corresponding location (dir) in the workspace.")),(0,r.mdx)("p",null,"With both these files you track where each component is located and can apply configuration from a centralized location according to various ",(0,r.mdx)("a",{parentName:"p",href:"/docs/workspace/variants"},(0,r.mdx)("inlineCode",{parentName:"a"},"variant"))," rules. The workspace then calculates the configuration to apply on a per-component basis."),(0,r.mdx)("p",null,"The end result is a clean workspace where you have a minimal amount of configuration files, no matter how many components you have and their variants."),(0,r.mdx)("h2",null,"Any dev environment, any framework"),(0,r.mdx)("p",null,"Angular modules, React components, Node modules or any other type of components you might need are rendered with the same ",(0,r.mdx)("a",{parentName:"p",href:"docs/workspace/workspace-ui"},"workspace UI"),", compiled by the same ",(0,r.mdx)("inlineCode",{parentName:"p"},"compile")," command, etc.",(0,r.mdx)("br",{parentName:"p"}),"\n","You can maintain components of different types and frameworks in a Bit workspace, as each component has it's own configured ",(0,r.mdx)("a",{parentName:"p",href:"/docs/envs/envs-overview"},"Component Development Environment"),", which the workspace use to run various workflows."),(0,r.mdx)("h2",null,"Components in the workspace"),(0,r.mdx)("p",null,"A Bit Workspace manages many components. It aims to create symmetry between component naming and the directory structure."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"├── cart\n│   ├── purchase-summary\n│   └── shopping-cart\n└── design\n ├── ui\n │   ├── button\n │   └── card // for example, the corresponding component ID: my-org.design/ui/button\n └── theme\n ├── color-pallet\n └── theme-context\n")),(0,r.mdx)("div",{className:"admonition admonition-tip alert alert--success"},(0,r.mdx)("div",{parentName:"div",className:"admonition-heading"},(0,r.mdx)("h5",{parentName:"div"},(0,r.mdx)("span",{parentName:"h5",className:"admonition-icon"},(0,r.mdx)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"},(0,r.mdx)("path",{parentName:"svg",fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))),"The structure is not rigid. You can sort components however you see fit.")),(0,r.mdx)("div",{parentName:"div",className:"admonition-content"})),(0,r.mdx)("p",null,"For each component Bit generates a link in the root ",(0,r.mdx)("inlineCode",{parentName:"p"},"node_modules")," directory according to the component ID. It contains the compiled output of a component."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-bash"},"└── node_modules\n └── @my-org\n └── my-scope.ui.card\n")),(0,r.mdx)("p",null,"Use these modules when consuming one component in another, even in the same workspace."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-jsx"},"import { Card } from '@my-org/my-scope.ui.card';\n")),(0,r.mdx)("div",{className:"admonition admonition-info alert alert--info"},(0,r.mdx)("div",{parentName:"div",className:"admonition-heading"},(0,r.mdx)("h5",{parentName:"div"},(0,r.mdx)("span",{parentName:"h5",className:"admonition-icon"},(0,r.mdx)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"},(0,r.mdx)("path",{parentName:"svg",fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))),"Absolute import statements decouple a component from the project's file structure.")),(0,r.mdx)("div",{parentName:"div",className:"admonition-content"})),(0,r.mdx)("h2",null,"Dependency Policy"),(0,r.mdx)("p",null,"The workspace dependency policy defines how external dependencies are installed and in which version. You may apply complex setups to have multiple versions of a dependency installed to fit different components. It allows you to determine where you want to adopt to a new version and which components should still use past versions."),(0,r.mdx)("p",null,"In your workspace you also have a ",(0,r.mdx)("a",{parentName:"p",href:"/docs/dependencies/dependencies-overview"},"dependency resolver")," that uses the policy to determine the type of dependency on a per-component basis.",(0,r.mdx)("br",{parentName:"p"}),"\n","Types of dependencies, like ",(0,r.mdx)("inlineCode",{parentName:"p"},"dependency")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"devDependency")," are contextual for each component. Meaning that according to where a component ",(0,r.mdx)("inlineCode",{parentName:"p"},"import"),"s a dependency, it will be set with the corresponding type. For example, a dependency only used in a test file will set as a ",(0,r.mdx)("inlineCode",{parentName:"p"},"devDependency")," for that specific component."),(0,r.mdx)("h2",null,"Performance"),(0,r.mdx)("p",null,"Bit workspace is optimized for quick and snappy feedback loop on code changes. It leaves the tough work of ensuring de-coupling and isolation to a more robust CI flow."),(0,r.mdx)("p",null,"To optimize performance even further any time you change a component Bit find which components are affected by the change. Bit then build your modified components and their affected dependents."),(0,r.mdx)("h2",null,"Integrate to existing codebases"),(0,r.mdx)("p",null,"Bit is a build tool that allows you to manage independent components. You may create a Bit workspace in a fresh directory or initialize one as part of an existing repository.",(0,r.mdx)("br",{parentName:"p"}),"\n","You can get started working on independent components alongside projects built with ",(0,r.mdx)("a",{parentName:"p",href:"https://angular.io/tutorial/toh-pt0"},"Angular"),", ",(0,r.mdx)("a",{parentName:"p",href:"https://create-react-app.dev"},"CRA")," and even ",(0,r.mdx)("a",{parentName:"p",href:"https://lerna.js.org"},"Lerna"),"."),(0,r.mdx)("p",null,(0,r.mdx)("inlineCode",{parentName:"p"},"cd")," to a pre-existing repository and run:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-bash"},"bit init\n")),(0,r.mdx)("p",null,"From here you may use any Bit command and flow to build independent components and integrate them into your application.")))}v.__bit_component=o,v.isMDXComponent=!0},13316:(e,t,n)=>{"use strict";var o={id:"teambit.workspace/workspace@1.0.267",homepage:"https://bit.cloud/teambit/workspace/workspace",exported:!0};function r(){const e=a(n(41594));return r=function(){return e},e}function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Logo=void 0,r.__bit_component=o,a.__bit_component=o;const i=()=>r().default.createElement("div",{style:{height:"100%",display:"flex",justifyContent:"center"}},r().default.createElement("img",{style:{width:70},src:"https://static.bit.dev/extensions-icons/workspace.svg"}));i.__bit_component=o,t.Logo=i},25229:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});const o={fullWidth:"image_fullWidth__DuFxF"}},70409:(e,t,n)=>{"use strict";e.exports=n.p+"static/images/b40d450de296e275550f.png"},69454:(e,t,n)=>{"use strict";e.exports=n.p+"static/images/2f046646df38433e90d7.png"},87323:(e,t,n)=>{"use strict";e.exports=n.p+"static/images/cb67fb802479e2710016.png"},5016:e=>{"use strict";e.exports=MdxJsReact},41594:e=>{"use strict";e.exports=React},65682:e=>{"use strict";e.exports=TeambitMdxUiMdxScopeContext},22729:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>I,__assign:()=>a,__asyncDelegator:()=>j,__asyncGenerator:()=>k,__asyncValues:()=>N,__await:()=>O,__awaiter:()=>f,__classPrivateFieldGet:()=>T,__classPrivateFieldIn:()=>D,__classPrivateFieldSet:()=>M,__createBinding:()=>y,__decorate:()=>s,__disposeResources:()=>B,__esDecorate:()=>l,__exportStar:()=>v,__extends:()=>r,__generator:()=>h,__importDefault:()=>C,__importStar:()=>P,__makeTemplateObject:()=>S,__metadata:()=>m,__param:()=>c,__propKey:()=>u,__read:()=>w,__rest:()=>i,__runInitializers:()=>p,__setFunctionName:()=>d,__spread:()=>b,__spreadArray:()=>_,__spreadArrays:()=>x,__values:()=>g,default:()=>A});var o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)};function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},a.apply(this,arguments)};function i(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}function s(e,t,n,o){var r,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(i=(a<3?r(i):a>3?r(t,n,i):r(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function c(e,t){return function(n,o){t(n,o,e)}}function l(e,t,n,o,r,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=o.kind,l="getter"===c?"get":"setter"===c?"set":"value",p=!t&&e?o.static?e:e.prototype:null,u=t||(p?Object.getOwnPropertyDescriptor(p,o.name):{}),d=!1,m=n.length-1;m>=0;m--){var f={};for(var h in o)f[h]="access"===h?{}:o[h];for(var h in o.access)f.access[h]=o.access[h];f.addInitializer=function(e){if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var y=(0,n[m])("accessor"===c?{get:u.get,set:u.set}:u[l],f);if("accessor"===c){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(s=i(y.get))&&(u.get=s),(s=i(y.set))&&(u.set=s),(s=i(y.init))&&r.unshift(s)}else(s=i(y))&&("field"===c?r.unshift(s):u[l]=s)}p&&Object.defineProperty(p,o.name,u),d=!0}function p(e,t,n){for(var o=arguments.length>2,r=0;r<t.length;r++)n=o?t[r].call(e,n):t[r].call(e);return o?n:void 0}function u(e){return"symbol"==typeof e?e:"".concat(e)}function d(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function m(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function f(e,t,n,o){return new(n||(n=Promise))((function(r,a){function i(e){try{c(o.next(e))}catch(e){a(e)}}function s(e){try{c(o.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((o=o.apply(e,t||[])).next())}))}function h(e,t){var n,o,r,a,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(n=1,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,o=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){i.label=s[1];break}if(6===s[0]&&i.label<r[1]){i.label=r[1],r=s;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(s);break}r[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],o=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}var y=Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]};function v(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||y(t,e,n)}function g(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function b(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(w(arguments[t]));return e}function x(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var o=Array(e),r=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,s=a.length;i<s;i++,r++)o[r]=a[i];return o}function _(e,t,n){if(n||2===arguments.length)for(var o,r=0,a=t.length;r<a;r++)!o&&r in t||(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}function O(e){return this instanceof O?(this.v=e,this):new O(e)}function k(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=n.apply(e,t||[]),a=[];return o={},i("next"),i("throw"),i("return"),o[Symbol.asyncIterator]=function(){return this},o;function i(e){r[e]&&(o[e]=function(t){return new Promise((function(n,o){a.push([e,t,n,o])>1||s(e,t)}))})}function s(e,t){try{(n=r[e](t)).value instanceof O?Promise.resolve(n.value.v).then(c,l):p(a[0][2],n)}catch(e){p(a[0][3],e)}var n}function c(e){s("next",e)}function l(e){s("throw",e)}function p(e,t){e(t),a.shift(),a.length&&s(a[0][0],a[0][1])}}function j(e){var t,n;return t={},o("next"),o("throw",(function(e){throw e})),o("return"),t[Symbol.iterator]=function(){return this},t;function o(o,r){t[o]=e[o]?function(t){return(n=!n)?{value:O(e[o](t)),done:!1}:r?r(t):t}:r}}function N(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=g(e),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(n){t[n]=e[n]&&function(t){return new Promise((function(o,r){!function(e,t,n,o){Promise.resolve(o).then((function(t){e({value:t,done:n})}),t)}(o,r,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var E=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function P(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&y(t,e,n);return E(t,e),t}function C(e){return e&&e.__esModule?e:{default:e}}function T(e,t,n,o){if("a"===n&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?o:"a"===n?o.call(e):o?o.value:t.get(e)}function M(e,t,n,o,r){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?r.call(e,n):r?r.value=n:t.set(e,n),n}function D(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function I(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");o=t[Symbol.asyncDispose]}if(void 0===o){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");o=t[Symbol.dispose]}if("function"!=typeof o)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:o,async:n})}else n&&e.stack.push({async:!0});return t}var z="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var o=new Error(n);return o.name="SuppressedError",o.error=e,o.suppressed=t,o};function B(e){function t(t){e.error=e.hasError?new z(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var o=e.stack.pop();try{var r=o.dispose&&o.dispose.call(o.value);if(o.async)return Promise.resolve(r).then(n,(function(e){return t(e),n()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()}const A={__extends:r,__assign:a,__rest:i,__decorate:s,__param:c,__metadata:m,__awaiter:f,__generator:h,__createBinding:y,__exportStar:v,__values:g,__read:w,__spread:b,__spreadArrays:x,__spreadArray:_,__await:O,__asyncGenerator:k,__asyncDelegator:j,__asyncValues:N,__makeTemplateObject:S,__importStar:P,__importDefault:C,__classPrivateFieldGet:T,__classPrivateFieldSet:M,__classPrivateFieldIn:D,__addDisposableResource:I,__disposeResources:B}}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var a=t[o]={exports:{}};return e[o].call(a.exports,a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var r=o.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=o[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})();var o={};return(()=>{"use strict";n.r(o),n.d(o,{compositions:()=>d,compositions_metadata:()=>f,overview:()=>m});var e={};n.r(e),n.d(e,{default:()=>u});var t=n(13316),r=(n(41594),n(5016)),a=n(65682),i=n(55491),s=["components"];function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},c.apply(this,arguments)}var l={},p="wrapper";function u(e){var t=e.components,n=function(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n={};for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){if(t.indexOf(o)>=0)continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,s);return(0,r.mdx)(p,c({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)(a.MDXScopeProvider,{components:{WorkspaceOverview:i.Ay},mdxType:"MDXScopeProvider"},(0,r.mdx)(i.Ay,{mdxType:"WorkspaceOverview"})))}u.isMDXComponent=!0;const d=[t],m=[e],f={compositions:[{displayName:"Logo",identifier:"Logo"}]}})(),o})()));
@@ -11008,7 +11008,7 @@
11008
11008
  "_legacy": {
11009
11009
  "scope": "teambit.workspace",
11010
11010
  "name": "workspace",
11011
- "version": "1.0.265"
11011
+ "version": "1.0.267"
11012
11012
  },
11013
11013
  "_scope": "teambit.workspace"
11014
11014
  }
@@ -11216,7 +11216,7 @@
11216
11216
  "_legacy": {
11217
11217
  "scope": "teambit.workspace",
11218
11218
  "name": "workspace",
11219
- "version": "1.0.265"
11219
+ "version": "1.0.267"
11220
11220
  },
11221
11221
  "_scope": "teambit.workspace"
11222
11222
  }
@@ -11673,7 +11673,7 @@
11673
11673
  "_legacy": {
11674
11674
  "scope": "teambit.workspace",
11675
11675
  "name": "workspace",
11676
- "version": "1.0.265"
11676
+ "version": "1.0.267"
11677
11677
  },
11678
11678
  "_scope": "teambit.workspace"
11679
11679
  }
@@ -11829,7 +11829,7 @@
11829
11829
  "_legacy": {
11830
11830
  "scope": "teambit.workspace",
11831
11831
  "name": "workspace",
11832
- "version": "1.0.265"
11832
+ "version": "1.0.267"
11833
11833
  },
11834
11834
  "_scope": "teambit.workspace"
11835
11835
  }
@@ -11965,7 +11965,7 @@
11965
11965
  "_legacy": {
11966
11966
  "scope": "teambit.workspace",
11967
11967
  "name": "workspace",
11968
- "version": "1.0.265"
11968
+ "version": "1.0.267"
11969
11969
  },
11970
11970
  "_scope": "teambit.workspace"
11971
11971
  }
@@ -14108,7 +14108,7 @@
14108
14108
  "_legacy": {
14109
14109
  "scope": "teambit.workspace",
14110
14110
  "name": "workspace",
14111
- "version": "1.0.265"
14111
+ "version": "1.0.267"
14112
14112
  },
14113
14113
  "_scope": "teambit.workspace"
14114
14114
  }
@@ -14475,7 +14475,7 @@
14475
14475
  "_legacy": {
14476
14476
  "scope": "teambit.workspace",
14477
14477
  "name": "workspace",
14478
- "version": "1.0.265"
14478
+ "version": "1.0.267"
14479
14479
  },
14480
14480
  "_scope": "teambit.workspace"
14481
14481
  }
@@ -27352,7 +27352,7 @@
27352
27352
  "_legacy": {
27353
27353
  "scope": "teambit.workspace",
27354
27354
  "name": "workspace",
27355
- "version": "1.0.265"
27355
+ "version": "1.0.267"
27356
27356
  },
27357
27357
  "_scope": "teambit.workspace"
27358
27358
  }
@@ -28827,7 +28827,7 @@
28827
28827
  "_legacy": {
28828
28828
  "scope": "teambit.workspace",
28829
28829
  "name": "workspace",
28830
- "version": "1.0.265"
28830
+ "version": "1.0.267"
28831
28831
  },
28832
28832
  "_scope": "teambit.workspace"
28833
28833
  }
@@ -29071,7 +29071,7 @@
29071
29071
  "_legacy": {
29072
29072
  "scope": "teambit.workspace",
29073
29073
  "name": "workspace",
29074
- "version": "1.0.265"
29074
+ "version": "1.0.267"
29075
29075
  },
29076
29076
  "_scope": "teambit.workspace"
29077
29077
  }
@@ -29295,7 +29295,7 @@
29295
29295
  "_legacy": {
29296
29296
  "scope": "teambit.workspace",
29297
29297
  "name": "workspace",
29298
- "version": "1.0.265"
29298
+ "version": "1.0.267"
29299
29299
  },
29300
29300
  "_scope": "teambit.workspace"
29301
29301
  }
@@ -32405,7 +32405,7 @@
32405
32405
  "_legacy": {
32406
32406
  "scope": "teambit.workspace",
32407
32407
  "name": "workspace",
32408
- "version": "1.0.265"
32408
+ "version": "1.0.267"
32409
32409
  },
32410
32410
  "_scope": "teambit.workspace"
32411
32411
  }
@@ -34315,7 +34315,7 @@
34315
34315
  "componentId": {
34316
34316
  "scope": "teambit.workspace",
34317
34317
  "name": "workspace",
34318
- "version": "1.0.265"
34318
+ "version": "1.0.267"
34319
34319
  },
34320
34320
  "taggedModuleExports": []
34321
34321
  }
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.265/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.265/dist/workspace.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.267/dist/workspace.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.267/dist/workspace.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -128,7 +128,6 @@ class WorkspaceAspectsLoader {
128
128
  * keep in mind that the graph may have circles.
129
129
  */
130
130
  async loadAspects(ids = [], throwOnError, neededFor, opts = {}) {
131
- this.logger.profile('workspace.loadAspects');
132
131
  const calculatedThrowOnError = throwOnError ?? false;
133
132
  const defaultOpts = {
134
133
  useScopeAspectsCapsule: false,
@@ -144,6 +143,7 @@ class WorkspaceAspectsLoader {
144
143
  // generate a random callId to be able to identify the call from the logs
145
144
  const callId = Math.floor(Math.random() * 1000);
146
145
  const loggerPrefix = `[${callId}] loadAspects,`;
146
+ this.logger.profile(`[${callId}] workspace.loadAspects`);
147
147
  this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.
148
148
  ids: ${ids.join(', ')}
149
149
  needed-for: ${neededFor || '<unknown>'}. using opts: ${JSON.stringify(mergedOpts, null, 2)}`);
@@ -152,7 +152,7 @@ needed-for: ${neededFor || '<unknown>'}. using opts: ${JSON.stringify(mergedOpts
152
152
  await this.aspectLoader.loadAspectFromPath(this.workspace.localAspects);
153
153
  const notLoadedIds = nonLocalAspects.filter(id => !this.aspectLoader.isAspectLoaded(id));
154
154
  if (!notLoadedIds.length) {
155
- this.logger.profile('workspace.loadAspects');
155
+ this.logger.profile(`[${callId}] workspace.loadAspects`);
156
156
  return [];
157
157
  }
158
158
  const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();
@@ -199,9 +199,9 @@ needed-for: ${neededFor || '<unknown>'}. using opts: ${JSON.stringify(mergedOpts
199
199
  await this.aspectLoader.loadExtensionsByManifests(pluginsManifests, undefined, {
200
200
  throwOnError
201
201
  });
202
- this.logger.debug(`${loggerPrefix} finish loading aspects`);
203
202
  const manifestIds = manifests.map(manifest => manifest.id);
204
- this.logger.profile('workspace.loadAspects');
203
+ this.logger.debug(`${loggerPrefix} finish loading aspects`);
204
+ this.logger.profile(`[${callId}] workspace.loadAspects`);
205
205
  return (0, _lodash().compact)(manifestIds.concat(scopeAspectIds));
206
206
  }
207
207
  async loadFromScopeAspectsCapsule(ids, throwOnError, neededFor) {
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","data","require","_findRoot","_interopRequireDefault","_toolboxModules","_aspectLoader","_cli","_fsExtra","_harmonyModules","_workspaceModules","_componentId","_exceptions","_pMapSeries","_lodash","_bitError","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","WorkspaceAspectsLoader","constructor","workspace","scope","aspectLoader","envs","dependencyResolver","logger","globalConfig","harmony","onAspectsResolveSlot","onRootAspectAddedSlot","resolveAspectsFromNodeModules","resolveEnvsFromRoots","consumer","resolvedInstalledAspects","Map","hasRootComponents","loadAspects","ids","throwOnError","neededFor","opts","profile","calculatedThrowOnError","defaultOpts","useScopeAspectsCapsule","runSubscribers","skipDeps","hideMissingModuleError","inInstallContext","ignoreErrors","mergedOpts","callId","Math","floor","random","loggerPrefix","info","join","JSON","stringify","localAspects","nonLocalAspects","partition","id","startsWith","loadAspectFromPath","notLoadedIds","isAspectLoaded","coreAspectsStringIds","getCoreAspectIds","idsWithoutCore","difference","componentIds","resolveMultipleComponentIds","workspaceIds","nonWorkspaceIds","groupIdsByWorkspaceExistence","logFoundWorkspaceVsScope","idsToLoadFromWs","scopeAspectIds","loadFromScopeAspectsCapsule","aspectsDefs","resolveAspects","undefined","excludeCore","requestedOnly","manifests","requireableComponents","loadAspectDefsByOrder","potentialPluginsIndexes","compact","map","manifest","index","isValidAspect","pluginsRequireableComponents","pluginsManifests","getManifestsFromRequireableExtensions","loadExtensionsByManifests","debug","manifestIds","concat","currentLane","getCurrentLaneObject","nonWorkspaceIdsString","toString","packageManagerConfigRootDir","path","workspaceName","name","err","throwWsJsoncAspectNotFoundError","ComponentNotFound","config","get","configStr","workspaceConfig","raw","includes","BitError","seeders","nonWorkspaceDefs","groupAspectDefsByWorkspaceExistence","scopeAspectsLoader","getScopeAspectsLoader","scopeIds","aspectDef","getId","scopeIdsGrouped","groupAspectIdsByEnvOfTheList","aspectDefsToRequireableComponents","runtimeName","filterByRuntime","idsToResolve","extensionsIds","coreAspectsIds","configuredAspects","getConfiguredAspects","userAspectsIds","toStringWithoutVersion","rootAspectsIds","componentIdsToResolve","components","importAndGetAspects","runOnAspectsResolveFunctions","wsAspectDefs","getWorkspaceAspectResolver","coreAspectDefs","Promise","all","coreId","rawDef","getAspectDef","loadDefinition","idsToFilter","idStr","ComponentID","fromString","targetDefs","finalDefs","filterAspectDefs","groupedByIsPlugin","groupBy","component","hasPluginFiles","graph","getAspectsGraphWithoutCore","false","isAspect","bind","aspectsComponents","nodes","node","attr","true","workspaceComps","nonWorkspaceComps","groupComponentsByWorkspaceExistence","workspaceCompsIds","c","nonWorkspaceCompsIds","stringIds","linkIfMissingWorkspaceAspects","componentsToResolveFromScope","componentsToResolveFromInstalled","nonWorkspaceCompsGroups","isEnv","scopeAspectsDefs","installedAspectsDefs","getInstalledAspectResolver","coreAspect","runtimePath","localResolved","resolveLocalAspects","allDefsExceptLocal","withoutLocalAspects","aspectId","find","localAspect","allDefs","filteredDefs","shouldUseHashForCapsules","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","getCapsulePath","defaultPath","workspaceIdsStr","nonWorkspaceIdsStr","use","aspectIdStr","resolveComponentId","inWs","hasId","aspectIdToAdd","aspectsComponent","Error","setExtension","overrideExisting","ignoreVersion","write","reasonForChange","addInMemoryConfiguredAspect","runOnRootAspectAddedFunctions","getConfiguredUserAspectsPackages","options","componentsToGetPackages","externalsOnly","packages","aspectComponent","packageName","getPackageName","version","aspectDefs","localPath","aspectPath","requireFunc","plugins","getPlugins","has","load","MainRuntime","isModule","isEsmModule","aspect","loadEsm","getRuntimePath","RequireableComponent","aspects","idsToLink","isInWs","exist","fs","pathExists","idsToLinkWithoutNull","linkToNodeModulesByIds","workspaceAspectResolver","compStringId","getComponentPackagePath","aspectFilePath","getAspectFilePath","funcs","getOnAspectsResolveFunctions","pMapSeries","func","error","aspectsResolveFunctions","values","aspectsId","getOnRootAspectAddedFunctions","RootAspectAddedFunctions","rootIds","installedAspectsResolver","resolveInstalledAspectRecursively","aspectStringId","resolvedPath","set","parent","predecessors","parentPath","resolveFrom","findRoot","consoleWarning","message","buildOneGraphForComponents","loadComponentsExtensions","extensions","originatedFrom","extensionsIdsP","extensionEntry","extensionId","stringId","harmonyExtensions","loadedExtensions","extId","loaded","extensionsToLoad","isUsingAspectEnv","isUsingEnvEnv","loadOpts","idsToNotLoadAsAspects","importAndGetMany","existOnWorkspace","rootComps","nonRootComps","groupComponentsByLoadFromRootComps","shouldLoadFromRootComps","rootDir","rootDirExist","aspectFilePathExist","pluginFiles","getPluginFiles","hasEnvManifest","workspaceDefs","scopeComponents","exports"],"sources":["workspace-aspects-loader.ts"],"sourcesContent":["import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport findRoot from 'find-root';\nimport { resolveFrom } from '@teambit/toolbox.modules.module-resolver';\nimport { Graph } from '@teambit/graph.cleargraph';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { ExtensionManifest, Harmony, Aspect } from '@teambit/harmony';\nimport {\n AspectDefinition,\n AspectLoaderMain,\n AspectResolver,\n getAspectDef,\n ResolvedAspect,\n} from '@teambit/aspect-loader';\nimport { MainRuntime } from '@teambit/cli';\nimport fs from 'fs-extra';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { linkToNodeModulesByIds } from '@teambit/workspace.modules.node-modules-linker';\nimport { ComponentID } from '@teambit/component-id';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport pMapSeries from 'p-map-series';\nimport { difference, compact, groupBy, partition } from 'lodash';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { Component, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport { ScopeMain } from '@teambit/scope';\nimport { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { EnvsMain } from '@teambit/envs';\nimport { ConfigMain } from '@teambit/config';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ShouldLoadFunc } from './build-graph-from-fs';\nimport type { Workspace } from './workspace';\nimport {\n OnAspectsResolve,\n OnAspectsResolveSlot,\n OnRootAspectAdded,\n OnRootAspectAddedSlot,\n} from './workspace.main.runtime';\nimport { ComponentLoadOptions } from './workspace-component/workspace-component-loader';\n\nexport type GetConfiguredUserAspectsPackagesOptions = {\n externalsOnly?: boolean;\n};\n\nexport type WorkspaceLoadAspectsOptions = LoadAspectsOptions & {\n useScopeAspectsCapsule?: boolean;\n runSubscribers?: boolean;\n skipDeps?: boolean;\n resolveEnvsFromRoots?: boolean;\n};\n\nexport type AspectPackage = { packageName: string; version: string };\n\nexport class WorkspaceAspectsLoader {\n private consumer: Consumer;\n private resolvedInstalledAspects: Map<string, string | null>;\n\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private envs: EnvsMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger,\n private globalConfig: GlobalConfigMain,\n private harmony: Harmony,\n private onAspectsResolveSlot: OnAspectsResolveSlot,\n private onRootAspectAddedSlot: OnRootAspectAddedSlot,\n private resolveAspectsFromNodeModules = false,\n private resolveEnvsFromRoots = false\n ) {\n this.consumer = this.workspace.consumer;\n this.resolvedInstalledAspects = new Map();\n // Only enable this when root components is enabled as well\n this.resolveEnvsFromRoots = this.resolveEnvsFromRoots && this.dependencyResolver.hasRootComponents();\n }\n\n /**\n * load aspects from the workspace and if not exists in the workspace, load from the node_modules.\n * keep in mind that the graph may have circles.\n */\n async loadAspects(\n ids: string[] = [],\n throwOnError?: boolean,\n neededFor?: string,\n opts: WorkspaceLoadAspectsOptions = {}\n ): Promise<string[]> {\n this.logger.profile('workspace.loadAspects');\n const calculatedThrowOnError: boolean = throwOnError ?? false;\n const defaultOpts: Required<WorkspaceLoadAspectsOptions> = {\n useScopeAspectsCapsule: false,\n throwOnError: calculatedThrowOnError,\n runSubscribers: true,\n skipDeps: false,\n hideMissingModuleError: !!this.workspace.inInstallContext,\n ignoreErrors: false,\n resolveEnvsFromRoots: this.resolveEnvsFromRoots,\n };\n const mergedOpts: Required<WorkspaceLoadAspectsOptions> = { ...defaultOpts, ...opts };\n\n // generate a random callId to be able to identify the call from the logs\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] loadAspects,`;\n this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.\nids: ${ids.join(', ')}\nneeded-for: ${neededFor || '<unknown>'}. using opts: ${JSON.stringify(mergedOpts, null, 2)}`);\n const [localAspects, nonLocalAspects] = partition(ids, (id) => id.startsWith('file:'));\n this.workspace.localAspects = localAspects;\n await this.aspectLoader.loadAspectFromPath(this.workspace.localAspects);\n const notLoadedIds = nonLocalAspects.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) {\n this.logger.profile('workspace.loadAspects');\n return [];\n }\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(notLoadedIds, coreAspectsStringIds);\n\n const componentIds = await this.workspace.resolveMultipleComponentIds(idsWithoutCore);\n\n const { workspaceIds, nonWorkspaceIds } = await this.groupIdsByWorkspaceExistence(\n componentIds,\n mergedOpts.resolveEnvsFromRoots\n );\n\n this.logFoundWorkspaceVsScope(loggerPrefix, workspaceIds, nonWorkspaceIds);\n let idsToLoadFromWs = componentIds;\n let scopeAspectIds: string[] = [];\n\n // TODO: hard coded use the old approach and loading from the scope capsules\n // This is because right now loading from the ws node_modules causes issues in some cases\n // like for the cloud app\n // it should be removed once we fix the issues\n if (!this.resolveAspectsFromNodeModules) {\n mergedOpts.useScopeAspectsCapsule = true;\n }\n\n if (mergedOpts.useScopeAspectsCapsule) {\n idsToLoadFromWs = workspaceIds;\n scopeAspectIds = await this.loadFromScopeAspectsCapsule(nonWorkspaceIds, throwOnError, neededFor);\n }\n\n const aspectsDefs = await this.resolveAspects(undefined, idsToLoadFromWs, {\n excludeCore: true,\n requestedOnly: false,\n ...mergedOpts,\n });\n\n const { manifests, requireableComponents } = await this.loadAspectDefsByOrder(\n aspectsDefs,\n idsWithoutCore,\n mergedOpts.throwOnError,\n mergedOpts.hideMissingModuleError,\n neededFor,\n mergedOpts.runSubscribers\n );\n\n const potentialPluginsIndexes = compact(\n manifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n return index;\n })\n );\n\n // Try require components for potential plugins\n const pluginsRequireableComponents = potentialPluginsIndexes.map((index) => {\n return requireableComponents[index];\n });\n // Do the require again now that the plugins defs already registered\n const pluginsManifests = await this.aspectLoader.getManifestsFromRequireableExtensions(\n pluginsRequireableComponents,\n throwOnError,\n opts.runSubscribers\n );\n\n await this.aspectLoader.loadExtensionsByManifests(pluginsManifests, undefined, { throwOnError });\n this.logger.debug(`${loggerPrefix} finish loading aspects`);\n const manifestIds = manifests.map((manifest) => manifest.id);\n this.logger.profile('workspace.loadAspects');\n return compact(manifestIds.concat(scopeAspectIds));\n }\n\n private async loadFromScopeAspectsCapsule(ids: ComponentID[], throwOnError?: boolean, neededFor?: string) {\n let scopeAspectIds: string[] = [];\n const currentLane = await this.consumer.getCurrentLaneObject();\n\n if (!ids.length) return [];\n\n const nonWorkspaceIdsString = ids.map((id) => id.toString());\n try {\n scopeAspectIds = await this.scope.loadAspects(nonWorkspaceIdsString, throwOnError, neededFor, currentLane, {\n packageManagerConfigRootDir: this.workspace.path,\n workspaceName: this.workspace.name,\n });\n return scopeAspectIds;\n } catch (err: any) {\n this.throwWsJsoncAspectNotFoundError(err);\n return scopeAspectIds;\n\n throw err;\n }\n }\n\n throwWsJsoncAspectNotFoundError(err: any) {\n if (err instanceof ComponentNotFound) {\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n const configStr = JSON.stringify(config.workspaceConfig?.raw || {});\n if (configStr.includes(err.id)) {\n throw new BitError(`error: a component \"${err.id}\" was not found\nyour workspace.jsonc has this component-id set. you might want to remove/change it.`);\n }\n }\n }\n\n private async loadAspectDefsByOrder(\n aspectsDefs: AspectDefinition[],\n seeders: string[],\n throwOnError: boolean,\n hideMissingModuleError: boolean,\n neededFor?: string,\n runSubscribers = true\n ): Promise<{ manifests: Array<Aspect | ExtensionManifest>; requireableComponents: RequireableComponent[] }> {\n const { nonWorkspaceDefs } = await this.groupAspectDefsByWorkspaceExistence(aspectsDefs);\n const scopeAspectsLoader = this.scope.getScopeAspectsLoader();\n const scopeIds: string[] = compact(nonWorkspaceDefs.map((aspectDef) => aspectDef.getId));\n const scopeIdsGrouped = await scopeAspectsLoader.groupAspectIdsByEnvOfTheList(scopeIds);\n\n // Make sure to first load envs from the list otherwise it will fail when trying to load other aspects\n // as their envs might not be loaded yet\n if (scopeIdsGrouped.envs && scopeIdsGrouped.envs.length && !runSubscribers) {\n await this.scope.loadAspects(scopeIdsGrouped.envs, throwOnError, 'workspace.loadAspects loading scope aspects');\n }\n const requireableComponents = this.aspectDefsToRequireableComponents(aspectsDefs);\n const manifests = await this.aspectLoader.getManifestsFromRequireableExtensions(\n requireableComponents,\n throwOnError,\n runSubscribers\n );\n await this.aspectLoader.loadExtensionsByManifests(\n manifests,\n { seeders, neededFor },\n { throwOnError, hideMissingModuleError }\n );\n return { manifests, requireableComponents };\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] workspace resolveAspects,`;\n\n this.logger.debug(\n `${loggerPrefix}, resolving aspects for - runtimeName: ${runtimeName}, componentIds: ${componentIds}`\n );\n const defaultOpts: ResolveAspectsOptions = {\n excludeCore: false,\n requestedOnly: false,\n filterByRuntime: true,\n useScopeAspectsCapsule: false,\n workspaceName: this.workspace.name,\n resolveEnvsFromRoots: this.resolveEnvsFromRoots,\n packageManagerConfigRootDir: this.workspace.path,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n const idsToResolve = componentIds ? componentIds.map((id) => id.toString()) : this.harmony.extensionsIds;\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const configuredAspects = this.aspectLoader.getConfiguredAspects();\n // it's possible that componentIds are core-aspects that got version for some reason, remove the version to\n // correctly filter them out later.\n const userAspectsIds: string[] = componentIds\n ? componentIds.filter((id) => !coreAspectsIds.includes(id.toStringWithoutVersion())).map((id) => id.toString())\n : difference(this.harmony.extensionsIds, coreAspectsIds);\n const rootAspectsIds: string[] = difference(configuredAspects, coreAspectsIds);\n const componentIdsToResolve = await this.workspace.resolveMultipleComponentIds(userAspectsIds);\n const components = await this.importAndGetAspects(componentIdsToResolve, opts?.throwOnError);\n // Run the on load slot\n await this.runOnAspectsResolveFunctions(components);\n\n if (opts?.skipDeps) {\n const wsAspectDefs = await this.aspectLoader.resolveAspects(\n components,\n this.getWorkspaceAspectResolver([], runtimeName)\n );\n\n const coreAspectDefs = await Promise.all(\n coreAspectsIds.map(async (coreId) => {\n const rawDef = await getAspectDef(coreId, runtimeName);\n return this.aspectLoader.loadDefinition(rawDef);\n })\n );\n\n const idsToFilter = idsToResolve.map((idStr) => ComponentID.fromString(idStr));\n const targetDefs = wsAspectDefs.concat(coreAspectDefs);\n const finalDefs = this.aspectLoader.filterAspectDefs(targetDefs, idsToFilter, runtimeName, mergedOpts);\n\n return finalDefs;\n }\n\n const groupedByIsPlugin = groupBy(components, (component) => {\n return this.aspectLoader.hasPluginFiles(component);\n });\n const graph = await this.getAspectsGraphWithoutCore(groupedByIsPlugin.false, this.isAspect.bind(this));\n const aspectsComponents = graph.nodes.map((node) => node.attr).concat(groupedByIsPlugin.true || []);\n this.logger.debug(`${loggerPrefix} found ${aspectsComponents.length} aspects in the aspects-graph`);\n const { workspaceComps, nonWorkspaceComps } = await this.groupComponentsByWorkspaceExistence(\n aspectsComponents,\n mergedOpts.resolveEnvsFromRoots\n );\n\n const workspaceCompsIds = workspaceComps.map((c) => c.id);\n const nonWorkspaceCompsIds = nonWorkspaceComps.map((c) => c.id);\n this.logFoundWorkspaceVsScope(loggerPrefix, workspaceCompsIds, nonWorkspaceCompsIds);\n\n const stringIds: string[] = [];\n const wsAspectDefs = await this.aspectLoader.resolveAspects(\n workspaceComps,\n this.getWorkspaceAspectResolver(stringIds, runtimeName)\n );\n\n await this.linkIfMissingWorkspaceAspects(wsAspectDefs);\n\n // TODO: hard coded use the old approach and loading from the scope capsules\n // This is because right now loading from the ws node_modules causes issues in some cases\n // like for the cloud app\n // it should be removed once we fix the issues\n if (!this.resolveAspectsFromNodeModules) {\n mergedOpts.useScopeAspectsCapsule = true;\n }\n\n let componentsToResolveFromScope = nonWorkspaceComps;\n let componentsToResolveFromInstalled: Component[] = [];\n if (!mergedOpts.useScopeAspectsCapsule) {\n const nonWorkspaceCompsGroups = groupBy(nonWorkspaceComps, (component) => this.envs.isEnv(component));\n componentsToResolveFromScope = nonWorkspaceCompsGroups.true || [];\n componentsToResolveFromInstalled = nonWorkspaceCompsGroups.false || [];\n }\n\n const scopeIds = componentsToResolveFromScope.map((c) => c.id);\n this.logger.debug(\n `${loggerPrefix} ${\n scopeIds.length\n } components are not in the workspace and are loaded from the scope capsules:\\n${scopeIds\n .map((id) => id.toString())\n .join('\\n')}`\n );\n const scopeAspectsDefs: AspectDefinition[] = scopeIds.length\n ? await this.scope.resolveAspects(runtimeName, scopeIds, mergedOpts)\n : [];\n\n this.logger.debug(\n `${loggerPrefix} ${\n componentsToResolveFromInstalled.length\n } components are not in the workspace and are loaded from the node_modules:\\n${componentsToResolveFromInstalled\n .map((c) => c.id.toString())\n .join('\\n')}`\n );\n const installedAspectsDefs: AspectDefinition[] = componentsToResolveFromInstalled.length\n ? await this.aspectLoader.resolveAspects(\n componentsToResolveFromInstalled,\n this.getInstalledAspectResolver(graph, rootAspectsIds, runtimeName, {\n throwOnError: opts?.throwOnError ?? false,\n })\n )\n : [];\n\n let coreAspectDefs = await Promise.all(\n coreAspectsIds.map(async (coreId) => {\n const rawDef = await getAspectDef(coreId, runtimeName);\n return this.aspectLoader.loadDefinition(rawDef);\n })\n );\n\n // due to lack of workspace and scope runtimes. TODO: fix after adding them.\n if (runtimeName && mergedOpts.filterByRuntime) {\n coreAspectDefs = coreAspectDefs.filter((coreAspect) => {\n return coreAspect.runtimePath;\n });\n }\n const localResolved = await this.aspectLoader.resolveLocalAspects(this.workspace.localAspects, runtimeName);\n const allDefsExceptLocal = [...wsAspectDefs, ...coreAspectDefs, ...scopeAspectsDefs, ...installedAspectsDefs];\n const withoutLocalAspects = allDefsExceptLocal.filter((aspectId) => {\n return !localResolved.find((localAspect) => {\n return localAspect.id === aspectId.component?.id?.toStringWithoutVersion();\n });\n });\n const allDefs = [...withoutLocalAspects, ...localResolved];\n const idsToFilter = idsToResolve.map((idStr) => ComponentID.fromString(idStr));\n const filteredDefs = this.aspectLoader.filterAspectDefs(allDefs, idsToFilter, runtimeName, mergedOpts);\n return filteredDefs;\n }\n\n shouldUseHashForCapsules(): boolean {\n return !this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n getCapsulePath() {\n const defaultPath = this.workspace.path;\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR) || defaultPath;\n }\n\n private logFoundWorkspaceVsScope(loggerPrefix: string, workspaceIds: ComponentID[], nonWorkspaceIds: ComponentID[]) {\n const workspaceIdsStr = workspaceIds.length ? workspaceIds.map((id) => id.toString()).join('\\n') : '';\n const nonWorkspaceIdsStr = nonWorkspaceIds.length ? nonWorkspaceIds.map((id) => id.toString()).join('\\n') : '';\n this.logger.debug(\n `${loggerPrefix} found ${workspaceIds.length} components in the workspace, ${nonWorkspaceIds.length} not in the workspace`\n );\n if (workspaceIdsStr) this.logger.debug(`${loggerPrefix} workspace components:\\n${workspaceIdsStr}`);\n if (nonWorkspaceIdsStr)\n this.logger.debug(\n `${loggerPrefix} non workspace components (loaded from the scope capsules or from the node_modules):\\n${nonWorkspaceIdsStr}`\n );\n }\n\n async use(aspectIdStr: string): Promise<string> {\n let aspectId = await this.workspace.resolveComponentId(aspectIdStr);\n const inWs = await this.workspace.hasId(aspectId);\n let aspectIdToAdd = aspectId.toStringWithoutVersion();\n\n let aspectsComponent;\n // let aspectPackage;\n if (!inWs) {\n const aspectsComponents = await this.importAndGetAspects([aspectId]);\n if (aspectsComponents[0]) {\n aspectsComponent = aspectsComponents[0];\n aspectId = aspectsComponent.id;\n aspectIdToAdd = aspectId.toString();\n }\n }\n\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config').workspaceConfig;\n if (!config) {\n throw new Error(`use() unable to get the workspace config`);\n }\n config.setExtension(\n aspectIdToAdd,\n {},\n {\n overrideExisting: false,\n ignoreVersion: false,\n }\n );\n await config.write({ reasonForChange: `use (${aspectIdStr})` });\n this.aspectLoader.addInMemoryConfiguredAspect(aspectIdToAdd);\n await this.runOnRootAspectAddedFunctions(aspectId, inWs);\n return aspectIdToAdd;\n }\n\n async getConfiguredUserAspectsPackages(\n options: GetConfiguredUserAspectsPackagesOptions = {}\n ): Promise<AspectPackage[]> {\n const configuredAspects = this.aspectLoader.getConfiguredAspects();\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const userAspectsIds: string[] = difference(configuredAspects, coreAspectsIds);\n const componentIdsToResolve = await this.workspace.resolveMultipleComponentIds(\n userAspectsIds.filter((id) => !id.startsWith('file:'))\n );\n const aspectsComponents = await this.importAndGetAspects(componentIdsToResolve);\n let componentsToGetPackages = aspectsComponents;\n if (options.externalsOnly) {\n const { nonWorkspaceComps } = await this.groupComponentsByWorkspaceExistence(aspectsComponents);\n componentsToGetPackages = nonWorkspaceComps;\n }\n const packages = componentsToGetPackages.map((aspectComponent) => {\n const packageName = this.dependencyResolver.getPackageName(aspectComponent);\n const version = aspectComponent.id.version || '*';\n return { packageName, version };\n });\n return packages;\n }\n\n private aspectDefsToRequireableComponents(aspectDefs: AspectDefinition[]): RequireableComponent[] {\n const requireableComponents = aspectDefs.map((aspectDef) => {\n const localPath = aspectDef.aspectPath;\n const component = aspectDef.component;\n if (!component) return undefined;\n const requireFunc = async () => {\n const plugins = this.aspectLoader.getPlugins(component, localPath);\n if (plugins.has()) {\n return plugins.load(MainRuntime.name);\n }\n\n const isModule = await this.aspectLoader.isEsmModule(localPath);\n\n const aspect = !isModule\n ? // eslint-disable-next-line global-require, import/no-dynamic-require\n require(localPath)\n : // : await this.aspectLoader.loadEsm(join(localPath, 'dist', 'index.js'));\n await this.aspectLoader.loadEsm(localPath);\n\n // require aspect runtimes\n const runtimePath = await this.aspectLoader.getRuntimePath(component, localPath, MainRuntime.name);\n if (runtimePath) {\n if (isModule) await this.aspectLoader.loadEsm(runtimePath);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n require(runtimePath);\n }\n return aspect;\n };\n return new RequireableComponent(component, requireFunc);\n });\n return compact(requireableComponents);\n }\n\n private async linkIfMissingWorkspaceAspects(aspects: AspectDefinition[]) {\n const idsToLink = await Promise.all(\n aspects.map(async (aspect) => {\n if (!aspect.component)\n throw new Error(`linkIfMissingWorkspaceAspects, aspect.component is missing for ${aspect.aspectPath}`);\n const isInWs = await this.workspace.hasId(aspect.component.id);\n if (!isInWs) return null;\n const exist = await fs.pathExists(aspect.aspectPath);\n if (!exist) return aspect.component.id;\n return null;\n })\n );\n const idsToLinkWithoutNull = compact(idsToLink);\n if (!idsToLinkWithoutNull.length) return;\n await linkToNodeModulesByIds(this.workspace, idsToLinkWithoutNull);\n }\n\n /**\n * This will return a resolver that knows to resolve aspects which are part of the workspace.\n * means aspects exist in the bitmap file\n * @param stringIds\n * @param runtimeName\n * @returns\n */\n private getWorkspaceAspectResolver(stringIds: string[], runtimeName?: string): AspectResolver {\n const workspaceAspectResolver = async (component: Component): Promise<ResolvedAspect> => {\n const compStringId = component.id.toString();\n stringIds.push(compStringId);\n const localPath = await this.workspace.getComponentPackagePath(component);\n\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `workspace resolveAspects, resolving id: ${compStringId}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n return {\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n };\n return workspaceAspectResolver;\n }\n\n private async runOnAspectsResolveFunctions(aspectsComponents: Component[]): Promise<void> {\n const funcs = this.getOnAspectsResolveFunctions();\n await pMapSeries(funcs, async (func) => {\n try {\n await func(aspectsComponents);\n } catch (err) {\n this.logger.error('failed running onAspectsResolve function', err);\n }\n });\n }\n\n private getOnAspectsResolveFunctions(): OnAspectsResolve[] {\n const aspectsResolveFunctions = this.onAspectsResolveSlot.values();\n return aspectsResolveFunctions;\n }\n\n private async runOnRootAspectAddedFunctions(aspectsId: ComponentID, inWs: boolean): Promise<void> {\n const funcs = this.getOnRootAspectAddedFunctions();\n await pMapSeries(funcs, async (func) => {\n try {\n await func(aspectsId, inWs);\n } catch (err) {\n this.logger.error('failed running onRootAspectAdded function', err);\n }\n });\n }\n\n private getOnRootAspectAddedFunctions(): OnRootAspectAdded[] {\n const RootAspectAddedFunctions = this.onRootAspectAddedSlot.values();\n return RootAspectAddedFunctions;\n }\n\n /**\n * This will return a resolver that knows to resolve aspects which are not part of the workspace.\n * means aspects that does not exist in the bitmap file\n * instead it will resolve them from the node_modules recursively\n * @param graph\n * @param rootIds\n * @param runtimeName\n * @returns\n */\n private getInstalledAspectResolver(\n graph: Graph<Component, string>,\n rootIds: string[],\n runtimeName?: string,\n opts: { throwOnError: boolean } = { throwOnError: false }\n ): AspectResolver {\n const installedAspectsResolver = async (component: Component): Promise<ResolvedAspect | undefined> => {\n const compStringId = component.id.toString();\n // stringIds.push(compStringId);\n const localPath = await this.resolveInstalledAspectRecursively(component, rootIds, graph, opts);\n if (!localPath) return undefined;\n\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `workspace resolveInstalledAspects, resolving id: ${compStringId}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n return {\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n };\n return installedAspectsResolver;\n }\n\n private async resolveInstalledAspectRecursively(\n aspectComponent: Component,\n rootIds: string[],\n graph: Graph<Component, string>,\n opts: { throwOnError: boolean } = { throwOnError: false }\n ): Promise<string | null | undefined> {\n const aspectStringId = aspectComponent.id.toString();\n if (this.resolvedInstalledAspects.has(aspectStringId)) {\n const resolvedPath = this.resolvedInstalledAspects.get(aspectStringId);\n return resolvedPath;\n }\n if (rootIds.includes(aspectStringId)) {\n const localPath = await this.workspace.getComponentPackagePath(aspectComponent);\n this.resolvedInstalledAspects.set(aspectStringId, localPath);\n return localPath;\n }\n const parent = graph.predecessors(aspectStringId)[0];\n if (!parent) return undefined;\n const parentPath = await this.resolveInstalledAspectRecursively(parent.attr, rootIds, graph);\n if (!parentPath) {\n this.resolvedInstalledAspects.set(aspectStringId, null);\n return undefined;\n }\n const packageName = this.dependencyResolver.getPackageName(aspectComponent);\n try {\n const resolvedPath = resolveFrom(parentPath, [packageName]);\n const localPath = findRoot(resolvedPath);\n this.resolvedInstalledAspects.set(aspectStringId, localPath);\n return localPath;\n } catch (error: any) {\n this.resolvedInstalledAspects.set(aspectStringId, null);\n if (opts.throwOnError) {\n throw error;\n }\n this.logger.consoleWarning(\n `failed resolving aspect ${aspectStringId} from ${parentPath}, error: ${error.message}`\n );\n return undefined;\n }\n }\n\n /**\n * Create a graph of aspects without the core aspects.\n * @param components\n * @param isAspect\n * @returns\n */\n private async getAspectsGraphWithoutCore(\n components: Component[] = [],\n isAspect?: ShouldLoadFunc\n ): Promise<Graph<Component, string>> {\n const ids = components.map((component) => component.id);\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n // TODO: @gilad it causes many issues we need to find a better solution. removed for now.\n // const coreAspectsComponentIds = coreAspectsStringIds.map((id) => ComponentID.fromString(id));\n // const aspectsIds = components.reduce((acc, curr) => {\n // const currIds = curr.state.aspects.ids;\n // acc = acc.concat(currIds);\n // return acc;\n // }, [] as any);\n // const otherDependenciesMap = components.reduce((acc, curr) => {\n // // const currIds = curr.state.dependencies.dependencies.map(dep => dep.id.toString());\n // const currMap = curr.state.dependencies.getIdsMap();\n // Object.assign(acc, currMap);\n // return acc;\n // }, {});\n\n // const depsWhichAreNotAspects = difference(Object.keys(otherDependenciesMap), aspectsIds);\n // const depsWhichAreNotAspectsBitIds = depsWhichAreNotAspects.map((strId) => otherDependenciesMap[strId]);\n // We only want to load into the graph components which are aspects and not regular dependencies\n // This come to solve a circular loop when an env aspect use an aspect (as regular dep) and the aspect use the env aspect as its env\n return this.workspace.buildOneGraphForComponents(ids, coreAspectsStringIds, isAspect);\n }\n\n /**\n * Load all unloaded extensions from an extension list\n * this will resolve the extensions from the scope aspects capsules if they are not in the ws\n * Only use it for component extensions\n * for workspace/scope root aspect use the load aspects directly\n *\n * The reason we are loading component extensions with \"scope aspects capsules\" is because for component extensions\n * we might have the same extension in multiple versions\n * (for example I might have 2 components using different versions of the same env)\n * in such case, I can't install both version into the root of the node_modules so I need to place it somewhere else (capsules)\n * @param extensions list of extensions with config to load\n */\n async loadComponentsExtensions(\n extensions: ExtensionDataList,\n originatedFrom?: ComponentID,\n opts: WorkspaceLoadAspectsOptions = {}\n ): Promise<void> {\n const defaultOpts: WorkspaceLoadAspectsOptions = {\n useScopeAspectsCapsule: true,\n throwOnError: false,\n hideMissingModuleError: !!this.workspace.inInstallContext,\n resolveEnvsFromRoots: this.resolveEnvsFromRoots,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n const extensionsIdsP = extensions.map(async (extensionEntry) => {\n // Core extension\n if (!extensionEntry.extensionId) {\n return extensionEntry.stringId as string;\n }\n\n const id = await this.workspace.resolveComponentId(extensionEntry.extensionId);\n // return this.resolveComponentId(extensionEntry.extensionId);\n return id.toString();\n });\n const extensionsIds: string[] = await Promise.all(extensionsIdsP);\n const harmonyExtensions = this.harmony.extensionsIds;\n const loadedExtensions = harmonyExtensions.filter((extId) => {\n return this.harmony.extensions.get(extId)?.loaded;\n });\n const extensionsToLoad = difference(extensionsIds, loadedExtensions);\n if (!extensionsToLoad.length) return;\n await this.loadAspects(extensionsToLoad, undefined, originatedFrom?.toString(), mergedOpts);\n }\n\n private async isAspect(id: ComponentID) {\n const component = await this.workspace.get(id);\n const isUsingAspectEnv = this.envs.isUsingAspectEnv(component);\n const isUsingEnvEnv = this.envs.isUsingEnvEnv(component);\n const isValidAspect = isUsingAspectEnv || isUsingEnvEnv;\n return isValidAspect;\n }\n\n /**\n * same as `this.importAndGetMany()` with a specific error handling of ComponentNotFound\n */\n private async importAndGetAspects(componentIds: ComponentID[], throwOnError = true): Promise<Component[]> {\n try {\n // We don't want to load the seeders as aspects as it will cause an infinite loop\n // once you try to load the seeder it will try to load the workspace component\n // that will arrive here again and again\n const loadOpts: ComponentLoadOptions = {\n idsToNotLoadAsAspects: componentIds.map((id) => id.toString()),\n };\n return await this.workspace.importAndGetMany(\n componentIds,\n 'to load aspects from the workspace',\n loadOpts,\n throwOnError\n );\n } catch (err: any) {\n this.throwWsJsoncAspectNotFoundError(err);\n\n throw err;\n }\n }\n\n /**\n * split the provided components into 2 groups, one which are workspace components and the other which are not.\n * @param components\n * @returns\n */\n private async groupComponentsByWorkspaceExistence(\n components: Component[],\n resolveEnvsFromRoots?: boolean\n ): Promise<{ workspaceComps: Component[]; nonWorkspaceComps: Component[] }> {\n let workspaceComps: Component[] = [];\n let nonWorkspaceComps: Component[] = [];\n await Promise.all(\n components.map(async (component) => {\n const existOnWorkspace = await this.workspace.hasId(component.id);\n existOnWorkspace ? workspaceComps.push(component) : nonWorkspaceComps.push(component);\n })\n );\n if (resolveEnvsFromRoots) {\n const { rootComps, nonRootComps } = await this.groupComponentsByLoadFromRootComps(nonWorkspaceComps);\n workspaceComps = workspaceComps.concat(rootComps);\n nonWorkspaceComps = nonRootComps;\n }\n return { workspaceComps, nonWorkspaceComps };\n }\n\n private async groupComponentsByLoadFromRootComps(\n components: Component[]\n ): Promise<{ rootComps: Component[]; nonRootComps: Component[] }> {\n const rootComps: Component[] = [];\n const nonRootComps: Component[] = [];\n await Promise.all(\n components.map(async (component) => {\n const shouldLoadFromRootComps = await this.shouldLoadFromRootComps(component);\n if (shouldLoadFromRootComps) {\n rootComps.push(component);\n return;\n }\n nonRootComps.push(component);\n })\n );\n return { rootComps, nonRootComps };\n }\n\n private async shouldLoadFromRootComps(component: Component): Promise<boolean> {\n const rootDir = await this.workspace.getComponentPackagePath(component);\n const rootDirExist = await fs.pathExists(rootDir);\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, rootDir);\n const aspectFilePathExist = aspectFilePath ? await fs.pathExists(aspectFilePath) : false;\n const pluginFiles = await this.aspectLoader.getPluginFiles(component, rootDir);\n\n // checking that we have the root dir (this means it's an aspect that needs to be loaded from there)\n // and validate that localPathExist so we can\n // really load the component from that path (if it's there it means that it's an env)\n if (rootDirExist && (aspectFilePathExist || pluginFiles.length)) {\n return true;\n }\n // If the component has env.jsonc we want to list it to be loaded from the root folder\n // even if it's not there yet\n // in that case we will fail to load it, and the user will need to run bit install\n if (this.envs.hasEnvManifest(component)) {\n return true;\n }\n return false;\n }\n\n /**\n * split the provided components into 2 groups, one which are workspace components and the other which are not.\n * @param components\n * @returns\n */\n private async groupAspectDefsByWorkspaceExistence(\n aspectDefs: AspectDefinition[]\n ): Promise<{ workspaceDefs: AspectDefinition[]; nonWorkspaceDefs: AspectDefinition[] }> {\n const workspaceDefs: AspectDefinition[] = [];\n const nonWorkspaceDefs: AspectDefinition[] = [];\n await Promise.all(\n aspectDefs.map(async (aspectDef) => {\n const id = aspectDef.component?.id;\n const existOnWorkspace = id ? await this.workspace.hasId(id) : true;\n if (existOnWorkspace) {\n workspaceDefs.push(aspectDef);\n return;\n }\n const shouldLoadFromRootComps = aspectDef.component\n ? await this.shouldLoadFromRootComps(aspectDef.component)\n : undefined;\n if (shouldLoadFromRootComps) {\n workspaceDefs.push(aspectDef);\n return;\n }\n nonWorkspaceDefs.push(aspectDef);\n })\n );\n return { workspaceDefs, nonWorkspaceDefs };\n }\n\n private async groupIdsByWorkspaceExistence(\n ids: ComponentID[],\n resolveEnvsFromRoots?: boolean\n ): Promise<{ workspaceIds: ComponentID[]; nonWorkspaceIds: ComponentID[] }> {\n let workspaceIds: ComponentID[] = [];\n let nonWorkspaceIds: ComponentID[] = [];\n await Promise.all(\n ids.map(async (id) => {\n const existOnWorkspace = await this.workspace.hasId(id);\n existOnWorkspace ? workspaceIds.push(id) : nonWorkspaceIds.push(id);\n })\n );\n // We need to bring the components in order to really group them with taking the root comps into account\n const scopeComponents = await this.importAndGetAspects(nonWorkspaceIds);\n const { nonWorkspaceComps, workspaceComps } = await this.groupComponentsByWorkspaceExistence(\n scopeComponents,\n resolveEnvsFromRoots\n );\n workspaceIds = workspaceIds.concat(workspaceComps.map((c) => c.id));\n nonWorkspaceIds = nonWorkspaceComps.map((c) => c.id);\n return { workspaceIds, nonWorkspaceIds };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_constants","data","require","_findRoot","_interopRequireDefault","_toolboxModules","_aspectLoader","_cli","_fsExtra","_harmonyModules","_workspaceModules","_componentId","_exceptions","_pMapSeries","_lodash","_bitError","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","WorkspaceAspectsLoader","constructor","workspace","scope","aspectLoader","envs","dependencyResolver","logger","globalConfig","harmony","onAspectsResolveSlot","onRootAspectAddedSlot","resolveAspectsFromNodeModules","resolveEnvsFromRoots","consumer","resolvedInstalledAspects","Map","hasRootComponents","loadAspects","ids","throwOnError","neededFor","opts","calculatedThrowOnError","defaultOpts","useScopeAspectsCapsule","runSubscribers","skipDeps","hideMissingModuleError","inInstallContext","ignoreErrors","mergedOpts","callId","Math","floor","random","loggerPrefix","profile","info","join","JSON","stringify","localAspects","nonLocalAspects","partition","id","startsWith","loadAspectFromPath","notLoadedIds","isAspectLoaded","coreAspectsStringIds","getCoreAspectIds","idsWithoutCore","difference","componentIds","resolveMultipleComponentIds","workspaceIds","nonWorkspaceIds","groupIdsByWorkspaceExistence","logFoundWorkspaceVsScope","idsToLoadFromWs","scopeAspectIds","loadFromScopeAspectsCapsule","aspectsDefs","resolveAspects","undefined","excludeCore","requestedOnly","manifests","requireableComponents","loadAspectDefsByOrder","potentialPluginsIndexes","compact","map","manifest","index","isValidAspect","pluginsRequireableComponents","pluginsManifests","getManifestsFromRequireableExtensions","loadExtensionsByManifests","manifestIds","debug","concat","currentLane","getCurrentLaneObject","nonWorkspaceIdsString","toString","packageManagerConfigRootDir","path","workspaceName","name","err","throwWsJsoncAspectNotFoundError","ComponentNotFound","config","get","configStr","workspaceConfig","raw","includes","BitError","seeders","nonWorkspaceDefs","groupAspectDefsByWorkspaceExistence","scopeAspectsLoader","getScopeAspectsLoader","scopeIds","aspectDef","getId","scopeIdsGrouped","groupAspectIdsByEnvOfTheList","aspectDefsToRequireableComponents","runtimeName","filterByRuntime","idsToResolve","extensionsIds","coreAspectsIds","configuredAspects","getConfiguredAspects","userAspectsIds","toStringWithoutVersion","rootAspectsIds","componentIdsToResolve","components","importAndGetAspects","runOnAspectsResolveFunctions","wsAspectDefs","getWorkspaceAspectResolver","coreAspectDefs","Promise","all","coreId","rawDef","getAspectDef","loadDefinition","idsToFilter","idStr","ComponentID","fromString","targetDefs","finalDefs","filterAspectDefs","groupedByIsPlugin","groupBy","component","hasPluginFiles","graph","getAspectsGraphWithoutCore","false","isAspect","bind","aspectsComponents","nodes","node","attr","true","workspaceComps","nonWorkspaceComps","groupComponentsByWorkspaceExistence","workspaceCompsIds","c","nonWorkspaceCompsIds","stringIds","linkIfMissingWorkspaceAspects","componentsToResolveFromScope","componentsToResolveFromInstalled","nonWorkspaceCompsGroups","isEnv","scopeAspectsDefs","installedAspectsDefs","getInstalledAspectResolver","coreAspect","runtimePath","localResolved","resolveLocalAspects","allDefsExceptLocal","withoutLocalAspects","aspectId","find","localAspect","allDefs","filteredDefs","shouldUseHashForCapsules","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","getCapsulePath","defaultPath","workspaceIdsStr","nonWorkspaceIdsStr","use","aspectIdStr","resolveComponentId","inWs","hasId","aspectIdToAdd","aspectsComponent","Error","setExtension","overrideExisting","ignoreVersion","write","reasonForChange","addInMemoryConfiguredAspect","runOnRootAspectAddedFunctions","getConfiguredUserAspectsPackages","options","componentsToGetPackages","externalsOnly","packages","aspectComponent","packageName","getPackageName","version","aspectDefs","localPath","aspectPath","requireFunc","plugins","getPlugins","has","load","MainRuntime","isModule","isEsmModule","aspect","loadEsm","getRuntimePath","RequireableComponent","aspects","idsToLink","isInWs","exist","fs","pathExists","idsToLinkWithoutNull","linkToNodeModulesByIds","workspaceAspectResolver","compStringId","getComponentPackagePath","aspectFilePath","getAspectFilePath","funcs","getOnAspectsResolveFunctions","pMapSeries","func","error","aspectsResolveFunctions","values","aspectsId","getOnRootAspectAddedFunctions","RootAspectAddedFunctions","rootIds","installedAspectsResolver","resolveInstalledAspectRecursively","aspectStringId","resolvedPath","set","parent","predecessors","parentPath","resolveFrom","findRoot","consoleWarning","message","buildOneGraphForComponents","loadComponentsExtensions","extensions","originatedFrom","extensionsIdsP","extensionEntry","extensionId","stringId","harmonyExtensions","loadedExtensions","extId","loaded","extensionsToLoad","isUsingAspectEnv","isUsingEnvEnv","loadOpts","idsToNotLoadAsAspects","importAndGetMany","existOnWorkspace","rootComps","nonRootComps","groupComponentsByLoadFromRootComps","shouldLoadFromRootComps","rootDir","rootDirExist","aspectFilePathExist","pluginFiles","getPluginFiles","hasEnvManifest","workspaceDefs","scopeComponents","exports"],"sources":["workspace-aspects-loader.ts"],"sourcesContent":["import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport findRoot from 'find-root';\nimport { resolveFrom } from '@teambit/toolbox.modules.module-resolver';\nimport { Graph } from '@teambit/graph.cleargraph';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { ExtensionManifest, Harmony, Aspect } from '@teambit/harmony';\nimport {\n AspectDefinition,\n AspectLoaderMain,\n AspectResolver,\n getAspectDef,\n ResolvedAspect,\n} from '@teambit/aspect-loader';\nimport { MainRuntime } from '@teambit/cli';\nimport fs from 'fs-extra';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { linkToNodeModulesByIds } from '@teambit/workspace.modules.node-modules-linker';\nimport { ComponentID } from '@teambit/component-id';\nimport { ComponentNotFound } from '@teambit/legacy/dist/scope/exceptions';\nimport pMapSeries from 'p-map-series';\nimport { difference, compact, groupBy, partition } from 'lodash';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { Component, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport { ScopeMain } from '@teambit/scope';\nimport { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { EnvsMain } from '@teambit/envs';\nimport { ConfigMain } from '@teambit/config';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ShouldLoadFunc } from './build-graph-from-fs';\nimport type { Workspace } from './workspace';\nimport {\n OnAspectsResolve,\n OnAspectsResolveSlot,\n OnRootAspectAdded,\n OnRootAspectAddedSlot,\n} from './workspace.main.runtime';\nimport { ComponentLoadOptions } from './workspace-component/workspace-component-loader';\n\nexport type GetConfiguredUserAspectsPackagesOptions = {\n externalsOnly?: boolean;\n};\n\nexport type WorkspaceLoadAspectsOptions = LoadAspectsOptions & {\n useScopeAspectsCapsule?: boolean;\n runSubscribers?: boolean;\n skipDeps?: boolean;\n resolveEnvsFromRoots?: boolean;\n};\n\nexport type AspectPackage = { packageName: string; version: string };\n\nexport class WorkspaceAspectsLoader {\n private consumer: Consumer;\n private resolvedInstalledAspects: Map<string, string | null>;\n\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private envs: EnvsMain,\n private dependencyResolver: DependencyResolverMain,\n private logger: Logger,\n private globalConfig: GlobalConfigMain,\n private harmony: Harmony,\n private onAspectsResolveSlot: OnAspectsResolveSlot,\n private onRootAspectAddedSlot: OnRootAspectAddedSlot,\n private resolveAspectsFromNodeModules = false,\n private resolveEnvsFromRoots = false\n ) {\n this.consumer = this.workspace.consumer;\n this.resolvedInstalledAspects = new Map();\n // Only enable this when root components is enabled as well\n this.resolveEnvsFromRoots = this.resolveEnvsFromRoots && this.dependencyResolver.hasRootComponents();\n }\n\n /**\n * load aspects from the workspace and if not exists in the workspace, load from the node_modules.\n * keep in mind that the graph may have circles.\n */\n async loadAspects(\n ids: string[] = [],\n throwOnError?: boolean,\n neededFor?: string,\n opts: WorkspaceLoadAspectsOptions = {}\n ): Promise<string[]> {\n const calculatedThrowOnError: boolean = throwOnError ?? false;\n const defaultOpts: Required<WorkspaceLoadAspectsOptions> = {\n useScopeAspectsCapsule: false,\n throwOnError: calculatedThrowOnError,\n runSubscribers: true,\n skipDeps: false,\n hideMissingModuleError: !!this.workspace.inInstallContext,\n ignoreErrors: false,\n resolveEnvsFromRoots: this.resolveEnvsFromRoots,\n };\n const mergedOpts: Required<WorkspaceLoadAspectsOptions> = { ...defaultOpts, ...opts };\n\n // generate a random callId to be able to identify the call from the logs\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] loadAspects,`;\n this.logger.profile(`[${callId}] workspace.loadAspects`);\n this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.\nids: ${ids.join(', ')}\nneeded-for: ${neededFor || '<unknown>'}. using opts: ${JSON.stringify(mergedOpts, null, 2)}`);\n const [localAspects, nonLocalAspects] = partition(ids, (id) => id.startsWith('file:'));\n this.workspace.localAspects = localAspects;\n await this.aspectLoader.loadAspectFromPath(this.workspace.localAspects);\n const notLoadedIds = nonLocalAspects.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) {\n this.logger.profile(`[${callId}] workspace.loadAspects`);\n return [];\n }\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(notLoadedIds, coreAspectsStringIds);\n\n const componentIds = await this.workspace.resolveMultipleComponentIds(idsWithoutCore);\n\n const { workspaceIds, nonWorkspaceIds } = await this.groupIdsByWorkspaceExistence(\n componentIds,\n mergedOpts.resolveEnvsFromRoots\n );\n\n this.logFoundWorkspaceVsScope(loggerPrefix, workspaceIds, nonWorkspaceIds);\n let idsToLoadFromWs = componentIds;\n let scopeAspectIds: string[] = [];\n\n // TODO: hard coded use the old approach and loading from the scope capsules\n // This is because right now loading from the ws node_modules causes issues in some cases\n // like for the cloud app\n // it should be removed once we fix the issues\n if (!this.resolveAspectsFromNodeModules) {\n mergedOpts.useScopeAspectsCapsule = true;\n }\n\n if (mergedOpts.useScopeAspectsCapsule) {\n idsToLoadFromWs = workspaceIds;\n scopeAspectIds = await this.loadFromScopeAspectsCapsule(nonWorkspaceIds, throwOnError, neededFor);\n }\n\n const aspectsDefs = await this.resolveAspects(undefined, idsToLoadFromWs, {\n excludeCore: true,\n requestedOnly: false,\n ...mergedOpts,\n });\n\n const { manifests, requireableComponents } = await this.loadAspectDefsByOrder(\n aspectsDefs,\n idsWithoutCore,\n mergedOpts.throwOnError,\n mergedOpts.hideMissingModuleError,\n neededFor,\n mergedOpts.runSubscribers\n );\n\n const potentialPluginsIndexes = compact(\n manifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n return index;\n })\n );\n\n // Try require components for potential plugins\n const pluginsRequireableComponents = potentialPluginsIndexes.map((index) => {\n return requireableComponents[index];\n });\n // Do the require again now that the plugins defs already registered\n const pluginsManifests = await this.aspectLoader.getManifestsFromRequireableExtensions(\n pluginsRequireableComponents,\n throwOnError,\n opts.runSubscribers\n );\n\n await this.aspectLoader.loadExtensionsByManifests(pluginsManifests, undefined, { throwOnError });\n const manifestIds = manifests.map((manifest) => manifest.id);\n this.logger.debug(`${loggerPrefix} finish loading aspects`);\n this.logger.profile(`[${callId}] workspace.loadAspects`);\n return compact(manifestIds.concat(scopeAspectIds));\n }\n\n private async loadFromScopeAspectsCapsule(ids: ComponentID[], throwOnError?: boolean, neededFor?: string) {\n let scopeAspectIds: string[] = [];\n const currentLane = await this.consumer.getCurrentLaneObject();\n\n if (!ids.length) return [];\n\n const nonWorkspaceIdsString = ids.map((id) => id.toString());\n try {\n scopeAspectIds = await this.scope.loadAspects(nonWorkspaceIdsString, throwOnError, neededFor, currentLane, {\n packageManagerConfigRootDir: this.workspace.path,\n workspaceName: this.workspace.name,\n });\n return scopeAspectIds;\n } catch (err: any) {\n this.throwWsJsoncAspectNotFoundError(err);\n return scopeAspectIds;\n\n throw err;\n }\n }\n\n throwWsJsoncAspectNotFoundError(err: any) {\n if (err instanceof ComponentNotFound) {\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config');\n const configStr = JSON.stringify(config.workspaceConfig?.raw || {});\n if (configStr.includes(err.id)) {\n throw new BitError(`error: a component \"${err.id}\" was not found\nyour workspace.jsonc has this component-id set. you might want to remove/change it.`);\n }\n }\n }\n\n private async loadAspectDefsByOrder(\n aspectsDefs: AspectDefinition[],\n seeders: string[],\n throwOnError: boolean,\n hideMissingModuleError: boolean,\n neededFor?: string,\n runSubscribers = true\n ): Promise<{ manifests: Array<Aspect | ExtensionManifest>; requireableComponents: RequireableComponent[] }> {\n const { nonWorkspaceDefs } = await this.groupAspectDefsByWorkspaceExistence(aspectsDefs);\n const scopeAspectsLoader = this.scope.getScopeAspectsLoader();\n const scopeIds: string[] = compact(nonWorkspaceDefs.map((aspectDef) => aspectDef.getId));\n const scopeIdsGrouped = await scopeAspectsLoader.groupAspectIdsByEnvOfTheList(scopeIds);\n\n // Make sure to first load envs from the list otherwise it will fail when trying to load other aspects\n // as their envs might not be loaded yet\n if (scopeIdsGrouped.envs && scopeIdsGrouped.envs.length && !runSubscribers) {\n await this.scope.loadAspects(scopeIdsGrouped.envs, throwOnError, 'workspace.loadAspects loading scope aspects');\n }\n const requireableComponents = this.aspectDefsToRequireableComponents(aspectsDefs);\n const manifests = await this.aspectLoader.getManifestsFromRequireableExtensions(\n requireableComponents,\n throwOnError,\n runSubscribers\n );\n await this.aspectLoader.loadExtensionsByManifests(\n manifests,\n { seeders, neededFor },\n { throwOnError, hideMissingModuleError }\n );\n return { manifests, requireableComponents };\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] workspace resolveAspects,`;\n\n this.logger.debug(\n `${loggerPrefix}, resolving aspects for - runtimeName: ${runtimeName}, componentIds: ${componentIds}`\n );\n const defaultOpts: ResolveAspectsOptions = {\n excludeCore: false,\n requestedOnly: false,\n filterByRuntime: true,\n useScopeAspectsCapsule: false,\n workspaceName: this.workspace.name,\n resolveEnvsFromRoots: this.resolveEnvsFromRoots,\n packageManagerConfigRootDir: this.workspace.path,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n const idsToResolve = componentIds ? componentIds.map((id) => id.toString()) : this.harmony.extensionsIds;\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const configuredAspects = this.aspectLoader.getConfiguredAspects();\n // it's possible that componentIds are core-aspects that got version for some reason, remove the version to\n // correctly filter them out later.\n const userAspectsIds: string[] = componentIds\n ? componentIds.filter((id) => !coreAspectsIds.includes(id.toStringWithoutVersion())).map((id) => id.toString())\n : difference(this.harmony.extensionsIds, coreAspectsIds);\n const rootAspectsIds: string[] = difference(configuredAspects, coreAspectsIds);\n const componentIdsToResolve = await this.workspace.resolveMultipleComponentIds(userAspectsIds);\n const components = await this.importAndGetAspects(componentIdsToResolve, opts?.throwOnError);\n // Run the on load slot\n await this.runOnAspectsResolveFunctions(components);\n\n if (opts?.skipDeps) {\n const wsAspectDefs = await this.aspectLoader.resolveAspects(\n components,\n this.getWorkspaceAspectResolver([], runtimeName)\n );\n\n const coreAspectDefs = await Promise.all(\n coreAspectsIds.map(async (coreId) => {\n const rawDef = await getAspectDef(coreId, runtimeName);\n return this.aspectLoader.loadDefinition(rawDef);\n })\n );\n\n const idsToFilter = idsToResolve.map((idStr) => ComponentID.fromString(idStr));\n const targetDefs = wsAspectDefs.concat(coreAspectDefs);\n const finalDefs = this.aspectLoader.filterAspectDefs(targetDefs, idsToFilter, runtimeName, mergedOpts);\n\n return finalDefs;\n }\n\n const groupedByIsPlugin = groupBy(components, (component) => {\n return this.aspectLoader.hasPluginFiles(component);\n });\n const graph = await this.getAspectsGraphWithoutCore(groupedByIsPlugin.false, this.isAspect.bind(this));\n const aspectsComponents = graph.nodes.map((node) => node.attr).concat(groupedByIsPlugin.true || []);\n this.logger.debug(`${loggerPrefix} found ${aspectsComponents.length} aspects in the aspects-graph`);\n const { workspaceComps, nonWorkspaceComps } = await this.groupComponentsByWorkspaceExistence(\n aspectsComponents,\n mergedOpts.resolveEnvsFromRoots\n );\n\n const workspaceCompsIds = workspaceComps.map((c) => c.id);\n const nonWorkspaceCompsIds = nonWorkspaceComps.map((c) => c.id);\n this.logFoundWorkspaceVsScope(loggerPrefix, workspaceCompsIds, nonWorkspaceCompsIds);\n\n const stringIds: string[] = [];\n const wsAspectDefs = await this.aspectLoader.resolveAspects(\n workspaceComps,\n this.getWorkspaceAspectResolver(stringIds, runtimeName)\n );\n\n await this.linkIfMissingWorkspaceAspects(wsAspectDefs);\n\n // TODO: hard coded use the old approach and loading from the scope capsules\n // This is because right now loading from the ws node_modules causes issues in some cases\n // like for the cloud app\n // it should be removed once we fix the issues\n if (!this.resolveAspectsFromNodeModules) {\n mergedOpts.useScopeAspectsCapsule = true;\n }\n\n let componentsToResolveFromScope = nonWorkspaceComps;\n let componentsToResolveFromInstalled: Component[] = [];\n if (!mergedOpts.useScopeAspectsCapsule) {\n const nonWorkspaceCompsGroups = groupBy(nonWorkspaceComps, (component) => this.envs.isEnv(component));\n componentsToResolveFromScope = nonWorkspaceCompsGroups.true || [];\n componentsToResolveFromInstalled = nonWorkspaceCompsGroups.false || [];\n }\n\n const scopeIds = componentsToResolveFromScope.map((c) => c.id);\n this.logger.debug(\n `${loggerPrefix} ${\n scopeIds.length\n } components are not in the workspace and are loaded from the scope capsules:\\n${scopeIds\n .map((id) => id.toString())\n .join('\\n')}`\n );\n const scopeAspectsDefs: AspectDefinition[] = scopeIds.length\n ? await this.scope.resolveAspects(runtimeName, scopeIds, mergedOpts)\n : [];\n\n this.logger.debug(\n `${loggerPrefix} ${\n componentsToResolveFromInstalled.length\n } components are not in the workspace and are loaded from the node_modules:\\n${componentsToResolveFromInstalled\n .map((c) => c.id.toString())\n .join('\\n')}`\n );\n const installedAspectsDefs: AspectDefinition[] = componentsToResolveFromInstalled.length\n ? await this.aspectLoader.resolveAspects(\n componentsToResolveFromInstalled,\n this.getInstalledAspectResolver(graph, rootAspectsIds, runtimeName, {\n throwOnError: opts?.throwOnError ?? false,\n })\n )\n : [];\n\n let coreAspectDefs = await Promise.all(\n coreAspectsIds.map(async (coreId) => {\n const rawDef = await getAspectDef(coreId, runtimeName);\n return this.aspectLoader.loadDefinition(rawDef);\n })\n );\n\n // due to lack of workspace and scope runtimes. TODO: fix after adding them.\n if (runtimeName && mergedOpts.filterByRuntime) {\n coreAspectDefs = coreAspectDefs.filter((coreAspect) => {\n return coreAspect.runtimePath;\n });\n }\n const localResolved = await this.aspectLoader.resolveLocalAspects(this.workspace.localAspects, runtimeName);\n const allDefsExceptLocal = [...wsAspectDefs, ...coreAspectDefs, ...scopeAspectsDefs, ...installedAspectsDefs];\n const withoutLocalAspects = allDefsExceptLocal.filter((aspectId) => {\n return !localResolved.find((localAspect) => {\n return localAspect.id === aspectId.component?.id?.toStringWithoutVersion();\n });\n });\n const allDefs = [...withoutLocalAspects, ...localResolved];\n const idsToFilter = idsToResolve.map((idStr) => ComponentID.fromString(idStr));\n const filteredDefs = this.aspectLoader.filterAspectDefs(allDefs, idsToFilter, runtimeName, mergedOpts);\n return filteredDefs;\n }\n\n shouldUseHashForCapsules(): boolean {\n return !this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n getCapsulePath() {\n const defaultPath = this.workspace.path;\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR) || defaultPath;\n }\n\n private logFoundWorkspaceVsScope(loggerPrefix: string, workspaceIds: ComponentID[], nonWorkspaceIds: ComponentID[]) {\n const workspaceIdsStr = workspaceIds.length ? workspaceIds.map((id) => id.toString()).join('\\n') : '';\n const nonWorkspaceIdsStr = nonWorkspaceIds.length ? nonWorkspaceIds.map((id) => id.toString()).join('\\n') : '';\n this.logger.debug(\n `${loggerPrefix} found ${workspaceIds.length} components in the workspace, ${nonWorkspaceIds.length} not in the workspace`\n );\n if (workspaceIdsStr) this.logger.debug(`${loggerPrefix} workspace components:\\n${workspaceIdsStr}`);\n if (nonWorkspaceIdsStr)\n this.logger.debug(\n `${loggerPrefix} non workspace components (loaded from the scope capsules or from the node_modules):\\n${nonWorkspaceIdsStr}`\n );\n }\n\n async use(aspectIdStr: string): Promise<string> {\n let aspectId = await this.workspace.resolveComponentId(aspectIdStr);\n const inWs = await this.workspace.hasId(aspectId);\n let aspectIdToAdd = aspectId.toStringWithoutVersion();\n\n let aspectsComponent;\n // let aspectPackage;\n if (!inWs) {\n const aspectsComponents = await this.importAndGetAspects([aspectId]);\n if (aspectsComponents[0]) {\n aspectsComponent = aspectsComponents[0];\n aspectId = aspectsComponent.id;\n aspectIdToAdd = aspectId.toString();\n }\n }\n\n const config = this.harmony.get<ConfigMain>('teambit.harmony/config').workspaceConfig;\n if (!config) {\n throw new Error(`use() unable to get the workspace config`);\n }\n config.setExtension(\n aspectIdToAdd,\n {},\n {\n overrideExisting: false,\n ignoreVersion: false,\n }\n );\n await config.write({ reasonForChange: `use (${aspectIdStr})` });\n this.aspectLoader.addInMemoryConfiguredAspect(aspectIdToAdd);\n await this.runOnRootAspectAddedFunctions(aspectId, inWs);\n return aspectIdToAdd;\n }\n\n async getConfiguredUserAspectsPackages(\n options: GetConfiguredUserAspectsPackagesOptions = {}\n ): Promise<AspectPackage[]> {\n const configuredAspects = this.aspectLoader.getConfiguredAspects();\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const userAspectsIds: string[] = difference(configuredAspects, coreAspectsIds);\n const componentIdsToResolve = await this.workspace.resolveMultipleComponentIds(\n userAspectsIds.filter((id) => !id.startsWith('file:'))\n );\n const aspectsComponents = await this.importAndGetAspects(componentIdsToResolve);\n let componentsToGetPackages = aspectsComponents;\n if (options.externalsOnly) {\n const { nonWorkspaceComps } = await this.groupComponentsByWorkspaceExistence(aspectsComponents);\n componentsToGetPackages = nonWorkspaceComps;\n }\n const packages = componentsToGetPackages.map((aspectComponent) => {\n const packageName = this.dependencyResolver.getPackageName(aspectComponent);\n const version = aspectComponent.id.version || '*';\n return { packageName, version };\n });\n return packages;\n }\n\n private aspectDefsToRequireableComponents(aspectDefs: AspectDefinition[]): RequireableComponent[] {\n const requireableComponents = aspectDefs.map((aspectDef) => {\n const localPath = aspectDef.aspectPath;\n const component = aspectDef.component;\n if (!component) return undefined;\n const requireFunc = async () => {\n const plugins = this.aspectLoader.getPlugins(component, localPath);\n if (plugins.has()) {\n return plugins.load(MainRuntime.name);\n }\n\n const isModule = await this.aspectLoader.isEsmModule(localPath);\n\n const aspect = !isModule\n ? // eslint-disable-next-line global-require, import/no-dynamic-require\n require(localPath)\n : // : await this.aspectLoader.loadEsm(join(localPath, 'dist', 'index.js'));\n await this.aspectLoader.loadEsm(localPath);\n\n // require aspect runtimes\n const runtimePath = await this.aspectLoader.getRuntimePath(component, localPath, MainRuntime.name);\n if (runtimePath) {\n if (isModule) await this.aspectLoader.loadEsm(runtimePath);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n require(runtimePath);\n }\n return aspect;\n };\n return new RequireableComponent(component, requireFunc);\n });\n return compact(requireableComponents);\n }\n\n private async linkIfMissingWorkspaceAspects(aspects: AspectDefinition[]) {\n const idsToLink = await Promise.all(\n aspects.map(async (aspect) => {\n if (!aspect.component)\n throw new Error(`linkIfMissingWorkspaceAspects, aspect.component is missing for ${aspect.aspectPath}`);\n const isInWs = await this.workspace.hasId(aspect.component.id);\n if (!isInWs) return null;\n const exist = await fs.pathExists(aspect.aspectPath);\n if (!exist) return aspect.component.id;\n return null;\n })\n );\n const idsToLinkWithoutNull = compact(idsToLink);\n if (!idsToLinkWithoutNull.length) return;\n await linkToNodeModulesByIds(this.workspace, idsToLinkWithoutNull);\n }\n\n /**\n * This will return a resolver that knows to resolve aspects which are part of the workspace.\n * means aspects exist in the bitmap file\n * @param stringIds\n * @param runtimeName\n * @returns\n */\n private getWorkspaceAspectResolver(stringIds: string[], runtimeName?: string): AspectResolver {\n const workspaceAspectResolver = async (component: Component): Promise<ResolvedAspect> => {\n const compStringId = component.id.toString();\n stringIds.push(compStringId);\n const localPath = await this.workspace.getComponentPackagePath(component);\n\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `workspace resolveAspects, resolving id: ${compStringId}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n return {\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n };\n return workspaceAspectResolver;\n }\n\n private async runOnAspectsResolveFunctions(aspectsComponents: Component[]): Promise<void> {\n const funcs = this.getOnAspectsResolveFunctions();\n await pMapSeries(funcs, async (func) => {\n try {\n await func(aspectsComponents);\n } catch (err) {\n this.logger.error('failed running onAspectsResolve function', err);\n }\n });\n }\n\n private getOnAspectsResolveFunctions(): OnAspectsResolve[] {\n const aspectsResolveFunctions = this.onAspectsResolveSlot.values();\n return aspectsResolveFunctions;\n }\n\n private async runOnRootAspectAddedFunctions(aspectsId: ComponentID, inWs: boolean): Promise<void> {\n const funcs = this.getOnRootAspectAddedFunctions();\n await pMapSeries(funcs, async (func) => {\n try {\n await func(aspectsId, inWs);\n } catch (err) {\n this.logger.error('failed running onRootAspectAdded function', err);\n }\n });\n }\n\n private getOnRootAspectAddedFunctions(): OnRootAspectAdded[] {\n const RootAspectAddedFunctions = this.onRootAspectAddedSlot.values();\n return RootAspectAddedFunctions;\n }\n\n /**\n * This will return a resolver that knows to resolve aspects which are not part of the workspace.\n * means aspects that does not exist in the bitmap file\n * instead it will resolve them from the node_modules recursively\n * @param graph\n * @param rootIds\n * @param runtimeName\n * @returns\n */\n private getInstalledAspectResolver(\n graph: Graph<Component, string>,\n rootIds: string[],\n runtimeName?: string,\n opts: { throwOnError: boolean } = { throwOnError: false }\n ): AspectResolver {\n const installedAspectsResolver = async (component: Component): Promise<ResolvedAspect | undefined> => {\n const compStringId = component.id.toString();\n // stringIds.push(compStringId);\n const localPath = await this.resolveInstalledAspectRecursively(component, rootIds, graph, opts);\n if (!localPath) return undefined;\n\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `workspace resolveInstalledAspects, resolving id: ${compStringId}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n return {\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n };\n return installedAspectsResolver;\n }\n\n private async resolveInstalledAspectRecursively(\n aspectComponent: Component,\n rootIds: string[],\n graph: Graph<Component, string>,\n opts: { throwOnError: boolean } = { throwOnError: false }\n ): Promise<string | null | undefined> {\n const aspectStringId = aspectComponent.id.toString();\n if (this.resolvedInstalledAspects.has(aspectStringId)) {\n const resolvedPath = this.resolvedInstalledAspects.get(aspectStringId);\n return resolvedPath;\n }\n if (rootIds.includes(aspectStringId)) {\n const localPath = await this.workspace.getComponentPackagePath(aspectComponent);\n this.resolvedInstalledAspects.set(aspectStringId, localPath);\n return localPath;\n }\n const parent = graph.predecessors(aspectStringId)[0];\n if (!parent) return undefined;\n const parentPath = await this.resolveInstalledAspectRecursively(parent.attr, rootIds, graph);\n if (!parentPath) {\n this.resolvedInstalledAspects.set(aspectStringId, null);\n return undefined;\n }\n const packageName = this.dependencyResolver.getPackageName(aspectComponent);\n try {\n const resolvedPath = resolveFrom(parentPath, [packageName]);\n const localPath = findRoot(resolvedPath);\n this.resolvedInstalledAspects.set(aspectStringId, localPath);\n return localPath;\n } catch (error: any) {\n this.resolvedInstalledAspects.set(aspectStringId, null);\n if (opts.throwOnError) {\n throw error;\n }\n this.logger.consoleWarning(\n `failed resolving aspect ${aspectStringId} from ${parentPath}, error: ${error.message}`\n );\n return undefined;\n }\n }\n\n /**\n * Create a graph of aspects without the core aspects.\n * @param components\n * @param isAspect\n * @returns\n */\n private async getAspectsGraphWithoutCore(\n components: Component[] = [],\n isAspect?: ShouldLoadFunc\n ): Promise<Graph<Component, string>> {\n const ids = components.map((component) => component.id);\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n // TODO: @gilad it causes many issues we need to find a better solution. removed for now.\n // const coreAspectsComponentIds = coreAspectsStringIds.map((id) => ComponentID.fromString(id));\n // const aspectsIds = components.reduce((acc, curr) => {\n // const currIds = curr.state.aspects.ids;\n // acc = acc.concat(currIds);\n // return acc;\n // }, [] as any);\n // const otherDependenciesMap = components.reduce((acc, curr) => {\n // // const currIds = curr.state.dependencies.dependencies.map(dep => dep.id.toString());\n // const currMap = curr.state.dependencies.getIdsMap();\n // Object.assign(acc, currMap);\n // return acc;\n // }, {});\n\n // const depsWhichAreNotAspects = difference(Object.keys(otherDependenciesMap), aspectsIds);\n // const depsWhichAreNotAspectsBitIds = depsWhichAreNotAspects.map((strId) => otherDependenciesMap[strId]);\n // We only want to load into the graph components which are aspects and not regular dependencies\n // This come to solve a circular loop when an env aspect use an aspect (as regular dep) and the aspect use the env aspect as its env\n return this.workspace.buildOneGraphForComponents(ids, coreAspectsStringIds, isAspect);\n }\n\n /**\n * Load all unloaded extensions from an extension list\n * this will resolve the extensions from the scope aspects capsules if they are not in the ws\n * Only use it for component extensions\n * for workspace/scope root aspect use the load aspects directly\n *\n * The reason we are loading component extensions with \"scope aspects capsules\" is because for component extensions\n * we might have the same extension in multiple versions\n * (for example I might have 2 components using different versions of the same env)\n * in such case, I can't install both version into the root of the node_modules so I need to place it somewhere else (capsules)\n * @param extensions list of extensions with config to load\n */\n async loadComponentsExtensions(\n extensions: ExtensionDataList,\n originatedFrom?: ComponentID,\n opts: WorkspaceLoadAspectsOptions = {}\n ): Promise<void> {\n const defaultOpts: WorkspaceLoadAspectsOptions = {\n useScopeAspectsCapsule: true,\n throwOnError: false,\n hideMissingModuleError: !!this.workspace.inInstallContext,\n resolveEnvsFromRoots: this.resolveEnvsFromRoots,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n const extensionsIdsP = extensions.map(async (extensionEntry) => {\n // Core extension\n if (!extensionEntry.extensionId) {\n return extensionEntry.stringId as string;\n }\n\n const id = await this.workspace.resolveComponentId(extensionEntry.extensionId);\n // return this.resolveComponentId(extensionEntry.extensionId);\n return id.toString();\n });\n const extensionsIds: string[] = await Promise.all(extensionsIdsP);\n const harmonyExtensions = this.harmony.extensionsIds;\n const loadedExtensions = harmonyExtensions.filter((extId) => {\n return this.harmony.extensions.get(extId)?.loaded;\n });\n const extensionsToLoad = difference(extensionsIds, loadedExtensions);\n if (!extensionsToLoad.length) return;\n await this.loadAspects(extensionsToLoad, undefined, originatedFrom?.toString(), mergedOpts);\n }\n\n private async isAspect(id: ComponentID) {\n const component = await this.workspace.get(id);\n const isUsingAspectEnv = this.envs.isUsingAspectEnv(component);\n const isUsingEnvEnv = this.envs.isUsingEnvEnv(component);\n const isValidAspect = isUsingAspectEnv || isUsingEnvEnv;\n return isValidAspect;\n }\n\n /**\n * same as `this.importAndGetMany()` with a specific error handling of ComponentNotFound\n */\n private async importAndGetAspects(componentIds: ComponentID[], throwOnError = true): Promise<Component[]> {\n try {\n // We don't want to load the seeders as aspects as it will cause an infinite loop\n // once you try to load the seeder it will try to load the workspace component\n // that will arrive here again and again\n const loadOpts: ComponentLoadOptions = {\n idsToNotLoadAsAspects: componentIds.map((id) => id.toString()),\n };\n return await this.workspace.importAndGetMany(\n componentIds,\n 'to load aspects from the workspace',\n loadOpts,\n throwOnError\n );\n } catch (err: any) {\n this.throwWsJsoncAspectNotFoundError(err);\n\n throw err;\n }\n }\n\n /**\n * split the provided components into 2 groups, one which are workspace components and the other which are not.\n * @param components\n * @returns\n */\n private async groupComponentsByWorkspaceExistence(\n components: Component[],\n resolveEnvsFromRoots?: boolean\n ): Promise<{ workspaceComps: Component[]; nonWorkspaceComps: Component[] }> {\n let workspaceComps: Component[] = [];\n let nonWorkspaceComps: Component[] = [];\n await Promise.all(\n components.map(async (component) => {\n const existOnWorkspace = await this.workspace.hasId(component.id);\n existOnWorkspace ? workspaceComps.push(component) : nonWorkspaceComps.push(component);\n })\n );\n if (resolveEnvsFromRoots) {\n const { rootComps, nonRootComps } = await this.groupComponentsByLoadFromRootComps(nonWorkspaceComps);\n workspaceComps = workspaceComps.concat(rootComps);\n nonWorkspaceComps = nonRootComps;\n }\n return { workspaceComps, nonWorkspaceComps };\n }\n\n private async groupComponentsByLoadFromRootComps(\n components: Component[]\n ): Promise<{ rootComps: Component[]; nonRootComps: Component[] }> {\n const rootComps: Component[] = [];\n const nonRootComps: Component[] = [];\n await Promise.all(\n components.map(async (component) => {\n const shouldLoadFromRootComps = await this.shouldLoadFromRootComps(component);\n if (shouldLoadFromRootComps) {\n rootComps.push(component);\n return;\n }\n nonRootComps.push(component);\n })\n );\n return { rootComps, nonRootComps };\n }\n\n private async shouldLoadFromRootComps(component: Component): Promise<boolean> {\n const rootDir = await this.workspace.getComponentPackagePath(component);\n const rootDirExist = await fs.pathExists(rootDir);\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, rootDir);\n const aspectFilePathExist = aspectFilePath ? await fs.pathExists(aspectFilePath) : false;\n const pluginFiles = await this.aspectLoader.getPluginFiles(component, rootDir);\n\n // checking that we have the root dir (this means it's an aspect that needs to be loaded from there)\n // and validate that localPathExist so we can\n // really load the component from that path (if it's there it means that it's an env)\n if (rootDirExist && (aspectFilePathExist || pluginFiles.length)) {\n return true;\n }\n // If the component has env.jsonc we want to list it to be loaded from the root folder\n // even if it's not there yet\n // in that case we will fail to load it, and the user will need to run bit install\n if (this.envs.hasEnvManifest(component)) {\n return true;\n }\n return false;\n }\n\n /**\n * split the provided components into 2 groups, one which are workspace components and the other which are not.\n * @param components\n * @returns\n */\n private async groupAspectDefsByWorkspaceExistence(\n aspectDefs: AspectDefinition[]\n ): Promise<{ workspaceDefs: AspectDefinition[]; nonWorkspaceDefs: AspectDefinition[] }> {\n const workspaceDefs: AspectDefinition[] = [];\n const nonWorkspaceDefs: AspectDefinition[] = [];\n await Promise.all(\n aspectDefs.map(async (aspectDef) => {\n const id = aspectDef.component?.id;\n const existOnWorkspace = id ? await this.workspace.hasId(id) : true;\n if (existOnWorkspace) {\n workspaceDefs.push(aspectDef);\n return;\n }\n const shouldLoadFromRootComps = aspectDef.component\n ? await this.shouldLoadFromRootComps(aspectDef.component)\n : undefined;\n if (shouldLoadFromRootComps) {\n workspaceDefs.push(aspectDef);\n return;\n }\n nonWorkspaceDefs.push(aspectDef);\n })\n );\n return { workspaceDefs, nonWorkspaceDefs };\n }\n\n private async groupIdsByWorkspaceExistence(\n ids: ComponentID[],\n resolveEnvsFromRoots?: boolean\n ): Promise<{ workspaceIds: ComponentID[]; nonWorkspaceIds: ComponentID[] }> {\n let workspaceIds: ComponentID[] = [];\n let nonWorkspaceIds: ComponentID[] = [];\n await Promise.all(\n ids.map(async (id) => {\n const existOnWorkspace = await this.workspace.hasId(id);\n existOnWorkspace ? workspaceIds.push(id) : nonWorkspaceIds.push(id);\n })\n );\n // We need to bring the components in order to really group them with taking the root comps into account\n const scopeComponents = await this.importAndGetAspects(nonWorkspaceIds);\n const { nonWorkspaceComps, workspaceComps } = await this.groupComponentsByWorkspaceExistence(\n scopeComponents,\n resolveEnvsFromRoots\n );\n workspaceIds = workspaceIds.concat(workspaceComps.map((c) => c.id));\n nonWorkspaceIds = nonWorkspaceComps.map((c) => c.id);\n return { workspaceIds, nonWorkspaceIds };\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,UAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,SAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,gBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,eAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAK,cAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,aAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAM,KAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,IAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,SAAA;EAAA,MAAAP,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAM,QAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,gBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,eAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,kBAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,iBAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,aAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,YAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,YAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,WAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,YAAA;EAAA,MAAAZ,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAW,WAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,QAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,OAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA,SAAAc,UAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8C,SAAAG,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAApB,GAAA,EAAAwB,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAxB,GAAA,IAAAO,MAAA,CAAAgB,cAAA,CAAAvB,GAAA,EAAAwB,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAZ,UAAA,QAAAc,YAAA,QAAAC,QAAA,oBAAA5B,GAAA,CAAAwB,GAAA,IAAAC,KAAA,WAAAzB,GAAA;AAAA,SAAA0B,eAAApB,CAAA,QAAAuB,CAAA,GAAAC,YAAA,CAAAxB,CAAA,uCAAAuB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAxB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAyB,MAAA,CAAAC,WAAA,kBAAA5B,CAAA,QAAAyB,CAAA,GAAAzB,CAAA,CAAA6B,IAAA,CAAA3B,CAAA,EAAAD,CAAA,uCAAAwB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA7B,CAAA,GAAA8B,MAAA,GAAAC,MAAA,EAAA9B,CAAA;AA2BvC,MAAM+B,sBAAsB,CAAC;EAIlCC,WAAWA,CACDC,SAAoB,EACpBC,KAAgB,EAChBC,YAA8B,EAC9BC,IAAc,EACdC,kBAA0C,EAC1CC,MAAc,EACdC,YAA8B,EAC9BC,OAAgB,EAChBC,oBAA0C,EAC1CC,qBAA4C,EAC5CC,6BAA6B,GAAG,KAAK,EACrCC,oBAAoB,GAAG,KAAK,EACpC;IAAA,KAZQX,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,KAAgB,GAAhBA,KAAgB;IAAA,KAChBC,YAA8B,GAA9BA,YAA8B;IAAA,KAC9BC,IAAc,GAAdA,IAAc;IAAA,KACdC,kBAA0C,GAA1CA,kBAA0C;IAAA,KAC1CC,MAAc,GAAdA,MAAc;IAAA,KACdC,YAA8B,GAA9BA,YAA8B;IAAA,KAC9BC,OAAgB,GAAhBA,OAAgB;IAAA,KAChBC,oBAA0C,GAA1CA,oBAA0C;IAAA,KAC1CC,qBAA4C,GAA5CA,qBAA4C;IAAA,KAC5CC,6BAA6B,GAA7BA,6BAA6B;IAAA,KAC7BC,oBAAoB,GAApBA,oBAAoB;IAAA9B,eAAA;IAAAA,eAAA;IAE5B,IAAI,CAAC+B,QAAQ,GAAG,IAAI,CAACZ,SAAS,CAACY,QAAQ;IACvC,IAAI,CAACC,wBAAwB,GAAG,IAAIC,GAAG,CAAC,CAAC;IACzC;IACA,IAAI,CAACH,oBAAoB,GAAG,IAAI,CAACA,oBAAoB,IAAI,IAAI,CAACP,kBAAkB,CAACW,iBAAiB,CAAC,CAAC;EACtG;;EAEA;AACF;AACA;AACA;EACE,MAAMC,WAAWA,CACfC,GAAa,GAAG,EAAE,EAClBC,YAAsB,EACtBC,SAAkB,EAClBC,IAAiC,GAAG,CAAC,CAAC,EACnB;IACnB,MAAMC,sBAA+B,GAAGH,YAAY,IAAI,KAAK;IAC7D,MAAMI,WAAkD,GAAG;MACzDC,sBAAsB,EAAE,KAAK;MAC7BL,YAAY,EAAEG,sBAAsB;MACpCG,cAAc,EAAE,IAAI;MACpBC,QAAQ,EAAE,KAAK;MACfC,sBAAsB,EAAE,CAAC,CAAC,IAAI,CAAC1B,SAAS,CAAC2B,gBAAgB;MACzDC,YAAY,EAAE,KAAK;MACnBjB,oBAAoB,EAAE,IAAI,CAACA;IAC7B,CAAC;IACD,MAAMkB,UAAiD,GAAApD,aAAA,CAAAA,aAAA,KAAQ6C,WAAW,GAAKF,IAAI,CAAE;;IAErF;IACA,MAAMU,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,MAAMC,YAAY,GAAI,IAAGJ,MAAO,gBAAe;IAC/C,IAAI,CAACzB,MAAM,CAAC8B,OAAO,CAAE,IAAGL,MAAO,yBAAwB,CAAC;IACxD,IAAI,CAACzB,MAAM,CAAC+B,IAAI,CAAE,GAAEF,YAAa,YAAWjB,GAAG,CAACtC,MAAO;AAC3D,OAAOsC,GAAG,CAACoB,IAAI,CAAC,IAAI,CAAE;AACtB,cAAclB,SAAS,IAAI,WAAY,iBAAgBmB,IAAI,CAACC,SAAS,CAACV,UAAU,EAAE,IAAI,EAAE,CAAC,CAAE,EAAC,CAAC;IACzF,MAAM,CAACW,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,mBAAS,EAACzB,GAAG,EAAG0B,EAAE,IAAKA,EAAE,CAACC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtF,IAAI,CAAC5C,SAAS,CAACwC,YAAY,GAAGA,YAAY;IAC1C,MAAM,IAAI,CAACtC,YAAY,CAAC2C,kBAAkB,CAAC,IAAI,CAAC7C,SAAS,CAACwC,YAAY,CAAC;IACvE,MAAMM,YAAY,GAAGL,eAAe,CAACrE,MAAM,CAAEuE,EAAE,IAAK,CAAC,IAAI,CAACzC,YAAY,CAAC6C,cAAc,CAACJ,EAAE,CAAC,CAAC;IAC1F,IAAI,CAACG,YAAY,CAACnE,MAAM,EAAE;MACxB,IAAI,CAAC0B,MAAM,CAAC8B,OAAO,CAAE,IAAGL,MAAO,yBAAwB,CAAC;MACxD,OAAO,EAAE;IACX;IACA,MAAMkB,oBAAoB,GAAG,IAAI,CAAC9C,YAAY,CAAC+C,gBAAgB,CAAC,CAAC;IACjE,MAAMC,cAAwB,GAAG,IAAAC,oBAAU,EAACL,YAAY,EAAEE,oBAAoB,CAAC;IAE/E,MAAMI,YAAY,GAAG,MAAM,IAAI,CAACpD,SAAS,CAACqD,2BAA2B,CAACH,cAAc,CAAC;IAErF,MAAM;MAAEI,YAAY;MAAEC;IAAgB,CAAC,GAAG,MAAM,IAAI,CAACC,4BAA4B,CAC/EJ,YAAY,EACZvB,UAAU,CAAClB,oBACb,CAAC;IAED,IAAI,CAAC8C,wBAAwB,CAACvB,YAAY,EAAEoB,YAAY,EAAEC,eAAe,CAAC;IAC1E,IAAIG,eAAe,GAAGN,YAAY;IAClC,IAAIO,cAAwB,GAAG,EAAE;;IAEjC;IACA;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACjD,6BAA6B,EAAE;MACvCmB,UAAU,CAACN,sBAAsB,GAAG,IAAI;IAC1C;IAEA,IAAIM,UAAU,CAACN,sBAAsB,EAAE;MACrCmC,eAAe,GAAGJ,YAAY;MAC9BK,cAAc,GAAG,MAAM,IAAI,CAACC,2BAA2B,CAACL,eAAe,EAAErC,YAAY,EAAEC,SAAS,CAAC;IACnG;IAEA,MAAM0C,WAAW,GAAG,MAAM,IAAI,CAACC,cAAc,CAACC,SAAS,EAAEL,eAAe,EAAAjF,aAAA;MACtEuF,WAAW,EAAE,IAAI;MACjBC,aAAa,EAAE;IAAK,GACjBpC,UAAU,CACd,CAAC;IAEF,MAAM;MAAEqC,SAAS;MAAEC;IAAsB,CAAC,GAAG,MAAM,IAAI,CAACC,qBAAqB,CAC3EP,WAAW,EACXX,cAAc,EACdrB,UAAU,CAACX,YAAY,EACvBW,UAAU,CAACH,sBAAsB,EACjCP,SAAS,EACTU,UAAU,CAACL,cACb,CAAC;IAED,MAAM6C,uBAAuB,GAAG,IAAAC,iBAAO,EACrCJ,SAAS,CAACK,GAAG,CAAC,CAACC,QAAQ,EAAEC,KAAK,KAAK;MACjC,IAAI,IAAI,CAACvE,YAAY,CAACwE,aAAa,CAACF,QAAQ,CAAC,EAAE,OAAOT,SAAS;MAC/D,OAAOU,KAAK;IACd,CAAC,CACH,CAAC;;IAED;IACA,MAAME,4BAA4B,GAAGN,uBAAuB,CAACE,GAAG,CAAEE,KAAK,IAAK;MAC1E,OAAON,qBAAqB,CAACM,KAAK,CAAC;IACrC,CAAC,CAAC;IACF;IACA,MAAMG,gBAAgB,GAAG,MAAM,IAAI,CAAC1E,YAAY,CAAC2E,qCAAqC,CACpFF,4BAA4B,EAC5BzD,YAAY,EACZE,IAAI,CAACI,cACP,CAAC;IAED,MAAM,IAAI,CAACtB,YAAY,CAAC4E,yBAAyB,CAACF,gBAAgB,EAAEb,SAAS,EAAE;MAAE7C;IAAa,CAAC,CAAC;IAChG,MAAM6D,WAAW,GAAGb,SAAS,CAACK,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAAC7B,EAAE,CAAC;IAC5D,IAAI,CAACtC,MAAM,CAAC2E,KAAK,CAAE,GAAE9C,YAAa,yBAAwB,CAAC;IAC3D,IAAI,CAAC7B,MAAM,CAAC8B,OAAO,CAAE,IAAGL,MAAO,yBAAwB,CAAC;IACxD,OAAO,IAAAwC,iBAAO,EAACS,WAAW,CAACE,MAAM,CAACtB,cAAc,CAAC,CAAC;EACpD;EAEA,MAAcC,2BAA2BA,CAAC3C,GAAkB,EAAEC,YAAsB,EAAEC,SAAkB,EAAE;IACxG,IAAIwC,cAAwB,GAAG,EAAE;IACjC,MAAMuB,WAAW,GAAG,MAAM,IAAI,CAACtE,QAAQ,CAACuE,oBAAoB,CAAC,CAAC;IAE9D,IAAI,CAAClE,GAAG,CAACtC,MAAM,EAAE,OAAO,EAAE;IAE1B,MAAMyG,qBAAqB,GAAGnE,GAAG,CAACsD,GAAG,CAAE5B,EAAE,IAAKA,EAAE,CAAC0C,QAAQ,CAAC,CAAC,CAAC;IAC5D,IAAI;MACF1B,cAAc,GAAG,MAAM,IAAI,CAAC1D,KAAK,CAACe,WAAW,CAACoE,qBAAqB,EAAElE,YAAY,EAAEC,SAAS,EAAE+D,WAAW,EAAE;QACzGI,2BAA2B,EAAE,IAAI,CAACtF,SAAS,CAACuF,IAAI;QAChDC,aAAa,EAAE,IAAI,CAACxF,SAAS,CAACyF;MAChC,CAAC,CAAC;MACF,OAAO9B,cAAc;IACvB,CAAC,CAAC,OAAO+B,GAAQ,EAAE;MACjB,IAAI,CAACC,+BAA+B,CAACD,GAAG,CAAC;MACzC,OAAO/B,cAAc;MAErB,MAAM+B,GAAG;IACX;EACF;EAEAC,+BAA+BA,CAACD,GAAQ,EAAE;IACxC,IAAIA,GAAG,YAAYE,+BAAiB,EAAE;MACpC,MAAMC,MAAM,GAAG,IAAI,CAACtF,OAAO,CAACuF,GAAG,CAAa,wBAAwB,CAAC;MACrE,MAAMC,SAAS,GAAGzD,IAAI,CAACC,SAAS,CAACsD,MAAM,CAACG,eAAe,EAAEC,GAAG,IAAI,CAAC,CAAC,CAAC;MACnE,IAAIF,SAAS,CAACG,QAAQ,CAACR,GAAG,CAAC/C,EAAE,CAAC,EAAE;QAC9B,MAAM,KAAIwD,oBAAQ,EAAE,uBAAsBT,GAAG,CAAC/C,EAAG;AACzD,oFAAoF,CAAC;MAC/E;IACF;EACF;EAEA,MAAcyB,qBAAqBA,CACjCP,WAA+B,EAC/BuC,OAAiB,EACjBlF,YAAqB,EACrBQ,sBAA+B,EAC/BP,SAAkB,EAClBK,cAAc,GAAG,IAAI,EACqF;IAC1G,MAAM;MAAE6E;IAAiB,CAAC,GAAG,MAAM,IAAI,CAACC,mCAAmC,CAACzC,WAAW,CAAC;IACxF,MAAM0C,kBAAkB,GAAG,IAAI,CAACtG,KAAK,CAACuG,qBAAqB,CAAC,CAAC;IAC7D,MAAMC,QAAkB,GAAG,IAAAnC,iBAAO,EAAC+B,gBAAgB,CAAC9B,GAAG,CAAEmC,SAAS,IAAKA,SAAS,CAACC,KAAK,CAAC,CAAC;IACxF,MAAMC,eAAe,GAAG,MAAML,kBAAkB,CAACM,4BAA4B,CAACJ,QAAQ,CAAC;;IAEvF;IACA;IACA,IAAIG,eAAe,CAACzG,IAAI,IAAIyG,eAAe,CAACzG,IAAI,CAACxB,MAAM,IAAI,CAAC6C,cAAc,EAAE;MAC1E,MAAM,IAAI,CAACvB,KAAK,CAACe,WAAW,CAAC4F,eAAe,CAACzG,IAAI,EAAEe,YAAY,EAAE,6CAA6C,CAAC;IACjH;IACA,MAAMiD,qBAAqB,GAAG,IAAI,CAAC2C,iCAAiC,CAACjD,WAAW,CAAC;IACjF,MAAMK,SAAS,GAAG,MAAM,IAAI,CAAChE,YAAY,CAAC2E,qCAAqC,CAC7EV,qBAAqB,EACrBjD,YAAY,EACZM,cACF,CAAC;IACD,MAAM,IAAI,CAACtB,YAAY,CAAC4E,yBAAyB,CAC/CZ,SAAS,EACT;MAAEkC,OAAO;MAAEjF;IAAU,CAAC,EACtB;MAAED,YAAY;MAAEQ;IAAuB,CACzC,CAAC;IACD,OAAO;MAAEwC,SAAS;MAAEC;IAAsB,CAAC;EAC7C;EAEA,MAAML,cAAcA,CAClBiD,WAAoB,EACpB3D,YAA4B,EAC5BhC,IAA4B,EACC;IAC7B,MAAMU,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,MAAMC,YAAY,GAAI,IAAGJ,MAAO,6BAA4B;IAE5D,IAAI,CAACzB,MAAM,CAAC2E,KAAK,CACd,GAAE9C,YAAa,0CAAyC6E,WAAY,mBAAkB3D,YAAa,EACtG,CAAC;IACD,MAAM9B,WAAkC,GAAG;MACzC0C,WAAW,EAAE,KAAK;MAClBC,aAAa,EAAE,KAAK;MACpB+C,eAAe,EAAE,IAAI;MACrBzF,sBAAsB,EAAE,KAAK;MAC7BiE,aAAa,EAAE,IAAI,CAACxF,SAAS,CAACyF,IAAI;MAClC9E,oBAAoB,EAAE,IAAI,CAACA,oBAAoB;MAC/C2E,2BAA2B,EAAE,IAAI,CAACtF,SAAS,CAACuF;IAC9C,CAAC;IACD,MAAM1D,UAAU,GAAApD,aAAA,CAAAA,aAAA,KAAQ6C,WAAW,GAAKF,IAAI,CAAE;IAC9C,MAAM6F,YAAY,GAAG7D,YAAY,GAAGA,YAAY,CAACmB,GAAG,CAAE5B,EAAE,IAAKA,EAAE,CAAC0C,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC9E,OAAO,CAAC2G,aAAa;IACxG,MAAMC,cAAc,GAAG,IAAI,CAACjH,YAAY,CAAC+C,gBAAgB,CAAC,CAAC;IAC3D,MAAMmE,iBAAiB,GAAG,IAAI,CAAClH,YAAY,CAACmH,oBAAoB,CAAC,CAAC;IAClE;IACA;IACA,MAAMC,cAAwB,GAAGlE,YAAY,GACzCA,YAAY,CAAChF,MAAM,CAAEuE,EAAE,IAAK,CAACwE,cAAc,CAACjB,QAAQ,CAACvD,EAAE,CAAC4E,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAChD,GAAG,CAAE5B,EAAE,IAAKA,EAAE,CAAC0C,QAAQ,CAAC,CAAC,CAAC,GAC7G,IAAAlC,oBAAU,EAAC,IAAI,CAAC5C,OAAO,CAAC2G,aAAa,EAAEC,cAAc,CAAC;IAC1D,MAAMK,cAAwB,GAAG,IAAArE,oBAAU,EAACiE,iBAAiB,EAAED,cAAc,CAAC;IAC9E,MAAMM,qBAAqB,GAAG,MAAM,IAAI,CAACzH,SAAS,CAACqD,2BAA2B,CAACiE,cAAc,CAAC;IAC9F,MAAMI,UAAU,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACF,qBAAqB,EAAErG,IAAI,EAAEF,YAAY,CAAC;IAC5F;IACA,MAAM,IAAI,CAAC0G,4BAA4B,CAACF,UAAU,CAAC;IAEnD,IAAItG,IAAI,EAAEK,QAAQ,EAAE;MAClB,MAAMoG,YAAY,GAAG,MAAM,IAAI,CAAC3H,YAAY,CAAC4D,cAAc,CACzD4D,UAAU,EACV,IAAI,CAACI,0BAA0B,CAAC,EAAE,EAAEf,WAAW,CACjD,CAAC;MAED,MAAMgB,cAAc,GAAG,MAAMC,OAAO,CAACC,GAAG,CACtCd,cAAc,CAAC5C,GAAG,CAAC,MAAO2D,MAAM,IAAK;QACnC,MAAMC,MAAM,GAAG,MAAM,IAAAC,4BAAY,EAACF,MAAM,EAAEnB,WAAW,CAAC;QACtD,OAAO,IAAI,CAAC7G,YAAY,CAACmI,cAAc,CAACF,MAAM,CAAC;MACjD,CAAC,CACH,CAAC;MAED,MAAMG,WAAW,GAAGrB,YAAY,CAAC1C,GAAG,CAAEgE,KAAK,IAAKC,0BAAW,CAACC,UAAU,CAACF,KAAK,CAAC,CAAC;MAC9E,MAAMG,UAAU,GAAGb,YAAY,CAAC5C,MAAM,CAAC8C,cAAc,CAAC;MACtD,MAAMY,SAAS,GAAG,IAAI,CAACzI,YAAY,CAAC0I,gBAAgB,CAACF,UAAU,EAAEJ,WAAW,EAAEvB,WAAW,EAAElF,UAAU,CAAC;MAEtG,OAAO8G,SAAS;IAClB;IAEA,MAAME,iBAAiB,GAAG,IAAAC,iBAAO,EAACpB,UAAU,EAAGqB,SAAS,IAAK;MAC3D,OAAO,IAAI,CAAC7I,YAAY,CAAC8I,cAAc,CAACD,SAAS,CAAC;IACpD,CAAC,CAAC;IACF,MAAME,KAAK,GAAG,MAAM,IAAI,CAACC,0BAA0B,CAACL,iBAAiB,CAACM,KAAK,EAAE,IAAI,CAACC,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtG,MAAMC,iBAAiB,GAAGL,KAAK,CAACM,KAAK,CAAChF,GAAG,CAAEiF,IAAI,IAAKA,IAAI,CAACC,IAAI,CAAC,CAACxE,MAAM,CAAC4D,iBAAiB,CAACa,IAAI,IAAI,EAAE,CAAC;IACnG,IAAI,CAACrJ,MAAM,CAAC2E,KAAK,CAAE,GAAE9C,YAAa,UAASoH,iBAAiB,CAAC3K,MAAO,+BAA8B,CAAC;IACnG,MAAM;MAAEgL,cAAc;MAAEC;IAAkB,CAAC,GAAG,MAAM,IAAI,CAACC,mCAAmC,CAC1FP,iBAAiB,EACjBzH,UAAU,CAAClB,oBACb,CAAC;IAED,MAAMmJ,iBAAiB,GAAGH,cAAc,CAACpF,GAAG,CAAEwF,CAAC,IAAKA,CAAC,CAACpH,EAAE,CAAC;IACzD,MAAMqH,oBAAoB,GAAGJ,iBAAiB,CAACrF,GAAG,CAAEwF,CAAC,IAAKA,CAAC,CAACpH,EAAE,CAAC;IAC/D,IAAI,CAACc,wBAAwB,CAACvB,YAAY,EAAE4H,iBAAiB,EAAEE,oBAAoB,CAAC;IAEpF,MAAMC,SAAmB,GAAG,EAAE;IAC9B,MAAMpC,YAAY,GAAG,MAAM,IAAI,CAAC3H,YAAY,CAAC4D,cAAc,CACzD6F,cAAc,EACd,IAAI,CAAC7B,0BAA0B,CAACmC,SAAS,EAAElD,WAAW,CACxD,CAAC;IAED,MAAM,IAAI,CAACmD,6BAA6B,CAACrC,YAAY,CAAC;;IAEtD;IACA;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACnH,6BAA6B,EAAE;MACvCmB,UAAU,CAACN,sBAAsB,GAAG,IAAI;IAC1C;IAEA,IAAI4I,4BAA4B,GAAGP,iBAAiB;IACpD,IAAIQ,gCAA6C,GAAG,EAAE;IACtD,IAAI,CAACvI,UAAU,CAACN,sBAAsB,EAAE;MACtC,MAAM8I,uBAAuB,GAAG,IAAAvB,iBAAO,EAACc,iBAAiB,EAAGb,SAAS,IAAK,IAAI,CAAC5I,IAAI,CAACmK,KAAK,CAACvB,SAAS,CAAC,CAAC;MACrGoB,4BAA4B,GAAGE,uBAAuB,CAACX,IAAI,IAAI,EAAE;MACjEU,gCAAgC,GAAGC,uBAAuB,CAAClB,KAAK,IAAI,EAAE;IACxE;IAEA,MAAM1C,QAAQ,GAAG0D,4BAA4B,CAAC5F,GAAG,CAAEwF,CAAC,IAAKA,CAAC,CAACpH,EAAE,CAAC;IAC9D,IAAI,CAACtC,MAAM,CAAC2E,KAAK,CACd,GAAE9C,YAAa,IACduE,QAAQ,CAAC9H,MACV,iFAAgF8H,QAAQ,CACtFlC,GAAG,CAAE5B,EAAE,IAAKA,EAAE,CAAC0C,QAAQ,CAAC,CAAC,CAAC,CAC1BhD,IAAI,CAAC,IAAI,CAAE,EAChB,CAAC;IACD,MAAMkI,gBAAoC,GAAG9D,QAAQ,CAAC9H,MAAM,GACxD,MAAM,IAAI,CAACsB,KAAK,CAAC6D,cAAc,CAACiD,WAAW,EAAEN,QAAQ,EAAE5E,UAAU,CAAC,GAClE,EAAE;IAEN,IAAI,CAACxB,MAAM,CAAC2E,KAAK,CACd,GAAE9C,YAAa,IACdkI,gCAAgC,CAACzL,MAClC,+EAA8EyL,gCAAgC,CAC5G7F,GAAG,CAAEwF,CAAC,IAAKA,CAAC,CAACpH,EAAE,CAAC0C,QAAQ,CAAC,CAAC,CAAC,CAC3BhD,IAAI,CAAC,IAAI,CAAE,EAChB,CAAC;IACD,MAAMmI,oBAAwC,GAAGJ,gCAAgC,CAACzL,MAAM,GACpF,MAAM,IAAI,CAACuB,YAAY,CAAC4D,cAAc,CACpCsG,gCAAgC,EAChC,IAAI,CAACK,0BAA0B,CAACxB,KAAK,EAAEzB,cAAc,EAAET,WAAW,EAAE;MAClE7F,YAAY,EAAEE,IAAI,EAAEF,YAAY,IAAI;IACtC,CAAC,CACH,CAAC,GACD,EAAE;IAEN,IAAI6G,cAAc,GAAG,MAAMC,OAAO,CAACC,GAAG,CACpCd,cAAc,CAAC5C,GAAG,CAAC,MAAO2D,MAAM,IAAK;MACnC,MAAMC,MAAM,GAAG,MAAM,IAAAC,4BAAY,EAACF,MAAM,EAAEnB,WAAW,CAAC;MACtD,OAAO,IAAI,CAAC7G,YAAY,CAACmI,cAAc,CAACF,MAAM,CAAC;IACjD,CAAC,CACH,CAAC;;IAED;IACA,IAAIpB,WAAW,IAAIlF,UAAU,CAACmF,eAAe,EAAE;MAC7Ce,cAAc,GAAGA,cAAc,CAAC3J,MAAM,CAAEsM,UAAU,IAAK;QACrD,OAAOA,UAAU,CAACC,WAAW;MAC/B,CAAC,CAAC;IACJ;IACA,MAAMC,aAAa,GAAG,MAAM,IAAI,CAAC1K,YAAY,CAAC2K,mBAAmB,CAAC,IAAI,CAAC7K,SAAS,CAACwC,YAAY,EAAEuE,WAAW,CAAC;IAC3G,MAAM+D,kBAAkB,GAAG,CAAC,GAAGjD,YAAY,EAAE,GAAGE,cAAc,EAAE,GAAGwC,gBAAgB,EAAE,GAAGC,oBAAoB,CAAC;IAC7G,MAAMO,mBAAmB,GAAGD,kBAAkB,CAAC1M,MAAM,CAAE4M,QAAQ,IAAK;MAClE,OAAO,CAACJ,aAAa,CAACK,IAAI,CAAEC,WAAW,IAAK;QAC1C,OAAOA,WAAW,CAACvI,EAAE,KAAKqI,QAAQ,CAACjC,SAAS,EAAEpG,EAAE,EAAE4E,sBAAsB,CAAC,CAAC;MAC5E,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM4D,OAAO,GAAG,CAAC,GAAGJ,mBAAmB,EAAE,GAAGH,aAAa,CAAC;IAC1D,MAAMtC,WAAW,GAAGrB,YAAY,CAAC1C,GAAG,CAAEgE,KAAK,IAAKC,0BAAW,CAACC,UAAU,CAACF,KAAK,CAAC,CAAC;IAC9E,MAAM6C,YAAY,GAAG,IAAI,CAAClL,YAAY,CAAC0I,gBAAgB,CAACuC,OAAO,EAAE7C,WAAW,EAAEvB,WAAW,EAAElF,UAAU,CAAC;IACtG,OAAOuJ,YAAY;EACrB;EAEAC,wBAAwBA,CAAA,EAAY;IAClC,OAAO,CAAC,IAAI,CAAC/K,YAAY,CAACgL,OAAO,CAACC,mDAAsC,CAAC;EAC3E;EAEAC,cAAcA,CAAA,EAAG;IACf,MAAMC,WAAW,GAAG,IAAI,CAACzL,SAAS,CAACuF,IAAI;IACvC,OAAO,IAAI,CAACjF,YAAY,CAACgL,OAAO,CAACC,mDAAsC,CAAC,IAAIE,WAAW;EACzF;EAEQhI,wBAAwBA,CAACvB,YAAoB,EAAEoB,YAA2B,EAAEC,eAA8B,EAAE;IAClH,MAAMmI,eAAe,GAAGpI,YAAY,CAAC3E,MAAM,GAAG2E,YAAY,CAACiB,GAAG,CAAE5B,EAAE,IAAKA,EAAE,CAAC0C,QAAQ,CAAC,CAAC,CAAC,CAAChD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;IACrG,MAAMsJ,kBAAkB,GAAGpI,eAAe,CAAC5E,MAAM,GAAG4E,eAAe,CAACgB,GAAG,CAAE5B,EAAE,IAAKA,EAAE,CAAC0C,QAAQ,CAAC,CAAC,CAAC,CAAChD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;IAC9G,IAAI,CAAChC,MAAM,CAAC2E,KAAK,CACd,GAAE9C,YAAa,UAASoB,YAAY,CAAC3E,MAAO,iCAAgC4E,eAAe,CAAC5E,MAAO,uBACtG,CAAC;IACD,IAAI+M,eAAe,EAAE,IAAI,CAACrL,MAAM,CAAC2E,KAAK,CAAE,GAAE9C,YAAa,2BAA0BwJ,eAAgB,EAAC,CAAC;IACnG,IAAIC,kBAAkB,EACpB,IAAI,CAACtL,MAAM,CAAC2E,KAAK,CACd,GAAE9C,YAAa,yFAAwFyJ,kBAAmB,EAC7H,CAAC;EACL;EAEA,MAAMC,GAAGA,CAACC,WAAmB,EAAmB;IAC9C,IAAIb,QAAQ,GAAG,MAAM,IAAI,CAAChL,SAAS,CAAC8L,kBAAkB,CAACD,WAAW,CAAC;IACnE,MAAME,IAAI,GAAG,MAAM,IAAI,CAAC/L,SAAS,CAACgM,KAAK,CAAChB,QAAQ,CAAC;IACjD,IAAIiB,aAAa,GAAGjB,QAAQ,CAACzD,sBAAsB,CAAC,CAAC;IAErD,IAAI2E,gBAAgB;IACpB;IACA,IAAI,CAACH,IAAI,EAAE;MACT,MAAMzC,iBAAiB,GAAG,MAAM,IAAI,CAAC3B,mBAAmB,CAAC,CAACqD,QAAQ,CAAC,CAAC;MACpE,IAAI1B,iBAAiB,CAAC,CAAC,CAAC,EAAE;QACxB4C,gBAAgB,GAAG5C,iBAAiB,CAAC,CAAC,CAAC;QACvC0B,QAAQ,GAAGkB,gBAAgB,CAACvJ,EAAE;QAC9BsJ,aAAa,GAAGjB,QAAQ,CAAC3F,QAAQ,CAAC,CAAC;MACrC;IACF;IAEA,MAAMQ,MAAM,GAAG,IAAI,CAACtF,OAAO,CAACuF,GAAG,CAAa,wBAAwB,CAAC,CAACE,eAAe;IACrF,IAAI,CAACH,MAAM,EAAE;MACX,MAAM,IAAIsG,KAAK,CAAE,0CAAyC,CAAC;IAC7D;IACAtG,MAAM,CAACuG,YAAY,CACjBH,aAAa,EACb,CAAC,CAAC,EACF;MACEI,gBAAgB,EAAE,KAAK;MACvBC,aAAa,EAAE;IACjB,CACF,CAAC;IACD,MAAMzG,MAAM,CAAC0G,KAAK,CAAC;MAAEC,eAAe,EAAG,QAAOX,WAAY;IAAG,CAAC,CAAC;IAC/D,IAAI,CAAC3L,YAAY,CAACuM,2BAA2B,CAACR,aAAa,CAAC;IAC5D,MAAM,IAAI,CAACS,6BAA6B,CAAC1B,QAAQ,EAAEe,IAAI,CAAC;IACxD,OAAOE,aAAa;EACtB;EAEA,MAAMU,gCAAgCA,CACpCC,OAAgD,GAAG,CAAC,CAAC,EAC3B;IAC1B,MAAMxF,iBAAiB,GAAG,IAAI,CAAClH,YAAY,CAACmH,oBAAoB,CAAC,CAAC;IAClE,MAAMF,cAAc,GAAG,IAAI,CAACjH,YAAY,CAAC+C,gBAAgB,CAAC,CAAC;IAC3D,MAAMqE,cAAwB,GAAG,IAAAnE,oBAAU,EAACiE,iBAAiB,EAAED,cAAc,CAAC;IAC9E,MAAMM,qBAAqB,GAAG,MAAM,IAAI,CAACzH,SAAS,CAACqD,2BAA2B,CAC5EiE,cAAc,CAAClJ,MAAM,CAAEuE,EAAE,IAAK,CAACA,EAAE,CAACC,UAAU,CAAC,OAAO,CAAC,CACvD,CAAC;IACD,MAAM0G,iBAAiB,GAAG,MAAM,IAAI,CAAC3B,mBAAmB,CAACF,qBAAqB,CAAC;IAC/E,IAAIoF,uBAAuB,GAAGvD,iBAAiB;IAC/C,IAAIsD,OAAO,CAACE,aAAa,EAAE;MACzB,MAAM;QAAElD;MAAkB,CAAC,GAAG,MAAM,IAAI,CAACC,mCAAmC,CAACP,iBAAiB,CAAC;MAC/FuD,uBAAuB,GAAGjD,iBAAiB;IAC7C;IACA,MAAMmD,QAAQ,GAAGF,uBAAuB,CAACtI,GAAG,CAAEyI,eAAe,IAAK;MAChE,MAAMC,WAAW,GAAG,IAAI,CAAC7M,kBAAkB,CAAC8M,cAAc,CAACF,eAAe,CAAC;MAC3E,MAAMG,OAAO,GAAGH,eAAe,CAACrK,EAAE,CAACwK,OAAO,IAAI,GAAG;MACjD,OAAO;QAAEF,WAAW;QAAEE;MAAQ,CAAC;IACjC,CAAC,CAAC;IACF,OAAOJ,QAAQ;EACjB;EAEQjG,iCAAiCA,CAACsG,UAA8B,EAA0B;IAChG,MAAMjJ,qBAAqB,GAAGiJ,UAAU,CAAC7I,GAAG,CAAEmC,SAAS,IAAK;MAC1D,MAAM2G,SAAS,GAAG3G,SAAS,CAAC4G,UAAU;MACtC,MAAMvE,SAAS,GAAGrC,SAAS,CAACqC,SAAS;MACrC,IAAI,CAACA,SAAS,EAAE,OAAOhF,SAAS;MAChC,MAAMwJ,WAAW,GAAG,MAAAA,CAAA,KAAY;QAC9B,MAAMC,OAAO,GAAG,IAAI,CAACtN,YAAY,CAACuN,UAAU,CAAC1E,SAAS,EAAEsE,SAAS,CAAC;QAClE,IAAIG,OAAO,CAACE,GAAG,CAAC,CAAC,EAAE;UACjB,OAAOF,OAAO,CAACG,IAAI,CAACC,kBAAW,CAACnI,IAAI,CAAC;QACvC;QAEA,MAAMoI,QAAQ,GAAG,MAAM,IAAI,CAAC3N,YAAY,CAAC4N,WAAW,CAACT,SAAS,CAAC;QAE/D,MAAMU,MAAM,GAAG,CAACF,QAAQ;QACpB;QACAlR,OAAO,CAAC0Q,SAAS,CAAC;QAClB;QACA,MAAM,IAAI,CAACnN,YAAY,CAAC8N,OAAO,CAACX,SAAS,CAAC;;QAE9C;QACA,MAAM1C,WAAW,GAAG,MAAM,IAAI,CAACzK,YAAY,CAAC+N,cAAc,CAAClF,SAAS,EAAEsE,SAAS,EAAEO,kBAAW,CAACnI,IAAI,CAAC;QAClG,IAAIkF,WAAW,EAAE;UACf,IAAIkD,QAAQ,EAAE,MAAM,IAAI,CAAC3N,YAAY,CAAC8N,OAAO,CAACrD,WAAW,CAAC;UAC1D;UACAhO,OAAO,CAACgO,WAAW,CAAC;QACtB;QACA,OAAOoD,MAAM;MACf,CAAC;MACD,OAAO,KAAIG,sCAAoB,EAACnF,SAAS,EAAEwE,WAAW,CAAC;IACzD,CAAC,CAAC;IACF,OAAO,IAAAjJ,iBAAO,EAACH,qBAAqB,CAAC;EACvC;EAEA,MAAc+F,6BAA6BA,CAACiE,OAA2B,EAAE;IACvE,MAAMC,SAAS,GAAG,MAAMpG,OAAO,CAACC,GAAG,CACjCkG,OAAO,CAAC5J,GAAG,CAAC,MAAOwJ,MAAM,IAAK;MAC5B,IAAI,CAACA,MAAM,CAAChF,SAAS,EACnB,MAAM,IAAIoD,KAAK,CAAE,kEAAiE4B,MAAM,CAACT,UAAW,EAAC,CAAC;MACxG,MAAMe,MAAM,GAAG,MAAM,IAAI,CAACrO,SAAS,CAACgM,KAAK,CAAC+B,MAAM,CAAChF,SAAS,CAACpG,EAAE,CAAC;MAC9D,IAAI,CAAC0L,MAAM,EAAE,OAAO,IAAI;MACxB,MAAMC,KAAK,GAAG,MAAMC,kBAAE,CAACC,UAAU,CAACT,MAAM,CAACT,UAAU,CAAC;MACpD,IAAI,CAACgB,KAAK,EAAE,OAAOP,MAAM,CAAChF,SAAS,CAACpG,EAAE;MACtC,OAAO,IAAI;IACb,CAAC,CACH,CAAC;IACD,MAAM8L,oBAAoB,GAAG,IAAAnK,iBAAO,EAAC8J,SAAS,CAAC;IAC/C,IAAI,CAACK,oBAAoB,CAAC9P,MAAM,EAAE;IAClC,MAAM,IAAA+P,0CAAsB,EAAC,IAAI,CAAC1O,SAAS,EAAEyO,oBAAoB,CAAC;EACpE;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACU3G,0BAA0BA,CAACmC,SAAmB,EAAElD,WAAoB,EAAkB;IAC5F,MAAM4H,uBAAuB,GAAG,MAAO5F,SAAoB,IAA8B;MACvF,MAAM6F,YAAY,GAAG7F,SAAS,CAACpG,EAAE,CAAC0C,QAAQ,CAAC,CAAC;MAC5C4E,SAAS,CAAC1L,IAAI,CAACqQ,YAAY,CAAC;MAC5B,MAAMvB,SAAS,GAAG,MAAM,IAAI,CAACrN,SAAS,CAAC6O,uBAAuB,CAAC9F,SAAS,CAAC;MAEzE,MAAM4B,WAAW,GAAG5D,WAAW,GAC3B,MAAM,IAAI,CAAC7G,YAAY,CAAC+N,cAAc,CAAClF,SAAS,EAAEsE,SAAS,EAAEtG,WAAW,CAAC,GACzE,IAAI;MAER,MAAM+H,cAAc,GAAG,MAAM,IAAI,CAAC5O,YAAY,CAAC6O,iBAAiB,CAAChG,SAAS,EAAEsE,SAAS,CAAC;MAEtF,IAAI,CAAChN,MAAM,CAAC2E,KAAK,CACd,2CAA0C4J,YAAa,gBAAevB,SAAU,kBAAiB1C,WAAY,EAChH,CAAC;MACD,OAAO;QACL2C,UAAU,EAAED,SAAS;QACrByB,cAAc;QACdnE;MACF,CAAC;IACH,CAAC;IACD,OAAOgE,uBAAuB;EAChC;EAEA,MAAc/G,4BAA4BA,CAAC0B,iBAA8B,EAAiB;IACxF,MAAM0F,KAAK,GAAG,IAAI,CAACC,4BAA4B,CAAC,CAAC;IACjD,MAAM,IAAAC,qBAAU,EAACF,KAAK,EAAE,MAAOG,IAAI,IAAK;MACtC,IAAI;QACF,MAAMA,IAAI,CAAC7F,iBAAiB,CAAC;MAC/B,CAAC,CAAC,OAAO5D,GAAG,EAAE;QACZ,IAAI,CAACrF,MAAM,CAAC+O,KAAK,CAAC,0CAA0C,EAAE1J,GAAG,CAAC;MACpE;IACF,CAAC,CAAC;EACJ;EAEQuJ,4BAA4BA,CAAA,EAAuB;IACzD,MAAMI,uBAAuB,GAAG,IAAI,CAAC7O,oBAAoB,CAAC8O,MAAM,CAAC,CAAC;IAClE,OAAOD,uBAAuB;EAChC;EAEA,MAAc3C,6BAA6BA,CAAC6C,SAAsB,EAAExD,IAAa,EAAiB;IAChG,MAAMiD,KAAK,GAAG,IAAI,CAACQ,6BAA6B,CAAC,CAAC;IAClD,MAAM,IAAAN,qBAAU,EAACF,KAAK,EAAE,MAAOG,IAAI,IAAK;MACtC,IAAI;QACF,MAAMA,IAAI,CAACI,SAAS,EAAExD,IAAI,CAAC;MAC7B,CAAC,CAAC,OAAOrG,GAAG,EAAE;QACZ,IAAI,CAACrF,MAAM,CAAC+O,KAAK,CAAC,2CAA2C,EAAE1J,GAAG,CAAC;MACrE;IACF,CAAC,CAAC;EACJ;EAEQ8J,6BAA6BA,CAAA,EAAwB;IAC3D,MAAMC,wBAAwB,GAAG,IAAI,CAAChP,qBAAqB,CAAC6O,MAAM,CAAC,CAAC;IACpE,OAAOG,wBAAwB;EACjC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACUhF,0BAA0BA,CAChCxB,KAA+B,EAC/ByG,OAAiB,EACjB3I,WAAoB,EACpB3F,IAA+B,GAAG;IAAEF,YAAY,EAAE;EAAM,CAAC,EACzC;IAChB,MAAMyO,wBAAwB,GAAG,MAAO5G,SAAoB,IAA0C;MACpG,MAAM6F,YAAY,GAAG7F,SAAS,CAACpG,EAAE,CAAC0C,QAAQ,CAAC,CAAC;MAC5C;MACA,MAAMgI,SAAS,GAAG,MAAM,IAAI,CAACuC,iCAAiC,CAAC7G,SAAS,EAAE2G,OAAO,EAAEzG,KAAK,EAAE7H,IAAI,CAAC;MAC/F,IAAI,CAACiM,SAAS,EAAE,OAAOtJ,SAAS;MAEhC,MAAM4G,WAAW,GAAG5D,WAAW,GAC3B,MAAM,IAAI,CAAC7G,YAAY,CAAC+N,cAAc,CAAClF,SAAS,EAAEsE,SAAS,EAAEtG,WAAW,CAAC,GACzE,IAAI;MAER,MAAM+H,cAAc,GAAG,MAAM,IAAI,CAAC5O,YAAY,CAAC6O,iBAAiB,CAAChG,SAAS,EAAEsE,SAAS,CAAC;MAEtF,IAAI,CAAChN,MAAM,CAAC2E,KAAK,CACd,oDAAmD4J,YAAa,gBAAevB,SAAU,kBAAiB1C,WAAY,EACzH,CAAC;MACD,OAAO;QACL2C,UAAU,EAAED,SAAS;QACrByB,cAAc;QACdnE;MACF,CAAC;IACH,CAAC;IACD,OAAOgF,wBAAwB;EACjC;EAEA,MAAcC,iCAAiCA,CAC7C5C,eAA0B,EAC1B0C,OAAiB,EACjBzG,KAA+B,EAC/B7H,IAA+B,GAAG;IAAEF,YAAY,EAAE;EAAM,CAAC,EACrB;IACpC,MAAM2O,cAAc,GAAG7C,eAAe,CAACrK,EAAE,CAAC0C,QAAQ,CAAC,CAAC;IACpD,IAAI,IAAI,CAACxE,wBAAwB,CAAC6M,GAAG,CAACmC,cAAc,CAAC,EAAE;MACrD,MAAMC,YAAY,GAAG,IAAI,CAACjP,wBAAwB,CAACiF,GAAG,CAAC+J,cAAc,CAAC;MACtE,OAAOC,YAAY;IACrB;IACA,IAAIJ,OAAO,CAACxJ,QAAQ,CAAC2J,cAAc,CAAC,EAAE;MACpC,MAAMxC,SAAS,GAAG,MAAM,IAAI,CAACrN,SAAS,CAAC6O,uBAAuB,CAAC7B,eAAe,CAAC;MAC/E,IAAI,CAACnM,wBAAwB,CAACkP,GAAG,CAACF,cAAc,EAAExC,SAAS,CAAC;MAC5D,OAAOA,SAAS;IAClB;IACA,MAAM2C,MAAM,GAAG/G,KAAK,CAACgH,YAAY,CAACJ,cAAc,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,CAACG,MAAM,EAAE,OAAOjM,SAAS;IAC7B,MAAMmM,UAAU,GAAG,MAAM,IAAI,CAACN,iCAAiC,CAACI,MAAM,CAACvG,IAAI,EAAEiG,OAAO,EAAEzG,KAAK,CAAC;IAC5F,IAAI,CAACiH,UAAU,EAAE;MACf,IAAI,CAACrP,wBAAwB,CAACkP,GAAG,CAACF,cAAc,EAAE,IAAI,CAAC;MACvD,OAAO9L,SAAS;IAClB;IACA,MAAMkJ,WAAW,GAAG,IAAI,CAAC7M,kBAAkB,CAAC8M,cAAc,CAACF,eAAe,CAAC;IAC3E,IAAI;MACF,MAAM8C,YAAY,GAAG,IAAAK,6BAAW,EAACD,UAAU,EAAE,CAACjD,WAAW,CAAC,CAAC;MAC3D,MAAMI,SAAS,GAAG,IAAA+C,mBAAQ,EAACN,YAAY,CAAC;MACxC,IAAI,CAACjP,wBAAwB,CAACkP,GAAG,CAACF,cAAc,EAAExC,SAAS,CAAC;MAC5D,OAAOA,SAAS;IAClB,CAAC,CAAC,OAAO+B,KAAU,EAAE;MACnB,IAAI,CAACvO,wBAAwB,CAACkP,GAAG,CAACF,cAAc,EAAE,IAAI,CAAC;MACvD,IAAIzO,IAAI,CAACF,YAAY,EAAE;QACrB,MAAMkO,KAAK;MACb;MACA,IAAI,CAAC/O,MAAM,CAACgQ,cAAc,CACvB,2BAA0BR,cAAe,SAAQK,UAAW,YAAWd,KAAK,CAACkB,OAAQ,EACxF,CAAC;MACD,OAAOvM,SAAS;IAClB;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAcmF,0BAA0BA,CACtCxB,UAAuB,GAAG,EAAE,EAC5B0B,QAAyB,EACU;IACnC,MAAMnI,GAAG,GAAGyG,UAAU,CAACnD,GAAG,CAAEwE,SAAS,IAAKA,SAAS,CAACpG,EAAE,CAAC;IACvD,MAAMK,oBAAoB,GAAG,IAAI,CAAC9C,YAAY,CAAC+C,gBAAgB,CAAC,CAAC;IACjE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA,OAAO,IAAI,CAACjD,SAAS,CAACuQ,0BAA0B,CAACtP,GAAG,EAAE+B,oBAAoB,EAAEoG,QAAQ,CAAC;EACvF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMoH,wBAAwBA,CAC5BC,UAA6B,EAC7BC,cAA4B,EAC5BtP,IAAiC,GAAG,CAAC,CAAC,EACvB;IACf,MAAME,WAAwC,GAAG;MAC/CC,sBAAsB,EAAE,IAAI;MAC5BL,YAAY,EAAE,KAAK;MACnBQ,sBAAsB,EAAE,CAAC,CAAC,IAAI,CAAC1B,SAAS,CAAC2B,gBAAgB;MACzDhB,oBAAoB,EAAE,IAAI,CAACA;IAC7B,CAAC;IACD,MAAMkB,UAAU,GAAApD,aAAA,CAAAA,aAAA,KAAQ6C,WAAW,GAAKF,IAAI,CAAE;IAC9C,MAAMuP,cAAc,GAAGF,UAAU,CAAClM,GAAG,CAAC,MAAOqM,cAAc,IAAK;MAC9D;MACA,IAAI,CAACA,cAAc,CAACC,WAAW,EAAE;QAC/B,OAAOD,cAAc,CAACE,QAAQ;MAChC;MAEA,MAAMnO,EAAE,GAAG,MAAM,IAAI,CAAC3C,SAAS,CAAC8L,kBAAkB,CAAC8E,cAAc,CAACC,WAAW,CAAC;MAC9E;MACA,OAAOlO,EAAE,CAAC0C,QAAQ,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,MAAM6B,aAAuB,GAAG,MAAMc,OAAO,CAACC,GAAG,CAAC0I,cAAc,CAAC;IACjE,MAAMI,iBAAiB,GAAG,IAAI,CAACxQ,OAAO,CAAC2G,aAAa;IACpD,MAAM8J,gBAAgB,GAAGD,iBAAiB,CAAC3S,MAAM,CAAE6S,KAAK,IAAK;MAC3D,OAAO,IAAI,CAAC1Q,OAAO,CAACkQ,UAAU,CAAC3K,GAAG,CAACmL,KAAK,CAAC,EAAEC,MAAM;IACnD,CAAC,CAAC;IACF,MAAMC,gBAAgB,GAAG,IAAAhO,oBAAU,EAAC+D,aAAa,EAAE8J,gBAAgB,CAAC;IACpE,IAAI,CAACG,gBAAgB,CAACxS,MAAM,EAAE;IAC9B,MAAM,IAAI,CAACqC,WAAW,CAACmQ,gBAAgB,EAAEpN,SAAS,EAAE2M,cAAc,EAAErL,QAAQ,CAAC,CAAC,EAAExD,UAAU,CAAC;EAC7F;EAEA,MAAcuH,QAAQA,CAACzG,EAAe,EAAE;IACtC,MAAMoG,SAAS,GAAG,MAAM,IAAI,CAAC/I,SAAS,CAAC8F,GAAG,CAACnD,EAAE,CAAC;IAC9C,MAAMyO,gBAAgB,GAAG,IAAI,CAACjR,IAAI,CAACiR,gBAAgB,CAACrI,SAAS,CAAC;IAC9D,MAAMsI,aAAa,GAAG,IAAI,CAAClR,IAAI,CAACkR,aAAa,CAACtI,SAAS,CAAC;IACxD,MAAMrE,aAAa,GAAG0M,gBAAgB,IAAIC,aAAa;IACvD,OAAO3M,aAAa;EACtB;;EAEA;AACF;AACA;EACE,MAAciD,mBAAmBA,CAACvE,YAA2B,EAAElC,YAAY,GAAG,IAAI,EAAwB;IACxG,IAAI;MACF;MACA;MACA;MACA,MAAMoQ,QAA8B,GAAG;QACrCC,qBAAqB,EAAEnO,YAAY,CAACmB,GAAG,CAAE5B,EAAE,IAAKA,EAAE,CAAC0C,QAAQ,CAAC,CAAC;MAC/D,CAAC;MACD,OAAO,MAAM,IAAI,CAACrF,SAAS,CAACwR,gBAAgB,CAC1CpO,YAAY,EACZ,oCAAoC,EACpCkO,QAAQ,EACRpQ,YACF,CAAC;IACH,CAAC,CAAC,OAAOwE,GAAQ,EAAE;MACjB,IAAI,CAACC,+BAA+B,CAACD,GAAG,CAAC;MAEzC,MAAMA,GAAG;IACX;EACF;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAcmE,mCAAmCA,CAC/CnC,UAAuB,EACvB/G,oBAA8B,EAC4C;IAC1E,IAAIgJ,cAA2B,GAAG,EAAE;IACpC,IAAIC,iBAA8B,GAAG,EAAE;IACvC,MAAM5B,OAAO,CAACC,GAAG,CACfP,UAAU,CAACnD,GAAG,CAAC,MAAOwE,SAAS,IAAK;MAClC,MAAM0I,gBAAgB,GAAG,MAAM,IAAI,CAACzR,SAAS,CAACgM,KAAK,CAACjD,SAAS,CAACpG,EAAE,CAAC;MACjE8O,gBAAgB,GAAG9H,cAAc,CAACpL,IAAI,CAACwK,SAAS,CAAC,GAAGa,iBAAiB,CAACrL,IAAI,CAACwK,SAAS,CAAC;IACvF,CAAC,CACH,CAAC;IACD,IAAIpI,oBAAoB,EAAE;MACxB,MAAM;QAAE+Q,SAAS;QAAEC;MAAa,CAAC,GAAG,MAAM,IAAI,CAACC,kCAAkC,CAAChI,iBAAiB,CAAC;MACpGD,cAAc,GAAGA,cAAc,CAAC1E,MAAM,CAACyM,SAAS,CAAC;MACjD9H,iBAAiB,GAAG+H,YAAY;IAClC;IACA,OAAO;MAAEhI,cAAc;MAAEC;IAAkB,CAAC;EAC9C;EAEA,MAAcgI,kCAAkCA,CAC9ClK,UAAuB,EACyC;IAChE,MAAMgK,SAAsB,GAAG,EAAE;IACjC,MAAMC,YAAyB,GAAG,EAAE;IACpC,MAAM3J,OAAO,CAACC,GAAG,CACfP,UAAU,CAACnD,GAAG,CAAC,MAAOwE,SAAS,IAAK;MAClC,MAAM8I,uBAAuB,GAAG,MAAM,IAAI,CAACA,uBAAuB,CAAC9I,SAAS,CAAC;MAC7E,IAAI8I,uBAAuB,EAAE;QAC3BH,SAAS,CAACnT,IAAI,CAACwK,SAAS,CAAC;QACzB;MACF;MACA4I,YAAY,CAACpT,IAAI,CAACwK,SAAS,CAAC;IAC9B,CAAC,CACH,CAAC;IACD,OAAO;MAAE2I,SAAS;MAAEC;IAAa,CAAC;EACpC;EAEA,MAAcE,uBAAuBA,CAAC9I,SAAoB,EAAoB;IAC5E,MAAM+I,OAAO,GAAG,MAAM,IAAI,CAAC9R,SAAS,CAAC6O,uBAAuB,CAAC9F,SAAS,CAAC;IACvE,MAAMgJ,YAAY,GAAG,MAAMxD,kBAAE,CAACC,UAAU,CAACsD,OAAO,CAAC;IACjD,MAAMhD,cAAc,GAAG,MAAM,IAAI,CAAC5O,YAAY,CAAC6O,iBAAiB,CAAChG,SAAS,EAAE+I,OAAO,CAAC;IACpF,MAAME,mBAAmB,GAAGlD,cAAc,GAAG,MAAMP,kBAAE,CAACC,UAAU,CAACM,cAAc,CAAC,GAAG,KAAK;IACxF,MAAMmD,WAAW,GAAG,MAAM,IAAI,CAAC/R,YAAY,CAACgS,cAAc,CAACnJ,SAAS,EAAE+I,OAAO,CAAC;;IAE9E;IACA;IACA;IACA,IAAIC,YAAY,KAAKC,mBAAmB,IAAIC,WAAW,CAACtT,MAAM,CAAC,EAAE;MAC/D,OAAO,IAAI;IACb;IACA;IACA;IACA;IACA,IAAI,IAAI,CAACwB,IAAI,CAACgS,cAAc,CAACpJ,SAAS,CAAC,EAAE;MACvC,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAczC,mCAAmCA,CAC/C8G,UAA8B,EACwD;IACtF,MAAMgF,aAAiC,GAAG,EAAE;IAC5C,MAAM/L,gBAAoC,GAAG,EAAE;IAC/C,MAAM2B,OAAO,CAACC,GAAG,CACfmF,UAAU,CAAC7I,GAAG,CAAC,MAAOmC,SAAS,IAAK;MAClC,MAAM/D,EAAE,GAAG+D,SAAS,CAACqC,SAAS,EAAEpG,EAAE;MAClC,MAAM8O,gBAAgB,GAAG9O,EAAE,GAAG,MAAM,IAAI,CAAC3C,SAAS,CAACgM,KAAK,CAACrJ,EAAE,CAAC,GAAG,IAAI;MACnE,IAAI8O,gBAAgB,EAAE;QACpBW,aAAa,CAAC7T,IAAI,CAACmI,SAAS,CAAC;QAC7B;MACF;MACA,MAAMmL,uBAAuB,GAAGnL,SAAS,CAACqC,SAAS,GAC/C,MAAM,IAAI,CAAC8I,uBAAuB,CAACnL,SAAS,CAACqC,SAAS,CAAC,GACvDhF,SAAS;MACb,IAAI8N,uBAAuB,EAAE;QAC3BO,aAAa,CAAC7T,IAAI,CAACmI,SAAS,CAAC;QAC7B;MACF;MACAL,gBAAgB,CAAC9H,IAAI,CAACmI,SAAS,CAAC;IAClC,CAAC,CACH,CAAC;IACD,OAAO;MAAE0L,aAAa;MAAE/L;IAAiB,CAAC;EAC5C;EAEA,MAAc7C,4BAA4BA,CACxCvC,GAAkB,EAClBN,oBAA8B,EAC4C;IAC1E,IAAI2C,YAA2B,GAAG,EAAE;IACpC,IAAIC,eAA8B,GAAG,EAAE;IACvC,MAAMyE,OAAO,CAACC,GAAG,CACfhH,GAAG,CAACsD,GAAG,CAAC,MAAO5B,EAAE,IAAK;MACpB,MAAM8O,gBAAgB,GAAG,MAAM,IAAI,CAACzR,SAAS,CAACgM,KAAK,CAACrJ,EAAE,CAAC;MACvD8O,gBAAgB,GAAGnO,YAAY,CAAC/E,IAAI,CAACoE,EAAE,CAAC,GAAGY,eAAe,CAAChF,IAAI,CAACoE,EAAE,CAAC;IACrE,CAAC,CACH,CAAC;IACD;IACA,MAAM0P,eAAe,GAAG,MAAM,IAAI,CAAC1K,mBAAmB,CAACpE,eAAe,CAAC;IACvE,MAAM;MAAEqG,iBAAiB;MAAED;IAAe,CAAC,GAAG,MAAM,IAAI,CAACE,mCAAmC,CAC1FwI,eAAe,EACf1R,oBACF,CAAC;IACD2C,YAAY,GAAGA,YAAY,CAAC2B,MAAM,CAAC0E,cAAc,CAACpF,GAAG,CAAEwF,CAAC,IAAKA,CAAC,CAACpH,EAAE,CAAC,CAAC;IACnEY,eAAe,GAAGqG,iBAAiB,CAACrF,GAAG,CAAEwF,CAAC,IAAKA,CAAC,CAACpH,EAAE,CAAC;IACpD,OAAO;MAAEW,YAAY;MAAEC;IAAgB,CAAC;EAC1C;AACF;AAAC+O,OAAA,CAAAxS,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -330,17 +330,16 @@ class WorkspaceMain {
330
330
  commands.push(new (_pattern().PatternCommand)(workspace));
331
331
  cli.register(...commands);
332
332
  component.registerHost(workspace);
333
-
334
- // mini-status should be super fast. login/logout don't need loading aspects
335
- const commandsToSkipLoadingAspects = ['mini-status', 'ms', 'login', 'logout'];
336
- cli.registerOnStart(async (_hasWorkspace, currentCommand) => {
337
- if (commandsToSkipLoadingAspects.includes(currentCommand)) {
333
+ cli.registerOnStart(async (_hasWorkspace, currentCommand, commandObject) => {
334
+ const hasSafeModeFlag = process.argv.includes('--safe-mode');
335
+ if (hasSafeModeFlag || commandObject && !commandObject.loadAspects) {
338
336
  return;
339
337
  }
340
338
  if (currentCommand === 'install') {
341
339
  workspace.inInstallContext = true;
342
340
  }
343
341
  await workspace.importCurrentLaneIfMissing();
342
+ logger.profile('workspace.registerOnStart');
344
343
  const loadAspectsOpts = {
345
344
  runSubscribers: false,
346
345
  skipDeps: !config.autoLoadAspectsDeps
@@ -351,6 +350,7 @@ class WorkspaceMain {
351
350
  componentIds.forEach(id => {
352
351
  workspace.clearComponentCache(id);
353
352
  });
353
+ logger.profile('workspace.registerOnStart');
354
354
  });
355
355
 
356
356
  // add sub-commands "set" and "unset" to envs command.
@@ -1 +1 @@
1
- {"version":3,"names":["_pubsub","data","require","_aspectLoader","_bundler","_cli","_component","_envs","_graphql","_harmony","_isolator","_logger","_scope","_ui","_variants","_globalConfig","_dependencyResolver","_consumer","_component2","_interopRequireDefault","_extensionData","_componentLoader","_constants","_workspace","_ejectConf","_workspace2","_workspace3","_workspace4","_capsule","_envsSet","_envsUnset","_pattern","_envsReplace","_scopeSet","_use","_envsUpdate","_unuse","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","WorkspaceMain","provider","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","globalConfig","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onAspectsResolveSlot","onRootAspectAddedSlot","onBitmapChangeSlot","onWorkspaceConfigChangeSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","capsuleCmd","getCapsulesCommands","undefined","register","logger","createLogger","EXT_NAME","workspace","Workspace","configMergeFile","getConflictMergeFile","loadIfNeeded","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","getWorkspacePolicyFromMergeConfig","wsConfigMerge","getWorkspaceJsonConflictFromMergeConfig","policy","DependencyResolverAspect","id","forEach","depField","reduce","acc","current","name","version","wsPolicy","getWorkspacePolicyFromConfigObject","getRootPolicy","pkgJsonPolicy","configMergePolicy","mergeWorkspacePolices","registerRootPolicy","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","opts","originatedFromHarmony","newComponent","state","ConsumerComponent","registerOnComponentConfigLoading","loadOpts","componentId","resolveComponentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","registerPreStart","setComponentPathsRegExps","commands","EjectConfCmd","UseCmd","UnuseCmd","PatternCommand","registerHost","commandsToSkipLoadingAspects","registerOnStart","_hasWorkspace","currentCommand","includes","inInstallContext","importCurrentLaneIfMissing","loadAspectsOpts","runSubscribers","skipDeps","autoLoadAspectsDeps","aspects","loadAspects","getNotLoadedConfiguredExtensions","componentIds","resolveMultipleComponentIds","clearComponentCache","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","EnvsUpdateCmd","scopeCommand","ScopeSetCmd","exports","MainRuntime","PubsubAspect","CLIAspect","ScopeAspect","ComponentAspect","IsolatorAspect","VariantsAspect","LoggerAspect","GraphqlAspect","UIAspect","BundlerAspect","AspectLoaderAspect","EnvsAspect","GlobalConfigAspect","Slot","withType","CapsuleCmd","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","path","loadConsumerIfExist","WorkspaceAspect","addRuntime","_default"],"sources":["workspace.main.runtime.ts"],"sourcesContent":["import { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { BundlerAspect, BundlerMain } from '@teambit/bundler';\nimport { CLIAspect, MainRuntime, CLIMain, CommandList } from '@teambit/cli';\nimport { ComponentAspect } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { UIAspect, UiMain } from '@teambit/ui';\nimport { VariantsAspect } from '@teambit/variants';\nimport { GlobalConfigAspect, GlobalConfigMain } from '@teambit/global-config';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { ComponentMain, Component } from '@teambit/component';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { ComponentConfigLoadOptions } from '@teambit/legacy/dist/consumer/config';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport LegacyComponentLoader, { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ComponentID } from '@teambit/component-id';\nimport { EXT_NAME } from './constants';\nimport { OnComponentAdd, OnComponentChange, OnComponentRemove, OnComponentLoad } from './on-component-events';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport EjectConfCmd from './eject-conf.cmd';\nimport { WorkspaceExtConfig } from './types';\nimport { Workspace } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\nimport { EnvsUpdateCmd } from './envs-subcommands/envs-update.cmd';\nimport { UnuseCmd } from './unuse.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain,\n GlobalConfigMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnBitmapChange = () => Promise<void>;\nexport type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;\n\nexport type OnWorkspaceConfigChange = () => Promise<void>;\nexport type OnWorkspaceConfigChangeSlot = SlotRegistry<OnWorkspaceConfigChange>;\n\nexport type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;\nexport type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;\n\nexport type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;\nexport type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;\n\nexport class WorkspaceMain {\n static runtime = MainRuntime;\n static dependencies = [\n PubsubAspect,\n CLIAspect,\n ScopeAspect,\n ComponentAspect,\n IsolatorAspect,\n DependencyResolverAspect,\n VariantsAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n BundlerAspect,\n AspectLoaderAspect,\n EnvsAspect,\n GlobalConfigAspect,\n ];\n static slots = [\n Slot.withType<OnComponentLoad>(),\n Slot.withType<OnComponentChange>(),\n Slot.withType<OnComponentAdd>(),\n Slot.withType<OnComponentRemove>(),\n Slot.withType<OnAspectsResolve>(),\n Slot.withType<OnRootAspectAdded>(),\n Slot.withType<OnBitmapChange>(),\n Slot.withType<OnWorkspaceConfigChange>(),\n ];\n static async provider(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n globalConfig,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [\n onComponentLoadSlot,\n onComponentChangeSlot,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n onBitmapChangeSlot,\n onWorkspaceConfigChangeSlot,\n ]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnAspectsResolveSlot,\n OnRootAspectAddedSlot,\n OnBitmapChangeSlot,\n OnWorkspaceConfigChangeSlot\n ],\n harmony: Harmony\n ) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) {\n const capsuleCmd = getCapsulesCommands(isolator, scope, undefined);\n cli.register(capsuleCmd);\n return undefined;\n }\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n globalConfig,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n graphql,\n onBitmapChangeSlot,\n onWorkspaceConfigChangeSlot\n );\n\n const configMergeFile = workspace.getConflictMergeFile();\n await configMergeFile.loadIfNeeded();\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n /**\n * @deprecated\n * see workspace.getWorkspaceJsonConflictFromMergeConfig\n */\n const getWorkspacePolicyFromMergeConfig = () => {\n const wsConfigMerge = workspace.getWorkspaceJsonConflictFromMergeConfig();\n const policy = wsConfigMerge.data?.[DependencyResolverAspect.id]?.policy || {};\n ['dependencies', 'peerDependencies'].forEach((depField) => {\n if (!policy[depField]) return;\n policy[depField] = policy[depField].reduce((acc, current) => {\n acc[current.name] = current.version;\n return acc;\n }, {});\n });\n const wsPolicy = dependencyResolver.getWorkspacePolicyFromConfigObject(policy);\n return wsPolicy;\n };\n\n const getRootPolicy = () => {\n const pkgJsonPolicy = getWorkspacePolicyFromPackageJson();\n const configMergePolicy = getWorkspacePolicyFromMergeConfig();\n return dependencyResolver.mergeWorkspacePolices([pkgJsonPolicy, configMergePolicy]);\n };\n\n dependencyResolver.registerRootPolicy(getRootPolicy());\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(\n async (legacyComponent: ConsumerComponent, opts?: ComponentLoadOptions) => {\n if (opts?.originatedFromHarmony) return legacyComponent;\n const id = legacyComponent.id;\n const newComponent = await workspace.get(id, legacyComponent, true, true, opts);\n return newComponent.state._consumer;\n }\n );\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id, loadOpts: ComponentConfigLoadOptions) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope, undefined, loadOpts);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n legacyEntry.newExtensionId = legacyEntry.extensionId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n ui.registerPreStart(async () => {\n return workspace.setComponentPathsRegExps();\n });\n graphql.register(workspaceSchema);\n const capsuleCmd = getCapsulesCommands(isolator, scope, workspace);\n const commands: CommandList = [\n new EjectConfCmd(workspace),\n capsuleCmd,\n new UseCmd(workspace),\n new UnuseCmd(workspace),\n ];\n\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n // mini-status should be super fast. login/logout don't need loading aspects\n const commandsToSkipLoadingAspects = ['mini-status', 'ms', 'login', 'logout'];\n\n cli.registerOnStart(async (_hasWorkspace: boolean, currentCommand: string) => {\n if (commandsToSkipLoadingAspects.includes(currentCommand)) {\n return;\n }\n if (currentCommand === 'install') {\n workspace.inInstallContext = true;\n }\n await workspace.importCurrentLaneIfMissing();\n const loadAspectsOpts = {\n runSubscribers: false,\n skipDeps: !config.autoLoadAspectsDeps,\n };\n const aspects = await workspace.loadAspects(\n aspectLoader.getNotLoadedConfiguredExtensions(),\n undefined,\n 'teambit.workspace/workspace (cli.registerOnStart)',\n loadAspectsOpts\n );\n // clear aspect cache.\n const componentIds = await workspace.resolveMultipleComponentIds(aspects);\n componentIds.forEach((id) => {\n workspace.clearComponentCache(id);\n });\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n envsCommand?.commands?.push(new EnvsUpdateCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n }\n static defineRuntime = 'browser';\n}\n\nfunction getCapsulesCommands(isolator: IsolatorMain, scope: ScopeMain, workspace?: Workspace) {\n const capsuleCmd = new CapsuleCmd(isolator, workspace, scope);\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace, scope),\n new CapsuleCreateCmd(workspace, scope, isolator),\n new CapsuleDeleteCmd(isolator, scope, workspace),\n ];\n return capsuleCmd;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n\nWorkspaceAspect.addRuntime(WorkspaceMain);\n\nexport default WorkspaceMain;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pubsub","data","require","_aspectLoader","_bundler","_cli","_component","_envs","_graphql","_harmony","_isolator","_logger","_scope","_ui","_variants","_globalConfig","_dependencyResolver","_consumer","_component2","_interopRequireDefault","_extensionData","_componentLoader","_constants","_workspace","_ejectConf","_workspace2","_workspace3","_workspace4","_capsule","_envsSet","_envsUnset","_pattern","_envsReplace","_scopeSet","_use","_envsUpdate","_unuse","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","WorkspaceMain","provider","pubsub","cli","scope","component","isolator","dependencyResolver","variants","loggerExt","graphql","ui","bundler","aspectLoader","envs","globalConfig","config","onComponentLoadSlot","onComponentChangeSlot","onComponentAddSlot","onComponentRemoveSlot","onAspectsResolveSlot","onRootAspectAddedSlot","onBitmapChangeSlot","onWorkspaceConfigChangeSlot","harmony","bitConfig","get","consumer","getConsumer","cwd","capsuleCmd","getCapsulesCommands","undefined","register","logger","createLogger","EXT_NAME","workspace","Workspace","configMergeFile","getConflictMergeFile","loadIfNeeded","getWorkspacePolicyFromPackageJson","packageJson","packageJsonObject","policyFromPackageJson","getWorkspacePolicyFromMergeConfig","wsConfigMerge","getWorkspaceJsonConflictFromMergeConfig","policy","DependencyResolverAspect","id","forEach","depField","reduce","acc","current","name","version","wsPolicy","getWorkspacePolicyFromConfigObject","getRootPolicy","pkgJsonPolicy","configMergePolicy","mergeWorkspacePolices","registerRootPolicy","onCacheClear","push","clearCache","LegacyComponentLoader","registerOnComponentLoadSubscriber","legacyComponent","opts","originatedFromHarmony","newComponent","state","ConsumerComponent","registerOnComponentConfigLoading","loadOpts","componentId","resolveComponentId","componentFromScope","extensions","componentExtensions","defaultScope","componentDefaultScope","extensionsWithLegacyIdsP","map","extension","legacyEntry","clone","extensionId","newExtensionId","extensionsWithLegacyIds","Promise","all","ExtensionDataList","fromArray","workspaceSchema","getWorkspaceSchema","registerUiRoot","WorkspaceUIRoot","registerPreStart","setComponentPathsRegExps","commands","EjectConfCmd","UseCmd","UnuseCmd","PatternCommand","registerHost","registerOnStart","_hasWorkspace","currentCommand","commandObject","hasSafeModeFlag","process","argv","includes","loadAspects","inInstallContext","importCurrentLaneIfMissing","profile","loadAspectsOpts","runSubscribers","skipDeps","autoLoadAspectsDeps","aspects","getNotLoadedConfiguredExtensions","componentIds","resolveMultipleComponentIds","clearComponentCache","envsCommand","getCommand","EnvsSetCmd","EnvsUnsetCmd","EnvsReplaceCmd","EnvsUpdateCmd","scopeCommand","ScopeSetCmd","exports","MainRuntime","PubsubAspect","CLIAspect","ScopeAspect","ComponentAspect","IsolatorAspect","VariantsAspect","LoggerAspect","GraphqlAspect","UIAspect","BundlerAspect","AspectLoaderAspect","EnvsAspect","GlobalConfigAspect","Slot","withType","CapsuleCmd","CapsuleListCmd","CapsuleCreateCmd","CapsuleDeleteCmd","path","loadConsumerIfExist","WorkspaceAspect","addRuntime","_default"],"sources":["workspace.main.runtime.ts"],"sourcesContent":["import { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { BundlerAspect, BundlerMain } from '@teambit/bundler';\nimport { CLIAspect, MainRuntime, CLIMain, CommandList, Command } from '@teambit/cli';\nimport { ComponentAspect } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, Harmony, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { UIAspect, UiMain } from '@teambit/ui';\nimport { VariantsAspect } from '@teambit/variants';\nimport { GlobalConfigAspect, GlobalConfigMain } from '@teambit/global-config';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { ComponentMain, Component } from '@teambit/component';\nimport type { VariantsMain } from '@teambit/variants';\nimport { Consumer, loadConsumerIfExist } from '@teambit/legacy/dist/consumer';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { ComponentConfigLoadOptions } from '@teambit/legacy/dist/consumer/config';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport LegacyComponentLoader, { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { ComponentID } from '@teambit/component-id';\nimport { EXT_NAME } from './constants';\nimport { OnComponentAdd, OnComponentChange, OnComponentRemove, OnComponentLoad } from './on-component-events';\nimport { WorkspaceAspect } from './workspace.aspect';\nimport EjectConfCmd from './eject-conf.cmd';\nimport { WorkspaceExtConfig } from './types';\nimport { Workspace } from './workspace';\nimport getWorkspaceSchema from './workspace.graphql';\nimport { WorkspaceUIRoot } from './workspace.ui-root';\nimport { CapsuleCmd, CapsuleCreateCmd, CapsuleDeleteCmd, CapsuleListCmd } from './capsule.cmd';\nimport { EnvsSetCmd } from './envs-subcommands/envs-set.cmd';\nimport { EnvsUnsetCmd } from './envs-subcommands/envs-unset.cmd';\nimport { PatternCommand } from './pattern.cmd';\nimport { EnvsReplaceCmd } from './envs-subcommands/envs-replace.cmd';\nimport { ScopeSetCmd } from './scope-subcommands/scope-set.cmd';\nimport { UseCmd } from './use.cmd';\nimport { EnvsUpdateCmd } from './envs-subcommands/envs-update.cmd';\nimport { UnuseCmd } from './unuse.cmd';\n\nexport type WorkspaceDeps = [\n PubsubMain,\n CLIMain,\n ScopeMain,\n ComponentMain,\n IsolatorMain,\n DependencyResolverMain,\n VariantsMain,\n LoggerMain,\n GraphqlMain,\n UiMain,\n BundlerMain,\n AspectLoaderMain,\n EnvsMain,\n GlobalConfigMain\n];\n\nexport type OnComponentLoadSlot = SlotRegistry<OnComponentLoad>;\n\nexport type OnComponentChangeSlot = SlotRegistry<OnComponentChange>;\n\nexport type OnComponentAddSlot = SlotRegistry<OnComponentAdd>;\n\nexport type OnComponentRemoveSlot = SlotRegistry<OnComponentRemove>;\n\nexport type OnBitmapChange = () => Promise<void>;\nexport type OnBitmapChangeSlot = SlotRegistry<OnBitmapChange>;\n\nexport type OnWorkspaceConfigChange = () => Promise<void>;\nexport type OnWorkspaceConfigChangeSlot = SlotRegistry<OnWorkspaceConfigChange>;\n\nexport type OnAspectsResolve = (aspectsComponents: Component[]) => Promise<void>;\nexport type OnAspectsResolveSlot = SlotRegistry<OnAspectsResolve>;\n\nexport type OnRootAspectAdded = (aspectsId: ComponentID, inWs: boolean) => Promise<void>;\nexport type OnRootAspectAddedSlot = SlotRegistry<OnRootAspectAdded>;\n\nexport class WorkspaceMain {\n static runtime = MainRuntime;\n static dependencies = [\n PubsubAspect,\n CLIAspect,\n ScopeAspect,\n ComponentAspect,\n IsolatorAspect,\n DependencyResolverAspect,\n VariantsAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n BundlerAspect,\n AspectLoaderAspect,\n EnvsAspect,\n GlobalConfigAspect,\n ];\n static slots = [\n Slot.withType<OnComponentLoad>(),\n Slot.withType<OnComponentChange>(),\n Slot.withType<OnComponentAdd>(),\n Slot.withType<OnComponentRemove>(),\n Slot.withType<OnAspectsResolve>(),\n Slot.withType<OnRootAspectAdded>(),\n Slot.withType<OnBitmapChange>(),\n Slot.withType<OnWorkspaceConfigChange>(),\n ];\n static async provider(\n [\n pubsub,\n cli,\n scope,\n component,\n isolator,\n dependencyResolver,\n variants,\n loggerExt,\n graphql,\n ui,\n bundler,\n aspectLoader,\n envs,\n globalConfig,\n ]: WorkspaceDeps,\n config: WorkspaceExtConfig,\n [\n onComponentLoadSlot,\n onComponentChangeSlot,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n onBitmapChangeSlot,\n onWorkspaceConfigChangeSlot,\n ]: [\n OnComponentLoadSlot,\n OnComponentChangeSlot,\n OnComponentAddSlot,\n OnComponentRemoveSlot,\n OnAspectsResolveSlot,\n OnRootAspectAddedSlot,\n OnBitmapChangeSlot,\n OnWorkspaceConfigChangeSlot\n ],\n harmony: Harmony\n ) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const consumer = await getConsumer(bitConfig.cwd);\n if (!consumer) {\n const capsuleCmd = getCapsulesCommands(isolator, scope, undefined);\n cli.register(capsuleCmd);\n return undefined;\n }\n // TODO: get the 'workspace' name in a better way\n const logger = loggerExt.createLogger(EXT_NAME);\n const workspace = new Workspace(\n pubsub,\n config,\n consumer,\n scope,\n component,\n dependencyResolver,\n variants,\n aspectLoader,\n logger,\n undefined,\n harmony,\n onComponentLoadSlot,\n onComponentChangeSlot,\n envs,\n globalConfig,\n onComponentAddSlot,\n onComponentRemoveSlot,\n onAspectsResolveSlot,\n onRootAspectAddedSlot,\n graphql,\n onBitmapChangeSlot,\n onWorkspaceConfigChangeSlot\n );\n\n const configMergeFile = workspace.getConflictMergeFile();\n await configMergeFile.loadIfNeeded();\n\n const getWorkspacePolicyFromPackageJson = () => {\n const packageJson = workspace.consumer.packageJson?.packageJsonObject || {};\n const policyFromPackageJson = dependencyResolver.getWorkspacePolicyFromPackageJson(packageJson);\n return policyFromPackageJson;\n };\n\n /**\n * @deprecated\n * see workspace.getWorkspaceJsonConflictFromMergeConfig\n */\n const getWorkspacePolicyFromMergeConfig = () => {\n const wsConfigMerge = workspace.getWorkspaceJsonConflictFromMergeConfig();\n const policy = wsConfigMerge.data?.[DependencyResolverAspect.id]?.policy || {};\n ['dependencies', 'peerDependencies'].forEach((depField) => {\n if (!policy[depField]) return;\n policy[depField] = policy[depField].reduce((acc, current) => {\n acc[current.name] = current.version;\n return acc;\n }, {});\n });\n const wsPolicy = dependencyResolver.getWorkspacePolicyFromConfigObject(policy);\n return wsPolicy;\n };\n\n const getRootPolicy = () => {\n const pkgJsonPolicy = getWorkspacePolicyFromPackageJson();\n const configMergePolicy = getWorkspacePolicyFromMergeConfig();\n return dependencyResolver.mergeWorkspacePolices([pkgJsonPolicy, configMergePolicy]);\n };\n\n dependencyResolver.registerRootPolicy(getRootPolicy());\n\n consumer.onCacheClear.push(() => workspace.clearCache());\n\n LegacyComponentLoader.registerOnComponentLoadSubscriber(\n async (legacyComponent: ConsumerComponent, opts?: ComponentLoadOptions) => {\n if (opts?.originatedFromHarmony) return legacyComponent;\n const id = legacyComponent.id;\n const newComponent = await workspace.get(id, legacyComponent, true, true, opts);\n return newComponent.state._consumer;\n }\n );\n\n ConsumerComponent.registerOnComponentConfigLoading(EXT_NAME, async (id, loadOpts: ComponentConfigLoadOptions) => {\n const componentId = await workspace.resolveComponentId(id);\n // We call here directly workspace.scope.get instead of workspace.get because part of the workspace get is loading consumer component\n // which in turn run this event, which will make an infinite loop\n // This component from scope here are only used for merging the extensions with the workspace components\n const componentFromScope = await workspace.scope.get(componentId);\n const { extensions } = await workspace.componentExtensions(componentId, componentFromScope, undefined, loadOpts);\n const defaultScope = await workspace.componentDefaultScope(componentId);\n\n const extensionsWithLegacyIdsP = extensions.map(async (extension) => {\n const legacyEntry = extension.clone();\n if (legacyEntry.extensionId) {\n legacyEntry.newExtensionId = legacyEntry.extensionId;\n }\n\n return legacyEntry;\n });\n const extensionsWithLegacyIds = await Promise.all(extensionsWithLegacyIdsP);\n\n return {\n defaultScope,\n extensions: ExtensionDataList.fromArray(extensionsWithLegacyIds),\n };\n });\n\n const workspaceSchema = getWorkspaceSchema(workspace, graphql);\n ui.registerUiRoot(new WorkspaceUIRoot(workspace, bundler));\n ui.registerPreStart(async () => {\n return workspace.setComponentPathsRegExps();\n });\n graphql.register(workspaceSchema);\n const capsuleCmd = getCapsulesCommands(isolator, scope, workspace);\n const commands: CommandList = [\n new EjectConfCmd(workspace),\n capsuleCmd,\n new UseCmd(workspace),\n new UnuseCmd(workspace),\n ];\n\n commands.push(new PatternCommand(workspace));\n cli.register(...commands);\n component.registerHost(workspace);\n\n cli.registerOnStart(async (_hasWorkspace: boolean, currentCommand: string, commandObject?: Command) => {\n const hasSafeModeFlag = process.argv.includes('--safe-mode');\n if (hasSafeModeFlag || (commandObject && !commandObject.loadAspects)) {\n return;\n }\n if (currentCommand === 'install') {\n workspace.inInstallContext = true;\n }\n await workspace.importCurrentLaneIfMissing();\n logger.profile('workspace.registerOnStart');\n const loadAspectsOpts = {\n runSubscribers: false,\n skipDeps: !config.autoLoadAspectsDeps,\n };\n const aspects = await workspace.loadAspects(\n aspectLoader.getNotLoadedConfiguredExtensions(),\n undefined,\n 'teambit.workspace/workspace (cli.registerOnStart)',\n loadAspectsOpts\n );\n // clear aspect cache.\n const componentIds = await workspace.resolveMultipleComponentIds(aspects);\n componentIds.forEach((id) => {\n workspace.clearComponentCache(id);\n });\n logger.profile('workspace.registerOnStart');\n });\n\n // add sub-commands \"set\" and \"unset\" to envs command.\n const envsCommand = cli.getCommand('envs');\n envsCommand?.commands?.push(new EnvsSetCmd(workspace)); // bit envs set\n envsCommand?.commands?.push(new EnvsUnsetCmd(workspace)); // bit envs unset\n envsCommand?.commands?.push(new EnvsReplaceCmd(workspace)); // bit envs replace\n envsCommand?.commands?.push(new EnvsUpdateCmd(workspace)); // bit envs replace\n\n // add sub-command \"set\" to scope command.\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeSetCmd(workspace));\n\n return workspace;\n }\n static defineRuntime = 'browser';\n}\n\nfunction getCapsulesCommands(isolator: IsolatorMain, scope: ScopeMain, workspace?: Workspace) {\n const capsuleCmd = new CapsuleCmd(isolator, workspace, scope);\n capsuleCmd.commands = [\n new CapsuleListCmd(isolator, workspace, scope),\n new CapsuleCreateCmd(workspace, scope, isolator),\n new CapsuleDeleteCmd(isolator, scope, workspace),\n ];\n return capsuleCmd;\n}\n\n/**\n * don't use loadConsumer() here, which throws ConsumerNotFound because some commands don't require\n * the consumer to be available. such as, `bit init` or `bit list --remote`.\n * most of the commands do need the consumer. the legacy commands that need the consumer throw an\n * error when is missing. in the new/Harmony commands, such as `bis compile`, the workspace object\n * is passed to the provider, so before using it, make sure it exists.\n * keep in mind that you can't verify it in the provider itself, because the provider is running\n * always for all commands before anything else is happening.\n */\nasync function getConsumer(path?: string): Promise<Consumer | undefined> {\n return loadConsumerIfExist(path);\n}\n\nWorkspaceAspect.addRuntime(WorkspaceMain);\n\nexport default WorkspaceMain;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace",
3
- "version": "1.0.265",
3
+ "version": "1.0.267",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/workspace",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "workspace",
9
- "version": "1.0.265"
9
+ "version": "1.0.267"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -52,43 +52,43 @@
52
52
  "@teambit/explorer.ui.gallery.component-grid": "0.0.496",
53
53
  "@teambit/scopes.scope-id": "0.0.7",
54
54
  "@teambit/workspace.ui.empty-workspace": "0.0.508",
55
- "@teambit/component": "1.0.265",
56
- "@teambit/dependency-resolver": "1.0.265",
57
- "@teambit/envs": "1.0.265",
58
- "@teambit/logger": "0.0.956",
59
- "@teambit/scope": "1.0.265",
60
- "@teambit/graph": "1.0.265",
61
- "@teambit/cli": "0.0.863",
62
- "@teambit/isolator": "1.0.265",
63
- "@teambit/component-tree": "1.0.265",
55
+ "@teambit/component": "1.0.267",
56
+ "@teambit/dependency-resolver": "1.0.267",
57
+ "@teambit/envs": "1.0.267",
58
+ "@teambit/logger": "0.0.957",
59
+ "@teambit/scope": "1.0.267",
60
+ "@teambit/graph": "1.0.267",
61
+ "@teambit/cli": "0.0.864",
62
+ "@teambit/isolator": "1.0.267",
63
+ "@teambit/component-tree": "1.0.267",
64
64
  "@teambit/harmony.modules.resolved-component": "0.0.497",
65
- "@teambit/watcher": "1.0.265",
66
- "@teambit/aspect-loader": "1.0.265",
67
- "@teambit/config": "0.0.1016",
68
- "@teambit/global-config": "0.0.866",
65
+ "@teambit/watcher": "1.0.267",
66
+ "@teambit/aspect-loader": "1.0.267",
67
+ "@teambit/config": "0.0.1018",
68
+ "@teambit/global-config": "0.0.867",
69
69
  "@teambit/harmony.modules.requireable-component": "0.0.497",
70
70
  "@teambit/toolbox.modules.module-resolver": "0.0.7",
71
71
  "@teambit/workspace.modules.node-modules-linker": "0.0.172",
72
- "@teambit/graphql": "1.0.265",
73
- "@teambit/bundler": "1.0.265",
74
- "@teambit/pubsub": "1.0.265",
75
- "@teambit/ui": "1.0.265",
76
- "@teambit/variants": "0.0.1109",
72
+ "@teambit/graphql": "1.0.267",
73
+ "@teambit/bundler": "1.0.267",
74
+ "@teambit/pubsub": "1.0.267",
75
+ "@teambit/ui": "1.0.267",
76
+ "@teambit/variants": "0.0.1111",
77
77
  "@teambit/component-issues": "0.0.148",
78
78
  "@teambit/workspace.modules.match-pattern": "0.0.505",
79
79
  "@teambit/component.ui.component-drawer": "0.0.399",
80
80
  "@teambit/lanes.hooks.use-lane-components": "0.0.262",
81
81
  "@teambit/lanes.hooks.use-lanes": "0.0.264",
82
82
  "@teambit/lanes.ui.models.lanes-model": "0.0.216",
83
- "@teambit/command-bar": "1.0.265",
83
+ "@teambit/command-bar": "1.0.267",
84
84
  "@teambit/component.ui.component-filters.component-filter-context": "0.0.222",
85
85
  "@teambit/component.ui.component-filters.deprecate-filter": "0.0.220",
86
86
  "@teambit/component.ui.component-filters.env-filter": "0.0.228",
87
87
  "@teambit/component.ui.component-filters.show-main-filter": "0.0.213",
88
- "@teambit/sidebar": "1.0.265",
88
+ "@teambit/sidebar": "1.0.267",
89
89
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.508",
90
90
  "@teambit/component-descriptor": "0.0.419",
91
- "@teambit/deprecation": "1.0.265",
91
+ "@teambit/deprecation": "1.0.267",
92
92
  "@teambit/ui-foundation.ui.buttons.collapser": "0.0.219",
93
93
  "@teambit/cloud.hooks.use-cloud-scopes": "0.0.3",
94
94
  "@teambit/preview.ui.preview-placeholder": "0.0.518",