@teambit/graph 0.0.917 → 0.0.919
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/component-graph/component-graph.ts +1 -29
- package/dist/component-graph/component-graph.d.ts +1 -10
- package/dist/component-graph/component-graph.js +1 -37
- package/dist/component-graph/component-graph.js.map +1 -1
- package/dist/component-id-graph.d.ts +28 -0
- package/dist/component-id-graph.js +96 -0
- package/dist/component-id-graph.js.map +1 -0
- package/dist/graph-builder.d.ts +5 -0
- package/dist/graph-builder.js +18 -0
- package/dist/graph-builder.js.map +1 -1
- package/dist/graph.main.runtime.d.ts +5 -0
- package/dist/graph.main.runtime.js +8 -0
- package/dist/graph.main.runtime.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/package-tar/teambit-graph-0.0.919.tgz +0 -0
- package/package.json +14 -14
- package/{preview-1669433164317.js → preview-1669865271197.js} +2 -2
- package/package-tar/teambit-graph-0.0.917.tgz +0 -0
@@ -1,6 +1,5 @@
|
|
1
1
|
import { Component, ComponentID } from '@teambit/component';
|
2
2
|
import { Graph, Node, Edge } from '@teambit/graph.cleargraph';
|
3
|
-
import { uniq } from 'lodash';
|
4
3
|
|
5
4
|
import { Dependency } from '../model/dependency';
|
6
5
|
import { DuplicateDependency, VersionSubgraph } from '../duplicate-dependency';
|
@@ -21,34 +20,7 @@ export class ComponentGraph extends Graph<Component, Dependency> {
|
|
21
20
|
}
|
22
21
|
|
23
22
|
/**
|
24
|
-
*
|
25
|
-
* e.g.
|
26
|
-
* A -> B -> C -> N.
|
27
|
-
* A -> E -> N.
|
28
|
-
* B -> F -> G.
|
29
|
-
* given source: A, targets: N. The results will be: B, C, E
|
30
|
-
*/
|
31
|
-
findIdsFromSourcesToTargets(sources: ComponentID[], targets: ComponentID[]): ComponentID[] {
|
32
|
-
const removeVerFromIdStr = (idStr: string) => idStr.split('@')[0];
|
33
|
-
const sourcesStr = sources.map((s) => s.toStringWithoutVersion());
|
34
|
-
const targetsStr = targets.map((t) => t.toStringWithoutVersion());
|
35
|
-
const allFlattened = sources.map((source) => this.successors(source.toString())).flat();
|
36
|
-
const allFlattenedIds = uniq(allFlattened.map((f) => f.id));
|
37
|
-
const results: string[] = [];
|
38
|
-
allFlattenedIds.forEach((id) => {
|
39
|
-
const idWithNoVer = removeVerFromIdStr(id);
|
40
|
-
if (sourcesStr.includes(idWithNoVer) || targetsStr.includes(idWithNoVer)) return;
|
41
|
-
const allSuccessors = this.successors(id);
|
42
|
-
const allSuccessorsWithNoVersion = allSuccessors.map((s) => removeVerFromIdStr(s.id));
|
43
|
-
if (allSuccessorsWithNoVersion.find((s) => targetsStr.includes(s))) results.push(id);
|
44
|
-
});
|
45
|
-
const components = this.getNodes(results).map((n) => n.attr);
|
46
|
-
|
47
|
-
return components.map((c) => c.id);
|
48
|
-
}
|
49
|
-
|
50
|
-
/**
|
51
|
-
* overrides the super class to eliminate non-seeders components
|
23
|
+
* @deprecate use graph.getGraphIds().findCycles()
|
52
24
|
*/
|
53
25
|
findCycles(graph?: this): string[][] {
|
54
26
|
const cycles = super.findCycles(graph);
|
@@ -10,16 +10,7 @@ export declare class ComponentGraph extends Graph<Component, Dependency> {
|
|
10
10
|
constructor(nodes?: ComponentNode[], edges?: DependencyEdge[]);
|
11
11
|
protected create(nodes?: ComponentNode[], edges?: DependencyEdge[]): this;
|
12
12
|
/**
|
13
|
-
*
|
14
|
-
* e.g.
|
15
|
-
* A -> B -> C -> N.
|
16
|
-
* A -> E -> N.
|
17
|
-
* B -> F -> G.
|
18
|
-
* given source: A, targets: N. The results will be: B, C, E
|
19
|
-
*/
|
20
|
-
findIdsFromSourcesToTargets(sources: ComponentID[], targets: ComponentID[]): ComponentID[];
|
21
|
-
/**
|
22
|
-
* overrides the super class to eliminate non-seeders components
|
13
|
+
* @deprecate use graph.getGraphIds().findCycles()
|
23
14
|
*/
|
24
15
|
findCycles(graph?: this): string[][];
|
25
16
|
findDuplicateDependencies(): Map<string, DuplicateDependency>;
|
@@ -1,10 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
require("core-js/modules/es.array.flat.js");
|
5
4
|
require("core-js/modules/es.array.iterator.js");
|
6
|
-
require("core-js/modules/es.array.unscopables.flat.js");
|
7
|
-
require("core-js/modules/es.regexp.exec.js");
|
8
5
|
Object.defineProperty(exports, "__esModule", {
|
9
6
|
value: true
|
10
7
|
});
|
@@ -23,13 +20,6 @@ function _graph() {
|
|
23
20
|
};
|
24
21
|
return data;
|
25
22
|
}
|
26
|
-
function _lodash() {
|
27
|
-
const data = require("lodash");
|
28
|
-
_lodash = function () {
|
29
|
-
return data;
|
30
|
-
};
|
31
|
-
return data;
|
32
|
-
}
|
33
23
|
function _duplicateDependency() {
|
34
24
|
const data = require("../duplicate-dependency");
|
35
25
|
_duplicateDependency = function () {
|
@@ -50,33 +40,7 @@ class ComponentGraph extends _graph().Graph {
|
|
50
40
|
}
|
51
41
|
|
52
42
|
/**
|
53
|
-
*
|
54
|
-
* e.g.
|
55
|
-
* A -> B -> C -> N.
|
56
|
-
* A -> E -> N.
|
57
|
-
* B -> F -> G.
|
58
|
-
* given source: A, targets: N. The results will be: B, C, E
|
59
|
-
*/
|
60
|
-
findIdsFromSourcesToTargets(sources, targets) {
|
61
|
-
const removeVerFromIdStr = idStr => idStr.split('@')[0];
|
62
|
-
const sourcesStr = sources.map(s => s.toStringWithoutVersion());
|
63
|
-
const targetsStr = targets.map(t => t.toStringWithoutVersion());
|
64
|
-
const allFlattened = sources.map(source => this.successors(source.toString())).flat();
|
65
|
-
const allFlattenedIds = (0, _lodash().uniq)(allFlattened.map(f => f.id));
|
66
|
-
const results = [];
|
67
|
-
allFlattenedIds.forEach(id => {
|
68
|
-
const idWithNoVer = removeVerFromIdStr(id);
|
69
|
-
if (sourcesStr.includes(idWithNoVer) || targetsStr.includes(idWithNoVer)) return;
|
70
|
-
const allSuccessors = this.successors(id);
|
71
|
-
const allSuccessorsWithNoVersion = allSuccessors.map(s => removeVerFromIdStr(s.id));
|
72
|
-
if (allSuccessorsWithNoVersion.find(s => targetsStr.includes(s))) results.push(id);
|
73
|
-
});
|
74
|
-
const components = this.getNodes(results).map(n => n.attr);
|
75
|
-
return components.map(c => c.id);
|
76
|
-
}
|
77
|
-
|
78
|
-
/**
|
79
|
-
* overrides the super class to eliminate non-seeders components
|
43
|
+
* @deprecate use graph.getGraphIds().findCycles()
|
80
44
|
*/
|
81
45
|
findCycles(graph) {
|
82
46
|
const cycles = super.findCycles(graph);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["DEPENDENCIES_TYPES","ComponentGraph","Graph","constructor","nodes","edges","create","findIdsFromSourcesToTargets","sources","targets","removeVerFromIdStr","idStr","split","sourcesStr","map","s","toStringWithoutVersion","targetsStr","t","allFlattened","source","successors","toString","flat","allFlattenedIds","uniq","f","id","results","forEach","idWithNoVer","includes","allSuccessors","allSuccessorsWithNoVersion","find","push","components","getNodes","n","attr","c","findCycles","graph","cycles","shouldLimitToSeedersOnly","seederIdsStr","seederIds","cyclesWithSeeders","filter","cycle","some","cycleIdStr","findDuplicateDependencies","versionMap","calculateVersionMap","seederIdsNoVersions","duplicateDependencies","Map","compFullName","versions","allVersionNodes","length","versionSubgraphs","notLatestVersions","version","latestVersionNode","predecessors","predecessorsSubgraph","immediatePredecessors","predecessor","subGraph","buildFromCleargraph","versionSubgraph","versionId","immediateDependents","isSeeder","shouldDisplayDueToBeingSeeder","duplicateDep","DuplicateDependency","set","runtimeOnly","componentIds","successorsSubgraph","edgeFilter","edge","type","node","comp","compKey","_legacy","has","value","get","Object","prototype","hasOwnProperty","call","currentComp","latestComp","head","Date","timestamp"],"sources":["component-graph.ts"],"sourcesContent":["import { Component, ComponentID } from '@teambit/component';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { uniq } from 'lodash';\n\nimport { Dependency } from '../model/dependency';\nimport { DuplicateDependency, VersionSubgraph } from '../duplicate-dependency';\n\nexport const DEPENDENCIES_TYPES = ['dependencies', 'devDependencies'];\n\ntype ComponentNode = Node<Component>;\ntype DependencyEdge = Edge<Dependency>;\n\nexport class ComponentGraph extends Graph<Component, Dependency> {\n seederIds: ComponentID[] = []; // component IDs that started the graph. (if from workspace, the .bitmap ids normally)\n constructor(nodes: ComponentNode[] = [], edges: DependencyEdge[] = []) {\n super(nodes, edges);\n }\n\n protected create(nodes: ComponentNode[] = [], edges: DependencyEdge[] = []): this {\n return new ComponentGraph(nodes, edges) as this;\n }\n\n /**\n * check all the routes from the sources to targets and return the components found during this traversal.\n * e.g.\n * A -> B -> C -> N.\n * A -> E -> N.\n * B -> F -> G.\n * given source: A, targets: N. The results will be: B, C, E\n */\n findIdsFromSourcesToTargets(sources: ComponentID[], targets: ComponentID[]): ComponentID[] {\n const removeVerFromIdStr = (idStr: string) => idStr.split('@')[0];\n const sourcesStr = sources.map((s) => s.toStringWithoutVersion());\n const targetsStr = targets.map((t) => t.toStringWithoutVersion());\n const allFlattened = sources.map((source) => this.successors(source.toString())).flat();\n const allFlattenedIds = uniq(allFlattened.map((f) => f.id));\n const results: string[] = [];\n allFlattenedIds.forEach((id) => {\n const idWithNoVer = removeVerFromIdStr(id);\n if (sourcesStr.includes(idWithNoVer) || targetsStr.includes(idWithNoVer)) return;\n const allSuccessors = this.successors(id);\n const allSuccessorsWithNoVersion = allSuccessors.map((s) => removeVerFromIdStr(s.id));\n if (allSuccessorsWithNoVersion.find((s) => targetsStr.includes(s))) results.push(id);\n });\n const components = this.getNodes(results).map((n) => n.attr);\n\n return components.map((c) => c.id);\n }\n\n /**\n * overrides the super class to eliminate non-seeders components\n */\n findCycles(graph?: this): string[][] {\n const cycles = super.findCycles(graph);\n if (!this.shouldLimitToSeedersOnly()) {\n return cycles;\n }\n const seederIdsStr = this.seederIds.map((id) => id.toString());\n const cyclesWithSeeders = cycles.filter((cycle) => {\n return cycle.some((cycleIdStr) => seederIdsStr.includes(cycleIdStr));\n });\n return cyclesWithSeeders;\n }\n\n findDuplicateDependencies(): Map<string, DuplicateDependency> {\n const versionMap = this.calculateVersionMap();\n const seederIdsNoVersions = this.seederIds.map((id) => id.toStringWithoutVersion());\n const duplicateDependencies: Map<string, DuplicateDependency> = new Map();\n for (const [compFullName, versions] of versionMap) {\n if (versions.allVersionNodes.length > 1) {\n const versionSubgraphs: VersionSubgraph[] = [];\n const notLatestVersions = versions.allVersionNodes.filter((version) => version !== versions.latestVersionNode);\n notLatestVersions.forEach((version) => {\n const predecessors = this.predecessorsSubgraph(version);\n const immediatePredecessors = this.predecessors(version).map((predecessor) => predecessor.id);\n const subGraph = this.buildFromCleargraph(predecessors);\n const versionSubgraph: VersionSubgraph = {\n versionId: version,\n subGraph,\n // TODO: validate that this is working correctly\n immediateDependents: immediatePredecessors,\n };\n versionSubgraphs.push(versionSubgraph);\n });\n const isSeeder = seederIdsNoVersions.includes(compFullName);\n const shouldDisplayDueToBeingSeeder = !this.shouldLimitToSeedersOnly() || isSeeder;\n if (shouldDisplayDueToBeingSeeder && versionSubgraphs.length > 0) {\n const duplicateDep = new DuplicateDependency(versions.latestVersionNode, versionSubgraphs);\n duplicateDependencies.set(compFullName, duplicateDep);\n }\n }\n }\n return duplicateDependencies;\n }\n\n buildFromCleargraph(graph: Graph<Component, Dependency>): ComponentGraph {\n return this.create(graph.nodes, graph.edges);\n }\n\n runtimeOnly(componentIds: string[]) {\n return this.successorsSubgraph(componentIds, {\n edgeFilter: (edge: DependencyEdge) => edge.attr.type === 'runtime',\n });\n }\n\n private shouldLimitToSeedersOnly() {\n return this.seederIds.length;\n }\n\n private calculateVersionMap(): Map<string, { allVersionNodes: string[]; latestVersionNode: string }> {\n const versionMap: Map<string, { allVersionNodes: string[]; latestVersionNode: string }> = new Map();\n for (const node of this.nodes) {\n const comp = node.attr;\n const compKey = node.id;\n const compFullName = comp.id._legacy.toStringWithoutVersion();\n if (!versionMap.has(compFullName)) {\n versionMap.set(compFullName, {\n allVersionNodes: [compKey],\n latestVersionNode: compKey,\n });\n } else {\n const value = versionMap.get(compFullName);\n if (value) {\n if (Object.prototype.hasOwnProperty.call(value, 'allVersionNodes')) {\n value.allVersionNodes.push(compKey);\n }\n const currentComp = comp;\n const latestComp = this.node(value.latestVersionNode)?.attr;\n // @todo: this check won't work when the component doesn't have head.\n // it happens when a dependency is needed in an old version (not head). which Bit doesn't fetch the head\n // Version object, and as a result, the `Component.head` is empty.\n // for now it's probably good enough because it's used only for `findDuplicateDependencies`, which only\n // checks the components on the workspace.\n if (\n currentComp.head &&\n latestComp?.head &&\n new Date(currentComp.head.timestamp) > new Date(latestComp.head.timestamp)\n ) {\n value.latestVersionNode = compKey;\n }\n }\n }\n }\n return versionMap;\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["DEPENDENCIES_TYPES","ComponentGraph","Graph","constructor","nodes","edges","create","findCycles","graph","cycles","shouldLimitToSeedersOnly","seederIdsStr","seederIds","map","id","toString","cyclesWithSeeders","filter","cycle","some","cycleIdStr","includes","findDuplicateDependencies","versionMap","calculateVersionMap","seederIdsNoVersions","toStringWithoutVersion","duplicateDependencies","Map","compFullName","versions","allVersionNodes","length","versionSubgraphs","notLatestVersions","version","latestVersionNode","forEach","predecessors","predecessorsSubgraph","immediatePredecessors","predecessor","subGraph","buildFromCleargraph","versionSubgraph","versionId","immediateDependents","push","isSeeder","shouldDisplayDueToBeingSeeder","duplicateDep","DuplicateDependency","set","runtimeOnly","componentIds","successorsSubgraph","edgeFilter","edge","attr","type","node","comp","compKey","_legacy","has","value","get","Object","prototype","hasOwnProperty","call","currentComp","latestComp","head","Date","timestamp"],"sources":["component-graph.ts"],"sourcesContent":["import { Component, ComponentID } from '@teambit/component';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\n\nimport { Dependency } from '../model/dependency';\nimport { DuplicateDependency, VersionSubgraph } from '../duplicate-dependency';\n\nexport const DEPENDENCIES_TYPES = ['dependencies', 'devDependencies'];\n\ntype ComponentNode = Node<Component>;\ntype DependencyEdge = Edge<Dependency>;\n\nexport class ComponentGraph extends Graph<Component, Dependency> {\n seederIds: ComponentID[] = []; // component IDs that started the graph. (if from workspace, the .bitmap ids normally)\n constructor(nodes: ComponentNode[] = [], edges: DependencyEdge[] = []) {\n super(nodes, edges);\n }\n\n protected create(nodes: ComponentNode[] = [], edges: DependencyEdge[] = []): this {\n return new ComponentGraph(nodes, edges) as this;\n }\n\n /**\n * @deprecate use graph.getGraphIds().findCycles()\n */\n findCycles(graph?: this): string[][] {\n const cycles = super.findCycles(graph);\n if (!this.shouldLimitToSeedersOnly()) {\n return cycles;\n }\n const seederIdsStr = this.seederIds.map((id) => id.toString());\n const cyclesWithSeeders = cycles.filter((cycle) => {\n return cycle.some((cycleIdStr) => seederIdsStr.includes(cycleIdStr));\n });\n return cyclesWithSeeders;\n }\n\n findDuplicateDependencies(): Map<string, DuplicateDependency> {\n const versionMap = this.calculateVersionMap();\n const seederIdsNoVersions = this.seederIds.map((id) => id.toStringWithoutVersion());\n const duplicateDependencies: Map<string, DuplicateDependency> = new Map();\n for (const [compFullName, versions] of versionMap) {\n if (versions.allVersionNodes.length > 1) {\n const versionSubgraphs: VersionSubgraph[] = [];\n const notLatestVersions = versions.allVersionNodes.filter((version) => version !== versions.latestVersionNode);\n notLatestVersions.forEach((version) => {\n const predecessors = this.predecessorsSubgraph(version);\n const immediatePredecessors = this.predecessors(version).map((predecessor) => predecessor.id);\n const subGraph = this.buildFromCleargraph(predecessors);\n const versionSubgraph: VersionSubgraph = {\n versionId: version,\n subGraph,\n // TODO: validate that this is working correctly\n immediateDependents: immediatePredecessors,\n };\n versionSubgraphs.push(versionSubgraph);\n });\n const isSeeder = seederIdsNoVersions.includes(compFullName);\n const shouldDisplayDueToBeingSeeder = !this.shouldLimitToSeedersOnly() || isSeeder;\n if (shouldDisplayDueToBeingSeeder && versionSubgraphs.length > 0) {\n const duplicateDep = new DuplicateDependency(versions.latestVersionNode, versionSubgraphs);\n duplicateDependencies.set(compFullName, duplicateDep);\n }\n }\n }\n return duplicateDependencies;\n }\n\n buildFromCleargraph(graph: Graph<Component, Dependency>): ComponentGraph {\n return this.create(graph.nodes, graph.edges);\n }\n\n runtimeOnly(componentIds: string[]) {\n return this.successorsSubgraph(componentIds, {\n edgeFilter: (edge: DependencyEdge) => edge.attr.type === 'runtime',\n });\n }\n\n private shouldLimitToSeedersOnly() {\n return this.seederIds.length;\n }\n\n private calculateVersionMap(): Map<string, { allVersionNodes: string[]; latestVersionNode: string }> {\n const versionMap: Map<string, { allVersionNodes: string[]; latestVersionNode: string }> = new Map();\n for (const node of this.nodes) {\n const comp = node.attr;\n const compKey = node.id;\n const compFullName = comp.id._legacy.toStringWithoutVersion();\n if (!versionMap.has(compFullName)) {\n versionMap.set(compFullName, {\n allVersionNodes: [compKey],\n latestVersionNode: compKey,\n });\n } else {\n const value = versionMap.get(compFullName);\n if (value) {\n if (Object.prototype.hasOwnProperty.call(value, 'allVersionNodes')) {\n value.allVersionNodes.push(compKey);\n }\n const currentComp = comp;\n const latestComp = this.node(value.latestVersionNode)?.attr;\n // @todo: this check won't work when the component doesn't have head.\n // it happens when a dependency is needed in an old version (not head). which Bit doesn't fetch the head\n // Version object, and as a result, the `Component.head` is empty.\n // for now it's probably good enough because it's used only for `findDuplicateDependencies`, which only\n // checks the components on the workspace.\n if (\n currentComp.head &&\n latestComp?.head &&\n new Date(currentComp.head.timestamp) > new Date(latestComp.head.timestamp)\n ) {\n value.latestVersionNode = compKey;\n }\n }\n }\n }\n return versionMap;\n }\n}\n"],"mappings":"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"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { ComponentID } from '@teambit/component';
|
2
|
+
import { Graph, Node, Edge } from '@teambit/graph.cleargraph';
|
3
|
+
export declare type DepEdgeType = 'prod' | 'dev' | 'ext';
|
4
|
+
declare type ComponentIdNode = Node<ComponentID>;
|
5
|
+
declare type DependencyEdge = Edge<DepEdgeType>;
|
6
|
+
export declare type CompIdGraph = Graph<ComponentID, DepEdgeType>;
|
7
|
+
export declare class ComponentIdGraph extends Graph<ComponentID, DepEdgeType> {
|
8
|
+
seederIds: ComponentID[];
|
9
|
+
constructor(nodes?: ComponentIdNode[], edges?: DependencyEdge[]);
|
10
|
+
protected create(nodes?: ComponentIdNode[], edges?: DependencyEdge[]): this;
|
11
|
+
/**
|
12
|
+
* check all the routes from the sources to targets and return the components found during this traversal.
|
13
|
+
* e.g.
|
14
|
+
* A -> B -> C -> N.
|
15
|
+
* A -> E -> N.
|
16
|
+
* B -> F -> G.
|
17
|
+
* given source: A, targets: N. The results will be: B, C, E
|
18
|
+
*/
|
19
|
+
findIdsFromSourcesToTargets(sources: ComponentID[], targets: ComponentID[]): ComponentID[];
|
20
|
+
/**
|
21
|
+
* overrides the super class to eliminate non-seeders components
|
22
|
+
*/
|
23
|
+
findCycles(graph?: this): string[][];
|
24
|
+
buildFromCleargraph(graph: Graph<ComponentID, DepEdgeType>): ComponentIdGraph;
|
25
|
+
runtimeOnly(componentIds: string[]): this;
|
26
|
+
private shouldLimitToSeedersOnly;
|
27
|
+
}
|
28
|
+
export {};
|
@@ -0,0 +1,96 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
require("core-js/modules/es.array.flat.js");
|
5
|
+
require("core-js/modules/es.array.unscopables.flat.js");
|
6
|
+
require("core-js/modules/es.regexp.exec.js");
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
exports.ComponentIdGraph = void 0;
|
11
|
+
function _defineProperty2() {
|
12
|
+
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
13
|
+
_defineProperty2 = function () {
|
14
|
+
return data;
|
15
|
+
};
|
16
|
+
return data;
|
17
|
+
}
|
18
|
+
function _graph() {
|
19
|
+
const data = require("@teambit/graph.cleargraph");
|
20
|
+
_graph = function () {
|
21
|
+
return data;
|
22
|
+
};
|
23
|
+
return data;
|
24
|
+
}
|
25
|
+
function _lodash() {
|
26
|
+
const data = require("lodash");
|
27
|
+
_lodash = function () {
|
28
|
+
return data;
|
29
|
+
};
|
30
|
+
return data;
|
31
|
+
}
|
32
|
+
class ComponentIdGraph extends _graph().Graph {
|
33
|
+
// component IDs that started the graph. (if from workspace, the .bitmap ids normally)
|
34
|
+
constructor(nodes = [], edges = []) {
|
35
|
+
super(nodes, edges);
|
36
|
+
(0, _defineProperty2().default)(this, "seederIds", []);
|
37
|
+
}
|
38
|
+
create(nodes = [], edges = []) {
|
39
|
+
return new ComponentIdGraph(nodes, edges);
|
40
|
+
}
|
41
|
+
|
42
|
+
/**
|
43
|
+
* check all the routes from the sources to targets and return the components found during this traversal.
|
44
|
+
* e.g.
|
45
|
+
* A -> B -> C -> N.
|
46
|
+
* A -> E -> N.
|
47
|
+
* B -> F -> G.
|
48
|
+
* given source: A, targets: N. The results will be: B, C, E
|
49
|
+
*/
|
50
|
+
findIdsFromSourcesToTargets(sources, targets) {
|
51
|
+
const removeVerFromIdStr = idStr => idStr.split('@')[0];
|
52
|
+
const sourcesStr = sources.map(s => s.toStringWithoutVersion());
|
53
|
+
const targetsStr = targets.map(t => t.toStringWithoutVersion());
|
54
|
+
const allFlattened = sources.map(source => this.successors(source.toString())).flat();
|
55
|
+
const allFlattenedIds = (0, _lodash().uniq)(allFlattened.map(f => f.id));
|
56
|
+
const results = [];
|
57
|
+
allFlattenedIds.forEach(id => {
|
58
|
+
const idWithNoVer = removeVerFromIdStr(id);
|
59
|
+
if (sourcesStr.includes(idWithNoVer) || targetsStr.includes(idWithNoVer)) return;
|
60
|
+
const allSuccessors = this.successors(id);
|
61
|
+
const allSuccessorsWithNoVersion = allSuccessors.map(s => removeVerFromIdStr(s.id));
|
62
|
+
if (allSuccessorsWithNoVersion.find(s => targetsStr.includes(s))) results.push(id);
|
63
|
+
});
|
64
|
+
const componentIds = this.getNodes(results).map(n => n.attr);
|
65
|
+
return componentIds;
|
66
|
+
}
|
67
|
+
|
68
|
+
/**
|
69
|
+
* overrides the super class to eliminate non-seeders components
|
70
|
+
*/
|
71
|
+
findCycles(graph) {
|
72
|
+
const cycles = super.findCycles(graph);
|
73
|
+
if (!this.shouldLimitToSeedersOnly()) {
|
74
|
+
return cycles;
|
75
|
+
}
|
76
|
+
const seederIdsStr = this.seederIds.map(id => id.toString());
|
77
|
+
const cyclesWithSeeders = cycles.filter(cycle => {
|
78
|
+
return cycle.some(cycleIdStr => seederIdsStr.includes(cycleIdStr));
|
79
|
+
});
|
80
|
+
return cyclesWithSeeders;
|
81
|
+
}
|
82
|
+
buildFromCleargraph(graph) {
|
83
|
+
return this.create(graph.nodes, graph.edges);
|
84
|
+
}
|
85
|
+
runtimeOnly(componentIds) {
|
86
|
+
return this.successorsSubgraph(componentIds, {
|
87
|
+
edgeFilter: edge => edge.attr === 'prod'
|
88
|
+
});
|
89
|
+
}
|
90
|
+
shouldLimitToSeedersOnly() {
|
91
|
+
return this.seederIds.length;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
exports.ComponentIdGraph = ComponentIdGraph;
|
95
|
+
|
96
|
+
//# sourceMappingURL=component-id-graph.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["ComponentIdGraph","Graph","constructor","nodes","edges","create","findIdsFromSourcesToTargets","sources","targets","removeVerFromIdStr","idStr","split","sourcesStr","map","s","toStringWithoutVersion","targetsStr","t","allFlattened","source","successors","toString","flat","allFlattenedIds","uniq","f","id","results","forEach","idWithNoVer","includes","allSuccessors","allSuccessorsWithNoVersion","find","push","componentIds","getNodes","n","attr","findCycles","graph","cycles","shouldLimitToSeedersOnly","seederIdsStr","seederIds","cyclesWithSeeders","filter","cycle","some","cycleIdStr","buildFromCleargraph","runtimeOnly","successorsSubgraph","edgeFilter","edge","length"],"sources":["component-id-graph.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { uniq } from 'lodash';\n\nexport type DepEdgeType = 'prod' | 'dev' | 'ext';\n\ntype ComponentIdNode = Node<ComponentID>;\ntype DependencyEdge = Edge<DepEdgeType>;\nexport type CompIdGraph = Graph<ComponentID, DepEdgeType>;\n\nexport class ComponentIdGraph extends Graph<ComponentID, DepEdgeType> {\n seederIds: ComponentID[] = []; // component IDs that started the graph. (if from workspace, the .bitmap ids normally)\n constructor(nodes: ComponentIdNode[] = [], edges: DependencyEdge[] = []) {\n super(nodes, edges);\n }\n\n protected create(nodes: ComponentIdNode[] = [], edges: DependencyEdge[] = []): this {\n return new ComponentIdGraph(nodes, edges) as this;\n }\n\n /**\n * check all the routes from the sources to targets and return the components found during this traversal.\n * e.g.\n * A -> B -> C -> N.\n * A -> E -> N.\n * B -> F -> G.\n * given source: A, targets: N. The results will be: B, C, E\n */\n findIdsFromSourcesToTargets(sources: ComponentID[], targets: ComponentID[]): ComponentID[] {\n const removeVerFromIdStr = (idStr: string) => idStr.split('@')[0];\n const sourcesStr = sources.map((s) => s.toStringWithoutVersion());\n const targetsStr = targets.map((t) => t.toStringWithoutVersion());\n const allFlattened = sources.map((source) => this.successors(source.toString())).flat();\n const allFlattenedIds = uniq(allFlattened.map((f) => f.id));\n const results: string[] = [];\n allFlattenedIds.forEach((id) => {\n const idWithNoVer = removeVerFromIdStr(id);\n if (sourcesStr.includes(idWithNoVer) || targetsStr.includes(idWithNoVer)) return;\n const allSuccessors = this.successors(id);\n const allSuccessorsWithNoVersion = allSuccessors.map((s) => removeVerFromIdStr(s.id));\n if (allSuccessorsWithNoVersion.find((s) => targetsStr.includes(s))) results.push(id);\n });\n const componentIds = this.getNodes(results).map((n) => n.attr);\n\n return componentIds;\n }\n\n /**\n * overrides the super class to eliminate non-seeders components\n */\n findCycles(graph?: this): string[][] {\n const cycles = super.findCycles(graph);\n if (!this.shouldLimitToSeedersOnly()) {\n return cycles;\n }\n const seederIdsStr = this.seederIds.map((id) => id.toString());\n const cyclesWithSeeders = cycles.filter((cycle) => {\n return cycle.some((cycleIdStr) => seederIdsStr.includes(cycleIdStr));\n });\n return cyclesWithSeeders;\n }\n\n buildFromCleargraph(graph: Graph<ComponentID, DepEdgeType>): ComponentIdGraph {\n return this.create(graph.nodes, graph.edges);\n }\n\n runtimeOnly(componentIds: string[]) {\n return this.successorsSubgraph(componentIds, {\n edgeFilter: (edge: DependencyEdge) => edge.attr === 'prod',\n });\n }\n\n private shouldLimitToSeedersOnly() {\n return this.seederIds.length;\n }\n}\n"],"mappings":"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"}
|
package/dist/graph-builder.d.ts
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
import { ComponentFactory, ComponentID, ComponentMain } from '@teambit/component';
|
2
2
|
import { ComponentGraph } from './component-graph';
|
3
|
+
import { ComponentIdGraph } from './component-id-graph';
|
3
4
|
export declare type GetGraphOpts = {
|
4
5
|
host?: ComponentFactory;
|
5
6
|
};
|
6
7
|
export declare class GraphBuilder {
|
7
8
|
private componentAspect;
|
8
9
|
constructor(componentAspect: ComponentMain);
|
10
|
+
/**
|
11
|
+
* important - prefer using `getGraphIds()` it's way better in terms of performance.
|
12
|
+
*/
|
9
13
|
getGraph(ids?: ComponentID[], opts?: GetGraphOpts): Promise<ComponentGraph>;
|
14
|
+
getGraphIds(ids?: ComponentID[], opts?: GetGraphOpts): Promise<ComponentIdGraph>;
|
10
15
|
private toComponentGraph;
|
11
16
|
}
|
package/dist/graph-builder.js
CHANGED
@@ -19,6 +19,13 @@ function _componentGraph() {
|
|
19
19
|
};
|
20
20
|
return data;
|
21
21
|
}
|
22
|
+
function _componentIdGraph() {
|
23
|
+
const data = require("./component-id-graph");
|
24
|
+
_componentIdGraph = function () {
|
25
|
+
return data;
|
26
|
+
};
|
27
|
+
return data;
|
28
|
+
}
|
22
29
|
function _dependency() {
|
23
30
|
const data = require("./model/dependency");
|
24
31
|
_dependency = function () {
|
@@ -30,6 +37,10 @@ class GraphBuilder {
|
|
30
37
|
constructor(componentAspect) {
|
31
38
|
this.componentAspect = componentAspect;
|
32
39
|
}
|
40
|
+
|
41
|
+
/**
|
42
|
+
* important - prefer using `getGraphIds()` it's way better in terms of performance.
|
43
|
+
*/
|
33
44
|
async getGraph(ids, opts = {}) {
|
34
45
|
const componentHost = opts.host || this.componentAspect.getHost();
|
35
46
|
const graph = await componentHost.getGraph(ids, false);
|
@@ -37,6 +48,13 @@ class GraphBuilder {
|
|
37
48
|
componentGraph.seederIds = ids || (await componentHost.listIds());
|
38
49
|
return componentGraph;
|
39
50
|
}
|
51
|
+
async getGraphIds(ids, opts = {}) {
|
52
|
+
const componentHost = opts.host || this.componentAspect.getHost();
|
53
|
+
const graph = await componentHost.getGraphIds(ids, false);
|
54
|
+
const componentIdGraph = new (_componentIdGraph().ComponentIdGraph)(graph.nodes, graph.edges);
|
55
|
+
componentIdGraph.seederIds = ids || (await componentHost.listIds());
|
56
|
+
return componentIdGraph;
|
57
|
+
}
|
40
58
|
async toComponentGraph(graph) {
|
41
59
|
const newGraph = new (_componentGraph().ComponentGraph)();
|
42
60
|
graph.nodes.forEach(node => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["GraphBuilder","constructor","componentAspect","getGraph","ids","opts","componentHost","host","getHost","graph","componentGraph","toComponentGraph","seederIds","listIds","
|
1
|
+
{"version":3,"names":["GraphBuilder","constructor","componentAspect","getGraph","ids","opts","componentHost","host","getHost","graph","componentGraph","toComponentGraph","seederIds","listIds","getGraphIds","componentIdGraph","ComponentIdGraph","nodes","edges","newGraph","ComponentGraph","forEach","node","setNode","edge","edgeObj","attr","Dependency","setEdge","Edge","sourceId","targetId"],"sources":["graph-builder.ts"],"sourcesContent":["import { Component, ComponentFactory, ComponentID, ComponentMain } from '@teambit/component';\nimport { Edge, Graph } from '@teambit/graph.cleargraph';\nimport { ComponentGraph } from './component-graph';\nimport { ComponentIdGraph } from './component-id-graph';\nimport { Dependency } from './model/dependency';\n\nexport type GetGraphOpts = {\n host?: ComponentFactory;\n};\n\nexport class GraphBuilder {\n constructor(private componentAspect: ComponentMain) {}\n\n /**\n * important - prefer using `getGraphIds()` it's way better in terms of performance.\n */\n async getGraph(ids?: ComponentID[], opts: GetGraphOpts = {}): Promise<ComponentGraph> {\n const componentHost = opts.host || this.componentAspect.getHost();\n\n const graph = await componentHost.getGraph(ids, false);\n const componentGraph = await this.toComponentGraph(graph);\n componentGraph.seederIds = ids || (await componentHost.listIds());\n return componentGraph;\n }\n\n async getGraphIds(ids?: ComponentID[], opts: GetGraphOpts = {}): Promise<ComponentIdGraph> {\n const componentHost = opts.host || this.componentAspect.getHost();\n\n const graph = await componentHost.getGraphIds(ids, false);\n const componentIdGraph = new ComponentIdGraph(graph.nodes, graph.edges);\n componentIdGraph.seederIds = ids || (await componentHost.listIds());\n return componentIdGraph;\n }\n\n private async toComponentGraph(graph: Graph<Component, string>): Promise<ComponentGraph> {\n const newGraph = new ComponentGraph();\n graph.nodes.forEach((node) => {\n newGraph.setNode(node);\n });\n graph.edges.forEach((edge) => {\n const edgeObj = edge.attr === 'dependencies' ? new Dependency('runtime') : new Dependency('dev');\n newGraph.setEdge(new Edge(edge.sourceId, edge.targetId, edgeObj));\n });\n return newGraph;\n }\n}\n"],"mappings":";;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMO,MAAMA,YAAY,CAAC;EACxBC,WAAW,CAASC,eAA8B,EAAE;IAAA,KAAhCA,eAA8B,GAA9BA,eAA8B;EAAG;;EAErD;AACF;AACA;EACE,MAAMC,QAAQ,CAACC,GAAmB,EAAEC,IAAkB,GAAG,CAAC,CAAC,EAA2B;IACpF,MAAMC,aAAa,GAAGD,IAAI,CAACE,IAAI,IAAI,IAAI,CAACL,eAAe,CAACM,OAAO,EAAE;IAEjE,MAAMC,KAAK,GAAG,MAAMH,aAAa,CAACH,QAAQ,CAACC,GAAG,EAAE,KAAK,CAAC;IACtD,MAAMM,cAAc,GAAG,MAAM,IAAI,CAACC,gBAAgB,CAACF,KAAK,CAAC;IACzDC,cAAc,CAACE,SAAS,GAAGR,GAAG,KAAK,MAAME,aAAa,CAACO,OAAO,EAAE,CAAC;IACjE,OAAOH,cAAc;EACvB;EAEA,MAAMI,WAAW,CAACV,GAAmB,EAAEC,IAAkB,GAAG,CAAC,CAAC,EAA6B;IACzF,MAAMC,aAAa,GAAGD,IAAI,CAACE,IAAI,IAAI,IAAI,CAACL,eAAe,CAACM,OAAO,EAAE;IAEjE,MAAMC,KAAK,GAAG,MAAMH,aAAa,CAACQ,WAAW,CAACV,GAAG,EAAE,KAAK,CAAC;IACzD,MAAMW,gBAAgB,GAAG,KAAIC,oCAAgB,EAACP,KAAK,CAACQ,KAAK,EAAER,KAAK,CAACS,KAAK,CAAC;IACvEH,gBAAgB,CAACH,SAAS,GAAGR,GAAG,KAAK,MAAME,aAAa,CAACO,OAAO,EAAE,CAAC;IACnE,OAAOE,gBAAgB;EACzB;EAEA,MAAcJ,gBAAgB,CAACF,KAA+B,EAA2B;IACvF,MAAMU,QAAQ,GAAG,KAAIC,gCAAc,GAAE;IACrCX,KAAK,CAACQ,KAAK,CAACI,OAAO,CAAEC,IAAI,IAAK;MAC5BH,QAAQ,CAACI,OAAO,CAACD,IAAI,CAAC;IACxB,CAAC,CAAC;IACFb,KAAK,CAACS,KAAK,CAACG,OAAO,CAAEG,IAAI,IAAK;MAC5B,MAAMC,OAAO,GAAGD,IAAI,CAACE,IAAI,KAAK,cAAc,GAAG,KAAIC,wBAAU,EAAC,SAAS,CAAC,GAAG,KAAIA,wBAAU,EAAC,KAAK,CAAC;MAChGR,QAAQ,CAACS,OAAO,CAAC,KAAIC,aAAI,EAACL,IAAI,CAACM,QAAQ,EAAEN,IAAI,CAACO,QAAQ,EAAEN,OAAO,CAAC,CAAC;IACnE,CAAC,CAAC;IACF,OAAON,QAAQ;EACjB;AACF;AAAC"}
|
@@ -4,11 +4,16 @@ import { GraphqlMain } from '@teambit/graphql';
|
|
4
4
|
import { Logger, LoggerMain } from '@teambit/logger';
|
5
5
|
import { GetGraphOpts } from './graph-builder';
|
6
6
|
import { ComponentGraph } from './component-graph';
|
7
|
+
import { ComponentIdGraph } from './component-id-graph';
|
7
8
|
export declare class GraphMain {
|
8
9
|
private componentAspect;
|
9
10
|
private logger;
|
10
11
|
constructor(componentAspect: ComponentMain, logger: Logger);
|
12
|
+
/**
|
13
|
+
* important - prefer using `getGraphIds()` it's way better in terms of performance.
|
14
|
+
*/
|
11
15
|
getGraph(ids?: ComponentID[], opts?: GetGraphOpts): Promise<ComponentGraph>;
|
16
|
+
getGraphIds(ids?: ComponentID[], opts?: GetGraphOpts): Promise<ComponentIdGraph>;
|
12
17
|
static slots: never[];
|
13
18
|
static dependencies: import("@teambit/harmony").Aspect[];
|
14
19
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
@@ -75,10 +75,18 @@ class GraphMain {
|
|
75
75
|
this.componentAspect = componentAspect;
|
76
76
|
this.logger = logger;
|
77
77
|
}
|
78
|
+
|
79
|
+
/**
|
80
|
+
* important - prefer using `getGraphIds()` it's way better in terms of performance.
|
81
|
+
*/
|
78
82
|
async getGraph(ids, opts = {}) {
|
79
83
|
const graphBuilder = new (_graphBuilder().GraphBuilder)(this.componentAspect);
|
80
84
|
return graphBuilder.getGraph(ids, opts);
|
81
85
|
}
|
86
|
+
async getGraphIds(ids, opts = {}) {
|
87
|
+
const graphBuilder = new (_graphBuilder().GraphBuilder)(this.componentAspect);
|
88
|
+
return graphBuilder.getGraphIds(ids, opts);
|
89
|
+
}
|
82
90
|
static async provider([graphql, componentAspect, cli, loggerMain]) {
|
83
91
|
const logger = loggerMain.createLogger(_graph2().GraphAspect.id);
|
84
92
|
const graphBuilder = new (_graphBuilder().GraphBuilder)(componentAspect);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["GraphMain","constructor","componentAspect","logger","getGraph","ids","opts","graphBuilder","GraphBuilder","provider","graphql","cli","loggerMain","createLogger","GraphAspect","id","register","graphSchema","graphMain","GraphCmd","GraphqlAspect","ComponentAspect","CLIAspect","LoggerAspect","MainRuntime","addRuntime"],"sources":["graph.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ComponentMain, ComponentAspect, ComponentID } from '@teambit/component';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { GetGraphOpts, GraphBuilder } from './graph-builder';\nimport { graphSchema } from './graph.graphql';\nimport { GraphAspect } from './graph.aspect';\nimport { GraphCmd } from './graph-cmd';\nimport { ComponentGraph } from './component-graph';\n\nexport class GraphMain {\n constructor(private componentAspect: ComponentMain, private logger: Logger) {}\n\n async getGraph(ids?: ComponentID[], opts: GetGraphOpts = {}): Promise<ComponentGraph> {\n const graphBuilder = new GraphBuilder(this.componentAspect);\n return graphBuilder.getGraph(ids, opts);\n }\n\n static slots = [];\n static dependencies = [GraphqlAspect, ComponentAspect, CLIAspect, LoggerAspect];\n static runtime = MainRuntime;\n static async provider([graphql, componentAspect, cli, loggerMain]: [\n GraphqlMain,\n ComponentMain,\n CLIMain,\n LoggerMain\n ]) {\n const logger = loggerMain.createLogger(GraphAspect.id);\n\n const graphBuilder = new GraphBuilder(componentAspect);\n graphql.register(graphSchema(graphBuilder, componentAspect));\n\n const graphMain = new GraphMain(componentAspect, logger);\n cli.register(new GraphCmd());\n\n return graphMain;\n }\n}\n\nGraphAspect.addRuntime(GraphMain);\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;
|
1
|
+
{"version":3,"names":["GraphMain","constructor","componentAspect","logger","getGraph","ids","opts","graphBuilder","GraphBuilder","getGraphIds","provider","graphql","cli","loggerMain","createLogger","GraphAspect","id","register","graphSchema","graphMain","GraphCmd","GraphqlAspect","ComponentAspect","CLIAspect","LoggerAspect","MainRuntime","addRuntime"],"sources":["graph.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ComponentMain, ComponentAspect, ComponentID } from '@teambit/component';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { GetGraphOpts, GraphBuilder } from './graph-builder';\nimport { graphSchema } from './graph.graphql';\nimport { GraphAspect } from './graph.aspect';\nimport { GraphCmd } from './graph-cmd';\nimport { ComponentGraph } from './component-graph';\nimport { ComponentIdGraph } from './component-id-graph';\n\nexport class GraphMain {\n constructor(private componentAspect: ComponentMain, private logger: Logger) {}\n\n /**\n * important - prefer using `getGraphIds()` it's way better in terms of performance.\n */\n async getGraph(ids?: ComponentID[], opts: GetGraphOpts = {}): Promise<ComponentGraph> {\n const graphBuilder = new GraphBuilder(this.componentAspect);\n return graphBuilder.getGraph(ids, opts);\n }\n\n async getGraphIds(ids?: ComponentID[], opts: GetGraphOpts = {}): Promise<ComponentIdGraph> {\n const graphBuilder = new GraphBuilder(this.componentAspect);\n return graphBuilder.getGraphIds(ids, opts);\n }\n\n static slots = [];\n static dependencies = [GraphqlAspect, ComponentAspect, CLIAspect, LoggerAspect];\n static runtime = MainRuntime;\n static async provider([graphql, componentAspect, cli, loggerMain]: [\n GraphqlMain,\n ComponentMain,\n CLIMain,\n LoggerMain\n ]) {\n const logger = loggerMain.createLogger(GraphAspect.id);\n\n const graphBuilder = new GraphBuilder(componentAspect);\n graphql.register(graphSchema(graphBuilder, componentAspect));\n\n const graphMain = new GraphMain(componentAspect, logger);\n cli.register(new GraphCmd());\n\n return graphMain;\n }\n}\n\nGraphAspect.addRuntime(GraphMain);\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAIO,MAAMA,SAAS,CAAC;EACrBC,WAAW,CAASC,eAA8B,EAAUC,MAAc,EAAE;IAAA,KAAxDD,eAA8B,GAA9BA,eAA8B;IAAA,KAAUC,MAAc,GAAdA,MAAc;EAAG;;EAE7E;AACF;AACA;EACE,MAAMC,QAAQ,CAACC,GAAmB,EAAEC,IAAkB,GAAG,CAAC,CAAC,EAA2B;IACpF,MAAMC,YAAY,GAAG,KAAIC,4BAAY,EAAC,IAAI,CAACN,eAAe,CAAC;IAC3D,OAAOK,YAAY,CAACH,QAAQ,CAACC,GAAG,EAAEC,IAAI,CAAC;EACzC;EAEA,MAAMG,WAAW,CAACJ,GAAmB,EAAEC,IAAkB,GAAG,CAAC,CAAC,EAA6B;IACzF,MAAMC,YAAY,GAAG,KAAIC,4BAAY,EAAC,IAAI,CAACN,eAAe,CAAC;IAC3D,OAAOK,YAAY,CAACE,WAAW,CAACJ,GAAG,EAAEC,IAAI,CAAC;EAC5C;EAKA,aAAaI,QAAQ,CAAC,CAACC,OAAO,EAAET,eAAe,EAAEU,GAAG,EAAEC,UAAU,CAK/D,EAAE;IACD,MAAMV,MAAM,GAAGU,UAAU,CAACC,YAAY,CAACC,qBAAW,CAACC,EAAE,CAAC;IAEtD,MAAMT,YAAY,GAAG,KAAIC,4BAAY,EAACN,eAAe,CAAC;IACtDS,OAAO,CAACM,QAAQ,CAAC,IAAAC,oBAAW,EAACX,YAAY,EAAEL,eAAe,CAAC,CAAC;IAE5D,MAAMiB,SAAS,GAAG,IAAInB,SAAS,CAACE,eAAe,EAAEC,MAAM,CAAC;IACxDS,GAAG,CAACK,QAAQ,CAAC,KAAIG,oBAAQ,GAAE,CAAC;IAE5B,OAAOD,SAAS;EAClB;AACF;AAAC;AAAA,gCAnCYnB,SAAS,WAgBL,EAAE;AAAA,gCAhBNA,SAAS,kBAiBE,CAACqB,wBAAa,EAAEC,4BAAe,EAAEC,gBAAS,EAAEC,sBAAY,CAAC;AAAA,gCAjBpExB,SAAS,aAkBHyB,kBAAW;AAmB9BV,qBAAW,CAACW,UAAU,CAAC1B,SAAS,CAAC"}
|
package/dist/index.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
export type { ComponentGraph } from './component-graph';
|
2
|
+
export type { CompIdGraph, DepEdgeType } from './component-id-graph';
|
2
3
|
export { DuplicateDependency, VersionSubgraph } from './duplicate-dependency';
|
3
4
|
export { EdgeType } from './edge-type';
|
4
5
|
export type { GraphBuilder } from './graph-builder';
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export type { ComponentGraph } from './component-graph';\nexport { DuplicateDependency, VersionSubgraph } from './duplicate-dependency';\nexport { EdgeType } from './edge-type';\nexport type { GraphBuilder } from './graph-builder';\nexport { GraphAspect as default, GraphAspect } from './graph.aspect';\nexport type { GraphMain } from './graph.main.runtime';\nexport type { ComponentWidget, ComponentWidgetProps, ComponentWidgetSlot, GraphUI } from './graph.ui.runtime';\nexport { Dependency } from './model/dependency';\nexport { GraphFilter } from './model/graph-filters';\nexport { IdGraph, objectListToGraph, bitObjectListToGraph } from './object-list-to-graph';\nexport { DependenciesCompare } from './ui/dependencies-compare';\nexport {\n calcElements,\n calcLayout,\n calcMinimapColors,\n depTypeToClass,\n depTypeToLabel,\n styles as dependenciesGraphStyles,\n} from './ui/dependencies-graph';\nexport { GraphFilters, styles as graphPageStyles } from './ui/graph-page';\nexport { EdgeModel, GraphModel, NodeModel, RawGraph, useGraph, useGraphQuery } from './ui/query';\nexport { styles as componentNodeStyles, root, defaultNode, external } from './ui/component-node';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export type { ComponentGraph } from './component-graph';\nexport type { CompIdGraph, DepEdgeType } from './component-id-graph';\nexport { DuplicateDependency, VersionSubgraph } from './duplicate-dependency';\nexport { EdgeType } from './edge-type';\nexport type { GraphBuilder } from './graph-builder';\nexport { GraphAspect as default, GraphAspect } from './graph.aspect';\nexport type { GraphMain } from './graph.main.runtime';\nexport type { ComponentWidget, ComponentWidgetProps, ComponentWidgetSlot, GraphUI } from './graph.ui.runtime';\nexport { Dependency } from './model/dependency';\nexport { GraphFilter } from './model/graph-filters';\nexport { IdGraph, objectListToGraph, bitObjectListToGraph } from './object-list-to-graph';\nexport { DependenciesCompare } from './ui/dependencies-compare';\nexport {\n calcElements,\n calcLayout,\n calcMinimapColors,\n depTypeToClass,\n depTypeToLabel,\n styles as dependenciesGraphStyles,\n} from './ui/dependencies-graph';\nexport { GraphFilters, styles as graphPageStyles } from './ui/graph-page';\nexport { EdgeModel, GraphModel, NodeModel, RawGraph, useGraph, useGraphQuery } from './ui/query';\nexport { styles as componentNodeStyles, root, defaultNode, external } from './ui/component-node';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAQA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
|
Binary file
|
package/package.json
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/graph",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.919",
|
4
4
|
"homepage": "https://bit.dev/teambit/component/graph",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.component",
|
8
8
|
"name": "graph",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.919"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
|
+
"lodash": "4.17.21",
|
12
13
|
"chalk": "2.4.2",
|
13
14
|
"graphlib": "2.1.8",
|
14
15
|
"graphql-tag": "2.12.1",
|
15
|
-
"lodash": "4.17.21",
|
16
16
|
"classnames": "2.2.6",
|
17
17
|
"react-flow-renderer": "8.3.7",
|
18
|
-
"semver": "7.3.4",
|
19
18
|
"dagre": "0.8.5",
|
19
|
+
"semver": "7.3.4",
|
20
20
|
"@babel/runtime": "7.20.0",
|
21
21
|
"core-js": "^3.0.0",
|
22
22
|
"@teambit/graph.cleargraph": "0.0.1",
|
@@ -26,18 +26,18 @@
|
|
26
26
|
"@teambit/base-ui.text.muted-text": "1.0.1",
|
27
27
|
"@teambit/evangelist.input.checkbox.label": "1.0.3",
|
28
28
|
"@teambit/documenter.ui.heading": "4.1.1",
|
29
|
-
"@teambit/component": "0.0.
|
30
|
-
"@teambit/cli": "0.0.
|
29
|
+
"@teambit/component": "0.0.919",
|
30
|
+
"@teambit/cli": "0.0.615",
|
31
31
|
"@teambit/legacy-bit-id": "0.0.421",
|
32
|
-
"@teambit/graphql": "0.0.
|
33
|
-
"@teambit/logger": "0.0.
|
34
|
-
"@teambit/component-compare": "0.0.
|
35
|
-
"@teambit/ui": "0.0.
|
32
|
+
"@teambit/graphql": "0.0.919",
|
33
|
+
"@teambit/logger": "0.0.708",
|
34
|
+
"@teambit/component-compare": "0.0.167",
|
35
|
+
"@teambit/ui": "0.0.919",
|
36
36
|
"@teambit/component.modules.component-url": "0.0.148",
|
37
37
|
"@teambit/component.ui.deprecation-icon": "0.0.501",
|
38
38
|
"@teambit/design.ui.styles.ellipsis": "0.0.355",
|
39
39
|
"@teambit/envs.ui.env-icon": "0.0.493",
|
40
|
-
"@teambit/component.ui.compare": "0.0.
|
40
|
+
"@teambit/component.ui.compare": "0.0.133",
|
41
41
|
"@teambit/design.ui.round-loader": "0.0.353",
|
42
42
|
"@teambit/design.ui.pages.not-found": "0.0.364",
|
43
43
|
"@teambit/design.ui.pages.server-error": "0.0.364",
|
@@ -46,12 +46,12 @@
|
|
46
46
|
"@teambit/ui-foundation.ui.react-router.use-query": "0.0.494"
|
47
47
|
},
|
48
48
|
"devDependencies": {
|
49
|
+
"@types/lodash": "4.14.165",
|
49
50
|
"@types/graphlib": "2.1.7",
|
50
51
|
"@types/react": "^17.0.8",
|
51
|
-
"@types/lodash": "4.14.165",
|
52
52
|
"@types/classnames": "2.2.11",
|
53
|
-
"@types/semver": "7.3.4",
|
54
53
|
"@types/dagre": "0.7.44",
|
54
|
+
"@types/semver": "7.3.4",
|
55
55
|
"@types/mocha": "9.1.0",
|
56
56
|
"@types/testing-library__jest-dom": "5.9.5",
|
57
57
|
"@types/jest": "^26.0.0",
|
@@ -60,7 +60,7 @@
|
|
60
60
|
},
|
61
61
|
"peerDependencies": {
|
62
62
|
"@apollo/client": "^3.6.0",
|
63
|
-
"@teambit/legacy": "1.0.
|
63
|
+
"@teambit/legacy": "1.0.396",
|
64
64
|
"react-dom": "^16.8.0 || ^17.0.0",
|
65
65
|
"react": "^16.8.0 || ^17.0.0"
|
66
66
|
},
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_graph@0.0.
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_graph@0.0.
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_graph@0.0.919/dist/graph.composition.js';
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_graph@0.0.919/dist/graph.docs.md';
|
3
3
|
|
4
4
|
export const compositions = [compositions_0];
|
5
5
|
export const overview = [overview_0];
|
Binary file
|