@teambit/graph 1.0.679 → 1.0.680

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.
@@ -23,6 +23,11 @@ export declare class GraphCmd implements Command {
23
23
  constructor(componentAspect: ComponentMain, graph: GraphMain);
24
24
  report([id]: [string], graphOpts: GraphOpt): Promise<string>;
25
25
  json([id]: [string], graphOpts: GraphOpt): Promise<any>;
26
+ /**
27
+ *
28
+ * @returns Workspace if it exists, otherwise undefined.
29
+ * the reason to not add it here as a type is to avoid circular dependency issues.
30
+ */
26
31
  private getWorkspaceIfExist;
27
32
  private generateGraphFromRemote;
28
33
  }
package/dist/graph-cmd.js CHANGED
@@ -118,6 +118,12 @@ class GraphCmd {
118
118
  const graph = await this.generateGraphFromRemote(remote, id);
119
119
  return _graphlib().default.json.write(graph);
120
120
  }
121
+
122
+ /**
123
+ *
124
+ * @returns Workspace if it exists, otherwise undefined.
125
+ * the reason to not add it here as a type is to avoid circular dependency issues.
126
+ */
121
127
  getWorkspaceIfExist() {
122
128
  try {
123
129
  return this.componentAspect.getHost('teambit.workspace/workspace');
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_graphlib","_componentId","_legacy","_scope","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","GraphCmd","constructor","componentAspect","graph","report","id","graphOpts","remote","layout","png","includeLocalOnly","includeDependencies","host","getHost","getVisualGraph","config","generateGraphFromRemote","VisualDependencyGraph","loadFromGraphlib","compId","resolveComponentId","undefined","compIds","modifiedOpts","getVisualGraphIds","visualDependencyGraph","result","render","chalk","green","json","shouldIncludeLocalOnly","getGraphIds","filteredGraph","list","listIds","listStr","map","toString","successorsSubgraph","nodeFilter","node","includes","edgeFilter","edge","targetId","sourceId","jsonGraph","toJson","nodes","GraphLib","write","getWorkspaceIfExist","workspace","ComponentID","fromString","scopeName","scope","remoteScope","getRemoteByName","consumer","componentDepGraph","Error","exports"],"sources":["graph-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport GraphLib from 'graphlib';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { ComponentID } from '@teambit/component-id';\nimport type { GraphConfig } from '@teambit/legacy.dependency-graph';\nimport { VisualDependencyGraph } from '@teambit/legacy.dependency-graph';\nimport { getRemoteByName } from '@teambit/scope.remotes';\nimport type { ComponentMain } from '@teambit/component';\nimport type { Workspace } from '@teambit/workspace';\nimport type { GraphMain } from './graph.main.runtime';\n\nexport type GraphOpt = {\n remote?: string;\n layout?: string;\n cycles?: boolean;\n png?: boolean;\n json?: boolean;\n includeLocalOnly?: boolean;\n includeDependencies?: boolean;\n};\n\nexport class GraphCmd implements Command {\n name = 'graph [id]';\n description = \"generate an SVG image file with the components' dependencies graph\";\n extendedDescription: 'black arrow is a runtime dependency. red arrow is either dev or peer';\n group = 'info-analysis';\n alias = '';\n options = [\n ['r', 'remote [remoteName]', 'remote name (name is optional, leave empty when id is specified)'],\n [\n '',\n 'layout <name>',\n 'GraphVis layout. default to \"dot\". options are [circo, dot, fdp, neato, osage, patchwork, sfdp, twopi]',\n ],\n ['', 'png', 'save the graph as a png file instead of svg. requires \"graphviz\" to be installed'],\n ['', 'cycles', 'generate a graph of cycles only'],\n [\n '',\n 'include-local-only',\n 'DEPRECATED: include only the components in the workspace (or local scope). This is now the default behavior.',\n ],\n [\n '',\n 'include-dependencies',\n 'include all dependencies recursively, not just workspace (or local scope) components',\n ],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n remoteOp = true;\n\n constructor(\n private componentAspect: ComponentMain,\n private graph: GraphMain\n ) {}\n\n async report([id]: [string], graphOpts: GraphOpt): Promise<string> {\n const { remote, layout, png, includeLocalOnly, includeDependencies } = graphOpts;\n const host = this.componentAspect.getHost();\n\n const getVisualGraph = async (): Promise<VisualDependencyGraph> => {\n if (remote) {\n const config: GraphConfig = {};\n if (layout) config.layout = layout;\n const graph = await this.generateGraphFromRemote(remote, id);\n return VisualDependencyGraph.loadFromGraphlib(graph, config);\n }\n const compId = id ? await host.resolveComponentId(id) : undefined;\n const compIds = compId ? [compId] : undefined;\n\n // New logic: local-only is now the default behavior\n // includeDependencies flag overrides this to show all dependencies\n const modifiedOpts = {\n ...graphOpts,\n includeLocalOnly: includeDependencies ? false : includeLocalOnly !== false, // true by default unless includeDependencies is used\n };\n\n return this.graph.getVisualGraphIds(compIds, modifiedOpts);\n };\n\n const visualDependencyGraph = await getVisualGraph();\n const result = await visualDependencyGraph.render(png ? 'png' : 'svg');\n\n return chalk.green(`image created at ${result}`);\n }\n\n async json([id]: [string], graphOpts: GraphOpt) {\n const { remote, includeLocalOnly, includeDependencies } = graphOpts;\n const host = this.componentAspect.getHost();\n if (!remote) {\n // For JSON output, we need to manually filter if needed\n // Since getGraphIds doesn't accept the same options as getVisualGraphIds\n const shouldIncludeLocalOnly = includeDependencies ? false : includeLocalOnly !== false;\n\n const graph = await this.graph.getGraphIds(id ? [await host.resolveComponentId(id)] : undefined);\n\n let filteredGraph = graph;\n if (shouldIncludeLocalOnly) {\n // Filter to only include local components\n const list = await host.listIds();\n const listStr = list.map((compId) => compId.toString());\n filteredGraph = graph.successorsSubgraph(listStr, {\n nodeFilter: (node) => listStr.includes(node.id),\n edgeFilter: (edge) => listStr.includes(edge.targetId) && listStr.includes(edge.sourceId),\n });\n }\n\n const jsonGraph = filteredGraph.toJson();\n if (jsonGraph.nodes) {\n jsonGraph.nodes = jsonGraph.nodes.map((node) => node.id);\n }\n return jsonGraph;\n }\n const graph = await this.generateGraphFromRemote(remote!, id);\n return GraphLib.json.write(graph);\n }\n\n private getWorkspaceIfExist(): Workspace | undefined {\n try {\n return this.componentAspect.getHost('teambit.workspace/workspace') as Workspace | undefined;\n } catch {\n return undefined;\n }\n }\n\n private async generateGraphFromRemote(remote: string | boolean, id?: string): Promise<GraphLib.Graph> {\n const workspace = this.getWorkspaceIfExist();\n const compId = id ? ComponentID.fromString(id) : undefined;\n if (compId) {\n const scopeName: string = typeof remote === 'string' ? remote : compId.scope;\n const remoteScope = await getRemoteByName(scopeName, workspace?.consumer);\n const componentDepGraph = await remoteScope.graph(compId);\n return componentDepGraph.graph;\n }\n if (typeof remote !== 'string') {\n throw new Error('please specify remote scope name or enter an id');\n }\n const remoteScope = await getRemoteByName(remote, workspace?.consumer);\n const componentDepGraph = await remoteScope.graph();\n return componentDepGraph.graph;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_graphlib","_componentId","_legacy","_scope","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","GraphCmd","constructor","componentAspect","graph","report","id","graphOpts","remote","layout","png","includeLocalOnly","includeDependencies","host","getHost","getVisualGraph","config","generateGraphFromRemote","VisualDependencyGraph","loadFromGraphlib","compId","resolveComponentId","undefined","compIds","modifiedOpts","getVisualGraphIds","visualDependencyGraph","result","render","chalk","green","json","shouldIncludeLocalOnly","getGraphIds","filteredGraph","list","listIds","listStr","map","toString","successorsSubgraph","nodeFilter","node","includes","edgeFilter","edge","targetId","sourceId","jsonGraph","toJson","nodes","GraphLib","write","getWorkspaceIfExist","workspace","ComponentID","fromString","scopeName","scope","remoteScope","getRemoteByName","consumer","componentDepGraph","Error","exports"],"sources":["graph-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport GraphLib from 'graphlib';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { ComponentID } from '@teambit/component-id';\nimport type { GraphConfig } from '@teambit/legacy.dependency-graph';\nimport { VisualDependencyGraph } from '@teambit/legacy.dependency-graph';\nimport { getRemoteByName } from '@teambit/scope.remotes';\nimport type { ComponentMain } from '@teambit/component';\nimport type { GraphMain } from './graph.main.runtime';\n\nexport type GraphOpt = {\n remote?: string;\n layout?: string;\n cycles?: boolean;\n png?: boolean;\n json?: boolean;\n includeLocalOnly?: boolean;\n includeDependencies?: boolean;\n};\n\nexport class GraphCmd implements Command {\n name = 'graph [id]';\n description = \"generate an SVG image file with the components' dependencies graph\";\n extendedDescription: 'black arrow is a runtime dependency. red arrow is either dev or peer';\n group = 'info-analysis';\n alias = '';\n options = [\n ['r', 'remote [remoteName]', 'remote name (name is optional, leave empty when id is specified)'],\n [\n '',\n 'layout <name>',\n 'GraphVis layout. default to \"dot\". options are [circo, dot, fdp, neato, osage, patchwork, sfdp, twopi]',\n ],\n ['', 'png', 'save the graph as a png file instead of svg. requires \"graphviz\" to be installed'],\n ['', 'cycles', 'generate a graph of cycles only'],\n [\n '',\n 'include-local-only',\n 'DEPRECATED: include only the components in the workspace (or local scope). This is now the default behavior.',\n ],\n [\n '',\n 'include-dependencies',\n 'include all dependencies recursively, not just workspace (or local scope) components',\n ],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n remoteOp = true;\n\n constructor(\n private componentAspect: ComponentMain,\n private graph: GraphMain\n ) {}\n\n async report([id]: [string], graphOpts: GraphOpt): Promise<string> {\n const { remote, layout, png, includeLocalOnly, includeDependencies } = graphOpts;\n const host = this.componentAspect.getHost();\n\n const getVisualGraph = async (): Promise<VisualDependencyGraph> => {\n if (remote) {\n const config: GraphConfig = {};\n if (layout) config.layout = layout;\n const graph = await this.generateGraphFromRemote(remote, id);\n return VisualDependencyGraph.loadFromGraphlib(graph, config);\n }\n const compId = id ? await host.resolveComponentId(id) : undefined;\n const compIds = compId ? [compId] : undefined;\n\n // New logic: local-only is now the default behavior\n // includeDependencies flag overrides this to show all dependencies\n const modifiedOpts = {\n ...graphOpts,\n includeLocalOnly: includeDependencies ? false : includeLocalOnly !== false, // true by default unless includeDependencies is used\n };\n\n return this.graph.getVisualGraphIds(compIds, modifiedOpts);\n };\n\n const visualDependencyGraph = await getVisualGraph();\n const result = await visualDependencyGraph.render(png ? 'png' : 'svg');\n\n return chalk.green(`image created at ${result}`);\n }\n\n async json([id]: [string], graphOpts: GraphOpt) {\n const { remote, includeLocalOnly, includeDependencies } = graphOpts;\n const host = this.componentAspect.getHost();\n if (!remote) {\n // For JSON output, we need to manually filter if needed\n // Since getGraphIds doesn't accept the same options as getVisualGraphIds\n const shouldIncludeLocalOnly = includeDependencies ? false : includeLocalOnly !== false;\n\n const graph = await this.graph.getGraphIds(id ? [await host.resolveComponentId(id)] : undefined);\n\n let filteredGraph = graph;\n if (shouldIncludeLocalOnly) {\n // Filter to only include local components\n const list = await host.listIds();\n const listStr = list.map((compId) => compId.toString());\n filteredGraph = graph.successorsSubgraph(listStr, {\n nodeFilter: (node) => listStr.includes(node.id),\n edgeFilter: (edge) => listStr.includes(edge.targetId) && listStr.includes(edge.sourceId),\n });\n }\n\n const jsonGraph = filteredGraph.toJson();\n if (jsonGraph.nodes) {\n jsonGraph.nodes = jsonGraph.nodes.map((node) => node.id);\n }\n return jsonGraph;\n }\n const graph = await this.generateGraphFromRemote(remote!, id);\n return GraphLib.json.write(graph);\n }\n\n /**\n *\n * @returns Workspace if it exists, otherwise undefined.\n * the reason to not add it here as a type is to avoid circular dependency issues.\n */\n private getWorkspaceIfExist(): any {\n try {\n return this.componentAspect.getHost('teambit.workspace/workspace');\n } catch {\n return undefined;\n }\n }\n\n private async generateGraphFromRemote(remote: string | boolean, id?: string): Promise<GraphLib.Graph> {\n const workspace = this.getWorkspaceIfExist();\n const compId = id ? ComponentID.fromString(id) : undefined;\n if (compId) {\n const scopeName: string = typeof remote === 'string' ? remote : compId.scope;\n const remoteScope = await getRemoteByName(scopeName, workspace?.consumer);\n const componentDepGraph = await remoteScope.graph(compId);\n return componentDepGraph.graph;\n }\n if (typeof remote !== 'string') {\n throw new Error('please specify remote scope name or enter an id');\n }\n const remoteScope = await getRemoteByName(remote, workspace?.consumer);\n const componentDepGraph = await remoteScope.graph();\n return componentDepGraph.graph;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_graph@1.0.679/dist/graph.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_graph@1.0.679/dist/graph.docs.md';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_graph@1.0.680/dist/graph.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_graph@1.0.680/dist/graph.docs.md';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/graph",
3
- "version": "1.0.679",
3
+ "version": "1.0.680",
4
4
  "homepage": "https://bit.cloud/teambit/component/graph",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "graph",
9
- "version": "1.0.679"
9
+ "version": "1.0.680"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphlib": "2.1.8",
@@ -15,13 +15,17 @@
15
15
  "graphql-tag": "2.12.1",
16
16
  "classnames": "2.2.6",
17
17
  "reactflow": "^11.11.3",
18
- "@dagrejs/dagre": "^1.1.2",
19
18
  "semver": "7.7.1",
19
+ "@dagrejs/dagre": "^1.1.2",
20
20
  "@teambit/component-id": "1.2.4",
21
21
  "@teambit/graph.cleargraph": "0.0.11",
22
+ "@teambit/legacy.dependency-graph": "0.0.65",
23
+ "@teambit/cli": "0.0.1252",
24
+ "@teambit/scope.remotes": "0.0.62",
22
25
  "@teambit/harmony": "0.4.7",
23
26
  "@teambit/component.ui.component-compare.models.component-compare-change-type": "0.0.7",
24
27
  "@teambit/component.ui.component-compare.models.component-compare-props": "0.0.122",
28
+ "@teambit/logger": "0.0.1345",
25
29
  "@teambit/base-ui.routing.nav-link": "1.0.4",
26
30
  "@teambit/base-ui.surfaces.card": "1.0.1",
27
31
  "@teambit/base-ui.text.muted-text": "1.0.1",
@@ -29,23 +33,18 @@
29
33
  "@teambit/component.ui.deprecation-icon": "0.0.509",
30
34
  "@teambit/design.ui.styles.ellipsis": "0.0.357",
31
35
  "@teambit/envs.ui.env-icon": "0.0.507",
36
+ "@teambit/component.ui.component-compare.context": "0.0.124",
37
+ "@teambit/design.ui.round-loader": "0.0.355",
38
+ "@teambit/component.ui.component-compare.status-resolver": "0.0.9",
32
39
  "@teambit/evangelist.input.checkbox.label": "1.1.0",
33
40
  "@teambit/design.skeletons.base-skeleton": "0.0.2",
34
41
  "@teambit/design.ui.pages.not-found": "0.0.371",
35
42
  "@teambit/design.ui.pages.server-error": "0.0.368",
36
- "@teambit/component.ui.component-compare.context": "0.0.124",
37
- "@teambit/design.ui.round-loader": "0.0.355",
38
- "@teambit/component.ui.component-compare.status-resolver": "0.0.9",
39
43
  "@teambit/ui-foundation.ui.react-router.use-query": "0.0.505",
40
- "@teambit/legacy.dependency-graph": "0.0.65",
41
- "@teambit/component": "1.0.679",
42
- "@teambit/cli": "0.0.1252",
43
- "@teambit/scope.remotes": "0.0.62",
44
- "@teambit/workspace": "1.0.679",
45
- "@teambit/graphql": "1.0.679",
46
- "@teambit/logger": "0.0.1345",
47
- "@teambit/component-compare": "1.0.679",
48
- "@teambit/ui": "1.0.679"
44
+ "@teambit/component": "1.0.680",
45
+ "@teambit/graphql": "1.0.680",
46
+ "@teambit/component-compare": "1.0.680",
47
+ "@teambit/ui": "1.0.680"
49
48
  },
50
49
  "devDependencies": {
51
50
  "@types/graphlib": "2.1.7",