@callidescope/nx 0.0.1
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/LICENSE +21 -0
- package/README.md +1041 -0
- package/dist/address.utilities-DJG3-xMW.js +20 -0
- package/dist/plugin-context.utilities-bBTXF3Wk.js +815 -0
- package/dist/plugin.utilities-CX_Q5t8_.js +18 -0
- package/dist/src/executors/breadth/executor.d.ts +34 -0
- package/dist/src/executors/breadth/executor.js +11 -0
- package/dist/src/executors/depth/executor.d.ts +34 -0
- package/dist/src/executors/depth/executor.js +11 -0
- package/dist/src/executors/gate/executor.d.ts +37 -0
- package/dist/src/executors/gate/executor.js +20 -0
- package/dist/src/executors/trace/executor.d.ts +33 -0
- package/dist/src/executors/trace/executor.js +21 -0
- package/dist/src/index.d.ts +698 -0
- package/dist/src/index.js +19 -0
- package/executors.json +25 -0
- package/package.json +78 -0
package/README.md
ADDED
|
@@ -0,0 +1,1041 @@
|
|
|
1
|
+
# 🔭🧬 Callidescope Nx
|
|
2
|
+
|
|
3
|
+
**An Nx plugin that traces call stacks per project, following the Nx dependency graph.**
|
|
4
|
+
|
|
5
|
+
Canonical documentation for call-stack tracing, configuration, depth and breadth analysis, and report formats is in the
|
|
6
|
+
[`@callidescope/cli` README](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/callidescope/callidescope-cli#readme).
|
|
7
|
+
`@callidescope/cli` is Nx-free on purpose: it takes `--directories`, each one a path holding its own `tsconfig.json`, so it
|
|
8
|
+
works in any TypeScript workspace whether or not Nx is anywhere near it. This
|
|
9
|
+
package is the one place in the toolchain that knows Nx exists, and the only
|
|
10
|
+
one that depends on `@nx/devkit`.
|
|
11
|
+
|
|
12
|
+
It adds two things the core CLI cannot know about:
|
|
13
|
+
|
|
14
|
+
- **A target on every project**, so the workspace's task runner does the
|
|
15
|
+
selecting — `nx affected`, `--projects=tag:…`, caching, and all.
|
|
16
|
+
- **Dependency-aware scope**, so a run over one project is scoped to everything
|
|
17
|
+
that project depends on rather than to the project alone.
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install --save-dev @callidescope/nx
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Register it in `nx.json`:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"plugins": [
|
|
30
|
+
{
|
|
31
|
+
"plugin": "@callidescope/nx",
|
|
32
|
+
"options": {
|
|
33
|
+
"configurationPath": "configuration/callidescope.config.ts"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
| Option | Meaning |
|
|
41
|
+
| ------ | ------- |
|
|
42
|
+
| `configurationPath` | Where the callidescope configuration lives. The conventional root filenames are searched when omitted |
|
|
43
|
+
| `traceTargetName` | Name of the inferred trace target. `trace` when omitted |
|
|
44
|
+
| `depthTargetName` | Name of the inferred depth target. `depth` when omitted |
|
|
45
|
+
| `breadthTargetName` | Name of the inferred breadth target. `breadth` when omitted |
|
|
46
|
+
| `gateTargetName` | Name of the inferred gate target. `gate` when omitted |
|
|
47
|
+
|
|
48
|
+
The target names are short because they read better on the command line than
|
|
49
|
+
repeating the tool's name on both sides of the colon. Rename any of them from
|
|
50
|
+
the registration if a workspace already uses one.
|
|
51
|
+
|
|
52
|
+
## Usage
|
|
53
|
+
|
|
54
|
+
Four targets are inferred onto every project holding a `tsconfig.json`, so
|
|
55
|
+
selection is Nx's job rather than a flag of this package's own:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
nx run callidescope-nx:trace # one project, with its dependencies
|
|
59
|
+
nx run-many -t trace # the workspace
|
|
60
|
+
nx run-many -t trace --projects=tag:type:package # a category
|
|
61
|
+
nx affected -t trace # only what changed
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
nx run callidescope-nx:depth --addresses="packages/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts#ProjectsService.resolveDependencyClosure"
|
|
66
|
+
nx run callidescope-nx:breadth --addresses="src/foo.service.ts#FooService.bar"
|
|
67
|
+
|
|
68
|
+
# Several at once, which is what a rename spanning a handful of them needs
|
|
69
|
+
nx run callidescope-nx:depth --addresses="src/a.service.ts#A.b,src/c.service.ts#C.d"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
| Target | Answers |
|
|
73
|
+
| ------ | ------- |
|
|
74
|
+
| `gate` | Whether anything in the project broke the limits it is held to |
|
|
75
|
+
| `trace` | Every call stack in the project, and which ones broke a limit |
|
|
76
|
+
| `depth` | Every stack above and below each callable — callers up to a root, callees down to a leaf |
|
|
77
|
+
| `breadth` | Each callable's direct callers and callees, side by side |
|
|
78
|
+
|
|
79
|
+
`depth` and `breadth` take the same `<file>#<qualified-name>` addresses the
|
|
80
|
+
`callidescope` command does — the form every printed stack already uses — and
|
|
81
|
+
the same comma-separated `--addresses` flag it takes them through. Through the
|
|
82
|
+
plugin they resolve against the project and its dependencies rather than the
|
|
83
|
+
whole workspace, which is both faster and the set the addresses belong to.
|
|
84
|
+
|
|
85
|
+
**Every address must resolve, or the task prints nothing.** A report covering
|
|
86
|
+
only the addresses that were understood, under a task Nx recorded as
|
|
87
|
+
successful, is worse than a failed one; each unmatched address is named and
|
|
88
|
+
the task fails. Under `--format=json` the report is always an array, whatever
|
|
89
|
+
the address count, matching what the command line prints.
|
|
90
|
+
|
|
91
|
+
Unlike the command line, a missing `--addresses` is **refused rather than
|
|
92
|
+
prompted for**: a task runner has nobody to ask.
|
|
93
|
+
|
|
94
|
+
### The gate
|
|
95
|
+
|
|
96
|
+
`gate` is the one of the four a pipeline is meant to read an exit code from,
|
|
97
|
+
and the only one that prints nothing but its findings — the stacks and callables that
|
|
98
|
+
decided the verdict, rather than every stack in the project. `nx affected -t gate`
|
|
99
|
+
therefore gates a branch by the projects it changed, and the task that fails is
|
|
100
|
+
named after the project that regressed, which one workspace-wide task never
|
|
101
|
+
could.
|
|
102
|
+
|
|
103
|
+
**A dependency's breach is that dependency's gate's business.** The trace
|
|
104
|
+
reaches into the projects a gate's project depends on, because a stack that
|
|
105
|
+
stops at a package boundary measures the wrong thing — but the verdict covers
|
|
106
|
+
only the projects the task was scoped to. This is the line the publishing side
|
|
107
|
+
already draws, one step further along: measurement reaches into dependencies,
|
|
108
|
+
publishing does not, and judging does not either. Nothing escapes a verdict,
|
|
109
|
+
because `nx affected` selects a changed dependency too and its own gate names
|
|
110
|
+
it. `trace` narrows its verdict the same way, so the two targets on one project
|
|
111
|
+
can never disagree about whose regression it was; its report still shows the
|
|
112
|
+
whole closure, since only the verdict narrows.
|
|
113
|
+
|
|
114
|
+
**Depth is gated always, breadth wherever a limit exists.** Not two modes to be
|
|
115
|
+
selected between: `maximumDepth` has a default, so every project has a number
|
|
116
|
+
and is judged by it, while `maximumBreadth` has none at any level — so a project
|
|
117
|
+
that declared no breadth limit is judged against `Infinity` and can produce no
|
|
118
|
+
breadth finding at all.
|
|
119
|
+
|
|
120
|
+
**A gate that opened none of the judged project's own files fails.** A project
|
|
121
|
+
reporting zero files of its own is not a clean project — it is a project
|
|
122
|
+
nothing looked at, and a green task there would say the opposite with nothing
|
|
123
|
+
in the output to correct it. The `callidescope` command fails the same case for
|
|
124
|
+
the same reason.
|
|
125
|
+
|
|
126
|
+
**`trace` prints that same block and passes on it** — the one rule the two
|
|
127
|
+
targets act on differently, and the only place their verdicts part. A project
|
|
128
|
+
the configuration excludes reads nothing of its own by definition and is given
|
|
129
|
+
no `gate` for exactly that reason, so failing its `trace` as well would leave
|
|
130
|
+
the one target it has permanently red for being configured as it was asked to
|
|
131
|
+
be, and a red task that is always red is one a reader learns to ignore. It
|
|
132
|
+
still prints, because whether a project's own code was read is a fact about the
|
|
133
|
+
run either way and a reader has to be able to see it. Everything else — a stack
|
|
134
|
+
over a depth limit, a callable over a breadth limit, a run that read nothing at
|
|
135
|
+
all — fails both.
|
|
136
|
+
|
|
137
|
+
**Asked per judged project, not of the whole run**, because narrowing the
|
|
138
|
+
verdict made those two different questions. A project with dependencies has a
|
|
139
|
+
non-empty run whatever became of its own sources, so an `exclude` that
|
|
140
|
+
over-matches — which a project's own `callidescope.config.*` may write — leaves
|
|
141
|
+
it owning no report content, owning no finding, and passing green over code
|
|
142
|
+
nothing read. Demonstrated: `packages/ic-suite/codometer/codometer-output` given
|
|
143
|
+
`{"exclude": ["**"]}` of its own traces its dependency's 102 callables and
|
|
144
|
+
contributes none, which is a green gate on the run-wide question and a red one
|
|
145
|
+
on this. The projects that went unread are named back, since `--projects` may
|
|
146
|
+
judge several.
|
|
147
|
+
|
|
148
|
+
**Files rather than callables**, which is the weaker question and the right
|
|
149
|
+
one. A project can hold files that declare no callable at all — one whose
|
|
150
|
+
`tsconfig.json` names only its own configuration files and its tests is the
|
|
151
|
+
shape, and this repository has five — and those files were read, so a verdict
|
|
152
|
+
on them is a verdict on something. Asking for a callable fails all five for
|
|
153
|
+
holding no functions, which is a finding about nothing. The cost, stated
|
|
154
|
+
plainly: a project whose sources are excluded while a configuration file of its
|
|
155
|
+
own survives counts as read.
|
|
156
|
+
|
|
157
|
+
Two adjacent cases fail alongside it, each saying what happened rather than
|
|
158
|
+
failing mutely: a run that read **nothing at all**, which is what an unread
|
|
159
|
+
leaf project looks like, and an Nx selection that resolved to **no directory**.
|
|
160
|
+
|
|
161
|
+
Its cache key names the project's own `callidescope.config.*` alongside the
|
|
162
|
+
workspace configuration, so editing one project's limits re-runs that project's
|
|
163
|
+
gate and no other project's. A dependency's sources are covered by `^default`,
|
|
164
|
+
because a run measures its dependencies even though it does not judge them.
|
|
165
|
+
|
|
166
|
+
Two projects are deliberately skipped by all four targets: the **workspace-root
|
|
167
|
+
project**, whose targets would trace everything under one uncacheable task, and
|
|
168
|
+
any project with **no `tsconfig.json`**, whose targets would be permanently
|
|
169
|
+
empty. A project the configuration **excludes** — `exclude` or `excludeFrom` in
|
|
170
|
+
the workspace file — additionally gets no `gate`: its own code is never traced,
|
|
171
|
+
so a gate there would own no finding at all and report green for code it never
|
|
172
|
+
read. It keeps the three that print something, `trace` included, which is what
|
|
173
|
+
the unread exemption above is there to preserve: `packages/ic-suite/callidescope/callidescope-examples`
|
|
174
|
+
is the case, and its stacks are still a report a reader can open.
|
|
175
|
+
|
|
176
|
+
### Why the trace follows dependencies
|
|
177
|
+
|
|
178
|
+
`nx run callidescope-cli:trace` traces `callidescope-cli` **and
|
|
179
|
+
everything it depends on**, resolved transitively from the Nx project graph.
|
|
180
|
+
|
|
181
|
+
A call stack runs downward — a command calls into the service it was injected
|
|
182
|
+
with, which lives in a package it depends on — so a trace that stopped at a
|
|
183
|
+
project's own boundary would measure the wrong thing.
|
|
184
|
+
|
|
185
|
+
**A trace does not stop there without this plugin.**
|
|
186
|
+
[`@callidescope/cli`](../callidescope-cli/README.md) builds a TypeScript
|
|
187
|
+
program for every project the directories it was given transitively import, so
|
|
188
|
+
a call into a dependency resolves to a real frame whether or not Nx is
|
|
189
|
+
involved. Measured on this package,
|
|
190
|
+
`callidescope --directories packages/ic-suite/callidescope/callidescope-nx` and
|
|
191
|
+
`nx run callidescope-nx:trace` report the same 575 callables across 185 files
|
|
192
|
+
in 7 projects.
|
|
193
|
+
|
|
194
|
+
What the Nx graph decides is which projects the run is **scoped to** rather
|
|
195
|
+
than merely reaches. This executor writes nothing anywhere — it renders one
|
|
196
|
+
report and prints it — so the distinction costs nothing here, and widening the
|
|
197
|
+
selection changes only which projects seed the closure. It is the command-line
|
|
198
|
+
host that acts on it: a `--write` run there publishes a `## 🔭 Callidescope`
|
|
199
|
+
section into a scoped project's `README.md` and leaves a reached one's to the
|
|
200
|
+
run that is scoped to it. The graph also names dependencies no import closure
|
|
201
|
+
can find — an implicit dependency, or an edge that exists only at run time.
|
|
202
|
+
|
|
203
|
+
The two sets are not the same. The Nx graph gives `callidescope-nx` six
|
|
204
|
+
projects; the import closure reaches seven, adding `codometer-configuration`,
|
|
205
|
+
which this project's `tsconfig.json` pulls in through its own
|
|
206
|
+
`codometer.config.ts` — a file the manifest has no reason to mention.
|
|
207
|
+
|
|
208
|
+
Dependencies, never dependents: a project's dependents call _into_ it and add
|
|
209
|
+
no frames below it.
|
|
210
|
+
|
|
211
|
+
Pass `--withDependencies=false` to scope the run to the selected projects
|
|
212
|
+
alone. The closure below them is built either way, so what changes is which
|
|
213
|
+
projects the run calls its own — not how far a stack runs.
|
|
214
|
+
|
|
215
|
+
### Executor options
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
nx run logger:trace --tags=type:package
|
|
219
|
+
nx run logger:depth --addresses="a.ts#A.b" --projects=callidescope-cli
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
All three executors take the same scoping options.
|
|
223
|
+
|
|
224
|
+
| Option | Meaning |
|
|
225
|
+
| ------ | ------- |
|
|
226
|
+
| `addresses` | `depth` and `breadth` only, and required: the callables to look up, comma-separated |
|
|
227
|
+
| `projects` | Nx project names to resolve against, replacing the target's own project |
|
|
228
|
+
| `tags` | Nx project tags, selecting every project carrying **any** of them |
|
|
229
|
+
| `withDependencies` | Widen along the Nx dependency graph. `true` by default |
|
|
230
|
+
| `format` | `markdown`, `mermaid`, or `json` |
|
|
231
|
+
| `configurationPath` | Overrides the registered configuration path |
|
|
232
|
+
|
|
233
|
+
`--projects` and `--tags` union rather than intersect, and a project reached
|
|
234
|
+
both ways is still traced once. `--tags` matches **any** of the tags given,
|
|
235
|
+
because Nx tag families are mutually exclusive on a single project — nothing is
|
|
236
|
+
both `type:application` and `type:package`, so requiring all of them would
|
|
237
|
+
select nothing.
|
|
238
|
+
|
|
239
|
+
Prefer Nx's own `--projects=tag:…` on `run-many` for ordinary selection; these
|
|
240
|
+
options exist for a target that wants to declare a fixed scope in its
|
|
241
|
+
`project.json`.
|
|
242
|
+
|
|
243
|
+
### Nothing resolves silently to less
|
|
244
|
+
|
|
245
|
+
A project name the workspace does not have, or a tag no project carries, fails
|
|
246
|
+
the task and names the workspace's actual vocabulary. Narrowing the run instead
|
|
247
|
+
would let it pass while measuring less than it was asked to — and a report of
|
|
248
|
+
what a run did cover cannot show you what it did not.
|
|
249
|
+
|
|
250
|
+
## As a library
|
|
251
|
+
|
|
252
|
+
The Nx-graph reading is a NestJS provider, for a host that would rather import
|
|
253
|
+
it than run a task:
|
|
254
|
+
|
|
255
|
+
```ts
|
|
256
|
+
import { resolveProjectsService } from "@callidescope/nx";
|
|
257
|
+
|
|
258
|
+
const projectsService = await resolveProjectsService();
|
|
259
|
+
const graph = await projectsService.readProjectGraph();
|
|
260
|
+
const names = projectsService.resolveDependencyClosure({
|
|
261
|
+
graph,
|
|
262
|
+
projectNames: ["callidescope-cli"],
|
|
263
|
+
});
|
|
264
|
+
const directories = projectsService.toDirectories({ graph, projectNames: names });
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
`readProjectGraph` is the only method that touches Nx at run time; every
|
|
268
|
+
resolution rule takes the graph as an argument, so it can be exercised without
|
|
269
|
+
a workspace to build one from.
|
|
270
|
+
|
|
271
|
+
## Packages
|
|
272
|
+
|
|
273
|
+
| Package | Role |
|
|
274
|
+
| ------- | ---- |
|
|
275
|
+
| [`@callidescope/nx`](.) | Nx plugin: per-project trace targets, resolved through the Nx graph |
|
|
276
|
+
| [`@callidescope/cli`](../callidescope-cli/README.md) | Orchestrates a run: traces the workspace, plans what to check, and reports |
|
|
277
|
+
| [`@callidescope/configuration`](../callidescope-configuration/README.md) | Reads `callidescope.config.ts` and resolves the limits |
|
|
278
|
+
| [`@callidescope/graph`](../callidescope-graph/README.md) | Builds the call graph from traced source and measures depth and breadth |
|
|
279
|
+
| [`@callidescope/output`](../callidescope-output/README.md) | Renders findings into markdown, mermaid, and JSON |
|
|
280
|
+
|
|
281
|
+
## Test
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
nx run callidescope-nx:vitest
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Contributing
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
nx run callidescope-nx:lint-code --configuration=check
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## License
|
|
294
|
+
|
|
295
|
+
MIT — see [LICENSE](../../../../LICENSE).
|
|
296
|
+
|
|
297
|
+
## 👔 Conformetry
|
|
298
|
+
|
|
299
|
+
This project was generated from the [nestjs-service-project](../../../../configuration/conformetry-templates/nestjs-service-project) conformetry template.
|
|
300
|
+
|
|
301
|
+
## 🕸️ Codependix
|
|
302
|
+
|
|
303
|
+
Dependency graphs exported by [codependix](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/codependix/codependix-cli), regenerated by `nx run codebase:codependix:write`.
|
|
304
|
+
|
|
305
|
+
### Nx Neighborhood
|
|
306
|
+
|
|
307
|
+
<!-- codependix:start name="codependix-nx-projects" -->
|
|
308
|
+
```mermaid
|
|
309
|
+
graph LR
|
|
310
|
+
callidescope_cli["callidescope-cli"]
|
|
311
|
+
callidescope_configuration["callidescope-configuration"]
|
|
312
|
+
callidescope_core["callidescope-core"]
|
|
313
|
+
callidescope_graph["callidescope-graph"]
|
|
314
|
+
callidescope_nx["callidescope-nx"]
|
|
315
|
+
callidescope_output["callidescope-output"]
|
|
316
|
+
logger["logger"]
|
|
317
|
+
callidescope_nx --> callidescope_cli
|
|
318
|
+
callidescope_nx --> callidescope_configuration
|
|
319
|
+
callidescope_nx --> callidescope_core
|
|
320
|
+
callidescope_nx --> callidescope_graph
|
|
321
|
+
callidescope_nx --> callidescope_output
|
|
322
|
+
callidescope_nx --> logger
|
|
323
|
+
classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
|
|
324
|
+
class callidescope_nx subject
|
|
325
|
+
```
|
|
326
|
+
<!-- codependix:end name="codependix-nx-projects" -->
|
|
327
|
+
|
|
328
|
+
### NestJS Module Graph
|
|
329
|
+
|
|
330
|
+
<!-- codependix:start name="codependix-nestjs-modules" -->
|
|
331
|
+
```mermaid
|
|
332
|
+
flowchart LR
|
|
333
|
+
AddressLookupModule
|
|
334
|
+
AddressModule
|
|
335
|
+
AddressReportModule
|
|
336
|
+
CallablesModule
|
|
337
|
+
CallidescopeModule
|
|
338
|
+
ClassesModule
|
|
339
|
+
ConfigurationFileModule
|
|
340
|
+
ConfigurationModule
|
|
341
|
+
DocumentationModule
|
|
342
|
+
EdgesModule
|
|
343
|
+
EntriesModule
|
|
344
|
+
FlagResolutionModule
|
|
345
|
+
GraphModule
|
|
346
|
+
InputModule
|
|
347
|
+
LoggerModule([LoggerModule])
|
|
348
|
+
MainModule
|
|
349
|
+
OptionsModule
|
|
350
|
+
OutputJsonModule
|
|
351
|
+
OutputMarkdownModule
|
|
352
|
+
PluginModule
|
|
353
|
+
ProgramModule
|
|
354
|
+
ProjectReportsModule
|
|
355
|
+
ProjectsModule
|
|
356
|
+
ReportFindingsModule
|
|
357
|
+
ReportModule
|
|
358
|
+
RunConfigurationModule
|
|
359
|
+
RunPlanModule
|
|
360
|
+
SignaturesModule
|
|
361
|
+
WorkspaceModule
|
|
362
|
+
WriteDestinationsModule
|
|
363
|
+
AddressLookupModule --> CallablesModule
|
|
364
|
+
AddressLookupModule --> CallidescopeModule
|
|
365
|
+
AddressLookupModule --> ConfigurationModule
|
|
366
|
+
AddressModule --> AddressLookupModule
|
|
367
|
+
AddressModule --> AddressReportModule
|
|
368
|
+
AddressModule --> GraphModule
|
|
369
|
+
AddressReportModule --> ReportModule
|
|
370
|
+
CallablesModule --> ProgramModule
|
|
371
|
+
CallablesModule --> WorkspaceModule
|
|
372
|
+
CallidescopeModule --> CallablesModule
|
|
373
|
+
CallidescopeModule --> ClassesModule
|
|
374
|
+
CallidescopeModule --> ConfigurationModule
|
|
375
|
+
CallidescopeModule --> EdgesModule
|
|
376
|
+
CallidescopeModule --> EntriesModule
|
|
377
|
+
CallidescopeModule --> GraphModule
|
|
378
|
+
CallidescopeModule --> OutputJsonModule
|
|
379
|
+
CallidescopeModule --> OutputMarkdownModule
|
|
380
|
+
CallidescopeModule --> ProgramModule
|
|
381
|
+
CallidescopeModule --> ProjectReportsModule
|
|
382
|
+
CallidescopeModule --> ReportFindingsModule
|
|
383
|
+
CallidescopeModule --> ReportModule
|
|
384
|
+
CallidescopeModule --> WorkspaceModule
|
|
385
|
+
CallidescopeModule --> WriteDestinationsModule
|
|
386
|
+
ConfigurationModule --> ConfigurationFileModule
|
|
387
|
+
ConfigurationModule --> InputModule
|
|
388
|
+
ConfigurationModule --> RunPlanModule
|
|
389
|
+
EdgesModule --> CallablesModule
|
|
390
|
+
EdgesModule --> ClassesModule
|
|
391
|
+
EdgesModule --> ProgramModule
|
|
392
|
+
EdgesModule --> WorkspaceModule
|
|
393
|
+
EntriesModule --> CallablesModule
|
|
394
|
+
GraphModule --> DocumentationModule
|
|
395
|
+
GraphModule --> EdgesModule
|
|
396
|
+
GraphModule --> SignaturesModule
|
|
397
|
+
MainModule --> AddressModule
|
|
398
|
+
MainModule --> PluginModule
|
|
399
|
+
PluginModule --> CallidescopeModule
|
|
400
|
+
PluginModule --> ConfigurationModule
|
|
401
|
+
PluginModule --> OptionsModule
|
|
402
|
+
PluginModule --> ProjectReportsModule
|
|
403
|
+
PluginModule --> ProjectsModule
|
|
404
|
+
PluginModule --> ReportModule
|
|
405
|
+
PluginModule --> RunConfigurationModule
|
|
406
|
+
PluginModule --> WorkspaceModule
|
|
407
|
+
ProgramModule --> WorkspaceModule
|
|
408
|
+
ProjectReportsModule --> GraphModule
|
|
409
|
+
ProjectReportsModule --> SignaturesModule
|
|
410
|
+
RunConfigurationModule --> ConfigurationModule
|
|
411
|
+
RunConfigurationModule --> OptionsModule
|
|
412
|
+
RunPlanModule --> FlagResolutionModule
|
|
413
|
+
WriteDestinationsModule --> OutputJsonModule
|
|
414
|
+
WriteDestinationsModule --> OutputMarkdownModule
|
|
415
|
+
WriteDestinationsModule --> ReportModule
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
_Rounded modules are global: every module can inject them, so their edges are left out._
|
|
419
|
+
<!-- codependix:end name="codependix-nestjs-modules" -->
|
|
420
|
+
|
|
421
|
+
### File Imports
|
|
422
|
+
|
|
423
|
+
<!-- codependix:start name="codependix-file-imports" -->
|
|
424
|
+
```mermaid
|
|
425
|
+
graph LR
|
|
426
|
+
file_callidescope_config_ts["callidescope.config.ts"]
|
|
427
|
+
file_codependix_config_ts["codependix.config.ts"]
|
|
428
|
+
file_codometer_config_ts["codometer.config.ts"]
|
|
429
|
+
file_eslint_config_ts["eslint.config.ts"]
|
|
430
|
+
file_src_executors_address_types_ts["src/executors/address.types.ts"]
|
|
431
|
+
file_src_executors_breadth_executor_ts["src/executors/breadth/executor.ts"]
|
|
432
|
+
file_src_executors_breadth_executor_unit_test_ts["src/executors/breadth/executor.unit.test.ts"]
|
|
433
|
+
file_src_executors_depth_executor_ts["src/executors/depth/executor.ts"]
|
|
434
|
+
file_src_executors_depth_executor_unit_test_ts["src/executors/depth/executor.unit.test.ts"]
|
|
435
|
+
file_src_executors_gate_executor_integration_test_ts["src/executors/gate/executor.integration.test.ts"]
|
|
436
|
+
file_src_executors_gate_executor_ts["src/executors/gate/executor.ts"]
|
|
437
|
+
file_src_executors_gate_executor_types_ts["src/executors/gate/executor.types.ts"]
|
|
438
|
+
file_src_executors_gate_executor_unit_test_ts["src/executors/gate/executor.unit.test.ts"]
|
|
439
|
+
file_src_executors_trace_executor_ts["src/executors/trace/executor.ts"]
|
|
440
|
+
file_src_executors_trace_executor_types_ts["src/executors/trace/executor.types.ts"]
|
|
441
|
+
file_src_executors_trace_executor_unit_test_ts["src/executors/trace/executor.unit.test.ts"]
|
|
442
|
+
file_src_index_ts["src/index.ts"]
|
|
443
|
+
file_src_index_unit_test_ts["src/index.unit.test.ts"]
|
|
444
|
+
file_src_main_module_ts["src/main.module.ts"]
|
|
445
|
+
file_src_modules_address_address_constants_ts["src/modules/address/address.constants.ts"]
|
|
446
|
+
file_src_modules_address_address_module_ts["src/modules/address/address.module.ts"]
|
|
447
|
+
file_src_modules_address_address_service_ts["src/modules/address/address.service.ts"]
|
|
448
|
+
file_src_modules_address_address_service_unit_test_ts["src/modules/address/address.service.unit.test.ts"]
|
|
449
|
+
file_src_modules_address_address_types_ts["src/modules/address/address.types.ts"]
|
|
450
|
+
file_src_modules_address_address_utilities_ts["src/modules/address/address.utilities.ts"]
|
|
451
|
+
file_src_modules_address_address_utilities_unit_test_ts["src/modules/address/address.utilities.unit.test.ts"]
|
|
452
|
+
file_src_modules_options_options_constants_ts["src/modules/options/options.constants.ts"]
|
|
453
|
+
file_src_modules_options_options_module_ts["src/modules/options/options.module.ts"]
|
|
454
|
+
file_src_modules_options_options_service_ts["src/modules/options/options.service.ts"]
|
|
455
|
+
file_src_modules_options_options_service_unit_test_ts["src/modules/options/options.service.unit.test.ts"]
|
|
456
|
+
file_src_modules_options_options_types_ts["src/modules/options/options.types.ts"]
|
|
457
|
+
file_src_modules_plugin_plugin_context_utilities_ts["src/modules/plugin/plugin-context.utilities.ts"]
|
|
458
|
+
file_src_modules_plugin_plugin_context_utilities_unit_test_ts["src/modules/plugin/plugin-context.utilities.unit.test.ts"]
|
|
459
|
+
file_src_modules_plugin_plugin_constants_ts["src/modules/plugin/plugin.constants.ts"]
|
|
460
|
+
file_src_modules_plugin_plugin_module_ts["src/modules/plugin/plugin.module.ts"]
|
|
461
|
+
file_src_modules_plugin_plugin_service_ts["src/modules/plugin/plugin.service.ts"]
|
|
462
|
+
file_src_modules_plugin_plugin_service_unit_test_ts["src/modules/plugin/plugin.service.unit.test.ts"]
|
|
463
|
+
file_src_modules_plugin_plugin_types_ts["src/modules/plugin/plugin.types.ts"]
|
|
464
|
+
file_src_modules_plugin_plugin_utilities_ts["src/modules/plugin/plugin.utilities.ts"]
|
|
465
|
+
file_src_modules_projects_projects_constants_ts["src/modules/projects/projects.constants.ts"]
|
|
466
|
+
file_src_modules_projects_projects_module_ts["src/modules/projects/projects.module.ts"]
|
|
467
|
+
file_src_modules_projects_projects_service_ts["src/modules/projects/projects.service.ts"]
|
|
468
|
+
file_src_modules_projects_projects_service_unit_test_ts["src/modules/projects/projects.service.unit.test.ts"]
|
|
469
|
+
file_src_modules_projects_projects_types_ts["src/modules/projects/projects.types.ts"]
|
|
470
|
+
file_src_modules_run_configuration_run_configuration_constants_ts["src/modules/run-configuration/run-configuration.constants.ts"]
|
|
471
|
+
file_src_modules_run_configuration_run_configuration_module_ts["src/modules/run-configuration/run-configuration.module.ts"]
|
|
472
|
+
file_src_modules_run_configuration_run_configuration_service_ts["src/modules/run-configuration/run-configuration.service.ts"]
|
|
473
|
+
file_src_modules_run_configuration_run_configuration_service_unit_test_ts["src/modules/run-configuration/run-configuration.service.unit.test.ts"]
|
|
474
|
+
file_src_modules_run_configuration_run_configuration_types_ts["src/modules/run-configuration/run-configuration.types.ts"]
|
|
475
|
+
file_testing_mocks_ts["testing/mocks.ts"]
|
|
476
|
+
file_testing_setup_ts["testing/setup.ts"]
|
|
477
|
+
file_vite_config_ts["vite.config.ts"]
|
|
478
|
+
file_vitest_config_ts["vitest.config.ts"]
|
|
479
|
+
file_src_executors_breadth_executor_ts --> file_src_executors_address_types_ts
|
|
480
|
+
file_src_executors_breadth_executor_ts --> file_src_modules_address_address_utilities_ts
|
|
481
|
+
file_src_executors_breadth_executor_unit_test_ts --> file_src_executors_breadth_executor_ts
|
|
482
|
+
file_src_executors_breadth_executor_unit_test_ts --> file_src_modules_address_address_utilities_ts
|
|
483
|
+
file_src_executors_depth_executor_ts --> file_src_executors_address_types_ts
|
|
484
|
+
file_src_executors_depth_executor_ts --> file_src_modules_address_address_utilities_ts
|
|
485
|
+
file_src_executors_depth_executor_unit_test_ts --> file_src_executors_depth_executor_ts
|
|
486
|
+
file_src_executors_depth_executor_unit_test_ts --> file_src_modules_address_address_utilities_ts
|
|
487
|
+
file_src_executors_gate_executor_integration_test_ts --> file_src_executors_gate_executor_ts
|
|
488
|
+
file_src_executors_gate_executor_integration_test_ts --> file_src_executors_gate_executor_types_ts
|
|
489
|
+
file_src_executors_gate_executor_integration_test_ts --> file_src_modules_plugin_plugin_constants_ts
|
|
490
|
+
file_src_executors_gate_executor_integration_test_ts --> file_src_modules_projects_projects_service_ts
|
|
491
|
+
file_src_executors_gate_executor_ts --> file_src_executors_gate_executor_types_ts
|
|
492
|
+
file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
|
|
493
|
+
file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_constants_ts
|
|
494
|
+
file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_utilities_ts
|
|
495
|
+
file_src_executors_gate_executor_unit_test_ts --> file_src_executors_gate_executor_ts
|
|
496
|
+
file_src_executors_gate_executor_unit_test_ts --> file_src_modules_options_options_service_ts
|
|
497
|
+
file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
|
|
498
|
+
file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
|
|
499
|
+
file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
|
|
500
|
+
file_src_executors_trace_executor_ts --> file_src_executors_trace_executor_types_ts
|
|
501
|
+
file_src_executors_trace_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
|
|
502
|
+
file_src_executors_trace_executor_ts --> file_src_modules_plugin_plugin_utilities_ts
|
|
503
|
+
file_src_executors_trace_executor_unit_test_ts --> file_src_executors_trace_executor_ts
|
|
504
|
+
file_src_executors_trace_executor_unit_test_ts --> file_src_modules_options_options_service_ts
|
|
505
|
+
file_src_executors_trace_executor_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
|
|
506
|
+
file_src_executors_trace_executor_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
|
|
507
|
+
file_src_index_ts --> file_src_modules_plugin_plugin_context_utilities_ts
|
|
508
|
+
file_src_index_ts --> file_src_modules_plugin_plugin_constants_ts
|
|
509
|
+
file_src_index_unit_test_ts --> file_src_index_ts
|
|
510
|
+
file_src_index_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
|
|
511
|
+
file_src_index_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
|
|
512
|
+
file_src_main_module_ts --> file_src_modules_address_address_module_ts
|
|
513
|
+
file_src_main_module_ts --> file_src_modules_plugin_plugin_module_ts
|
|
514
|
+
file_src_modules_address_address_module_ts --> file_src_modules_address_address_service_ts
|
|
515
|
+
file_src_modules_address_address_service_ts --> file_src_modules_address_address_types_ts
|
|
516
|
+
file_src_modules_address_address_service_unit_test_ts --> file_src_modules_address_address_service_ts
|
|
517
|
+
file_src_modules_address_address_utilities_ts --> file_src_executors_address_types_ts
|
|
518
|
+
file_src_modules_address_address_utilities_ts --> file_src_modules_plugin_plugin_context_utilities_ts
|
|
519
|
+
file_src_modules_address_address_utilities_ts --> file_src_modules_plugin_plugin_utilities_ts
|
|
520
|
+
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_address_address_service_ts
|
|
521
|
+
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_address_address_utilities_ts
|
|
522
|
+
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_options_options_service_ts
|
|
523
|
+
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
|
|
524
|
+
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
|
|
525
|
+
file_src_modules_options_options_module_ts --> file_src_modules_options_options_service_ts
|
|
526
|
+
file_src_modules_options_options_service_ts --> file_src_modules_options_options_constants_ts
|
|
527
|
+
file_src_modules_options_options_service_ts --> file_src_modules_options_options_types_ts
|
|
528
|
+
file_src_modules_options_options_service_unit_test_ts --> file_src_modules_options_options_service_ts
|
|
529
|
+
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_main_module_ts
|
|
530
|
+
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_address_address_service_ts
|
|
531
|
+
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_options_options_service_ts
|
|
532
|
+
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_constants_ts
|
|
533
|
+
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_service_ts
|
|
534
|
+
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_types_ts
|
|
535
|
+
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_projects_projects_service_ts
|
|
536
|
+
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_address_address_service_ts
|
|
537
|
+
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_options_options_service_ts
|
|
538
|
+
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_context_utilities_ts
|
|
539
|
+
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
|
|
540
|
+
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_projects_projects_service_ts
|
|
541
|
+
file_src_modules_plugin_plugin_module_ts --> file_src_modules_options_options_module_ts
|
|
542
|
+
file_src_modules_plugin_plugin_module_ts --> file_src_modules_plugin_plugin_service_ts
|
|
543
|
+
file_src_modules_plugin_plugin_module_ts --> file_src_modules_projects_projects_module_ts
|
|
544
|
+
file_src_modules_plugin_plugin_module_ts --> file_src_modules_run_configuration_run_configuration_module_ts
|
|
545
|
+
file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_constants_ts
|
|
546
|
+
file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_service_ts
|
|
547
|
+
file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_types_ts
|
|
548
|
+
file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_constants_ts
|
|
549
|
+
file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_types_ts
|
|
550
|
+
file_src_modules_plugin_plugin_service_ts --> file_src_modules_projects_projects_service_ts
|
|
551
|
+
file_src_modules_plugin_plugin_service_ts --> file_src_modules_run_configuration_run_configuration_service_ts
|
|
552
|
+
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_options_options_service_ts
|
|
553
|
+
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
|
|
554
|
+
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
|
|
555
|
+
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
|
|
556
|
+
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_projects_projects_service_ts
|
|
557
|
+
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_run_configuration_run_configuration_service_ts
|
|
558
|
+
file_src_modules_plugin_plugin_types_ts --> file_src_modules_plugin_plugin_constants_ts
|
|
559
|
+
file_src_modules_plugin_plugin_utilities_ts --> file_src_modules_plugin_plugin_context_utilities_ts
|
|
560
|
+
file_src_modules_plugin_plugin_utilities_ts --> file_src_modules_plugin_plugin_types_ts
|
|
561
|
+
file_src_modules_projects_projects_module_ts --> file_src_modules_projects_projects_service_ts
|
|
562
|
+
file_src_modules_projects_projects_service_ts --> file_src_modules_projects_projects_types_ts
|
|
563
|
+
file_src_modules_projects_projects_service_unit_test_ts --> file_src_modules_projects_projects_service_ts
|
|
564
|
+
file_src_modules_run_configuration_run_configuration_module_ts --> file_src_modules_options_options_module_ts
|
|
565
|
+
file_src_modules_run_configuration_run_configuration_module_ts --> file_src_modules_run_configuration_run_configuration_service_ts
|
|
566
|
+
file_src_modules_run_configuration_run_configuration_service_ts --> file_src_modules_options_options_service_ts
|
|
567
|
+
file_src_modules_run_configuration_run_configuration_service_ts --> file_src_modules_run_configuration_run_configuration_constants_ts
|
|
568
|
+
file_src_modules_run_configuration_run_configuration_service_ts --> file_src_modules_run_configuration_run_configuration_types_ts
|
|
569
|
+
file_src_modules_run_configuration_run_configuration_service_unit_test_ts --> file_src_modules_options_options_service_ts
|
|
570
|
+
file_src_modules_run_configuration_run_configuration_service_unit_test_ts --> file_src_modules_run_configuration_run_configuration_service_ts
|
|
571
|
+
```
|
|
572
|
+
<!-- codependix:end name="codependix-file-imports" -->
|
|
573
|
+
|
|
574
|
+
<!-- codometer:start -->
|
|
575
|
+
|
|
576
|
+
## ⏲️ Codometer
|
|
577
|
+
|
|
578
|
+
### Project
|
|
579
|
+
|
|
580
|
+

|
|
581
|
+

|
|
582
|
+

|
|
583
|
+

|
|
584
|
+
|
|
585
|
+
### Measured Targets
|
|
586
|
+
|
|
587
|
+

|
|
588
|
+
|
|
589
|
+
### TypeScript
|
|
590
|
+
|
|
591
|
+

|
|
592
|
+

|
|
593
|
+

|
|
594
|
+

|
|
595
|
+

|
|
596
|
+

|
|
597
|
+

|
|
598
|
+
|
|
599
|
+
### JavaScript
|
|
600
|
+
|
|
601
|
+

|
|
602
|
+

|
|
603
|
+

|
|
604
|
+

|
|
605
|
+

|
|
606
|
+

|
|
607
|
+

|
|
608
|
+

|
|
609
|
+

|
|
610
|
+

|
|
611
|
+

|
|
612
|
+

|
|
613
|
+

|
|
614
|
+

|
|
615
|
+
|
|
616
|
+
### Python
|
|
617
|
+
|
|
618
|
+

|
|
619
|
+

|
|
620
|
+

|
|
621
|
+

|
|
622
|
+

|
|
623
|
+

|
|
624
|
+

|
|
625
|
+

|
|
626
|
+

|
|
627
|
+

|
|
628
|
+

|
|
629
|
+

|
|
630
|
+
|
|
631
|
+
### JSON
|
|
632
|
+
|
|
633
|
+

|
|
634
|
+

|
|
635
|
+

|
|
636
|
+

|
|
637
|
+

|
|
638
|
+

|
|
639
|
+

|
|
640
|
+

|
|
641
|
+

|
|
642
|
+

|
|
643
|
+

|
|
644
|
+

|
|
645
|
+
|
|
646
|
+
### YAML
|
|
647
|
+
|
|
648
|
+

|
|
649
|
+

|
|
650
|
+

|
|
651
|
+

|
|
652
|
+

|
|
653
|
+

|
|
654
|
+

|
|
655
|
+

|
|
656
|
+

|
|
657
|
+

|
|
658
|
+

|
|
659
|
+
|
|
660
|
+
### TOML
|
|
661
|
+
|
|
662
|
+

|
|
663
|
+

|
|
664
|
+

|
|
665
|
+

|
|
666
|
+

|
|
667
|
+

|
|
668
|
+

|
|
669
|
+
|
|
670
|
+
### Shell
|
|
671
|
+
|
|
672
|
+

|
|
673
|
+

|
|
674
|
+

|
|
675
|
+

|
|
676
|
+

|
|
677
|
+

|
|
678
|
+

|
|
679
|
+

|
|
680
|
+

|
|
681
|
+

|
|
682
|
+

|
|
683
|
+
|
|
684
|
+
### SQL
|
|
685
|
+
|
|
686
|
+

|
|
687
|
+

|
|
688
|
+

|
|
689
|
+

|
|
690
|
+

|
|
691
|
+

|
|
692
|
+

|
|
693
|
+

|
|
694
|
+

|
|
695
|
+

|
|
696
|
+

|
|
697
|
+
|
|
698
|
+
### HCL
|
|
699
|
+
|
|
700
|
+

|
|
701
|
+

|
|
702
|
+

|
|
703
|
+

|
|
704
|
+

|
|
705
|
+

|
|
706
|
+

|
|
707
|
+

|
|
708
|
+

|
|
709
|
+
|
|
710
|
+
### CSS
|
|
711
|
+
|
|
712
|
+

|
|
713
|
+

|
|
714
|
+

|
|
715
|
+

|
|
716
|
+

|
|
717
|
+

|
|
718
|
+

|
|
719
|
+

|
|
720
|
+

|
|
721
|
+
|
|
722
|
+
### Conventions
|
|
723
|
+
|
|
724
|
+

|
|
725
|
+

|
|
726
|
+

|
|
727
|
+

|
|
728
|
+

|
|
729
|
+

|
|
730
|
+

|
|
731
|
+

|
|
732
|
+

|
|
733
|
+

|
|
734
|
+

|
|
735
|
+

|
|
736
|
+

|
|
737
|
+

|
|
738
|
+

|
|
739
|
+

|
|
740
|
+

|
|
741
|
+

|
|
742
|
+
|
|
743
|
+
### Jupyter
|
|
744
|
+
|
|
745
|
+

|
|
746
|
+

|
|
747
|
+

|
|
748
|
+

|
|
749
|
+

|
|
750
|
+

|
|
751
|
+

|
|
752
|
+

|
|
753
|
+

|
|
754
|
+

|
|
755
|
+

|
|
756
|
+

|
|
757
|
+

|
|
758
|
+

|
|
759
|
+

|
|
760
|
+

|
|
761
|
+

|
|
762
|
+

|
|
763
|
+

|
|
764
|
+

|
|
765
|
+
|
|
766
|
+
### Markdown
|
|
767
|
+
|
|
768
|
+

|
|
769
|
+

|
|
770
|
+

|
|
771
|
+

|
|
772
|
+

|
|
773
|
+

|
|
774
|
+

|
|
775
|
+

|
|
776
|
+

|
|
777
|
+

|
|
778
|
+

|
|
779
|
+

|
|
780
|
+

|
|
781
|
+

|
|
782
|
+

|
|
783
|
+

|
|
784
|
+

|
|
785
|
+

|
|
786
|
+

|
|
787
|
+

|
|
788
|
+
<!-- codometer:end -->
|
|
789
|
+
|
|
790
|
+
<!-- callidescope:start -->
|
|
791
|
+
|
|
792
|
+
## 🔭 Callidescope
|
|
793
|
+
|
|
794
|
+
Call stacks traced through `packages/ic-suite/callidescope/callidescope-nx`, deepest first. Each frame shows what it takes, what it returns, and what its documentation says.
|
|
795
|
+
|
|
796
|
+
| Measure | Value |
|
|
797
|
+
| --- | --- |
|
|
798
|
+
| Callables | 78 |
|
|
799
|
+
| Files | 38 |
|
|
800
|
+
| Calls traced | 109 |
|
|
801
|
+
| Call stacks | 6 |
|
|
802
|
+
| Deepest stack | 17 |
|
|
803
|
+
| Stacks through recursion | 0 |
|
|
804
|
+
| Unfollowable calls | 2 |
|
|
805
|
+
|
|
806
|
+
### Limits
|
|
807
|
+
|
|
808
|
+
What this project is judged against, as declared in its own `callidescope.config.ts`.
|
|
809
|
+
|
|
810
|
+
| Limit | Value |
|
|
811
|
+
| --- | --- |
|
|
812
|
+
| `maximumDepth` | 17 |
|
|
813
|
+
| `maximumBreadth` | 7 |
|
|
814
|
+
|
|
815
|
+
### Call stacks (depth)
|
|
816
|
+
|
|
817
|
+
**1. `breadthExecutor`** — depth ≥ 17 · orphan-root
|
|
818
|
+
|
|
819
|
+
```text
|
|
820
|
+
🚀 breadthExecutor(…): Promise<{ success: boolean; }> [packages/ic-suite/callidescope/callidescope-nx/src/executors/breadth/executor.ts:15]
|
|
821
|
+
↳ Prints each named callable's direct callers and callees side by side — the two questions a rename or a refactor needs…
|
|
822
|
+
└─> runAddressExecutor(…): Promise<{ success: boolean; }> [packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.utilities.ts:19]
|
|
823
|
+
↳ Runs the address lookups on behalf of the `depth` or `breadth` executor.
|
|
824
|
+
└─> AddressService.runDepth(args: LookupArguments): Promise<LookupResult> [packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:154]
|
|
825
|
+
↳ Prints every call stack above and below each callable.
|
|
826
|
+
└─> AddressService.locate(…): Promise<string | { identified: { address: string; id: string; }[]; workspace: LocatedWorkspace; }> [packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:74]
|
|
827
|
+
↳ Traces the selection, then matches every address against it.
|
|
828
|
+
└─> AddressLookupService.locate(options: AddressCommandOptions): Promise<LocatedWorkspace> [packages/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87]
|
|
829
|
+
↳ Loads the configuration and traces the workspace, matching nothing yet.
|
|
830
|
+
└─> CallidescopeService.locate(args: TraceArguments): Promise<LocateOutcome> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394]
|
|
831
|
+
↳ Collects every callable and assembles the graph over them, without running the analysis a full trace does.
|
|
832
|
+
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [packages/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
|
|
833
|
+
↳ Builds the call graph and everything derived from it.
|
|
834
|
+
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
|
|
835
|
+
↳ Builds every edge in the graph, and records the calls it could not.
|
|
836
|
+
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
|
|
837
|
+
↳ Turns one call site into the edges and non-resolutions it produced.
|
|
838
|
+
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
|
|
839
|
+
↳ Resolves one call site, choosing the right strategy for its shape.
|
|
840
|
+
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
|
|
841
|
+
↳ Resolves a call expression to every declaration it can reach.
|
|
842
|
+
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
|
|
843
|
+
↳ Resolves an already-identified callee symbol to its declarations.
|
|
844
|
+
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
|
|
845
|
+
↳ Expands an interface or abstract member to its implementations.
|
|
846
|
+
└─> ClassesService.resolveImplementations(…): ImplementationLookup [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
|
|
847
|
+
↳ Finds the concrete declarations one interface member resolves to.
|
|
848
|
+
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
|
|
849
|
+
└─> ClassesService.readMemberDeclarations(…): Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
|
|
850
|
+
↳ Reads one member's concrete declarations off a candidate class.
|
|
851
|
+
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
**2. `depthExecutor`** — depth ≥ 17 · orphan-root
|
|
855
|
+
|
|
856
|
+
```text
|
|
857
|
+
🚀 depthExecutor(…): Promise<{ success: boolean; }> [packages/ic-suite/callidescope/callidescope-nx/src/executors/depth/executor.ts:15]
|
|
858
|
+
↳ Prints every call stack above and below each named callable — every caller chain up to a root, every callee chain down…
|
|
859
|
+
└─> runAddressExecutor(…): Promise<{ success: boolean; }> [packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.utilities.ts:19]
|
|
860
|
+
↳ Runs the address lookups on behalf of the `depth` or `breadth` executor.
|
|
861
|
+
└─> AddressService.runDepth(args: LookupArguments): Promise<LookupResult> [packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:154]
|
|
862
|
+
↳ Prints every call stack above and below each callable.
|
|
863
|
+
└─> AddressService.locate(…): Promise<string | { identified: { address: string; id: string; }[]; workspace: LocatedWorkspace; }> [packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:74]
|
|
864
|
+
↳ Traces the selection, then matches every address against it.
|
|
865
|
+
└─> AddressLookupService.locate(options: AddressCommandOptions): Promise<LocatedWorkspace> [packages/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87]
|
|
866
|
+
↳ Loads the configuration and traces the workspace, matching nothing yet.
|
|
867
|
+
└─> CallidescopeService.locate(args: TraceArguments): Promise<LocateOutcome> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394]
|
|
868
|
+
↳ Collects every callable and assembles the graph over them, without running the analysis a full trace does.
|
|
869
|
+
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [packages/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
|
|
870
|
+
↳ Builds the call graph and everything derived from it.
|
|
871
|
+
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
|
|
872
|
+
↳ Builds every edge in the graph, and records the calls it could not.
|
|
873
|
+
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
|
|
874
|
+
↳ Turns one call site into the edges and non-resolutions it produced.
|
|
875
|
+
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
|
|
876
|
+
↳ Resolves one call site, choosing the right strategy for its shape.
|
|
877
|
+
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
|
|
878
|
+
↳ Resolves a call expression to every declaration it can reach.
|
|
879
|
+
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
|
|
880
|
+
↳ Resolves an already-identified callee symbol to its declarations.
|
|
881
|
+
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
|
|
882
|
+
↳ Expands an interface or abstract member to its implementations.
|
|
883
|
+
└─> ClassesService.resolveImplementations(…): ImplementationLookup [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
|
|
884
|
+
↳ Finds the concrete declarations one interface member resolves to.
|
|
885
|
+
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
|
|
886
|
+
└─> ClassesService.readMemberDeclarations(…): Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
|
|
887
|
+
↳ Reads one member's concrete declarations off a candidate class.
|
|
888
|
+
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
|
|
889
|
+
```
|
|
890
|
+
|
|
891
|
+
**3. `gateExecutor`** — depth ≥ 15 · orphan-root
|
|
892
|
+
|
|
893
|
+
```text
|
|
894
|
+
🚀 gateExecutor(…): Promise<{ success: boolean; }> [packages/ic-suite/callidescope/callidescope-nx/src/executors/gate/executor.ts:28]
|
|
895
|
+
↳ Fails one project's task when its call stacks broke the limits it is held to.
|
|
896
|
+
└─> PluginService.runGate(args: RunGateArguments): Promise<RunTraceResult> [packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:427]
|
|
897
|
+
↳ Traces the resolved directories and judges what it found against the limits every project in scope declared.
|
|
898
|
+
└─> CallidescopeService.trace(args: TraceArguments): Promise<TraceOutcome> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:408]
|
|
899
|
+
↳ Traces a workspace and returns everything the run found.
|
|
900
|
+
└─> CallidescopeService.analyze(…): AnalyzeOutcome [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:295]
|
|
901
|
+
↳ Derives every finding from the collected callables.
|
|
902
|
+
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [packages/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
|
|
903
|
+
↳ Builds the call graph and everything derived from it.
|
|
904
|
+
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
|
|
905
|
+
↳ Builds every edge in the graph, and records the calls it could not.
|
|
906
|
+
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
|
|
907
|
+
↳ Turns one call site into the edges and non-resolutions it produced.
|
|
908
|
+
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
|
|
909
|
+
↳ Resolves one call site, choosing the right strategy for its shape.
|
|
910
|
+
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
|
|
911
|
+
↳ Resolves a call expression to every declaration it can reach.
|
|
912
|
+
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
|
|
913
|
+
↳ Resolves an already-identified callee symbol to its declarations.
|
|
914
|
+
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
|
|
915
|
+
↳ Expands an interface or abstract member to its implementations.
|
|
916
|
+
└─> ClassesService.resolveImplementations(…): ImplementationLookup [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
|
|
917
|
+
↳ Finds the concrete declarations one interface member resolves to.
|
|
918
|
+
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
|
|
919
|
+
└─> ClassesService.readMemberDeclarations(…): Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
|
|
920
|
+
↳ Reads one member's concrete declarations off a candidate class.
|
|
921
|
+
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
<details>
|
|
925
|
+
<summary>3 more call stacks</summary>
|
|
926
|
+
|
|
927
|
+
**4. `traceExecutor`** — depth ≥ 15 · orphan-root
|
|
928
|
+
|
|
929
|
+
```text
|
|
930
|
+
🚀 traceExecutor(…): Promise<{ success: boolean; }> [packages/ic-suite/callidescope/callidescope-nx/src/executors/trace/executor.ts:25]
|
|
931
|
+
↳ Traces one selection of Nx projects with callidescope.
|
|
932
|
+
└─> PluginService.runTrace(args: RunTraceArguments): Promise<RunTraceResult> [packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:472]
|
|
933
|
+
↳ Traces the resolved directories and renders the report.
|
|
934
|
+
└─> CallidescopeService.trace(args: TraceArguments): Promise<TraceOutcome> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:408]
|
|
935
|
+
↳ Traces a workspace and returns everything the run found.
|
|
936
|
+
└─> CallidescopeService.analyze(…): AnalyzeOutcome [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:295]
|
|
937
|
+
↳ Derives every finding from the collected callables.
|
|
938
|
+
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [packages/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
|
|
939
|
+
↳ Builds the call graph and everything derived from it.
|
|
940
|
+
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
|
|
941
|
+
↳ Builds every edge in the graph, and records the calls it could not.
|
|
942
|
+
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
|
|
943
|
+
↳ Turns one call site into the edges and non-resolutions it produced.
|
|
944
|
+
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
|
|
945
|
+
↳ Resolves one call site, choosing the right strategy for its shape.
|
|
946
|
+
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
|
|
947
|
+
↳ Resolves a call expression to every declaration it can reach.
|
|
948
|
+
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
|
|
949
|
+
↳ Resolves an already-identified callee symbol to its declarations.
|
|
950
|
+
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
|
|
951
|
+
↳ Expands an interface or abstract member to its implementations.
|
|
952
|
+
└─> ClassesService.resolveImplementations(…): ImplementationLookup [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
|
|
953
|
+
↳ Finds the concrete declarations one interface member resolves to.
|
|
954
|
+
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
|
|
955
|
+
└─> ClassesService.readMemberDeclarations(…): Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
|
|
956
|
+
↳ Reads one member's concrete declarations off a candidate class.
|
|
957
|
+
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
|
|
958
|
+
```
|
|
959
|
+
|
|
960
|
+
**5. `anonymous`** — depth ≥ 8 · orphan-root
|
|
961
|
+
|
|
962
|
+
```text
|
|
963
|
+
🚀 anonymous(…): Promise<CreateNodesResultArray> [packages/ic-suite/callidescope/callidescope-nx/src/index.ts:59]
|
|
964
|
+
└─> PluginService.inferTargets(args: InferTargetsArguments): Promise<Map<string, InferredTargets>> [packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:333]
|
|
965
|
+
↳ Infers this plugin's targets onto every project holding a `tsconfig.json`.
|
|
966
|
+
└─> PluginService.buildExclusionFilter(…): Promise<FileFilter> [packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:92]
|
|
967
|
+
↳ Builds the predicate deciding which projects the workspace configuration keeps out of every trace.
|
|
968
|
+
└─> ConfigurationService.loadConfigurationFile(args?: LoadConfigurationArguments): Promise<LoadedCallidescopeConfiguration> [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:87]
|
|
969
|
+
↳ Loads a configuration, and says what the file itself declared and which file answered.
|
|
970
|
+
└─> ConfigurationFileService.loadConfigurationFile(args?: LoadConfigurationArguments): Promise<LoadedCallidescopeConfiguration> [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration-file.service.ts:326]
|
|
971
|
+
↳ Loads a configuration, and says what the file itself declared and which file answered.
|
|
972
|
+
└─> ConfigurationFileService.resolveConfigurationPath(configurationPath: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration-file.service.ts:158]
|
|
973
|
+
↳ Resolves a configuration path against the cwd, then the repository root.
|
|
974
|
+
└─> ConfigurationFileService.findRepositoryRoot(): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration-file.service.ts:97]
|
|
975
|
+
↳ Walks upward from the process cwd looking for the repository root.
|
|
976
|
+
└─> ConfigurationFileService.some(…)(marker: ".git" | "pnpm-workspace.yaml"): boolean [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration-file.service.ts:102]
|
|
977
|
+
```
|
|
978
|
+
|
|
979
|
+
**6. `resolveProjectsService`** — depth 2 · orphan-root
|
|
980
|
+
|
|
981
|
+
```text
|
|
982
|
+
🚀 resolveProjectsService(): Promise<ProjectsService> [packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin-context.utilities.ts:39]
|
|
983
|
+
↳ Resolves the service that reads the workspace's Nx project graph.
|
|
984
|
+
└─> resolvePluginContext(): Promise<INestApplicationContext> [packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin-context.utilities.ts:59]
|
|
985
|
+
↳ Builds, or returns, this process's application context.
|
|
986
|
+
```
|
|
987
|
+
|
|
988
|
+
</details>
|
|
989
|
+
|
|
990
|
+
### Breadth
|
|
991
|
+
|
|
992
|
+
| Callable | Breadth | Calls directly | Location |
|
|
993
|
+
| --- | --- | --- | --- |
|
|
994
|
+
| `runAddressExecutor` | 7 | `filter(…)`, `resolveExecutorScope`, `resolveOptionsService`, `resolveAddressService`, `OptionsService.readFormat`, `AddressService.runDepth`, `AddressService.runBreadth` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.utilities.ts:19` |
|
|
995
|
+
| `ProjectsService.resolveProjectNames` | 6 | `ProjectsService.readProjects`, `ProjectsService.map(…)`, `ProjectsService.resolveTaggedNames`, `ProjectsService.map(…)`, `ProjectsService.readTags`, `ProjectsService.toSorted(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts:195` |
|
|
996
|
+
| `OptionsService.readStringList` | 5 | `OptionsService.isUnknownArray`, `OptionsService.filter(…)`, `OptionsService.map(…)`, `OptionsService.flatMap(…)`, `OptionsService.filter(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/options/options.service.ts:124` |
|
|
997
|
+
|
|
998
|
+
<details>
|
|
999
|
+
<summary>36 more callables</summary>
|
|
1000
|
+
|
|
1001
|
+
| Callable | Breadth | Calls directly | Location |
|
|
1002
|
+
| --- | --- | --- | --- |
|
|
1003
|
+
| `PluginService.inferTargets` | 5 | `OptionsService.resolvePluginOptions`, `PluginService.buildExclusionFilter`, `PluginService.holdsProgram`, `PluginService.buildInferredTargets`, `PluginService.isExcludedProject` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:333` |
|
|
1004
|
+
| `PluginService.runGate` | 5 | `RunConfigurationService.load`, `CallidescopeService.trace`, `PluginService.judge`, `PluginService.explainVerdict`, `MarkdownReportService.renderFindings` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:427` |
|
|
1005
|
+
| `PluginService.runTrace` | 5 | `RunConfigurationService.load`, `CallidescopeService.trace`, `PluginService.judge`, `MarkdownReportService.renderRun`, `PluginService.explainVerdict` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:472` |
|
|
1006
|
+
| `resolveExecutorScope` | 5 | `resolveOptionsService`, `OptionsService.readStringList`, `resolvePluginService`, `PluginService.resolveTraceScope`, `PluginService.describeRefusedScope` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.utilities.ts:24` |
|
|
1007
|
+
| `traceExecutor` | 5 | `resolveExecutorScope`, `resolveOptionsService`, `resolvePluginService`, `PluginService.runTrace`, `OptionsService.readFormat` | `packages/ic-suite/callidescope/callidescope-nx/src/executors/trace/executor.ts:25` |
|
|
1008
|
+
| `PluginService.resolveTraceScope` | 4 | `ProjectsService.readProjectGraph`, `ProjectsService.resolveProjectNames`, `ProjectsService.resolveDependencyClosure`, `ProjectsService.resolveDirectories` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:383` |
|
|
1009
|
+
| `anonymous` | 4 | `resolvePluginService`, `PluginService.inferTargets`, `filter(…)`, `map(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/index.ts:59` |
|
|
1010
|
+
| `AddressService.runBreadth` | 3 | `AddressService.locate`, `BreadthService.describeDirectCalls`, `AddressReportService.renderBreadthReports` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:110` |
|
|
1011
|
+
| `AddressService.runDepth` | 3 | `AddressService.locate`, `AddressReportService.renderDepthReports`, `AddressService.map(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:154` |
|
|
1012
|
+
| `ProjectsService.toDirectories` | 3 | `ProjectsService.map(…)`, `ProjectsService.readProjects`, `ProjectsService.toSorted(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts:233` |
|
|
1013
|
+
| `RunConfigurationService.load` | 3 | `OptionsService.resolveConfigurationPath`, `RunConfigurationService.readNxConfiguration`, `ConfigurationService.loadConfigurationFile` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/run-configuration/run-configuration.service.ts:69` |
|
|
1014
|
+
| `gateExecutor` | 3 | `resolveExecutorScope`, `resolvePluginService`, `PluginService.runGate` | `packages/ic-suite/callidescope/callidescope-nx/src/executors/gate/executor.ts:28` |
|
|
1015
|
+
| `AddressService.identify` | 2 | `AddressLookupService.resolve`, `AddressLookupService.describeProblem` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:47` |
|
|
1016
|
+
| `AddressService.locate` | 2 | `AddressLookupService.locate`, `AddressService.identify` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:74` |
|
|
1017
|
+
| `AddressService.map(…)` | 2 | `AddressDepthService.buildDownwardStacks`, `AddressDepthService.buildUpwardStacks` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:167` |
|
|
1018
|
+
| `OptionsService.readRegisteredConfigurationPath` | 2 | `OptionsService.isUnknownArray`, `OptionsService.readEntryConfigurationPath` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/options/options.service.ts:66` |
|
|
1019
|
+
| `OptionsService.resolveConfigurationPath` | 2 | `OptionsService.readRegisteredConfigurationPath`, `OptionsService.find(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/options/options.service.ts:145` |
|
|
1020
|
+
| `ProjectsService.readTags` | 2 | `ProjectsService.toSorted(…)`, `ProjectsService.flatMap(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts:37` |
|
|
1021
|
+
| `ProjectsService.resolveTaggedNames` | 2 | `ProjectsService.filter(…)`, `ProjectsService.map(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts:53` |
|
|
1022
|
+
| `ProjectsService.readProjects` | 2 | `ProjectsService.toSorted(…)`, `ProjectsService.map(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts:92` |
|
|
1023
|
+
| `ProjectsService.resolveDependencyClosure` | 2 | `ProjectsService.filter(…)`, `ProjectsService.toSorted(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts:122` |
|
|
1024
|
+
| `ProjectsService.resolveDirectories` | 2 | `ProjectsService.resolveProjectNames`, `ProjectsService.toDirectories` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts:171` |
|
|
1025
|
+
| `PluginService.buildExclusionFilter` | 2 | `ConfigurationService.loadConfigurationFile`, `FileFilterService.buildFileFilter` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:92` |
|
|
1026
|
+
| `PluginService.judge` | 2 | `ProjectReportsService.findOwnedFindings`, `ProjectReportsService.findUnreadProjects` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:263` |
|
|
1027
|
+
| `OptionsService.readEntryConfigurationPath` | 1 | `OptionsService.readString` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/options/options.service.ts:42` |
|
|
1028
|
+
| `OptionsService.readFormat` | 1 | `OptionsService.find(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/options/options.service.ts:109` |
|
|
1029
|
+
| `OptionsService.resolvePluginOptions` | 1 | `OptionsService.readString` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/options/options.service.ts:159` |
|
|
1030
|
+
| `reportUnreadProjects` | 1 | `map(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.constants.ts:72` |
|
|
1031
|
+
| `PluginService.explainVerdict` | 1 | `reportUnreadProjects` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:185` |
|
|
1032
|
+
| `PluginService.describeRefusedScope` | 1 | `PluginService.filter(…)` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:305` |
|
|
1033
|
+
| `resolveAddressService` | 1 | `resolvePluginContext` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin-context.utilities.ts:18` |
|
|
1034
|
+
| `resolveOptionsService` | 1 | `resolvePluginContext` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin-context.utilities.ts:25` |
|
|
1035
|
+
| `resolvePluginService` | 1 | `resolvePluginContext` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin-context.utilities.ts:32` |
|
|
1036
|
+
| `resolveProjectsService` | 1 | `resolvePluginContext` | `packages/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin-context.utilities.ts:39` |
|
|
1037
|
+
| `breadthExecutor` | 1 | `runAddressExecutor` | `packages/ic-suite/callidescope/callidescope-nx/src/executors/breadth/executor.ts:15` |
|
|
1038
|
+
| `depthExecutor` | 1 | `runAddressExecutor` | `packages/ic-suite/callidescope/callidescope-nx/src/executors/depth/executor.ts:15` |
|
|
1039
|
+
|
|
1040
|
+
</details>
|
|
1041
|
+
<!-- callidescope:end -->
|