@teambit/preview 1.0.425 → 1.0.427

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,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <testsuites tests="1" failures="0" errors="0" skipped="0">
3
- <testsuite name="teambit.preview/preview@1.0.425" tests="1" failures="0" errors="0" skipped="0">
4
- <testcase classname="dist/bundler/create-peer-link.spec.js" name="should output snapshot" time="0.004"/>
3
+ <testsuite name="teambit.preview/preview@1.0.427" tests="1" failures="0" errors="0" skipped="0">
4
+ <testcase classname="dist/bundler/create-peer-link.spec.js" name="should output snapshot" time="0.005"/>
5
5
  </testsuite>
6
6
  </testsuites>
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.preview/preview-preview"]=t():e["teambit.preview/preview-preview"]=t()}(self,(()=>(()=>{"use strict";var e={99050:(e,t,n)=>{Object.defineProperty(t,"l",{enumerable:!0,get:function(){return o.default}});var o=r(n(53087));function r(e){return e&&e.__esModule?e:{default:e}}r.__bit_component={id:"teambit.preview/aspect-docs/preview@0.0.168",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0}},53087:(e,t,n)=>{var o={id:"teambit.preview/aspect-docs/preview@0.0.168",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0};Object.defineProperty(t,"__esModule",{value:!0}),t.default=m,a(n(41594));var r=n(5016),i=["components"];function a(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},s.apply(null,arguments)}function p(e,t){if(null==e)return{};var n,o,r=l(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function l(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}a.__bit_component=o,s.__bit_component=o,p.__bit_component=o,l.__bit_component=o;var d={},c="wrapper";function m(e){var t=e.components,n=p(e,i);return(0,r.mdx)(c,s({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The Preview aspect handles the bundling and rendering of component compositions and documentation, for the Workspace UI and Scope UI."),(0,r.mdx)("p",null,"Preview is used to display components in development (on ",(0,r.mdx)("inlineCode",{parentName:"p"},"bit start"),") as well as in their released versions (assets for the release version are generated as part of the build process)."),(0,r.mdx)("p",null,"The Preview aspect handles each component according to the configurations set by the environment that is used by that component. That means both the documentation and the component compositions will be bundled and displayed differently for different environments."),(0,r.mdx)("h2",null,"Rational"),(0,r.mdx)("p",null,"In a standard web application, UI components ",(0,r.mdx)("em",{parentName:"p"},"serving the same application")," are bundled together to produce the necessary assets to make them renderable by the browser."),(0,r.mdx)("p",null,"Components in a Bit workspace are not all in the service of the same application. Each component is authored, tagged and exported as an independent component.\nThat means a few things:"),(0,r.mdx)("ol",null,(0,r.mdx)("li",{parentName:"ol"},(0,r.mdx)("p",{parentName:"li"},"Components in a Bit workspace are not consumed ,directly or indirectly, by a single entry file (e.g, the app's ",(0,r.mdx)("inlineCode",{parentName:"p"},"index.js"),"). That makes it impossible for the bundler to follow the files needed to be bundled.")),(0,r.mdx)("li",{parentName:"ol"},(0,r.mdx)("p",{parentName:"li"},"Different components in a single workspace may be implemented using different technologies and bundled using different configurations or even different bundlers."))),(0,r.mdx)("p",null,"Preview solves the above challenges by creating a temporary entry file for each group of components using the same environment.\nIt then serves this file to the Bundler, to be bundled according to the environment and the purpose of bundling. That is, to display components in development or to display the components' release versions (for a \"production-level\" exhibition of the component's documentation and compositions)."),(0,r.mdx)("h2",null,"Usage"),(0,r.mdx)("h3",null,"Extending the Preview aspect"),(0,r.mdx)("p",null,"The preview aspect can be extended to generate other renderable artifacts , either when running Bit's development server or as part of the build pipeline (for a component's tagged version).\nThese artifacts can present additional information that assists in inspecting a component (for example, showing the results of accessibility tests)."))}m.__bit_component=o,m.isMDXComponent=!0},90890:(e,t,n)=>{var o={id:"teambit.preview/preview@1.0.425",homepage:"https://bit.cloud/teambit/preview/preview",exported:!0};function r(){const e=i(n(41594));return r=function(){return e},e}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Logo=void 0,r.__bit_component=o,i.__bit_component=o;const a=()=>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/preview.svg"}));a.__bit_component=o,t.Logo=a},5016:e=>{e.exports=MdxJsReact},41594:e=>{e.exports=React}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}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.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 o={};n.r(o),n.d(o,{compositions:()=>f,compositions_metadata:()=>b,overview:()=>v});var r={};n.r(r),n.d(r,{default:()=>u});var i=n(90890),a=(n(41594),n(5016));const s=TeambitMdxUiMdxScopeContext;var p=n(99050),l=["components"];function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},d.apply(null,arguments)}var c={},m="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({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,l);return(0,a.mdx)(m,d({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)(s.MDXScopeProvider,{components:{Preview:p.l},mdxType:"MDXScopeProvider"},(0,a.mdx)(p.l,{mdxType:"Preview"})))}u.isMDXComponent=!0;const f=[i],v=[r],b={compositions:[{displayName:"Logo",identifier:"Logo"}]};return o})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.preview/preview-preview"]=t():e["teambit.preview/preview-preview"]=t()}(self,(()=>(()=>{"use strict";var e={99050:(e,t,n)=>{Object.defineProperty(t,"l",{enumerable:!0,get:function(){return o.default}});var o=r(n(53087));function r(e){return e&&e.__esModule?e:{default:e}}r.__bit_component={id:"teambit.preview/aspect-docs/preview@0.0.168",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0}},53087:(e,t,n)=>{var o={id:"teambit.preview/aspect-docs/preview@0.0.168",homepage:"https://bit.cloud/teambit/preview/aspect-docs/preview",exported:!0};Object.defineProperty(t,"__esModule",{value:!0}),t.default=m,a(n(41594));var r=n(5016),i=["components"];function a(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},s.apply(null,arguments)}function p(e,t){if(null==e)return{};var n,o,r=l(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function l(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}a.__bit_component=o,s.__bit_component=o,p.__bit_component=o,l.__bit_component=o;var d={},c="wrapper";function m(e){var t=e.components,n=p(e,i);return(0,r.mdx)(c,s({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The Preview aspect handles the bundling and rendering of component compositions and documentation, for the Workspace UI and Scope UI."),(0,r.mdx)("p",null,"Preview is used to display components in development (on ",(0,r.mdx)("inlineCode",{parentName:"p"},"bit start"),") as well as in their released versions (assets for the release version are generated as part of the build process)."),(0,r.mdx)("p",null,"The Preview aspect handles each component according to the configurations set by the environment that is used by that component. That means both the documentation and the component compositions will be bundled and displayed differently for different environments."),(0,r.mdx)("h2",null,"Rational"),(0,r.mdx)("p",null,"In a standard web application, UI components ",(0,r.mdx)("em",{parentName:"p"},"serving the same application")," are bundled together to produce the necessary assets to make them renderable by the browser."),(0,r.mdx)("p",null,"Components in a Bit workspace are not all in the service of the same application. Each component is authored, tagged and exported as an independent component.\nThat means a few things:"),(0,r.mdx)("ol",null,(0,r.mdx)("li",{parentName:"ol"},(0,r.mdx)("p",{parentName:"li"},"Components in a Bit workspace are not consumed ,directly or indirectly, by a single entry file (e.g, the app's ",(0,r.mdx)("inlineCode",{parentName:"p"},"index.js"),"). That makes it impossible for the bundler to follow the files needed to be bundled.")),(0,r.mdx)("li",{parentName:"ol"},(0,r.mdx)("p",{parentName:"li"},"Different components in a single workspace may be implemented using different technologies and bundled using different configurations or even different bundlers."))),(0,r.mdx)("p",null,"Preview solves the above challenges by creating a temporary entry file for each group of components using the same environment.\nIt then serves this file to the Bundler, to be bundled according to the environment and the purpose of bundling. That is, to display components in development or to display the components' release versions (for a \"production-level\" exhibition of the component's documentation and compositions)."),(0,r.mdx)("h2",null,"Usage"),(0,r.mdx)("h3",null,"Extending the Preview aspect"),(0,r.mdx)("p",null,"The preview aspect can be extended to generate other renderable artifacts , either when running Bit's development server or as part of the build pipeline (for a component's tagged version).\nThese artifacts can present additional information that assists in inspecting a component (for example, showing the results of accessibility tests)."))}m.__bit_component=o,m.isMDXComponent=!0},81928:(e,t,n)=>{var o={id:"teambit.preview/preview@1.0.427",homepage:"https://bit.cloud/teambit/preview/preview",exported:!0};function r(){const e=i(n(41594));return r=function(){return e},e}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Logo=void 0,r.__bit_component=o,i.__bit_component=o;const a=()=>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/preview.svg"}));a.__bit_component=o,t.Logo=a},5016:e=>{e.exports=MdxJsReact},41594:e=>{e.exports=React}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}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.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 o={};n.r(o),n.d(o,{compositions:()=>f,compositions_metadata:()=>b,overview:()=>v});var r={};n.r(r),n.d(r,{default:()=>u});var i=n(81928),a=(n(41594),n(5016));const s=TeambitMdxUiMdxScopeContext;var p=n(99050),l=["components"];function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},d.apply(null,arguments)}var c={},m="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({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,l);return(0,a.mdx)(m,d({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)(s.MDXScopeProvider,{components:{Preview:p.l},mdxType:"MDXScopeProvider"},(0,a.mdx)(p.l,{mdxType:"Preview"})))}u.isMDXComponent=!0;const f=[i],v=[r],b={compositions:[{displayName:"Logo",identifier:"Logo"}]};return o})()));
@@ -167,16 +167,16 @@
167
167
  "__schema": "ParameterSchema",
168
168
  "location": {
169
169
  "filePath": "events/click-inside-an-iframe.ts",
170
- "line": 11,
171
- "character": 15
170
+ "line": 12,
171
+ "character": 5
172
172
  },
173
173
  "name": "timestamp",
174
174
  "type": {
175
175
  "__schema": "InferenceTypeSchema",
176
176
  "location": {
177
177
  "filePath": "events/click-inside-an-iframe.ts",
178
- "line": 11,
179
- "character": 15
178
+ "line": 12,
179
+ "character": 5
180
180
  },
181
181
  "type": "number"
182
182
  },
@@ -188,16 +188,16 @@
188
188
  "__schema": "ParameterSchema",
189
189
  "location": {
190
190
  "filePath": "events/click-inside-an-iframe.ts",
191
- "line": 11,
192
- "character": 48
191
+ "line": 13,
192
+ "character": 5
193
193
  },
194
194
  "name": "clickEvent",
195
195
  "type": {
196
196
  "__schema": "InferenceTypeSchema",
197
197
  "location": {
198
198
  "filePath": "events/click-inside-an-iframe.ts",
199
- "line": 11,
200
- "character": 48
199
+ "line": 13,
200
+ "character": 5
201
201
  },
202
202
  "type": "any"
203
203
  },
@@ -250,7 +250,7 @@
250
250
  "_legacy": {
251
251
  "scope": "teambit.preview",
252
252
  "name": "preview",
253
- "version": "1.0.425"
253
+ "version": "1.0.427"
254
254
  },
255
255
  "_scope": "teambit.preview"
256
256
  }
@@ -6032,7 +6032,7 @@
6032
6032
  "componentId": {
6033
6033
  "scope": "teambit.component",
6034
6034
  "name": "sources",
6035
- "version": "0.0.33"
6035
+ "version": "0.0.34"
6036
6036
  }
6037
6037
  }
6038
6038
  }
@@ -6227,16 +6227,16 @@
6227
6227
  "__schema": "ParameterSchema",
6228
6228
  "location": {
6229
6229
  "filePath": "rendering-context.ts",
6230
- "line": 7,
6231
- "character": 15
6230
+ "line": 8,
6231
+ "character": 5
6232
6232
  },
6233
6233
  "name": "contexts",
6234
6234
  "type": {
6235
6235
  "__schema": "TypeRefSchema",
6236
6236
  "location": {
6237
6237
  "filePath": "rendering-context.ts",
6238
- "line": 7,
6239
- "character": 33
6238
+ "line": 8,
6239
+ "character": 23
6240
6240
  },
6241
6241
  "name": "RenderingContextSlot",
6242
6242
  "internalFilePath": "preview.preview.runtime.tsx"
@@ -6248,16 +6248,16 @@
6248
6248
  "__schema": "ParameterSchema",
6249
6249
  "location": {
6250
6250
  "filePath": "rendering-context.ts",
6251
- "line": 7,
6252
- "character": 55
6251
+ "line": 9,
6252
+ "character": 5
6253
6253
  },
6254
6254
  "name": "options",
6255
6255
  "type": {
6256
6256
  "__schema": "TypeRefSchema",
6257
6257
  "location": {
6258
6258
  "filePath": "rendering-context.ts",
6259
- "line": 7,
6260
- "character": 72
6259
+ "line": 9,
6260
+ "character": 22
6261
6261
  },
6262
6262
  "name": "RenderingContextOptions"
6263
6263
  },
@@ -6281,14 +6281,14 @@
6281
6281
  "__schema": "FunctionLikeSchema",
6282
6282
  "location": {
6283
6283
  "filePath": "rendering-context.ts",
6284
- "line": 12,
6284
+ "line": 15,
6285
6285
  "character": 3
6286
6286
  },
6287
6287
  "doc": {
6288
6288
  "__schema": "DocSchema",
6289
6289
  "location": {
6290
6290
  "filePath": "rendering-context.ts",
6291
- "line": 9,
6291
+ "line": 12,
6292
6292
  "character": 3
6293
6293
  },
6294
6294
  "raw": "/**\n * obtain rendering context of a specific aspect.\n */",
@@ -6302,7 +6302,7 @@
6302
6302
  "__schema": "ParameterSchema",
6303
6303
  "location": {
6304
6304
  "filePath": "rendering-context.ts",
6305
- "line": 12,
6305
+ "line": 15,
6306
6306
  "character": 7
6307
6307
  },
6308
6308
  "name": "aspectId",
@@ -6310,7 +6310,7 @@
6310
6310
  "__schema": "KeywordTypeSchema",
6311
6311
  "location": {
6312
6312
  "filePath": "rendering-context.ts",
6313
- "line": 12,
6313
+ "line": 15,
6314
6314
  "character": 17
6315
6315
  },
6316
6316
  "name": "string"
@@ -6323,7 +6323,7 @@
6323
6323
  "__schema": "InferenceTypeSchema",
6324
6324
  "location": {
6325
6325
  "filePath": "rendering-context.ts",
6326
- "line": 12,
6326
+ "line": 15,
6327
6327
  "character": 3
6328
6328
  },
6329
6329
  "type": "{\n [key: string]: any;\n} | undefined"
@@ -6527,16 +6527,16 @@
6527
6527
  "__schema": "ParameterSchema",
6528
6528
  "location": {
6529
6529
  "filePath": "events/click-inside-an-iframe.ts",
6530
- "line": 11,
6531
- "character": 15
6530
+ "line": 12,
6531
+ "character": 5
6532
6532
  },
6533
6533
  "name": "timestamp",
6534
6534
  "type": {
6535
6535
  "__schema": "InferenceTypeSchema",
6536
6536
  "location": {
6537
6537
  "filePath": "events/click-inside-an-iframe.ts",
6538
- "line": 11,
6539
- "character": 15
6538
+ "line": 12,
6539
+ "character": 5
6540
6540
  },
6541
6541
  "type": "number"
6542
6542
  },
@@ -6548,16 +6548,16 @@
6548
6548
  "__schema": "ParameterSchema",
6549
6549
  "location": {
6550
6550
  "filePath": "events/click-inside-an-iframe.ts",
6551
- "line": 11,
6552
- "character": 48
6551
+ "line": 13,
6552
+ "character": 5
6553
6553
  },
6554
6554
  "name": "clickEvent",
6555
6555
  "type": {
6556
6556
  "__schema": "InferenceTypeSchema",
6557
6557
  "location": {
6558
6558
  "filePath": "events/click-inside-an-iframe.ts",
6559
- "line": 11,
6560
- "character": 48
6559
+ "line": 13,
6560
+ "character": 5
6561
6561
  },
6562
6562
  "type": "any"
6563
6563
  },
@@ -6610,7 +6610,7 @@
6610
6610
  "_legacy": {
6611
6611
  "scope": "teambit.preview",
6612
6612
  "name": "preview",
6613
- "version": "1.0.425"
6613
+ "version": "1.0.427"
6614
6614
  },
6615
6615
  "_scope": "teambit.preview"
6616
6616
  }
@@ -13263,7 +13263,7 @@
13263
13263
  "componentId": {
13264
13264
  "scope": "teambit.component",
13265
13265
  "name": "sources",
13266
- "version": "0.0.33"
13266
+ "version": "0.0.34"
13267
13267
  }
13268
13268
  }
13269
13269
  }
@@ -13559,16 +13559,16 @@
13559
13559
  "__schema": "ParameterSchema",
13560
13560
  "location": {
13561
13561
  "filePath": "rendering-context.ts",
13562
- "line": 7,
13563
- "character": 15
13562
+ "line": 8,
13563
+ "character": 5
13564
13564
  },
13565
13565
  "name": "contexts",
