@teambit/component 0.0.625 → 0.0.631

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.
@@ -0,0 +1 @@
1
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.631/dist/component.docs.mdx')]
@@ -52,6 +52,16 @@ export class ComponentMap<T> {
52
52
 
53
53
  return new ComponentMap(new Map(tuples));
54
54
  }
55
+
56
+ /**
57
+ * similar to Array.forEach, but here you get both, the value and the component.
58
+ */
59
+ forEach(predicate: (value: T, component: Component) => void): void {
60
+ this.toArray().forEach(([component, value]) => {
61
+ predicate(value, component);
62
+ });
63
+ }
64
+
55
65
  /**
56
66
  * flatten values of all components into a single array.
57
67
  */
@@ -27,6 +27,10 @@ export declare class ComponentMap<T> {
27
27
  * map entries and return a new component map.
28
28
  */
29
29
  map<NewType>(predicate: (value: T, component: Component) => NewType): ComponentMap<NewType>;
30
+ /**
31
+ * similar to Array.forEach, but here you get both, the value and the component.
32
+ */
33
+ forEach(predicate: (value: T, component: Component) => void): void;
30
34
  /**
31
35
  * flatten values of all components into a single array.
32
36
  */
@@ -64,6 +64,16 @@ class ComponentMap {
64
64
  });
65
65
  return new ComponentMap(new Map(tuples));
66
66
  }
67
+ /**
68
+ * similar to Array.forEach, but here you get both, the value and the component.
69
+ */
70
+
71
+
72
+ forEach(predicate) {
73
+ this.toArray().forEach(([component, value]) => {
74
+ predicate(value, component);
75
+ });
76
+ }
67
77
  /**
68
78
  * flatten values of all components into a single array.
69
79
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["component-map.ts"],"names":["ComponentMap","constructor","hashMap","byComponent","component","get","id","toString","components","toArray","map","getValueByComponentId","componentId","tuple","Array","from","values","predicate","tuples","value","newValue","Map","flattenValue","reduce","acc","concat","filter","asMap","keys","create","rawMap","newMap","data","as"],"mappings":"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","sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Component } from '../component';\n\n/**\n * allows to index components -> values.\n */\nexport class ComponentMap<T> {\n constructor(readonly hashMap: Map<string, [Component, T]>) {}\n\n /**\n * @deprecated please use `get` instead\n */\n byComponent(component: Component) {\n return this.hashMap.get(component.id.toString());\n }\n\n get components() {\n return this.toArray().map(([component]) => component);\n }\n\n /**\n * get a value for a component.\n */\n get(component: Component) {\n return this.hashMap.get(component.id.toString());\n }\n\n /**\n * get a value by the component-id\n */\n getValueByComponentId(componentId: ComponentID): T | null {\n const tuple = this.hashMap.get(componentId.toString());\n if (!tuple) return null;\n return tuple[1];\n }\n\n /**\n * returns an array.\n */\n toArray() {\n return Array.from(this.hashMap.values());\n }\n\n /**\n * map entries and return a new component map.\n */\n map<NewType>(predicate: (value: T, component: Component) => NewType): ComponentMap<NewType> {\n const tuples: [string, [Component, NewType]][] = this.toArray().map(([component, value]) => {\n const newValue = predicate(value, component);\n return [component.id.toString(), [component, newValue]];\n });\n\n return new ComponentMap(new Map(tuples));\n }\n /**\n * flatten values of all components into a single array.\n */\n flattenValue(): T[] {\n return this.toArray().reduce((acc: T[], [, value]) => {\n acc = acc.concat(value);\n return acc;\n }, []);\n }\n\n /**\n * filter all components with empty values and return a new map.\n */\n filter(predicate: (value: T) => boolean): ComponentMap<T> {\n const tuples = this.toArray().filter(([, value]) => {\n return predicate(value);\n });\n\n const asMap: [string, [Component, T]][] = tuples.map(([component, value]) => {\n return [component.id.toString(), [component, value]];\n });\n\n return new ComponentMap(new Map(asMap));\n }\n\n /**\n * get all component ids.\n */\n keys() {\n return this.hashMap.keys();\n }\n\n static create<U>(rawMap: [Component, U][]) {\n const newMap: [string, [Component, U]][] = rawMap.map(([component, data]) => {\n return [component.id.toString(), [component, data]];\n });\n return new ComponentMap(new Map(newMap));\n }\n\n /**\n * create a component map from components and a value predicate.\n * @param components components to zip into the map.\n * @param predicate predicate for returning desired value.\n */\n static as<U>(components: Component[], predicate: (component: Component) => U): ComponentMap<U> {\n const tuples: [string, [Component, U]][] = components.map((component) => {\n return [component.id.toString(), [component, predicate(component)]];\n });\n\n return new ComponentMap(new Map(tuples));\n }\n}\n"]}
1
+ {"version":3,"sources":["component-map.ts"],"names":["ComponentMap","constructor","hashMap","byComponent","component","get","id","toString","components","toArray","map","getValueByComponentId","componentId","tuple","Array","from","values","predicate","tuples","value","newValue","Map","forEach","flattenValue","reduce","acc","concat","filter","asMap","keys","create","rawMap","newMap","data","as"],"mappings":"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","sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Component } from '../component';\n\n/**\n * allows to index components -> values.\n */\nexport class ComponentMap<T> {\n constructor(readonly hashMap: Map<string, [Component, T]>) {}\n\n /**\n * @deprecated please use `get` instead\n */\n byComponent(component: Component) {\n return this.hashMap.get(component.id.toString());\n }\n\n get components() {\n return this.toArray().map(([component]) => component);\n }\n\n /**\n * get a value for a component.\n */\n get(component: Component) {\n return this.hashMap.get(component.id.toString());\n }\n\n /**\n * get a value by the component-id\n */\n getValueByComponentId(componentId: ComponentID): T | null {\n const tuple = this.hashMap.get(componentId.toString());\n if (!tuple) return null;\n return tuple[1];\n }\n\n /**\n * returns an array.\n */\n toArray() {\n return Array.from(this.hashMap.values());\n }\n\n /**\n * map entries and return a new component map.\n */\n map<NewType>(predicate: (value: T, component: Component) => NewType): ComponentMap<NewType> {\n const tuples: [string, [Component, NewType]][] = this.toArray().map(([component, value]) => {\n const newValue = predicate(value, component);\n return [component.id.toString(), [component, newValue]];\n });\n\n return new ComponentMap(new Map(tuples));\n }\n\n /**\n * similar to Array.forEach, but here you get both, the value and the component.\n */\n forEach(predicate: (value: T, component: Component) => void): void {\n this.toArray().forEach(([component, value]) => {\n predicate(value, component);\n });\n }\n\n /**\n * flatten values of all components into a single array.\n */\n flattenValue(): T[] {\n return this.toArray().reduce((acc: T[], [, value]) => {\n acc = acc.concat(value);\n return acc;\n }, []);\n }\n\n /**\n * filter all components with empty values and return a new map.\n */\n filter(predicate: (value: T) => boolean): ComponentMap<T> {\n const tuples = this.toArray().filter(([, value]) => {\n return predicate(value);\n });\n\n const asMap: [string, [Component, T]][] = tuples.map(([component, value]) => {\n return [component.id.toString(), [component, value]];\n });\n\n return new ComponentMap(new Map(asMap));\n }\n\n /**\n * get all component ids.\n */\n keys() {\n return this.hashMap.keys();\n }\n\n static create<U>(rawMap: [Component, U][]) {\n const newMap: [string, [Component, U]][] = rawMap.map(([component, data]) => {\n return [component.id.toString(), [component, data]];\n });\n return new ComponentMap(new Map(newMap));\n }\n\n /**\n * create a component map from components and a value predicate.\n * @param components components to zip into the map.\n * @param predicate predicate for returning desired value.\n */\n static as<U>(components: Component[], predicate: (component: Component) => U): ComponentMap<U> {\n const tuples: [string, [Component, U]][] = components.map((component) => {\n return [component.id.toString(), [component, predicate(component)]];\n });\n\n return new ComponentMap(new Map(tuples));\n }\n}\n"]}
@@ -9,6 +9,7 @@ import { ComponentFactory } from './component-factory';
9
9
  import { AspectList } from './aspect-list';
10
10
  import { AspectEntry } from './aspect-entry';
