@teambit/component 1.0.1229 → 1.0.1230

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,62 @@
1
+ import type { Component } from './component';
2
+ export type AspectDefinitionProps = {
3
+ id?: string;
4
+ component?: Component;
5
+ aspectPath: string;
6
+ runtimePath: string | null;
7
+ aspectFilePath: string | null;
8
+ local?: boolean;
9
+ };
10
+ export declare class AspectDefinition {
11
+ /**
12
+ * path to the root directory of the aspect module.
13
+ */
14
+ readonly aspectPath: string;
15
+ /**
16
+ * path to the aspect file (.aspect).
17
+ */
18
+ readonly aspectFilePath: string | null;
19
+ /**
20
+ * path to the runtime entry
21
+ */
22
+ readonly runtimePath: string | null;
23
+ /**
24
+ * aspect component
25
+ */
26
+ readonly component?: Component | undefined;
27
+ /**
28
+ * id of the component (used instead of component in the case of core aspect)
29
+ */
30
+ readonly id?: string | undefined;
31
+ /**
32
+ * aspect defined using 'file://' protocol
33
+ */
34
+ readonly local?: boolean | undefined;
35
+ constructor(
36
+ /**
37
+ * path to the root directory of the aspect module.
38
+ */
39
+ aspectPath: string,
40
+ /**
41
+ * path to the aspect file (.aspect).
42
+ */
43
+ aspectFilePath: string | null,
44
+ /**
45
+ * path to the runtime entry
46
+ */
47
+ runtimePath: string | null,
48
+ /**
49
+ * aspect component
50
+ */
51
+ component?: Component | undefined,
52
+ /**
53
+ * id of the component (used instead of component in the case of core aspect)
54
+ */
55
+ id?: string | undefined,
56
+ /**
57
+ * aspect defined using 'file://' protocol
58
+ */
59
+ local?: boolean | undefined);
60
+ get getId(): string | null;
61
+ static from({ component, aspectPath, aspectFilePath, runtimePath, id, local }: AspectDefinitionProps): AspectDefinition;
62
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AspectDefinition = void 0;
7
+ class AspectDefinition {
8
+ constructor(
9
+ /**
10
+ * path to the root directory of the aspect module.
11
+ */
12
+ aspectPath,
13
+ /**
14
+ * path to the aspect file (.aspect).
15
+ */
16
+ aspectFilePath,
17
+ /**
18
+ * path to the runtime entry
19
+ */
20
+ runtimePath,
21
+ /**
22
+ * aspect component
23
+ */
24
+ component,
25
+ /**
26
+ * id of the component (used instead of component in the case of core aspect)
27
+ */
28
+ id,
29
+ /**
30
+ * aspect defined using 'file://' protocol
31
+ */
32
+ local) {
33
+ this.aspectPath = aspectPath;
34
+ this.aspectFilePath = aspectFilePath;
35
+ this.runtimePath = runtimePath;
36
+ this.component = component;
37
+ this.id = id;
38
+ this.local = local;
39
+ }
40
+ get getId() {
41
+ if (this.component) return this.component.id.toString();
42
+ if (this.id) return this.id;
43
+ return null;
44
+ }
45
+ static from({
46
+ component,
47
+ aspectPath,
48
+ aspectFilePath,
49
+ runtimePath,
50
+ id,
51
+ local
52
+ }) {
53
+ return new AspectDefinition(aspectPath, aspectFilePath, runtimePath, component, id, local);
54
+ }
55
+ }
56
+ exports.AspectDefinition = AspectDefinition;
57
+
58
+ //# sourceMappingURL=aspect-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AspectDefinition","constructor","aspectPath","aspectFilePath","runtimePath","component","id","local","getId","toString","from","exports"],"sources":["aspect-definition.ts"],"sourcesContent":["import type { Component } from './component';\n\nexport type AspectDefinitionProps = {\n id?: string;\n component?: Component;\n aspectPath: string;\n runtimePath: string | null;\n aspectFilePath: string | null;\n local?: boolean;\n};\n\nexport class AspectDefinition {\n constructor(\n /**\n * path to the root directory of the aspect module.\n */\n readonly aspectPath: string,\n\n /**\n * path to the aspect file (.aspect).\n */\n readonly aspectFilePath: string | null,\n\n /**\n * path to the runtime entry\n */\n readonly runtimePath: string | null,\n /**\n * aspect component\n */\n readonly component?: Component,\n /**\n * id of the component (used instead of component in the case of core aspect)\n */\n readonly id?: string,\n /**\n * aspect defined using 'file://' protocol\n */\n readonly local?: boolean\n ) {}\n\n get getId() {\n if (this.component) return this.component.id.toString();\n if (this.id) return this.id;\n return null;\n }\n\n static from({ component, aspectPath, aspectFilePath, runtimePath, id, local }: AspectDefinitionProps) {\n return new AspectDefinition(aspectPath, aspectFilePath, runtimePath, component, id, local);\n }\n}\n"],"mappings":";;;;;;AAWO,MAAMA,gBAAgB,CAAC;EAC5BC,WAAWA;EACT;AACJ;AACA;EACaC,UAAkB;EAE3B;AACJ;AACA;EACaC,cAA6B;EAEtC;AACJ;AACA;EACaC,WAA0B;EACnC;AACJ;AACA;EACaC,SAAqB;EAC9B;AACJ;AACA;EACaC,EAAW;EACpB;AACJ;AACA;EACaC,KAAe,EACxB;IAAA,KAvBSL,UAAkB,GAAlBA,UAAkB;IAAA,KAKlBC,cAA6B,GAA7BA,cAA6B;IAAA,KAK7BC,WAA0B,GAA1BA,WAA0B;IAAA,KAI1BC,SAAqB,GAArBA,SAAqB;IAAA,KAIrBC,EAAW,GAAXA,EAAW;IAAA,KAIXC,KAAe,GAAfA,KAAe;EACvB;EAEH,IAAIC,KAAKA,CAAA,EAAG;IACV,IAAI,IAAI,CAACH,SAAS,EAAE,OAAO,IAAI,CAACA,SAAS,CAACC,EAAE,CAACG,QAAQ,CAAC,CAAC;IACvD,IAAI,IAAI,CAACH,EAAE,EAAE,OAAO,IAAI,CAACA,EAAE;IAC3B,OAAO,IAAI;EACb;EAEA,OAAOI,IAAIA,CAAC;IAAEL,SAAS;IAAEH,UAAU;IAAEC,cAAc;IAAEC,WAAW;IAAEE,EAAE;IAAEC;EAA6B,CAAC,EAAE;IACpG,OAAO,IAAIP,gBAAgB,CAACE,UAAU,EAAEC,cAAc,EAAEC,WAAW,EAAEC,SAAS,EAAEC,EAAE,EAAEC,KAAK,CAAC;EAC5F;AACF;AAACI,OAAA,CAAAX,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * a dependency of a component, as the dependency-resolver resolves it (its `Dependency`).
3
+ * defined here so the component aspect doesn't depend on the dependency-resolver aspect.
4
+ */
5
+ export type ComponentDependencyEntry = {
6
+ id: string;
7
+ version: string;
8
+ type: string;
9
+ lifecycle: string;
10
+ source?: string;
11
+ hidden?: boolean;
12
+ optional?: boolean;
13
+ getPackageName?: () => string;
14
+ };
15
+ export type ComponentDependenciesManifest = {
16
+ dependencies: Record<string, string>;
17
+ optionalDependencies: Record<string, string>;
18
+ devDependencies: Record<string, string>;
19
+ peerDependencies: Record<string, string>;
20
+ peerDependenciesMeta?: Record<string, {
21
+ optional: true;
22
+ }>;
23
+ };
24
+ /**
25
+ * the dependencies of a component, as the dependency-resolver resolves them (its `DependencyList`).
26
+ * defined here so the component aspect doesn't depend on the dependency-resolver aspect.
27
+ */
28
+ export interface ComponentDependencyList {
29
+ readonly dependencies: ComponentDependencyEntry[];
30
+ forEach(predicate: (dep: ComponentDependencyEntry, index?: number) => void): void;
31
+ filter(predicate: (dep: ComponentDependencyEntry, index?: number) => boolean): ComponentDependencyList;
32
+ map(predicate: (dep: ComponentDependencyEntry, index?: number) => any): any[];
33
+ toDependenciesManifest(): ComponentDependenciesManifest;
34
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ //# sourceMappingURL=component-dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["component-dependencies.ts"],"sourcesContent":["/**\n * a dependency of a component, as the dependency-resolver resolves it (its `Dependency`).\n * defined here so the component aspect doesn't depend on the dependency-resolver aspect.\n */\nexport type ComponentDependencyEntry = {\n id: string;\n version: string;\n type: string;\n lifecycle: string;\n source?: string;\n hidden?: boolean;\n optional?: boolean;\n getPackageName?: () => string;\n};\n\nexport type ComponentDependenciesManifest = {\n dependencies: Record<string, string>;\n optionalDependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n peerDependencies: Record<string, string>;\n peerDependenciesMeta?: Record<string, { optional: true }>;\n};\n\n/**\n * the dependencies of a component, as the dependency-resolver resolves them (its `DependencyList`).\n * defined here so the component aspect doesn't depend on the dependency-resolver aspect.\n */\nexport interface ComponentDependencyList {\n readonly dependencies: ComponentDependencyEntry[];\n forEach(predicate: (dep: ComponentDependencyEntry, index?: number) => void): void;\n filter(predicate: (dep: ComponentDependencyEntry, index?: number) => boolean): ComponentDependencyList;\n map(predicate: (dep: ComponentDependencyEntry, index?: number) => any): any[];\n toDependenciesManifest(): ComponentDependenciesManifest;\n}\n"],"mappings":"","ignoreList":[]}
@@ -3,8 +3,8 @@ import type { BitId } from '@teambit/legacy-bit-id';
3
3
  import type { ComponentID } from '@teambit/component-id';
4
4
  import type { ConsumerComponent } from '@teambit/legacy.consumer-component';
5
5
  import type { ComponentLog } from '@teambit/objects';
6
- import type { AspectDefinition } from '@teambit/aspect-loader';
7
- import type { DependencyList } from '@teambit/dependency-resolver';
6
+ import type { AspectDefinition } from './aspect-definition';
7
+ import type { ComponentDependencyList } from './component-dependencies';
8
8
  import type { Component, InvalidComponent } from './component';
9
9
  import type { State } from './state';
10
10
  import type { Snap } from './snap';
@@ -105,7 +105,7 @@ export interface ComponentFactory {
105
105
  */
106
106
  getGraphIds(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean, opts?: GetGraphIdsOpts): Promise<CompIdGraph>;
107
107
  getLogs(id: ComponentID, shortHash?: boolean, startsFrom?: string): Promise<ComponentLog[]>;
108
- getDependencies(component: Component): DependencyList;
108
+ getDependencies(component: Component): ComponentDependencyList;
109
109
  componentPackageName(component: Component): string;
110
110
  /**
111
111
  * returns a specific state of a component by hash or semver.
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["component-factory.ts"],"sourcesContent":["import type { Graph } from '@teambit/graph.cleargraph';\nimport type { BitId } from '@teambit/legacy-bit-id';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport type { DependencyList } from '@teambit/dependency-resolver';\nimport type { Component, InvalidComponent } from './component';\nimport type { State } from './state';\nimport type { Snap } from './snap';\n\nexport type ResolveAspectsOptions = FilterAspectsOptions & {\n throwOnError?: boolean;\n useScopeAspectsCapsule?: boolean;\n workspaceName?: string;\n skipDeps?: boolean;\n resolveEnvsFromRoots?: boolean;\n packageManagerConfigRootDir?: string;\n};\n\nexport type LoadAspectsOptions = {\n /* `throwOnError` is an optional parameter that can be passed to the loadAspects method in the `ComponentFactory` interface. If\n set to `true`, it will cause the method to throw an error if an error occurs during its execution. If set to `false`\n or not provided, the method will print a warning instead of throwing it. */\n throwOnError?: boolean;\n /* `hideMissingModuleError` is an optional parameter that can be passed to the `loadAspects` method in the\n `ComponentFactory` interface. If set to `true`, it will prevent the method from throwing/printing an error if a required module\n is missing during the loading of an aspect. Instead, it will continue loading the other\n aspects. If set to `false` or not provided, the method will print/throw an error if a required module is missing.\n (considering throwOnError as well) */\n hideMissingModuleError?: boolean;\n\n /* The `ignoreErrorFunc` property is an optional parameter that can be passed to the `LoadAspectsOptions` object in\n the `ComponentFactory` interface. If provided, it will be called with the error that occurred during the loading of\n aspects. If the function returns `true`, the method will ignore the error and continue loading the other aspects.\n If the function returns `false`, the method will print/throw the error. */\n ignoreErrorFunc?: (err: Error) => boolean;\n\n /* The `ignoreErrors` property is an optional boolean parameter that can be passed to the `LoadAspectsOptions` object in\n the `ComponentFactory` interface. If set to `true`, it will cause the `loadAspects` method to ignore any errors that\n occur during the loading of aspects and continue loading the other aspects. If set to `false` or not provided, the\n method will print/throw an error if a required module is missing or if any other error occurs during the loading of\n aspects. */\n ignoreErrors?: boolean;\n\n /**\n * Force load the aspect from the host, even if it's already loaded.\n */\n forceLoad?: boolean;\n\n [key: string]: any;\n};\n\n/**\n * don't use this type from @teambit/graph to not create a circular dependency.\n */\ntype CompIdGraph = Graph<ComponentID, 'prod' | 'dev' | 'ext' | 'peer'>;\n\nexport type FilterAspectsOptions = {\n /**\n * Do not return results for the core aspects\n */\n excludeCore?: boolean;\n /**\n * Only return results for the provided list of ids\n */\n requestedOnly?: boolean;\n /**\n * Only return results for aspects that have a path to the specified runtime name\n */\n filterByRuntime?: boolean;\n};\n\nexport type GetGraphIdsOpts = {\n /**\n * remove edges of modified workspace components (and their dependents) that won't exist once they're snapped.\n * useful for detecting cycles the next snap creates. relevant for the workspace only.\n * see GraphIdsFromFsBuilder.removeOutdatedEdgesOfModified() for more details.\n */\n excludeOutdatedEdgesOfModified?: boolean;\n};\n\nexport interface ComponentFactory {\n /**\n * name of the component host.\n */\n name: string;\n\n /**\n * path to the component host.\n */\n path: string;\n\n isLegacy: boolean;\n\n /**\n * resolve a `string` component ID to an instance of a ComponentID.\n */\n resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID>;\n\n /**\n * resolve multiple `string` component ID to an instance of a ComponentID.\n */\n resolveMultipleComponentIds(ids: (string | BitId | ComponentID)[]): Promise<ComponentID[]>;\n\n /**\n * returns a component by ID.\n */\n get(id: ComponentID): Promise<Component | undefined>;\n\n /**\n * returns the legacy representation of a component with minimal loading.\n * when loaded from the workspace, it won't run any Harmony hooks and even won't load dependencies.\n * it's good to get raw aspects data or some basic properties.\n * use carefully. prefer using `get()` instead.\n */\n getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined>;\n\n /**\n * returns many components by ids.\n */\n getMany(ids: ComponentID[]): Promise<Component[]>;\n\n /**\n * returns many components by their legacy representation.\n */\n getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]>;\n\n /**\n * get a component from a remote without importing it\n */\n getRemoteComponent?: (id: ComponentID) => Promise<Component>;\n\n /**\n * important - prefer using `getGraphIds()` if you don't need the component objects.\n * this method has a performance penalty. it must import all flattened-dependencies objects from the remotes.\n */\n getGraph(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean): Promise<Graph<Component, string>>;\n\n /**\n * get graph of the given component-ids and all their dependencies (recursively/flattened).\n * the nodes are ComponentIds and is much faster than `this.getGraph()`.\n */\n getGraphIds(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean, opts?: GetGraphIdsOpts): Promise<CompIdGraph>;\n\n getLogs(id: ComponentID, shortHash?: boolean, startsFrom?: string): Promise<ComponentLog[]>;\n\n getDependencies(component: Component): DependencyList;\n\n componentPackageName(component: Component): string;\n\n /**\n * returns a specific state of a component by hash or semver.\n */\n getState(id: ComponentID, snapId: string): Promise<State>;\n\n /**\n * returns a specific snap of a component by hash.\n */\n getSnap(id: ComponentID, snapId: string): Promise<Snap>;\n\n /**\n * load aspects.\n * returns the loaded aspect ids including the loaded versions.\n */\n loadAspects: (ids: string[], throwOnError?: boolean, neededFor?: string, opts?: any) => Promise<string[]>;\n\n /**\n * Resolve dirs for aspects\n */\n resolveAspects: (\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ) => Promise<AspectDefinition[]>;\n\n /**\n * list all components in the host.\n */\n list(filter?: { offset: number; limit: number }): Promise<Component[]>;\n\n /**\n * list invalid components, such as components with missing files on the fs.\n */\n listInvalid(): Promise<InvalidComponent[]>;\n\n listIds(): Promise<ComponentID[]> | ComponentID[];\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it uses multimatch (https://www.npmjs.com/package/multimatch) package for the matching algorithm, which supports\n * (among others) negate character \"!\" to exclude ids. See the package page for more supported characters.\n */\n idsByPattern(pattern: string, throwForNoMatch?: boolean): Promise<ComponentID[]>;\n\n hasId(componentId: ComponentID): Promise<boolean> | boolean;\n\n /**\n * Check if the host has the id, if no, search for the id in inner host (for example, workspace will search in the scope)\n * @param componentId\n */\n hasIdNested(componentId: ComponentID, includeCache?: boolean): Promise<boolean>;\n\n /**\n * whether a component is not the same as its head.\n * for a new component, it'll return \"true\" as it has no head yet.\n * this is relevant for component from the workspace, where it can be locally changed. on the scope it's always false\n */\n isModified(component: Component): Promise<boolean>;\n\n /**\n * whether the component exists on the remote.\n */\n isExported(componentId: ComponentID): boolean;\n\n /**\n * write the component to the filesystem when applicable (no-op for scope).\n * to change the component-path, specify the \"rootPath\", which should be a relative path inside the workspace.\n */\n write(component: Component, rootPath?: string): Promise<void>;\n\n /**\n * determine whether host should be the prior one in case multiple hosts persist.\n */\n priority?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["component-factory.ts"],"sourcesContent":["import type { Graph } from '@teambit/graph.cleargraph';\nimport type { BitId } from '@teambit/legacy-bit-id';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { AspectDefinition } from './aspect-definition';\nimport type { ComponentDependencyList } from './component-dependencies';\nimport type { Component, InvalidComponent } from './component';\nimport type { State } from './state';\nimport type { Snap } from './snap';\n\nexport type ResolveAspectsOptions = FilterAspectsOptions & {\n throwOnError?: boolean;\n useScopeAspectsCapsule?: boolean;\n workspaceName?: string;\n skipDeps?: boolean;\n resolveEnvsFromRoots?: boolean;\n packageManagerConfigRootDir?: string;\n};\n\nexport type LoadAspectsOptions = {\n /* `throwOnError` is an optional parameter that can be passed to the loadAspects method in the `ComponentFactory` interface. If\n set to `true`, it will cause the method to throw an error if an error occurs during its execution. If set to `false`\n or not provided, the method will print a warning instead of throwing it. */\n throwOnError?: boolean;\n /* `hideMissingModuleError` is an optional parameter that can be passed to the `loadAspects` method in the\n `ComponentFactory` interface. If set to `true`, it will prevent the method from throwing/printing an error if a required module\n is missing during the loading of an aspect. Instead, it will continue loading the other\n aspects. If set to `false` or not provided, the method will print/throw an error if a required module is missing.\n (considering throwOnError as well) */\n hideMissingModuleError?: boolean;\n\n /* The `ignoreErrorFunc` property is an optional parameter that can be passed to the `LoadAspectsOptions` object in\n the `ComponentFactory` interface. If provided, it will be called with the error that occurred during the loading of\n aspects. If the function returns `true`, the method will ignore the error and continue loading the other aspects.\n If the function returns `false`, the method will print/throw the error. */\n ignoreErrorFunc?: (err: Error) => boolean;\n\n /* The `ignoreErrors` property is an optional boolean parameter that can be passed to the `LoadAspectsOptions` object in\n the `ComponentFactory` interface. If set to `true`, it will cause the `loadAspects` method to ignore any errors that\n occur during the loading of aspects and continue loading the other aspects. If set to `false` or not provided, the\n method will print/throw an error if a required module is missing or if any other error occurs during the loading of\n aspects. */\n ignoreErrors?: boolean;\n\n /**\n * Force load the aspect from the host, even if it's already loaded.\n */\n forceLoad?: boolean;\n\n [key: string]: any;\n};\n\n/**\n * don't use this type from @teambit/graph to not create a circular dependency.\n */\ntype CompIdGraph = Graph<ComponentID, 'prod' | 'dev' | 'ext' | 'peer'>;\n\nexport type FilterAspectsOptions = {\n /**\n * Do not return results for the core aspects\n */\n excludeCore?: boolean;\n /**\n * Only return results for the provided list of ids\n */\n requestedOnly?: boolean;\n /**\n * Only return results for aspects that have a path to the specified runtime name\n */\n filterByRuntime?: boolean;\n};\n\nexport type GetGraphIdsOpts = {\n /**\n * remove edges of modified workspace components (and their dependents) that won't exist once they're snapped.\n * useful for detecting cycles the next snap creates. relevant for the workspace only.\n * see GraphIdsFromFsBuilder.removeOutdatedEdgesOfModified() for more details.\n */\n excludeOutdatedEdgesOfModified?: boolean;\n};\n\nexport interface ComponentFactory {\n /**\n * name of the component host.\n */\n name: string;\n\n /**\n * path to the component host.\n */\n path: string;\n\n isLegacy: boolean;\n\n /**\n * resolve a `string` component ID to an instance of a ComponentID.\n */\n resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID>;\n\n /**\n * resolve multiple `string` component ID to an instance of a ComponentID.\n */\n resolveMultipleComponentIds(ids: (string | BitId | ComponentID)[]): Promise<ComponentID[]>;\n\n /**\n * returns a component by ID.\n */\n get(id: ComponentID): Promise<Component | undefined>;\n\n /**\n * returns the legacy representation of a component with minimal loading.\n * when loaded from the workspace, it won't run any Harmony hooks and even won't load dependencies.\n * it's good to get raw aspects data or some basic properties.\n * use carefully. prefer using `get()` instead.\n */\n getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined>;\n\n /**\n * returns many components by ids.\n */\n getMany(ids: ComponentID[]): Promise<Component[]>;\n\n /**\n * returns many components by their legacy representation.\n */\n getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]>;\n\n /**\n * get a component from a remote without importing it\n */\n getRemoteComponent?: (id: ComponentID) => Promise<Component>;\n\n /**\n * important - prefer using `getGraphIds()` if you don't need the component objects.\n * this method has a performance penalty. it must import all flattened-dependencies objects from the remotes.\n */\n getGraph(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean): Promise<Graph<Component, string>>;\n\n /**\n * get graph of the given component-ids and all their dependencies (recursively/flattened).\n * the nodes are ComponentIds and is much faster than `this.getGraph()`.\n */\n getGraphIds(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean, opts?: GetGraphIdsOpts): Promise<CompIdGraph>;\n\n getLogs(id: ComponentID, shortHash?: boolean, startsFrom?: string): Promise<ComponentLog[]>;\n\n getDependencies(component: Component): ComponentDependencyList;\n\n componentPackageName(component: Component): string;\n\n /**\n * returns a specific state of a component by hash or semver.\n */\n getState(id: ComponentID, snapId: string): Promise<State>;\n\n /**\n * returns a specific snap of a component by hash.\n */\n getSnap(id: ComponentID, snapId: string): Promise<Snap>;\n\n /**\n * load aspects.\n * returns the loaded aspect ids including the loaded versions.\n */\n loadAspects: (ids: string[], throwOnError?: boolean, neededFor?: string, opts?: any) => Promise<string[]>;\n\n /**\n * Resolve dirs for aspects\n */\n resolveAspects: (\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ) => Promise<AspectDefinition[]>;\n\n /**\n * list all components in the host.\n */\n list(filter?: { offset: number; limit: number }): Promise<Component[]>;\n\n /**\n * list invalid components, such as components with missing files on the fs.\n */\n listInvalid(): Promise<InvalidComponent[]>;\n\n listIds(): Promise<ComponentID[]> | ComponentID[];\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it uses multimatch (https://www.npmjs.com/package/multimatch) package for the matching algorithm, which supports\n * (among others) negate character \"!\" to exclude ids. See the package page for more supported characters.\n */\n idsByPattern(pattern: string, throwForNoMatch?: boolean): Promise<ComponentID[]>;\n\n hasId(componentId: ComponentID): Promise<boolean> | boolean;\n\n /**\n * Check if the host has the id, if no, search for the id in inner host (for example, workspace will search in the scope)\n * @param componentId\n */\n hasIdNested(componentId: ComponentID, includeCache?: boolean): Promise<boolean>;\n\n /**\n * whether a component is not the same as its head.\n * for a new component, it'll return \"true\" as it has no head yet.\n * this is relevant for component from the workspace, where it can be locally changed. on the scope it's always false\n */\n isModified(component: Component): Promise<boolean>;\n\n /**\n * whether the component exists on the remote.\n */\n isExported(componentId: ComponentID): boolean;\n\n /**\n * write the component to the filesystem when applicable (no-op for scope).\n * to change the component-path, specify the \"rootPath\", which should be a relative path inside the workspace.\n */\n write(component: Component, rootPath?: string): Promise<void>;\n\n /**\n * determine whether host should be the prior one in case multiple hosts persist.\n */\n priority?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -3,8 +3,8 @@ import type { SemVer } from 'semver';
3
3
  import type { ComponentID } from '@teambit/component-id';
4
4
  import type { BuildStatus } from '@teambit/legacy.constants';
5
5
  import type { ComponentLog } from '@teambit/objects';
6
- import type { DependencyList } from '@teambit/dependency-resolver';
7
6
  import type { ComponentFactory } from './component-factory';
7
+ import type { ComponentDependencyList } from './component-dependencies';
8
8
  import type ComponentFS from './component-fs';
9
9
  import type { Config as ComponentConfig } from './config';
10
10
  import type { Snap } from './snap';
@@ -98,7 +98,10 @@ export declare class Component implements IComponent {
98
98
  head?: string;
99
99
  sort?: string;
100
100
  }): Promise<ComponentLog[]>;
101
- getDependencies(): DependencyList;
101
+ /**
102
+ * @deprecated use `DependencyResolverMain.getDependencies(component)`, which returns the full `DependencyList`.
103
+ */
104
+ getDependencies(): ComponentDependencyList;
102
105
  getPackageName(): string;
103
106
  stringify(): string;
104
107
  /**
package/dist/component.js CHANGED
@@ -154,6 +154,10 @@ class Component {
154
154
  }
155
155
  return filteredLogs;
156
156
  }
157
+
158
+ /**
159
+ * @deprecated use `DependencyResolverMain.getDependencies(component)`, which returns the full `DependencyList`.
160
+ */
157
161
  getDependencies() {
158
162
  return this.factory.getDependencies(this);
159
163
  }
@@ -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","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
+ {"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 { slice } from 'lodash';\nimport type { ComponentFactory } from './component-factory';\nimport type { ComponentDependencyList } from './component-dependencies';\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 /**\n * @deprecated use `DependencyResolverMain.getDependencies(component)`, which returns the full `DependencyList`.\n */\n getDependencies(): ComponentDependencyList {\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":[]}
@@ -4,8 +4,8 @@ import type { GraphqlMain } from '@teambit/graphql';
4
4
  import type { SlotRegistry } from '@teambit/harmony';
5
5
  import type { ComponentID } from '@teambit/component-id';
6
6
  import type { LoggerMain } from '@teambit/logger';
7
- import type { DependencyResolverMain } from '@teambit/dependency-resolver';
8
7
  import type { ExtensionDataList } from '@teambit/legacy.extension-data';
8
+ import type { PackageManifestFetcher } from '@teambit/pkg.modules.component-package-name';
9
9
  import type { ComponentFactory } from './component-factory';
10
10
  import type { RegisteredComponentRoute } from './component.route';
11
11
  import { AspectList } from './aspect-list';
@@ -23,7 +23,7 @@ export declare class ComponentMain {
23
23
  */
24
24
  private express;
25
25
  private showFragmentSlot;
26
- dependencyResolver: DependencyResolverMain;
26
+ private packageManifestFetcher?;
27
27
  constructor(
28
28
  /**
29
29
  * slot for component hosts to register.
@@ -66,6 +66,11 @@ export declare class ComponentMain {
66
66
  private getPriorHost;
67
67
  getShowFragments(): ShowFragment[];
68
68
  isHost(name: string): boolean;
69
+ /**
70
+ * lets the commands of this aspect fetch package manifests, e.g. `bit show <package-name>`.
71
+ */
72
+ registerPackageManifestFetcher(packageManifestFetcher: PackageManifestFetcher): void;
73
+ getPackageManifestFetcher(): PackageManifestFetcher;
69
74
  /**
70
75
  * register a show fragment to display further information in the `bit show` command.
71
76
  */
@@ -118,7 +118,7 @@ class ComponentMain {
118
118
  this.hostSlot = hostSlot;
119
119
  this.express = express;
120
120
  this.showFragmentSlot = showFragmentSlot;
121
- _defineProperty(this, "dependencyResolver", void 0);
121
+ _defineProperty(this, "packageManifestFetcher", void 0);
122
122
  _defineProperty(this, "_priorHost", void 0);
123
123
  }
124
124
 
@@ -207,6 +207,17 @@ class ComponentMain {
207
207
  return !!this.hostSlot.get(name);
208
208
  }
209
209
 
210
+ /**
211
+ * lets the commands of this aspect fetch package manifests, e.g. `bit show <package-name>`.
212
+ */
213
+ registerPackageManifestFetcher(packageManifestFetcher) {
214
+ this.packageManifestFetcher = packageManifestFetcher;
215
+ }
216
+ getPackageManifestFetcher() {
217
+ if (!this.packageManifestFetcher) throw new Error('no package-manifest fetcher was registered');
218
+ return this.packageManifestFetcher;
219
+ }
220
+
210
221
  /**
211
222
  * register a show fragment to display further information in the `bit show` command.
212
223
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_harmonyModules","data","require","_cli","_express","_graphql","_harmony","_lodash","_logger","_component","_component2","_component3","_aspectList","_exceptions","_show","_cat","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentMain","constructor","hostSlot","express","showFragmentSlot","registerHost","host","register","createAspectListFromLegacy","legacyExtensionDataList","AspectList","fromLegacyExtensions","createAspectListFromEntries","entries","registerRoute","routes","routeEntries","map","route","ComponentRoute","flattenRoutes","flatten","setHostPriority","id","get","HostNotFound","_priorHost","getHost","getPriorHost","getHostIfExist","err","undefined","getRoute","routeName","toString","hosts","values","priorityHost","find","priority","getShowFragments","fragments","orderBy","isHost","name","registerShowFragments","showFragments","provider","graphql","cli","loggerMain","config","logger","createLogger","ComponentAspect","componentExtension","ShowCmd","CatCmd","NameFragment","MainFileFragment","IDFragment","ScopeFragment","FilesFragment","ExtensionsFragment","componentSchema","exports","Slot","withType","MainRuntime","GraphqlAspect","ExpressAspect","CLIAspect","LoggerAspect","addRuntime"],"sources":["component.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { MainRuntime } from '@teambit/harmony.modules.runtimes';\nimport { CLIAspect } from '@teambit/cli';\nimport type { ExpressMain, Route } from '@teambit/express';\nimport { ExpressAspect } from '@teambit/express';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { ComponentID } from '@teambit/component-id';\nimport { flatten, orderBy } from 'lodash';\nimport type { LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { ComponentFactory } from './component-factory';\nimport { ComponentAspect } from './component.aspect';\nimport { componentSchema } from './component.graphql';\nimport type { RegisteredComponentRoute } from './component.route';\nimport { ComponentRoute } from './component.route';\nimport { AspectList } from './aspect-list';\nimport { HostNotFound } from './exceptions';\nimport type { AspectEntry } from './aspect-entry';\nimport type { ShowFragment } from './show';\nimport {\n ShowCmd,\n NameFragment,\n MainFileFragment,\n IDFragment,\n ScopeFragment,\n FilesFragment,\n ExtensionsFragment,\n} from './show';\nimport { CatCmd } from './cat';\n\nexport type ComponentHostSlot = SlotRegistry<ComponentFactory>;\n\nexport type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;\n\nexport class ComponentMain {\n dependencyResolver: DependencyResolverMain;\n constructor(\n /**\n * slot for component hosts to register.\n */\n private hostSlot: ComponentHostSlot,\n\n /**\n * Express Extension\n */\n private express: ExpressMain,\n\n private showFragmentSlot: ShowFragmentSlot\n ) {}\n\n /**\n * register a new component host.\n */\n registerHost(host: ComponentFactory) {\n this.hostSlot.register(host);\n return this;\n }\n\n /**\n * important! avoid using this method.\n * seems like this method was written to work around a very specific case when the ComponentID of the aspects are\n * not available. in case of new components, to get the ComponentID, the workspace-aspect is needed to get the\n * default-scope. when this method is called from the scope, there is no way to get the real component-id.\n * instead, this method asks for the \"scope\", which when called by the scope-aspect is the current scope-name.\n * it may or may not be the real scope-name of the aspect.\n * to fix this possibly incorrect scope-name, the `workspace.resolveScopeAspectListIds()` checks whether the\n * scope-name is the same as scope.name, and if so, resolve it to the correct scope-name.\n */\n createAspectListFromLegacy(legacyExtensionDataList: ExtensionDataList) {\n return AspectList.fromLegacyExtensions(legacyExtensionDataList);\n }\n\n createAspectListFromEntries(entries: AspectEntry[]) {\n return new AspectList(entries);\n }\n\n registerRoute(routes: RegisteredComponentRoute[]) {\n const routeEntries = routes.map((route: RegisteredComponentRoute) => {\n return new ComponentRoute(route, this);\n });\n\n const flattenRoutes = flatten(routeEntries) as any as Route[];\n\n this.express.register(flattenRoutes);\n return this;\n }\n\n /**\n * set the prior host.\n */\n setHostPriority(id: string) {\n const host = this.hostSlot.get(id);\n if (!host) {\n throw new HostNotFound(id);\n }\n\n this._priorHost = host;\n return this;\n }\n\n /**\n * get component host by extension ID.\n */\n getHost(id?: string): ComponentFactory {\n if (id) {\n const host = this.hostSlot.get(id);\n if (!host) throw new HostNotFound(id);\n return host;\n }\n\n return this.getPriorHost();\n }\n\n getHostIfExist(id?: string): ComponentFactory | undefined {\n try {\n return this.getHost(id);\n } catch (err) {\n if (err instanceof HostNotFound) return undefined;\n throw err;\n }\n }\n\n getRoute(id: ComponentID, routeName: string) {\n return `/api/${id.toString()}/~aspect/${routeName}`;\n }\n\n /**\n * get the prior host.\n */\n private getPriorHost() {\n if (this._priorHost) return this._priorHost;\n\n const hosts = this.hostSlot.values();\n const priorityHost = hosts.find((host) => host.priority);\n return priorityHost || hosts[0];\n }\n\n getShowFragments() {\n const fragments = orderBy(flatten(this.showFragmentSlot.values()), ['weight', ['asc']]);\n return fragments;\n }\n\n isHost(name: string) {\n return !!this.hostSlot.get(name);\n }\n\n /**\n * register a show fragment to display further information in the `bit show` command.\n */\n registerShowFragments(showFragments: ShowFragment[]) {\n this.showFragmentSlot.register(showFragments);\n return this;\n }\n\n private _priorHost: ComponentFactory | undefined;\n\n static slots = [Slot.withType<ComponentFactory>(), Slot.withType<Route[]>(), Slot.withType<ShowFragment[]>()];\n\n static runtime = MainRuntime;\n static dependencies = [GraphqlAspect, ExpressAspect, CLIAspect, LoggerAspect];\n\n static async provider(\n [graphql, express, cli, loggerMain]: [GraphqlMain, ExpressMain, CLIMain, LoggerMain],\n config,\n [hostSlot, showFragmentSlot]: [ComponentHostSlot, ShowFragmentSlot]\n ) {\n const logger = loggerMain.createLogger(ComponentAspect.id);\n const componentExtension = new ComponentMain(hostSlot, express, showFragmentSlot);\n cli.register(new ShowCmd(componentExtension, logger), new CatCmd(componentExtension));\n\n componentExtension.registerShowFragments([\n new NameFragment(),\n new MainFileFragment(),\n new IDFragment(),\n new ScopeFragment(),\n new FilesFragment(),\n new ExtensionsFragment(),\n ]);\n graphql.register(() => componentSchema(componentExtension));\n\n return componentExtension;\n }\n}\n\nComponentAspect.addRuntime(ComponentMain);\n"],"mappings":";;;;;;AACA,SAAAA,gBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,eAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,KAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,IAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,SAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,QAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,SAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,QAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAQ,WAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,UAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,YAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,WAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAU,YAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,WAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,YAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,WAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,YAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,WAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAa,MAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,KAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,SAAAc,KAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,IAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA+B,SAAAe,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAMxB,MAAMgB,aAAa,CAAC;EAEzBC,WAAWA;EACT;AACJ;AACA;EACYC,QAA2B;EAEnC;AACJ;AACA;EACYC,OAAoB,EAEpBC,gBAAkC,EAC1C;IAAA,KARQF,QAA2B,GAA3BA,QAA2B;IAAA,KAK3BC,OAAoB,GAApBA,OAAoB;IAAA,KAEpBC,gBAAkC,GAAlCA,gBAAkC;IAAAvB,eAAA;IAAAA,eAAA;EACzC;;EAEH;AACF;AACA;EACEwB,YAAYA,CAACC,IAAsB,EAAE;IACnC,IAAI,CAACJ,QAAQ,CAACK,QAAQ,CAACD,IAAI,CAAC;IAC5B,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,0BAA0BA,CAACC,uBAA0C,EAAE;IACrE,OAAOC,wBAAU,CAACC,oBAAoB,CAACF,uBAAuB,CAAC;EACjE;EAEAG,2BAA2BA,CAACC,OAAsB,EAAE;IAClD,OAAO,KAAIH,wBAAU,EAACG,OAAO,CAAC;EAChC;EAEAC,aAAaA,CAACC,MAAkC,EAAE;IAChD,MAAMC,YAAY,GAAGD,MAAM,CAACE,GAAG,CAAEC,KAA+B,IAAK;MACnE,OAAO,KAAIC,4BAAc,EAACD,KAAK,EAAE,IAAI,CAAC;IACxC,CAAC,CAAC;IAEF,MAAME,aAAa,GAAG,IAAAC,iBAAO,EAACL,YAAY,CAAmB;IAE7D,IAAI,CAACb,OAAO,CAACI,QAAQ,CAACa,aAAa,CAAC;IACpC,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEE,eAAeA,CAACC,EAAU,EAAE;IAC1B,MAAMjB,IAAI,GAAG,IAAI,CAACJ,QAAQ,CAACsB,GAAG,CAACD,EAAE,CAAC;IAClC,IAAI,CAACjB,IAAI,EAAE;MACT,MAAM,KAAImB,0BAAY,EAACF,EAAE,CAAC;IAC5B;IAEA,IAAI,CAACG,UAAU,GAAGpB,IAAI;IACtB,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEqB,OAAOA,CAACJ,EAAW,EAAoB;IACrC,IAAIA,EAAE,EAAE;MACN,MAAMjB,IAAI,GAAG,IAAI,CAACJ,QAAQ,CAACsB,GAAG,CAACD,EAAE,CAAC;MAClC,IAAI,CAACjB,IAAI,EAAE,MAAM,KAAImB,0BAAY,EAACF,EAAE,CAAC;MACrC,OAAOjB,IAAI;IACb;IAEA,OAAO,IAAI,CAACsB,YAAY,CAAC,CAAC;EAC5B;EAEAC,cAAcA,CAACN,EAAW,EAAgC;IACxD,IAAI;MACF,OAAO,IAAI,CAACI,OAAO,CAACJ,EAAE,CAAC;IACzB,CAAC,CAAC,OAAOO,GAAG,EAAE;MACZ,IAAIA,GAAG,YAAYL,0BAAY,EAAE,OAAOM,SAAS;MACjD,MAAMD,GAAG;IACX;EACF;EAEAE,QAAQA,CAACT,EAAe,EAAEU,SAAiB,EAAE;IAC3C,OAAO,QAAQV,EAAE,CAACW,QAAQ,CAAC,CAAC,YAAYD,SAAS,EAAE;EACrD;;EAEA;AACF;AACA;EACUL,YAAYA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACF,UAAU,EAAE,OAAO,IAAI,CAACA,UAAU;IAE3C,MAAMS,KAAK,GAAG,IAAI,CAACjC,QAAQ,CAACkC,MAAM,CAAC,CAAC;IACpC,MAAMC,YAAY,GAAGF,KAAK,CAACG,IAAI,CAAEhC,IAAI,IAAKA,IAAI,CAACiC,QAAQ,CAAC;IACxD,OAAOF,YAAY,IAAIF,KAAK,CAAC,CAAC,CAAC;EACjC;EAEAK,gBAAgBA,CAAA,EAAG;IACjB,MAAMC,SAAS,GAAG,IAAAC,iBAAO,EAAC,IAAArB,iBAAO,EAAC,IAAI,CAACjB,gBAAgB,CAACgC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,OAAOK,SAAS;EAClB;EAEAE,MAAMA,CAACC,IAAY,EAAE;IACnB,OAAO,CAAC,CAAC,IAAI,CAAC1C,QAAQ,CAACsB,GAAG,CAACoB,IAAI,CAAC;EAClC;;EAEA;AACF;AACA;EACEC,qBAAqBA,CAACC,aAA6B,EAAE;IACnD,IAAI,CAAC1C,gBAAgB,CAACG,QAAQ,CAACuC,aAAa,CAAC;IAC7C,OAAO,IAAI;EACb;EASA,aAAaC,QAAQA,CACnB,CAACC,OAAO,EAAE7C,OAAO,EAAE8C,GAAG,EAAEC,UAAU,CAAkD,EACpFC,MAAM,EACN,CAACjD,QAAQ,EAAEE,gBAAgB,CAAwC,EACnE;IACA,MAAMgD,MAAM,GAAGF,UAAU,CAACG,YAAY,CAACC,4BAAe,CAAC/B,EAAE,CAAC;IAC1D,MAAMgC,kBAAkB,GAAG,IAAIvD,aAAa,CAACE,QAAQ,EAAEC,OAAO,EAAEC,gBAAgB,CAAC;IACjF6C,GAAG,CAAC1C,QAAQ,CAAC,KAAIiD,eAAO,EAACD,kBAAkB,EAAEH,MAAM,CAAC,EAAE,KAAIK,aAAM,EAACF,kBAAkB,CAAC,CAAC;IAErFA,kBAAkB,CAACV,qBAAqB,CAAC,CACvC,KAAIa,oBAAY,EAAC,CAAC,EAClB,KAAIC,wBAAgB,EAAC,CAAC,EACtB,KAAIC,kBAAU,EAAC,CAAC,EAChB,KAAIC,qBAAa,EAAC,CAAC,EACnB,KAAIC,qBAAa,EAAC,CAAC,EACnB,KAAIC,0BAAkB,EAAC,CAAC,CACzB,CAAC;IACFf,OAAO,CAACzC,QAAQ,CAAC,MAAM,IAAAyD,6BAAe,EAACT,kBAAkB,CAAC,CAAC;IAE3D,OAAOA,kBAAkB;EAC3B;AACF;AAACU,OAAA,CAAAjE,aAAA,GAAAA,aAAA;AAAAnB,eAAA,CApJYmB,aAAa,WA0HT,CAACkE,eAAI,CAACC,QAAQ,CAAmB,CAAC,EAAED,eAAI,CAACC,QAAQ,CAAU,CAAC,EAAED,eAAI,CAACC,QAAQ,CAAiB,CAAC,CAAC;AAAAtF,eAAA,CA1HlGmB,aAAa,aA4HPoE,6BAAW;AAAAvF,eAAA,CA5HjBmB,aAAa,kBA6HF,CAACqE,wBAAa,EAAEC,wBAAa,EAAEC,gBAAS,EAAEC,sBAAY,CAAC;AAyB/ElB,4BAAe,CAACmB,UAAU,CAACzE,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_harmonyModules","data","require","_cli","_express","_graphql","_harmony","_lodash","_logger","_component","_component2","_component3","_aspectList","_exceptions","_show","_cat","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentMain","constructor","hostSlot","express","showFragmentSlot","registerHost","host","register","createAspectListFromLegacy","legacyExtensionDataList","AspectList","fromLegacyExtensions","createAspectListFromEntries","entries","registerRoute","routes","routeEntries","map","route","ComponentRoute","flattenRoutes","flatten","setHostPriority","id","get","HostNotFound","_priorHost","getHost","getPriorHost","getHostIfExist","err","undefined","getRoute","routeName","toString","hosts","values","priorityHost","find","priority","getShowFragments","fragments","orderBy","isHost","name","registerPackageManifestFetcher","packageManifestFetcher","getPackageManifestFetcher","Error","registerShowFragments","showFragments","provider","graphql","cli","loggerMain","config","logger","createLogger","ComponentAspect","componentExtension","ShowCmd","CatCmd","NameFragment","MainFileFragment","IDFragment","ScopeFragment","FilesFragment","ExtensionsFragment","componentSchema","exports","Slot","withType","MainRuntime","GraphqlAspect","ExpressAspect","CLIAspect","LoggerAspect","addRuntime"],"sources":["component.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { MainRuntime } from '@teambit/harmony.modules.runtimes';\nimport { CLIAspect } from '@teambit/cli';\nimport type { ExpressMain, Route } from '@teambit/express';\nimport { ExpressAspect } from '@teambit/express';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport type { ComponentID } from '@teambit/component-id';\nimport { flatten, orderBy } from 'lodash';\nimport type { LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { PackageManifestFetcher } from '@teambit/pkg.modules.component-package-name';\nimport type { ComponentFactory } from './component-factory';\nimport { ComponentAspect } from './component.aspect';\nimport { componentSchema } from './component.graphql';\nimport type { RegisteredComponentRoute } from './component.route';\nimport { ComponentRoute } from './component.route';\nimport { AspectList } from './aspect-list';\nimport { HostNotFound } from './exceptions';\nimport type { AspectEntry } from './aspect-entry';\nimport type { ShowFragment } from './show';\nimport {\n ShowCmd,\n NameFragment,\n MainFileFragment,\n IDFragment,\n ScopeFragment,\n FilesFragment,\n ExtensionsFragment,\n} from './show';\nimport { CatCmd } from './cat';\n\nexport type ComponentHostSlot = SlotRegistry<ComponentFactory>;\n\nexport type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;\n\nexport class ComponentMain {\n private packageManifestFetcher?: PackageManifestFetcher;\n constructor(\n /**\n * slot for component hosts to register.\n */\n private hostSlot: ComponentHostSlot,\n\n /**\n * Express Extension\n */\n private express: ExpressMain,\n\n private showFragmentSlot: ShowFragmentSlot\n ) {}\n\n /**\n * register a new component host.\n */\n registerHost(host: ComponentFactory) {\n this.hostSlot.register(host);\n return this;\n }\n\n /**\n * important! avoid using this method.\n * seems like this method was written to work around a very specific case when the ComponentID of the aspects are\n * not available. in case of new components, to get the ComponentID, the workspace-aspect is needed to get the\n * default-scope. when this method is called from the scope, there is no way to get the real component-id.\n * instead, this method asks for the \"scope\", which when called by the scope-aspect is the current scope-name.\n * it may or may not be the real scope-name of the aspect.\n * to fix this possibly incorrect scope-name, the `workspace.resolveScopeAspectListIds()` checks whether the\n * scope-name is the same as scope.name, and if so, resolve it to the correct scope-name.\n */\n createAspectListFromLegacy(legacyExtensionDataList: ExtensionDataList) {\n return AspectList.fromLegacyExtensions(legacyExtensionDataList);\n }\n\n createAspectListFromEntries(entries: AspectEntry[]) {\n return new AspectList(entries);\n }\n\n registerRoute(routes: RegisteredComponentRoute[]) {\n const routeEntries = routes.map((route: RegisteredComponentRoute) => {\n return new ComponentRoute(route, this);\n });\n\n const flattenRoutes = flatten(routeEntries) as any as Route[];\n\n this.express.register(flattenRoutes);\n return this;\n }\n\n /**\n * set the prior host.\n */\n setHostPriority(id: string) {\n const host = this.hostSlot.get(id);\n if (!host) {\n throw new HostNotFound(id);\n }\n\n this._priorHost = host;\n return this;\n }\n\n /**\n * get component host by extension ID.\n */\n getHost(id?: string): ComponentFactory {\n if (id) {\n const host = this.hostSlot.get(id);\n if (!host) throw new HostNotFound(id);\n return host;\n }\n\n return this.getPriorHost();\n }\n\n getHostIfExist(id?: string): ComponentFactory | undefined {\n try {\n return this.getHost(id);\n } catch (err) {\n if (err instanceof HostNotFound) return undefined;\n throw err;\n }\n }\n\n getRoute(id: ComponentID, routeName: string) {\n return `/api/${id.toString()}/~aspect/${routeName}`;\n }\n\n /**\n * get the prior host.\n */\n private getPriorHost() {\n if (this._priorHost) return this._priorHost;\n\n const hosts = this.hostSlot.values();\n const priorityHost = hosts.find((host) => host.priority);\n return priorityHost || hosts[0];\n }\n\n getShowFragments() {\n const fragments = orderBy(flatten(this.showFragmentSlot.values()), ['weight', ['asc']]);\n return fragments;\n }\n\n isHost(name: string) {\n return !!this.hostSlot.get(name);\n }\n\n /**\n * lets the commands of this aspect fetch package manifests, e.g. `bit show <package-name>`.\n */\n registerPackageManifestFetcher(packageManifestFetcher: PackageManifestFetcher) {\n this.packageManifestFetcher = packageManifestFetcher;\n }\n\n getPackageManifestFetcher(): PackageManifestFetcher {\n if (!this.packageManifestFetcher) throw new Error('no package-manifest fetcher was registered');\n return this.packageManifestFetcher;\n }\n\n /**\n * register a show fragment to display further information in the `bit show` command.\n */\n registerShowFragments(showFragments: ShowFragment[]) {\n this.showFragmentSlot.register(showFragments);\n return this;\n }\n\n private _priorHost: ComponentFactory | undefined;\n\n static slots = [Slot.withType<ComponentFactory>(), Slot.withType<Route[]>(), Slot.withType<ShowFragment[]>()];\n\n static runtime = MainRuntime;\n static dependencies = [GraphqlAspect, ExpressAspect, CLIAspect, LoggerAspect];\n\n static async provider(\n [graphql, express, cli, loggerMain]: [GraphqlMain, ExpressMain, CLIMain, LoggerMain],\n config,\n [hostSlot, showFragmentSlot]: [ComponentHostSlot, ShowFragmentSlot]\n ) {\n const logger = loggerMain.createLogger(ComponentAspect.id);\n const componentExtension = new ComponentMain(hostSlot, express, showFragmentSlot);\n cli.register(new ShowCmd(componentExtension, logger), new CatCmd(componentExtension));\n\n componentExtension.registerShowFragments([\n new NameFragment(),\n new MainFileFragment(),\n new IDFragment(),\n new ScopeFragment(),\n new FilesFragment(),\n new ExtensionsFragment(),\n ]);\n graphql.register(() => componentSchema(componentExtension));\n\n return componentExtension;\n }\n}\n\nComponentAspect.addRuntime(ComponentMain);\n"],"mappings":"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","ignoreList":[]}
package/dist/esm.mjs CHANGED
@@ -7,6 +7,7 @@ export const Component = cjsModule.Component;
7
7
  export const ComponentID = cjsModule.ComponentID;
8
8
  export const ComponentAspect = cjsModule.ComponentAspect;
9
9
  export const AspectEntry = cjsModule.AspectEntry;
10
+ export const AspectDefinition = cjsModule.AspectDefinition;
10
11
  export const Snap = cjsModule.Snap;
11
12
  export const Tag = cjsModule.Tag;
12
13
  export const State = cjsModule.State;
package/dist/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export type { Hash } from './hash';
20
20
  export { TagMap } from './tag-map';
21
21
  export { ComponentMap } from './component-map';
22
22
  export type { ComponentMain } from './component.main.runtime';
23
+ export type { ComponentDependencyList } from './component-dependencies';
23
24
  export type { ComponentUI } from './component.ui.runtime';
24
25
  export type { Section } from './section';
25
26
  export { ComponentContext, ComponentDescriptorContext, useComponentDescriptor } from './ui/context/component-context';
@@ -37,3 +38,5 @@ export { Config } from './config';
37
38
  export { useComponent, useIdFromLocation, useComponentLogs, ComponentLogsResult, Filters } from './ui';
38
39
  export { ComponentAspect };
39
40
  export default ComponentAspect;
41
+ export { AspectDefinition } from './aspect-definition';
42
+ export type { AspectDefinitionProps } from './aspect-definition';
package/dist/index.js CHANGED
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "AspectData", {
9
9
  return _aspectEntry().AspectData;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "AspectDefinition", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _aspectDefinition().AspectDefinition;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "AspectEntry", {
13
19
  enumerable: true,
14
20
  get: function () {
@@ -340,6 +346,13 @@ function _config() {
340
346
  };
341
347
  return data;
342
348
  }
349
+ function _aspectDefinition() {
350
+ const data = require("./aspect-definition");
351
+ _aspectDefinition = function () {
352
+ return data;
353
+ };
354
+ return data;
355
+ }
343
356
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
344
357
  // TODO: check why it's not working when using the index in snap dir like this:
345
358
  // export { Snap, Author } from './snap';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_component","data","require","_host","_component2","_componentId","_componentFs","_interopRequireDefault","_aspectEntry","_snap","_tag","_state","_tagMap","_componentMap","_componentContext","_context","_ui","_menu","_componentModel","_topBarNav","_config","e","__esModule","default","_default","exports","ComponentAspect"],"sources":["index.ts"],"sourcesContent":["import { ComponentAspect } from './component.aspect';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\n\nexport type { GetComponentsOptions } from './get-component-opts';\nexport type { UseComponentType } from './ui/use-component';\nexport type { ConsumerComponent };\nexport { useComponentHost } from './host';\nexport { Component, InvalidComponent } from './component';\nexport { ComponentID } from '@teambit/component-id';\nexport { default as ComponentFS } from './component-fs';\nexport type { Config as ComponentConfig } from './config';\nexport type {\n ComponentFactory,\n ResolveAspectsOptions,\n FilterAspectsOptions,\n LoadAspectsOptions,\n GetGraphIdsOpts,\n} 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 type { 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 type { NavPlugin, ConsumePlugin, MenuNavProps } from './ui/menu';\nexport { CollapsibleMenuNav, ComponentMenu, VersionRelatedDropdowns } from './ui/menu';\nexport type { RegisteredComponentRoute, ComponentUrlParams } from './component.route';\nexport type {\n ComponentModelProps,\n DeprecationInfo,\n RegularCompDescriptor,\n ComponentPreviewSize,\n ComponentPreviewSizedFile,\n} from './ui/component-model';\nexport { ComponentModel } from './ui/component-model';\nexport { TopBarNav } from './ui/top-bar-nav';\nexport type { ShowFragment, ShowRow, ShowJSONRow } from './show';\nexport { Config } from './config';\nexport { useComponent, useIdFromLocation, useComponentLogs, ComponentLogsResult, Filters } from './ui';\n\n// export { AspectList } from './aspect-list';\n// export { AspectEntry } from './aspect-entry';\nexport { ComponentAspect };\nexport default ComponentAspect;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_component","data","require","_host","_component2","_componentId","_componentFs","_interopRequireDefault","_aspectEntry","_snap","_tag","_state","_tagMap","_componentMap","_componentContext","_context","_ui","_menu","_componentModel","_topBarNav","_config","_aspectDefinition","e","__esModule","default","_default","exports","ComponentAspect"],"sources":["index.ts"],"sourcesContent":["import { ComponentAspect } from './component.aspect';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\n\nexport type { GetComponentsOptions } from './get-component-opts';\nexport type { UseComponentType } from './ui/use-component';\nexport type { ConsumerComponent };\nexport { useComponentHost } from './host';\nexport { Component, InvalidComponent } from './component';\nexport { ComponentID } from '@teambit/component-id';\nexport { default as ComponentFS } from './component-fs';\nexport type { Config as ComponentConfig } from './config';\nexport type {\n ComponentFactory,\n ResolveAspectsOptions,\n FilterAspectsOptions,\n LoadAspectsOptions,\n GetGraphIdsOpts,\n} 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 { ComponentDependencyList } from './component-dependencies';\nexport type { ComponentUI } from './component.ui.runtime';\nexport type { 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 type { NavPlugin, ConsumePlugin, MenuNavProps } from './ui/menu';\nexport { CollapsibleMenuNav, ComponentMenu, VersionRelatedDropdowns } from './ui/menu';\nexport type { RegisteredComponentRoute, ComponentUrlParams } from './component.route';\nexport type {\n ComponentModelProps,\n DeprecationInfo,\n RegularCompDescriptor,\n ComponentPreviewSize,\n ComponentPreviewSizedFile,\n} from './ui/component-model';\nexport { ComponentModel } from './ui/component-model';\nexport { TopBarNav } from './ui/top-bar-nav';\nexport type { ShowFragment, ShowRow, ShowJSONRow } from './show';\nexport { Config } from './config';\nexport { useComponent, useIdFromLocation, useComponentLogs, ComponentLogsResult, Filters } from './ui';\n\n// export { AspectList } from './aspect-list';\n// export { AspectEntry } from './aspect-entry';\nexport { ComponentAspect };\nexport default ComponentAspect;\nexport { AspectDefinition } from './aspect-definition';\nexport type { AspectDefinitionProps } from './aspect-definition';\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.1229/dist/component.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1229/dist/component.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1230/dist/component.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1230/dist/component.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -93,7 +93,7 @@ to see the legacy bit show, please use "--legacy" flag`);
93
93
  async resolveIdWithoutWorkspace(id) {
94
94
  if ((0, _pkgModules().isLikelyPackageName)(id)) {
95
95
  try {
96
- const compId = await (0, _pkgModules().resolveComponentIdFromPackageName)(id, this.component.dependencyResolver);
96
+ const compId = await (0, _pkgModules().resolveComponentIdFromPackageName)(id, this.component.getPackageManifestFetcher());
97
97
  return compId.toString();
98
98
  } catch (error) {
99
99
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"names":["_open","data","_interopRequireDefault","require","_lodash","_cliTable","_legacy","_showLegacyCmd","_pkgModules","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ShowCmd","constructor","component","logger","name","description","getComponent","idStr","remote","host","getHostIfExist","Error","getRemoteComponent","id","resolveComponentId","getHost","get","MissingBitMapComponent","resolveIdWithoutWorkspace","isLikelyPackageName","compId","resolveComponentIdFromPackageName","dependencyResolver","toString","error","errorMessage","message","useLegacy","json","compare","resolvedId","showData","actionLegacy","reportLegacy","report","legacy","browser","fragments","getShowFragments","rows","Promise","all","map","fragment","row","renderRow","content","title","table","CLITable","compact","renderedTable","render","isExported","consoleWarning","homepageUrl","homepage","open","catch","err","JSON","parse","undefined","filter","exports"],"sources":["show.cmd.ts"],"sourcesContent":["import open from 'open';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { compact } from 'lodash';\n// import { Logger } from '@teambit/logger';\n// import chalk from 'chalk';\nimport { CLITable } from '@teambit/cli-table';\nimport { MissingBitMapComponent } from '@teambit/legacy.bit-map';\nimport type { Logger } from '@teambit/logger';\nimport { reportLegacy, actionLegacy } from './legacy-show/show-legacy-cmd';\nimport type { ComponentMain } from '../component.main.runtime';\nimport { isLikelyPackageName, resolveComponentIdFromPackageName } from '@teambit/pkg.modules.component-package-name';\n\nexport class ShowCmd implements Command {\n name = 'show <component-name>';\n description = 'display component metadata, dependencies, and configuration';\n extendedDescription = `shows detailed information about a component including its version, dependencies, environment, and other metadata.\nnote: to see file changes made in a specific version, use \\`bit diff <component> <version> --parent\\`.`;\n alias = '';\n group = 'info-analysis';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n options = [\n ['j', 'json', 'return the component data in json format'],\n ['l', 'legacy', 'use the legacy bit show.'],\n ['r', 'remote', 'show data for a remote component'],\n ['b', 'browser', 'open the component page in the browser'],\n [\n 'c',\n 'compare',\n 'legacy-only. compare current file system component to its latest tagged version [default=latest]',\n ],\n ] as CommandOptions;\n\n constructor(\n private component: ComponentMain,\n private logger: Logger\n ) {}\n\n private async getComponent(idStr: string, remote: boolean) {\n if (remote) {\n const host = this.component.getHostIfExist('teambit.scope/scope');\n if (!host) {\n throw new Error(`error: the current directory is not a workspace nor a scope. the full \"bit show\" is not supported.\nto see the legacy bit show, please use \"--legacy\" flag`);\n }\n if (!host.getRemoteComponent) {\n throw new Error('Component Host does not implement getRemoteComponent()');\n }\n const id = await host.resolveComponentId(idStr);\n const component = await host.getRemoteComponent(id);\n return component;\n }\n const host = this.component.getHost();\n if (!host) {\n throw new Error(\n 'Could not find a workspace or scope. Consider using --remote or run inside a valid workspace or scope.'\n );\n }\n const id = await host.resolveComponentId(idStr);\n const component = await host.get(id);\n if (!component) throw new MissingBitMapComponent(idStr);\n return component;\n }\n\n private async resolveIdWithoutWorkspace(id: string): Promise<string> {\n if (isLikelyPackageName(id)) {\n try {\n const compId = await resolveComponentIdFromPackageName(id, this.component.dependencyResolver);\n return compId.toString();\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`${errorMessage}.\nIf this is a component, Please use a valid component ID instead.`);\n }\n }\n return id;\n }\n\n async useLegacy(id: string, json = false, remote = false, compare = false) {\n const resolvedId = await this.resolveIdWithoutWorkspace(id);\n const showData = await actionLegacy([resolvedId], {\n json,\n remote,\n compare,\n });\n\n return reportLegacy(showData);\n }\n\n async report(\n [idStr]: [string],\n { legacy, remote, compare, browser }: { legacy: boolean; remote: boolean; compare: boolean; browser: boolean }\n ) {\n if (legacy) return this.useLegacy(idStr, false, remote, compare);\n const component = await this.getComponent(idStr, remote);\n const fragments = this.component.getShowFragments();\n const rows = await Promise.all(\n fragments.map(async (fragment) => {\n const row = await fragment.renderRow(component);\n if (!row.content) return null;\n return [row.title, row.content];\n })\n );\n\n const table = new CLITable([], compact(rows));\n const renderedTable = table.render();\n if (browser) {\n const isExported = component.isExported();\n if (!isExported) {\n this.logger.consoleWarning(`unable to open the browser, the component \"${idStr}\" has not been exported yet`);\n return renderedTable;\n }\n const homepageUrl = component.homepage;\n if (!homepageUrl || homepageUrl === '') {\n this.logger.consoleWarning(`unable to open browser, the component ${idStr} does not have a homepage`);\n return renderedTable;\n }\n open(homepageUrl).catch((err) => {\n this.logger.error(`failed to open browser for component ${idStr}, err: ${err}`);\n });\n }\n return renderedTable;\n }\n\n async json([idStr]: [string], { remote, legacy }: { remote: boolean; legacy: boolean }) {\n if (legacy) return JSON.parse(await this.useLegacy(idStr, true, remote));\n const component = await this.getComponent(idStr, remote);\n const fragments = this.component.getShowFragments();\n const rows = await Promise.all(\n fragments.map(async (fragment) => {\n return fragment.json ? fragment.json(component) : undefined;\n })\n );\n\n return rows.filter((row) => !!row);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_open","data","_interopRequireDefault","require","_lodash","_cliTable","_legacy","_showLegacyCmd","_pkgModules","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ShowCmd","constructor","component","logger","name","description","getComponent","idStr","remote","host","getHostIfExist","Error","getRemoteComponent","id","resolveComponentId","getHost","get","MissingBitMapComponent","resolveIdWithoutWorkspace","isLikelyPackageName","compId","resolveComponentIdFromPackageName","getPackageManifestFetcher","toString","error","errorMessage","message","useLegacy","json","compare","resolvedId","showData","actionLegacy","reportLegacy","report","legacy","browser","fragments","getShowFragments","rows","Promise","all","map","fragment","row","renderRow","content","title","table","CLITable","compact","renderedTable","render","isExported","consoleWarning","homepageUrl","homepage","open","catch","err","JSON","parse","undefined","filter","exports"],"sources":["show.cmd.ts"],"sourcesContent":["import open from 'open';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { compact } from 'lodash';\n// import { Logger } from '@teambit/logger';\n// import chalk from 'chalk';\nimport { CLITable } from '@teambit/cli-table';\nimport { MissingBitMapComponent } from '@teambit/legacy.bit-map';\nimport type { Logger } from '@teambit/logger';\nimport { reportLegacy, actionLegacy } from './legacy-show/show-legacy-cmd';\nimport type { ComponentMain } from '../component.main.runtime';\nimport { isLikelyPackageName, resolveComponentIdFromPackageName } from '@teambit/pkg.modules.component-package-name';\n\nexport class ShowCmd implements Command {\n name = 'show <component-name>';\n description = 'display component metadata, dependencies, and configuration';\n extendedDescription = `shows detailed information about a component including its version, dependencies, environment, and other metadata.\nnote: to see file changes made in a specific version, use \\`bit diff <component> <version> --parent\\`.`;\n alias = '';\n group = 'info-analysis';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n options = [\n ['j', 'json', 'return the component data in json format'],\n ['l', 'legacy', 'use the legacy bit show.'],\n ['r', 'remote', 'show data for a remote component'],\n ['b', 'browser', 'open the component page in the browser'],\n [\n 'c',\n 'compare',\n 'legacy-only. compare current file system component to its latest tagged version [default=latest]',\n ],\n ] as CommandOptions;\n\n constructor(\n private component: ComponentMain,\n private logger: Logger\n ) {}\n\n private async getComponent(idStr: string, remote: boolean) {\n if (remote) {\n const host = this.component.getHostIfExist('teambit.scope/scope');\n if (!host) {\n throw new Error(`error: the current directory is not a workspace nor a scope. the full \"bit show\" is not supported.\nto see the legacy bit show, please use \"--legacy\" flag`);\n }\n if (!host.getRemoteComponent) {\n throw new Error('Component Host does not implement getRemoteComponent()');\n }\n const id = await host.resolveComponentId(idStr);\n const component = await host.getRemoteComponent(id);\n return component;\n }\n const host = this.component.getHost();\n if (!host) {\n throw new Error(\n 'Could not find a workspace or scope. Consider using --remote or run inside a valid workspace or scope.'\n );\n }\n const id = await host.resolveComponentId(idStr);\n const component = await host.get(id);\n if (!component) throw new MissingBitMapComponent(idStr);\n return component;\n }\n\n private async resolveIdWithoutWorkspace(id: string): Promise<string> {\n if (isLikelyPackageName(id)) {\n try {\n const compId = await resolveComponentIdFromPackageName(id, this.component.getPackageManifestFetcher());\n return compId.toString();\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(`${errorMessage}.\nIf this is a component, Please use a valid component ID instead.`);\n }\n }\n return id;\n }\n\n async useLegacy(id: string, json = false, remote = false, compare = false) {\n const resolvedId = await this.resolveIdWithoutWorkspace(id);\n const showData = await actionLegacy([resolvedId], {\n json,\n remote,\n compare,\n });\n\n return reportLegacy(showData);\n }\n\n async report(\n [idStr]: [string],\n { legacy, remote, compare, browser }: { legacy: boolean; remote: boolean; compare: boolean; browser: boolean }\n ) {\n if (legacy) return this.useLegacy(idStr, false, remote, compare);\n const component = await this.getComponent(idStr, remote);\n const fragments = this.component.getShowFragments();\n const rows = await Promise.all(\n fragments.map(async (fragment) => {\n const row = await fragment.renderRow(component);\n if (!row.content) return null;\n return [row.title, row.content];\n })\n );\n\n const table = new CLITable([], compact(rows));\n const renderedTable = table.render();\n if (browser) {\n const isExported = component.isExported();\n if (!isExported) {\n this.logger.consoleWarning(`unable to open the browser, the component \"${idStr}\" has not been exported yet`);\n return renderedTable;\n }\n const homepageUrl = component.homepage;\n if (!homepageUrl || homepageUrl === '') {\n this.logger.consoleWarning(`unable to open browser, the component ${idStr} does not have a homepage`);\n return renderedTable;\n }\n open(homepageUrl).catch((err) => {\n this.logger.error(`failed to open browser for component ${idStr}, err: ${err}`);\n });\n }\n return renderedTable;\n }\n\n async json([idStr]: [string], { remote, legacy }: { remote: boolean; legacy: boolean }) {\n if (legacy) return JSON.parse(await this.useLegacy(idStr, true, remote));\n const component = await this.getComponent(idStr, remote);\n const fragments = this.component.getShowFragments();\n const rows = await Promise.all(\n fragments.map(async (fragment) => {\n return fragment.json ? fragment.json(component) : undefined;\n })\n );\n\n return rows.filter((row) => !!row);\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/esm.mjs CHANGED
@@ -7,6 +7,7 @@ export const Component = cjsModule.Component;
7
7
  export const ComponentID = cjsModule.ComponentID;
8
8
  export const ComponentAspect = cjsModule.ComponentAspect;
9
9
  export const AspectEntry = cjsModule.AspectEntry;
10
+ export const AspectDefinition = cjsModule.AspectDefinition;
10
11
  export const Snap = cjsModule.Snap;
11
12
  export const Tag = cjsModule.Tag;
12
13
  export const State = cjsModule.State;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "1.0.1229",
3
+ "version": "1.0.1230",
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.1229"
9
+ "version": "1.0.1230"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/any-fs": "0.0.5",
@@ -73,21 +73,19 @@
73
73
  "@teambit/lanes.hooks.use-lanes": "0.0.300",
74
74
  "@teambit/lanes.ui.models.lanes-model": "0.0.239",
75
75
  "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.151",
76
- "@teambit/legacy.extension-data": "0.0.190",
77
- "@teambit/aspect-loader": "1.0.1229",
78
- "@teambit/dependency-resolver": "1.0.1229",
79
- "@teambit/legacy.consumer-component": "0.0.189",
80
- "@teambit/objects": "0.0.722",
81
- "@teambit/component.sources": "0.0.240",
82
- "@teambit/cli": "0.0.1419",
83
- "@teambit/legacy.bit-map": "0.0.245",
84
- "@teambit/pkg.modules.component-package-name": "0.0.195",
85
- "@teambit/semantics.doc-parser": "0.0.196",
86
- "@teambit/legacy.consumer": "0.0.188",
87
- "@teambit/legacy.dependency-graph": "0.0.191",
88
- "@teambit/legacy.scope": "0.0.188",
89
- "@teambit/scope.remotes": "0.0.188",
90
- "@teambit/legacy.component-diff": "0.0.244"
76
+ "@teambit/legacy.extension-data": "0.0.191",
77
+ "@teambit/legacy.consumer-component": "0.0.190",
78
+ "@teambit/objects": "0.0.723",
79
+ "@teambit/component.sources": "0.0.241",
80
+ "@teambit/cli": "0.0.1420",
81
+ "@teambit/pkg.modules.component-package-name": "0.0.196",
82
+ "@teambit/legacy.bit-map": "0.0.246",
83
+ "@teambit/semantics.doc-parser": "0.0.197",
84
+ "@teambit/legacy.consumer": "0.0.189",
85
+ "@teambit/legacy.dependency-graph": "0.0.192",
86
+ "@teambit/legacy.scope": "0.0.189",
87
+ "@teambit/scope.remotes": "0.0.189",
88
+ "@teambit/legacy.component-diff": "0.0.245"
91
89
  },
92
90
  "devDependencies": {
93
91
  "@types/lodash": "4.14.165",
package/show/show.cmd.ts CHANGED
@@ -64,7 +64,7 @@ to see the legacy bit show, please use "--legacy" flag`);
64
64
  private async resolveIdWithoutWorkspace(id: string): Promise<string> {
65
65
  if (isLikelyPackageName(id)) {
66
66
  try {
67
- const compId = await resolveComponentIdFromPackageName(id, this.component.dependencyResolver);
67
+ const compId = await resolveComponentIdFromPackageName(id, this.component.getPackageManifestFetcher());
68
68
  return compId.toString();
69
69
  } catch (error) {
70
70
  const errorMessage = error instanceof Error ? error.message : String(error);