@teambit/component 1.0.1033 → 1.0.1034
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.
- package/dist/component.graphql.js +3 -0
- package/dist/component.graphql.js.map +1 -1
- package/dist/component.js +1 -1
- package/dist/component.js.map +1 -1
- package/dist/{preview-1782251479307.js → preview-1782326787671.js} +2 -2
- package/dist/ui/use-component.fragments.js +2 -0
- package/dist/ui/use-component.fragments.js.map +1 -1
- package/package.json +15 -15
- package/ui/use-component.fragments.ts +2 -0
|
@@ -86,6 +86,9 @@ function componentSchema(componentExtension) {
|
|
|
86
86
|
tag: String
|
|
87
87
|
id: String!
|
|
88
88
|
profileImage: String
|
|
89
|
+
|
|
90
|
+
# whether this specific version is deprecated (full component deprecation or matched by a deprecation range)
|
|
91
|
+
deprecated: Boolean
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
type Author {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stripAnsi","data","_interopRequireDefault","require","_graphqlTag","_graphqlTypeJson","_toolboxPath","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","componentSchema","componentExtension","typeDefs","gql","resolvers","JSONObject","GraphQLJSONObject","Component","id","component","toObject","displayName","fs","state","filesystem","files","map","file","relative","log","snap","loadSnap","version","date","timestamp","getTime","email","author","username","name","hash","getFile","path","maybeFile","find","pathNormalizeToLinux","undefined","contents","toString","mainFile","_consumer","headTag","latest","tags","toArray","tag","aspects","include","serialize","elementsUrl","logs","head","takeHeadFromComponent","finalFilter","getLogs","ComponentHost","get","host","componentId","resolveComponentId","snaps","list","listInvalid","invalidComps","err","errorName","errorMessage","message","stripAnsi","_args","_context","info","extensionId","variableValues","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 type { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { pathNormalizeToLinux } from '@teambit/toolbox.path.path';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { Schema } from '@teambit/graphql';\nimport type { Component } from './component';\nimport type { ComponentFactory } from './component-factory';\nimport type { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain): Schema {\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 displayName: String\n username: String\n parents: [String]!\n email: String\n date: String\n hash: String!\n tag: String\n id: String!\n profileImage: 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 # Log entry of the component.\n log: LogEntry!\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\n ): [LogEntry]!\n\n aspects(include: [String]): [Aspect]\n\n \"\"\"\n element url of the component - this is deprecated, and will return empty string now.\n it's here to not break old queries\n \"\"\"\n elementsUrl: String @deprecated(reason: \"Not in use anymore\")\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): ComponentIdObj => 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 log: async (component: Component) => {\n const snap = await component.loadSnap(component.id.version);\n return {\n ...snap,\n date: snap.timestamp.getTime(),\n email: snap.author.email,\n username: snap.author.name,\n displayName: snap.author.displayName,\n id: snap.hash,\n };\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 // Here only to not break old queries\n elementsUrl: () => undefined,\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 {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }): Promise<ComponentLog[]> => {\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: id as ComponentID,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory, _args, _context, info) => {\n const extensionId = info.variableValues.extensionId;\n return extensionId ? `${host.name}/${extensionId}` : 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":"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ACA;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,KAAK;IACDC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCAAiB;MAC7BC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAoB,IAAqBA,SAAS,CAACD,EAAE,CAACE,QAAQ,CAAC,CAAC;QACrEC,WAAW,EAAGF,SAAoB,IAAKA,SAAS,CAACE,WAAW;QAC5DC,EAAE,EAAGH,SAAoB,IAAK;UAC5B,OAAOA,SAAS,CAACI,KAAK,CAACC,UAAU,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAAC;QACtE,CAAC;QACDC,GAAG,EAAE,MAAOV,SAAoB,IAAK;UACnC,MAAMW,IAAI,GAAG,MAAMX,SAAS,CAACY,QAAQ,CAACZ,SAAS,CAACD,EAAE,CAACc,OAAO,CAAC;UAC3D,OAAA1C,aAAA,CAAAA,aAAA,KACKwC,IAAI;YACPG,IAAI,EAAEH,IAAI,CAACI,SAAS,CAACC,OAAO,CAAC,CAAC;YAC9BC,KAAK,EAAEN,IAAI,CAACO,MAAM,CAACD,KAAK;YACxBE,QAAQ,EAAER,IAAI,CAACO,MAAM,CAACE,IAAI;YAC1BlB,WAAW,EAAES,IAAI,CAACO,MAAM,CAAChB,WAAW;YACpCH,EAAE,EAAEY,IAAI,CAACU;UAAI;QAEjB,CAAC;QACDC,OAAO,EAAEA,CAACtB,SAAoB,EAAE;UAAEuB;QAAuB,CAAC,KAAK;UAC7D,MAAMC,SAAS,GAAGxB,SAA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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_stripAnsi","data","_interopRequireDefault","require","_graphqlTag","_graphqlTypeJson","_toolboxPath","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","componentSchema","componentExtension","typeDefs","gql","resolvers","JSONObject","GraphQLJSONObject","Component","id","component","toObject","displayName","fs","state","filesystem","files","map","file","relative","log","snap","loadSnap","version","date","timestamp","getTime","email","author","username","name","hash","getFile","path","maybeFile","find","pathNormalizeToLinux","undefined","contents","toString","mainFile","_consumer","headTag","latest","tags","toArray","tag","aspects","include","serialize","elementsUrl","logs","head","takeHeadFromComponent","finalFilter","getLogs","ComponentHost","get","host","componentId","resolveComponentId","snaps","list","listInvalid","invalidComps","err","errorName","errorMessage","message","stripAnsi","_args","_context","info","extensionId","variableValues","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 type { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { pathNormalizeToLinux } from '@teambit/toolbox.path.path';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { Schema } from '@teambit/graphql';\nimport type { Component } from './component';\nimport type { ComponentFactory } from './component-factory';\nimport type { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain): Schema {\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 displayName: String\n username: String\n parents: [String]!\n email: String\n date: String\n hash: String!\n tag: String\n id: String!\n profileImage: String\n\n # whether this specific version is deprecated (full component deprecation or matched by a deprecation range)\n deprecated: Boolean\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 # Log entry of the component.\n log: LogEntry!\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\n ): [LogEntry]!\n\n aspects(include: [String]): [Aspect]\n\n \"\"\"\n element url of the component - this is deprecated, and will return empty string now.\n it's here to not break old queries\n \"\"\"\n elementsUrl: String @deprecated(reason: \"Not in use anymore\")\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): ComponentIdObj => 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 log: async (component: Component) => {\n const snap = await component.loadSnap(component.id.version);\n return {\n ...snap,\n date: snap.timestamp.getTime(),\n email: snap.author.email,\n username: snap.author.name,\n displayName: snap.author.displayName,\n id: snap.hash,\n };\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 // Here only to not break old queries\n elementsUrl: () => undefined,\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 {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }): Promise<ComponentLog[]> => {\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: id as ComponentID,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory, _args, _context, info) => {\n const extensionId = info.variableValues.extensionId;\n return extensionId ? `${host.name}/${extensionId}` : 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":"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ACA;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,KAAK;IACDC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCAAiB;MAC7BC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAoB,IAAqBA,SAAS,CAACD,EAAE,CAACE,QAAQ,CAAC,CAAC;QACrEC,WAAW,EAAGF,SAAoB,IAAKA,SAAS,CAACE,WAAW;QAC5DC,EAAE,EAAGH,SAAoB,IAAK;UAC5B,OAAOA,SAAS,CAACI,KAAK,CAACC,UAAU,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAAC;QACtE,CAAC;QACDC,GAAG,EAAE,MAAOV,SAAoB,IAAK;UACnC,MAAMW,IAAI,GAAG,MAAMX,SAAS,CAACY,QAAQ,CAACZ,SAAS,CAACD,EAAE,CAACc,OAAO,CAAC;UAC3D,OAAA1C,aAAA,CAAAA,aAAA,KACKwC,IAAI;YACPG,IAAI,EAAEH,IAAI,CAACI,SAAS,CAACC,OAAO,CAAC,CAAC;YAC9BC,KAAK,EAAEN,IAAI,CAACO,MAAM,CAACD,KAAK;YACxBE,QAAQ,EAAER,IAAI,CAACO,MAAM,CAACE,IAAI;YAC1BlB,WAAW,EAAES,IAAI,CAACO,MAAM,CAAChB,WAAW;YACpCH,EAAE,EAAEY,IAAI,CAACU;UAAI;QAEjB,CAAC;QACDC,OAAO,EAAEA,CAACtB,SAAoB,EAAE;UAAEuB;QAAuB,CAAC,KAAK;UAC7D,MAAMC,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","ignoreList":[]}
|
package/dist/component.js
CHANGED
|
@@ -134,7 +134,7 @@ class Component {
|
|
|
134
134
|
return this.state.aspects.get(id)?.serialize();
|
|
135
135
|
}
|
|
136
136
|
async getLogs(filter) {
|
|
137
|
-
const allLogs =
|
|
137
|
+
const allLogs = await this.factory.getLogs(this.id, false, filter?.head);
|
|
138
138
|
if (!filter) return allLogs;
|
|
139
139
|
const {
|
|
140
140
|
type,
|
package/dist/component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_toolboxString","data","require","_bitError","_lodash","_tagMap","_exceptions","Component","constructor","id","head","_state","tags","TagMap","factory","mainFile","state","config","filesystem","buildStatus","_consumer","homepage","_getHomepage","headTag","undefined","byHash","hash","latest","getLatest","err","CouldNotFindLatest","get","aspects","serialize","getLogs","filter","allLogs","log","deprecated","type","limit","offset","sort","typeFilter","snap","tag","filteredLogs","reverse","slice","getDependencies","getPackageName","componentPackageName","stringify","JSON","displayName","tokens","name","split","map","token","capitalize","join","version","isModified","isDeleted","isRemoved","isOutdated","latestTag","byVersion","isNew","Promise","resolve","isExported","loadState","snapId","getState","loadSnap","snapToGet","BitError","getSnap","snapsIterable","options","snapToStart","nextSnaps","done","iterator","next","value","currSnapId","shift","parents","length","firstParentOnly","push","concat","stopFn","Symbol","asyncIterator","getClosestTag","snapToStartFrom","tagsHashMap","getHashMap","has","iterable","snaps","hashOfLastSnap","getTag","currentVersion","getSnapHash","hasVersion","getCurrentSnap","checkout","write","path","fs","equals","component","toString","exports"],"sources":["component.ts"],"sourcesContent":["import type { AnyFS } from '@teambit/any-fs';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport type { SemVer } from 'semver';\nimport type { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport type { BuildStatus } from '@teambit/legacy.constants';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { DependencyList } from '@teambit/dependency-resolver';\nimport { slice } from 'lodash';\nimport type { ComponentFactory } from './component-factory';\nimport type ComponentFS from './component-fs';\n// import { NothingToSnap } from './exceptions';\nimport type { Config as ComponentConfig } from './config';\n// eslint-disable-next-line import/no-cycle\nimport type { Snap } from './snap';\nimport type { State } from './state';\nimport { TagMap } from './tag-map';\nimport type { Tag } from './tag';\nimport { CouldNotFindLatest } from './exceptions';\nimport type { IComponent, RawComponentMetadata } from './component-interface';\n// import { Author } from './types';\n\ntype SnapsIterableOpts = {\n firstParentOnly?: boolean;\n stopFn?: (snap: Snap) => Promise<boolean>;\n};\n\nexport type InvalidComponent = { id: ComponentID; err: Error };\n\n/**\n * in-memory representation of a component.\n */\nexport class Component implements IComponent {\n constructor(\n /**\n * component ID represented by the `ComponentId` type.\n */\n readonly id: ComponentID,\n\n /**\n * head version of the component. can be `null` for new components.\n * if on main, returns the head on main.\n * if on a lane, returns the head on the lane.\n */\n readonly head: Snap | null = null,\n\n /**\n * state of the component.\n */\n private _state: State,\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap = new TagMap(),\n\n /**\n * the component factory\n */\n private factory: ComponentFactory\n ) {}\n\n get mainFile() {\n return this.state.mainFile;\n }\n\n get state(): State {\n return this._state;\n }\n\n set state(state: State) {\n this._state = state;\n }\n\n /**\n * component configuration which is later generated to a component `package.json` and `bit.json`.\n */\n get config(): ComponentConfig {\n return this.state.config;\n }\n\n /**\n * in-memory representation of the component current filesystem.\n */\n get filesystem(): ComponentFS {\n return this.state.filesystem;\n }\n\n /**\n * build status of the component\n */\n get buildStatus(): BuildStatus {\n return this._state._consumer.buildStatus;\n }\n\n get homepage(): string | undefined {\n return this._state._consumer._getHomepage();\n }\n\n get headTag() {\n if (!this.head) return undefined;\n return this.tags.byHash(this.head.hash);\n }\n\n get latest(): string | undefined {\n if (!this.head) return undefined;\n try {\n return this.tags.getLatest();\n } catch (err: any) {\n if (err instanceof CouldNotFindLatest) {\n return this.head.hash;\n }\n throw err;\n }\n }\n\n /**\n * get aspect data from current state.\n */\n get(id: string): RawComponentMetadata | undefined {\n return this.state.aspects.get(id)?.serialize();\n }\n\n async getLogs(filter?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n }): Promise<ComponentLog[]> {\n const allLogs = (await this.factory.getLogs(this.id, false, filter?.head)).filter((log) => !log.deprecated);\n\n if (!filter) return allLogs;\n\n const { type, limit, offset, sort } = filter;\n\n const typeFilter = (snap) => {\n if (type === 'tag') return snap.tag;\n if (type === 'snap') return !snap.tag;\n return true;\n };\n\n let filteredLogs = (type && allLogs.filter(typeFilter)) || allLogs;\n if (sort !== 'asc') filteredLogs = filteredLogs.reverse();\n\n if (limit) {\n filteredLogs = slice(filteredLogs, offset, limit + (offset || 0));\n }\n\n return filteredLogs;\n }\n\n getDependencies(): DependencyList {\n return this.factory.getDependencies(this);\n }\n\n getPackageName(): string {\n return this.factory.componentPackageName(this);\n }\n\n stringify(): string {\n return JSON.stringify({\n id: this.id,\n head: this.head,\n });\n }\n\n /**\n * record component changes in the `Scope`.\n */\n // snap(author: Author, message = '') {\n // if (!this.isModified()) throw new NothingToSnap();\n // const snap = new Snap(this, author, message);\n\n // return new Component(this.id, snap, snap.state);\n // }\n\n /**\n * display name of the component.\n */\n get displayName() {\n const tokens = this.id.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n /**\n * tag a component `Snap` with a semantic version. we follow SemVer specs as defined [here](https://semver.org/)).\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tag(version: SemVer) {\n // const snap = this.snap();\n // const tag = new Tag(version, snap);\n // this.tags.set(tag);\n }\n\n /**\n * determines whether this component is modified in the workspace.\n */\n isModified(): Promise<boolean> {\n return this.factory.isModified(this);\n }\n\n /**\n * whether a component is marked as deleted.\n * warning! if this component is not the head, it might be deleted by a range later on.\n * to get accurate results, please use teambit.component/remove aspect, \"isDeleted\" method.\n */\n isDeleted(): boolean {\n return this.state._consumer.isRemoved();\n }\n\n /**\n * is component isOutdated\n */\n isOutdated(): boolean {\n if (!this.latest) return false;\n const latestTag = this.tags.byVersion(this.latest);\n if (!latestTag) return false;\n if (this.head?.hash !== latestTag?.hash) return true;\n return false;\n }\n\n /**\n * determines whether this component is new.\n */\n isNew(): Promise<boolean> {\n return Promise.resolve(this.head === null);\n }\n\n /**\n * whether the component exists on the remote.\n */\n isExported(): boolean {\n return this.factory.isExported(this.id);\n }\n\n // TODO: @david after snap we need to make sure to refactor here.\n loadState(snapId: string): Promise<State> {\n return this.factory.getState(this.id, snapId);\n }\n\n loadSnap(snapId?: string): Promise<Snap> {\n const snapToGet = snapId || this.head?.hash;\n if (!snapToGet) {\n throw new BitError('could not load snap for new components');\n }\n return this.factory.getSnap(this.id, snapToGet);\n }\n\n /**\n * Get iterable which iterate over snap parents lazily\n * @param snapId\n * @param options\n */\n snapsIterable(snapId?: string, options: SnapsIterableOpts = {}): AsyncIterable<Snap> {\n const snapToStart = snapId || this.head?.hash;\n let nextSnaps = [snapToStart];\n let done;\n if (!snapToStart) {\n done = true;\n }\n\n const iterator: AsyncIterator<Snap> = {\n next: async () => {\n if (done) {\n return { value: undefined, done };\n }\n const currSnapId = nextSnaps.shift();\n const snap = await this.loadSnap(currSnapId);\n if (snap.parents && snap.parents.length) {\n if (options.firstParentOnly) {\n nextSnaps.push(snap.parents[0]);\n } else {\n nextSnaps = nextSnaps.concat(snap.parents);\n }\n }\n if (!nextSnaps.length) {\n done = true;\n } else if (options.stopFn) {\n done = await options.stopFn(snap);\n }\n return { value: snap, done: undefined };\n },\n };\n return {\n [Symbol.asyncIterator]: () => iterator,\n };\n }\n\n /**\n * traverse recursively from the provided snap (or head) upwards until it finds a tag\n * @param snapToStartFrom\n */\n async getClosestTag(snapToStartFrom?: string): Promise<Tag | undefined> {\n const tagsHashMap = this.tags.getHashMap();\n const stopFn = async (snap: Snap) => {\n if (tagsHashMap.has(snap.hash)) {\n return true;\n }\n return false;\n };\n const iterable = this.snapsIterable(snapToStartFrom, { firstParentOnly: true, stopFn });\n const snaps: Snap[] = [];\n for await (const snap of iterable) {\n snaps.push(snap);\n }\n if (snaps.length) {\n const hashOfLastSnap = snaps[snaps.length - 1].hash;\n return tagsHashMap.get(hashOfLastSnap);\n }\n return undefined;\n }\n\n /**\n * id.version can be either a tag or a hash.\n * if it's a hash, it may have a tag point to it. if it does, return the tag.\n */\n getTag(): Tag | undefined {\n const currentVersion = this.id.version;\n if (!currentVersion) return undefined;\n return this.tags.byVersion(currentVersion) || this.tags.byHash(currentVersion);\n }\n\n /**\n * id.version can be either a tag or a hash.\n * if it's a tag, find the hash it points to.\n */\n getSnapHash(): string | undefined {\n if (!this.id.hasVersion()) return undefined;\n const tag = this.tags.byVersion(this.id.version);\n if (tag) return tag.hash;\n return this.id.version;\n }\n\n /**\n * in case a component is new, it returns undefined.\n * otherwise, it returns the Snap object (hash/parents/log) of the current component (according to the version in the id)\n */\n async getCurrentSnap(): Promise<Snap | undefined> {\n const snap = this.getSnapHash();\n if (!snap) return undefined;\n return this.loadSnap(snap);\n }\n\n /**\n * checkout the component to a different version in its working tree.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n checkout(version: SemVer) {}\n\n /**\n * examine difference between two components.\n */\n // diff(other: Component): Difference {}\n\n /**\n * merge two different components\n */\n // merge(other: Component): Component {}\n\n /**\n * write a component to a given file system.\n * @param path root path to write the component\n * @param fs instance of any fs to use.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n write(path: string, fs?: AnyFS) {}\n\n /**\n *\n * Check if 2 components are equal\n * @param {Component} component\n * @returns {boolean}\n * @memberof Component\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n equals(component: Component): boolean {\n return component.id.toString() === this.id.toString();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_toolboxString","data","require","_bitError","_lodash","_tagMap","_exceptions","Component","constructor","id","head","_state","tags","TagMap","factory","mainFile","state","config","filesystem","buildStatus","_consumer","homepage","_getHomepage","headTag","undefined","byHash","hash","latest","getLatest","err","CouldNotFindLatest","get","aspects","serialize","getLogs","filter","allLogs","type","limit","offset","sort","typeFilter","snap","tag","filteredLogs","reverse","slice","getDependencies","getPackageName","componentPackageName","stringify","JSON","displayName","tokens","name","split","map","token","capitalize","join","version","isModified","isDeleted","isRemoved","isOutdated","latestTag","byVersion","isNew","Promise","resolve","isExported","loadState","snapId","getState","loadSnap","snapToGet","BitError","getSnap","snapsIterable","options","snapToStart","nextSnaps","done","iterator","next","value","currSnapId","shift","parents","length","firstParentOnly","push","concat","stopFn","Symbol","asyncIterator","getClosestTag","snapToStartFrom","tagsHashMap","getHashMap","has","iterable","snaps","hashOfLastSnap","getTag","currentVersion","getSnapHash","hasVersion","getCurrentSnap","checkout","write","path","fs","equals","component","toString","exports"],"sources":["component.ts"],"sourcesContent":["import type { AnyFS } from '@teambit/any-fs';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport type { SemVer } from 'semver';\nimport type { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport type { BuildStatus } from '@teambit/legacy.constants';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { DependencyList } from '@teambit/dependency-resolver';\nimport { slice } from 'lodash';\nimport type { ComponentFactory } from './component-factory';\nimport type ComponentFS from './component-fs';\n// import { NothingToSnap } from './exceptions';\nimport type { Config as ComponentConfig } from './config';\n// eslint-disable-next-line import/no-cycle\nimport type { Snap } from './snap';\nimport type { State } from './state';\nimport { TagMap } from './tag-map';\nimport type { Tag } from './tag';\nimport { CouldNotFindLatest } from './exceptions';\nimport type { IComponent, RawComponentMetadata } from './component-interface';\n// import { Author } from './types';\n\ntype SnapsIterableOpts = {\n firstParentOnly?: boolean;\n stopFn?: (snap: Snap) => Promise<boolean>;\n};\n\nexport type InvalidComponent = { id: ComponentID; err: Error };\n\n/**\n * in-memory representation of a component.\n */\nexport class Component implements IComponent {\n constructor(\n /**\n * component ID represented by the `ComponentId` type.\n */\n readonly id: ComponentID,\n\n /**\n * head version of the component. can be `null` for new components.\n * if on main, returns the head on main.\n * if on a lane, returns the head on the lane.\n */\n readonly head: Snap | null = null,\n\n /**\n * state of the component.\n */\n private _state: State,\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap = new TagMap(),\n\n /**\n * the component factory\n */\n private factory: ComponentFactory\n ) {}\n\n get mainFile() {\n return this.state.mainFile;\n }\n\n get state(): State {\n return this._state;\n }\n\n set state(state: State) {\n this._state = state;\n }\n\n /**\n * component configuration which is later generated to a component `package.json` and `bit.json`.\n */\n get config(): ComponentConfig {\n return this.state.config;\n }\n\n /**\n * in-memory representation of the component current filesystem.\n */\n get filesystem(): ComponentFS {\n return this.state.filesystem;\n }\n\n /**\n * build status of the component\n */\n get buildStatus(): BuildStatus {\n return this._state._consumer.buildStatus;\n }\n\n get homepage(): string | undefined {\n return this._state._consumer._getHomepage();\n }\n\n get headTag() {\n if (!this.head) return undefined;\n return this.tags.byHash(this.head.hash);\n }\n\n get latest(): string | undefined {\n if (!this.head) return undefined;\n try {\n return this.tags.getLatest();\n } catch (err: any) {\n if (err instanceof CouldNotFindLatest) {\n return this.head.hash;\n }\n throw err;\n }\n }\n\n /**\n * get aspect data from current state.\n */\n get(id: string): RawComponentMetadata | undefined {\n return this.state.aspects.get(id)?.serialize();\n }\n\n async getLogs(filter?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n }): Promise<ComponentLog[]> {\n const allLogs = await this.factory.getLogs(this.id, false, filter?.head);\n\n if (!filter) return allLogs;\n\n const { type, limit, offset, sort } = filter;\n\n const typeFilter = (snap) => {\n if (type === 'tag') return snap.tag;\n if (type === 'snap') return !snap.tag;\n return true;\n };\n\n let filteredLogs = (type && allLogs.filter(typeFilter)) || allLogs;\n if (sort !== 'asc') filteredLogs = filteredLogs.reverse();\n\n if (limit) {\n filteredLogs = slice(filteredLogs, offset, limit + (offset || 0));\n }\n\n return filteredLogs;\n }\n\n getDependencies(): DependencyList {\n return this.factory.getDependencies(this);\n }\n\n getPackageName(): string {\n return this.factory.componentPackageName(this);\n }\n\n stringify(): string {\n return JSON.stringify({\n id: this.id,\n head: this.head,\n });\n }\n\n /**\n * record component changes in the `Scope`.\n */\n // snap(author: Author, message = '') {\n // if (!this.isModified()) throw new NothingToSnap();\n // const snap = new Snap(this, author, message);\n\n // return new Component(this.id, snap, snap.state);\n // }\n\n /**\n * display name of the component.\n */\n get displayName() {\n const tokens = this.id.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n /**\n * tag a component `Snap` with a semantic version. we follow SemVer specs as defined [here](https://semver.org/)).\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tag(version: SemVer) {\n // const snap = this.snap();\n // const tag = new Tag(version, snap);\n // this.tags.set(tag);\n }\n\n /**\n * determines whether this component is modified in the workspace.\n */\n isModified(): Promise<boolean> {\n return this.factory.isModified(this);\n }\n\n /**\n * whether a component is marked as deleted.\n * warning! if this component is not the head, it might be deleted by a range later on.\n * to get accurate results, please use teambit.component/remove aspect, \"isDeleted\" method.\n */\n isDeleted(): boolean {\n return this.state._consumer.isRemoved();\n }\n\n /**\n * is component isOutdated\n */\n isOutdated(): boolean {\n if (!this.latest) return false;\n const latestTag = this.tags.byVersion(this.latest);\n if (!latestTag) return false;\n if (this.head?.hash !== latestTag?.hash) return true;\n return false;\n }\n\n /**\n * determines whether this component is new.\n */\n isNew(): Promise<boolean> {\n return Promise.resolve(this.head === null);\n }\n\n /**\n * whether the component exists on the remote.\n */\n isExported(): boolean {\n return this.factory.isExported(this.id);\n }\n\n // TODO: @david after snap we need to make sure to refactor here.\n loadState(snapId: string): Promise<State> {\n return this.factory.getState(this.id, snapId);\n }\n\n loadSnap(snapId?: string): Promise<Snap> {\n const snapToGet = snapId || this.head?.hash;\n if (!snapToGet) {\n throw new BitError('could not load snap for new components');\n }\n return this.factory.getSnap(this.id, snapToGet);\n }\n\n /**\n * Get iterable which iterate over snap parents lazily\n * @param snapId\n * @param options\n */\n snapsIterable(snapId?: string, options: SnapsIterableOpts = {}): AsyncIterable<Snap> {\n const snapToStart = snapId || this.head?.hash;\n let nextSnaps = [snapToStart];\n let done;\n if (!snapToStart) {\n done = true;\n }\n\n const iterator: AsyncIterator<Snap> = {\n next: async () => {\n if (done) {\n return { value: undefined, done };\n }\n const currSnapId = nextSnaps.shift();\n const snap = await this.loadSnap(currSnapId);\n if (snap.parents && snap.parents.length) {\n if (options.firstParentOnly) {\n nextSnaps.push(snap.parents[0]);\n } else {\n nextSnaps = nextSnaps.concat(snap.parents);\n }\n }\n if (!nextSnaps.length) {\n done = true;\n } else if (options.stopFn) {\n done = await options.stopFn(snap);\n }\n return { value: snap, done: undefined };\n },\n };\n return {\n [Symbol.asyncIterator]: () => iterator,\n };\n }\n\n /**\n * traverse recursively from the provided snap (or head) upwards until it finds a tag\n * @param snapToStartFrom\n */\n async getClosestTag(snapToStartFrom?: string): Promise<Tag | undefined> {\n const tagsHashMap = this.tags.getHashMap();\n const stopFn = async (snap: Snap) => {\n if (tagsHashMap.has(snap.hash)) {\n return true;\n }\n return false;\n };\n const iterable = this.snapsIterable(snapToStartFrom, { firstParentOnly: true, stopFn });\n const snaps: Snap[] = [];\n for await (const snap of iterable) {\n snaps.push(snap);\n }\n if (snaps.length) {\n const hashOfLastSnap = snaps[snaps.length - 1].hash;\n return tagsHashMap.get(hashOfLastSnap);\n }\n return undefined;\n }\n\n /**\n * id.version can be either a tag or a hash.\n * if it's a hash, it may have a tag point to it. if it does, return the tag.\n */\n getTag(): Tag | undefined {\n const currentVersion = this.id.version;\n if (!currentVersion) return undefined;\n return this.tags.byVersion(currentVersion) || this.tags.byHash(currentVersion);\n }\n\n /**\n * id.version can be either a tag or a hash.\n * if it's a tag, find the hash it points to.\n */\n getSnapHash(): string | undefined {\n if (!this.id.hasVersion()) return undefined;\n const tag = this.tags.byVersion(this.id.version);\n if (tag) return tag.hash;\n return this.id.version;\n }\n\n /**\n * in case a component is new, it returns undefined.\n * otherwise, it returns the Snap object (hash/parents/log) of the current component (according to the version in the id)\n */\n async getCurrentSnap(): Promise<Snap | undefined> {\n const snap = this.getSnapHash();\n if (!snap) return undefined;\n return this.loadSnap(snap);\n }\n\n /**\n * checkout the component to a different version in its working tree.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n checkout(version: SemVer) {}\n\n /**\n * examine difference between two components.\n */\n // diff(other: Component): Difference {}\n\n /**\n * merge two different components\n */\n // merge(other: Component): Component {}\n\n /**\n * write a component to a given file system.\n * @param path root path to write the component\n * @param fs instance of any fs to use.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n write(path: string, fs?: AnyFS) {}\n\n /**\n *\n * Check if 2 components are equal\n * @param {Component} component\n * @returns {boolean}\n * @memberof Component\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n equals(component: Component): boolean {\n return component.id.toString() === this.id.toString();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1034/dist/component.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1034/dist/component.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -34,6 +34,7 @@ const componentOverviewFields = exports.componentOverviewFields = (0, _client().
|
|
|
34
34
|
deprecation {
|
|
35
35
|
isDeprecate
|
|
36
36
|
newId
|
|
37
|
+
range
|
|
37
38
|
}
|
|
38
39
|
labels
|
|
39
40
|
displayName
|
|
@@ -106,6 +107,7 @@ const componentFieldsWithLogs = exports.componentFieldsWithLogs = (0, _client().
|
|
|
106
107
|
hash
|
|
107
108
|
tag
|
|
108
109
|
displayName
|
|
110
|
+
deprecated
|
|
109
111
|
}
|
|
110
112
|
}
|
|
111
113
|
${componentIdFields}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_client","data","require","componentIdFields","exports","gql","componentOverviewFields","componentFields","componentFieldsWithLogs","COMPONENT_QUERY_LOG_FIELDS","GET_COMPONENT","GET_COMPONENT_WITH_LOGS","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED"],"sources":["use-component.fragments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nexport const componentOverviewFields = gql`\n fragment componentOverviewFields on Component {\n id {\n ...componentIdFields\n }\n aspects(include: [\"teambit.preview/preview\", \"teambit.envs/envs\"]) {\n # 'id' property in gql refers to a *global* identifier and used for caching.\n # this makes aspect data cache under the same key, even when they are under different components.\n # renaming the property fixes that.\n id\n data\n }\n description\n deprecation {\n isDeprecate\n newId\n }\n labels\n displayName\n server {\n id\n env\n url\n host\n basePath\n }\n buildStatus\n env {\n id\n icon\n }\n size {\n compressedTotal\n }\n preview {\n includesEnvTemplate\n legacyHeader\n isScaling\n skipIncludes\n onlyOverview\n useNameParam\n }\n compositions {\n identifier\n displayName\n filepath\n }\n }\n ${componentIdFields}\n`;\n\nexport const componentFields = gql`\n fragment componentFields on Component {\n ...componentOverviewFields\n packageName\n latest\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n }\n ${componentOverviewFields}\n`;\n\nexport const componentFieldsWithLogs = gql`\n fragment componentFieldWithLogs on Component {\n id {\n ...componentIdFields\n }\n packageName\n latest\n logs(\n type: $logType\n offset: $logOffset\n limit: $logLimit\n sort: $logSort\n head: $logHead\n takeHeadFromComponent: $logTakeHeadFromComponent\n ) {\n id\n message\n username\n email\n date\n hash\n tag\n displayName\n }\n }\n ${componentIdFields}\n`;\n\nexport const COMPONENT_QUERY_LOG_FIELDS = `\n $logOffset: Int\n $logLimit: Int\n $logType: String\n $logHead: String\n $logSort: String\n $logTakeHeadFromComponent: Boolean\n`;\n\nexport const GET_COMPONENT = gql`\n query Component($extensionId: String!, $id: String!) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const GET_COMPONENT_WITH_LOGS = gql`\n query Component(\n $extensionId: String!\n $id: String!\n ${COMPONENT_QUERY_LOG_FIELDS}\n ) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFieldWithLogs\n }\n }\n }\n ${componentFieldsWithLogs}\n`;\n\nexport const SUB_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const SUB_COMPONENT_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n ...componentIdFields\n }\n }\n }\n ${componentIdFields}\n`;\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAAE,aAAG;AACpC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,uBAAuB,GAAAF,OAAA,CAAAE,uBAAA,GAAG,IAAAD,aAAG;AAC1C;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,IAAIF,iBAAiB;AACrB,CAAC;AAEM,MAAMI,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG,IAAAF,aAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,uBAAuB;AAC3B,CAAC;AAEM,MAAME,uBAAuB,GAAAJ,OAAA,CAAAI,uBAAA,GAAG,IAAAH,aAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAiB;AACrB,CAAC;AAEM,MAAMM,0BAA0B,GAAAL,OAAA,CAAAK,0BAAA,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,aAAa,GAAAN,OAAA,CAAAM,aAAA,GAAG,IAAAL,aAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMI,uBAAuB,GAAAP,OAAA,CAAAO,uBAAA,GAAG,IAAAN,aAAG;AAC1C;AACA;AACA;AACA,MAAMI,0BAA0B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,uBAAuB;AAC3B,CAAC;AAEM,MAAMI,sBAAsB,GAAAR,OAAA,CAAAQ,sBAAA,GAAG,IAAAP,aAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMM,qBAAqB,GAAAT,OAAA,CAAAS,qBAAA,GAAG,IAAAR,aAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMO,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,IAAAT,aAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAiB;AACrB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_client","data","require","componentIdFields","exports","gql","componentOverviewFields","componentFields","componentFieldsWithLogs","COMPONENT_QUERY_LOG_FIELDS","GET_COMPONENT","GET_COMPONENT_WITH_LOGS","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED"],"sources":["use-component.fragments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nexport const componentOverviewFields = gql`\n fragment componentOverviewFields on Component {\n id {\n ...componentIdFields\n }\n aspects(include: [\"teambit.preview/preview\", \"teambit.envs/envs\"]) {\n # 'id' property in gql refers to a *global* identifier and used for caching.\n # this makes aspect data cache under the same key, even when they are under different components.\n # renaming the property fixes that.\n id\n data\n }\n description\n deprecation {\n isDeprecate\n newId\n range\n }\n labels\n displayName\n server {\n id\n env\n url\n host\n basePath\n }\n buildStatus\n env {\n id\n icon\n }\n size {\n compressedTotal\n }\n preview {\n includesEnvTemplate\n legacyHeader\n isScaling\n skipIncludes\n onlyOverview\n useNameParam\n }\n compositions {\n identifier\n displayName\n filepath\n }\n }\n ${componentIdFields}\n`;\n\nexport const componentFields = gql`\n fragment componentFields on Component {\n ...componentOverviewFields\n packageName\n latest\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n }\n ${componentOverviewFields}\n`;\n\nexport const componentFieldsWithLogs = gql`\n fragment componentFieldWithLogs on Component {\n id {\n ...componentIdFields\n }\n packageName\n latest\n logs(\n type: $logType\n offset: $logOffset\n limit: $logLimit\n sort: $logSort\n head: $logHead\n takeHeadFromComponent: $logTakeHeadFromComponent\n ) {\n id\n message\n username\n email\n date\n hash\n tag\n displayName\n deprecated\n }\n }\n ${componentIdFields}\n`;\n\nexport const COMPONENT_QUERY_LOG_FIELDS = `\n $logOffset: Int\n $logLimit: Int\n $logType: String\n $logHead: String\n $logSort: String\n $logTakeHeadFromComponent: Boolean\n`;\n\nexport const GET_COMPONENT = gql`\n query Component($extensionId: String!, $id: String!) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const GET_COMPONENT_WITH_LOGS = gql`\n query Component(\n $extensionId: String!\n $id: String!\n ${COMPONENT_QUERY_LOG_FIELDS}\n ) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFieldWithLogs\n }\n }\n }\n ${componentFieldsWithLogs}\n`;\n\nexport const SUB_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const SUB_COMPONENT_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n ...componentIdFields\n }\n }\n }\n ${componentIdFields}\n`;\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAAE,aAAG;AACpC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,uBAAuB,GAAAF,OAAA,CAAAE,uBAAA,GAAG,IAAAD,aAAG;AAC1C;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,IAAIF,iBAAiB;AACrB,CAAC;AAEM,MAAMI,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG,IAAAF,aAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,uBAAuB;AAC3B,CAAC;AAEM,MAAME,uBAAuB,GAAAJ,OAAA,CAAAI,uBAAA,GAAG,IAAAH,aAAG;AAC1C;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,IAAIF,iBAAiB;AACrB,CAAC;AAEM,MAAMM,0BAA0B,GAAAL,OAAA,CAAAK,0BAAA,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,aAAa,GAAAN,OAAA,CAAAM,aAAA,GAAG,IAAAL,aAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMI,uBAAuB,GAAAP,OAAA,CAAAO,uBAAA,GAAG,IAAAN,aAAG;AAC1C;AACA;AACA;AACA,MAAMI,0BAA0B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,uBAAuB;AAC3B,CAAC;AAEM,MAAMI,sBAAsB,GAAAR,OAAA,CAAAQ,sBAAA,GAAG,IAAAP,aAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMM,qBAAqB,GAAAT,OAAA,CAAAS,qBAAA,GAAG,IAAAR,aAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMO,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,IAAAT,aAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAiB;AACrB,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/component",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1034",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/component/component",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.component",
|
|
8
8
|
"name": "component",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.1034"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@teambit/any-fs": "0.0.5",
|
|
@@ -76,22 +76,22 @@
|
|
|
76
76
|
"@teambit/design.navigation.responsive-navbar": "0.0.8",
|
|
77
77
|
"@teambit/workspace.ui.use-workspace-mode": "0.0.3",
|
|
78
78
|
"@teambit/base-ui.layout.breakpoints": "1.0.0",
|
|
79
|
-
"@teambit/component.ui.version-dropdown": "0.0.926",
|
|
80
79
|
"@teambit/lanes.hooks.use-lanes": "0.0.293",
|
|
81
80
|
"@teambit/lanes.ui.models.lanes-model": "0.0.233",
|
|
82
81
|
"@teambit/ui-foundation.ui.use-box.dropdown": "0.0.151",
|
|
83
|
-
"@teambit/aspect-loader": "1.0.
|
|
84
|
-
"@teambit/dependency-resolver": "1.0.
|
|
85
|
-
"@teambit/objects": "0.0.
|
|
86
|
-
"@teambit/graphql": "1.0.
|
|
87
|
-
"@teambit/command-bar": "1.0.
|
|
88
|
-
"@teambit/preview": "1.0.
|
|
89
|
-
"@teambit/pubsub": "1.0.
|
|
90
|
-
"@teambit/react-router": "1.0.
|
|
91
|
-
"@teambit/ui": "1.0.
|
|
92
|
-
"@teambit/compositions": "1.0.
|
|
93
|
-
"@teambit/deprecation": "1.0.
|
|
94
|
-
"@teambit/envs": "1.0.
|
|
82
|
+
"@teambit/aspect-loader": "1.0.1034",
|
|
83
|
+
"@teambit/dependency-resolver": "1.0.1034",
|
|
84
|
+
"@teambit/objects": "0.0.541",
|
|
85
|
+
"@teambit/graphql": "1.0.1034",
|
|
86
|
+
"@teambit/command-bar": "1.0.1034",
|
|
87
|
+
"@teambit/preview": "1.0.1034",
|
|
88
|
+
"@teambit/pubsub": "1.0.1034",
|
|
89
|
+
"@teambit/react-router": "1.0.1034",
|
|
90
|
+
"@teambit/ui": "1.0.1034",
|
|
91
|
+
"@teambit/compositions": "1.0.1034",
|
|
92
|
+
"@teambit/deprecation": "1.0.1034",
|
|
93
|
+
"@teambit/envs": "1.0.1034",
|
|
94
|
+
"@teambit/component.ui.version-dropdown": "0.0.927"
|
|
95
95
|
},
|
|
96
96
|
"devDependencies": {
|
|
97
97
|
"@types/lodash": "4.14.165",
|
|
@@ -24,6 +24,7 @@ export const componentOverviewFields = gql`
|
|
|
24
24
|
deprecation {
|
|
25
25
|
isDeprecate
|
|
26
26
|
newId
|
|
27
|
+
range
|
|
27
28
|
}
|
|
28
29
|
labels
|
|
29
30
|
displayName
|
|
@@ -98,6 +99,7 @@ export const componentFieldsWithLogs = gql`
|
|
|
98
99
|
hash
|
|
99
100
|
tag
|
|
100
101
|
displayName
|
|
102
|
+
deprecated
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
105
|
${componentIdFields}
|