13566
13566
  "type": {
13567
13567
  "__schema": "TypeRefSchema",
13568
13568
  "location": {
13569
13569
  "filePath": "rendering-context.ts",
13570
- "line": 7,
13571
- "character": 33
13570
+ "line": 8,
13571
+ "character": 23
13572
13572
  },
13573
13573
  "name": "RenderingContextSlot",
13574
13574
  "internalFilePath": "preview.preview.runtime.tsx"
@@ -13580,16 +13580,16 @@
13580
13580
  "__schema": "ParameterSchema",
13581
13581
  "location": {
13582
13582
  "filePath": "rendering-context.ts",
13583
- "line": 7,
13584
- "character": 55
13583
+ "line": 9,
13584
+ "character": 5
13585
13585
  },
13586
13586
  "name": "options",
13587
13587
  "type": {
13588
13588
  "__schema": "TypeRefSchema",
13589
13589
  "location": {
13590
13590
  "filePath": "rendering-context.ts",
13591
- "line": 7,
13592
- "character": 72
13591
+ "line": 9,
13592
+ "character": 22
13593
13593
  },
13594
13594
  "name": "RenderingContextOptions"
13595
13595
  },
@@ -13613,14 +13613,14 @@
13613
13613
  "__schema": "FunctionLikeSchema",
13614
13614
  "location": {
13615
13615
  "filePath": "rendering-context.ts",
13616
- "line": 12,
13616
+ "line": 15,
13617
13617
  "character": 3
13618
13618
  },
13619
13619
  "doc": {
13620
13620
  "__schema": "DocSchema",
13621
13621
  "location": {
13622
13622
  "filePath": "rendering-context.ts",
13623
- "line": 9,
13623
+ "line": 12,
13624
13624
  "character": 3
13625
13625
  },
13626
13626
  "raw": "/**\n * obtain rendering context of a specific aspect.\n */",
@@ -13634,7 +13634,7 @@
13634
13634
  "__schema": "ParameterSchema",
13635
13635
  "location": {
13636
13636
  "filePath": "rendering-context.ts",
13637
- "line": 12,
13637
+ "line": 15,
13638
13638
  "character": 7
13639
13639
  },
13640
13640
  "name": "aspectId",
@@ -13642,7 +13642,7 @@
13642
13642
  "__schema": "KeywordTypeSchema",
13643
13643
  "location": {
13644
13644
  "filePath": "rendering-context.ts",
13645
- "line": 12,
13645
+ "line": 15,
13646
13646
  "character": 17
13647
13647
  },
13648
13648
  "name": "string"
@@ -13655,7 +13655,7 @@
13655
13655
  "__schema": "InferenceTypeSchema",
13656
13656
  "location": {
13657
13657
  "filePath": "rendering-context.ts",
13658
- "line": 12,
13658
+ "line": 15,
13659
13659
  "character": 3
13660
13660
  },
13661
13661
  "type": "{\n [key: string]: any;\n} | undefined"
@@ -13673,7 +13673,7 @@
13673
13673
  "componentId": {
13674
13674
  "scope": "teambit.preview",
13675
13675
  "name": "preview",
13676
- "version": "1.0.425"
13676
+ "version": "1.0.427"
13677
13677
  },
13678
13678
  "taggedModuleExports": []
13679
13679
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_pubsub","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ClickInsideAnIframeEventData","constructor","clickEvent","ClickInsideAnIframeEvent","BitBaseEvent","timestamp","Date","now","TYPE","exports"],"sources":["click-inside-an-iframe.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { BitBaseEvent } from '@teambit/pubsub';\n\nclass ClickInsideAnIframeEventData {\n constructor(private clickEvent: any) {}\n}\n\nexport class ClickInsideAnIframeEvent extends BitBaseEvent<ClickInsideAnIframeEventData> {\n static readonly TYPE = 'click-inside-an-iframe';\n\n constructor(readonly timestamp = Date.now(), readonly clickEvent) {\n super(ClickInsideAnIframeEvent.TYPE, '0.0.1', timestamp, new ClickInsideAnIframeEventData(clickEvent));\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA+C,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA,KAD/C;AAGA,MAAMgB,4BAA4B,CAAC;EACjCC,WAAWA,CAASC,UAAe,EAAE;IAAA,KAAjBA,UAAe,GAAfA,UAAe;EAAG;AACxC;AAEO,MAAMC,wBAAwB,SAASC,sBAAY,CAA+B;EAGvFH,WAAWA,CAAUI,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAWL,UAAU,EAAE;IAChE,KAAK,CAACC,wBAAwB,CAACK,IAAI,EAAE,OAAO,EAAEH,SAAS,EAAE,IAAIL,4BAA4B,CAACE,UAAU,CAAC,CAAC;IAAC,KADpFG,SAAS,GAATA,SAAS;IAAA,KAAwBH,UAAU,GAAVA,UAAU;EAEhE;AACF;AAACO,OAAA,CAAAN,wBAAA,GAAAA,wBAAA;AAAAtB,eAAA,CANYsB,wBAAwB,UACZ,wBAAwB","ignoreList":[]}
1
+ {"version":3,"names":["_pubsub","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ClickInsideAnIframeEventData","constructor","clickEvent","ClickInsideAnIframeEvent","BitBaseEvent","timestamp","Date","now","TYPE","exports"],"sources":["click-inside-an-iframe.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { BitBaseEvent } from '@teambit/pubsub';\n\nclass ClickInsideAnIframeEventData {\n constructor(private clickEvent: any) {}\n}\n\nexport class ClickInsideAnIframeEvent extends BitBaseEvent<ClickInsideAnIframeEventData> {\n static readonly TYPE = 'click-inside-an-iframe';\n\n constructor(\n readonly timestamp = Date.now(),\n readonly clickEvent\n ) {\n super(ClickInsideAnIframeEvent.TYPE, '0.0.1', timestamp, new ClickInsideAnIframeEventData(clickEvent));\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA+C,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA,KAD/C;AAGA,MAAMgB,4BAA4B,CAAC;EACjCC,WAAWA,CAASC,UAAe,EAAE;IAAA,KAAjBA,UAAe,GAAfA,UAAe;EAAG;AACxC;AAEO,MAAMC,wBAAwB,SAASC,sBAAY,CAA+B;EAGvFH,WAAWA,CACAI,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EACtBL,UAAU,EACnB;IACA,KAAK,CAACC,wBAAwB,CAACK,IAAI,EAAE,OAAO,EAAEH,SAAS,EAAE,IAAIL,4BAA4B,CAACE,UAAU,CAAC,CAAC;IAAC,KAH9FG,SAAS,GAATA,SAAS;IAAA,KACTH,UAAU,GAAVA,UAAU;EAGrB;AACF;AAACO,OAAA,CAAAN,wBAAA,GAAAA,wBAAA;AAAAtB,eAAA,CATYsB,wBAAwB,UACZ,wBAAwB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","require","_builder","_preBundleUtils","_preBundle","_preview","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BUNDLE_TASK_NAME","exports","BUNDLE_DIR","PreBundlePreviewTask","constructor","ui","logger","PreviewAspect","id","execute","context","capsule","capsuleNetwork","seedersCapsules","find","c","component","toStringWithoutVersion","componentsResults","outputPath","join","path","CAPSULE_ARTIFACTS_DIR","info","uiRoot","getUi","resolvedAspects","resolveAspects","RUNTIME_NAME","buildPreBundlePreview","generateHash","error","Error","artifacts","getBundleArtifactDef","maybeUiRoot","generateBundleHash"],"sources":["pre-bundle.task.ts"],"sourcesContent":["import { join } from 'path';\nimport { BuildContext, BuildTask, BuiltTaskResult, CAPSULE_ARTIFACTS_DIR, TaskLocation } from '@teambit/builder';\nimport { Capsule } from '@teambit/isolator';\nimport { Logger } from '@teambit/logger';\nimport { UIRoot, UiMain } from '@teambit/ui';\nimport { generateBundleHash, getBundleArtifactDef } from './pre-bundle-utils';\nimport { RUNTIME_NAME, buildPreBundlePreview } from './pre-bundle';\nimport { PreviewAspect } from './preview.aspect';\n\nexport const BUNDLE_TASK_NAME = 'PreBundlePreview';\nexport const BUNDLE_DIR = 'ui-bundle';\n\nexport class PreBundlePreviewTask implements BuildTask {\n aspectId = PreviewAspect.id;\n name = BUNDLE_TASK_NAME;\n location: TaskLocation = 'end';\n\n constructor(private ui: UiMain, private logger: Logger) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const capsule: Capsule | undefined = context.capsuleNetwork.seedersCapsules.find(\n (c) => c.component.id.toStringWithoutVersion() === PreviewAspect.id\n );\n if (!capsule) {\n return { componentsResults: [] };\n }\n\n try {\n const outputPath = join(capsule.path, CAPSULE_ARTIFACTS_DIR, BUNDLE_DIR);\n this.logger.info(`Generating UI bundle at ${outputPath}...`);\n const [, uiRoot] = this.ui.getUi() as [string, UIRoot];\n const resolvedAspects = await uiRoot.resolveAspects(RUNTIME_NAME);\n await buildPreBundlePreview(resolvedAspects, outputPath);\n await this.generateHash(outputPath);\n } catch (error) {\n this.logger.error('Generating UI bundle failed', error);\n throw new Error('Generating UI bundle failed');\n }\n\n return {\n componentsResults: [],\n artifacts: [getBundleArtifactDef(BUNDLE_DIR, '')],\n };\n }\n\n private async generateHash(outputPath: string): Promise<void> {\n const maybeUiRoot = this.ui.getUi();\n if (!maybeUiRoot) throw new Error('no uiRoot found');\n\n const [, uiRoot] = maybeUiRoot;\n await generateBundleHash(uiRoot, RUNTIME_NAME, outputPath);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","require","_builder","_preBundleUtils","_preBundle","_preview","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BUNDLE_TASK_NAME","exports","BUNDLE_DIR","PreBundlePreviewTask","constructor","ui","logger","PreviewAspect","id","execute","context","capsule","capsuleNetwork","seedersCapsules","find","c","component","toStringWithoutVersion","componentsResults","outputPath","join","path","CAPSULE_ARTIFACTS_DIR","info","uiRoot","getUi","resolvedAspects","resolveAspects","RUNTIME_NAME","buildPreBundlePreview","generateHash","error","Error","artifacts","getBundleArtifactDef","maybeUiRoot","generateBundleHash"],"sources":["pre-bundle.task.ts"],"sourcesContent":["import { join } from 'path';\nimport { BuildContext, BuildTask, BuiltTaskResult, CAPSULE_ARTIFACTS_DIR, TaskLocation } from '@teambit/builder';\nimport { Capsule } from '@teambit/isolator';\nimport { Logger } from '@teambit/logger';\nimport { UIRoot, UiMain } from '@teambit/ui';\nimport { generateBundleHash, getBundleArtifactDef } from './pre-bundle-utils';\nimport { RUNTIME_NAME, buildPreBundlePreview } from './pre-bundle';\nimport { PreviewAspect } from './preview.aspect';\n\nexport const BUNDLE_TASK_NAME = 'PreBundlePreview';\nexport const BUNDLE_DIR = 'ui-bundle';\n\nexport class PreBundlePreviewTask implements BuildTask {\n aspectId = PreviewAspect.id;\n name = BUNDLE_TASK_NAME;\n location: TaskLocation = 'end';\n\n constructor(\n private ui: UiMain,\n private logger: Logger\n ) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const capsule: Capsule | undefined = context.capsuleNetwork.seedersCapsules.find(\n (c) => c.component.id.toStringWithoutVersion() === PreviewAspect.id\n );\n if (!capsule) {\n return { componentsResults: [] };\n }\n\n try {\n const outputPath = join(capsule.path, CAPSULE_ARTIFACTS_DIR, BUNDLE_DIR);\n this.logger.info(`Generating UI bundle at ${outputPath}...`);\n const [, uiRoot] = this.ui.getUi() as [string, UIRoot];\n const resolvedAspects = await uiRoot.resolveAspects(RUNTIME_NAME);\n await buildPreBundlePreview(resolvedAspects, outputPath);\n await this.generateHash(outputPath);\n } catch (error) {\n this.logger.error('Generating UI bundle failed', error);\n throw new Error('Generating UI bundle failed');\n }\n\n return {\n componentsResults: [],\n artifacts: [getBundleArtifactDef(BUNDLE_DIR, '')],\n };\n }\n\n private async generateHash(outputPath: string): Promise<void> {\n const maybeUiRoot = this.ui.getUi();\n if (!maybeUiRoot) throw new Error('no uiRoot found');\n\n const [, uiRoot] = maybeUiRoot;\n await generateBundleHash(uiRoot, RUNTIME_NAME, outputPath);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.425/dist/preview.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.425/dist/preview.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.427/dist/preview.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.preview_preview@1.0.427/dist/preview.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1 +1 @@
1
- {"version":3,"names":["_builder","data","require","_bundler","_pubsub","_cli","_component","_envs","_harmony","_ui","_cache","_constants","_bitError","_objectHash","_interopRequireDefault","_lodash","_fsExtra","_path","_pkg","_aspectLoader","_workspace","_logger","_dependencyResolver","_component2","_watcher","_graphql","_scope","_harmonyModules","_exceptions","_generateLink","_previewArtifact","_preview","_preview2","_preview3","_strategies","_executionRef","_preview4","_envPreviewTemplate","_envTemplate","_componentPreview","_preview5","_previewAssets","_preview6","_preBundle","_preBundle2","_preBundleUtils","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","noopResult","results","toString","DEFAULT_TEMP_DIR","join","CACHE_ROOT","PreviewAspect","id","PreviewMain","constructor","harmony","previewSlot","ui","cache","envs","componentAspect","pkg","aspectLoader","config","bundlingStrategySlot","builder","workspace","logger","dependencyResolver","Map","Date","now","c","updater","env","getEnv","envId","executionRef","executionRefs","get","warn","updateLinkFiles","currentComponents","executionCtx","cId","component","components","found","Promise","resolve","handleComponentChange","remove","tempFolder","getTempDir","getComponentBundleSize","getDataByAspect","undefined","COMPONENT_STRATEGY_SIZE_KEY_NAME","getPreview","artifacts","getArtifactsVinylByAspectAndTaskName","PREVIEW_TASK_NAME","PreviewArtifact","getPreviewFiles","isBundledWithEnv","files","getPaths","getPreviewAspectConfig","state","aspects","getPreviewData","previewData","doesEnvIncludesOnlyOverview","envComponent","supportsOnlyOverview","doesEnvUseNameParam","supportsUseNameParam","calculateIncludeOnlyOverview","isUsingCoreEnv","getEnvComponent","calculateUseNameParam","calcPreviewData","doesScaling","calcDoesScalingForComponent","dataFromEnv","calcPreviewDataFromEnv","envData","calculateDataForEnvComponent","onlyOverview","useNameParam","toStringWithoutVersion","strategyName","COMPONENT_PREVIEW_STRATEGY_NAME","splitComponentBundle","envPreviewConfig","getEnvPreviewConfig","isEnv","previewAspectConfig","isScaling","calcIsBundledWithEnv","envPreviewData","isBundledWithEnvBackward","ENV_PREVIEW_STRATEGY_NAME","getArtifactsVinylByAspectAndName","COMPONENT_STRATEGY_ARTIFACT_NAME","isNew","isEnvSupportScaling","inWorkspace","hasId","envSupportScaling","calculateIsEnvSupportScaling","isSupportSkipIncludes","isFeatureEnabled","ONLY_OVERVIEW","isCore","skipIncludes","getOnlyOverview","getUseNameParam","isLegacyHeader","ENV_WITH_LEGACY_DOCS","ENV_STRATEGY_ARTIFACT_NAME","envType","getEnvData","type","includes","getEnvTemplate","GENERATE_ENV_TEMPLATE_TASK_NAME","getCoreEnvTemplate","coreEnvDir","getAspectDir","artifactDef","getEnvTemplateArtifactDef","artifactFactory","ArtifactFactory","rootDir","getRootDir","existsSync","coreEnvDirFromBvm","getAspectDirFromBvm","paths","resolvePaths","artifactFiles","ArtifactFiles","populateVinylsFromPaths","vinyls","getEnvTemplateFromComponentEnv","getEnvId","getEnvTemplateByEnvId","isCoreEnv","host","getHost","resolvedEnvId","resolveComponentId","BitError","getDefs","values","ensureTempPackage","workspacePath","path","tempPackageDir","ensureDirSync","writeJSONSync","name","writeFileSync","writeLink","prefix","moduleMap","mainModulesMap","dirName","isSplitComponentBundle","contents","generateLink","writeLinkContents","targetDir","hash","objectHash","targetPath","timestamp","writeHash","set","getPreviewTarget","context","relatedContexts","ctxId","ExecutionRef","previewRuntime","writePreviewEntry","linkFiles","aspectsIdsToNotFilterOut","rebuild","skipUiBuild","runtimeOptions","uiRoot","getUi","cacheKey","RUNTIME_NAME","currentBundleHash","createBundleHash","preBundleHash","readBundleHash","BUNDLE_DIR","workspaceBundleDir","PUBLIC_DIR","lastBundleHash","bundlePath","getBundlePath","resolvedAspects","resolveAspects","PreviewRuntime","filteredAspects","filterAspectsByExecutionContext","buildPreBundlePreview","generateBundlePreviewEntry","toObject","previews","map","previewDef","defaultTemplatePath","renderTemplatePathByEnv","visitedEnvs","Set","envDefinition","getModuleMap","withPathsP","asyncMap","envDef","environment","has","modulePath","add","compilerInstance","getCompiler","getPreviewComponentRootPath","getRuntimeModulePath","file","distRelativePath","getDistPathBySrcPath","relative","withPaths","dirPath","mkdirSync","recursive","link","all","writePreviewRuntime","filePath","generateRoot","runtimeName","componentIds","opts","root","MainRuntime","Error","allComponentContextAspects","reduce","acc","curr","concat","ids","hostAspects","allAspectsToInclude","uniq","filtered","aspect","getId","isCoreAspect","getDefaultStrategies","EnvBundlingStrategy","ComponentBundlingStrategy","getPreviewConfig","getBundlingStrategy","defaultStrategies","strategyFromEnv","bundlingStrategy","strategies","selected","find","strategy","BundlingStrategyNotFound","registerBundlingStrategy","register","registerDefinition","provider","bundler","componentExtension","uiMain","pubsub","loggerMain","graphql","watcher","scope","createLogger","preview","registerStartPlugin","PreviewStartPlugin","registerRoute","PreviewRoute","ComponentPreviewRoute","EnvTemplateRoute","PreviewAssetsRoute","registerTarget","entry","bind","disabled","registerBuildTasks","EnvPreviewTemplateTask","PreviewTask","PreBundlePreviewTask","registerOnComponentAdd","registerOnComponentLoad","registerOnComponentChange","update","registerOnComponentRemove","handleComponentRemoval","registerOnCompAspectReCalc","registerService","PreviewService","previewSchema","exports","Slot","withType","BundlerAspect","BuilderAspect","ComponentAspect","UIAspect","CacheAspect","EnvsAspect","WorkspaceAspect","PkgAspect","PubsubAspect","AspectLoaderAspect","LoggerAspect","DependencyResolverAspect","GraphqlAspect","WatcherAspect","ScopeAspect","addRuntime"],"sources":["preview.main.runtime.ts"],"sourcesContent":["import { ArtifactFactory, BuilderAspect } from '@teambit/builder';\nimport type { BuilderMain } from '@teambit/builder';\nimport { Asset, BundlerAspect, BundlerMain } from '@teambit/bundler';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport { MainRuntime } from '@teambit/cli';\nimport {\n Component,\n ComponentAspect,\n ComponentMain,\n ComponentMap,\n ComponentID,\n ResolveAspectsOptions,\n} from '@teambit/component';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { EnvsMain, ExecutionContext, PreviewEnv } from '@teambit/envs';\nimport { Slot, SlotRegistry, Harmony } from '@teambit/harmony';\nimport { UIAspect, UiMain, UIRoot } from '@teambit/ui';\nimport { CacheAspect, CacheMain } from '@teambit/cache';\nimport { CACHE_ROOT } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport objectHash from 'object-hash';\nimport { uniq } from 'lodash';\nimport { writeFileSync, existsSync, mkdirSync, ensureDirSync, writeJSONSync } from 'fs-extra';\nimport { join } from 'path';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport { AspectLoaderAspect, getAspectDir, getAspectDirFromBvm } from '@teambit/aspect-loader';\nimport type { AspectDefinition, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ArtifactFiles } from '@teambit/component.sources';\nimport { WatcherAspect, WatcherMain } from '@teambit/watcher';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { ONLY_OVERVIEW, isFeatureEnabled } from '@teambit/harmony.modules.feature-toggle';\nimport { BundlingStrategyNotFound } from './exceptions';\nimport { generateLink, MainModulesMap } from './generate-link';\nimport { PreviewArtifact } from './preview-artifact';\nimport { PreviewDefinition } from './preview-definition';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { PreviewRoute } from './preview.route';\nimport { PreviewTask, PREVIEW_TASK_NAME } from './preview.task';\nimport { BundlingStrategy } from './bundling-strategy';\nimport {\n EnvBundlingStrategy,\n ComponentBundlingStrategy,\n COMPONENT_STRATEGY_ARTIFACT_NAME,\n COMPONENT_STRATEGY_SIZE_KEY_NAME,\n ENV_PREVIEW_STRATEGY_NAME,\n ENV_STRATEGY_ARTIFACT_NAME,\n COMPONENT_PREVIEW_STRATEGY_NAME,\n} from './strategies';\nimport { ExecutionRef } from './execution-ref';\nimport { PreviewStartPlugin } from './preview.start-plugin';\nimport {\n EnvPreviewTemplateTask,\n GENERATE_ENV_TEMPLATE_TASK_NAME,\n getArtifactDef as getEnvTemplateArtifactDef,\n} from './env-preview-template.task';\nimport { EnvTemplateRoute } from './env-template.route';\nimport { ComponentPreviewRoute } from './component-preview.route';\nimport { previewSchema } from './preview.graphql';\nimport { PreviewAssetsRoute } from './preview-assets.route';\nimport { PreviewService } from './preview.service';\nimport { PUBLIC_DIR, RUNTIME_NAME, buildPreBundlePreview, generateBundlePreviewEntry } from './pre-bundle';\nimport { BUNDLE_DIR, PreBundlePreviewTask } from './pre-bundle.task';\nimport { createBundleHash, getBundlePath, readBundleHash } from './pre-bundle-utils';\n\nconst noopResult = {\n results: [],\n toString: () => `updating link file`,\n};\n\nconst DEFAULT_TEMP_DIR = join(CACHE_ROOT, PreviewAspect.id);\n\nexport type PreviewDefinitionRegistry = SlotRegistry<PreviewDefinition>;\n\nexport type PreviewStrategyName = 'env' | 'component';\n\nexport type PreviewFiles = {\n files: string[];\n isBundledWithEnv: boolean;\n};\n\nexport type ComponentPreviewSizedFile = Asset;\n\nexport type ComponentPreviewSize = {\n files: ComponentPreviewSizedFile[];\n assets: ComponentPreviewSizedFile[];\n totalFiles: number;\n compressedTotalFiles?: number;\n totalAssets: number;\n compressedTotalAssets?: number;\n total: number;\n compressedTotal?: number;\n};\n\nexport type ComponentPreviewMetaData = {\n size?: ComponentPreviewSize;\n};\n\nexport type PreviewVariantConfig = {\n isScaling?: boolean;\n};\n\n/**\n * Preview data that stored on the component on load\n */\nexport type PreviewComponentData = PreviewAnyComponentData & PreviewEnvComponentData;\n\n/**\n * Preview data that stored on the component on load for any component\n */\nexport type PreviewAnyComponentData = {\n doesScaling?: boolean;\n /**\n * The strategy configured by the component's env\n */\n strategyName?: PreviewStrategyName;\n /**\n * Does the component has a bundle for the component itself (separated from the compositions/docs)\n * Calculated by the component's env\n */\n splitComponentBundle?: boolean;\n\n /**\n * don't allow other aspects implementing a preview definition to be included in your preview.\n */\n onlyOverview?: boolean;\n\n /**\n * use name query params to select a specific composition to render.\n */\n useNameParam?: boolean;\n\n /**\n * don't allow other aspects implementing a preview definition to be included in your preview.\n */\n skipIncludes?: boolean;\n};\n\n/**\n * Preview data that stored on the component on load if the component is an env\n */\nexport type PreviewEnvComponentData = {\n isScaling?: boolean;\n supportsOnlyOverview?: boolean;\n supportsUseNameParam?: boolean;\n};\n\nexport type PreviewConfig = {\n bundlingStrategy?: string;\n disabled: boolean;\n /**\n * limit concurrent components when running the bundling step for your bundler during generate components preview task.\n * this helps mitigate large memory consumption for the build pipeline. This may increase the overall time for the generate-preview task, but reduce memory footprint.\n * default - no limit.\n */\n maxChunkSize?: number;\n onlyOverview?: boolean;\n};\n\nexport type EnvPreviewConfig = {\n strategyName?: PreviewStrategyName;\n splitComponentBundle?: boolean;\n};\n\nexport type BundlingStrategySlot = SlotRegistry<BundlingStrategy>;\n\nexport type GenerateLinkFn = (prefix: string, componentMap: ComponentMap<string[]>, defaultModule?: string) => string;\n\nexport class PreviewMain {\n constructor(\n /**\n * harmony context.\n */\n private harmony: Harmony,\n\n /**\n * slot for preview definitions.\n */\n private previewSlot: PreviewDefinitionRegistry,\n\n private ui: UiMain,\n\n private cache: CacheMain,\n\n private envs: EnvsMain,\n\n private componentAspect: ComponentMain,\n\n private pkg: PkgMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly config: PreviewConfig,\n\n private bundlingStrategySlot: BundlingStrategySlot,\n\n private builder: BuilderMain,\n\n private workspace: Workspace | undefined,\n\n private logger: Logger,\n\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n get tempFolder(): string {\n return this.workspace?.getTempDir(PreviewAspect.id) || DEFAULT_TEMP_DIR;\n }\n\n getComponentBundleSize(component: Component): ComponentPreviewSize | undefined {\n const data = this.builder.getDataByAspect(component, PreviewAspect.id);\n\n if (!data) return undefined;\n return data[COMPONENT_STRATEGY_SIZE_KEY_NAME];\n }\n\n async getPreview(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByAspectAndTaskName(\n component,\n PreviewAspect.id,\n PREVIEW_TASK_NAME\n );\n if (!artifacts) return undefined;\n return new PreviewArtifact(artifacts);\n }\n\n /**\n * Get a list of all the artifact files generated during the GeneratePreview task\n * @param component\n * @returns\n */\n async getPreviewFiles(component: Component): Promise<PreviewFiles | undefined> {\n const artifacts = await this.getPreview(component);\n const isBundledWithEnv = await this.isBundledWithEnv(component);\n if (!artifacts) return undefined;\n return {\n files: artifacts.getPaths(),\n isBundledWithEnv,\n };\n }\n\n /**\n * Get the preview config of the component.\n * (config that was set by variants or on bitmap)\n * @param component\n * @returns\n */\n getPreviewAspectConfig(component: Component): PreviewVariantConfig | undefined {\n return component.state.aspects.get(PreviewAspect.id)?.config;\n }\n\n /**\n * Get the preview data of the component.\n * (data that was calculated during the on load process)\n * @param component\n * @returns\n */\n getPreviewData(component: Component): PreviewComponentData | undefined {\n const previewData = component.state.aspects.get(PreviewAspect.id)?.data;\n return previewData;\n }\n\n /**\n * check if the current version of env component supports skipping other included previews\n * @param envComponent\n * @returns\n */\n doesEnvIncludesOnlyOverview(envComponent: Component): boolean {\n const previewData = this.getPreviewData(envComponent);\n return !!previewData?.supportsOnlyOverview;\n }\n\n /**\n * check if the current version of env component supports name query param\n * @param envComponent\n * @returns\n */\n doesEnvUseNameParam(envComponent: Component): boolean {\n const previewData = this.getPreviewData(envComponent);\n return !!previewData?.supportsUseNameParam;\n }\n\n private async calculateIncludeOnlyOverview(component: Component): Promise<boolean> {\n if (this.envs.isUsingCoreEnv(component)) {\n return true;\n }\n const envComponent = await this.envs.getEnvComponent(component);\n return this.doesEnvIncludesOnlyOverview(envComponent);\n }\n\n private async calculateUseNameParam(component: Component): Promise<boolean> {\n if (this.envs.isUsingCoreEnv(component)) {\n return true;\n }\n const envComponent = await this.envs.getEnvComponent(component);\n return this.doesEnvUseNameParam(envComponent);\n }\n\n /**\n * Calculate preview data on component load\n * @param component\n * @returns\n */\n async calcPreviewData(component: Component): Promise<PreviewComponentData> {\n const doesScaling = await this.calcDoesScalingForComponent(component);\n const dataFromEnv = await this.calcPreviewDataFromEnv(component);\n const envData = (await this.calculateDataForEnvComponent(component)) || {};\n const onlyOverview = await this.calculateIncludeOnlyOverview(component);\n const useNameParam = await this.calculateUseNameParam(component);\n\n const data: PreviewComponentData = {\n doesScaling,\n onlyOverview,\n useNameParam,\n ...dataFromEnv,\n ...envData,\n };\n return data;\n }\n\n /**\n * Calculate preview data on component that configured by its env\n * @param component\n * @returns\n */\n async calcPreviewDataFromEnv(\n component: Component\n ): Promise<Omit<PreviewAnyComponentData, 'doesScaling' | 'onlyOverview' | 'useNameParam'> | undefined> {\n // Prevent infinite loop that caused by the fact that the env of the aspect env or the env env is the same as the component\n // so we can't load it since during load we are trying to get env component and load it again\n if (\n component.id.toStringWithoutVersion() === 'teambit.harmony/aspect' ||\n component.id.toStringWithoutVersion() === 'teambit.envs/env'\n ) {\n return {\n strategyName: COMPONENT_PREVIEW_STRATEGY_NAME,\n splitComponentBundle: false,\n };\n }\n\n const env = this.envs.getEnv(component).env;\n const envPreviewConfig = this.getEnvPreviewConfig(env);\n const data = {\n strategyName: envPreviewConfig?.strategyName,\n splitComponentBundle: envPreviewConfig?.splitComponentBundle ?? false,\n };\n return data;\n }\n\n /**\n * calculate extra preview data for env components (on load)\n * @param envComponent\n * @returns\n */\n private async calculateDataForEnvComponent(envComponent: Component): Promise<PreviewEnvComponentData | undefined> {\n const isEnv = this.envs.isEnv(envComponent);\n\n // If the component is not an env, we don't want to store anything in the data\n if (!isEnv) return undefined;\n\n const previewAspectConfig = this.getPreviewAspectConfig(envComponent);\n\n const data = {\n // default to true if the env doesn't have a preview config\n isScaling: previewAspectConfig?.isScaling ?? true,\n supportsOnlyOverview: true,\n supportsUseNameParam: true,\n };\n return data;\n }\n\n /**\n * Check if the component preview bundle contain the env as part of the bundle or only the component code\n * (we used in the past to bundle them together, there might also be specific envs which still uses the env strategy)\n * This should be used only for calculating the value on load.\n * otherwise, use the isBundledWithEnv function\n * @param component\n * @returns\n */\n async calcIsBundledWithEnv(component: Component): Promise<boolean> {\n const envPreviewData = await this.calcPreviewDataFromEnv(component);\n return envPreviewData?.strategyName !== 'component';\n }\n\n /**\n * Check if the component preview bundle contain the env as part of the bundle or only the component code\n * (we used in the past to bundle them together, there might also be specific envs which still uses the env strategy)\n * @param component\n * @returns\n */\n async isBundledWithEnv(component: Component): Promise<boolean> {\n const data = await this.getPreviewData(component);\n // For components that tagged in the past we didn't store the data, so we calculate it the old way\n // We comparing the strategyName to undefined to cover a specific case when it doesn't exist at all.\n if (!data || data.strategyName === undefined) return this.isBundledWithEnvBackward(component);\n return data.strategyName === ENV_PREVIEW_STRATEGY_NAME;\n }\n\n /**\n * This is a legacy calculation for the isBundledWithEnv\n * This calc is based on the component artifacts which is very expensive operation as it requires to fetch and load the artifacts\n * See the new implementation in the isBundledWithEnv method\n * @param component\n * @returns\n */\n private async isBundledWithEnvBackward(component: Component): Promise<boolean> {\n const artifacts = await this.builder.getArtifactsVinylByAspectAndName(\n component,\n PreviewAspect.id,\n COMPONENT_STRATEGY_ARTIFACT_NAME\n );\n if (!artifacts || !artifacts.length) return true;\n\n return false;\n }\n\n // This used on component load to calc the final result of support is scaling for a given component\n // This calc based on the env, env data, env preview config and more\n // if you want to get the final result use the `doesScaling` method below\n // This should be used only for component load\n private async calcDoesScalingForComponent(component: Component): Promise<boolean> {\n const isBundledWithEnv = await this.calcIsBundledWithEnv(component);\n // if it's a core env and the env template is apart from the component it means the template bundle already contain the scaling functionality\n if (this.envs.isUsingCoreEnv(component)) {\n // If the component is new, no point to check the is bundle with env (there is no artifacts so it will for sure return false)\n // If it's new, and we are here, it means that we already use a version of the env that support scaling\n const isNew = await component.isNew();\n if (isNew) {\n return true;\n }\n return isBundledWithEnv === false;\n }\n // For envs that bundled with the env return true always\n if (isBundledWithEnv) {\n return true;\n }\n const envComponent = await this.envs.getEnvComponent(component);\n return this.isEnvSupportScaling(envComponent);\n }\n\n /**\n * can the current component preview scale in size for different preview sizes.\n * this calculation is based on the env of the component and if the env of the component support it.\n */\n async doesScaling(component: Component): Promise<boolean> {\n const inWorkspace = await this.workspace?.hasId(component.id);\n // Support case when we have the dev server for the env, in that case we calc the data of the env as we can't rely on the env data from the scope\n // since we bundle it for the dev server again\n if (inWorkspace) {\n // if it's a core env and the env template is apart from the component it means the template bundle already contain the scaling functionality\n if (this.envs.isUsingCoreEnv(component)) {\n const isBundledWithEnv = await this.isBundledWithEnv(component);\n // If the component is new, no point to check the is bundle with env (there is no artifacts so it will for sure return false)\n // If it's new, and we are here, it means that we already use a version of the env that support scaling\n const isNew = await component.isNew();\n if (isNew) {\n return true;\n }\n return isBundledWithEnv === false;\n }\n const envComponent = await this.envs.getEnvComponent(component);\n const envSupportScaling = await this.calculateIsEnvSupportScaling(envComponent);\n return envSupportScaling ?? true;\n }\n const previewData = this.getPreviewData(component);\n if (!previewData) return false;\n // Get the does scaling (the new calculation) or the old calc used in isScaling (between versions (about) 848 and 860)\n if (previewData.doesScaling !== undefined) return previewData.doesScaling;\n // in case this component were tagged with versions between 848 and 860 we need to use the old calculation\n // together with the env calculation\n // In that case it means the component already tagged, so we take the env calc from the env data and not re-calc it\n if (previewData.isScaling) {\n const envComponent = await this.envs.getEnvComponent(component);\n const envSupportScaling = this.isEnvSupportScaling(envComponent);\n return !!envSupportScaling;\n }\n return false;\n }\n\n /**\n * Check if the current version of the env support scaling\n * @param envComponent\n * @returns\n */\n isEnvSupportScaling(envComponent: Component): boolean {\n const previewData = this.getPreviewData(envComponent);\n return !!previewData?.isScaling;\n }\n\n async isSupportSkipIncludes(component: Component) {\n if (!this.config.onlyOverview && !isFeatureEnabled(ONLY_OVERVIEW)) return false;\n const isCore = this.envs.isUsingCoreEnv(component);\n if (isCore) return false;\n\n const envComponent = await this.envs.getEnvComponent(component);\n const previewData = this.getPreviewData(envComponent);\n return !!previewData?.skipIncludes;\n }\n\n /**\n * check if the component preview should only include the overview (skipping rendering of the compostions and properties table)\n */\n async getOnlyOverview(component: Component): Promise<boolean> {\n if (!this.config.onlyOverview && !isFeatureEnabled(ONLY_OVERVIEW)) return false;\n const previewData = this.getPreviewData(component);\n return previewData?.onlyOverview ?? false;\n }\n\n /**\n * check if the component preview should include the name query param\n */\n async getUseNameParam(component: Component): Promise<boolean> {\n const previewData = this.getPreviewData(component);\n return previewData?.useNameParam ?? false;\n }\n\n /**\n * This function is calculate the isScaling support flag for the component preview.\n * This is calculated only for the env component and not for the component itself.\n * It should be only used during the (env) component on load.\n * Once the component load, you should only use the `isEnvSupportScaling` to fetch it from the calculated data.\n * If you want to check if an env for a given component support scaling, use the `isScaling` function.\n * @param component\n * @returns\n */\n private async calculateIsEnvSupportScaling(envComponent: Component): Promise<boolean | undefined> {\n const isEnv = this.envs.isEnv(envComponent);\n // If the component is not an env, we don't want to store anything in the data\n if (!isEnv) return undefined;\n const previewAspectConfig = this.getPreviewAspectConfig(envComponent);\n // default to true if the env doesn't have a preview config\n return previewAspectConfig?.isScaling ?? true;\n }\n\n /**\n * Check if the component preview bundle contain the header inside of it (legacy)\n * today we are not including the header inside anymore\n * @param component\n * @returns\n */\n async isLegacyHeader(component: Component): Promise<boolean> {\n // these envs had header in their docs\n const ENV_WITH_LEGACY_DOCS = ['react', 'env', 'aspect', 'lit', 'html', 'node', 'mdx', 'react-native', 'readme'];\n\n const artifacts = await this.builder.getArtifactsVinylByAspectAndName(\n component,\n PreviewAspect.id,\n ENV_STRATEGY_ARTIFACT_NAME\n );\n const envType = this.envs.getEnvData(component).type;\n return !!artifacts && !!artifacts.length && ENV_WITH_LEGACY_DOCS.includes(envType || '');\n }\n\n /**\n * Getting the env template artifact\n * This should be called with the env itself or it will return undefined\n * If you want to get the env template from the env of the component,\n * use: getEnvTemplateFromComponentEnv below\n *\n * @param component\n * @returns\n */\n async getEnvTemplate(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByAspectAndTaskName(\n component,\n PreviewAspect.id,\n GENERATE_ENV_TEMPLATE_TASK_NAME\n );\n if (!artifacts || !artifacts.length) return undefined;\n\n return new PreviewArtifact(artifacts);\n }\n\n /**\n * This is a special method to get a core env template\n * As the core envs doesn't exist in the scope we need to bring it from other place\n * We will bring it from the core env package files\n */\n private async getCoreEnvTemplate(envId: string): Promise<PreviewArtifact | undefined> {\n const coreEnvDir = getAspectDir(envId);\n // const finalDir = join(coreEnvDir, getEnvTemplateArtifactDirectory());\n const artifactDef = getEnvTemplateArtifactDef()[0];\n const artifactFactory = new ArtifactFactory();\n\n let rootDir = artifactFactory.getRootDir(coreEnvDir, artifactDef);\n if (!existsSync(rootDir)) {\n // fallback to the bvm folder\n const coreEnvDirFromBvm = getAspectDirFromBvm(envId);\n rootDir = artifactFactory.getRootDir(coreEnvDirFromBvm, artifactDef);\n }\n if (!existsSync(rootDir)) {\n return undefined;\n }\n const paths = artifactFactory.resolvePaths(rootDir, artifactDef);\n if (!paths || !paths.length) {\n return undefined;\n }\n const artifactFiles = new ArtifactFiles(paths);\n\n artifactFiles.populateVinylsFromPaths(rootDir);\n return new PreviewArtifact(artifactFiles.vinyls);\n }\n\n /**\n * This will fetch the component env, then will take the env template from the component env\n * @param component\n */\n async getEnvTemplateFromComponentEnv(component: Component): Promise<PreviewArtifact | undefined> {\n const envId = this.envs.getEnvId(component);\n return this.getEnvTemplateByEnvId(envId);\n }\n\n /**\n * This will fetch the component env, then will take the env template from the component env\n * @param component\n */\n async getEnvTemplateByEnvId(envId: string): Promise<PreviewArtifact | undefined> {\n // Special treatment for core envs\n if (this.aspectLoader.isCoreEnv(envId)) {\n return this.getCoreEnvTemplate(envId);\n }\n const host = this.componentAspect.getHost();\n const resolvedEnvId = await host.resolveComponentId(envId);\n const envComponent = await host.get(resolvedEnvId);\n if (!envComponent) {\n throw new BitError(`can't load env. env id is ${envId}`);\n }\n return this.getEnvTemplate(envComponent);\n }\n\n getDefs(): PreviewDefinition[] {\n return this.previewSlot.values();\n }\n\n private writeHash = new Map<string, string>();\n private timestamp = Date.now();\n\n private ensureTempPackage() {\n const workspacePath = this.workspace?.path;\n const tempPackageDir = workspacePath ? join(workspacePath, 'node_modules', '@teambit', '_local') : '';\n if (tempPackageDir) {\n ensureDirSync(tempPackageDir);\n writeJSONSync(join(tempPackageDir, 'package.json'), { name: '@teambit/_local' });\n writeFileSync(join(tempPackageDir, 'index.js'), 'module.exports = {};');\n return tempPackageDir;\n }\n }\n\n /**\n * write a link to load custom modules dynamically.\n * @param prefix write\n * @param moduleMap map of components to module paths to require.\n * @param defaultModule\n * @param dirName\n */\n writeLink(\n prefix: string,\n moduleMap: ComponentMap<string[]>,\n mainModulesMap: MainModulesMap,\n dirName: string,\n isSplitComponentBundle: boolean\n ) {\n const tempPackageDir = this.ensureTempPackage();\n const contents = generateLink(prefix, moduleMap, mainModulesMap, isSplitComponentBundle, tempPackageDir);\n return this.writeLinkContents(contents, dirName, prefix);\n }\n\n writeLinkContents(contents: string, targetDir: string, prefix: string) {\n const hash = objectHash(contents);\n const targetPath = join(targetDir, `${prefix}-${this.timestamp}.js`);\n\n // write only if link has changed (prevents triggering fs watches)\n if (this.writeHash.get(targetPath) !== hash) {\n writeFileSync(targetPath, contents);\n this.writeHash.set(targetPath, hash);\n }\n\n return targetPath;\n }\n\n private executionRefs = new Map<string, ExecutionRef>();\n\n private async getPreviewTarget(\n /** execution context (of the specific env) */\n context: ExecutionContext\n ): Promise<string[]> {\n // store context for later link-file updates\n // also register related envs that this context is acting on their behalf\n [context.id, ...context.relatedContexts].forEach((ctxId) => {\n this.executionRefs.set(ctxId, new ExecutionRef(context));\n });\n\n const previewRuntime = await this.writePreviewEntry(context);\n const linkFiles = await this.updateLinkFiles(context.components, context);\n\n return [...linkFiles, previewRuntime];\n }\n\n private async writePreviewEntry(context: { components: Component[] }, aspectsIdsToNotFilterOut: string[] = []) {\n const { rebuild, skipUiBuild } = this.ui.runtimeOptions;\n\n const [name, uiRoot] = this.getUi();\n const cacheKey = `${uiRoot.path}|${RUNTIME_NAME}`;\n const currentBundleHash = await createBundleHash(uiRoot, RUNTIME_NAME);\n const preBundleHash = readBundleHash(PreviewAspect.id, BUNDLE_DIR, '');\n const workspaceBundleDir = join(uiRoot.path, PUBLIC_DIR);\n const lastBundleHash = await this.cache.get(cacheKey);\n\n let bundlePath = '';\n\n // ensure the pre-bundle is ready\n if (!rebuild && !existsSync(workspaceBundleDir) && (currentBundleHash === preBundleHash || skipUiBuild)) {\n // use pre-bundle\n bundlePath = getBundlePath(PreviewAspect.id, BUNDLE_DIR, '') as string;\n } else if (!rebuild && existsSync(workspaceBundleDir) && (currentBundleHash === lastBundleHash || skipUiBuild)) {\n // use workspace bundle\n bundlePath = workspaceBundleDir;\n } else {\n // do build\n const resolvedAspects = await this.resolveAspects(PreviewRuntime.name, undefined, uiRoot);\n const filteredAspects = this.filterAspectsByExecutionContext(resolvedAspects, context, aspectsIdsToNotFilterOut);\n\n await buildPreBundlePreview(filteredAspects);\n bundlePath = workspaceBundleDir;\n await this.cache.set(cacheKey, currentBundleHash);\n }\n\n // prepare the runtime entry\n const previewRuntime = await generateBundlePreviewEntry(name, bundlePath, this.harmony.config.toObject());\n\n return previewRuntime;\n }\n\n private updateLinkFiles(components: Component[] = [], context: ExecutionContext) {\n const previews = this.previewSlot.values();\n const paths = previews.map(async (previewDef) => {\n const defaultTemplatePath = await previewDef.renderTemplatePathByEnv?.(context.env);\n const visitedEnvs = new Set();\n const mainModulesMap: MainModulesMap = {\n // @ts-ignore\n default: defaultTemplatePath,\n [context.envDefinition.id]: defaultTemplatePath,\n };\n\n const map = await previewDef.getModuleMap(components);\n const isSplitComponentBundle = this.getEnvPreviewConfig().splitComponentBundle ?? false;\n const withPathsP = map.asyncMap(async (files, component) => {\n const envDef = this.envs.getEnv(component);\n const environment = envDef.env;\n const envId = envDef.id;\n\n if (!mainModulesMap[envId] && !visitedEnvs.has(envId)) {\n const modulePath = await previewDef.renderTemplatePathByEnv?.(envDef.env);\n if (modulePath) {\n mainModulesMap[envId] = modulePath;\n }\n visitedEnvs.add(envId);\n }\n const compilerInstance = environment.getCompiler?.();\n const modulePath =\n compilerInstance?.getPreviewComponentRootPath?.(component) || this.pkg.getRuntimeModulePath(component);\n return files.map((file) => {\n if (!this.workspace || !compilerInstance) {\n return file.path;\n }\n const distRelativePath = compilerInstance.getDistPathBySrcPath(file.relative);\n return join(this.workspace.path, modulePath, distRelativePath);\n });\n // return files.map((file) => file.path);\n });\n const withPaths = await withPathsP;\n\n const dirPath = join(this.tempFolder, context.id);\n if (!existsSync(dirPath)) mkdirSync(dirPath, { recursive: true });\n\n const link = this.writeLink(previewDef.prefix, withPaths, mainModulesMap, dirPath, isSplitComponentBundle);\n return link;\n });\n\n return Promise.all(paths);\n }\n\n async writePreviewRuntime(context: { components: Component[] }, aspectsIdsToNotFilterOut: string[] = []) {\n const [name, uiRoot] = this.getUi();\n const resolvedAspects = await this.resolveAspects(PreviewRuntime.name, undefined, uiRoot);\n const filteredAspects = this.filterAspectsByExecutionContext(resolvedAspects, context, aspectsIdsToNotFilterOut);\n const filePath = await this.ui.generateRoot(filteredAspects, name, 'preview', PreviewAspect.id);\n return filePath;\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n uiRoot?: UIRoot,\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n const root = uiRoot || this.getUi()[1];\n runtimeName = runtimeName || MainRuntime.name;\n const resolvedAspects = await root.resolveAspects(runtimeName, componentIds, opts);\n return resolvedAspects;\n }\n\n private getUi() {\n const ui = this.ui.getUi();\n if (!ui) throw new Error('ui not found');\n return ui;\n }\n\n /**\n * Filter the aspects to have only aspects that are:\n * 1. core aspects\n * 2. configured on the host (workspace/scope)\n * 3. used by at least one component from the context\n * @param aspects\n * @param context\n */\n private filterAspectsByExecutionContext(\n aspects: AspectDefinition[],\n context: { components: Component[] },\n aspectsIdsToNotFilterOut: string[] = []\n ) {\n let allComponentContextAspects: string[] = [];\n allComponentContextAspects = context.components.reduce((acc, curr) => {\n return acc.concat(curr.state.aspects.ids);\n }, allComponentContextAspects);\n const hostAspects = Object.keys(this.harmony.config.toObject());\n const allAspectsToInclude = uniq(hostAspects.concat(allComponentContextAspects));\n const filtered = aspects.filter((aspect) => {\n if (!aspect.getId) {\n return false;\n }\n return (\n this.aspectLoader.isCoreAspect(aspect.getId) ||\n allAspectsToInclude.includes(aspect.getId) ||\n aspectsIdsToNotFilterOut.includes(aspect.getId)\n );\n });\n\n return filtered;\n }\n\n private getDefaultStrategies() {\n return [\n new EnvBundlingStrategy(this, this.pkg, this.dependencyResolver),\n new ComponentBundlingStrategy(this, this.pkg, this.dependencyResolver, this.logger),\n ];\n }\n\n // TODO - executionContext should be responsible for updating components list, and emit 'update' events\n // instead we keep track of changes\n private handleComponentChange = async (c: Component, updater: (currentComponents: ExecutionRef) => void) => {\n const env = this.envs.getEnv(c);\n const envId = env.id.toString();\n\n const executionRef = this.executionRefs.get(envId);\n if (!executionRef) {\n this.logger.warn(\n `failed to update link file for component \"${c.id.toString()}\" - could not find execution context for ${envId}`\n );\n return noopResult;\n }\n\n // add / remove / etc\n updater(executionRef);\n\n await this.updateLinkFiles(executionRef.currentComponents, executionRef.executionCtx);\n return noopResult;\n };\n\n private handleComponentRemoval = (cId: ComponentID) => {\n let component: Component | undefined;\n this.executionRefs.forEach((components) => {\n const found = components.get(cId);\n if (found) component = found;\n });\n if (!component) return Promise.resolve(noopResult);\n\n return this.handleComponentChange(component, (currentComponents) => currentComponents.remove(cId));\n };\n\n getEnvPreviewConfig(env?: PreviewEnv): EnvPreviewConfig {\n const config = env?.getPreviewConfig && typeof env?.getPreviewConfig === 'function' ? env?.getPreviewConfig() : {};\n\n return config;\n }\n\n /**\n * return the configured bundling strategy.\n */\n getBundlingStrategy(env?: PreviewEnv): BundlingStrategy {\n const defaultStrategies = this.getDefaultStrategies();\n const envPreviewConfig = this.getEnvPreviewConfig(env);\n const strategyFromEnv = envPreviewConfig?.strategyName;\n const strategyName = strategyFromEnv || this.config.bundlingStrategy || 'env';\n const strategies = this.bundlingStrategySlot.values().concat(defaultStrategies);\n const selected = strategies.find((strategy) => {\n return strategy.name === strategyName;\n });\n\n if (!selected) throw new BundlingStrategyNotFound(strategyName);\n\n return selected;\n }\n\n /**\n * register a new bundling strategy. default available strategies are `env` and ``\n */\n registerBundlingStrategy(bundlingStrategy: BundlingStrategy) {\n this.bundlingStrategySlot.register(bundlingStrategy);\n return this;\n }\n\n /**\n * register a new preview definition.\n */\n registerDefinition(previewDef: PreviewDefinition) {\n this.previewSlot.register(previewDef);\n }\n\n static slots = [Slot.withType<PreviewDefinition>(), Slot.withType<BundlingStrategy>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n BundlerAspect,\n BuilderAspect,\n ComponentAspect,\n UIAspect,\n CacheAspect,\n EnvsAspect,\n WorkspaceAspect,\n PkgAspect,\n PubsubAspect,\n AspectLoaderAspect,\n LoggerAspect,\n DependencyResolverAspect,\n GraphqlAspect,\n WatcherAspect,\n ScopeAspect,\n ];\n\n static defaultConfig = {\n disabled: false,\n onlyOverview: false,\n };\n\n static async provider(\n // eslint-disable-next-line max-len\n [\n bundler,\n builder,\n componentExtension,\n uiMain,\n cache,\n envs,\n workspace,\n pkg,\n pubsub,\n aspectLoader,\n loggerMain,\n dependencyResolver,\n graphql,\n watcher,\n scope,\n ]: [\n BundlerMain,\n BuilderMain,\n ComponentMain,\n UiMain,\n CacheMain,\n EnvsMain,\n Workspace | undefined,\n PkgMain,\n PubsubMain,\n AspectLoaderMain,\n LoggerMain,\n DependencyResolverMain,\n GraphqlMain,\n WatcherMain,\n ScopeMain\n ],\n config: PreviewConfig,\n [previewSlot, bundlingStrategySlot]: [PreviewDefinitionRegistry, BundlingStrategySlot],\n harmony: Harmony\n ) {\n const logger = loggerMain.createLogger(PreviewAspect.id);\n // app.registerApp(new PreviewApp());\n const preview = new PreviewMain(\n harmony,\n previewSlot,\n uiMain,\n cache,\n envs,\n componentExtension,\n pkg,\n aspectLoader,\n config,\n bundlingStrategySlot,\n builder,\n workspace,\n logger,\n dependencyResolver\n );\n\n if (workspace)\n uiMain.registerStartPlugin(new PreviewStartPlugin(workspace, bundler, uiMain, pubsub, logger, watcher));\n\n componentExtension.registerRoute([\n new PreviewRoute(preview, logger),\n new ComponentPreviewRoute(preview, logger),\n // @ts-ignore\n new EnvTemplateRoute(preview, logger),\n new PreviewAssetsRoute(preview, logger),\n ]);\n\n bundler.registerTarget([\n {\n entry: preview.getPreviewTarget.bind(preview),\n },\n ]);\n\n if (!config.disabled)\n builder.registerBuildTasks([\n new EnvPreviewTemplateTask(preview, envs, aspectLoader, dependencyResolver, logger),\n new PreviewTask(bundler, preview, dependencyResolver, logger),\n new PreBundlePreviewTask(uiMain, logger),\n ]);\n\n if (workspace) {\n workspace.registerOnComponentAdd((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.add(c))\n );\n workspace.registerOnComponentLoad(async (component) => {\n return preview.calcPreviewData(component);\n });\n workspace.registerOnComponentChange((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.update(c))\n );\n workspace.registerOnComponentRemove((cId) => preview.handleComponentRemoval(cId));\n }\n if (scope) {\n scope.registerOnCompAspectReCalc((c) => preview.calcPreviewData(c));\n }\n\n envs.registerService(new PreviewService());\n\n graphql.register(previewSchema(preview));\n\n return preview;\n }\n}\n\nPreviewAspect.addRuntime(PreviewMain);\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,KAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,IAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,WAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,UAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA,SAAAM,MAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,KAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAO,SAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,QAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,IAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,GAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,OAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,MAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,WAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,UAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,UAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,SAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,YAAA;EAAA,MAAAZ,IAAA,GAAAa,sBAAA,CAAAZ,OAAA;EAAAW,WAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,QAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,OAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,SAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,QAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,MAAA;EAAA,MAAAhB,IAAA,GAAAC,OAAA;EAAAe,KAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,KAAA;EAAA,MAAAjB,IAAA,GAAAC,OAAA;EAAAgB,IAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,cAAA;EAAA,MAAAlB,IAAA,GAAAC,OAAA;EAAAiB,aAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAmB,WAAA;EAAA,MAAAnB,IAAA,GAAAC,OAAA;EAAAkB,UAAA,YAAAA,CAAA;IAAA,OAAAnB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAoB,QAAA;EAAA,MAAApB,IAAA,GAAAC,OAAA;EAAAmB,OAAA,YAAAA,CAAA;IAAA,OAAApB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAqB,oBAAA;EAAA,MAAArB,IAAA,GAAAC,OAAA;EAAAoB,mBAAA,YAAAA,CAAA;IAAA,OAAArB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAsB,YAAA;EAAA,MAAAtB,IAAA,GAAAC,OAAA;EAAAqB,WAAA,YAAAA,CAAA;IAAA,OAAAtB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAuB,SAAA;EAAA,MAAAvB,IAAA,GAAAC,OAAA;EAAAsB,QAAA,YAAAA,CAAA;IAAA,OAAAvB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAwB,SAAA;EAAA,MAAAxB,IAAA,GAAAC,OAAA;EAAAuB,QAAA,YAAAA,CAAA;IAAA,OAAAxB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAyB,OAAA;EAAA,MAAAzB,IAAA,GAAAC,OAAA;EAAAwB,MAAA,YAAAA,CAAA;IAAA,OAAAzB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA0B,gBAAA;EAAA,MAAA1B,IAAA,GAAAC,OAAA;EAAAyB,eAAA,YAAAA,CAAA;IAAA,OAAA1B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA2B,YAAA;EAAA,MAAA3B,IAAA,GAAAC,OAAA;EAAA0B,WAAA,YAAAA,CAAA;IAAA,OAAA3B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA4B,cAAA;EAAA,MAAA5B,IAAA,GAAAC,OAAA;EAAA2B,aAAA,YAAAA,CAAA;IAAA,OAAA5B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA6B,iBAAA;EAAA,MAAA7B,IAAA,GAAAC,OAAA;EAAA4B,gBAAA,YAAAA,CAAA;IAAA,OAAA7B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAA8B,SAAA;EAAA,MAAA9B,IAAA,GAAAC,OAAA;EAAA6B,QAAA,YAAAA,CAAA;IAAA,OAAA9B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA+B,UAAA;EAAA,MAAA/B,IAAA,GAAAC,OAAA;EAAA8B,SAAA,YAAAA,CAAA;IAAA,OAAA/B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgC,UAAA;EAAA,MAAAhC,IAAA,GAAAC,OAAA;EAAA+B,SAAA,YAAAA,CAAA;IAAA,OAAAhC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAiC,YAAA;EAAA,MAAAjC,IAAA,GAAAC,OAAA;EAAAgC,WAAA,YAAAA,CAAA;IAAA,OAAAjC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,SAAAkC,cAAA;EAAA,MAAAlC,IAAA,GAAAC,OAAA;EAAAiC,aAAA,YAAAA,CAAA;IAAA,OAAAlC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAmC,UAAA;EAAA,MAAAnC,IAAA,GAAAC,OAAA;EAAAkC,SAAA,YAAAA,CAAA;IAAA,OAAAnC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAoC,oBAAA;EAAA,MAAApC,IAAA,GAAAC,OAAA;EAAAmC,mBAAA,YAAAA,CAAA;IAAA,OAAApC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA,SAAAqC,aAAA;EAAA,MAAArC,IAAA,GAAAC,OAAA;EAAAoC,YAAA,YAAAA,CAAA;IAAA,OAAArC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAsC,kBAAA;EAAA,MAAAtC,IAAA,GAAAC,OAAA;EAAAqC,iBAAA,YAAAA,CAAA;IAAA,OAAAtC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAuC,UAAA;EAAA,MAAAvC,IAAA,GAAAC,OAAA;EAAAsC,SAAA,YAAAA,CAAA;IAAA,OAAAvC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAwC,eAAA;EAAA,MAAAxC,IAAA,GAAAC,OAAA;EAAAuC,cAAA,YAAAA,CAAA;IAAA,OAAAxC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAyC,UAAA;EAAA,MAAAzC,IAAA,GAAAC,OAAA;EAAAwC,SAAA,YAAAA,CAAA;IAAA,OAAAzC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA0C,WAAA;EAAA,MAAA1C,IAAA,GAAAC,OAAA;EAAAyC,UAAA,YAAAA,CAAA;IAAA,OAAA1C,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA2C,YAAA;EAAA,MAAA3C,IAAA,GAAAC,OAAA;EAAA0C,WAAA,YAAAA,CAAA;IAAA,OAAA3C,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA4C,gBAAA;EAAA,MAAA5C,IAAA,GAAAC,OAAA;EAAA2C,eAAA,YAAAA,CAAA;IAAA,OAAA5C,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAqF,SAAAa,uBAAAgC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAErF,MAAM8B,UAAU,GAAG;EACjBC,OAAO,EAAE,EAAE;EACXC,QAAQ,EAAEA,CAAA,KAAM;AAClB,CAAC;AAED,MAAMC,gBAAgB,GAAG,IAAAC,YAAI,EAACC,uBAAU,EAAEC,wBAAa,CAACC,EAAE,CAAC;;AAgC3D;AACA;AACA;;AAGA;AACA;AACA;;AA6BA;AACA;AACA;;AA4BO,MAAMC,WAAW,CAAC;EACvBC,WAAWA;EACT;AACJ;AACA;EACYC,OAAgB;EAExB;AACJ;AACA;EACYC,WAAsC,EAEtCC,EAAU,EAEVC,KAAgB,EAEhBC,IAAc,EAEdC,eAA8B,EAE9BC,GAAY,EAEZC,YAA8B,EAE7BC,MAAqB,EAEtBC,oBAA0C,EAE1CC,OAAoB,EAEpBC,SAAgC,EAEhCC,MAAc,EAEdC,kBAA0C,EAClD;IAAA,KA9BQb,OAAgB,GAAhBA,OAAgB;IAAA,KAKhBC,WAAsC,GAAtCA,WAAsC;IAAA,KAEtCC,EAAU,GAAVA,EAAU;IAAA,KAEVC,KAAgB,GAAhBA,KAAgB;IAAA,KAEhBC,IAAc,GAAdA,IAAc;IAAA,KAEdC,eAA8B,GAA9BA,eAA8B;IAAA,KAE9BC,GAAY,GAAZA,GAAY;IAAA,KAEZC,YAA8B,GAA9BA,YAA8B;IAAA,KAE7BC,MAAqB,GAArBA,MAAqB;IAAA,KAEtBC,oBAA0C,GAA1CA,oBAA0C;IAAA,KAE1CC,OAAoB,GAApBA,OAAoB;IAAA,KAEpBC,SAAgC,GAAhCA,SAAgC;IAAA,KAEhCC,MAAc,GAAdA,MAAc;IAAA,KAEdC,kBAA0C,GAA1CA,kBAA0C;IAAAvC,eAAA,oBAgbhC,IAAIwC,GAAG,CAAiB,CAAC;IAAAxC,eAAA,oBACzByC,IAAI,CAACC,GAAG,CAAC,CAAC;IAAA1C,eAAA,wBA6CN,IAAIwC,GAAG,CAAuB,CAAC;IAwKvD;IACA;IAAAxC,eAAA,gCACgC,OAAO2C,CAAY,EAAEC,OAAkD,KAAK;MAC1G,MAAMC,GAAG,GAAG,IAAI,CAACf,IAAI,CAACgB,MAAM,CAACH,CAAC,CAAC;MAC/B,MAAMI,KAAK,GAAGF,GAAG,CAACtB,EAAE,CAACL,QAAQ,CAAC,CAAC;MAE/B,MAAM8B,YAAY,GAAG,IAAI,CAACC,aAAa,CAACC,GAAG,CAACH,KAAK,CAAC;MAClD,IAAI,CAACC,YAAY,EAAE;QACjB,IAAI,CAACV,MAAM,CAACa,IAAI,CACd,6CAA6CR,CAAC,CAACpB,EAAE,CAACL,QAAQ,CAAC,CAAC,4CAA4C6B,KAAK,EAC/G,CAAC;QACD,OAAO/B,UAAU;MACnB;;MAEA;MACA4B,OAAO,CAACI,YAAY,CAAC;MAErB,MAAM,IAAI,CAACI,eAAe,CAACJ,YAAY,CAACK,iBAAiB,EAAEL,YAAY,CAACM,YAAY,CAAC;MACrF,OAAOtC,UAAU;IACnB,CAAC;IAAAhB,eAAA,iCAEiCuD,GAAgB,IAAK;MACrD,IAAIC,SAAgC;MACpC,IAAI,CAACP,aAAa,CAAClD,OAAO,CAAE0D,UAAU,IAAK;QACzC,MAAMC,KAAK,GAAGD,UAAU,CAACP,GAAG,CAACK,GAAG,CAAC;QACjC,IAAIG,KAAK,EAAEF,SAAS,GAAGE,KAAK;MAC9B,CAAC,CAAC;MACF,IAAI,CAACF,SAAS,EAAE,OAAOG,OAAO,CAACC,OAAO,CAAC5C,UAAU,CAAC;MAElD,OAAO,IAAI,CAAC6C,qBAAqB,CAACL,SAAS,EAAGH,iBAAiB,IAAKA,iBAAiB,CAACS,MAAM,CAACP,GAAG,CAAC,CAAC;IACpG,CAAC;EAnqBE;EAEH,IAAIQ,UAAUA,CAAA,EAAW;IACvB,OAAO,IAAI,CAAC1B,SAAS,EAAE2B,UAAU,CAAC1C,wBAAa,CAACC,EAAE,CAAC,IAAIJ,gBAAgB;EACzE;EAEA8C,sBAAsBA,CAACT,SAAoB,EAAoC;IAC7E,MAAMxH,IAAI,GAAG,IAAI,CAACoG,OAAO,CAAC8B,eAAe,CAACV,SAAS,EAAElC,wBAAa,CAACC,EAAE,CAAC;IAEtE,IAAI,CAACvF,IAAI,EAAE,OAAOmI,SAAS;IAC3B,OAAOnI,IAAI,CAACoI,8CAAgC,CAAC;EAC/C;EAEA,MAAMC,UAAUA,CAACb,SAAoB,EAAwC;IAC3E,MAAMc,SAAS,GAAG,MAAM,IAAI,CAAClC,OAAO,CAACmC,oCAAoC,CACvEf,SAAS,EACTlC,wBAAa,CAACC,EAAE,EAChBiD,6BACF,CAAC;IACD,IAAI,CAACF,SAAS,EAAE,OAAOH,SAAS;IAChC,OAAO,KAAIM,kCAAe,EAACH,SAAS,CAAC;EACvC;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMI,eAAeA,CAAClB,SAAoB,EAAqC;IAC7E,MAAMc,SAAS,GAAG,MAAM,IAAI,CAACD,UAAU,CAACb,SAAS,CAAC;IAClD,MAAMmB,gBAAgB,GAAG,MAAM,IAAI,CAACA,gBAAgB,CAACnB,SAAS,CAAC;IAC/D,IAAI,CAACc,SAAS,EAAE,OAAOH,SAAS;IAChC,OAAO;MACLS,KAAK,EAAEN,SAAS,CAACO,QAAQ,CAAC,CAAC;MAC3BF;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEG,sBAAsBA,CAACtB,SAAoB,EAAoC;IAC7E,OAAOA,SAAS,CAACuB,KAAK,CAACC,OAAO,CAAC9B,GAAG,CAAC5B,wBAAa,CAACC,EAAE,CAAC,EAAEW,MAAM;EAC9D;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE+C,cAAcA,CAACzB,SAAoB,EAAoC;IACrE,MAAM0B,WAAW,GAAG1B,SAAS,CAACuB,KAAK,CAACC,OAAO,CAAC9B,GAAG,CAAC5B,wBAAa,CAACC,EAAE,CAAC,EAAEvF,IAAI;IACvE,OAAOkJ,WAAW;EACpB;;EAEA;AACF;AACA;AACA;AACA;EACEC,2BAA2BA,CAACC,YAAuB,EAAW;IAC5D,MAAMF,WAAW,GAAG,IAAI,CAACD,cAAc,CAACG,YAAY,CAAC;IACrD,OAAO,CAAC,CAACF,WAAW,EAAEG,oBAAoB;EAC5C;;EAEA;AACF;AACA;AACA;AACA;EACEC,mBAAmBA,CAACF,YAAuB,EAAW;IACpD,MAAMF,WAAW,GAAG,IAAI,CAACD,cAAc,CAACG,YAAY,CAAC;IACrD,OAAO,CAAC,CAACF,WAAW,EAAEK,oBAAoB;EAC5C;EAEA,MAAcC,4BAA4BA,CAAChC,SAAoB,EAAoB;IACjF,IAAI,IAAI,CAAC1B,IAAI,CAAC2D,cAAc,CAACjC,SAAS,CAAC,EAAE;MACvC,OAAO,IAAI;IACb;IACA,MAAM4B,YAAY,GAAG,MAAM,IAAI,CAACtD,IAAI,CAAC4D,eAAe,CAAClC,SAAS,CAAC;IAC/D,OAAO,IAAI,CAAC2B,2BAA2B,CAACC,YAAY,CAAC;EACvD;EAEA,MAAcO,qBAAqBA,CAACnC,SAAoB,EAAoB;IAC1E,IAAI,IAAI,CAAC1B,IAAI,CAAC2D,cAAc,CAACjC,SAAS,CAAC,EAAE;MACvC,OAAO,IAAI;IACb;IACA,MAAM4B,YAAY,GAAG,MAAM,IAAI,CAACtD,IAAI,CAAC4D,eAAe,CAAClC,SAAS,CAAC;IAC/D,OAAO,IAAI,CAAC8B,mBAAmB,CAACF,YAAY,CAAC;EAC/C;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMQ,eAAeA,CAACpC,SAAoB,EAAiC;IACzE,MAAMqC,WAAW,GAAG,MAAM,IAAI,CAACC,2BAA2B,CAACtC,SAAS,CAAC;IACrE,MAAMuC,WAAW,GAAG,MAAM,IAAI,CAACC,sBAAsB,CAACxC,SAAS,CAAC;IAChE,MAAMyC,OAAO,GAAG,CAAC,MAAM,IAAI,CAACC,4BAA4B,CAAC1C,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM2C,YAAY,GAAG,MAAM,IAAI,CAACX,4BAA4B,CAAChC,SAAS,CAAC;IACvE,MAAM4C,YAAY,GAAG,MAAM,IAAI,CAACT,qBAAqB,CAACnC,SAAS,CAAC;IAEhE,MAAMxH,IAA0B,GAAA4D,aAAA,CAAAA,aAAA;MAC9BiG,WAAW;MACXM,YAAY;MACZC;IAAY,GACTL,WAAW,GACXE,OAAO,CACX;IACD,OAAOjK,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMgK,sBAAsBA,CAC1BxC,SAAoB,EACiF;IACrG;IACA;IACA,IACEA,SAAS,CAACjC,EAAE,CAAC8E,sBAAsB,CAAC,CAAC,KAAK,wBAAwB,IAClE7C,SAAS,CAACjC,EAAE,CAAC8E,sBAAsB,CAAC,CAAC,KAAK,kBAAkB,EAC5D;MACA,OAAO;QACLC,YAAY,EAAEC,6CAA+B;QAC7CC,oBAAoB,EAAE;MACxB,CAAC;IACH;IAEA,MAAM3D,GAAG,GAAG,IAAI,CAACf,IAAI,CAACgB,MAAM,CAACU,SAAS,CAAC,CAACX,GAAG;IAC3C,MAAM4D,gBAAgB,GAAG,IAAI,CAACC,mBAAmB,CAAC7D,GAAG,CAAC;IACtD,MAAM7G,IAAI,GAAG;MACXsK,YAAY,EAAEG,gBAAgB,EAAEH,YAAY;MAC5CE,oBAAoB,EAAEC,gBAAgB,EAAED,oBAAoB,IAAI;IAClE,CAAC;IACD,OAAOxK,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAckK,4BAA4BA,CAACd,YAAuB,EAAgD;IAChH,MAAMuB,KAAK,GAAG,IAAI,CAAC7E,IAAI,CAAC6E,KAAK,CAACvB,YAAY,CAAC;;IAE3C;IACA,IAAI,CAACuB,KAAK,EAAE,OAAOxC,SAAS;IAE5B,MAAMyC,mBAAmB,GAAG,IAAI,CAAC9B,sBAAsB,CAACM,YAAY,CAAC;IAErE,MAAMpJ,IAAI,GAAG;MACX;MACA6K,SAAS,EAAED,mBAAmB,EAAEC,SAAS,IAAI,IAAI;MACjDxB,oBAAoB,EAAE,IAAI;MAC1BE,oBAAoB,EAAE;IACxB,CAAC;IACD,OAAOvJ,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM8K,oBAAoBA,CAACtD,SAAoB,EAAoB;IACjE,MAAMuD,cAAc,GAAG,MAAM,IAAI,CAACf,sBAAsB,CAACxC,SAAS,CAAC;IACnE,OAAOuD,cAAc,EAAET,YAAY,KAAK,WAAW;EACrD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAM3B,gBAAgBA,CAACnB,SAAoB,EAAoB;IAC7D,MAAMxH,IAAI,GAAG,MAAM,IAAI,CAACiJ,cAAc,CAACzB,SAAS,CAAC;IACjD;IACA;IACA,IAAI,CAACxH,IAAI,IAAIA,IAAI,CAACsK,YAAY,KAAKnC,SAAS,EAAE,OAAO,IAAI,CAAC6C,wBAAwB,CAACxD,SAAS,CAAC;IAC7F,OAAOxH,IAAI,CAACsK,YAAY,KAAKW,uCAAyB;EACxD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAcD,wBAAwBA,CAACxD,SAAoB,EAAoB;IAC7E,MAAMc,SAAS,GAAG,MAAM,IAAI,CAAClC,OAAO,CAAC8E,gCAAgC,CACnE1D,SAAS,EACTlC,wBAAa,CAACC,EAAE,EAChB4F,8CACF,CAAC;IACD,IAAI,CAAC7C,SAAS,IAAI,CAACA,SAAS,CAACxE,MAAM,EAAE,OAAO,IAAI;IAEhD,OAAO,KAAK;EACd;;EAEA;EACA;EACA;EACA;EACA,MAAcgG,2BAA2BA,CAACtC,SAAoB,EAAoB;IAChF,MAAMmB,gBAAgB,GAAG,MAAM,IAAI,CAACmC,oBAAoB,CAACtD,SAAS,CAAC;IACnE;IACA,IAAI,IAAI,CAAC1B,IAAI,CAAC2D,cAAc,CAACjC,SAAS,CAAC,EAAE;MACvC;MACA;MACA,MAAM4D,KAAK,GAAG,MAAM5D,SAAS,CAAC4D,KAAK,CAAC,CAAC;MACrC,IAAIA,KAAK,EAAE;QACT,OAAO,IAAI;MACb;MACA,OAAOzC,gBAAgB,KAAK,KAAK;IACnC;IACA;IACA,IAAIA,gBAAgB,EAAE;MACpB,OAAO,IAAI;IACb;IACA,MAAMS,YAAY,GAAG,MAAM,IAAI,CAACtD,IAAI,CAAC4D,eAAe,CAAClC,SAAS,CAAC;IAC/D,OAAO,IAAI,CAAC6D,mBAAmB,CAACjC,YAAY,CAAC;EAC/C;;EAEA;AACF;AACA;AACA;EACE,MAAMS,WAAWA,CAACrC,SAAoB,EAAoB;IACxD,MAAM8D,WAAW,GAAG,MAAM,IAAI,CAACjF,SAAS,EAAEkF,KAAK,CAAC/D,SAAS,CAACjC,EAAE,CAAC;IAC7D;IACA;IACA,IAAI+F,WAAW,EAAE;MACf;MACA,IAAI,IAAI,CAACxF,IAAI,CAAC2D,cAAc,CAACjC,SAAS,CAAC,EAAE;QACvC,MAAMmB,gBAAgB,GAAG,MAAM,IAAI,CAACA,gBAAgB,CAACnB,SAAS,CAAC;QAC/D;QACA;QACA,MAAM4D,KAAK,GAAG,MAAM5D,SAAS,CAAC4D,KAAK,CAAC,CAAC;QACrC,IAAIA,KAAK,EAAE;UACT,OAAO,IAAI;QACb;QACA,OAAOzC,gBAAgB,KAAK,KAAK;MACnC;MACA,MAAMS,YAAY,GAAG,MAAM,IAAI,CAACtD,IAAI,CAAC4D,eAAe,CAAClC,SAAS,CAAC;MAC/D,MAAMgE,iBAAiB,GAAG,MAAM,IAAI,CAACC,4BAA4B,CAACrC,YAAY,CAAC;MAC/E,OAAOoC,iBAAiB,IAAI,IAAI;IAClC;IACA,MAAMtC,WAAW,GAAG,IAAI,CAACD,cAAc,CAACzB,SAAS,CAAC;IAClD,IAAI,CAAC0B,WAAW,EAAE,OAAO,KAAK;IAC9B;IACA,IAAIA,WAAW,CAACW,WAAW,KAAK1B,SAAS,EAAE,OAAOe,WAAW,CAACW,WAAW;IACzE;IACA;IACA;IACA,IAAIX,WAAW,CAAC2B,SAAS,EAAE;MACzB,MAAMzB,YAAY,GAAG,MAAM,IAAI,CAACtD,IAAI,CAAC4D,eAAe,CAAClC,SAAS,CAAC;MAC/D,MAAMgE,iBAAiB,GAAG,IAAI,CAACH,mBAAmB,CAACjC,YAAY,CAAC;MAChE,OAAO,CAAC,CAACoC,iBAAiB;IAC5B;IACA,OAAO,KAAK;EACd;;EAEA;AACF;AACA;AACA;AACA;EACEH,mBAAmBA,CAACjC,YAAuB,EAAW;IACpD,MAAMF,WAAW,GAAG,IAAI,CAACD,cAAc,CAACG,YAAY,CAAC;IACrD,OAAO,CAAC,CAACF,WAAW,EAAE2B,SAAS;EACjC;EAEA,MAAMa,qBAAqBA,CAAClE,SAAoB,EAAE;IAChD,IAAI,CAAC,IAAI,CAACtB,MAAM,CAACiE,YAAY,IAAI,CAAC,IAAAwB,kCAAgB,EAACC,+BAAa,CAAC,EAAE,OAAO,KAAK;IAC/E,MAAMC,MAAM,GAAG,IAAI,CAAC/F,IAAI,CAAC2D,cAAc,CAACjC,SAAS,CAAC;IAClD,IAAIqE,MAAM,EAAE,OAAO,KAAK;IAExB,MAAMzC,YAAY,GAAG,MAAM,IAAI,CAACtD,IAAI,CAAC4D,eAAe,CAAClC,SAAS,CAAC;IAC/D,MAAM0B,WAAW,GAAG,IAAI,CAACD,cAAc,CAACG,YAAY,CAAC;IACrD,OAAO,CAAC,CAACF,WAAW,EAAE4C,YAAY;EACpC;;EAEA;AACF;AACA;EACE,MAAMC,eAAeA,CAACvE,SAAoB,EAAoB;IAC5D,IAAI,CAAC,IAAI,CAACtB,MAAM,CAACiE,YAAY,IAAI,CAAC,IAAAwB,kCAAgB,EAACC,+BAAa,CAAC,EAAE,OAAO,KAAK;IAC/E,MAAM1C,WAAW,GAAG,IAAI,CAACD,cAAc,CAACzB,SAAS,CAAC;IAClD,OAAO0B,WAAW,EAAEiB,YAAY,IAAI,KAAK;EAC3C;;EAEA;AACF;AACA;EACE,MAAM6B,eAAeA,CAACxE,SAAoB,EAAoB;IAC5D,MAAM0B,WAAW,GAAG,IAAI,CAACD,cAAc,CAACzB,SAAS,CAAC;IAClD,OAAO0B,WAAW,EAAEkB,YAAY,IAAI,KAAK;EAC3C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAcqB,4BAA4BA,CAACrC,YAAuB,EAAgC;IAChG,MAAMuB,KAAK,GAAG,IAAI,CAAC7E,IAAI,CAAC6E,KAAK,CAACvB,YAAY,CAAC;IAC3C;IACA,IAAI,CAACuB,KAAK,EAAE,OAAOxC,SAAS;IAC5B,MAAMyC,mBAAmB,GAAG,IAAI,CAAC9B,sBAAsB,CAACM,YAAY,CAAC;IACrE;IACA,OAAOwB,mBAAmB,EAAEC,SAAS,IAAI,IAAI;EAC/C;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMoB,cAAcA,CAACzE,SAAoB,EAAoB;IAC3D;IACA,MAAM0E,oBAAoB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC;IAE/G,MAAM5D,SAAS,GAAG,MAAM,IAAI,CAAClC,OAAO,CAAC8E,gCAAgC,CACnE1D,SAAS,EACTlC,wBAAa,CAACC,EAAE,EAChB4G,wCACF,CAAC;IACD,MAAMC,OAAO,GAAG,IAAI,CAACtG,IAAI,CAACuG,UAAU,CAAC7E,SAAS,CAAC,CAAC8E,IAAI;IACpD,OAAO,CAAC,CAAChE,SAAS,IAAI,CAAC,CAACA,SAAS,CAACxE,MAAM,IAAIoI,oBAAoB,CAACK,QAAQ,CAACH,OAAO,IAAI,EAAE,CAAC;EAC1F;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMI,cAAcA,CAAChF,SAAoB,EAAwC;IAC/E,MAAMc,SAAS,GAAG,MAAM,IAAI,CAAClC,OAAO,CAACmC,oCAAoC,CACvEf,SAAS,EACTlC,wBAAa,CAACC,EAAE,EAChBkH,qDACF,CAAC;IACD,IAAI,CAACnE,SAAS,IAAI,CAACA,SAAS,CAACxE,MAAM,EAAE,OAAOqE,SAAS;IAErD,OAAO,KAAIM,kCAAe,EAACH,SAAS,CAAC;EACvC;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAcoE,kBAAkBA,CAAC3F,KAAa,EAAwC;IACpF,MAAM4F,UAAU,GAAG,IAAAC,4BAAY,EAAC7F,KAAK,CAAC;IACtC;IACA,MAAM8F,WAAW,GAAG,IAAAC,oCAAyB,EAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAMC,eAAe,GAAG,KAAIC,0BAAe,EAAC,CAAC;IAE7C,IAAIC,OAAO,GAAGF,eAAe,CAACG,UAAU,CAACP,UAAU,EAAEE,WAAW,CAAC;IACjE,IAAI,CAAC,IAAAM,qBAAU,EAACF,OAAO,CAAC,EAAE;MACxB;MACA,MAAMG,iBAAiB,GAAG,IAAAC,mCAAmB,EAACtG,KAAK,CAAC;MACpDkG,OAAO,GAAGF,eAAe,CAACG,UAAU,CAACE,iBAAiB,EAAEP,WAAW,CAAC;IACtE;IACA,IAAI,CAAC,IAAAM,qBAAU,EAACF,OAAO,CAAC,EAAE;MACxB,OAAO9E,SAAS;IAClB;IACA,MAAMmF,KAAK,GAAGP,eAAe,CAACQ,YAAY,CAACN,OAAO,EAAEJ,WAAW,CAAC;IAChE,IAAI,CAACS,KAAK,IAAI,CAACA,KAAK,CAACxJ,MAAM,EAAE;MAC3B,OAAOqE,SAAS;IAClB;IACA,MAAMqF,aAAa,GAAG,KAAIC,2BAAa,EAACH,KAAK,CAAC;IAE9CE,aAAa,CAACE,uBAAuB,CAACT,OAAO,CAAC;IAC9C,OAAO,KAAIxE,kCAAe,EAAC+E,aAAa,CAACG,MAAM,CAAC;EAClD;;EAEA;AACF;AACA;AACA;EACE,MAAMC,8BAA8BA,CAACpG,SAAoB,EAAwC;IAC/F,MAAMT,KAAK,GAAG,IAAI,CAACjB,IAAI,CAAC+H,QAAQ,CAACrG,SAAS,CAAC;IAC3C,OAAO,IAAI,CAACsG,qBAAqB,CAAC/G,KAAK,CAAC;EAC1C;;EAEA;AACF;AACA;AACA;EACE,MAAM+G,qBAAqBA,CAAC/G,KAAa,EAAwC;IAC/E;IACA,IAAI,IAAI,CAACd,YAAY,CAAC8H,SAAS,CAAChH,KAAK,CAAC,EAAE;MACtC,OAAO,IAAI,CAAC2F,kBAAkB,CAAC3F,KAAK,CAAC;IACvC;IACA,MAAMiH,IAAI,GAAG,IAAI,CAACjI,eAAe,CAACkI,OAAO,CAAC,CAAC;IAC3C,MAAMC,aAAa,GAAG,MAAMF,IAAI,CAACG,kBAAkB,CAACpH,KAAK,CAAC;IAC1D,MAAMqC,YAAY,GAAG,MAAM4E,IAAI,CAAC9G,GAAG,CAACgH,aAAa,CAAC;IAClD,IAAI,CAAC9E,YAAY,EAAE;MACjB,MAAM,KAAIgF,oBAAQ,EAAC,6BAA6BrH,KAAK,EAAE,CAAC;IAC1D;IACA,OAAO,IAAI,CAACyF,cAAc,CAACpD,YAAY,CAAC;EAC1C;EAEAiF,OAAOA,CAAA,EAAwB;IAC7B,OAAO,IAAI,CAAC1I,WAAW,CAAC2I,MAAM,CAAC,CAAC;EAClC;EAKQC,iBAAiBA,CAAA,EAAG;IAC1B,MAAMC,aAAa,GAAG,IAAI,CAACnI,SAAS,EAAEoI,IAAI;IAC1C,MAAMC,cAAc,GAAGF,aAAa,GAAG,IAAApJ,YAAI,EAACoJ,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE;IACrG,IAAIE,cAAc,EAAE;MAClB,IAAAC,wBAAa,EAACD,cAAc,CAAC;MAC7B,IAAAE,wBAAa,EAAC,IAAAxJ,YAAI,EAACsJ,cAAc,EAAE,cAAc,CAAC,EAAE;QAAEG,IAAI,EAAE;MAAkB,CAAC,CAAC;MAChF,IAAAC,wBAAa,EAAC,IAAA1J,YAAI,EAACsJ,cAAc,EAAE,UAAU,CAAC,EAAE,sBAAsB,CAAC;MACvE,OAAOA,cAAc;IACvB;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEK,SAASA,CACPC,MAAc,EACdC,SAAiC,EACjCC,cAA8B,EAC9BC,OAAe,EACfC,sBAA+B,EAC/B;IACA,MAAMV,cAAc,GAAG,IAAI,CAACH,iBAAiB,CAAC,CAAC;IAC/C,MAAMc,QAAQ,GAAG,IAAAC,4BAAY,EAACN,MAAM,EAAEC,SAAS,EAAEC,cAAc,EAAEE,sBAAsB,EAAEV,cAAc,CAAC;IACxG,OAAO,IAAI,CAACa,iBAAiB,CAACF,QAAQ,EAAEF,OAAO,EAAEH,MAAM,CAAC;EAC1D;EAEAO,iBAAiBA,CAACF,QAAgB,EAAEG,SAAiB,EAAER,MAAc,EAAE;IACrE,MAAMS,IAAI,GAAG,IAAAC,qBAAU,EAACL,QAAQ,CAAC;IACjC,MAAMM,UAAU,GAAG,IAAAvK,YAAI,EAACoK,SAAS,EAAE,GAAGR,MAAM,IAAI,IAAI,CAACY,SAAS,KAAK,CAAC;;IAEpE;IACA,IAAI,IAAI,CAACC,SAAS,CAAC3I,GAAG,CAACyI,UAAU,CAAC,KAAKF,IAAI,EAAE;MAC3C,IAAAX,wBAAa,EAACa,UAAU,EAAEN,QAAQ,CAAC;MACnC,IAAI,CAACQ,SAAS,CAACC,GAAG,CAACH,UAAU,EAAEF,IAAI,CAAC;IACtC;IAEA,OAAOE,UAAU;EACnB;EAIA,MAAcI,gBAAgBA,CAC5B;EACAC,OAAyB,EACN;IACnB;IACA;IACA,CAACA,OAAO,CAACzK,EAAE,EAAE,GAAGyK,OAAO,CAACC,eAAe,CAAC,CAAClM,OAAO,CAAEmM,KAAK,IAAK;MAC1D,IAAI,CAACjJ,aAAa,CAAC6I,GAAG,CAACI,KAAK,EAAE,KAAIC,4BAAY,EAACH,OAAO,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,MAAMI,cAAc,GAAG,MAAM,IAAI,CAACC,iBAAiB,CAACL,OAAO,CAAC;IAC5D,MAAMM,SAAS,GAAG,MAAM,IAAI,CAAClJ,eAAe,CAAC4I,OAAO,CAACvI,UAAU,EAAEuI,OAAO,CAAC;IAEzE,OAAO,CAAC,GAAGM,SAAS,EAAEF,cAAc,CAAC;EACvC;EAEA,MAAcC,iBAAiBA,CAACL,OAAoC,EAAEO,wBAAkC,GAAG,EAAE,EAAE;IAC7G,MAAM;MAAEC,OAAO;MAAEC;IAAY,CAAC,GAAG,IAAI,CAAC7K,EAAE,CAAC8K,cAAc;IAEvD,MAAM,CAAC7B,IAAI,EAAE8B,MAAM,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IACnC,MAAMC,QAAQ,GAAG,GAAGF,MAAM,CAAClC,IAAI,IAAIqC,yBAAY,EAAE;IACjD,MAAMC,iBAAiB,GAAG,MAAM,IAAAC,kCAAgB,EAACL,MAAM,EAAEG,yBAAY,CAAC;IACtE,MAAMG,aAAa,GAAG,IAAAC,gCAAc,EAAC5L,wBAAa,CAACC,EAAE,EAAE4L,wBAAU,EAAE,EAAE,CAAC;IACtE,MAAMC,kBAAkB,GAAG,IAAAhM,YAAI,EAACuL,MAAM,CAAClC,IAAI,EAAE4C,uBAAU,CAAC;IACxD,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACzL,KAAK,CAACqB,GAAG,CAAC2J,QAAQ,CAAC;IAErD,IAAIU,UAAU,GAAG,EAAE;;IAEnB;IACA,IAAI,CAACf,OAAO,IAAI,CAAC,IAAArD,qBAAU,EAACiE,kBAAkB,CAAC,KAAKL,iBAAiB,KAAKE,aAAa,IAAIR,WAAW,CAAC,EAAE;MACvG;MACAc,UAAU,GAAG,IAAAC,+BAAa,EAAClM,wBAAa,CAACC,EAAE,EAAE4L,wBAAU,EAAE,EAAE,CAAW;IACxE,CAAC,MAAM,IAAI,CAACX,OAAO,IAAI,IAAArD,qBAAU,EAACiE,kBAAkB,CAAC,KAAKL,iBAAiB,KAAKO,cAAc,IAAIb,WAAW,CAAC,EAAE;MAC9G;MACAc,UAAU,GAAGH,kBAAkB;IACjC,CAAC,MAAM;MACL;MACA,MAAMK,eAAe,GAAG,MAAM,IAAI,CAACC,cAAc,CAACC,yBAAc,CAAC9C,IAAI,EAAE1G,SAAS,EAAEwI,MAAM,CAAC;MACzF,MAAMiB,eAAe,GAAG,IAAI,CAACC,+BAA+B,CAACJ,eAAe,EAAEzB,OAAO,EAAEO,wBAAwB,CAAC;MAEhH,MAAM,IAAAuB,kCAAqB,EAACF,eAAe,CAAC;MAC5CL,UAAU,GAAGH,kBAAkB;MAC/B,MAAM,IAAI,CAACvL,KAAK,CAACiK,GAAG,CAACe,QAAQ,EAAEE,iBAAiB,CAAC;IACnD;;IAEA;IACA,MAAMX,cAAc,GAAG,MAAM,IAAA2B,uCAA0B,EAAClD,IAAI,EAAE0C,UAAU,EAAE,IAAI,CAAC7L,OAAO,CAACQ,MAAM,CAAC8L,QAAQ,CAAC,CAAC,CAAC;IAEzG,OAAO5B,cAAc;EACvB;EAEQhJ,eAAeA,CAACK,UAAuB,GAAG,EAAE,EAAEuI,OAAyB,EAAE;IAC/E,MAAMiC,QAAQ,GAAG,IAAI,CAACtM,WAAW,CAAC2I,MAAM,CAAC,CAAC;IAC1C,MAAMhB,KAAK,GAAG2E,QAAQ,CAACC,GAAG,CAAC,MAAOC,UAAU,IAAK;MAC/C,MAAMC,mBAAmB,GAAG,MAAMD,UAAU,CAACE,uBAAuB,GAAGrC,OAAO,CAACnJ,GAAG,CAAC;MACnF,MAAMyL,WAAW,GAAG,IAAIC,GAAG,CAAC,CAAC;MAC7B,MAAMrD,cAA8B,GAAG;QACrC;QACAnM,OAAO,EAAEqP,mBAAmB;QAC5B,CAACpC,OAAO,CAACwC,aAAa,CAACjN,EAAE,GAAG6M;MAC9B,CAAC;MAED,MAAMF,GAAG,GAAG,MAAMC,UAAU,CAACM,YAAY,CAAChL,UAAU,CAAC;MACrD,MAAM2H,sBAAsB,GAAG,IAAI,CAAC1E,mBAAmB,CAAC,CAAC,CAACF,oBAAoB,IAAI,KAAK;MACvF,MAAMkI,UAAU,GAAGR,GAAG,CAACS,QAAQ,CAAC,OAAO/J,KAAK,EAAEpB,SAAS,KAAK;QAC1D,MAAMoL,MAAM,GAAG,IAAI,CAAC9M,IAAI,CAACgB,MAAM,CAACU,SAAS,CAAC;QAC1C,MAAMqL,WAAW,GAAGD,MAAM,CAAC/L,GAAG;QAC9B,MAAME,KAAK,GAAG6L,MAAM,CAACrN,EAAE;QAEvB,IAAI,CAAC2J,cAAc,CAACnI,KAAK,CAAC,IAAI,CAACuL,WAAW,CAACQ,GAAG,CAAC/L,KAAK,CAAC,EAAE;UACrD,MAAMgM,UAAU,GAAG,MAAMZ,UAAU,CAACE,uBAAuB,GAAGO,MAAM,CAAC/L,GAAG,CAAC;UACzE,IAAIkM,UAAU,EAAE;YACd7D,cAAc,CAACnI,KAAK,CAAC,GAAGgM,UAAU;UACpC;UACAT,WAAW,CAACU,GAAG,CAACjM,KAAK,CAAC;QACxB;QACA,MAAMkM,gBAAgB,GAAGJ,WAAW,CAACK,WAAW,GAAG,CAAC;QACpD,MAAMH,UAAU,GACdE,gBAAgB,EAAEE,2BAA2B,GAAG3L,SAAS,CAAC,IAAI,IAAI,CAACxB,GAAG,CAACoN,oBAAoB,CAAC5L,SAAS,CAAC;QACxG,OAAOoB,KAAK,CAACsJ,GAAG,CAAEmB,IAAI,IAAK;UACzB,IAAI,CAAC,IAAI,CAAChN,SAAS,IAAI,CAAC4M,gBAAgB,EAAE;YACxC,OAAOI,IAAI,CAAC5E,IAAI;UAClB;UACA,MAAM6E,gBAAgB,GAAGL,gBAAgB,CAACM,oBAAoB,CAACF,IAAI,CAACG,QAAQ,CAAC;UAC7E,OAAO,IAAApO,YAAI,EAAC,IAAI,CAACiB,SAAS,CAACoI,IAAI,EAAEsE,UAAU,EAAEO,gBAAgB,CAAC;QAChE,CAAC,CAAC;QACF;MACF,CAAC,CAAC;MACF,MAAMG,SAAS,GAAG,MAAMf,UAAU;MAElC,MAAMgB,OAAO,GAAG,IAAAtO,YAAI,EAAC,IAAI,CAAC2C,UAAU,EAAEiI,OAAO,CAACzK,EAAE,CAAC;MACjD,IAAI,CAAC,IAAA4H,qBAAU,EAACuG,OAAO,CAAC,EAAE,IAAAC,oBAAS,EAACD,OAAO,EAAE;QAAEE,SAAS,EAAE;MAAK,CAAC,CAAC;MAEjE,MAAMC,IAAI,GAAG,IAAI,CAAC9E,SAAS,CAACoD,UAAU,CAACnD,MAAM,EAAEyE,SAAS,EAAEvE,cAAc,EAAEwE,OAAO,EAAEtE,sBAAsB,CAAC;MAC1G,OAAOyE,IAAI;IACb,CAAC,CAAC;IAEF,OAAOlM,OAAO,CAACmM,GAAG,CAACxG,KAAK,CAAC;EAC3B;EAEA,MAAMyG,mBAAmBA,CAAC/D,OAAoC,EAAEO,wBAAkC,GAAG,EAAE,EAAE;IACvG,MAAM,CAAC1B,IAAI,EAAE8B,MAAM,CAAC,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IACnC,MAAMa,eAAe,GAAG,MAAM,IAAI,CAACC,cAAc,CAACC,yBAAc,CAAC9C,IAAI,EAAE1G,SAAS,EAAEwI,MAAM,CAAC;IACzF,MAAMiB,eAAe,GAAG,IAAI,CAACC,+BAA+B,CAACJ,eAAe,EAAEzB,OAAO,EAAEO,wBAAwB,CAAC;IAChH,MAAMyD,QAAQ,GAAG,MAAM,IAAI,CAACpO,EAAE,CAACqO,YAAY,CAACrC,eAAe,EAAE/C,IAAI,EAAE,SAAS,EAAEvJ,wBAAa,CAACC,EAAE,CAAC;IAC/F,OAAOyO,QAAQ;EACjB;EAEA,MAAMtC,cAAcA,CAClBwC,WAAoB,EACpBC,YAA4B,EAC5BxD,MAAe,EACfyD,IAA4B,EACC;IAC7B,MAAMC,IAAI,GAAG1D,MAAM,IAAI,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtCsD,WAAW,GAAGA,WAAW,IAAII,kBAAW,CAACzF,IAAI;IAC7C,MAAM4C,eAAe,GAAG,MAAM4C,IAAI,CAAC3C,cAAc,CAACwC,WAAW,EAAEC,YAAY,EAAEC,IAAI,CAAC;IAClF,OAAO3C,eAAe;EACxB;EAEQb,KAAKA,CAAA,EAAG;IACd,MAAMhL,EAAE,GAAG,IAAI,CAACA,EAAE,CAACgL,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAChL,EAAE,EAAE,MAAM,IAAI2O,KAAK,CAAC,cAAc,CAAC;IACxC,OAAO3O,EAAE;EACX;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACUiM,+BAA+BA,CACrC7I,OAA2B,EAC3BgH,OAAoC,EACpCO,wBAAkC,GAAG,EAAE,EACvC;IACA,IAAIiE,0BAAoC,GAAG,EAAE;IAC7CA,0BAA0B,GAAGxE,OAAO,CAACvI,UAAU,CAACgN,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;MACpE,OAAOD,GAAG,CAACE,MAAM,CAACD,IAAI,CAAC5L,KAAK,CAACC,OAAO,CAAC6L,GAAG,CAAC;IAC3C,CAAC,EAAEL,0BAA0B,CAAC;IAC9B,MAAMM,WAAW,GAAG3R,MAAM,CAACC,IAAI,CAAC,IAAI,CAACsC,OAAO,CAACQ,MAAM,CAAC8L,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM+C,mBAAmB,GAAG,IAAAC,cAAI,EAACF,WAAW,CAACF,MAAM,CAACJ,0BAA0B,CAAC,CAAC;IAChF,MAAMS,QAAQ,GAAGjM,OAAO,CAACzF,MAAM,CAAE2R,MAAM,IAAK;MAC1C,IAAI,CAACA,MAAM,CAACC,KAAK,EAAE;QACjB,OAAO,KAAK;MACd;MACA,OACE,IAAI,CAAClP,YAAY,CAACmP,YAAY,CAACF,MAAM,CAACC,KAAK,CAAC,IAC5CJ,mBAAmB,CAACxI,QAAQ,CAAC2I,MAAM,CAACC,KAAK,CAAC,IAC1C5E,wBAAwB,CAAChE,QAAQ,CAAC2I,MAAM,CAACC,KAAK,CAAC;IAEnD,CAAC,CAAC;IAEF,OAAOF,QAAQ;EACjB;EAEQI,oBAAoBA,CAAA,EAAG;IAC7B,OAAO,CACL,KAAIC,iCAAmB,EAAC,IAAI,EAAE,IAAI,CAACtP,GAAG,EAAE,IAAI,CAACO,kBAAkB,CAAC,EAChE,KAAIgP,uCAAyB,EAAC,IAAI,EAAE,IAAI,CAACvP,GAAG,EAAE,IAAI,CAACO,kBAAkB,EAAE,IAAI,CAACD,MAAM,CAAC,CACpF;EACH;EAkCAoE,mBAAmBA,CAAC7D,GAAgB,EAAoB;IACtD,MAAMX,MAAM,GAAGW,GAAG,EAAE2O,gBAAgB,IAAI,OAAO3O,GAAG,EAAE2O,gBAAgB,KAAK,UAAU,GAAG3O,GAAG,EAAE2O,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;IAElH,OAAOtP,MAAM;EACf;;EAEA;AACF;AACA;EACEuP,mBAAmBA,CAAC5O,GAAgB,EAAoB;IACtD,MAAM6O,iBAAiB,GAAG,IAAI,CAACL,oBAAoB,CAAC,CAAC;IACrD,MAAM5K,gBAAgB,GAAG,IAAI,CAACC,mBAAmB,CAAC7D,GAAG,CAAC;IACtD,MAAM8O,eAAe,GAAGlL,gBAAgB,EAAEH,YAAY;IACtD,MAAMA,YAAY,GAAGqL,eAAe,IAAI,IAAI,CAACzP,MAAM,CAAC0P,gBAAgB,IAAI,KAAK;IAC7E,MAAMC,UAAU,GAAG,IAAI,CAAC1P,oBAAoB,CAACmI,MAAM,CAAC,CAAC,CAACsG,MAAM,CAACc,iBAAiB,CAAC;IAC/E,MAAMI,QAAQ,GAAGD,UAAU,CAACE,IAAI,CAAEC,QAAQ,IAAK;MAC7C,OAAOA,QAAQ,CAACnH,IAAI,KAAKvE,YAAY;IACvC,CAAC,CAAC;IAEF,IAAI,CAACwL,QAAQ,EAAE,MAAM,KAAIG,sCAAwB,EAAC3L,YAAY,CAAC;IAE/D,OAAOwL,QAAQ;EACjB;;EAEA;AACF;AACA;EACEI,wBAAwBA,CAACN,gBAAkC,EAAE;IAC3D,IAAI,CAACzP,oBAAoB,CAACgQ,QAAQ,CAACP,gBAAgB,CAAC;IACpD,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEQ,kBAAkBA,CAACjE,UAA6B,EAAE;IAChD,IAAI,CAACxM,WAAW,CAACwQ,QAAQ,CAAChE,UAAU,CAAC;EACvC;EA4BA,aAAakE,QAAQA;EACnB;EACA,CACEC,OAAO,EACPlQ,OAAO,EACPmQ,kBAAkB,EAClBC,MAAM,EACN3Q,KAAK,EACLC,IAAI,EACJO,SAAS,EACTL,GAAG,EACHyQ,MAAM,EACNxQ,YAAY,EACZyQ,UAAU,EACVnQ,kBAAkB,EAClBoQ,OAAO,EACPC,OAAO,EACPC,KAAK,CAiBN,EACD3Q,MAAqB,EACrB,CAACP,WAAW,EAAEQ,oBAAoB,CAAoD,EACtFT,OAAgB,EAChB;IACA,MAAMY,MAAM,GAAGoQ,UAAU,CAACI,YAAY,CAACxR,wBAAa,CAACC,EAAE,CAAC;IACxD;IACA,MAAMwR,OAAO,GAAG,IAAIvR,WAAW,CAC7BE,OAAO,EACPC,WAAW,EACX6Q,MAAM,EACN3Q,KAAK,EACLC,IAAI,EACJyQ,kBAAkB,EAClBvQ,GAAG,EACHC,YAAY,EACZC,MAAM,EACNC,oBAAoB,EACpBC,OAAO,EACPC,SAAS,EACTC,MAAM,EACNC,kBACF,CAAC;IAED,IAAIF,SAAS,EACXmQ,MAAM,CAACQ,mBAAmB,CAAC,KAAIC,8BAAkB,EAAC5Q,SAAS,EAAEiQ,OAAO,EAAEE,MAAM,EAAEC,MAAM,EAAEnQ,MAAM,EAAEsQ,OAAO,CAAC,CAAC;IAEzGL,kBAAkB,CAACW,aAAa,CAAC,CAC/B,KAAIC,wBAAY,EAACJ,OAAO,EAAEzQ,MAAM,CAAC,EACjC,KAAI8Q,yCAAqB,EAACL,OAAO,EAAEzQ,MAAM,CAAC;IAC1C;IACA,KAAI+Q,+BAAgB,EAACN,OAAO,EAAEzQ,MAAM,CAAC,EACrC,KAAIgR,mCAAkB,EAACP,OAAO,EAAEzQ,MAAM,CAAC,CACxC,CAAC;IAEFgQ,OAAO,CAACiB,cAAc,CAAC,CACrB;MACEC,KAAK,EAAET,OAAO,CAAChH,gBAAgB,CAAC0H,IAAI,CAACV,OAAO;IAC9C,CAAC,CACF,CAAC;IAEF,IAAI,CAAC7Q,MAAM,CAACwR,QAAQ,EAClBtR,OAAO,CAACuR,kBAAkB,CAAC,CACzB,KAAIC,4CAAsB,EAACb,OAAO,EAAEjR,IAAI,EAAEG,YAAY,EAAEM,kBAAkB,EAAED,MAAM,CAAC,EACnF,KAAIuR,uBAAW,EAACvB,OAAO,EAAES,OAAO,EAAExQ,kBAAkB,EAAED,MAAM,CAAC,EAC7D,KAAIwR,kCAAoB,EAACtB,MAAM,EAAElQ,MAAM,CAAC,CACzC,CAAC;IAEJ,IAAID,SAAS,EAAE;MACbA,SAAS,CAAC0R,sBAAsB,CAAEpR,CAAC,IACjCoQ,OAAO,CAAClP,qBAAqB,CAAClB,CAAC,EAAGU,iBAAiB,IAAKA,iBAAiB,CAAC2L,GAAG,CAACrM,CAAC,CAAC,CAClF,CAAC;MACDN,SAAS,CAAC2R,uBAAuB,CAAC,MAAOxQ,SAAS,IAAK;QACrD,OAAOuP,OAAO,CAACnN,eAAe,CAACpC,SAAS,CAAC;MAC3C,CAAC,CAAC;MACFnB,SAAS,CAAC4R,yBAAyB,CAAEtR,CAAC,IACpCoQ,OAAO,CAAClP,qBAAqB,CAAClB,CAAC,EAAGU,iBAAiB,IAAKA,iBAAiB,CAAC6Q,MAAM,CAACvR,CAAC,CAAC,CACrF,CAAC;MACDN,SAAS,CAAC8R,yBAAyB,CAAE5Q,GAAG,IAAKwP,OAAO,CAACqB,sBAAsB,CAAC7Q,GAAG,CAAC,CAAC;IACnF;IACA,IAAIsP,KAAK,EAAE;MACTA,KAAK,CAACwB,0BAA0B,CAAE1R,CAAC,IAAKoQ,OAAO,CAACnN,eAAe,CAACjD,CAAC,CAAC,CAAC;IACrE;IAEAb,IAAI,CAACwS,eAAe,CAAC,KAAIC,0BAAc,EAAC,CAAC,CAAC;IAE1C5B,OAAO,CAACR,QAAQ,CAAC,IAAAqC,yBAAa,EAACzB,OAAO,CAAC,CAAC;IAExC,OAAOA,OAAO;EAChB;AACF;AAAC0B,OAAA,CAAAjT,WAAA,GAAAA,WAAA;AAAAxB,eAAA,CAj3BYwB,WAAW,WA+uBP,CAACkT,eAAI,CAACC,QAAQ,CAAoB,CAAC,EAAED,eAAI,CAACC,QAAQ,CAAmB,CAAC,CAAC;AAAA3U,eAAA,CA/uB3EwB,WAAW,aAivBL8O,kBAAW;AAAAtQ,eAAA,CAjvBjBwB,WAAW,kBAkvBA,CACpBoT,wBAAa,EACbC,wBAAa,EACbC,4BAAe,EACfC,cAAQ,EACRC,oBAAW,EACXC,kBAAU,EACVC,4BAAe,EACfC,gBAAS,EACTC,sBAAY,EACZC,kCAAkB,EAClBC,sBAAY,EACZC,8CAAwB,EACxBC,wBAAa,EACbC,wBAAa,EACbC,oBAAW,CACZ;AAAA1V,eAAA,CAlwBUwB,WAAW,mBAowBC;EACrBkS,QAAQ,EAAE,KAAK;EACfvN,YAAY,EAAE;AAChB,CAAC;AA4GH7E,wBAAa,CAACqU,UAAU,CAACnU,WAAW,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_builder","data","require","_bundler","_pubsub","_cli","_component","_envs","_harmony","_ui","_cache","_constants","_bitError","_objectHash","_interopRequireDefault","_lodash","_fsExtra","_path","_pkg","_aspectLoader","_workspace","_logger","_dependencyResolver","_component2","_watcher","_graphql","_scope","_harmonyModules","_exceptions","_generateLink","_previewArtifact","_preview","_preview2","_preview3","_strategies","_executionRef","_preview4","_envPreviewTemplate","_envTemplate","_componentPreview","_preview5","_previewAssets","_preview6","_preBundle","_preBundle2","_preBundleUtils","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","noopResult","results","toString","DEFAULT_TEMP_DIR","join","CACHE_ROOT","PreviewAspect","id","PreviewMain","constructor","harmony","previewSlot","ui","cache","envs","componentAspect","pkg","aspectLoader","config","bundlingStrategySlot","builder","workspace","logger","dependencyResolver","Map","Date","now","c","updater","env","getEnv","envId","executionRef","executionRefs","get","warn","updateLinkFiles","currentComponents","executionCtx","cId","component","components","found","Promise","resolve","handleComponentChange","remove","tempFolder","getTempDir","getComponentBundleSize","getDataByAspect","undefined","COMPONENT_STRATEGY_SIZE_KEY_NAME","getPreview","artifacts","getArtifactsVinylByAspectAndTaskName","PREVIEW_TASK_NAME","PreviewArtifact","getPreviewFiles","isBundledWithEnv","files","getPaths","getPreviewAspectConfig","state","aspects","getPreviewData","previewData","doesEnvIncludesOnlyOverview","envComponent","supportsOnlyOverview","doesEnvUseNameParam","supportsUseNameParam","calculateIncludeOnlyOverview","isUsingCoreEnv","getEnvComponent","calculateUseNameParam","calcPreviewData","doesScaling","calcDoesScalingForComponent","dataFromEnv","calcPreviewDataFromEnv","envData","calculateDataForEnvComponent","onlyOverview","useNameParam","toStringWithoutVersion","strategyName","COMPONENT_PREVIEW_STRATEGY_NAME","splitComponentBundle","envPreviewConfig","getEnvPreviewConfig","isEnv","previewAspectConfig","isScaling","calcIsBundledWithEnv","envPreviewData","isBundledWithEnvBackward","ENV_PREVIEW_STRATEGY_NAME","getArtifactsVinylByAspectAndName","COMPONENT_STRATEGY_ARTIFACT_NAME","isNew","isEnvSupportScaling","inWorkspace","hasId","envSupportScaling","calculateIsEnvSupportScaling","isSupportSkipIncludes","isFeatureEnabled","ONLY_OVERVIEW","isCore","skipIncludes","getOnlyOverview","getUseNameParam","isLegacyHeader","ENV_WITH_LEGACY_DOCS","ENV_STRATEGY_ARTIFACT_NAME","envType","getEnvData","type","includes","getEnvTemplate","GENERATE_ENV_TEMPLATE_TASK_NAME","getCoreEnvTemplate","coreEnvDir","getAspectDir","artifactDef","getEnvTemplateArtifactDef","artifactFactory","ArtifactFactory","rootDir","getRootDir","existsSync","coreEnvDirFromBvm","getAspectDirFromBvm","paths","resolvePaths","artifactFiles","ArtifactFiles","populateVinylsFromPaths","vinyls","getEnvTemplateFromComponentEnv","getEnvId","getEnvTemplateByEnvId","isCoreEnv","host","getHost","resolvedEnvId","resolveComponentId","BitError","getDefs","values","ensureTempPackage","workspacePath","path","tempPackageDir","ensureDirSync","writeJSONSync","name","writeFileSync","writeLink","prefix","moduleMap","mainModulesMap","dirName","isSplitComponentBundle","contents","generateLink","writeLinkContents","targetDir","hash","objectHash","targetPath","timestamp","writeHash","set","getPreviewTarget","context","relatedContexts","ctxId","ExecutionRef","previewRuntime","writePreviewEntry","linkFiles","aspectsIdsToNotFilterOut","rebuild","skipUiBuild","runtimeOptions","uiRoot","getUi","cacheKey","RUNTIME_NAME","currentBundleHash","createBundleHash","preBundleHash","readBundleHash","BUNDLE_DIR","workspaceBundleDir","PUBLIC_DIR","lastBundleHash","bundlePath","getBundlePath","resolvedAspects","resolveAspects","PreviewRuntime","filteredAspects","filterAspectsByExecutionContext","buildPreBundlePreview","generateBundlePreviewEntry","toObject","previews","map","previewDef","defaultTemplatePath","renderTemplatePathByEnv","visitedEnvs","Set","envDefinition","getModuleMap","withPathsP","asyncMap","envDef","environment","has","modulePath","add","compilerInstance","getCompiler","getPreviewComponentRootPath","getRuntimeModulePath","file","distRelativePath","getDistPathBySrcPath","relative","withPaths","dirPath","mkdirSync","recursive","link","all","writePreviewRuntime","filePath","generateRoot","runtimeName","componentIds","opts","root","MainRuntime","Error","allComponentContextAspects","reduce","acc","curr","concat","ids","hostAspects","allAspectsToInclude","uniq","filtered","aspect","getId","isCoreAspect","getDefaultStrategies","EnvBundlingStrategy","ComponentBundlingStrategy","getPreviewConfig","getBundlingStrategy","defaultStrategies","strategyFromEnv","bundlingStrategy","strategies","selected","find","strategy","BundlingStrategyNotFound","registerBundlingStrategy","register","registerDefinition","provider","bundler","componentExtension","uiMain","pubsub","loggerMain","graphql","watcher","scope","createLogger","preview","registerStartPlugin","PreviewStartPlugin","registerRoute","PreviewRoute","ComponentPreviewRoute","EnvTemplateRoute","PreviewAssetsRoute","registerTarget","entry","bind","disabled","registerBuildTasks","EnvPreviewTemplateTask","PreviewTask","PreBundlePreviewTask","registerOnComponentAdd","registerOnComponentLoad","registerOnComponentChange","update","registerOnComponentRemove","handleComponentRemoval","registerOnCompAspectReCalc","registerService","PreviewService","previewSchema","exports","Slot","withType","BundlerAspect","BuilderAspect","ComponentAspect","UIAspect","CacheAspect","EnvsAspect","WorkspaceAspect","PkgAspect","PubsubAspect","AspectLoaderAspect","LoggerAspect","DependencyResolverAspect","GraphqlAspect","WatcherAspect","ScopeAspect","addRuntime"],"sources":["preview.main.runtime.ts"],"sourcesContent":["import { ArtifactFactory, BuilderAspect } from '@teambit/builder';\nimport type { BuilderMain } from '@teambit/builder';\nimport { Asset, BundlerAspect, BundlerMain } from '@teambit/bundler';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport { MainRuntime } from '@teambit/cli';\nimport {\n Component,\n ComponentAspect,\n ComponentMain,\n ComponentMap,\n ComponentID,\n ResolveAspectsOptions,\n} from '@teambit/component';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { EnvsMain, ExecutionContext, PreviewEnv } from '@teambit/envs';\nimport { Slot, SlotRegistry, Harmony } from '@teambit/harmony';\nimport { UIAspect, UiMain, UIRoot } from '@teambit/ui';\nimport { CacheAspect, CacheMain } from '@teambit/cache';\nimport { CACHE_ROOT } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport objectHash from 'object-hash';\nimport { uniq } from 'lodash';\nimport { writeFileSync, existsSync, mkdirSync, ensureDirSync, writeJSONSync } from 'fs-extra';\nimport { join } from 'path';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport { AspectLoaderAspect, getAspectDir, getAspectDirFromBvm } from '@teambit/aspect-loader';\nimport type { AspectDefinition, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ArtifactFiles } from '@teambit/component.sources';\nimport { WatcherAspect, WatcherMain } from '@teambit/watcher';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { ONLY_OVERVIEW, isFeatureEnabled } from '@teambit/harmony.modules.feature-toggle';\nimport { BundlingStrategyNotFound } from './exceptions';\nimport { generateLink, MainModulesMap } from './generate-link';\nimport { PreviewArtifact } from './preview-artifact';\nimport { PreviewDefinition } from './preview-definition';\nimport { PreviewAspect, PreviewRuntime } from './preview.aspect';\nimport { PreviewRoute } from './preview.route';\nimport { PreviewTask, PREVIEW_TASK_NAME } from './preview.task';\nimport { BundlingStrategy } from './bundling-strategy';\nimport {\n EnvBundlingStrategy,\n ComponentBundlingStrategy,\n COMPONENT_STRATEGY_ARTIFACT_NAME,\n COMPONENT_STRATEGY_SIZE_KEY_NAME,\n ENV_PREVIEW_STRATEGY_NAME,\n ENV_STRATEGY_ARTIFACT_NAME,\n COMPONENT_PREVIEW_STRATEGY_NAME,\n} from './strategies';\nimport { ExecutionRef } from './execution-ref';\nimport { PreviewStartPlugin } from './preview.start-plugin';\nimport {\n EnvPreviewTemplateTask,\n GENERATE_ENV_TEMPLATE_TASK_NAME,\n getArtifactDef as getEnvTemplateArtifactDef,\n} from './env-preview-template.task';\nimport { EnvTemplateRoute } from './env-template.route';\nimport { ComponentPreviewRoute } from './component-preview.route';\nimport { previewSchema } from './preview.graphql';\nimport { PreviewAssetsRoute } from './preview-assets.route';\nimport { PreviewService } from './preview.service';\nimport { PUBLIC_DIR, RUNTIME_NAME, buildPreBundlePreview, generateBundlePreviewEntry } from './pre-bundle';\nimport { BUNDLE_DIR, PreBundlePreviewTask } from './pre-bundle.task';\nimport { createBundleHash, getBundlePath, readBundleHash } from './pre-bundle-utils';\n\nconst noopResult = {\n results: [],\n toString: () => `updating link file`,\n};\n\nconst DEFAULT_TEMP_DIR = join(CACHE_ROOT, PreviewAspect.id);\n\nexport type PreviewDefinitionRegistry = SlotRegistry<PreviewDefinition>;\n\nexport type PreviewStrategyName = 'env' | 'component';\n\nexport type PreviewFiles = {\n files: string[];\n isBundledWithEnv: boolean;\n};\n\nexport type ComponentPreviewSizedFile = Asset;\n\nexport type ComponentPreviewSize = {\n files: ComponentPreviewSizedFile[];\n assets: ComponentPreviewSizedFile[];\n totalFiles: number;\n compressedTotalFiles?: number;\n totalAssets: number;\n compressedTotalAssets?: number;\n total: number;\n compressedTotal?: number;\n};\n\nexport type ComponentPreviewMetaData = {\n size?: ComponentPreviewSize;\n};\n\nexport type PreviewVariantConfig = {\n isScaling?: boolean;\n};\n\n/**\n * Preview data that stored on the component on load\n */\nexport type PreviewComponentData = PreviewAnyComponentData & PreviewEnvComponentData;\n\n/**\n * Preview data that stored on the component on load for any component\n */\nexport type PreviewAnyComponentData = {\n doesScaling?: boolean;\n /**\n * The strategy configured by the component's env\n */\n strategyName?: PreviewStrategyName;\n /**\n * Does the component has a bundle for the component itself (separated from the compositions/docs)\n * Calculated by the component's env\n */\n splitComponentBundle?: boolean;\n\n /**\n * don't allow other aspects implementing a preview definition to be included in your preview.\n */\n onlyOverview?: boolean;\n\n /**\n * use name query params to select a specific composition to render.\n */\n useNameParam?: boolean;\n\n /**\n * don't allow other aspects implementing a preview definition to be included in your preview.\n */\n skipIncludes?: boolean;\n};\n\n/**\n * Preview data that stored on the component on load if the component is an env\n */\nexport type PreviewEnvComponentData = {\n isScaling?: boolean;\n supportsOnlyOverview?: boolean;\n supportsUseNameParam?: boolean;\n};\n\nexport type PreviewConfig = {\n bundlingStrategy?: string;\n disabled: boolean;\n /**\n * limit concurrent components when running the bundling step for your bundler during generate components preview task.\n * this helps mitigate large memory consumption for the build pipeline. This may increase the overall time for the generate-preview task, but reduce memory footprint.\n * default - no limit.\n */\n maxChunkSize?: number;\n onlyOverview?: boolean;\n};\n\nexport type EnvPreviewConfig = {\n strategyName?: PreviewStrategyName;\n splitComponentBundle?: boolean;\n};\n\nexport type BundlingStrategySlot = SlotRegistry<BundlingStrategy>;\n\nexport type GenerateLinkFn = (prefix: string, componentMap: ComponentMap<string[]>, defaultModule?: string) => string;\n\nexport class PreviewMain {\n constructor(\n /**\n * harmony context.\n */\n private harmony: Harmony,\n\n /**\n * slot for preview definitions.\n */\n private previewSlot: PreviewDefinitionRegistry,\n\n private ui: UiMain,\n\n private cache: CacheMain,\n\n private envs: EnvsMain,\n\n private componentAspect: ComponentMain,\n\n private pkg: PkgMain,\n\n private aspectLoader: AspectLoaderMain,\n\n readonly config: PreviewConfig,\n\n private bundlingStrategySlot: BundlingStrategySlot,\n\n private builder: BuilderMain,\n\n private workspace: Workspace | undefined,\n\n private logger: Logger,\n\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n get tempFolder(): string {\n return this.workspace?.getTempDir(PreviewAspect.id) || DEFAULT_TEMP_DIR;\n }\n\n getComponentBundleSize(component: Component): ComponentPreviewSize | undefined {\n const data = this.builder.getDataByAspect(component, PreviewAspect.id);\n\n if (!data) return undefined;\n return data[COMPONENT_STRATEGY_SIZE_KEY_NAME];\n }\n\n async getPreview(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByAspectAndTaskName(\n component,\n PreviewAspect.id,\n PREVIEW_TASK_NAME\n );\n if (!artifacts) return undefined;\n return new PreviewArtifact(artifacts);\n }\n\n /**\n * Get a list of all the artifact files generated during the GeneratePreview task\n * @param component\n * @returns\n */\n async getPreviewFiles(component: Component): Promise<PreviewFiles | undefined> {\n const artifacts = await this.getPreview(component);\n const isBundledWithEnv = await this.isBundledWithEnv(component);\n if (!artifacts) return undefined;\n return {\n files: artifacts.getPaths(),\n isBundledWithEnv,\n };\n }\n\n /**\n * Get the preview config of the component.\n * (config that was set by variants or on bitmap)\n * @param component\n * @returns\n */\n getPreviewAspectConfig(component: Component): PreviewVariantConfig | undefined {\n return component.state.aspects.get(PreviewAspect.id)?.config;\n }\n\n /**\n * Get the preview data of the component.\n * (data that was calculated during the on load process)\n * @param component\n * @returns\n */\n getPreviewData(component: Component): PreviewComponentData | undefined {\n const previewData = component.state.aspects.get(PreviewAspect.id)?.data;\n return previewData;\n }\n\n /**\n * check if the current version of env component supports skipping other included previews\n * @param envComponent\n * @returns\n */\n doesEnvIncludesOnlyOverview(envComponent: Component): boolean {\n const previewData = this.getPreviewData(envComponent);\n return !!previewData?.supportsOnlyOverview;\n }\n\n /**\n * check if the current version of env component supports name query param\n * @param envComponent\n * @returns\n */\n doesEnvUseNameParam(envComponent: Component): boolean {\n const previewData = this.getPreviewData(envComponent);\n return !!previewData?.supportsUseNameParam;\n }\n\n private async calculateIncludeOnlyOverview(component: Component): Promise<boolean> {\n if (this.envs.isUsingCoreEnv(component)) {\n return true;\n }\n const envComponent = await this.envs.getEnvComponent(component);\n return this.doesEnvIncludesOnlyOverview(envComponent);\n }\n\n private async calculateUseNameParam(component: Component): Promise<boolean> {\n if (this.envs.isUsingCoreEnv(component)) {\n return true;\n }\n const envComponent = await this.envs.getEnvComponent(component);\n return this.doesEnvUseNameParam(envComponent);\n }\n\n /**\n * Calculate preview data on component load\n * @param component\n * @returns\n */\n async calcPreviewData(component: Component): Promise<PreviewComponentData> {\n const doesScaling = await this.calcDoesScalingForComponent(component);\n const dataFromEnv = await this.calcPreviewDataFromEnv(component);\n const envData = (await this.calculateDataForEnvComponent(component)) || {};\n const onlyOverview = await this.calculateIncludeOnlyOverview(component);\n const useNameParam = await this.calculateUseNameParam(component);\n\n const data: PreviewComponentData = {\n doesScaling,\n onlyOverview,\n useNameParam,\n ...dataFromEnv,\n ...envData,\n };\n return data;\n }\n\n /**\n * Calculate preview data on component that configured by its env\n * @param component\n * @returns\n */\n async calcPreviewDataFromEnv(\n component: Component\n ): Promise<Omit<PreviewAnyComponentData, 'doesScaling' | 'onlyOverview' | 'useNameParam'> | undefined> {\n // Prevent infinite loop that caused by the fact that the env of the aspect env or the env env is the same as the component\n // so we can't load it since during load we are trying to get env component and load it again\n if (\n component.id.toStringWithoutVersion() === 'teambit.harmony/aspect' ||\n component.id.toStringWithoutVersion() === 'teambit.envs/env'\n ) {\n return {\n strategyName: COMPONENT_PREVIEW_STRATEGY_NAME,\n splitComponentBundle: false,\n };\n }\n\n const env = this.envs.getEnv(component).env;\n const envPreviewConfig = this.getEnvPreviewConfig(env);\n const data = {\n strategyName: envPreviewConfig?.strategyName,\n splitComponentBundle: envPreviewConfig?.splitComponentBundle ?? false,\n };\n return data;\n }\n\n /**\n * calculate extra preview data for env components (on load)\n * @param envComponent\n * @returns\n */\n private async calculateDataForEnvComponent(envComponent: Component): Promise<PreviewEnvComponentData | undefined> {\n const isEnv = this.envs.isEnv(envComponent);\n\n // If the component is not an env, we don't want to store anything in the data\n if (!isEnv) return undefined;\n\n const previewAspectConfig = this.getPreviewAspectConfig(envComponent);\n\n const data = {\n // default to true if the env doesn't have a preview config\n isScaling: previewAspectConfig?.isScaling ?? true,\n supportsOnlyOverview: true,\n supportsUseNameParam: true,\n };\n return data;\n }\n\n /**\n * Check if the component preview bundle contain the env as part of the bundle or only the component code\n * (we used in the past to bundle them together, there might also be specific envs which still uses the env strategy)\n * This should be used only for calculating the value on load.\n * otherwise, use the isBundledWithEnv function\n * @param component\n * @returns\n */\n async calcIsBundledWithEnv(component: Component): Promise<boolean> {\n const envPreviewData = await this.calcPreviewDataFromEnv(component);\n return envPreviewData?.strategyName !== 'component';\n }\n\n /**\n * Check if the component preview bundle contain the env as part of the bundle or only the component code\n * (we used in the past to bundle them together, there might also be specific envs which still uses the env strategy)\n * @param component\n * @returns\n */\n async isBundledWithEnv(component: Component): Promise<boolean> {\n const data = await this.getPreviewData(component);\n // For components that tagged in the past we didn't store the data, so we calculate it the old way\n // We comparing the strategyName to undefined to cover a specific case when it doesn't exist at all.\n if (!data || data.strategyName === undefined) return this.isBundledWithEnvBackward(component);\n return data.strategyName === ENV_PREVIEW_STRATEGY_NAME;\n }\n\n /**\n * This is a legacy calculation for the isBundledWithEnv\n * This calc is based on the component artifacts which is very expensive operation as it requires to fetch and load the artifacts\n * See the new implementation in the isBundledWithEnv method\n * @param component\n * @returns\n */\n private async isBundledWithEnvBackward(component: Component): Promise<boolean> {\n const artifacts = await this.builder.getArtifactsVinylByAspectAndName(\n component,\n PreviewAspect.id,\n COMPONENT_STRATEGY_ARTIFACT_NAME\n );\n if (!artifacts || !artifacts.length) return true;\n\n return false;\n }\n\n // This used on component load to calc the final result of support is scaling for a given component\n // This calc based on the env, env data, env preview config and more\n // if you want to get the final result use the `doesScaling` method below\n // This should be used only for component load\n private async calcDoesScalingForComponent(component: Component): Promise<boolean> {\n const isBundledWithEnv = await this.calcIsBundledWithEnv(component);\n // if it's a core env and the env template is apart from the component it means the template bundle already contain the scaling functionality\n if (this.envs.isUsingCoreEnv(component)) {\n // If the component is new, no point to check the is bundle with env (there is no artifacts so it will for sure return false)\n // If it's new, and we are here, it means that we already use a version of the env that support scaling\n const isNew = await component.isNew();\n if (isNew) {\n return true;\n }\n return isBundledWithEnv === false;\n }\n // For envs that bundled with the env return true always\n if (isBundledWithEnv) {\n return true;\n }\n const envComponent = await this.envs.getEnvComponent(component);\n return this.isEnvSupportScaling(envComponent);\n }\n\n /**\n * can the current component preview scale in size for different preview sizes.\n * this calculation is based on the env of the component and if the env of the component support it.\n */\n async doesScaling(component: Component): Promise<boolean> {\n const inWorkspace = await this.workspace?.hasId(component.id);\n // Support case when we have the dev server for the env, in that case we calc the data of the env as we can't rely on the env data from the scope\n // since we bundle it for the dev server again\n if (inWorkspace) {\n // if it's a core env and the env template is apart from the component it means the template bundle already contain the scaling functionality\n if (this.envs.isUsingCoreEnv(component)) {\n const isBundledWithEnv = await this.isBundledWithEnv(component);\n // If the component is new, no point to check the is bundle with env (there is no artifacts so it will for sure return false)\n // If it's new, and we are here, it means that we already use a version of the env that support scaling\n const isNew = await component.isNew();\n if (isNew) {\n return true;\n }\n return isBundledWithEnv === false;\n }\n const envComponent = await this.envs.getEnvComponent(component);\n const envSupportScaling = await this.calculateIsEnvSupportScaling(envComponent);\n return envSupportScaling ?? true;\n }\n const previewData = this.getPreviewData(component);\n if (!previewData) return false;\n // Get the does scaling (the new calculation) or the old calc used in isScaling (between versions (about) 848 and 860)\n if (previewData.doesScaling !== undefined) return previewData.doesScaling;\n // in case this component were tagged with versions between 848 and 860 we need to use the old calculation\n // together with the env calculation\n // In that case it means the component already tagged, so we take the env calc from the env data and not re-calc it\n if (previewData.isScaling) {\n const envComponent = await this.envs.getEnvComponent(component);\n const envSupportScaling = this.isEnvSupportScaling(envComponent);\n return !!envSupportScaling;\n }\n return false;\n }\n\n /**\n * Check if the current version of the env support scaling\n * @param envComponent\n * @returns\n */\n isEnvSupportScaling(envComponent: Component): boolean {\n const previewData = this.getPreviewData(envComponent);\n return !!previewData?.isScaling;\n }\n\n async isSupportSkipIncludes(component: Component) {\n if (!this.config.onlyOverview && !isFeatureEnabled(ONLY_OVERVIEW)) return false;\n const isCore = this.envs.isUsingCoreEnv(component);\n if (isCore) return false;\n\n const envComponent = await this.envs.getEnvComponent(component);\n const previewData = this.getPreviewData(envComponent);\n return !!previewData?.skipIncludes;\n }\n\n /**\n * check if the component preview should only include the overview (skipping rendering of the compostions and properties table)\n */\n async getOnlyOverview(component: Component): Promise<boolean> {\n if (!this.config.onlyOverview && !isFeatureEnabled(ONLY_OVERVIEW)) return false;\n const previewData = this.getPreviewData(component);\n return previewData?.onlyOverview ?? false;\n }\n\n /**\n * check if the component preview should include the name query param\n */\n async getUseNameParam(component: Component): Promise<boolean> {\n const previewData = this.getPreviewData(component);\n return previewData?.useNameParam ?? false;\n }\n\n /**\n * This function is calculate the isScaling support flag for the component preview.\n * This is calculated only for the env component and not for the component itself.\n * It should be only used during the (env) component on load.\n * Once the component load, you should only use the `isEnvSupportScaling` to fetch it from the calculated data.\n * If you want to check if an env for a given component support scaling, use the `isScaling` function.\n * @param component\n * @returns\n */\n private async calculateIsEnvSupportScaling(envComponent: Component): Promise<boolean | undefined> {\n const isEnv = this.envs.isEnv(envComponent);\n // If the component is not an env, we don't want to store anything in the data\n if (!isEnv) return undefined;\n const previewAspectConfig = this.getPreviewAspectConfig(envComponent);\n // default to true if the env doesn't have a preview config\n return previewAspectConfig?.isScaling ?? true;\n }\n\n /**\n * Check if the component preview bundle contain the header inside of it (legacy)\n * today we are not including the header inside anymore\n * @param component\n * @returns\n */\n async isLegacyHeader(component: Component): Promise<boolean> {\n // these envs had header in their docs\n const ENV_WITH_LEGACY_DOCS = ['react', 'env', 'aspect', 'lit', 'html', 'node', 'mdx', 'react-native', 'readme'];\n\n const artifacts = await this.builder.getArtifactsVinylByAspectAndName(\n component,\n PreviewAspect.id,\n ENV_STRATEGY_ARTIFACT_NAME\n );\n const envType = this.envs.getEnvData(component).type;\n return !!artifacts && !!artifacts.length && ENV_WITH_LEGACY_DOCS.includes(envType || '');\n }\n\n /**\n * Getting the env template artifact\n * This should be called with the env itself or it will return undefined\n * If you want to get the env template from the env of the component,\n * use: getEnvTemplateFromComponentEnv below\n *\n * @param component\n * @returns\n */\n async getEnvTemplate(component: Component): Promise<PreviewArtifact | undefined> {\n const artifacts = await this.builder.getArtifactsVinylByAspectAndTaskName(\n component,\n PreviewAspect.id,\n GENERATE_ENV_TEMPLATE_TASK_NAME\n );\n if (!artifacts || !artifacts.length) return undefined;\n\n return new PreviewArtifact(artifacts);\n }\n\n /**\n * This is a special method to get a core env template\n * As the core envs doesn't exist in the scope we need to bring it from other place\n * We will bring it from the core env package files\n */\n private async getCoreEnvTemplate(envId: string): Promise<PreviewArtifact | undefined> {\n const coreEnvDir = getAspectDir(envId);\n // const finalDir = join(coreEnvDir, getEnvTemplateArtifactDirectory());\n const artifactDef = getEnvTemplateArtifactDef()[0];\n const artifactFactory = new ArtifactFactory();\n\n let rootDir = artifactFactory.getRootDir(coreEnvDir, artifactDef);\n if (!existsSync(rootDir)) {\n // fallback to the bvm folder\n const coreEnvDirFromBvm = getAspectDirFromBvm(envId);\n rootDir = artifactFactory.getRootDir(coreEnvDirFromBvm, artifactDef);\n }\n if (!existsSync(rootDir)) {\n return undefined;\n }\n const paths = artifactFactory.resolvePaths(rootDir, artifactDef);\n if (!paths || !paths.length) {\n return undefined;\n }\n const artifactFiles = new ArtifactFiles(paths);\n\n artifactFiles.populateVinylsFromPaths(rootDir);\n return new PreviewArtifact(artifactFiles.vinyls);\n }\n\n /**\n * This will fetch the component env, then will take the env template from the component env\n * @param component\n */\n async getEnvTemplateFromComponentEnv(component: Component): Promise<PreviewArtifact | undefined> {\n const envId = this.envs.getEnvId(component);\n return this.getEnvTemplateByEnvId(envId);\n }\n\n /**\n * This will fetch the component env, then will take the env template from the component env\n * @param component\n */\n async getEnvTemplateByEnvId(envId: string): Promise<PreviewArtifact | undefined> {\n // Special treatment for core envs\n if (this.aspectLoader.isCoreEnv(envId)) {\n return this.getCoreEnvTemplate(envId);\n }\n const host = this.componentAspect.getHost();\n const resolvedEnvId = await host.resolveComponentId(envId);\n const envComponent = await host.get(resolvedEnvId);\n if (!envComponent) {\n throw new BitError(`can't load env. env id is ${envId}`);\n }\n return this.getEnvTemplate(envComponent);\n }\n\n getDefs(): PreviewDefinition[] {\n return this.previewSlot.values();\n }\n\n private writeHash = new Map<string, string>();\n private timestamp = Date.now();\n\n private ensureTempPackage() {\n const workspacePath = this.workspace?.path;\n const tempPackageDir = workspacePath ? join(workspacePath, 'node_modules', '@teambit', '_local') : '';\n if (tempPackageDir) {\n ensureDirSync(tempPackageDir);\n writeJSONSync(join(tempPackageDir, 'package.json'), { name: '@teambit/_local' });\n writeFileSync(join(tempPackageDir, 'index.js'), 'module.exports = {};');\n return tempPackageDir;\n }\n }\n\n /**\n * write a link to load custom modules dynamically.\n * @param prefix write\n * @param moduleMap map of components to module paths to require.\n * @param defaultModule\n * @param dirName\n */\n writeLink(\n prefix: string,\n moduleMap: ComponentMap<string[]>,\n mainModulesMap: MainModulesMap,\n dirName: string,\n isSplitComponentBundle: boolean\n ) {\n const tempPackageDir = this.ensureTempPackage();\n const contents = generateLink(prefix, moduleMap, mainModulesMap, isSplitComponentBundle, tempPackageDir);\n return this.writeLinkContents(contents, dirName, prefix);\n }\n\n writeLinkContents(contents: string, targetDir: string, prefix: string) {\n const hash = objectHash(contents);\n const targetPath = join(targetDir, `${prefix}-${this.timestamp}.js`);\n\n // write only if link has changed (prevents triggering fs watches)\n if (this.writeHash.get(targetPath) !== hash) {\n writeFileSync(targetPath, contents);\n this.writeHash.set(targetPath, hash);\n }\n\n return targetPath;\n }\n\n private executionRefs = new Map<string, ExecutionRef>();\n\n private async getPreviewTarget(\n /** execution context (of the specific env) */\n context: ExecutionContext\n ): Promise<string[]> {\n // store context for later link-file updates\n // also register related envs that this context is acting on their behalf\n [context.id, ...context.relatedContexts].forEach((ctxId) => {\n this.executionRefs.set(ctxId, new ExecutionRef(context));\n });\n\n const previewRuntime = await this.writePreviewEntry(context);\n const linkFiles = await this.updateLinkFiles(context.components, context);\n\n return [...linkFiles, previewRuntime];\n }\n\n private async writePreviewEntry(context: { components: Component[] }, aspectsIdsToNotFilterOut: string[] = []) {\n const { rebuild, skipUiBuild } = this.ui.runtimeOptions;\n\n const [name, uiRoot] = this.getUi();\n const cacheKey = `${uiRoot.path}|${RUNTIME_NAME}`;\n const currentBundleHash = await createBundleHash(uiRoot, RUNTIME_NAME);\n const preBundleHash = readBundleHash(PreviewAspect.id, BUNDLE_DIR, '');\n const workspaceBundleDir = join(uiRoot.path, PUBLIC_DIR);\n const lastBundleHash = await this.cache.get(cacheKey);\n\n let bundlePath = '';\n\n // ensure the pre-bundle is ready\n if (!rebuild && !existsSync(workspaceBundleDir) && (currentBundleHash === preBundleHash || skipUiBuild)) {\n // use pre-bundle\n bundlePath = getBundlePath(PreviewAspect.id, BUNDLE_DIR, '') as string;\n } else if (!rebuild && existsSync(workspaceBundleDir) && (currentBundleHash === lastBundleHash || skipUiBuild)) {\n // use workspace bundle\n bundlePath = workspaceBundleDir;\n } else {\n // do build\n const resolvedAspects = await this.resolveAspects(PreviewRuntime.name, undefined, uiRoot);\n const filteredAspects = this.filterAspectsByExecutionContext(resolvedAspects, context, aspectsIdsToNotFilterOut);\n\n await buildPreBundlePreview(filteredAspects);\n bundlePath = workspaceBundleDir;\n await this.cache.set(cacheKey, currentBundleHash);\n }\n\n // prepare the runtime entry\n const previewRuntime = await generateBundlePreviewEntry(name, bundlePath, this.harmony.config.toObject());\n\n return previewRuntime;\n }\n\n private updateLinkFiles(components: Component[] = [], context: ExecutionContext) {\n const previews = this.previewSlot.values();\n const paths = previews.map(async (previewDef) => {\n const defaultTemplatePath = await previewDef.renderTemplatePathByEnv?.(context.env);\n const visitedEnvs = new Set();\n const mainModulesMap: MainModulesMap = {\n // @ts-ignore\n default: defaultTemplatePath,\n [context.envDefinition.id]: defaultTemplatePath,\n };\n\n const map = await previewDef.getModuleMap(components);\n const isSplitComponentBundle = this.getEnvPreviewConfig().splitComponentBundle ?? false;\n const withPathsP = map.asyncMap(async (files, component) => {\n const envDef = this.envs.getEnv(component);\n const environment = envDef.env;\n const envId = envDef.id;\n\n if (!mainModulesMap[envId] && !visitedEnvs.has(envId)) {\n const modulePath = await previewDef.renderTemplatePathByEnv?.(envDef.env);\n if (modulePath) {\n mainModulesMap[envId] = modulePath;\n }\n visitedEnvs.add(envId);\n }\n const compilerInstance = environment.getCompiler?.();\n const modulePath =\n compilerInstance?.getPreviewComponentRootPath?.(component) || this.pkg.getRuntimeModulePath(component);\n return files.map((file) => {\n if (!this.workspace || !compilerInstance) {\n return file.path;\n }\n const distRelativePath = compilerInstance.getDistPathBySrcPath(file.relative);\n return join(this.workspace.path, modulePath, distRelativePath);\n });\n // return files.map((file) => file.path);\n });\n const withPaths = await withPathsP;\n\n const dirPath = join(this.tempFolder, context.id);\n if (!existsSync(dirPath)) mkdirSync(dirPath, { recursive: true });\n\n const link = this.writeLink(previewDef.prefix, withPaths, mainModulesMap, dirPath, isSplitComponentBundle);\n return link;\n });\n\n return Promise.all(paths);\n }\n\n async writePreviewRuntime(context: { components: Component[] }, aspectsIdsToNotFilterOut: string[] = []) {\n const [name, uiRoot] = this.getUi();\n const resolvedAspects = await this.resolveAspects(PreviewRuntime.name, undefined, uiRoot);\n const filteredAspects = this.filterAspectsByExecutionContext(resolvedAspects, context, aspectsIdsToNotFilterOut);\n const filePath = await this.ui.generateRoot(filteredAspects, name, 'preview', PreviewAspect.id);\n return filePath;\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n uiRoot?: UIRoot,\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n const root = uiRoot || this.getUi()[1];\n runtimeName = runtimeName || MainRuntime.name;\n const resolvedAspects = await root.resolveAspects(runtimeName, componentIds, opts);\n return resolvedAspects;\n }\n\n private getUi() {\n const ui = this.ui.getUi();\n if (!ui) throw new Error('ui not found');\n return ui;\n }\n\n /**\n * Filter the aspects to have only aspects that are:\n * 1. core aspects\n * 2. configured on the host (workspace/scope)\n * 3. used by at least one component from the context\n * @param aspects\n * @param context\n */\n private filterAspectsByExecutionContext(\n aspects: AspectDefinition[],\n context: { components: Component[] },\n aspectsIdsToNotFilterOut: string[] = []\n ) {\n let allComponentContextAspects: string[] = [];\n allComponentContextAspects = context.components.reduce((acc, curr) => {\n return acc.concat(curr.state.aspects.ids);\n }, allComponentContextAspects);\n const hostAspects = Object.keys(this.harmony.config.toObject());\n const allAspectsToInclude = uniq(hostAspects.concat(allComponentContextAspects));\n const filtered = aspects.filter((aspect) => {\n if (!aspect.getId) {\n return false;\n }\n return (\n this.aspectLoader.isCoreAspect(aspect.getId) ||\n allAspectsToInclude.includes(aspect.getId) ||\n aspectsIdsToNotFilterOut.includes(aspect.getId)\n );\n });\n\n return filtered;\n }\n\n private getDefaultStrategies() {\n return [\n new EnvBundlingStrategy(this, this.pkg, this.dependencyResolver),\n new ComponentBundlingStrategy(this, this.pkg, this.dependencyResolver, this.logger),\n ];\n }\n\n // TODO - executionContext should be responsible for updating components list, and emit 'update' events\n // instead we keep track of changes\n private handleComponentChange = async (c: Component, updater: (currentComponents: ExecutionRef) => void) => {\n const env = this.envs.getEnv(c);\n const envId = env.id.toString();\n\n const executionRef = this.executionRefs.get(envId);\n if (!executionRef) {\n this.logger.warn(\n `failed to update link file for component \"${c.id.toString()}\" - could not find execution context for ${envId}`\n );\n return noopResult;\n }\n\n // add / remove / etc\n updater(executionRef);\n\n await this.updateLinkFiles(executionRef.currentComponents, executionRef.executionCtx);\n return noopResult;\n };\n\n private handleComponentRemoval = (cId: ComponentID) => {\n let component: Component | undefined;\n this.executionRefs.forEach((components) => {\n const found = components.get(cId);\n if (found) component = found;\n });\n if (!component) return Promise.resolve(noopResult);\n\n return this.handleComponentChange(component, (currentComponents) => currentComponents.remove(cId));\n };\n\n getEnvPreviewConfig(env?: PreviewEnv): EnvPreviewConfig {\n const config = env?.getPreviewConfig && typeof env?.getPreviewConfig === 'function' ? env?.getPreviewConfig() : {};\n\n return config;\n }\n\n /**\n * return the configured bundling strategy.\n */\n getBundlingStrategy(env?: PreviewEnv): BundlingStrategy {\n const defaultStrategies = this.getDefaultStrategies();\n const envPreviewConfig = this.getEnvPreviewConfig(env);\n const strategyFromEnv = envPreviewConfig?.strategyName;\n const strategyName = strategyFromEnv || this.config.bundlingStrategy || 'env';\n const strategies = this.bundlingStrategySlot.values().concat(defaultStrategies);\n const selected = strategies.find((strategy) => {\n return strategy.name === strategyName;\n });\n\n if (!selected) throw new BundlingStrategyNotFound(strategyName);\n\n return selected;\n }\n\n /**\n * register a new bundling strategy. default available strategies are `env` and ``\n */\n registerBundlingStrategy(bundlingStrategy: BundlingStrategy) {\n this.bundlingStrategySlot.register(bundlingStrategy);\n return this;\n }\n\n /**\n * register a new preview definition.\n */\n registerDefinition(previewDef: PreviewDefinition) {\n this.previewSlot.register(previewDef);\n }\n\n static slots = [Slot.withType<PreviewDefinition>(), Slot.withType<BundlingStrategy>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n BundlerAspect,\n BuilderAspect,\n ComponentAspect,\n UIAspect,\n CacheAspect,\n EnvsAspect,\n WorkspaceAspect,\n PkgAspect,\n PubsubAspect,\n AspectLoaderAspect,\n LoggerAspect,\n DependencyResolverAspect,\n GraphqlAspect,\n WatcherAspect,\n ScopeAspect,\n ];\n\n static defaultConfig = {\n disabled: false,\n onlyOverview: false,\n };\n\n static async provider(\n // eslint-disable-next-line max-len\n [\n bundler,\n builder,\n componentExtension,\n uiMain,\n cache,\n envs,\n workspace,\n pkg,\n pubsub,\n aspectLoader,\n loggerMain,\n dependencyResolver,\n graphql,\n watcher,\n scope,\n ]: [\n BundlerMain,\n BuilderMain,\n ComponentMain,\n UiMain,\n CacheMain,\n EnvsMain,\n Workspace | undefined,\n PkgMain,\n PubsubMain,\n AspectLoaderMain,\n LoggerMain,\n DependencyResolverMain,\n GraphqlMain,\n WatcherMain,\n ScopeMain,\n ],\n config: PreviewConfig,\n [previewSlot, bundlingStrategySlot]: [PreviewDefinitionRegistry, BundlingStrategySlot],\n harmony: Harmony\n ) {\n const logger = loggerMain.createLogger(PreviewAspect.id);\n // app.registerApp(new PreviewApp());\n const preview = new PreviewMain(\n harmony,\n previewSlot,\n uiMain,\n cache,\n envs,\n componentExtension,\n pkg,\n aspectLoader,\n config,\n bundlingStrategySlot,\n builder,\n workspace,\n logger,\n dependencyResolver\n );\n\n if (workspace)\n uiMain.registerStartPlugin(new PreviewStartPlugin(workspace, bundler, uiMain, pubsub, logger, watcher));\n\n componentExtension.registerRoute([\n new PreviewRoute(preview, logger),\n new ComponentPreviewRoute(preview, logger),\n // @ts-ignore\n new EnvTemplateRoute(preview, logger),\n new PreviewAssetsRoute(preview, logger),\n ]);\n\n bundler.registerTarget([\n {\n entry: preview.getPreviewTarget.bind(preview),\n },\n ]);\n\n if (!config.disabled)\n builder.registerBuildTasks([\n new EnvPreviewTemplateTask(preview, envs, aspectLoader, dependencyResolver, logger),\n new PreviewTask(bundler, preview, dependencyResolver, logger),\n new PreBundlePreviewTask(uiMain, logger),\n ]);\n\n if (workspace) {\n workspace.registerOnComponentAdd((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.add(c))\n );\n workspace.registerOnComponentLoad(async (component) => {\n return preview.calcPreviewData(component);\n });\n workspace.registerOnComponentChange((c) =>\n preview.handleComponentChange(c, (currentComponents) => currentComponents.update(c))\n );\n workspace.registerOnComponentRemove((cId) => preview.handleComponentRemoval(cId));\n }\n if (scope) {\n scope.registerOnCompAspectReCalc((c) => preview.calcPreviewData(c));\n }\n\n envs.registerService(new PreviewService());\n\n graphql.register(previewSchema(preview));\n\n return preview;\n }\n}\n\nPreviewAspect.addRuntime(PreviewMain);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["RenderingContext","constructor","contexts","options","get","aspectId","contextFactory","exports"],"sources":["rendering-context.ts"],"sourcesContent":["import { RenderingContextSlot } from './preview.preview.runtime';\n\nexport type RenderingContextOptions = { aspectsFilter?: string[] };\nexport type RenderingContextProvider = (options: RenderingContextOptions) => { [key: string]: any };\n\nexport class RenderingContext {\n constructor(private contexts: RenderingContextSlot, private options: RenderingContextOptions = {}) {}\n\n /**\n * obtain rendering context of a specific aspect.\n */\n get(aspectId: string) {\n const contextFactory = this.contexts.get(aspectId);\n return contextFactory?.(this.options);\n }\n}\n"],"mappings":";;;;;;AAKO,MAAMA,gBAAgB,CAAC;EAC5BC,WAAWA,CAASC,QAA8B,EAAUC,OAAgC,GAAG,CAAC,CAAC,EAAE;IAAA,KAA/ED,QAA8B,GAA9BA,QAA8B;IAAA,KAAUC,OAAgC,GAAhCA,OAAgC;EAAQ;;EAEpG;AACF;AACA;EACEC,GAAGA,CAACC,QAAgB,EAAE;IACpB,MAAMC,cAAc,GAAG,IAAI,CAACJ,QAAQ,CAACE,GAAG,CAACC,QAAQ,CAAC;IAClD,OAAOC,cAAc,GAAG,IAAI,CAACH,OAAO,CAAC;EACvC;AACF;AAACI,OAAA,CAAAP,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["RenderingContext","constructor","contexts","options","get","aspectId","contextFactory","exports"],"sources":["rendering-context.ts"],"sourcesContent":["import { RenderingContextSlot } from './preview.preview.runtime';\n\nexport type RenderingContextOptions = { aspectsFilter?: string[] };\nexport type RenderingContextProvider = (options: RenderingContextOptions) => { [key: string]: any };\n\nexport class RenderingContext {\n constructor(\n private contexts: RenderingContextSlot,\n private options: RenderingContextOptions = {}\n ) {}\n\n /**\n * obtain rendering context of a specific aspect.\n */\n get(aspectId: string) {\n const contextFactory = this.contexts.get(aspectId);\n return contextFactory?.(this.options);\n }\n}\n"],"mappings":";;;;;;AAKO,MAAMA,gBAAgB,CAAC;EAC5BC,WAAWA,CACDC,QAA8B,EAC9BC,OAAgC,GAAG,CAAC,CAAC,EAC7C;IAAA,KAFQD,QAA8B,GAA9BA,QAA8B;IAAA,KAC9BC,OAAgC,GAAhCA,OAAgC;EACvC;;EAEH;AACF;AACA;EACEC,GAAGA,CAACC,QAAgB,EAAE;IACpB,MAAMC,cAAc,GAAG,IAAI,CAACJ,QAAQ,CAACE,GAAG,CAACC,QAAQ,CAAC;IAClD,OAAOC,cAAc,GAAG,IAAI,CAACH,OAAO,CAAC;EACvC;AACF;AAACI,OAAA,CAAAP,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","require","_fsExtra","_lodash","_component","_htmlTemplate","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ENV_STRATEGY_ARTIFACT_NAME","exports","EnvBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","htmlConfig","generateHtmlConfig","dev","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","entries","computePaths","html","components","hostDependencies","aliasHostDependencies","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","component","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","rootDir","getDirName","name","globPatterns","envName","id","replace","resolve","capsuleNetwork","capsulesRootDir","getPaths","files","capsule","compiler","getCompiler","file","join","path","getDistPathBySrcPath","relative","defs","previewMain","writePreviewRuntime","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","graphCapsules","getCapsule","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","default","flatten","toArray","concat","moduleMaps","Promise","all"],"sources":["env-strategy.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { flatten } from 'lodash';\nimport { ComponentMap } from '@teambit/component';\nimport { Compiler } from '@teambit/compiler';\nimport { AbstractVinyl } from '@teambit/component.sources';\nimport { Capsule } from '@teambit/isolator';\nimport { ComponentResult } from '@teambit/builder';\nimport { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { PkgMain } from '@teambit/pkg';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport { PreviewDefinition } from '../preview-definition';\nimport { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../bundler/html-template';\n\nexport const ENV_STRATEGY_ARTIFACT_NAME = 'preview';\n\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class EnvBundlingStrategy implements BundlingStrategy {\n name = 'env';\n\n constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const htmlConfig = this.generateHtmlConfig({ dev: context.dev });\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n html: [htmlConfig],\n components: context.components,\n outputPath,\n /* It's a path to the root of the host component. */\n // hostRootDir, handle this\n hostDependencies: peers,\n aliasHostDependencies: true,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext) {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: ENV_STRATEGY_ARTIFACT_NAME,\n globPatterns: ['public/**'],\n rootDir,\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewRuntime(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n { default: template || 'undefined' },\n outputPath,\n false\n );\n\n const files = flatten(paths.toArray().map(([, file]) => file)).concat([link]);\n\n if (template) return files.concat([template]);\n return files;\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n return flatten(moduleMaps.concat([previewMain]));\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","require","_fsExtra","_lodash","_component","_htmlTemplate","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ENV_STRATEGY_ARTIFACT_NAME","exports","EnvBundlingStrategy","constructor","preview","pkg","dependencyResolver","computeTargets","context","previewDefs","outputPath","getOutputPath","existsSync","mkdirpSync","htmlConfig","generateHtmlConfig","dev","peers","getPreviewHostDependenciesFromEnv","envDefinition","env","entries","computePaths","html","components","hostDependencies","aliasHostDependencies","options","config","title","templateContent","cache","minify","computeResults","results","result","componentsResults","map","component","errors","err","message","warning","warnings","startTime","endTime","artifacts","getArtifactDef","rootDir","getDirName","name","globPatterns","envName","id","replace","resolve","capsuleNetwork","capsulesRootDir","getPaths","files","capsule","compiler","getCompiler","file","join","path","getDistPathBySrcPath","relative","defs","previewMain","writePreviewRuntime","moduleMapsPromise","previewDef","moduleMap","getModuleMap","paths","ComponentMap","as","graphCapsules","getCapsule","maybeFiles","get","compiledPaths","template","renderTemplatePath","link","writeLink","prefix","default","flatten","toArray","concat","moduleMaps","Promise","all"],"sources":["env-strategy.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { existsSync, mkdirpSync } from 'fs-extra';\nimport { flatten } from 'lodash';\nimport { ComponentMap } from '@teambit/component';\nimport { Compiler } from '@teambit/compiler';\nimport { AbstractVinyl } from '@teambit/component.sources';\nimport { Capsule } from '@teambit/isolator';\nimport { ComponentResult } from '@teambit/builder';\nimport { BundlerContext, BundlerHtmlConfig, BundlerResult } from '@teambit/bundler';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { PkgMain } from '@teambit/pkg';\nimport type { BundlingStrategy, ComputeTargetsContext } from '../bundling-strategy';\nimport { PreviewDefinition } from '../preview-definition';\nimport { PreviewMain } from '../preview.main.runtime';\nimport { html } from '../bundler/html-template';\n\nexport const ENV_STRATEGY_ARTIFACT_NAME = 'preview';\n\n/**\n * bundles all components in a given env into the same bundle.\n */\nexport class EnvBundlingStrategy implements BundlingStrategy {\n name = 'env';\n\n constructor(\n private preview: PreviewMain,\n private pkg: PkgMain,\n private dependencyResolver: DependencyResolverMain\n ) {}\n\n async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {\n const outputPath = this.getOutputPath(context);\n if (!existsSync(outputPath)) mkdirpSync(outputPath);\n const htmlConfig = this.generateHtmlConfig({ dev: context.dev });\n const peers = await this.dependencyResolver.getPreviewHostDependenciesFromEnv(context.envDefinition.env);\n\n return [\n {\n entries: await this.computePaths(outputPath, previewDefs, context),\n html: [htmlConfig],\n components: context.components,\n outputPath,\n /* It's a path to the root of the host component. */\n // hostRootDir, handle this\n hostDependencies: peers,\n aliasHostDependencies: true,\n },\n ];\n }\n\n private generateHtmlConfig(options: { dev?: boolean }): BundlerHtmlConfig {\n const config = {\n title: 'Preview',\n templateContent: html('Preview'),\n cache: false,\n minify: options?.dev ?? true,\n };\n return config;\n }\n\n async computeResults(context: BundlerContext, results: BundlerResult[]) {\n const result = results[0];\n\n const componentsResults: ComponentResult[] = result.components.map((component) => {\n return {\n component,\n errors: result.errors.map((err) => (typeof err === 'string' ? err : err.message)),\n warning: result.warnings,\n startTime: result.startTime,\n endTime: result.endTime,\n };\n });\n\n const artifacts = this.getArtifactDef(context);\n\n return {\n componentsResults,\n artifacts,\n };\n }\n\n private getArtifactDef(context: ComputeTargetsContext) {\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n const env: 'env' = 'env';\n const rootDir = this.getDirName(context);\n\n return [\n {\n name: ENV_STRATEGY_ARTIFACT_NAME,\n globPatterns: ['public/**'],\n rootDir,\n context: env,\n },\n ];\n }\n\n getDirName(context: ComputeTargetsContext) {\n const envName = context.id.replace('/', '__');\n return `${envName}-preview`;\n }\n\n private getOutputPath(context: ComputeTargetsContext) {\n return resolve(`${context.capsuleNetwork.capsulesRootDir}/${this.getDirName(context)}`);\n }\n\n private getPaths(context: ComputeTargetsContext, files: AbstractVinyl[], capsule: Capsule) {\n const compiler: Compiler = context.env.getCompiler();\n return files.map((file) => join(capsule.path, compiler.getDistPathBySrcPath(file.relative)));\n }\n\n private async computePaths(\n outputPath: string,\n defs: PreviewDefinition[],\n context: ComputeTargetsContext\n ): Promise<string[]> {\n const previewMain = await this.preview.writePreviewRuntime(context);\n const moduleMapsPromise = defs.map(async (previewDef) => {\n const moduleMap = await previewDef.getModuleMap(context.components);\n\n const paths = ComponentMap.as(context.components, (component) => {\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n const maybeFiles = moduleMap.get(component);\n if (!maybeFiles || !capsule) return [];\n const [, files] = maybeFiles;\n const compiledPaths = this.getPaths(context, files, capsule);\n return compiledPaths;\n });\n\n const template = previewDef.renderTemplatePath ? await previewDef.renderTemplatePath(context) : 'undefined';\n\n const link = this.preview.writeLink(\n previewDef.prefix,\n paths,\n { default: template || 'undefined' },\n outputPath,\n false\n );\n\n const files = flatten(paths.toArray().map(([, file]) => file)).concat([link]);\n\n if (template) return files.concat([template]);\n return files;\n });\n\n const moduleMaps = await Promise.all(moduleMapsPromise);\n\n return flatten(moduleMaps.concat([previewMain]));\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,10 @@ class ClickInsideAnIframeEventData {
8
8
  export class ClickInsideAnIframeEvent extends BitBaseEvent<ClickInsideAnIframeEventData> {
9
9
  static readonly TYPE = 'click-inside-an-iframe';
10
10
 
11
- constructor(readonly timestamp = Date.now(), readonly clickEvent) {
11
+ constructor(
12
+ readonly timestamp = Date.now(),
13
+ readonly clickEvent
14
+ ) {
12
15
  super(ClickInsideAnIframeEvent.TYPE, '0.0.1', timestamp, new ClickInsideAnIframeEventData(clickEvent));
13
16
  }
14
17
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/preview",
3
- "version": "1.0.425",
3
+ "version": "1.0.427",
4
4
  "homepage": "https://bit.cloud/teambit/preview/preview",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.preview",
8
8
  "name": "preview",
9
- "version": "1.0.425"
9
+ "version": "1.0.427"
10
10
  },
11
11
  "dependencies": {
12
12
  "mime": "2.5.2",
@@ -28,35 +28,35 @@
28
28
  "@teambit/component-id": "1.2.2",
29
29
  "@teambit/bit-error": "0.0.404",
30
30
  "@teambit/react.webpack.react-webpack": "1.0.37",
31
- "@teambit/express": "0.0.1101",
32
- "@teambit/logger": "0.0.1095",
33
- "@teambit/ui-foundation.ui.pages.static-error": "0.0.104",
34
- "@teambit/builder": "1.0.425",
35
- "@teambit/bundler": "1.0.425",
36
- "@teambit/component": "1.0.425",
37
- "@teambit/preview.ui.component-preview": "1.0.15",
38
- "@teambit/aspect-loader": "1.0.425",
39
- "@teambit/cli": "0.0.1002",
40
- "@teambit/dependency-resolver": "1.0.425",
41
- "@teambit/envs": "1.0.425",
31
+ "@teambit/express": "0.0.1103",
32
+ "@teambit/logger": "0.0.1097",
33
+ "@teambit/ui-foundation.ui.pages.static-error": "0.0.105",
34
+ "@teambit/builder": "1.0.427",
35
+ "@teambit/bundler": "1.0.427",
36
+ "@teambit/component": "1.0.427",
37
+ "@teambit/preview.ui.component-preview": "1.0.16",
38
+ "@teambit/aspect-loader": "1.0.427",
39
+ "@teambit/cli": "0.0.1004",
40
+ "@teambit/dependency-resolver": "1.0.427",
41
+ "@teambit/envs": "1.0.427",
42
42
  "@teambit/toolbox.path.to-windows-compatible-path": "0.0.496",
43
43
  "@teambit/toolbox.crypto.sha1": "0.0.2",
44
- "@teambit/ui": "1.0.425",
45
- "@teambit/isolator": "1.0.425",
44
+ "@teambit/ui": "1.0.427",
45
+ "@teambit/isolator": "1.0.427",
46
46
  "@teambit/harmony.modules.harmony-root-generator": "0.0.6",
47
- "@teambit/component.sources": "0.0.33",
47
+ "@teambit/component.sources": "0.0.34",
48
48
  "@teambit/toolbox.path.path": "0.0.4",
49
- "@teambit/cache": "0.0.1095",
50
- "@teambit/graphql": "1.0.425",
49
+ "@teambit/cache": "0.0.1097",
50
+ "@teambit/graphql": "1.0.427",
51
51
  "@teambit/harmony.modules.feature-toggle": "0.0.6",
52
- "@teambit/pkg": "1.0.425",
53
- "@teambit/pubsub": "1.0.425",
54
- "@teambit/scope": "1.0.425",
55
- "@teambit/watcher": "1.0.425",
56
- "@teambit/workspace": "1.0.425",
57
- "@teambit/compiler": "1.0.425",
52
+ "@teambit/pkg": "1.0.427",
53
+ "@teambit/pubsub": "1.0.427",
54
+ "@teambit/scope": "1.0.427",
55
+ "@teambit/watcher": "1.0.427",
56
+ "@teambit/workspace": "1.0.427",
57
+ "@teambit/compiler": "1.0.427",
58
58
  "@teambit/preview.cli.webpack-events-listener": "0.0.175",
59
- "@teambit/webpack": "1.0.425"
59
+ "@teambit/webpack": "1.0.427"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/mime": "2.0.3",
@@ -22,7 +22,11 @@ export const ENV_STRATEGY_ARTIFACT_NAME = 'preview';
22
22
  export class EnvBundlingStrategy implements BundlingStrategy {
23
23
  name = 'env';
24
24
 
25
- constructor(private preview: PreviewMain, private pkg: PkgMain, private dependencyResolver: DependencyResolverMain) {}
25
+ constructor(
26
+ private preview: PreviewMain,
27
+ private pkg: PkgMain,
28
+ private dependencyResolver: DependencyResolverMain
29
+ ) {}
26
30
 
27
31
  async computeTargets(context: ComputeTargetsContext, previewDefs: PreviewDefinition[]) {
28
32
  const outputPath = this.getOutputPath(context);