11
11
  import { ShowFragment } from './show';
12
+ import { RegisteredComponentRoute } from '.';
12
13
  export declare type ComponentHostSlot = SlotRegistry<ComponentFactory>;
13
14
  export declare type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;
14
15
  export declare class ComponentMain {
@@ -36,7 +37,7 @@ export declare class ComponentMain {
36
37
  registerHost(host: ComponentFactory): this;
37
38
  createAspectList(legacyExtensionDataList: ExtensionDataList, scope?: string): AspectList;
38
39
  createAspectListFromEntries(entries: AspectEntry[]): AspectList;
39
- registerRoute(routes: Route[]): this;
40
+ registerRoute(routes: RegisteredComponentRoute[]): this;
40
41
  /**
41
42
  * set the prior host.
42
43
  */
@@ -178,7 +178,8 @@ class ComponentMain {
178
178
  const routeEntries = routes.map(route => {
179
179
  return new (_component3().ComponentRoute)(route, this);
180
180
  });
181
- this.express.register((0, _lodash().flatten)(routeEntries));
181
+ const flattenRoutes = (0, _lodash().flatten)(routeEntries);
182
+ this.express.register(flattenRoutes);
182
183
  return this;
183
184
  }
184
185
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["component.main.runtime.ts"],"names":["ComponentMain","constructor","hostSlot","express","showFragmentSlot","registerHost","host","register","createAspectList","legacyExtensionDataList","scope","AspectList","fromLegacyExtensions","createAspectListFromEntries","entries","registerRoute","routes","routeEntries","map","route","ComponentRoute","setHostPriority","id","get","HostNotFound","_priorHost","getHost","getPriorHost","getRoute","routeName","toString","hosts","values","priorityHost","find","priority","getShowFragments","fragments","isHost","name","registerShowFragments","showFragments","provider","graphql","cli","configAspect","config","componentExtension","workspaceConfig","isLegacy","type","unregister","ShowCmd","NameFragment","MainFileFragment","IDFragment","ScopeFragment","FilesFragment","ExtensionsFragment","Slot","withType","MainRuntime","GraphqlAspect","ExpressAspect","CLIAspect","ConfigAspect","ComponentAspect","addRuntime"],"mappings":"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","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain, Route } from '@teambit/express';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { ConfigAspect } from '@teambit/config';\nimport type { ConfigMain } from '@teambit/config';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, orderBy } from 'lodash';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentAspect } from './component.aspect';\nimport { componentSchema } from './component.graphql';\nimport { ComponentRoute } from './component.route';\nimport { AspectList } from './aspect-list';\nimport { HostNotFound } from './exceptions';\nimport { AspectEntry } from './aspect-entry';\nimport {\n ShowCmd,\n ShowFragment,\n NameFragment,\n MainFileFragment,\n IDFragment,\n ScopeFragment,\n FilesFragment,\n ExtensionsFragment,\n} from './show';\n\nexport type ComponentHostSlot = SlotRegistry<ComponentFactory>;\n\nexport type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;\n\nexport class ComponentMain {\n constructor(\n /**\n * slot for component hosts to register.\n */\n private hostSlot: ComponentHostSlot,\n\n /**\n * Express Extension\n */\n private express: ExpressMain,\n\n private showFragmentSlot: ShowFragmentSlot\n ) {}\n\n /**\n * register a new component host.\n */\n registerHost(host: ComponentFactory) {\n this.hostSlot.register(host);\n return this;\n }\n\n createAspectList(legacyExtensionDataList: ExtensionDataList, scope?: string) {\n return AspectList.fromLegacyExtensions(legacyExtensionDataList, scope);\n }\n\n createAspectListFromEntries(entries: AspectEntry[]) {\n return new AspectList(entries);\n }\n\n registerRoute(routes: Route[]) {\n const routeEntries = routes.map((route: Route) => {\n return new ComponentRoute(route, this);\n });\n\n this.express.register(flatten(routeEntries));\n return this;\n }\n\n /**\n * set the prior host.\n */\n setHostPriority(id: string) {\n const host = this.hostSlot.get(id);\n if (!host) {\n throw new HostNotFound(id);\n }\n\n this._priorHost = host;\n return this;\n }\n\n /**\n * get component host by extension ID.\n */\n getHost(id?: string): ComponentFactory {\n if (id) {\n const host = this.hostSlot.get(id);\n if (!host) throw new HostNotFound(id);\n return host;\n }\n\n return this.getPriorHost();\n }\n\n getRoute(id: ComponentID, routeName: string) {\n return `/api/${id.toString()}/~aspect/${routeName}`;\n }\n\n /**\n * get the prior host.\n */\n private getPriorHost() {\n if (this._priorHost) return this._priorHost;\n\n const hosts = this.hostSlot.values();\n const priorityHost = hosts.find((host) => host.priority);\n return priorityHost || hosts[0];\n }\n\n getShowFragments() {\n const fragments = orderBy(flatten(this.showFragmentSlot.values()), ['weight', ['asc']]);\n return fragments;\n }\n\n isHost(name: string) {\n return !!this.hostSlot.get(name);\n }\n\n /**\n * register a show fragment to display further information in the `bit show` command.\n */\n registerShowFragments(showFragments: ShowFragment[]) {\n this.showFragmentSlot.register(showFragments);\n return this;\n }\n\n private _priorHost: ComponentFactory | undefined;\n\n static slots = [Slot.withType<ComponentFactory>(), Slot.withType<Route[]>(), Slot.withType<ShowFragment[]>()];\n\n static runtime = MainRuntime;\n static dependencies = [GraphqlAspect, ExpressAspect, CLIAspect, ConfigAspect];\n\n static async provider(\n [graphql, express, cli, configAspect]: [GraphqlMain, ExpressMain, CLIMain, ConfigMain],\n config,\n [hostSlot, showFragmentSlot]: [ComponentHostSlot, ShowFragmentSlot]\n ) {\n const componentExtension = new ComponentMain(hostSlot, express, showFragmentSlot);\n\n if ((configAspect.workspaceConfig && !configAspect.workspaceConfig.isLegacy) || configAspect.type === 'scope') {\n cli.unregister('show');\n cli.register(new ShowCmd(componentExtension));\n }\n\n componentExtension.registerShowFragments([\n new NameFragment(),\n new MainFileFragment(),\n new IDFragment(),\n new ScopeFragment(),\n new FilesFragment(),\n new ExtensionsFragment(),\n ]);\n graphql.register(componentSchema(componentExtension));\n\n return componentExtension;\n }\n}\n\nComponentAspect.addRuntime(ComponentMain);\n"]}
1
+ {"version":3,"sources":["component.main.runtime.ts"],"names":["ComponentMain","constructor","hostSlot","express","showFragmentSlot","registerHost","host","register","createAspectList","legacyExtensionDataList","scope","AspectList","fromLegacyExtensions","createAspectListFromEntries","entries","registerRoute","routes","routeEntries","map","route","ComponentRoute","flattenRoutes","setHostPriority","id","get","HostNotFound","_priorHost","getHost","getPriorHost","getRoute","routeName","toString","hosts","values","priorityHost","find","priority","getShowFragments","fragments","isHost","name","registerShowFragments","showFragments","provider","graphql","cli","configAspect","config","componentExtension","workspaceConfig","isLegacy","type","unregister","ShowCmd","NameFragment","MainFileFragment","IDFragment","ScopeFragment","FilesFragment","ExtensionsFragment","Slot","withType","MainRuntime","GraphqlAspect","ExpressAspect","CLIAspect","ConfigAspect","ComponentAspect","addRuntime"],"mappings":"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","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain, Route } from '@teambit/express';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { ConfigAspect } from '@teambit/config';\nimport type { ConfigMain } from '@teambit/config';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, orderBy } from 'lodash';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentAspect } from './component.aspect';\nimport { componentSchema } from './component.graphql';\nimport { ComponentRoute } from './component.route';\nimport { AspectList } from './aspect-list';\nimport { HostNotFound } from './exceptions';\nimport { AspectEntry } from './aspect-entry';\nimport {\n ShowCmd,\n ShowFragment,\n NameFragment,\n MainFileFragment,\n IDFragment,\n ScopeFragment,\n FilesFragment,\n ExtensionsFragment,\n} from './show';\nimport { RegisteredComponentRoute } from '.';\n\nexport type ComponentHostSlot = SlotRegistry<ComponentFactory>;\n\nexport type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;\n\nexport class ComponentMain {\n constructor(\n /**\n * slot for component hosts to register.\n */\n private hostSlot: ComponentHostSlot,\n\n /**\n * Express Extension\n */\n private express: ExpressMain,\n\n private showFragmentSlot: ShowFragmentSlot\n ) {}\n\n /**\n * register a new component host.\n */\n registerHost(host: ComponentFactory) {\n this.hostSlot.register(host);\n return this;\n }\n\n createAspectList(legacyExtensionDataList: ExtensionDataList, scope?: string) {\n return AspectList.fromLegacyExtensions(legacyExtensionDataList, scope);\n }\n\n createAspectListFromEntries(entries: AspectEntry[]) {\n return new AspectList(entries);\n }\n\n registerRoute(routes: RegisteredComponentRoute[]) {\n const routeEntries = routes.map((route: RegisteredComponentRoute) => {\n return new ComponentRoute(route, this);\n });\n\n const flattenRoutes = (flatten(routeEntries)) as any as Route[];\n\n this.express.register(flattenRoutes);\n return this;\n }\n\n /**\n * set the prior host.\n */\n setHostPriority(id: string) {\n const host = this.hostSlot.get(id);\n if (!host) {\n throw new HostNotFound(id);\n }\n\n this._priorHost = host;\n return this;\n }\n\n /**\n * get component host by extension ID.\n */\n getHost(id?: string): ComponentFactory {\n if (id) {\n const host = this.hostSlot.get(id);\n if (!host) throw new HostNotFound(id);\n return host;\n }\n\n return this.getPriorHost();\n }\n\n getRoute(id: ComponentID, routeName: string) {\n return `/api/${id.toString()}/~aspect/${routeName}`;\n }\n\n /**\n * get the prior host.\n */\n private getPriorHost() {\n if (this._priorHost) return this._priorHost;\n\n const hosts = this.hostSlot.values();\n const priorityHost = hosts.find((host) => host.priority);\n return priorityHost || hosts[0];\n }\n\n getShowFragments() {\n const fragments = orderBy(flatten(this.showFragmentSlot.values()), ['weight', ['asc']]);\n return fragments;\n }\n\n isHost(name: string) {\n return !!this.hostSlot.get(name);\n }\n\n /**\n * register a show fragment to display further information in the `bit show` command.\n */\n registerShowFragments(showFragments: ShowFragment[]) {\n this.showFragmentSlot.register(showFragments);\n return this;\n }\n\n private _priorHost: ComponentFactory | undefined;\n\n static slots = [Slot.withType<ComponentFactory>(), Slot.withType<Route[]>(), Slot.withType<ShowFragment[]>()];\n\n static runtime = MainRuntime;\n static dependencies = [GraphqlAspect, ExpressAspect, CLIAspect, ConfigAspect];\n\n static async provider(\n [graphql, express, cli, configAspect]: [GraphqlMain, ExpressMain, CLIMain, ConfigMain],\n config,\n [hostSlot, showFragmentSlot]: [ComponentHostSlot, ShowFragmentSlot]\n ) {\n const componentExtension = new ComponentMain(hostSlot, express, showFragmentSlot);\n\n if ((configAspect.workspaceConfig && !configAspect.workspaceConfig.isLegacy) || configAspect.type === 'scope') {\n cli.unregister('show');\n cli.register(new ShowCmd(componentExtension));\n }\n\n componentExtension.registerShowFragments([\n new NameFragment(),\n new MainFileFragment(),\n new IDFragment(),\n new ScopeFragment(),\n new FilesFragment(),\n new ExtensionsFragment(),\n ]);\n graphql.register(componentSchema(componentExtension));\n\n return componentExtension;\n }\n}\n\nComponentAspect.addRuntime(ComponentMain);\n"]}
@@ -1,12 +1,18 @@
1
1
  import { NextFunction, Request, Response, Route } from '@teambit/express';
