dependency-cruiser 13.1.3 → 13.1.4
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dependency-cruiser",
|
|
3
|
-
"version": "13.1.
|
|
3
|
+
"version": "13.1.4",
|
|
4
4
|
"description": "Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"static analysis",
|
|
@@ -159,7 +159,6 @@
|
|
|
159
159
|
"enhanced-resolve": "5.15.0",
|
|
160
160
|
"figures": "5.0.0",
|
|
161
161
|
"glob": "10.3.3",
|
|
162
|
-
"handlebars": "4.7.8",
|
|
163
162
|
"ignore": "5.2.4",
|
|
164
163
|
"indent-string": "5.0.0",
|
|
165
164
|
"interpret": "^3.1.1",
|
|
@@ -180,12 +179,12 @@
|
|
|
180
179
|
"@babel/core": "7.22.10",
|
|
181
180
|
"@babel/plugin-transform-modules-commonjs": "7.22.5",
|
|
182
181
|
"@babel/preset-typescript": "7.22.5",
|
|
183
|
-
"@swc/core": "1.3.
|
|
182
|
+
"@swc/core": "1.3.78",
|
|
184
183
|
"@types/lodash": "4.14.197",
|
|
185
|
-
"@types/node": "20.
|
|
184
|
+
"@types/node": "20.5.1",
|
|
186
185
|
"@types/prompts": "2.4.4",
|
|
187
|
-
"@typescript-eslint/eslint-plugin": "6.
|
|
188
|
-
"@typescript-eslint/parser": "6.
|
|
186
|
+
"@typescript-eslint/eslint-plugin": "6.4.0",
|
|
187
|
+
"@typescript-eslint/parser": "6.4.0",
|
|
189
188
|
"@vue/compiler-sfc": "3.3.4",
|
|
190
189
|
"c8": "8.0.1",
|
|
191
190
|
"coffeescript": "2.7.0",
|
|
@@ -194,18 +193,18 @@
|
|
|
194
193
|
"eslint-config-prettier": "9.0.0",
|
|
195
194
|
"eslint-plugin-budapestian": "5.0.1",
|
|
196
195
|
"eslint-plugin-eslint-comments": "3.2.0",
|
|
197
|
-
"eslint-plugin-import": "2.28.
|
|
196
|
+
"eslint-plugin-import": "2.28.1",
|
|
198
197
|
"eslint-plugin-mocha": "10.1.0",
|
|
199
198
|
"eslint-plugin-node": "11.1.0",
|
|
200
199
|
"eslint-plugin-security": "1.7.1",
|
|
201
200
|
"eslint-plugin-unicorn": "^48.0.1",
|
|
202
201
|
"husky": "8.0.3",
|
|
203
202
|
"intercept-stdout": "0.1.2",
|
|
204
|
-
"lint-staged": "
|
|
203
|
+
"lint-staged": "14.0.0",
|
|
205
204
|
"mocha": "10.2.0",
|
|
206
205
|
"normalize-newline": "4.1.0",
|
|
207
206
|
"npm-run-all": "4.1.5",
|
|
208
|
-
"prettier": "3.0.
|
|
207
|
+
"prettier": "3.0.2",
|
|
209
208
|
"proxyquire": "2.1.3",
|
|
210
209
|
"shx": "0.3.4",
|
|
211
210
|
"svelte": "3.59.1",
|
|
@@ -99,7 +99,7 @@ function buildWebpackConfigAttribute(pInitOptions) {
|
|
|
99
99
|
// env: {},
|
|
100
100
|
// arguments: {}
|
|
101
101
|
},`
|
|
102
|
-
: `// webpackConfig: {
|
|
102
|
+
: `// webpackConfig: {
|
|
103
103
|
// fileName: 'webpack.config.js',
|
|
104
104
|
// env: {},
|
|
105
105
|
// arguments: {}
|
|
@@ -136,8 +136,8 @@ function buildExtensionsAttribute(pInitOptions) {
|
|
|
136
136
|
*/
|
|
137
137
|
function buildMainFieldsAttribute(pInitOptions) {
|
|
138
138
|
return pInitOptions.usesTypeScript
|
|
139
|
-
? `mainFields: ["main", "types"],`
|
|
140
|
-
: `// mainFields: ["main", "types"],`;
|
|
139
|
+
? `mainFields: ["main", "types", "typings"],`
|
|
140
|
+
: `// mainFields: ["main", "types", "typings"],`;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
/**
|
package/src/meta.js
CHANGED
package/src/report/dot/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable prefer-template */
|
|
2
2
|
import get from "lodash/get.js";
|
|
3
3
|
import { applyFilters } from "../../graph-utl/filter-bank.mjs";
|
|
4
4
|
import theming from "./theming.mjs";
|
|
@@ -7,7 +7,8 @@ import prepareFolderLevel from "./prepare-folder-level.mjs";
|
|
|
7
7
|
import prepareCustomLevel from "./prepare-custom-level.mjs";
|
|
8
8
|
import prepareFlatLevel from "./prepare-flat-level.mjs";
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
// not importing EOL from "node:os" so output is the same on windows and unices
|
|
11
|
+
const EOL = "\n";
|
|
11
12
|
|
|
12
13
|
const GRANULARITY2FUNCTION = new Map([
|
|
13
14
|
["module", prepareCustomLevel],
|
|
@@ -16,10 +17,108 @@ const GRANULARITY2FUNCTION = new Map([
|
|
|
16
17
|
["flat", prepareFlatLevel],
|
|
17
18
|
]);
|
|
18
19
|
|
|
20
|
+
const GRANULARITY2REPORTER_OPTIONS = new Map([
|
|
21
|
+
["module", "summary.optionsUsed.reporterOptions.dot"],
|
|
22
|
+
["folder", "summary.optionsUsed.reporterOptions.ddot"],
|
|
23
|
+
["custom", "summary.optionsUsed.reporterOptions.archi"],
|
|
24
|
+
["flat", "summary.optionsUsed.reporterOptions.flat"],
|
|
25
|
+
]);
|
|
26
|
+
|
|
27
|
+
function buildGraphAttributes(pGraph) {
|
|
28
|
+
return Boolean(pGraph)
|
|
29
|
+
? ` ${moduleUtl.attributizeObject(pGraph || {})}`
|
|
30
|
+
: "";
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function buildNodeAttributes(pNode) {
|
|
34
|
+
return Boolean(pNode)
|
|
35
|
+
? ` node [${moduleUtl.attributizeObject(pNode || {})}]`
|
|
36
|
+
: "";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function buildEdgeAttributes(pEdge) {
|
|
40
|
+
return Boolean(pEdge)
|
|
41
|
+
? ` edge [${moduleUtl.attributizeObject(pEdge || {})}]`
|
|
42
|
+
: "";
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function buildGeneralAttributes(pTheme) {
|
|
46
|
+
return (
|
|
47
|
+
buildGraphAttributes(pTheme.graph) +
|
|
48
|
+
EOL +
|
|
49
|
+
buildNodeAttributes(pTheme.node) +
|
|
50
|
+
EOL +
|
|
51
|
+
buildEdgeAttributes(pTheme.edge) +
|
|
52
|
+
EOL
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function buildSingleFlatModule(pModule) {
|
|
57
|
+
return `"${pModule.source}" [label=${pModule.label} tooltip="${
|
|
58
|
+
pModule.tooltip
|
|
59
|
+
}" ${pModule.URL ? 'URL="' + pModule.URL + '" ' : ""}${
|
|
60
|
+
pModule.themeAttrs ?? ""
|
|
61
|
+
}]`;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function buildSinglePath(pClustersHaveOwnNode) {
|
|
65
|
+
return (pPath) => {
|
|
66
|
+
let lReturnValue = `subgraph "cluster_${pPath.aggregateSnippet}" {label="${pPath.snippet}"`;
|
|
67
|
+
if (pClustersHaveOwnNode) {
|
|
68
|
+
lReturnValue += ` "${pPath.aggregateSnippet}" [width="0.05" shape="point" style="invis"]`;
|
|
69
|
+
}
|
|
70
|
+
return lReturnValue;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function buildModuleHierarchy(pModule, pClustersHaveOwnNode) {
|
|
75
|
+
return (
|
|
76
|
+
pModule.path.map(buildSinglePath(pClustersHaveOwnNode)).join(" ") +
|
|
77
|
+
" " +
|
|
78
|
+
buildSingleFlatModule(pModule) +
|
|
79
|
+
" }".repeat(pModule.path.length)
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function buildDependency(pModuleSource) {
|
|
84
|
+
return (pDependency) => {
|
|
85
|
+
let lReturnValue = ` "${pModuleSource}" -> "${pDependency.resolved}"`;
|
|
86
|
+
if (pDependency.hasExtraAttributes) {
|
|
87
|
+
lReturnValue +=
|
|
88
|
+
" [" +
|
|
89
|
+
(pDependency?.rule?.name
|
|
90
|
+
? `xlabel="${pDependency.rule.name}" tooltip="${pDependency.rule.name}" `
|
|
91
|
+
: "") +
|
|
92
|
+
(pDependency?.themeAttrs ?? "") +
|
|
93
|
+
"]";
|
|
94
|
+
}
|
|
95
|
+
return lReturnValue;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function buildModule(pClustersHaveOwnNode) {
|
|
100
|
+
return (pModule) => {
|
|
101
|
+
let lReturnValue = pModule.folder
|
|
102
|
+
? ` ${buildModuleHierarchy(pModule, pClustersHaveOwnNode)}`
|
|
103
|
+
: ` ${buildSingleFlatModule(pModule)}`;
|
|
104
|
+
if (pModule.dependencies && pModule.dependencies.length > 0) {
|
|
105
|
+
lReturnValue +=
|
|
106
|
+
EOL +
|
|
107
|
+
pModule.dependencies.map(buildDependency(pModule.source)).join(EOL);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return lReturnValue;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function buildModules(pModules, pClustersHaveOwnNode) {
|
|
115
|
+
return pModules.map(buildModule(pClustersHaveOwnNode)).join(EOL);
|
|
116
|
+
}
|
|
117
|
+
|
|
19
118
|
function report(
|
|
20
119
|
pResults,
|
|
21
120
|
pGranularity,
|
|
22
|
-
{ theme, collapsePattern, filters, showMetrics }
|
|
121
|
+
{ theme, collapsePattern, filters, showMetrics },
|
|
23
122
|
) {
|
|
24
123
|
const lTheme = theming.normalizeTheme(theme);
|
|
25
124
|
const lResults = filters
|
|
@@ -29,62 +128,59 @@ function report(
|
|
|
29
128
|
}
|
|
30
129
|
: pResults;
|
|
31
130
|
|
|
32
|
-
return
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
131
|
+
return (
|
|
132
|
+
'strict digraph "dependency-cruiser output"{' +
|
|
133
|
+
EOL +
|
|
134
|
+
buildGeneralAttributes(lTheme) +
|
|
135
|
+
EOL +
|
|
136
|
+
buildModules(
|
|
137
|
+
(GRANULARITY2FUNCTION.get(pGranularity) || prepareCustomLevel)(
|
|
138
|
+
lResults,
|
|
139
|
+
lTheme,
|
|
140
|
+
collapsePattern,
|
|
141
|
+
showMetrics,
|
|
142
|
+
),
|
|
143
|
+
pGranularity === "folder",
|
|
144
|
+
) +
|
|
145
|
+
EOL +
|
|
146
|
+
`}${EOL}`
|
|
147
|
+
);
|
|
45
148
|
}
|
|
46
149
|
|
|
47
|
-
const GRANULARITY2REPORTER_OPTIONS = new Map([
|
|
48
|
-
["module", "summary.optionsUsed.reporterOptions.dot"],
|
|
49
|
-
["folder", "summary.optionsUsed.reporterOptions.ddot"],
|
|
50
|
-
["custom", "summary.optionsUsed.reporterOptions.archi"],
|
|
51
|
-
["flat", "summary.optionsUsed.reporterOptions.flat"],
|
|
52
|
-
]);
|
|
53
|
-
|
|
54
150
|
function pryReporterOptionsFromResults(pGranularity, pResults) {
|
|
55
151
|
const lFallbackReporterOptions = get(
|
|
56
152
|
pResults,
|
|
57
|
-
"summary.optionsUsed.reporterOptions.dot"
|
|
153
|
+
"summary.optionsUsed.reporterOptions.dot",
|
|
58
154
|
);
|
|
59
155
|
|
|
60
156
|
return get(
|
|
61
157
|
pResults,
|
|
62
158
|
GRANULARITY2REPORTER_OPTIONS.get(pGranularity),
|
|
63
|
-
lFallbackReporterOptions
|
|
159
|
+
lFallbackReporterOptions,
|
|
64
160
|
);
|
|
65
161
|
}
|
|
66
162
|
|
|
67
163
|
function pryThemeFromResults(pGranularity, pResults) {
|
|
68
164
|
const lFallbackTheme = get(
|
|
69
165
|
pResults,
|
|
70
|
-
"summary.optionsUsed.reporterOptions.dot.theme"
|
|
166
|
+
"summary.optionsUsed.reporterOptions.dot.theme",
|
|
71
167
|
);
|
|
72
168
|
return get(
|
|
73
169
|
pryReporterOptionsFromResults(pGranularity, pResults),
|
|
74
170
|
"theme",
|
|
75
|
-
lFallbackTheme
|
|
171
|
+
lFallbackTheme,
|
|
76
172
|
);
|
|
77
173
|
}
|
|
78
174
|
|
|
79
175
|
function pryFiltersFromResults(pGranularity, pResults) {
|
|
80
176
|
const lFallbackFilters = get(
|
|
81
177
|
pResults,
|
|
82
|
-
"summary.optionsUsed.reporterOptions.dot.filters"
|
|
178
|
+
"summary.optionsUsed.reporterOptions.dot.filters",
|
|
83
179
|
);
|
|
84
180
|
return get(
|
|
85
181
|
pryReporterOptionsFromResults(pGranularity, pResults),
|
|
86
182
|
"filters",
|
|
87
|
-
lFallbackFilters
|
|
183
|
+
lFallbackFilters,
|
|
88
184
|
);
|
|
89
185
|
}
|
|
90
186
|
|
|
@@ -99,14 +195,14 @@ function pryCollapsePatternFromResults(pGranularity, pResults) {
|
|
|
99
195
|
return get(
|
|
100
196
|
pryReporterOptionsFromResults(pGranularity, pResults),
|
|
101
197
|
"collapsePattern",
|
|
102
|
-
getCollapseFallbackPattern(pGranularity)
|
|
198
|
+
getCollapseFallbackPattern(pGranularity),
|
|
103
199
|
);
|
|
104
200
|
}
|
|
105
201
|
|
|
106
202
|
function normalizeDotReporterOptions(
|
|
107
203
|
pDotReporterOptions,
|
|
108
204
|
pGranularity,
|
|
109
|
-
pResults
|
|
205
|
+
pResults,
|
|
110
206
|
) {
|
|
111
207
|
let lDotReporterOptions = pDotReporterOptions || {};
|
|
112
208
|
|
|
@@ -136,7 +232,7 @@ export default function produceDotReporter(pGranularity) {
|
|
|
136
232
|
const lDotReporterOptions = normalizeDotReporterOptions(
|
|
137
233
|
pDotReporterOptions,
|
|
138
234
|
pGranularity,
|
|
139
|
-
pResults
|
|
235
|
+
pResults,
|
|
140
236
|
);
|
|
141
237
|
|
|
142
238
|
return {
|
|
@@ -69,8 +69,12 @@ function constructViolatedRulesTable(pResults) {
|
|
|
69
69
|
</table>`;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
/**
|
|
73
|
+
* @param {import('../../../types/cruise-result.js').IViolation} pViolation
|
|
74
|
+
* @returns {string}
|
|
75
|
+
*/
|
|
72
76
|
function getViolationRowClass(pViolation) {
|
|
73
|
-
return pViolation.
|
|
77
|
+
return pViolation.rule.severity === "ignore" ? ' class="ignored"' : "";
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
/**
|
package/types/options.d.ts
CHANGED
|
@@ -278,7 +278,8 @@ export interface ICruiseOptions {
|
|
|
278
278
|
* A list of main fields in manifests (package.json s). Typically you'd want
|
|
279
279
|
* to keep leave this this on its default (['main']) , but if you e.g. use
|
|
280
280
|
* external packages that only expose types, and you still want references
|
|
281
|
-
* to these types to be resolved you could expand this to
|
|
281
|
+
* to these types to be resolved you could expand this to
|
|
282
|
+
* ['main', 'types', 'typings']
|
|
282
283
|
*/
|
|
283
284
|
mainFields?: string[];
|
|
284
285
|
/**
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var Handlebars=require("handlebars/runtime"),template=Handlebars.template,templates=Handlebars.templates=Handlebars.templates||{};templates["dot.template.hbs"]=template({1:function(l,n,e,t,o){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return null!=(a="function"==typeof(e=null!=(e=a(e,"graphAttrs")||(null!=n?a(n,"graphAttrs"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"graphAttrs",hash:{},data:o,loc:{start:{line:2,column:22},end:{line:2,column:38}}}):e)?a:""},3:function(l,n,e,t,o){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return"node ["+(null!=(a="function"==typeof(e=null!=(e=a(e,"nodeAttrs")||(null!=n?a(n,"nodeAttrs"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"nodeAttrs",hash:{},data:o,loc:{start:{line:3,column:27},end:{line:3,column:42}}}):e)?a:"")+"]"},5:function(l,n,e,t,o){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return"edge ["+(null!=(a="function"==typeof(e=null!=(e=a(e,"edgeAttrs")||(null!=n?a(n,"edgeAttrs"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"edgeAttrs",hash:{},data:o,loc:{start:{line:4,column:27},end:{line:4,column:42}}}):e)?a:"")+"]"},7:function(l,n,e,t,o,a,r){var u=null!=n?n:l.nullContext||{},i=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},c=null!=(p=i(e,"if").call(u,null!=n?i(n,"folder"):n,{name:"if",hash:{},fn:l.program(8,o,0,a,r),inverse:l.program(18,o,0,a,r),data:o,loc:{start:{line:7,column:4},end:{line:12,column:11}}}))?p:"",s=null!=(s=i(e,"dependencies")||(null!=n?i(n,"dependencies"):n))?s:l.hooks.helperMissing,a={name:"dependencies",hash:{},fn:l.program(20,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:13,column:4},end:{line:15,column:21}}},p="function"==typeof s?s.call(u,a):s;return null!=(p=i(e,"dependencies")?p:l.hooks.blockHelperMissing.call(n,p,a))&&(c+=p),c},8:function(l,n,e,t,o,a,r){var u,i,c=null!=n?n:l.nullContext||{},s=l.hooks.helperMissing,p="function",m=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return" "+(null!=(u=m(e,"each").call(c,null!=n?m(n,"path"):n,{name:"each",hash:{},fn:l.program(9,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:8,column:4},end:{line:8,column:201}}}))?u:"")+'"'+(null!=(u=typeof(i=null!=(i=m(e,"source")||(null!=n?m(n,"source"):n))?i:s)==p?i.call(c,{name:"source",hash:{},data:o,loc:{start:{line:9,column:9},end:{line:9,column:21}}}):i)?u:"")+'" [label='+(null!=(u=typeof(i=null!=(i=m(e,"label")||(null!=n?m(n,"label"):n))?i:s)==p?i.call(c,{name:"label",hash:{},data:o,loc:{start:{line:9,column:30},end:{line:9,column:41}}}):i)?u:"")+' tooltip="'+(null!=(u=typeof(i=null!=(i=m(e,"tooltip")||(null!=n?m(n,"tooltip"):n))?i:s)==p?i.call(c,{name:"tooltip",hash:{},data:o,loc:{start:{line:9,column:51},end:{line:9,column:64}}}):i)?u:"")+'" '+(null!=(u=m(e,"if").call(c,null!=n?m(n,"URL"):n,{name:"if",hash:{},fn:l.program(12,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:9,column:66},end:{line:9,column:100}}}))?u:"")+(null!=(u=m(e,"if").call(c,null!=n?m(n,"themeAttrs"):n,{name:"if",hash:{},fn:l.program(14,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:9,column:100},end:{line:9,column:141}}}))?u:"")+"]"+(null!=(u=m(e,"each").call(c,null!=n?m(n,"path"):n,{name:"each",hash:{},fn:l.program(16,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:9,column:142},end:{line:9,column:167}}}))?u:"")+"\n"},9:function(l,n,e,t,o,a,r){var u,i,c=null!=n?n:l.nullContext||{},s=l.hooks.helperMissing,p="function",m=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'subgraph "cluster_'+(null!=(u=typeof(i=null!=(i=m(e,"aggregateSnippet")||(null!=n?m(n,"aggregateSnippet"):n))?i:s)==p?i.call(c,{name:"aggregateSnippet",hash:{},data:o,loc:{start:{line:8,column:36},end:{line:8,column:58}}}):i)?u:"")+'" {label="'+(null!=(u=typeof(i=null!=(i=m(e,"snippet")||(null!=n?m(n,"snippet"):n))?i:s)==p?i.call(c,{name:"snippet",hash:{},data:o,loc:{start:{line:8,column:68},end:{line:8,column:81}}}):i)?u:"")+'" '+(null!=(u=m(e,"if").call(c,null!=r[2]?m(r[2],"clustersHaveOwnNode"):r[2],{name:"if",hash:{},fn:l.program(10,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:8,column:83},end:{line:8,column:191}}}))?u:"")},10:function(l,n,e,t,o){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'"'+(null!=(a="function"==typeof(e=null!=(e=a(e,"aggregateSnippet")||(null!=n?a(n,"aggregateSnippet"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"aggregateSnippet",hash:{},data:o,loc:{start:{line:8,column:117},end:{line:8,column:139}}}):e)?a:"")+'" [width="0.05" shape="point" style="invis"] '},12:function(l,n,e,t,o){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'URL="'+(null!=(a="function"==typeof(e=null!=(e=a(e,"URL")||(null!=n?a(n,"URL"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"URL",hash:{},data:o,loc:{start:{line:9,column:82},end:{line:9,column:91}}}):e)?a:"")+'" '},14:function(l,n,e,t,o){var a=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return null!=(a="function"==typeof(e=null!=(e=a(e,"themeAttrs")||(null!=n?a(n,"themeAttrs"):n))?e:l.hooks.helperMissing)?e.call(null!=n?n:l.nullContext||{},{name:"themeAttrs",hash:{},data:o,loc:{start:{line:9,column:118},end:{line:9,column:134}}}):e)?a:""},16:function(l,n,e,t,o){return" }"},18:function(l,n,e,t,o,a,r){var u,i,c=null!=n?n:l.nullContext||{},s=l.hooks.helperMissing,p="function",m=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(u=typeof(i=null!=(i=m(e,"source")||(null!=n?m(n,"source"):n))?i:s)==p?i.call(c,{name:"source",hash:{},data:o,loc:{start:{line:11,column:5},end:{line:11,column:17}}}):i)?u:"")+'" [label='+(null!=(u=typeof(i=null!=(i=m(e,"label")||(null!=n?m(n,"label"):n))?i:s)==p?i.call(c,{name:"label",hash:{},data:o,loc:{start:{line:11,column:26},end:{line:11,column:37}}}):i)?u:"")+' tooltip="'+(null!=(u=typeof(i=null!=(i=m(e,"tooltip")||(null!=n?m(n,"tooltip"):n))?i:s)==p?i.call(c,{name:"tooltip",hash:{},data:o,loc:{start:{line:11,column:47},end:{line:11,column:60}}}):i)?u:"")+'" '+(null!=(u=m(e,"if").call(c,null!=n?m(n,"URL"):n,{name:"if",hash:{},fn:l.program(12,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:11,column:62},end:{line:11,column:96}}}))?u:"")+(null!=(u=m(e,"if").call(c,null!=n?m(n,"themeAttrs"):n,{name:"if",hash:{},fn:l.program(14,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:11,column:96},end:{line:11,column:137}}}))?u:"")+"]\n"},20:function(l,n,e,t,o,a,r){var u,i,c=null!=n?n:l.nullContext||{},s=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return' "'+(null!=(u=l.lambda(null!=r[1]?s(r[1],"source"):r[1],n))?u:"")+'" -> "'+(null!=(u="function"==typeof(i=null!=(i=s(e,"resolved")||(null!=n?s(n,"resolved"):n))?i:l.hooks.helperMissing)?i.call(c,{name:"resolved",hash:{},data:o,loc:{start:{line:14,column:26},end:{line:14,column:40}}}):i)?u:"")+'"'+(null!=(u=s(e,"if").call(c,null!=n?s(n,"hasExtraAttributes"):n,{name:"if",hash:{},fn:l.program(21,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:14,column:41},end:{line:14,column:193}}}))?u:"")+"\n"},21:function(l,n,e,t,o,a,r){var u,i=null!=n?n:l.nullContext||{},c=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return" ["+(null!=(u=c(e,"if").call(i,null!=(u=null!=n?c(n,"rule"):n)?c(u,"name"):u,{name:"if",hash:{},fn:l.program(22,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:14,column:69},end:{line:14,column:144}}}))?u:"")+(null!=(u=c(e,"if").call(i,null!=n?c(n,"themeAttrs"):n,{name:"if",hash:{},fn:l.program(14,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:14,column:144},end:{line:14,column:185}}}))?u:"")+"]"},22:function(l,n,e,t,o){var a,r=l.lambda,l=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]};return'xlabel="'+(null!=(a=r(null!=(a=null!=n?l(n,"rule"):n)?l(a,"name"):a,n))?a:"")+'" tooltip="'+(null!=(a=r(null!=(a=null!=n?l(n,"rule"):n)?l(a,"name"):a,n))?a:"")+'" '},compiler:[8,">= 4.3.0"],main:function(l,n,e,t,o,a,r){var u=null!=n?n:l.nullContext||{},i=l.lookupProperty||function(l,n){if(Object.prototype.hasOwnProperty.call(l,n))return l[n]},c='strict digraph "dependency-cruiser output"{\n '+(null!=(p=i(e,"if").call(u,null!=n?i(n,"graphAttrs"):n,{name:"if",hash:{},fn:l.program(1,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:2,column:4},end:{line:2,column:45}}}))?p:"")+"\n "+(null!=(p=i(e,"if").call(u,null!=n?i(n,"nodeAttrs"):n,{name:"if",hash:{},fn:l.program(3,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:3,column:4},end:{line:3,column:50}}}))?p:"")+"\n "+(null!=(p=i(e,"if").call(u,null!=n?i(n,"edgeAttrs"):n,{name:"if",hash:{},fn:l.program(5,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:4,column:4},end:{line:4,column:50}}}))?p:"")+"\n\n",s=null!=(s=i(e,"modules")||(null!=n?i(n,"modules"):n))?s:l.hooks.helperMissing,a={name:"modules",hash:{},fn:l.program(7,o,0,a,r),inverse:l.noop,data:o,loc:{start:{line:6,column:0},end:{line:16,column:12}}},p="function"==typeof s?s.call(u,a):s;return null!=(p=i(e,"modules")?p:l.hooks.blockHelperMissing.call(n,p,a))&&(c+=p),c+"}\n"},useData:!0,useDepths:!0});
|