@teambit/component 0.0.849 → 0.0.852

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.
@@ -25,6 +25,7 @@ export declare function componentSchema(componentExtension: ComponentMain): {
25
25
  limit?: number | undefined;
26
26
  head?: string | undefined;
27
27
  sort?: string | undefined;
28
+ takeHeadFromComponent: boolean;
28
29
  } | undefined) => Promise<{
29
30
  id: string;
30
31
  message: string;
@@ -149,8 +149,25 @@ function componentSchema(componentExtension) {
149
149
  # list of component releases.
150
150
  tags: [Tag]!
151
151
 
152
- # component logs
153
- logs(type: String, offset: Int, limit: Int, head: String, sort: String): [LogEntry]!
152
+ """
153
+ component logs
154
+ """
155
+ logs(
156
+ """
157
+ type of logs to show (tag or snap)
158
+ """
159
+ type: String,
160
+ offset: Int,
161
+ limit: Int,
162
+ """
163
+ head to start traversing logs from
164
+ """
165
+ head: String,
166
+ sort: String,
167
+ """
168
+ start traversing logs from the fetched component's head
169
+ """
170
+ takeHeadFromComponent: Boolean): [LogEntry]!
154
171
 
155
172
  aspects(include: [String]): [Aspect]
156
173
  }
@@ -223,7 +240,17 @@ function componentSchema(componentExtension) {
223
240
  return component.state.aspects.filter(include).serialize();
224
241
  },
225
242
  logs: async (component, filter) => {
226
- return (await component.getLogs(filter)).map(log => _objectSpread(_objectSpread({}, log), {}, {
243
+ let head = filter === null || filter === void 0 ? void 0 : filter.head;
244
+
245
+ if (!head && filter !== null && filter !== void 0 && filter.takeHeadFromComponent) {
246
+ head = component.id.version;
247
+ }
248
+
249
+ const finalFilter = _objectSpread(_objectSpread({}, filter), {
250
+ head
251
+ });
252
+
253
+ return (await component.getLogs(finalFilter)).map(log => _objectSpread(_objectSpread({}, log), {}, {
227
254
  id: log.hash
228
255
  }));
229
256
  }
@@ -1 +1 @@
1
- {"version":3,"names":["componentSchema","componentExtension","typeDefs","gql","resolvers","JSONObject","GraphQLJSONObject","Component","id","component","toObject","displayName","fs","state","filesystem","files","map","file","relative","getFile","path","maybeFile","find","pathNormalizeToLinux","undefined","contents","toString","mainFile","_consumer","headTag","latest","tags","toArray","tag","aspects","include","filter","serialize","logs","getLogs","log","hash","ComponentHost","get","host","componentId","resolveComponentId","error","snaps","list","listInvalid","invalidComps","err","errorName","name","errorMessage","message","stripAnsi","Query","getHost","componentExt"],"sources":["component.graphql.ts"],"sourcesContent":["import stripAnsi from 'strip-ansi';\nimport gql from 'graphql-tag';\nimport { GraphQLJSONObject } from 'graphql-type-json';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { Component } from './component';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain) {\n return {\n typeDefs: gql`\n scalar JSON\n scalar JSONObject\n\n type ComponentID {\n name: String!\n version: String\n scope: String\n }\n\n type Tag {\n # semver assigned to the tag.\n version: String!\n\n # tag hash.\n hash: String!\n }\n\n type Snap {\n # hash of the snapshot.\n hash: String!\n\n # time of the snapshot.\n timestamp: String!\n\n # parents of the snap\n parents: [String]!\n\n # snapper\n author: Author!\n\n # snapshot message\n message: String\n }\n\n type LogEntry {\n message: String!\n username: String\n email: String\n date: String\n hash: String!\n tag: String\n id: String!\n }\n\n type Author {\n # display name of the snapper.\n displayName: String!\n\n # author of the snapper.\n email: String!\n }\n\n type Component {\n # id of the component.\n id: ComponentID!\n\n # head snap of the component.\n head: Snap\n\n # head tag of the component.\n headTag: Tag\n\n # list of all relative component paths.\n fs: [String]\n\n # relative path to the main file of the component\n mainFile: String\n\n # return specific file contents by relative file path.\n getFile(path: String): String\n\n # latest version of the component.\n latest: String\n\n # display name of the component\n displayName: String!\n\n # component buildStatus\n buildStatus: String\n\n # list of component releases.\n tags: [Tag]!\n\n # component logs\n logs(type: String, offset: Int, limit: Int, head: String, sort: String): [LogEntry]!\n\n aspects(include: [String]): [Aspect]\n }\n\n type Aspect {\n id: String!\n icon: String\n config: JSONObject\n data: JSONObject\n }\n\n type InvalidComponent {\n id: ComponentID!\n errorName: String!\n errorMessage: String!\n }\n\n type ComponentHost {\n id: ID!\n name: String!\n\n # load a component.\n get(id: String!, withState: Boolean): Component\n\n # list components\n list(offset: Int, limit: Int): [Component]!\n\n # list invalid components and their errors\n listInvalid: [InvalidComponent]!\n\n # get component logs(snaps) by component id\n snaps(id: String!): [LogEntry]! @deprecated(reason: \"Use the logs field on Component\")\n }\n\n type Query {\n getHost(id: String): ComponentHost\n }\n `,\n resolvers: {\n JSONObject: GraphQLJSONObject,\n Component: {\n id: (component: Component) => component.id.toObject(),\n displayName: (component: Component) => component.displayName,\n fs: (component: Component) => {\n return component.state.filesystem.files.map((file) => file.relative);\n },\n getFile: (component: Component, { path }: { path: string }) => {\n const maybeFile = component.state.filesystem.files.find(\n (file) => pathNormalizeToLinux(file.relative) === path\n );\n if (!maybeFile) return undefined;\n return maybeFile.contents.toString('utf-8');\n },\n mainFile: (component: Component) => {\n return component.state._consumer.mainFile;\n },\n headTag: (component: Component) => component.headTag?.toObject(),\n latest: (component: Component) => component.latest,\n tags: (component) => {\n // graphql doesn't support map types\n return component.tags.toArray().map((tag) => tag.toObject());\n },\n aspects: (component: Component, { include }: { include?: string[] }) => {\n return component.state.aspects.filter(include).serialize();\n },\n logs: async (\n component: Component,\n filter?: { type?: string; offset?: number; limit?: number; head?: string; sort?: string }\n ) => {\n return (await component.getLogs(filter)).map((log) => ({ ...log, id: log.hash }));\n },\n },\n ComponentHost: {\n get: async (host: ComponentFactory, { id }: { id: string }) => {\n try {\n const componentId = await host.resolveComponentId(id);\n const component = await host.get(componentId);\n return component;\n } catch (error: any) {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }) => {\n const componentId = await host.resolveComponentId(id);\n // return (await host.getLogs(componentId)).map(log => ({...log, id: log.hash}))\n return host.getLogs(componentId);\n },\n list: async (host: ComponentFactory, filter?: { offset: number; limit: number }) => {\n return host.list(filter);\n },\n listInvalid: async (host: ComponentFactory) => {\n const invalidComps = await host.listInvalid();\n return invalidComps.map(({ id, err }) => ({\n id,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory) => {\n return host.name;\n },\n name: async (host: ComponentFactory) => {\n return host.name;\n },\n },\n Query: {\n getHost: (componentExt: ComponentMain, { id }: { id: string }) => {\n return componentExtension.getHost(id);\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAKO,SAASA,eAAT,CAAyBC,kBAAzB,EAA4D;EACjE,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAA,CAAI;AAClB;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;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA5HS;IA6HLC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCADH;MAETC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAD,IAA0BA,SAAS,CAACD,EAAV,CAAaE,QAAb,EADrB;QAETC,WAAW,EAAGF,SAAD,IAA0BA,SAAS,CAACE,WAFxC;QAGTC,EAAE,EAAGH,SAAD,IAA0B;UAC5B,OAAOA,SAAS,CAACI,KAAV,CAAgBC,UAAhB,CAA2BC,KAA3B,CAAiCC,GAAjC,CAAsCC,IAAD,IAAUA,IAAI,CAACC,QAApD,CAAP;QACD,CALQ;QAMTC,OAAO,E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"}
1
+ {"version":3,"names":["componentSchema","componentExtension","typeDefs","gql","resolvers","JSONObject","GraphQLJSONObject","Component","id","component","toObject","displayName","fs","state","filesystem","files","map","file","relative","getFile","path","maybeFile","find","pathNormalizeToLinux","undefined","contents","toString","mainFile","_consumer","headTag","latest","tags","toArray","tag","aspects","include","filter","serialize","logs","head","takeHeadFromComponent","version","finalFilter","getLogs","log","hash","ComponentHost","get","host","componentId","resolveComponentId","error","snaps","list","listInvalid","invalidComps","err","errorName","name","errorMessage","message","stripAnsi","Query","getHost","componentExt"],"sources":["component.graphql.ts"],"sourcesContent":["import stripAnsi from 'strip-ansi';\nimport gql from 'graphql-tag';\nimport { GraphQLJSONObject } from 'graphql-type-json';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { Component } from './component';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain) {\n return {\n typeDefs: gql`\n scalar JSON\n scalar JSONObject\n\n type ComponentID {\n name: String!\n version: String\n scope: String\n }\n\n type Tag {\n # semver assigned to the tag.\n version: String!\n\n # tag hash.\n hash: String!\n }\n\n type Snap {\n # hash of the snapshot.\n hash: String!\n\n # time of the snapshot.\n timestamp: String!\n\n # parents of the snap\n parents: [String]!\n\n # snapper\n author: Author!\n\n # snapshot message\n message: String\n }\n\n type LogEntry {\n message: String!\n username: String\n email: String\n date: String\n hash: String!\n tag: String\n id: String!\n }\n\n type Author {\n # display name of the snapper.\n displayName: String!\n\n # author of the snapper.\n email: String!\n }\n\n type Component {\n # id of the component.\n id: ComponentID!\n\n # head snap of the component.\n head: Snap\n\n # head tag of the component.\n headTag: Tag\n\n # list of all relative component paths.\n fs: [String]\n\n # relative path to the main file of the component\n mainFile: String\n\n # return specific file contents by relative file path.\n getFile(path: String): String\n\n # latest version of the component.\n latest: String\n\n # display name of the component\n displayName: String!\n\n # component buildStatus\n buildStatus: String\n\n # list of component releases.\n tags: [Tag]!\n\n \"\"\"\n component logs\n \"\"\"\n logs(\n \"\"\"\n type of logs to show (tag or snap)\n \"\"\"\n type: String,\n offset: Int,\n limit: Int,\n \"\"\"\n head to start traversing logs from\n \"\"\"\n head: String,\n sort: String,\n \"\"\"\n start traversing logs from the fetched component's head\n \"\"\"\n takeHeadFromComponent: Boolean): [LogEntry]!\n\n aspects(include: [String]): [Aspect]\n }\n\n type Aspect {\n id: String!\n icon: String\n config: JSONObject\n data: JSONObject\n }\n\n type InvalidComponent {\n id: ComponentID!\n errorName: String!\n errorMessage: String!\n }\n\n type ComponentHost {\n id: ID!\n name: String!\n\n # load a component.\n get(id: String!, withState: Boolean): Component\n\n # list components\n list(offset: Int, limit: Int): [Component]!\n\n # list invalid components and their errors\n listInvalid: [InvalidComponent]!\n\n # get component logs(snaps) by component id\n snaps(id: String!): [LogEntry]! @deprecated(reason: \"Use the logs field on Component\")\n }\n\n type Query {\n getHost(id: String): ComponentHost\n }\n `,\n resolvers: {\n JSONObject: GraphQLJSONObject,\n Component: {\n id: (component: Component) => component.id.toObject(),\n displayName: (component: Component) => component.displayName,\n fs: (component: Component) => {\n return component.state.filesystem.files.map((file) => file.relative);\n },\n getFile: (component: Component, { path }: { path: string }) => {\n const maybeFile = component.state.filesystem.files.find(\n (file) => pathNormalizeToLinux(file.relative) === path\n );\n if (!maybeFile) return undefined;\n return maybeFile.contents.toString('utf-8');\n },\n mainFile: (component: Component) => {\n return component.state._consumer.mainFile;\n },\n headTag: (component: Component) => component.headTag?.toObject(),\n latest: (component: Component) => component.latest,\n tags: (component) => {\n // graphql doesn't support map types\n return component.tags.toArray().map((tag) => tag.toObject());\n },\n aspects: (component: Component, { include }: { include?: string[] }) => {\n return component.state.aspects.filter(include).serialize();\n },\n logs: async (\n component: Component,\n filter?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n takeHeadFromComponent: boolean;\n }\n ) => {\n let head = filter?.head;\n if (!head && filter?.takeHeadFromComponent) {\n head = component.id.version;\n }\n const finalFilter = { ...filter, ...{ head } };\n return (await component.getLogs(finalFilter)).map((log) => ({ ...log, id: log.hash }));\n },\n },\n ComponentHost: {\n get: async (host: ComponentFactory, { id }: { id: string }) => {\n try {\n const componentId = await host.resolveComponentId(id);\n const component = await host.get(componentId);\n return component;\n } catch (error: any) {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }) => {\n const componentId = await host.resolveComponentId(id);\n // return (await host.getLogs(componentId)).map(log => ({...log, id: log.hash}))\n return host.getLogs(componentId);\n },\n list: async (host: ComponentFactory, filter?: { offset: number; limit: number }) => {\n return host.list(filter);\n },\n listInvalid: async (host: ComponentFactory) => {\n const invalidComps = await host.listInvalid();\n return invalidComps.map(({ id, err }) => ({\n id,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory) => {\n return host.name;\n },\n name: async (host: ComponentFactory) => {\n return host.name;\n },\n },\n Query: {\n getHost: (componentExt: ComponentMain, { id }: { id: string }) => {\n return componentExtension.getHost(id);\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAKO,SAASA,eAAT,CAAyBC,kBAAzB,EAA4D;EACjE,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAA,CAAI;AAClB;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;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;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA7IS;IA8ILC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCADH;MAETC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAD,IAA0BA,SAAS,CAACD,EAAV,CAAaE,QAAb,EADrB;QAETC,WAAW,EAAGF,SAAD,IAA0BA,SAAS,CAACE,WAFxC;QAGTC,EAAE,EAAGH,SAAD,IAA0B;UAC5B,OAAOA,SAAS,CAACI,KAAV,CAAgBC,UAAhB,CAA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"}
package/dist/index.d.ts CHANGED
@@ -25,7 +25,7 @@ export { componentFields, componentIdFields, componentOverviewFields } from './u
25
25
  export { ConsumePlugin } from './ui/menu';
26
26
  export { RegisteredComponentRoute, ComponentUrlParams } from './component.route';
27
27
  export { ComponentModel, ComponentModelProps } from './ui/component-model';
28
- export { TopBarNav, TopBarNavProps } from './ui/top-bar-nav';
28
+ export { TopBarNav } from './ui/top-bar-nav';
29
29
  export type { ShowFragment, ShowRow, ShowJSONRow } from './show';
30
30
  export { default as Config } from './config';
31
31
  export { useComponent } from './ui';
package/dist/index.js CHANGED
@@ -167,12 +167,6 @@ Object.defineProperty(exports, "TopBarNav", {
167
167
  return _topBarNav().TopBarNav;
168
168
  }
169
169
  });
170
- Object.defineProperty(exports, "TopBarNavProps", {
171
- enumerable: true,
172
- get: function () {
173
- return _topBarNav().TopBarNavProps;
174
- }
175
- });
176
170
  Object.defineProperty(exports, "componentFields", {
177
171
  enumerable: true,
178
172
  get: function () {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["ComponentAspect"],"sources":["index.ts"],"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, ResolveAspectsOptions } from './component-factory';\nexport type { AspectList } from './aspect-list';\nexport { AspectEntry, AspectData, ResolveComponentIdFunc } 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 type { IComponent } from './component-interface';\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, ComponentDescriptorContext, useComponentDescriptor } from './ui/context/component-context';\nexport type { ComponentProviderProps, ComponentDescriptorProviderProps } from './ui/context';\nexport { ComponentProvider, ComponentDescriptorProvider } from './ui/context';\nexport { componentFields, componentIdFields, componentOverviewFields } from './ui';\nexport { ConsumePlugin } from './ui/menu';\nexport { RegisteredComponentRoute, ComponentUrlParams } from './component.route';\nexport { ComponentModel, ComponentModelProps } from './ui/component-model';\nexport { TopBarNav, TopBarNavProps } from './ui/top-bar-nav';\nexport type { ShowFragment, ShowRow, ShowJSONRow } from './show';\nexport { default as Config } from './config';\nexport { useComponent } from './ui';\n\n// export { AspectList } from './aspect-list';\n// export { AspectEntry } from './aspect-entry';\nexport { ComponentAspect };\nexport default ComponentAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAxBA;AACA;AAGA;AACA;AAsBA;AACA;eAEeA,4B"}
1
+ {"version":3,"names":["ComponentAspect"],"sources":["index.ts"],"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, ResolveAspectsOptions } from './component-factory';\nexport type { AspectList } from './aspect-list';\nexport { AspectEntry, AspectData, ResolveComponentIdFunc } 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 type { IComponent } from './component-interface';\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, ComponentDescriptorContext, useComponentDescriptor } from './ui/context/component-context';\nexport type { ComponentProviderProps, ComponentDescriptorProviderProps } from './ui/context';\nexport { ComponentProvider, ComponentDescriptorProvider } from './ui/context';\nexport { componentFields, componentIdFields, componentOverviewFields } from './ui';\nexport { ConsumePlugin } from './ui/menu';\nexport { RegisteredComponentRoute, ComponentUrlParams } from './component.route';\nexport { ComponentModel, ComponentModelProps } from './ui/component-model';\nexport { TopBarNav } from './ui/top-bar-nav';\nexport type { ShowFragment, ShowRow, ShowJSONRow } from './show';\nexport { default as Config } from './config';\nexport { useComponent } from './ui';\n\n// export { AspectList } from './aspect-list';\n// export { AspectEntry } from './aspect-entry';\nexport { ComponentAspect };\nexport default ComponentAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAxBA;AACA;AAGA;AACA;AAsBA;AACA;eAEeA,4B"}
@@ -2,6 +2,6 @@ export { Component } from './component';
2
2
  export { ComponentModel, ComponentModelProps } from './component-model';
3
3
  export { ComponentContext, ComponentProvider } from './context';
4
4
  export { useComponent } from './use-component';
5
- export { TopBarNav, TopBarNavProps } from './top-bar-nav';
5
+ export { TopBarNav } from './top-bar-nav';
6
6
  export { componentIdFields, componentOverviewFields, componentFields } from './use-component-query';
7
7
  export { useIdFromLocation } from './use-component-from-location';
package/dist/ui/index.js CHANGED
@@ -39,12 +39,6 @@ Object.defineProperty(exports, "TopBarNav", {
39
39
  return _topBarNav().TopBarNav;
40
40
  }
41
41
  });
42
- Object.defineProperty(exports, "TopBarNavProps", {
43
- enumerable: true,
44
- get: function () {
45
- return _topBarNav().TopBarNavProps;
46
- }
47
- });
48
42
  Object.defineProperty(exports, "componentFields", {
49
43
  enumerable: true,
50
44
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { Component } from './component';\nexport { ComponentModel, ComponentModelProps } from './component-model';\nexport { ComponentContext, ComponentProvider } from './context';\nexport { useComponent } from './use-component';\nexport { TopBarNav, TopBarNavProps } from './top-bar-nav';\nexport { componentIdFields, componentOverviewFields, componentFields } from './use-component-query';\nexport { useIdFromLocation } from './use-component-from-location';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { Component } from './component';\nexport { ComponentModel, ComponentModelProps } from './component-model';\nexport { ComponentContext, ComponentProvider } from './context';\nexport { useComponent } from './use-component';\nexport { TopBarNav } from './top-bar-nav';\nexport { componentIdFields, componentOverviewFields, componentFields } from './use-component-query';\nexport { useIdFromLocation } from './use-component-from-location';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
@@ -1,4 +1,3 @@
1
1
  /// <reference types="react" />
2
- import { LinkProps } from '@teambit/base-react.navigation.link';
3
- export declare type TopBarNavProps = {} & LinkProps;
4
- export declare function TopBarNav({ href, className, activeClassName, children, ...rest }: TopBarNavProps): JSX.Element;
2
+ import { NavPluginProps } from '../menu/nav-plugin';
3
+ export declare function TopBarNav({ href, className, activeClassName, children, displayName, ...rest }: NavPluginProps): JSX.Element;
@@ -84,13 +84,19 @@ function TopBarNav(_ref) {
84
84
  href,
85
85
  className,
86
86
  activeClassName,
87
- children
87
+ children,
88
+ displayName
88
89
  } = _ref,
89
- rest = (0, _objectWithoutProperties2().default)(_ref, ["href", "className", "activeClassName", "children"]);
90
+ rest = (0, _objectWithoutProperties2().default)(_ref, ["href", "className", "activeClassName", "children", "displayName"]);
90
91
  const {
91
92
  search
92
93
  } = (0, _reactRouterDom().useLocation)(); // sticky query params
94
+ // @hack - this is so that the displayName will not pass to the link and cause a warning in the console.
95
+ // it is used for component page nav link widgets (code, aspects etc),
96
+ // but not for regular menu links (overview, compositions, etc).
97
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
93
98
 
99
+ const preventPassingDisplayNameToLink = displayName;
94
100
  const target = `${href}${search}`;
95
101
  return /*#__PURE__*/_react().default.createElement(_baseReactNavigation().Link, (0, _extends2().default)({}, rest, {
96
102
  className: (0, _classnames().default)(className, _topBarNavModule().default.topBarLink),
@@ -1 +1 @@
1
- {"version":3,"names":["TopBarNav","href","className","activeClassName","children","rest","search","useLocation","target","classnames","styles","topBarLink","active"],"sources":["top-bar-nav.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { useLocation } from 'react-router-dom';\nimport { Link, LinkProps } from '@teambit/base-react.navigation.link';\n\nimport styles from './top-bar-nav.module.scss';\n\nexport type TopBarNavProps = {} & LinkProps;\n\nexport function TopBarNav({ href, className, activeClassName, children, ...rest }: TopBarNavProps) {\n const { search } = useLocation(); // sticky query params\n\n const target = `${href}${search}`;\n\n return (\n <Link\n {...rest}\n className={classnames(className, styles.topBarLink)}\n activeClassName={classnames(activeClassName, styles.active)}\n href={target}\n >\n <div>{children}</div>\n </Link>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIO,SAASA,SAAT,OAA4F;EAAA,IAAzE;IAAEC,IAAF;IAAQC,SAAR;IAAmBC,eAAnB;IAAoCC;EAApC,CAAyE;EAAA,IAAxBC,IAAwB;EACjG,MAAM;IAAEC;EAAF,IAAa,IAAAC,6BAAA,GAAnB,CADiG,CAC/D;;EAElC,MAAMC,MAAM,GAAI,GAAEP,IAAK,GAAEK,MAAO,EAAhC;EAEA,oBACE,+BAAC,2BAAD,+BACMD,IADN;IAEE,SAAS,EAAE,IAAAI,qBAAA,EAAWP,SAAX,EAAsBQ,0BAAA,CAAOC,UAA7B,CAFb;IAGE,eAAe,EAAE,IAAAF,qBAAA,EAAWN,eAAX,EAA4BO,0BAAA,CAAOE,MAAnC,CAHnB;IAIE,IAAI,EAAEJ;EAJR,iBAME,4CAAMJ,QAAN,CANF,CADF;AAUD"}
1
+ {"version":3,"names":["TopBarNav","href","className","activeClassName","children","displayName","rest","search","useLocation","preventPassingDisplayNameToLink","target","classnames","styles","topBarLink","active"],"sources":["top-bar-nav.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { useLocation } from 'react-router-dom';\nimport { Link } from '@teambit/base-react.navigation.link';\nimport { NavPluginProps } from '../menu/nav-plugin';\n\nimport styles from './top-bar-nav.module.scss';\n\nexport function TopBarNav({ href, className, activeClassName, children, displayName, ...rest }: NavPluginProps) {\n const { search } = useLocation(); // sticky query params\n\n // @hack - this is so that the displayName will not pass to the link and cause a warning in the console.\n // it is used for component page nav link widgets (code, aspects etc),\n // but not for regular menu links (overview, compositions, etc).\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const preventPassingDisplayNameToLink = displayName;\n\n const target = `${href}${search}`;\n\n return (\n <Link\n {...rest}\n className={classnames(className, styles.topBarLink)}\n activeClassName={classnames(activeClassName, styles.active)}\n href={target}\n >\n <div>{children}</div>\n </Link>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,SAASA,SAAT,OAAyG;EAAA,IAAtF;IAAEC,IAAF;IAAQC,SAAR;IAAmBC,eAAnB;IAAoCC,QAApC;IAA8CC;EAA9C,CAAsF;EAAA,IAAxBC,IAAwB;EAC9G,MAAM;IAAEC;EAAF,IAAa,IAAAC,6BAAA,GAAnB,CAD8G,CAC5E;EAElC;EACA;EACA;EACA;;EACA,MAAMC,+BAA+B,GAAGJ,WAAxC;EAEA,MAAMK,MAAM,GAAI,GAAET,IAAK,GAAEM,MAAO,EAAhC;EAEA,oBACE,+BAAC,2BAAD,+BACMD,IADN;IAEE,SAAS,EAAE,IAAAK,qBAAA,EAAWT,SAAX,EAAsBU,0BAAA,CAAOC,UAA7B,CAFb;IAGE,eAAe,EAAE,IAAAF,qBAAA,EAAWR,eAAX,EAA4BS,0BAAA,CAAOE,MAAnC,CAHnB;IAIE,IAAI,EAAEJ;EAJR,iBAME,4CAAMN,QAAN,CANF,CADF;AAUD"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "0.0.849",
3
+ "version": "0.0.852",
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.849"
9
+ "version": "0.0.852"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/any-fs": "0.0.5",
@@ -23,26 +23,26 @@
23
23
  "core-js": "^3.0.0",
24
24
  "@teambit/component-id": "0.0.417",
25
25
  "@teambit/ui-foundation.ui.menu-widget-icon": "0.0.494",
26
- "@teambit/aspect-loader": "0.0.849",
26
+ "@teambit/aspect-loader": "0.0.852",
27
27
  "@teambit/legacy-bit-id": "0.0.414",
28
28
  "@teambit/toolbox.path.match-patterns": "0.0.7",
29
29
  "@teambit/toolbox.string.capitalize": "0.0.489",
30
30
  "@teambit/harmony": "0.3.3",
31
31
  "@teambit/cli": "0.0.566",
32
32
  "@teambit/express": "0.0.664",
33
- "@teambit/graphql": "0.0.849",
33
+ "@teambit/graphql": "0.0.852",
34
34
  "@teambit/bit-error": "0.0.400",
35
35
  "@teambit/base-react.navigation.link": "2.0.27",
36
- "@teambit/command-bar": "0.0.849",
36
+ "@teambit/command-bar": "0.0.852",
37
37
  "@teambit/component.ui.deprecation-icon": "0.0.500",
38
- "@teambit/preview": "0.0.849",
39
- "@teambit/pubsub": "0.0.849",
40
- "@teambit/react-router": "0.0.849",
38
+ "@teambit/preview": "0.0.852",
39
+ "@teambit/pubsub": "0.0.852",
40
+ "@teambit/react-router": "0.0.852",
41
41
  "@teambit/ui-foundation.ui.is-browser": "0.0.492",
42
42
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.493",
43
43
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.496",
44
44
  "@teambit/ui-foundation.ui.use-box.menu": "0.0.122",
45
- "@teambit/ui": "0.0.849",
45
+ "@teambit/ui": "0.0.852",
46
46
  "@teambit/component-issues": "0.0.72",
47
47
  "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.496",
48
48
  "@teambit/cli-table": "0.0.40",
@@ -53,15 +53,15 @@
53
53
  "@teambit/documenter.ui.heading": "4.1.1",
54
54
  "@teambit/documenter.ui.separator": "4.1.1",
55
55
  "@teambit/harmony.ui.aspect-box": "0.0.492",
56
- "@teambit/design.ui.pages.not-found": "0.0.363",
57
- "@teambit/design.ui.pages.server-error": "0.0.363",
58
- "@teambit/compositions": "0.0.849",
59
- "@teambit/deprecation": "0.0.849",
60
- "@teambit/envs": "0.0.849",
56
+ "@teambit/compositions": "0.0.852",
57
+ "@teambit/deprecation": "0.0.852",
58
+ "@teambit/envs": "0.0.852",
61
59
  "@teambit/legacy-component-log": "0.0.398",
62
60
  "@teambit/design.ui.styles.ellipsis": "0.0.353",
63
61
  "@teambit/envs.ui.env-icon": "0.0.492",
64
62
  "@teambit/explorer.ui.command-bar": "2.0.3",
63
+ "@teambit/design.ui.pages.not-found": "0.0.363",
64
+ "@teambit/design.ui.pages.server-error": "0.0.363",
65
65
  "@teambit/base-ui.layout.breakpoints": "1.0.0",
66
66
  "@teambit/component.ui.version-dropdown": "0.0.629",
67
67
  "@teambit/lanes.ui.models": "0.0.25",
@@ -1,5 +1,7 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.849/dist/component.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.849/dist/component.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.852/dist/component.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.852/dist/component.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
6
+
7
+ export const compositions_metadata = {"compositions":[{"displayName":"Logo","identifier":"Logo"}]};
package/ui/index.ts CHANGED
@@ -2,6 +2,6 @@ export { Component } from './component';
2
2
  export { ComponentModel, ComponentModelProps } from './component-model';
3
3
  export { ComponentContext, ComponentProvider } from './context';
4
4
  export { useComponent } from './use-component';
5
- export { TopBarNav, TopBarNavProps } from './top-bar-nav';
5
+ export { TopBarNav } from './top-bar-nav';
6
6
  export { componentIdFields, componentOverviewFields, componentFields } from './use-component-query';
7
7
  export { useIdFromLocation } from './use-component-from-location';
@@ -1,15 +1,20 @@
1
1
  import React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import { useLocation } from 'react-router-dom';
4
- import { Link, LinkProps } from '@teambit/base-react.navigation.link';
4
+ import { Link } from '@teambit/base-react.navigation.link';
5
+ import { NavPluginProps } from '../menu/nav-plugin';
5
6
 
6
7
  import styles from './top-bar-nav.module.scss';
7
8
 
8
- export type TopBarNavProps = {} & LinkProps;
9
-
10
- export function TopBarNav({ href, className, activeClassName, children, ...rest }: TopBarNavProps) {
9
+ export function TopBarNav({ href, className, activeClassName, children, displayName, ...rest }: NavPluginProps) {
11
10
  const { search } = useLocation(); // sticky query params
12
11
 
12
+ // @hack - this is so that the displayName will not pass to the link and cause a warning in the console.
13
+ // it is used for component page nav link widgets (code, aspects etc),
14
+ // but not for regular menu links (overview, compositions, etc).
15
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
+ const preventPassingDisplayNameToLink = displayName;
17
+
13
18
  const target = `${href}${search}`;
14
19
 
15
20
  return (