2
2
  import { ComponentMain } from './component.main.runtime';
3
+ export declare type RegisteredComponentRoute = Route & {
4
+ resolveComponent?: boolean;
5
+ };
6
+ export declare type ComponentUrlParams = {
7
+ componentId: string;
8
+ };
3
9
  export declare class ComponentRoute implements Route {
4
10
  private registerRoute;
5
11
  private componentExtension;
6
- constructor(registerRoute: Route, componentExtension: ComponentMain);
12
+ constructor(registerRoute: RegisteredComponentRoute, componentExtension: ComponentMain);
7
13
  dynamicRouteRegex: string;
8
14
  readonly route: string;
9
- get componentMiddlewares(): ((req: Request, res: Response, next: NextFunction) => Promise<void>)[];
15
+ get componentMiddlewares(): ((req: Request<ComponentUrlParams>, res: Response, next: NextFunction) => Promise<void>)[];
10
16
  method: string;
11
- middlewares: ((req: Request, res: Response, next: NextFunction) => Promise<void>)[];
17
+ middlewares: ((req: Request<ComponentUrlParams>, res: Response, next: NextFunction) => Promise<void>)[];
12
18
  }
@@ -31,14 +31,21 @@ class ComponentRoute {
31
31
 
32
32
  get componentMiddlewares() {
33
33
  return [async (req, res, next) => {
34
- const {
35
- componentId
36
- } = req.params;
37
- const host = this.componentExtension.getHost();
38
- const compId = await host.resolveComponentId(componentId);
39
- const component = await host.get(compId); // @ts-ignore
40
-
41
- req.component = component;
34
+ var _this$registerRoute$r;
35
+
36
+ const resolveComponent = (_this$registerRoute$r = this.registerRoute.resolveComponent) !== null && _this$registerRoute$r !== void 0 ? _this$registerRoute$r : true;
37
+
38
+ if (resolveComponent) {
39
+ const {
40
+ componentId
41
+ } = req.params;
42
+ const host = this.componentExtension.getHost();
43
+ const compId = await host.resolveComponentId(componentId);
44
+ const component = await host.get(compId); // @ts-ignore
45
+
46
+ req.component = component;
47
+ }
48
+
42
49
  next();
43
50
  }];
44
51
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["component.route.ts"],"names":["ComponentRoute","constructor","registerRoute","componentExtension","dynamicRouteRegex","route","method","componentMiddlewares","concat","middlewares","req","res","next","componentId","params","host","getHost","compId","resolveComponentId","component","get"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,cAAN,CAAsC;AAC3CC,EAAAA,WAAW,CAASC,aAAT,EAAuCC,kBAAvC,EAA0E;AAAA,SAAjED,aAAiE,GAAjEA,aAAiE;AAAA,SAAnCC,kBAAmC,GAAnCA,kBAAmC;AAAA,+DACjE,gBADiE;AAAA,mDAEnE,iBAAgB,KAAKC,iBAAkB,YAAW,KAAKF,aAAL,CAAmBG,KAAM,EAFR;AAAA,oDAkB5E,KAAKH,aAAL,CAAmBI,MAlByD;AAAA,yDAmBvE,KAAKC,oBAAL,CAA0BC,MAA1B,CAAiC,KAAKN,aAAL,CAAmBO,WAApD,CAnBuE;AAAE;;AAI/D,MAApBF,oBAAoB,GAAG;AACzB,WAAO,CACL,OAAOG,GAAP,EAAqBC,GAArB,EAAoCC,IAApC,KAA2D;AACzD,YAAM;AAAEC,QAAAA;AAAF,UAAkBH,GAAG,CAACI,MAA5B;AACA,YAAMC,IAAI,GAAG,KAAKZ,kBAAL,CAAwBa,OAAxB,EAAb;AACA,YAAMC,MAAM,GAAG,MAAMF,IAAI,CAACG,kBAAL,CAAwBL,WAAxB,CAArB;AACA,YAAMM,SAAS,GAAG,MAAMJ,IAAI,CAACK,GAAL,CAASH,MAAT,CAAxB,CAJyD,CAKzD;;AACAP,MAAAA,GAAG,CAACS,SAAJ,GAAgBA,SAAhB;AACAP,MAAAA,IAAI;AACL,KATI,CAAP;AAWD;;AAjB0C","sourcesContent":["import { NextFunction, Request, Response, Route } from '@teambit/express';\n\nimport { ComponentMain } from './component.main.runtime';\n\nexport class ComponentRoute implements Route {\n constructor(private registerRoute: Route, private componentExtension: ComponentMain) {}\n dynamicRouteRegex = '/?[^/@]+/[^~]*';\n readonly route = `/:componentId(${this.dynamicRouteRegex})/~aspect${this.registerRoute.route}`;\n\n get componentMiddlewares() {\n return [\n async (req: Request, res: Response, next: NextFunction) => {\n const { componentId } = req.params;\n const host = this.componentExtension.getHost();\n const compId = await host.resolveComponentId(componentId);\n const component = await host.get(compId);\n // @ts-ignore\n req.component = component;\n next();\n },\n ];\n }\n\n method = this.registerRoute.method;\n middlewares = this.componentMiddlewares.concat(this.registerRoute.middlewares);\n}\n"]}
1
+ {"version":3,"sources":["component.route.ts"],"names":["ComponentRoute","constructor","registerRoute","componentExtension","dynamicRouteRegex","route","method","componentMiddlewares","concat","middlewares","req","res","next","resolveComponent","componentId","params","host","getHost","compId","resolveComponentId","component","get"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAYO,MAAMA,cAAN,CAAsC;AAC3CC,EAAAA,WAAW,CAASC,aAAT,EAA0DC,kBAA1D,EAA6F;AAAA,SAApFD,aAAoF,GAApFA,aAAoF;AAAA,SAAnCC,kBAAmC,GAAnCA,kBAAmC;AAAA,+DACpF,gBADoF;AAAA,mDAEtF,iBAAgB,KAAKC,iBAAkB,YAAW,KAAKF,aAAL,CAAmBG,KAAM,EAFW;AAAA,oDAqB/F,KAAKH,aAAL,CAAmBI,MArB4E;AAAA,yDAuB1F,KAAKC,oBAAL,CAA0BC,MAA1B,CAAiC,KAAKN,aAAL,CAAmBO,WAApD,CAvB0F;AAAE;;AAIlF,MAApBF,oBAAoB,GAAG;AACzB,WAAO,CACL,OAAOG,GAAP,EAAyCC,GAAzC,EAAwDC,IAAxD,KAA+E;AAAA;;AAC7E,YAAMC,gBAAgB,4BAAG,KAAKX,aAAL,CAAmBW,gBAAtB,yEAA0C,IAAhE;;AACA,UAAIA,gBAAJ,EAAqB;AACnB,cAAM;AAAEC,UAAAA;AAAF,YAAkBJ,GAAG,CAACK,MAA5B;AACA,cAAMC,IAAI,GAAG,KAAKb,kBAAL,CAAwBc,OAAxB,EAAb;AACA,cAAMC,MAAM,GAAG,MAAMF,IAAI,CAACG,kBAAL,CAAwBL,WAAxB,CAArB;AACA,cAAMM,SAAS,GAAG,MAAMJ,IAAI,CAACK,GAAL,CAASH,MAAT,CAAxB,CAJmB,CAKnB;;AACAR,QAAAA,GAAG,CAACU,SAAJ,GAAgBA,SAAhB;AACD;;AACDR,MAAAA,IAAI;AACL,KAZI,CAAP;AAcD;;AApB0C","sourcesContent":["import { NextFunction, Request, Response, Route } from '@teambit/express';\n\nimport { ComponentMain } from './component.main.runtime';\n\nexport type RegisteredComponentRoute = Route & {\n resolveComponent?: boolean\n}\n\nexport type ComponentUrlParams = {\n componentId: string\n}\n\nexport class ComponentRoute implements Route {\n constructor(private registerRoute: RegisteredComponentRoute, private componentExtension: ComponentMain) {}\n dynamicRouteRegex = '/?[^/@]+/[^~]*';\n readonly route = `/:componentId(${this.dynamicRouteRegex})/~aspect${this.registerRoute.route}`;\n\n get componentMiddlewares() {\n return [\n async (req: Request<ComponentUrlParams>, res: Response, next: NextFunction) => {\n const resolveComponent = this.registerRoute.resolveComponent ?? true;\n if (resolveComponent){\n const { componentId } = req.params;\n const host = this.componentExtension.getHost();\n const compId = await host.resolveComponentId(componentId);\n const component = await host.get(compId);\n // @ts-ignore\n req.component = component;\n }\n next();\n },\n ];\n }\n\n method = this.registerRoute.method;\n // @ts-ignore\n middlewares = this.componentMiddlewares.concat(this.registerRoute.middlewares);\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export type { ComponentUI } from './component.ui.runtime';
19
19
  export { Section } from './section';
20
20
  export { ComponentContext } from './ui/context/component-context';
21
21
  export { ConsumePlugin } from './ui/menu';
22
+ export { RegisteredComponentRoute, ComponentUrlParams } from './component.route';
22
23
  export { ComponentModel, ComponentModelProps } from './ui/component-model';
23
24
  export type { ShowFragment, ShowRow } from './show';
24
25
  export { default as Config } from './config';
package/dist/index.js CHANGED
@@ -65,6 +65,12 @@ Object.defineProperty(exports, "ComponentModelProps", {
65
65
  return _componentModel().ComponentModelProps;
66
66
  }
67
67
  });
68
+ Object.defineProperty(exports, "ComponentUrlParams", {
69
+ enumerable: true,
70
+ get: function () {
71
+ return _component3().ComponentUrlParams;
72
+ }
73
+ });
68
74
  Object.defineProperty(exports, "Config", {
69
75
  enumerable: true,
70
76
  get: function () {
@@ -83,6 +89,12 @@ Object.defineProperty(exports, "InvalidComponent", {
83
89
  return _component2().InvalidComponent;
84
90
  }
85
91
  });
92
+ Object.defineProperty(exports, "RegisteredComponentRoute", {
93
+ enumerable: true,
94
+ get: function () {
95
+ return _component3().RegisteredComponentRoute;
96
+ }
97
+ });
86
98
  Object.defineProperty(exports, "Section", {
87
99
  enumerable: true,
88
100
  get: function () {
@@ -273,6 +285,16 @@ function _menu() {
273
285
  return data;
274
286
  }
275
287
 
288
+ function _component3() {
289
+ const data = require("./component.route");
290
+
291
+ _component3 = function () {
292
+ return data;
293
+ };
294
+
295
+ return data;
296
+ }
297
+
276
298
  function _componentModel() {
277
299
  const data = require("./ui/component-model");
278
300
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["ComponentAspect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAlBA;AACA;AAGA;AACA;AAcA;AACA;eAEeA,4B","sourcesContent":["import { ComponentAspect } from './component.aspect';\n\nexport { useComponentHost } from './host';\nexport { Component, InvalidComponent } from './component';\nexport { ComponentID } from '@teambit/component-id';\nexport { default as ComponentFS } from './component-fs';\nexport type { default as ComponentConfig } from './config';\nexport type { ComponentFactory } from './component-factory';\nexport type { AspectList } from './aspect-list';\nexport { AspectEntry, AspectData } from './aspect-entry';\n// TODO: check why it's not working when using the index in snap dir like this:\n// export { Snap, Author } from './snap';\nexport { Snap, SnapProps } from './snap/snap';\nexport type { Author } from './snap/author';\n// TODO: check why it's not working when using the index in tag dir like this:\n// export { Tag } from './tag';\nexport { Tag, TagProps } from './tag/tag';\nexport { State } from './state';\nexport type { Hash } from './hash';\nexport { TagMap } from './tag-map';\nexport { ComponentMap } from './component-map';\nexport type { ComponentMain } from './component.main.runtime';\nexport type { ComponentUI } from './component.ui.runtime';\nexport { Section } from './section';\nexport { ComponentContext } from './ui/context/component-context';\nexport { ConsumePlugin } from './ui/menu';\nexport { ComponentModel, ComponentModelProps } from './ui/component-model';\nexport type { ShowFragment, ShowRow } from './show';\nexport { default as Config } from './config';\n// export { AspectList } from './aspect-list';\n// export { AspectEntry } from './aspect-entry';\nexport { ComponentAspect };\nexport default ComponentAspect;\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["ComponentAspect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAnBA;AACA;AAGA;AACA;AAeA;AACA;eAEeA,4B","sourcesContent":["import { ComponentAspect } from './component.aspect';\n\nexport { useComponentHost } from './host';\nexport { Component, InvalidComponent } from './component';\nexport { ComponentID } from '@teambit/component-id';\nexport { default as ComponentFS } from './component-fs';\nexport type { default as ComponentConfig } from './config';\nexport type { ComponentFactory } from './component-factory';\nexport type { AspectList } from './aspect-list';\nexport { AspectEntry, AspectData } from './aspect-entry';\n// TODO: check why it's not working when using the index in snap dir like this:\n// export { Snap, Author } from './snap';\nexport { Snap, SnapProps } from './snap/snap';\nexport type { Author } from './snap/author';\n// TODO: check why it's not working when using the index in tag dir like this:\n// export { Tag } from './tag';\nexport { Tag, TagProps } from './tag/tag';\nexport { State } from './state';\nexport type { Hash } from './hash';\nexport { TagMap } from './tag-map';\nexport { ComponentMap } from './component-map';\nexport type { ComponentMain } from './component.main.runtime';\nexport type { ComponentUI } from './component.ui.runtime';\nexport { Section } from './section';\nexport { ComponentContext } from './ui/context/component-context';\nexport { ConsumePlugin } from './ui/menu';\nexport {RegisteredComponentRoute, ComponentUrlParams} from './component.route';\nexport { ComponentModel, ComponentModelProps } from './ui/component-model';\nexport type { ShowFragment, ShowRow } from './show';\nexport { default as Config } from './config';\n// export { AspectList } from './aspect-list';\n// export { AspectEntry } from './aspect-entry';\nexport { ComponentAspect };\nexport default ComponentAspect;\n"]}
@@ -21,6 +21,10 @@ export declare type ComponentModelProps = {
21
21
  labels?: string[];
22
22
  host?: string;
23
23
  latest?: string;
24
+ preview?: ComponentPreview;
25
+ };
26
+ export declare type ComponentPreview = {
27
+ includesEnvTemplate?: boolean;
24
28
  };
25
29
  export declare type ComponentServer = {
26
30
  env: string;
@@ -88,6 +92,7 @@ export declare class ComponentModel {
88
92
  * latest version of component
89
93
  */
90
94
  readonly latest?: string | undefined;
95
+ readonly preview?: ComponentPreview | undefined;
91
96
  constructor(
92
97
  /**
93
98
  * id of the component
@@ -148,12 +153,12 @@ export declare class ComponentModel {
148
153
  /**
149
154
  * latest version of component
150
155
  */
151
- latest?: string | undefined);
156
+ latest?: string | undefined, preview?: ComponentPreview | undefined);
152
157
  get version(): string;
153
158
  /**
154
159
  * create an instance of a component from a plain object.
155
160
  */
156
- static from({ id, server, displayName, compositions, packageName, elementsUrl, tags, deprecation, buildStatus, env, status, issuesCount, description, labels, host, latest, }: ComponentModelProps): ComponentModel;
161
+ static from({ id, server, displayName, compositions, packageName, elementsUrl, tags, deprecation, buildStatus, env, status, issuesCount, description, labels, host, latest, preview, }: ComponentModelProps): ComponentModel;
157
162
  static fromArray(componentsProps: ComponentModelProps[]): ComponentModel[];
158
163
  static empty(): ComponentModel;
159
164
  }
@@ -108,7 +108,7 @@ class ComponentModel {
108
108
  /**
109
109
  * latest version of component
110
110
  */
111
- latest) {
111
+ latest, preview) {
112
112
  this.id = id;
113
113
  this.displayName = displayName;
114
114
  this.packageName = packageName;
@@ -125,6 +125,7 @@ class ComponentModel {
125
125
  this.labels = labels;
126
126
  this.host = host;
127
127
  this.latest = latest;
128
+ this.preview = preview;
128
129
  }
129
130
 
130
131
  get version() {
@@ -152,9 +153,10 @@ class ComponentModel {
152
153
  description,
153
154
  labels,
154
155
  host,
155
- latest
156
+ latest,
157
+ preview
156
158
  }) {
157
- return new ComponentModel(_componentId().ComponentID.fromObject(id), displayName, packageName, server, _compositions().Composition.fromArray(compositions), _tagMap().TagMap.fromArray(tags.map(tag => _tag().Tag.fromObject(tag))), buildStatus, issuesCount, elementsUrl, status, deprecation, env, description, labels, host, latest);
159
+ return new ComponentModel(_componentId().ComponentID.fromObject(id), displayName, packageName, server, _compositions().Composition.fromArray(compositions), _tagMap().TagMap.fromArray(tags.map(tag => _tag().Tag.fromObject(tag))), buildStatus, issuesCount, elementsUrl, status, deprecation, env, description, labels, host, latest, preview);
158
160
  }
159
161
 
160
162
  static fromArray(componentsProps) {
@@ -1 +1 @@
1
- {"version":3,"sources":["component-model.ts"],"names":["ComponentModel","constructor","id","displayName","packageName","server","compositions","tags","buildStatus","issuesCount","elementsUrl","status","deprecation","environment","description","labels","host","latest","version","from","env","ComponentID","fromObject","Composition","fromArray","TagMap","map","tag","Tag","componentsProps","rawComponent","empty","name","scope","url"],"mappings":"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","sourcesContent":["import { Composition, CompositionProps } from '@teambit/compositions';\nimport { DeprecationInfo } from '@teambit/deprecation';\nimport { Descriptor } from '@teambit/envs';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Tag } from '../../tag';\nimport { TagMap } from '../../tag-map';\nimport { TagProps } from '../../tag/tag';\n// import { Snap } from '../../snap';\n\n// ADDING MORE PROPERTIES HERE IS NOT ALLOWED!!! IF YOU NEED DATA PLEASE ADD A NEW\n// HOOK FROM YOUR ASPECT!!!\n// TODO: remove all properties from here to their rightful place in their aspects.\nexport type ComponentModelProps = {\n id: ComponentIdObj;\n description: string;\n buildStatus?: string;\n server?: ComponentServer;\n displayName: string;\n packageName: string; // pkg aspect\n elementsUrl?: string; // pkg aspect\n compositions?: CompositionProps[];\n tags?: TagProps[];\n issuesCount?: number; // component/issues aspect\n status?: any; // workspace aspect.\n deprecation?: DeprecationInfo; // deprecation aspect\n env?: Descriptor; // env aspect.\n labels?: string[];\n host?: string;\n latest?: string;\n};\n\nexport type ComponentServer = {\n env: string;\n url: string;\n};\n\nexport class ComponentModel {\n constructor(\n /**\n * id of the component\n */\n readonly id: ComponentID,\n\n /**\n * display name of the component.\n */\n readonly displayName: string,\n\n /**\n * package name of the component.\n */\n readonly packageName: string,\n\n /**\n * the component server.\n */\n readonly server: ComponentServer | undefined,\n\n /**\n * array of compositions\n */\n readonly compositions: Composition[],\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap,\n\n /**\n * component build status\n */\n readonly buildStatus?: string,\n\n /**\n * issues of component.\n */\n readonly issuesCount?: number,\n /**\n * elements url\n */\n readonly elementsUrl?: string,\n /**\n * status of component.\n */\n readonly status?: any,\n\n /**\n * deprecation info of the component.\n */\n readonly deprecation?: DeprecationInfo,\n\n /**\n * env descriptor.\n */\n readonly environment?: Descriptor,\n\n /**\n * description of the component.\n */\n\n readonly description = '',\n\n readonly labels: string[] = [],\n\n /**\n * host of the component\n */\n readonly host?: string,\n\n /**\n * latest version of component\n */\n readonly latest?: string\n ) {}\n\n get version() {\n if (!this.id.version) return 'new';\n return this.id.version;\n }\n\n /**\n * create an instance of a component from a plain object.\n */\n static from({\n id,\n server,\n displayName,\n compositions = [],\n packageName,\n elementsUrl,\n tags = [],\n deprecation,\n buildStatus,\n env,\n status,\n issuesCount,\n description,\n labels,\n host,\n latest,\n }: ComponentModelProps) {\n return new ComponentModel(\n ComponentID.fromObject(id),\n displayName,\n packageName,\n server,\n Composition.fromArray(compositions),\n TagMap.fromArray(tags.map((tag) => Tag.fromObject(tag))),\n buildStatus,\n issuesCount,\n elementsUrl,\n status,\n deprecation,\n env,\n description,\n labels,\n host,\n latest\n );\n }\n\n static fromArray(componentsProps: ComponentModelProps[]) {\n return componentsProps.map((rawComponent) => ComponentModel.from(rawComponent));\n }\n\n static empty() {\n return new ComponentModel(\n ComponentID.fromObject({ name: 'root', scope: 'temp' }),\n '',\n '',\n { env: '', url: '' },\n [],\n TagMap.empty()\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["component-model.ts"],"names":["ComponentModel","constructor","id","displayName","packageName","server","compositions","tags","buildStatus","issuesCount","elementsUrl","status","deprecation","environment","description","labels","host","latest","preview","version","from","env","ComponentID","fromObject","Composition","fromArray","TagMap","map","tag","Tag","componentsProps","rawComponent","empty","name","scope","url"],"mappings":"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","sourcesContent":["import { Composition, CompositionProps } from '@teambit/compositions';\nimport { DeprecationInfo } from '@teambit/deprecation';\nimport { Descriptor } from '@teambit/envs';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Tag } from '../../tag';\nimport { TagMap } from '../../tag-map';\nimport { TagProps } from '../../tag/tag';\n// import { Snap } from '../../snap';\n\n// ADDING MORE PROPERTIES HERE IS NOT ALLOWED!!! IF YOU NEED DATA PLEASE ADD A NEW\n// HOOK FROM YOUR ASPECT!!!\n// TODO: remove all properties from here to their rightful place in their aspects.\nexport type ComponentModelProps = {\n id: ComponentIdObj;\n description: string;\n buildStatus?: string;\n server?: ComponentServer;\n displayName: string;\n packageName: string; // pkg aspect\n elementsUrl?: string; // pkg aspect\n compositions?: CompositionProps[];\n tags?: TagProps[];\n issuesCount?: number; // component/issues aspect\n status?: any; // workspace aspect.\n deprecation?: DeprecationInfo; // deprecation aspect\n env?: Descriptor; // env aspect.\n labels?: string[];\n host?: string;\n latest?: string;\n preview?: ComponentPreview;\n};\n\nexport type ComponentPreview = {\n includesEnvTemplate?: boolean\n};\n\nexport type ComponentServer = {\n env: string;\n url: string;\n};\n\nexport class ComponentModel {\n constructor(\n /**\n * id of the component\n */\n readonly id: ComponentID,\n\n /**\n * display name of the component.\n */\n readonly displayName: string,\n\n /**\n * package name of the component.\n */\n readonly packageName: string,\n\n /**\n * the component server.\n */\n readonly server: ComponentServer | undefined,\n\n /**\n * array of compositions\n */\n readonly compositions: Composition[],\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap,\n\n /**\n * component build status\n */\n readonly buildStatus?: string,\n\n /**\n * issues of component.\n */\n readonly issuesCount?: number,\n /**\n * elements url\n */\n readonly elementsUrl?: string,\n /**\n * status of component.\n */\n readonly status?: any,\n\n /**\n * deprecation info of the component.\n */\n readonly deprecation?: DeprecationInfo,\n\n /**\n * env descriptor.\n */\n readonly environment?: Descriptor,\n\n /**\n * description of the component.\n */\n\n readonly description = '',\n\n readonly labels: string[] = [],\n\n /**\n * host of the component\n */\n readonly host?: string,\n\n /**\n * latest version of component\n */\n readonly latest?: string,\n\n readonly preview?: ComponentPreview\n ) {}\n\n get version() {\n if (!this.id.version) return 'new';\n return this.id.version;\n }\n\n /**\n * create an instance of a component from a plain object.\n */\n static from({\n id,\n server,\n displayName,\n compositions = [],\n packageName,\n elementsUrl,\n tags = [],\n deprecation,\n buildStatus,\n env,\n status,\n issuesCount,\n description,\n labels,\n host,\n latest,\n preview,\n }: ComponentModelProps) {\n return new ComponentModel(\n ComponentID.fromObject(id),\n displayName,\n packageName,\n server,\n Composition.fromArray(compositions),\n TagMap.fromArray(tags.map((tag) => Tag.fromObject(tag))),\n buildStatus,\n issuesCount,\n elementsUrl,\n status,\n deprecation,\n env,\n description,\n labels,\n host,\n latest,\n preview\n );\n }\n\n static fromArray(componentsProps: ComponentModelProps[]) {\n return componentsProps.map((rawComponent) => ComponentModel.from(rawComponent));\n }\n\n static empty() {\n return new ComponentModel(\n ComponentID.fromObject({ name: 'root', scope: 'temp' }),\n '',\n '',\n { env: '', url: '' },\n [],\n TagMap.empty()\n );\n }\n}\n"]}
@@ -113,6 +113,9 @@ const componentFields = (0, _client().gql)`
113
113
  id
114
114
  icon
115
115
  }
116
+ preview {
117
+ includesEnvTemplate
118
+ }
116
119
  }
117
120
  ${componentIdFields}
118
121
  `;
@@ -1 +1 @@
1
- {"version":3,"sources":["use-component-query.ts"],"names":["componentIdFields","componentFields","GET_COMPONENT","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED","useComponentQuery","componentId","host","idRef","current","data","error","loading","subscribeToMore","variables","id","extensionId","unsubAddition","document","updateQuery","prev","subscriptionData","prevComponent","getHost","get","addedComponent","componentAdded","component","name","unsubChanges","updatedComponent","componentChanged","isUpdated","ComponentID","isEqualObj","unsubRemoval","removedIds","componentRemoved","componentIds","length","isRemoved","some","removedId","rawComponent","ComponentModel","from","undefined","ComponentError","message"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA,MAAMA,iBAAiB,GAAG,kBAAI;AAC9B;AACA;AACA;AACA;AACA;AACA,CANA;AAQA,MAAMC,eAAe,GAAG,kBAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,iBAAkB;AACtB,CA3BA;AA6BA,MAAME,aAAa,GAAG,kBAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,eAAgB;AACpB,CAVA;AAYA,MAAME,sBAAsB,GAAG,kBAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,eAAgB;AACpB,CATA;AAWA,MAAMG,qBAAqB,GAAG,kBAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIH,eAAgB;AACpB,CATA;AAWA,MAAMI,qBAAqB,GAAG,kBAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIL,iBAAkB;AACtB,CATA;AAWA;;AACO,SAASM,iBAAT,CAA2BC,WAA3B,EAAgDC,IAAhD,EAA8D;AAAA;;AACnE,QAAMC,KAAK,GAAG,qBAAOF,WAAP,CAAd;AACAE,EAAAA,KAAK,CAACC,OAAN,GAAgBH,WAAhB;AACA,QAAM;AAAEI,IAAAA,IAAF;AAAQC,IAAAA,KAAR;AAAeC,IAAAA,OAAf;AAAwBC,IAAAA;AAAxB,MAA4C,yCAAaZ,aAAb,EAA4B;AAC5Ea,IAAAA,SAAS,EAAE;AAAEC,MAAAA,EAAE,EAAET,WAAN;AAAmBU,MAAAA,WAAW,EAAET;AAAhC;AADiE,GAA5B,CAAlD;AAIA,0BAAU,MAAM;AACd;AACA,QAAIA,IAAI,KAAK,6BAAb,EAA4C;AAC1C,aAAO,MAAM,CAAE,CAAf;AACD;;AAED,UAAMU,aAAa,GAAGJ,eAAe,CAAC;AACpCK,MAAAA,QAAQ,EAAEhB,sBAD0B;AAEpCiB,MAAAA,WAAW,EAAE,CAACC,IAAD,EAAO;AAAEC,QAAAA;AAAF,OAAP,KAAgC;AAAA;;AAC3C,cAAMC,aAAa,GAAGF,IAAH,aAAGA,IAAH,wCAAGA,IAAI,CAAEG,OAAT,kDAAG,cAAeC,GAArC;AACA,cAAMC,cAAc,GAAGJ,gBAAH,aAAGA,gBAAH,gDAAGA,gBAAgB,CAAEX,IAArB,oFAAG,sBAAwBgB,cAA3B,2DAAG,uBAAwCC,SAA/D;AAEA,YAAI,CAACF,cAAD,IAAmBH,aAAvB,EAAsC,OAAOF,IAAP;;AAEtC,YAAIZ,KAAK,CAACC,OAAN,KAAkBgB,cAAc,CAACV,EAAf,CAAkBa,IAAxC,EAA8C;AAC5C,iDACKR,IADL;AAEEG,YAAAA,OAAO,kCACFH,IAAI,CAACG,OADH;AAELC,cAAAA,GAAG,EAAEC;AAFA;AAFT;AAOD;;AAED,eAAOL,IAAP;AACD;AAnBmC,KAAD,CAArC;AAsBA,UAAMS,YAAY,GAAGhB,eAAe,CAAC;AACnCK,MAAAA,QAAQ,EAAEf,qBADyB;AAEnCgB,MAAAA,WAAW,EAAE,CAACC,IAAD,EAAO;AAAEC,QAAAA;AAAF,OAAP,KAAgC;AAAA;;AAC3C,YAAI,CAACA,gBAAgB,CAACX,IAAtB,EAA4B,OAAOU,IAAP;AAE5B,cAAME,aAAa,GAAGF,IAAH,aAAGA,IAAH,yCAAGA,IAAI,CAAEG,OAAT,mDAAG,eAAeC,GAArC;AACA,cAAMM,gBAAgB,GAAGT,gBAAH,aAAGA,gBAAH,iDAAGA,gBAAgB,CAAEX,IAArB,qFAAG,uBAAwBqB,gBAA3B,2DAAG,uBAA0CJ,SAAnE;;AAEA,cAAMK,SAAS,GAAGF,gBAAgB,IAAIG,2BAAYC,UAAZ,CAAuBZ,aAAvB,aAAuBA,aAAvB,uBAAuBA,aAAa,CAAEP,EAAtC,EAA0Ce,gBAA1C,aAA0CA,gBAA1C,uBAA0CA,gBAAgB,CAAEf,EAA5D,CAAtC;;AAEA,YAAIiB,SAAJ,EAAe;AACb,iDACKZ,IADL;AAEEG,YAAAA,OAAO,kCACFH,IAAI,CAACG,OADH;AAELC,cAAAA,GAAG,EAAEM;AAFA;AAFT;AAOD;;AAED,eAAOV,IAAP;AACD;AArBkC,KAAD,CAApC;AAwBA,UAAMe,YAAY,GAAGtB,eAAe,CAAC;AACnCK,MAAAA,QAAQ,EAAEd,qBADyB;AAEnCe,MAAAA,WAAW,EAAE,CAACC,IAAD,EAAO;AAAEC,QAAAA;AAAF,OAAP,KAAgC;AAAA;;AAC3C,YAAI,CAACA,gBAAgB,CAACX,IAAtB,EAA4B,OAAOU,IAAP;AAE5B,cAAME,aAAa,GAAGF,IAAH,aAAGA,IAAH,yCAAGA,IAAI,CAAEG,OAAT,mDAAG,eAAeC,GAArC;AACA,cAAMY,UAAwC,GAAGf,gBAAH,aAAGA,gBAAH,iDAAGA,gBAAgB,CAAEX,IAArB,qFAAG,uBAAwB2B,gBAA3B,2DAAG,uBAA0CC,YAA3F;AACA,YAAI,CAAChB,aAAD,IAAkB,EAACc,UAAD,aAACA,UAAD,eAACA,UAAU,CAAEG,MAAb,CAAtB,EAA2C,OAAOnB,IAAP;AAE3C,cAAMoB,SAAS,GAAGJ,UAAU,CAACK,IAAX,CAAiBC,SAAD,IAAeT,2BAAYC,UAAZ,CAAuBQ,SAAvB,EAAkCpB,aAAa,CAACP,EAAhD,CAA/B,CAAlB;;AAEA,YAAIyB,SAAJ,EAAe;AACb,iDACKpB,IADL;AAEEG,YAAAA,OAAO,kCACFH,IAAI,CAACG,OADH;AAELC,cAAAA,GAAG,EAAE;AAFA;AAFT;AAOD;;AAED,eAAOJ,IAAP;AACD;AAtBkC,KAAD,CAApC;AAyBA,WAAO,MAAM;AACXS,MAAAA,YAAY;AACZZ,MAAAA,aAAa;AACbkB,MAAAA,YAAY;AACb,KAJD;AAKD,GAlFD,EAkFG,EAlFH;AAoFA,QAAMQ,YAAY,GAAGjC,IAAH,aAAGA,IAAH,wCAAGA,IAAI,CAAEa,OAAT,kDAAG,cAAeC,GAApC;AAEA,SAAO,sBAAQ,MAAM;AACnB,WAAO;AACLG,MAAAA,SAAS,EAAEgB,YAAY,GAAGC,iCAAeC,IAAf,iCAAyBF,YAAzB;AAAuCpC,QAAAA;AAAvC,SAAH,GAAoDuC,SADtE;AAEL;AACAnC,MAAAA,KAAK,EAAEA,KAAK,GACR,KAAIoC,gCAAJ,EAAmB,GAAnB,EAAwBpC,KAAK,CAACqC,OAA9B,CADQ,GAER,CAACL,YAAD,IAAiB,CAAC/B,OAAlB,GACA,KAAImC,gCAAJ,EAAmB,GAAnB,CADA,GAEAD;AAPC,KAAP;AASD,GAVM,EAUJ,CAACH,YAAD,EAAepC,IAAf,EAAqBI,KAArB,CAVI,CAAP;AAWD","sourcesContent":["import { useMemo, useEffect, useRef } from 'react';\nimport { gql } from '@apollo/client';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { ComponentModel } from './component-model';\nimport { ComponentError } from './component-error';\n\nconst componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nconst componentFields = gql`\n fragment componentFields on Component {\n id {\n ...componentIdFields\n }\n packageName\n elementsUrl\n displayName\n latest\n server {\n env\n url\n }\n buildStatus\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n env {\n id\n icon\n }\n }\n ${componentIdFields}\n`;\n\nconst GET_COMPONENT = gql`\n query Component($id: String!, $extensionId: String!) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n ...componentIdFields\n }\n }\n }\n ${componentIdFields}\n`;\n\n/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */\nexport function useComponentQuery(componentId: string, host: string) {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const { data, error, loading, subscribeToMore } = useDataQuery(GET_COMPONENT, {\n variables: { id: componentId, extensionId: host },\n });\n\n useEffect(() => {\n // @TODO @Kutner fix subscription for scope\n if (host !== 'teambit.workspace/workspace') {\n return () => {};\n }\n\n const unsubAddition = subscribeToMore({\n document: SUB_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const prevComponent = prev?.getHost?.get;\n const addedComponent = subscriptionData?.data?.componentAdded?.component;\n\n if (!addedComponent || prevComponent) return prev;\n\n if (idRef.current === addedComponent.id.name) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: addedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubChanges = subscribeToMore({\n document: SUB_COMPONENT_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const updatedComponent = subscriptionData?.data?.componentChanged?.component;\n\n const isUpdated = updatedComponent && ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);\n\n if (isUpdated) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: updatedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubRemoval = subscribeToMore({\n document: SUB_COMPONENT_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const removedIds: ComponentIdObj[] | undefined = subscriptionData?.data?.componentRemoved?.componentIds;\n if (!prevComponent || !removedIds?.length) return prev;\n\n const isRemoved = removedIds.some((removedId) => ComponentID.isEqualObj(removedId, prevComponent.id));\n\n if (isRemoved) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: null,\n },\n };\n }\n\n return prev;\n },\n });\n\n return () => {\n unsubChanges();\n unsubAddition();\n unsubRemoval();\n };\n }, []);\n\n const rawComponent = data?.getHost?.get;\n\n return useMemo(() => {\n return {\n component: rawComponent ? ComponentModel.from({ ...rawComponent, host }) : undefined,\n // eslint-disable-next-line\n error: error\n ? new ComponentError(500, error.message)\n : !rawComponent && !loading\n ? new ComponentError(404)\n : undefined,\n };\n }, [rawComponent, host, error]);\n}\n"]}
1
+ {"version":3,"sources":["use-component-query.ts"],"names":["componentIdFields","componentFields","GET_COMPONENT","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED","useComponentQuery","componentId","host","idRef","current","data","error","loading","subscribeToMore","variables","id","extensionId","unsubAddition","document","updateQuery","prev","subscriptionData","prevComponent","getHost","get","addedComponent","componentAdded","component","name","unsubChanges","updatedComponent","componentChanged","isUpdated","ComponentID","isEqualObj","unsubRemoval","removedIds","componentRemoved","componentIds","length","isRemoved","some","removedId","rawComponent","ComponentModel","from","undefined","ComponentError","message"],"mappings":"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","sourcesContent":["import { useMemo, useEffect, useRef } from 'react';\nimport { gql } from '@apollo/client';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { ComponentModel } from './component-model';\nimport { ComponentError } from './component-error';\n\nconst componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nconst componentFields = gql`\n fragment componentFields on Component {\n id {\n ...componentIdFields\n }\n packageName\n elementsUrl\n displayName\n latest\n server {\n env\n url\n }\n buildStatus\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n env {\n id\n icon\n }\n preview {\n includesEnvTemplate\n }\n }\n ${componentIdFields}\n`;\n\nconst GET_COMPONENT = gql`\n query Component($id: String!, $extensionId: String!) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n ...componentIdFields\n }\n }\n }\n ${componentIdFields}\n`;\n\n/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */\nexport function useComponentQuery(componentId: string, host: string) {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const { data, error, loading, subscribeToMore } = useDataQuery(GET_COMPONENT, {\n variables: { id: componentId, extensionId: host },\n });\n\n useEffect(() => {\n // @TODO @Kutner fix subscription for scope\n if (host !== 'teambit.workspace/workspace') {\n return () => {};\n }\n\n const unsubAddition = subscribeToMore({\n document: SUB_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const prevComponent = prev?.getHost?.get;\n const addedComponent = subscriptionData?.data?.componentAdded?.component;\n\n if (!addedComponent || prevComponent) return prev;\n\n if (idRef.current === addedComponent.id.name) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: addedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubChanges = subscribeToMore({\n document: SUB_COMPONENT_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const updatedComponent = subscriptionData?.data?.componentChanged?.component;\n\n const isUpdated = updatedComponent && ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);\n\n if (isUpdated) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: updatedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubRemoval = subscribeToMore({\n document: SUB_COMPONENT_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const removedIds: ComponentIdObj[] | undefined = subscriptionData?.data?.componentRemoved?.componentIds;\n if (!prevComponent || !removedIds?.length) return prev;\n\n const isRemoved = removedIds.some((removedId) => ComponentID.isEqualObj(removedId, prevComponent.id));\n\n if (isRemoved) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: null,\n },\n };\n }\n\n return prev;\n },\n });\n\n return () => {\n unsubChanges();\n unsubAddition();\n unsubRemoval();\n };\n }, []);\n\n const rawComponent = data?.getHost?.get;\n\n return useMemo(() => {\n return {\n component: rawComponent ? ComponentModel.from({ ...rawComponent, host }) : undefined,\n // eslint-disable-next-line\n error: error\n ? new ComponentError(500, error.message)\n : !rawComponent && !loading\n ? new ComponentError(404)\n : undefined,\n };\n }, [rawComponent, host, error]);\n}\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "0.0.625",
3
+ "version": "0.0.631",
4
4
  "homepage": "https://bit.dev/teambit/component/component",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "component",
9
- "version": "0.0.625"
9
+ "version": "0.0.631"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -26,24 +26,24 @@
26
26
  "@teambit/base-ui.routing.nav-link": "1.0.0",
27
27
  "@teambit/documenter.ui.heading": "4.1.1",
28
28
  "@teambit/documenter.ui.separator": "4.1.1",
29
- "@teambit/component-id": "0.0.398",
29
+ "@teambit/component-id": "0.0.400",
30
30
  "@teambit/ui-foundation.ui.menu-widget-icon": "0.0.487",
31
- "@teambit/aspect-loader": "0.0.625",
31
+ "@teambit/aspect-loader": "0.0.631",
32
32
  "@teambit/legacy-bit-id": "0.0.397",
33
33
  "@teambit/toolbox.string.capitalize": "0.0.482",
34
- "@teambit/cli": "0.0.429",
35
- "@teambit/config": "0.0.441",
36
- "@teambit/express": "0.0.522",
37
- "@teambit/graphql": "0.0.625",
34
+ "@teambit/cli": "0.0.433",
35
+ "@teambit/config": "0.0.446",
36
+ "@teambit/express": "0.0.527",
37
+ "@teambit/graphql": "0.0.631",
38
38
  "@teambit/bit-error": "0.0.394",
39
- "@teambit/command-bar": "0.0.625",
40
- "@teambit/preview": "0.0.625",
41
- "@teambit/pubsub": "0.0.625",
39
+ "@teambit/command-bar": "0.0.631",
40
+ "@teambit/preview": "0.0.631",
41
+ "@teambit/pubsub": "0.0.631",
42
42
  "@teambit/ui-foundation.ui.is-browser": "0.0.485",
43
43
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.485",
44
44
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.487",
45
45
  "@teambit/ui-foundation.ui.use-box.menu": "0.0.108",
46
- "@teambit/ui": "0.0.625",
46
+ "@teambit/ui": "0.0.631",
47
47
  "@teambit/component-issues": "0.0.45",
48
48
  "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.486",
49
49
  "@teambit/cli-table": "0.0.33",
@@ -52,9 +52,9 @@
52
52
  "@teambit/harmony.ui.aspect-box": "0.0.485",
53
53
  "@teambit/design.ui.pages.not-found": "0.0.353",
54
54
  "@teambit/design.ui.pages.server-error": "0.0.353",
55
- "@teambit/compositions": "0.0.625",
56
- "@teambit/deprecation": "0.0.625",
57
- "@teambit/envs": "0.0.625",
55
+ "@teambit/compositions": "0.0.631",
56
+ "@teambit/deprecation": "0.0.631",
57
+ "@teambit/envs": "0.0.631",
58
58
  "@teambit/component.ui.version-dropdown": "0.0.490",
59
59
  "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.108",
60
60
  "@teambit/ui-foundation.ui.react-router.extend-path": "0.0.485"
@@ -76,7 +76,7 @@
76
76
  },
77
77
  "peerDependencies": {
78
78
  "@apollo/client": "^3.0.0",
79
- "@teambit/legacy": "1.0.207",
79
+ "@teambit/legacy": "1.0.209",
80
80
  "react-dom": "^16.8.0 || ^17.0.0",
81
81
  "react": "^16.8.0 || ^17.0.0"
82
82
  },
@@ -104,7 +104,7 @@
104
104
  "react": "-"
105
105
  },
106
106
  "peerDependencies": {
107
- "@teambit/legacy": "1.0.207",
107
+ "@teambit/legacy": "1.0.209",
108
108
  "react-dom": "^16.8.0 || ^17.0.0",
109
109
  "react": "^16.8.0 || ^17.0.0"
110
110
  }
@@ -28,6 +28,11 @@ export type ComponentModelProps = {
28
28
  labels?: string[];
29
29
  host?: string;
30
30
  latest?: string;
31
+ preview?: ComponentPreview;
32
+ };
33
+
34
+ export type ComponentPreview = {
35
+ includesEnvTemplate?: boolean
31
36
  };
32
37
 
33
38
  export type ComponentServer = {
@@ -111,7 +116,9 @@ export class ComponentModel {
111
116
  /**
112
117
  * latest version of component
113
118
  */
114
- readonly latest?: string
119
+ readonly latest?: string,
120
+
121
+ readonly preview?: ComponentPreview
115
122
  ) {}
116
123
 
117
124
  get version() {
@@ -139,6 +146,7 @@ export class ComponentModel {
139
146
  labels,
140
147
  host,
141
148
  latest,
149
+ preview,
142
150
  }: ComponentModelProps) {
143
151
  return new ComponentModel(
144
152
  ComponentID.fromObject(id),
@@ -156,7 +164,8 @@ export class ComponentModel {
156
164
  description,
157
165
  labels,
158
166
  host,
159
- latest
167
+ latest,
168
+ preview
160
169
  );
161
170
  }
162
171
 
@@ -39,6 +39,9 @@ const componentFields = gql`
39
39
  id
40
40
  icon
41
41
  }
42
+ preview {
43
+ includesEnvTemplate
44
+ }
42
45
  }
43
46
  ${componentIdFields}
44
47
  `;