@callidescope/cli 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 +1763 -0
- package/dist/main.module-tKMvFmcY.js +1476 -0
- package/dist/src/index.d.ts +649 -0
- package/dist/src/index.js +2 -0
- package/dist/src/main.d.ts +1 -0
- package/dist/src/main.js +17 -0
- package/package.json +80 -0
package/README.md
ADDED
|
@@ -0,0 +1,1763 @@
|
|
|
1
|
+
# 🔭 Callidescope
|
|
2
|
+
|
|
3
|
+
**Traces call stacks across a TypeScript monorepo and flags the ones that got too deep.**
|
|
4
|
+
|
|
5
|
+
Callidescope builds one call graph for the whole workspace, measures how deep a
|
|
6
|
+
stack can get below each entry point, and reports the paths that exceed a limit
|
|
7
|
+
you set — with every frame's file and line, so the next step is opening one.
|
|
8
|
+
|
|
9
|
+
It follows calls through **NestJS injected dependencies**. When a command calls
|
|
10
|
+
`this.someService.load()`, the hop into `SomeService.load` is the whole point:
|
|
11
|
+
that edge is invisible to anything reading one file at a time, and it is where
|
|
12
|
+
most of this kind of codebase's control flow actually lives.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install --save-dev @callidescope/cli
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
callidescope --config configuration/callidescope.config.ts
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
Stack #1 | 🚨 [DEPTH ≥ 10 > 6] (decorated-method)
|
|
24
|
+
🚀 CodometerCommand.run(_passedParameters: string[], options: CodometerCommandOptions): Promise<void> [.../codometer.command.ts:220]
|
|
25
|
+
↳ Measure the repository and write every configured output.
|
|
26
|
+
└─> CodometerService.measure(args: MeasureArguments): CodeStatisticsResult [.../codometer.service.ts:115]
|
|
27
|
+
↳ Measure aggregated repository statistics for the provided directory.
|
|
28
|
+
└─> LanguagesService.analyze(args: AnalyzeLanguagesArguments): LanguageResults [.../languages.service.ts:54]
|
|
29
|
+
↳ Analyze every language present in the discovered files.
|
|
30
|
+
└─> JsonService.countArrayNode(node: unknown[], stats: JsonResult, depth: number): void (cycle) [.../json.service.ts:89]
|
|
31
|
+
↳ Count array nodes and their child values.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Why
|
|
35
|
+
|
|
36
|
+
A deep call stack is not automatically wrong, but it is always worth looking at.
|
|
37
|
+
Ten frames between a command and the work it does usually means a layer that
|
|
38
|
+
exists only to forward arguments, and the tools that would tell you are the ones
|
|
39
|
+
that read a file at a time — so they see the forwarding and never the depth.
|
|
40
|
+
|
|
41
|
+
Two questions this answers that reading code does not:
|
|
42
|
+
|
|
43
|
+
- **How deep does this actually get?** Following an injected dependency by hand
|
|
44
|
+
means opening the module, finding the provider, and opening that — for every
|
|
45
|
+
hop. The tool does it with the type checker, which is what makes it exact.
|
|
46
|
+
- **How much does this one callable reach?** Breadth counts the distinct
|
|
47
|
+
callables a function calls directly, which no file-at-a-time reader can
|
|
48
|
+
resolve through an injected dependency or a structurally satisfied
|
|
49
|
+
interface.
|
|
50
|
+
|
|
51
|
+
## Usage
|
|
52
|
+
|
|
53
|
+
Tracing the workspace is the **default command**, so the flags below sit
|
|
54
|
+
directly on `callidescope`:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npx callidescope --check depth
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`callidescope callidescope --check depth` is the same run written out, which is
|
|
61
|
+
what a task runner that always names a command spells. `depth`, `breadth`, and
|
|
62
|
+
`limits` are matched by name before anything falls through to the default, so
|
|
63
|
+
they are unaffected — and a word that names none of them is refused rather than
|
|
64
|
+
quietly traced.
|
|
65
|
+
|
|
66
|
+
| Flag | Meaning |
|
|
67
|
+
| ---- | ------- |
|
|
68
|
+
| `--config` | Path to a `callidescope.config.ts`. Searched for when omitted |
|
|
69
|
+
| `-d, --directories` | Comma-separated project directories to trace, each holding its own `tsconfig.json`. The projects their imports reach are traced too. Every such directory under the working directory when omitted |
|
|
70
|
+
| `--entry-point-addresses` | Comma-separated `path#name` roots, overriding `entryPoints.addresses` |
|
|
71
|
+
| `--entry-point-decorators` | Comma-separated decorator names, overriding `entryPoints.decorators` |
|
|
72
|
+
| `--exclude` | Comma-separated globs, overriding an authored `exclude`. The tool's own default globs are kept, exactly as they are under a configured `exclude` |
|
|
73
|
+
| `--exclude-callees` | Comma-separated callee patterns, overriding `excludeCallees` |
|
|
74
|
+
| `-f, --format` | `markdown`, `mermaid`, or `json`, for what it prints. Markdown by default. Anything else is refused rather than rewritten |
|
|
75
|
+
| `--include-exported-functions` | `true` or `false`, overriding `entryPoints.includeExportedFunctions`. The bare flag means `true` |
|
|
76
|
+
| `--include-orphans` | `true` or `false`, overriding `entryPoints.includeOrphans`. The bare flag means `true` |
|
|
77
|
+
| `--include-tests` | `true` or `false`, overriding `entryPoints.includeTests`. The bare flag means `true` |
|
|
78
|
+
| `--json` | Where the machine-readable report goes. Overrides the path of a declared `write.json`, and nothing else about it. Needs `--write` or `--check reports` |
|
|
79
|
+
| `-m, --markdown` | Where the markdown block goes. Overrides the path of a declared `write.markdown`, and nothing else about it. Needs `--write` or `--check reports` |
|
|
80
|
+
| `--maximum-breadth` | A number, overriding `limits.maximumBreadth` wherever a project declared one. Refused against a configuration declaring none, because breadth has no default to override |
|
|
81
|
+
| `--maximum-depth` | A number, overriding `limits.maximumDepth` wherever a project declared one |
|
|
82
|
+
| `--mermaid` | Where the diagram goes. Overrides the path of a declared `write.mermaid`, and nothing else about it. Needs `--write` or `--check reports` |
|
|
83
|
+
| `--check` | Fail on a comma-separated set drawn from `breadth`, `depth`, and `reports` |
|
|
84
|
+
| `--write` | Write every configured destination |
|
|
85
|
+
|
|
86
|
+
Every flag but `--check`, `--write`, `--format`, and `--config` is an
|
|
87
|
+
**override**: it may change a value the configuration already declares and may
|
|
88
|
+
not supply one it does not, so no flag can make an under-configured run legal.
|
|
89
|
+
`excludeFrom` is the one configured field with no flag — it names the ignore
|
|
90
|
+
files a run _reads_, which is what the run is rather than a value it judges by.
|
|
91
|
+
A list flag written empty reads as absent, so a configured list cannot be
|
|
92
|
+
cleared from the command line.
|
|
93
|
+
|
|
94
|
+
### Three findings, named separately
|
|
95
|
+
|
|
96
|
+
A stack that runs deeper than the configured limit, a callable that calls more
|
|
97
|
+
others directly than its project allows, and a report that no longer matches the
|
|
98
|
+
code are separate findings, and `--check` names them separately. `depth` is
|
|
99
|
+
callidescope's own word for the magnitude it measures — `limit` belongs to
|
|
100
|
+
codometer, and blurring the two makes the messages unreadable.
|
|
101
|
+
|
|
102
|
+
| `--check` value | What fails the run |
|
|
103
|
+
| --------------- | ------------------ |
|
|
104
|
+
| `breadth` | A callable calling more callables directly than `limits.maximumBreadth` |
|
|
105
|
+
| `depth` | A call stack deeper than `limits.maximumDepth` |
|
|
106
|
+
| `reports` | A configured destination no longer holding what a fresh run would write |
|
|
107
|
+
|
|
108
|
+
`--check` refuses a value it does not recognize, and refuses a flag carrying no
|
|
109
|
+
value at all. A set with nothing in it looks exactly like the flag having been
|
|
110
|
+
left off, so it is a mistake rather than a shorthand: read as "gate nothing" it
|
|
111
|
+
would be a gate that cannot fail. Every traced project's own configuration is
|
|
112
|
+
complete, so `limits.maximumBreadth` is always there to judge `--check
|
|
113
|
+
breadth` against — there is no project left to leave it undeclared, and so
|
|
114
|
+
nothing left for `--check breadth` to be refused over.
|
|
115
|
+
|
|
116
|
+
`depth` and `reports` are separate because they belong on opposite sides of a
|
|
117
|
+
pull request. Depth is the gate — a stack got longer in this change, and this
|
|
118
|
+
change is what fixes it. In this workspace neither flag is invoked directly
|
|
119
|
+
for that: the callidescope Nx plugin infers a `gate` target onto every project
|
|
120
|
+
it does not exclude, judging depth always and breadth wherever a project
|
|
121
|
+
declares `limits.maximumBreadth` — the same rules `--check depth` and
|
|
122
|
+
`--check breadth` apply, reached through the plugin's own executor rather than
|
|
123
|
+
a subprocess — scoped to just the projects a change touched:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
nx affected --target=gate
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Staleness is not, because a report goes stale whenever the call graph moves
|
|
130
|
+
anywhere, which is nearly every change. The report is published on the default
|
|
131
|
+
branch instead, where nothing else is competing to rewrite the same block:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
nx run codebase:callidescope:write
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Nothing writes unless it is asked to. A run given neither `--write` nor
|
|
138
|
+
`--check reports` reads no destination and rewrites none, so a gate on a pull
|
|
139
|
+
request leaves every committed report exactly as it found it.
|
|
140
|
+
`--write --check reports` is refused outright: a report cannot be stale in the
|
|
141
|
+
run that just wrote it.
|
|
142
|
+
|
|
143
|
+
Those two configurations are the whole target — there is no third one for the
|
|
144
|
+
release, because nothing forwards a configuration to it. `lint-code` does
|
|
145
|
+
not depend on `callidescope`: Nx forwards an explicit configuration down
|
|
146
|
+
`dependsOn`, so if it did, `lint-code --configuration=write` would publish
|
|
147
|
+
the report from a branch. `codebase:codometer` sits outside that list for the
|
|
148
|
+
same reason. The depth gate is therefore named directly, alongside
|
|
149
|
+
`lint-code` and inside the same `nx affected` invocation, in both places
|
|
150
|
+
that gate: the
|
|
151
|
+
[🧑🔧 Lint Codebase](../../../../.github/workflows/lint-code.yml) workflow, so it
|
|
152
|
+
runs on every pull request, and
|
|
153
|
+
[`configuration/lint-staged.config.ts`](../../../../configuration/lint-staged.config.ts),
|
|
154
|
+
so it runs on every commit. Depth reads source and needs no build, which is
|
|
155
|
+
what keeps it in the commit path where codometer's limits — read from compiled
|
|
156
|
+
output — cannot go.
|
|
157
|
+
|
|
158
|
+
### Two failures no flag turns off
|
|
159
|
+
|
|
160
|
+
`--check` chooses which findings about the code fail the run. Two failures are
|
|
161
|
+
not findings about the code at all, and neither waits to be asked:
|
|
162
|
+
|
|
163
|
+
| Failure | What it means |
|
|
164
|
+
| ------- | ------------- |
|
|
165
|
+
| `🔭 Rejected a project it could not read` | A project's `tsconfig.json` could not be parsed, or a named directory holds none |
|
|
166
|
+
| `🔭 Traced nothing` | The run collected no callables at all |
|
|
167
|
+
|
|
168
|
+
Both exist because the alternative is a green gate over a workspace nobody
|
|
169
|
+
looked at. A run reports what it found, so a run that found nothing reports
|
|
170
|
+
nothing — which reads exactly like a clean workspace.
|
|
171
|
+
|
|
172
|
+
A `tsconfig.json` that will not parse **ends the run where it happens**, before
|
|
173
|
+
anything is printed and before any destination is touched. It is tempting to
|
|
174
|
+
step over the project and trace the rest, and that is wrong here: destinations
|
|
175
|
+
are written before findings are weighed, so a partial graph would publish
|
|
176
|
+
depths measured through a workspace that was missing a project, and only then
|
|
177
|
+
fail. On the default branch that means committing wrong numbers into every
|
|
178
|
+
project README, which exiting non-zero afterwards does not take back. Ending
|
|
179
|
+
the trace leaves the checkout exactly as the run found it.
|
|
180
|
+
|
|
181
|
+
A directory named on `--directories` that holds no `tsconfig.json` at all ends
|
|
182
|
+
the run the same way, and for the same reason. Naming a directory is the caller
|
|
183
|
+
saying it should be traced, so quietly tracing one fewer project than was asked
|
|
184
|
+
for reports depths for a workspace nobody described — and a typo in the list
|
|
185
|
+
passes every gate for having looked at less. The whole-workspace walk cannot
|
|
186
|
+
reach this, since it only ever yields directories a `tsconfig.json` was found
|
|
187
|
+
in.
|
|
188
|
+
|
|
189
|
+
A project that should not be read at all is a different question, and
|
|
190
|
+
exclusions answer it. They are applied to the `tsconfig.json` itself, before it
|
|
191
|
+
is opened — excluding a project's _files_ is too late, because opening its
|
|
192
|
+
configuration is the step that fails. This repository's own
|
|
193
|
+
[`.callidescopeignore`](../../../../configuration/.callidescopeignore) names one such
|
|
194
|
+
project: a fixture in `codependix-examples` written not to parse.
|
|
195
|
+
|
|
196
|
+
### Where the report goes
|
|
197
|
+
|
|
198
|
+
Printing and writing are separate. `--format` decides what reaches the terminal;
|
|
199
|
+
the destinations under `output` in the config decide what reaches a file, and
|
|
200
|
+
both can be on at once.
|
|
201
|
+
|
|
202
|
+
Markdown is the console default because it is the one rendering that reads in a
|
|
203
|
+
terminal, pastes into an issue, and is already what the files hold. `--format
|
|
204
|
+
json` is for a machine reading standard output, and `--format mermaid` prints
|
|
205
|
+
diagram source to paste somewhere that draws it.
|
|
206
|
+
|
|
207
|
+
Three destinations, each independent:
|
|
208
|
+
|
|
209
|
+
| `write` key | What it writes |
|
|
210
|
+
| ----------- | -------------- |
|
|
211
|
+
| `json` | The whole run as JSON, at one path |
|
|
212
|
+
| `markdown` | The whole run, spliced between anchors in one file |
|
|
213
|
+
| `mermaid` | The same report with its stacks drawn instead of printed |
|
|
214
|
+
|
|
215
|
+
A project's own section is not among them. Each project declares its own
|
|
216
|
+
`write.markdown` in its own `callidescope.config.ts`, so where a section lands
|
|
217
|
+
is that project's to say — see
|
|
218
|
+
[Project Configuration](../callidescope-configuration/README.md#project-configuration).
|
|
219
|
+
|
|
220
|
+
### The diagram
|
|
221
|
+
|
|
222
|
+
`mermaid` is its own destination rather than a mode on `markdown`, so a
|
|
223
|
+
repository can publish both. They answer different questions: the tree says
|
|
224
|
+
what each frame takes, returns, and documents; the diagram says what shape they
|
|
225
|
+
make together.
|
|
226
|
+
|
|
227
|
+
Both anchored destinations render the same report, so a diagram draws exactly
|
|
228
|
+
what the markdown one prints: the run's call stacks over the depth limit. The
|
|
229
|
+
committed example of one is
|
|
230
|
+
[`packages/ic-suite/callidescope/callidescope-examples/output/diagram.md`](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/callidescope/callidescope-examples/output/diagram.md),
|
|
231
|
+
where five stacks over that package's limit are drawn as 38 callables and 34
|
|
232
|
+
arrows. This repository publishes no diagram at all — its deepest stack sits
|
|
233
|
+
exactly at the limit, so there is nothing over it to draw, and a `--format
|
|
234
|
+
mermaid` run here prints `None.` under that heading.
|
|
235
|
+
|
|
236
|
+
All the stacks are drawn as **one** flowchart, not one apiece. A single stack is
|
|
237
|
+
a straight line, and a straight line is a list with extra steps. Drawn together
|
|
238
|
+
the shared tails converge — every command reaching the same repository, every
|
|
239
|
+
resolver ending in the same service — and that convergence is the thing a
|
|
240
|
+
picture shows and an indented tree cannot.
|
|
241
|
+
|
|
242
|
+
Entry points are drawn as stadiums and everything below them as boxes. Shape
|
|
243
|
+
rather than color, because the diagram is read in whichever theme the reader
|
|
244
|
+
has and only one of those is the one it was authored in. Labels carry the
|
|
245
|
+
callable's name alone: a diagram trying to also carry signatures is unreadable
|
|
246
|
+
at any size, and the tree already has room for them.
|
|
247
|
+
|
|
248
|
+
A diagram stops at 300 callables — GitHub refuses a mermaid block past 50,000
|
|
249
|
+
characters. Whole stacks are dropped rather than trimmed, so the diagram never
|
|
250
|
+
contains an edge into something it did not draw, and it says how many it left
|
|
251
|
+
out. The cap is generous against one project's worth of stacks and tight against
|
|
252
|
+
a workspace's: this repository's widest project, `caelundas`, has 96 call stacks
|
|
253
|
+
spanning 263 distinct callables, 27 of them called from more than one place, so
|
|
254
|
+
a set that size fits whole; the 554 stacks its 53 projects hold between them
|
|
255
|
+
would reach the 300 and leave 451 out. Neither set is drawn here — nothing in
|
|
256
|
+
this workspace is over the depth limit — but they are the scale the cap is set
|
|
257
|
+
against.
|
|
258
|
+
|
|
259
|
+
The `## 🔭 Callidescope` section at the bottom of every package in this
|
|
260
|
+
repository is that package's own declaration rather than anything the run fans
|
|
261
|
+
out. Each project's file names the document its section lands in, and the run
|
|
262
|
+
publishes what it finds declared:
|
|
263
|
+
|
|
264
|
+
```ts
|
|
265
|
+
write: { markdown: { heading: "## 🔭 Callidescope", path: "README.md" } }
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Each section carries that project's stacks and findings rather than the
|
|
269
|
+
workspace's, the first three stacks openly and the rest behind a disclosure —
|
|
270
|
+
`previewCount` on the destination is what decides how many, because it is a
|
|
271
|
+
fact about the document rather than about the run.
|
|
272
|
+
|
|
273
|
+
Under `--check reports` a stale section fails and names every file that drifted,
|
|
274
|
+
rather than stopping at the first. This repository does not run that on a pull
|
|
275
|
+
request: `nx run codebase:callidescope:write` writes the sections on the
|
|
276
|
+
default branch, and the release commits them.
|
|
277
|
+
|
|
278
|
+
Narrowing with `--directories` is the difference between a whole-workspace
|
|
279
|
+
analysis and a check that finishes in seconds, because each project needs its
|
|
280
|
+
own TypeScript program. What such a run measures — and what it deliberately
|
|
281
|
+
leaves out — is [its own section below](#what-a-scoped-run-measures).
|
|
282
|
+
|
|
283
|
+
## Depth and breadth for named callables
|
|
284
|
+
|
|
285
|
+
`callidescope` reports the whole workspace; `depth` and `breadth` answer a
|
|
286
|
+
narrower question about callables you name, addressed the way a Python
|
|
287
|
+
traceback or an ESLint rule id points at a symbol — the file path and the
|
|
288
|
+
qualified name callidescope already prints in every stack, joined by `#`:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
callidescope depth --addresses src/foo.service.ts#FooService.bar
|
|
292
|
+
callidescope breadth --addresses src/foo.service.ts#FooService.bar
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
`--addresses` is comma-separated, so one run can report on several callables —
|
|
296
|
+
which is what a rename spanning a handful of them actually needs:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
callidescope depth --addresses src/foo.service.ts#FooService.bar,src/bar.service.ts#BarService.baz
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**Every address has to resolve, or the run prints nothing.** A report covering
|
|
303
|
+
the addresses that were understood, under an exit code claiming success, is
|
|
304
|
+
worse than no report; a run naming an address it cannot match reports each
|
|
305
|
+
failure and exits non-zero.
|
|
306
|
+
|
|
307
|
+
A file holding more than one declaration under the same qualified name — two
|
|
308
|
+
overloads, two callbacks bound to the same property — is disambiguated with a
|
|
309
|
+
trailing `:<line>`, and both commands print every candidate's line when they
|
|
310
|
+
cannot tell which one was meant.
|
|
311
|
+
|
|
312
|
+
**`--addresses` is prompted for when omitted.** At a terminal, both commands
|
|
313
|
+
offer every callable the trace found as an autocompleting multiselect, so the
|
|
314
|
+
flag is something to skip rather than something to look up. With no terminal
|
|
315
|
+
there is nobody to ask, so the run is refused by name and exits non-zero
|
|
316
|
+
rather than drawing a menu nothing can answer.
|
|
317
|
+
|
|
318
|
+
Both accept every graph-shaping flag `callidescope` itself does, since
|
|
319
|
+
resolving an address still means tracing the workspace first:
|
|
320
|
+
`--directories`, `--entry-point-addresses`, `--entry-point-decorators`,
|
|
321
|
+
`--exclude`, `--exclude-callees`, `--include-exported-functions`,
|
|
322
|
+
`--include-orphans`, and `--include-tests`, plus `--config` and `--format`.
|
|
323
|
+
Each means exactly what it means above.
|
|
324
|
+
|
|
325
|
+
Neither takes `--check`, `--write`, `--json`, `--markdown`, `--mermaid`,
|
|
326
|
+
`--maximum-breadth`, or `--maximum-depth`: a lookup gates nothing and writes
|
|
327
|
+
nothing, so a limit or a destination has no value here to override. It only
|
|
328
|
+
ever prints, to whichever format `--format` names.
|
|
329
|
+
|
|
330
|
+
Under `--format json` both print **an array**, whatever the address count, so
|
|
331
|
+
one run is one document `JSON.parse` accepts without first counting how many
|
|
332
|
+
addresses were asked about.
|
|
333
|
+
|
|
334
|
+
**`depth`** prints every path above the callable and every path below it —
|
|
335
|
+
every caller chain up to a root, every callee chain down to a leaf — rather
|
|
336
|
+
than folding each direction into the single deepest one `callidescope`'s own
|
|
337
|
+
report keeps. A callable reached from a dozen places, or reaching a dozen
|
|
338
|
+
leaves, is exactly the shape this is asked to show in full, capped at 200
|
|
339
|
+
paths per direction so a widely-called utility cannot make the walk run away;
|
|
340
|
+
a capped run says so.
|
|
341
|
+
|
|
342
|
+
**`breadth`** prints the callable's direct callees and direct callers side by
|
|
343
|
+
side — what it calls, and what calls it — the two questions a refactor or a
|
|
344
|
+
rename needs answered together before either one is safe.
|
|
345
|
+
|
|
346
|
+
## What a scoped run measures
|
|
347
|
+
|
|
348
|
+
`--directories` narrows a run to the project directories it names. The trace
|
|
349
|
+
still follows calls out of them: a scoped run builds a TypeScript program for
|
|
350
|
+
each named project **and for every project those projects' imports transitively
|
|
351
|
+
reach** — the named projects' **dependency closure**.
|
|
352
|
+
|
|
353
|
+
That closure is what makes a scoped depth a measurement rather than an
|
|
354
|
+
approximation. A project's own `tsconfig.json` never lists the packages it
|
|
355
|
+
imports, so without it a call leaving the named directory landed in code no
|
|
356
|
+
traced project owned — and a call into unowned code is treated as external, a
|
|
357
|
+
leaf, exactly like a call into an installed package. The stack ended at the
|
|
358
|
+
package boundary and reported a plain number, with nothing in the report saying
|
|
359
|
+
it had stopped early.
|
|
360
|
+
|
|
361
|
+
Scoped to `packages/ic-suite/codometer/codometer-changes`, this repository traces 3 projects, 33
|
|
362
|
+
files, and 102 callables, in about 1.7 seconds. The same command before the
|
|
363
|
+
closure traced 1 project, 8 files, and 31 callables.
|
|
364
|
+
|
|
365
|
+
A closure is derived from what the compiler really read — every file in a
|
|
366
|
+
project's program — rather than from the dependency list a `package.json`
|
|
367
|
+
declares. A manifest says what a package may import; the program says what it
|
|
368
|
+
did. So a type-only import widens a closure, and a declared dependency nothing
|
|
369
|
+
imports does not.
|
|
370
|
+
|
|
371
|
+
### What a closure does not reach
|
|
372
|
+
|
|
373
|
+
**Dependents, deliberately.** The walk runs downward only: a project that
|
|
374
|
+
imports a scoped one is not built, and its stacks do not appear. A call stack
|
|
375
|
+
runs downward too, so a dependent contributes no frames below anything the run
|
|
376
|
+
measures — and leaving it out is what stops an edit in a dependent from moving
|
|
377
|
+
the scoped project's numbers.
|
|
378
|
+
|
|
379
|
+
**A project root holding no `package.json`.** A manifest is what makes a
|
|
380
|
+
directory something another project can depend _on_. A root holding only a
|
|
381
|
+
`tsconfig.json` is where a repository keeps shared settings, and shared settings
|
|
382
|
+
are read by every project rather than depended on by any. Without this rule one
|
|
383
|
+
such directory drags the whole workspace in: each package's `tsconfig.json`
|
|
384
|
+
includes its own tooling configuration files, each of those imports out of the
|
|
385
|
+
shared directory, and that directory's program then reaches every toolchain the
|
|
386
|
+
repository configures.
|
|
387
|
+
|
|
388
|
+
**The workspace root.** A project whose root contains every other project cannot
|
|
389
|
+
be a meaningful dependency of any of them, whatever else it holds.
|
|
390
|
+
|
|
391
|
+
Both rules refuse a _destination_ only. Naming a directory is the caller saying
|
|
392
|
+
it should be traced, and a run naming no directory names every project — so
|
|
393
|
+
either kind is still traced in full when asked for directly, and a
|
|
394
|
+
whole-workspace run's findings are exactly what they were. What the rules cost
|
|
395
|
+
is that a call into a refused directory resolves to no frame, the way every call
|
|
396
|
+
out of a package did before closures existed.
|
|
397
|
+
|
|
398
|
+
### Numbers that do not move with the scope
|
|
399
|
+
|
|
400
|
+
A file is owned by the **deepest project root containing it**, whichever program
|
|
401
|
+
pulled it in — not by whichever program happened to read it first. That is what
|
|
402
|
+
makes two runs agree: the same callable measures the same depth whether the run
|
|
403
|
+
was scoped to its own project, scoped to something that depends on it, or scoped
|
|
404
|
+
to nothing at all — provided each of those runs builds the project declaring it,
|
|
405
|
+
which a refused destination's is not.
|
|
406
|
+
|
|
407
|
+
Both findings survive a downward-only scope, which is worth saying because it is
|
|
408
|
+
not obvious: depth and breadth both fold over a callable's **callees**, which
|
|
409
|
+
run downward — precisely what a closure holds in full. Neither needs the
|
|
410
|
+
dependents a scoped run leaves out.
|
|
411
|
+
|
|
412
|
+
**Publishing does not widen with measurement.** A run publishes a section only
|
|
413
|
+
for the projects it was scoped to, so a scoped run never rewrites a section in a
|
|
414
|
+
dependency it merely measured — and a whole-workspace run still publishes every
|
|
415
|
+
project's, because a run naming no directory has every project as a scoped one.
|
|
416
|
+
|
|
417
|
+
[`dependency-closure`](../callidescope-examples/examples/dependency-closure/README.md)
|
|
418
|
+
works all of this through on a real call that leaves its package, with the
|
|
419
|
+
projects it reaches and why listed one by one.
|
|
420
|
+
|
|
421
|
+
## Scoping by Nx project name
|
|
422
|
+
|
|
423
|
+
`--directories` takes paths, because callidescope has no idea what workspace
|
|
424
|
+
tool you use — a directory holding a `tsconfig.json` is the whole contract, and
|
|
425
|
+
it holds in a monorepo, a single package, or neither.
|
|
426
|
+
|
|
427
|
+
An Nx workspace can hand the selecting to Nx instead, through
|
|
428
|
+
[`@callidescope/nx`](../callidescope-nx/README.md) — a plugin that infers a
|
|
429
|
+
trace target onto every project:
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
nx run-many -t trace --projects=tag:type:package
|
|
433
|
+
nx affected -t trace
|
|
434
|
+
nx run callidescope-graph:depth --addresses="src/foo.service.ts#FooService.bar"
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
It infers a `trace`, a `depth`, and a `breadth` target onto every project, so
|
|
438
|
+
`callidescope`, `depth`, and `breadth` all become tasks — with Nx's own project
|
|
439
|
+
selection, caching, and affected-detection for free, none of which a flag here
|
|
440
|
+
could offer. It also resolves each project's **Nx dependencies** into
|
|
441
|
+
directories of their own, which makes them projects the run is _scoped_ to
|
|
442
|
+
rather than ones it merely measures — so their sections are published too, and
|
|
443
|
+
the selection comes from the declared graph rather than from whatever the
|
|
444
|
+
compiler happened to read. A stack is not truncated at a package boundary either
|
|
445
|
+
way: the dependency closure above is what stops that, and it needs no Nx graph.
|
|
446
|
+
|
|
447
|
+
It is a separate package rather than a flag here on purpose: this CLI depends
|
|
448
|
+
on nothing Nx-shaped, and a flag that only worked when an optional package
|
|
449
|
+
happened to be installed would advertise in `--help` something that silently
|
|
450
|
+
did nothing without it.
|
|
451
|
+
|
|
452
|
+
## What it reports
|
|
453
|
+
|
|
454
|
+
**Deep call stacks.** The single deepest path below each entry point, when it
|
|
455
|
+
exceeds `maximumDepth`. Only one path per entry point is ever built — the deepest —
|
|
456
|
+
so a wide graph costs no more than a narrow one.
|
|
457
|
+
|
|
458
|
+
**Wide callables.** A callable calling more distinct callables directly than
|
|
459
|
+
`maximumBreadth` allows, reported per project the same way depth is.
|
|
460
|
+
|
|
461
|
+
A depth printed as `≥ 10` is a floor rather than a measurement: something on
|
|
462
|
+
that path could not be followed — a callback invoked through a parameter, a
|
|
463
|
+
computed member name — and the run says so rather than quietly under-reporting.
|
|
464
|
+
Narrowing a run is never what causes one: a scoped run builds its dependencies'
|
|
465
|
+
programs too, so a stack leaving the named package keeps going and reports a
|
|
466
|
+
plain number like any other.
|
|
467
|
+
|
|
468
|
+
## What a frame carries
|
|
469
|
+
|
|
470
|
+
Every frame is annotated from the type checker, because a stack of bare names
|
|
471
|
+
is a list of places to go look rather than something you can read:
|
|
472
|
+
|
|
473
|
+
- **The signature** — parameter names and types, and the return type. On this
|
|
474
|
+
repository that is all 1,338 reported frames.
|
|
475
|
+
- **The documentation summary** — the JSDoc prose, collapsed to one line. 801
|
|
476
|
+
of those 1,338 have one.
|
|
477
|
+
- **Tags**, including `@deprecated`, which marks the frame inline.
|
|
478
|
+
|
|
479
|
+
Both come from the checker rather than the comment trivia, which is what makes
|
|
480
|
+
them right on the shapes this repository writes. An overload's documentation
|
|
481
|
+
lives on the signature rather than the implementation the graph points at; an
|
|
482
|
+
arrow-typed property's lives on the property rather than the arrow; a
|
|
483
|
+
destructured parameter has no name at all in the syntax. The checker resolves
|
|
484
|
+
all three.
|
|
485
|
+
|
|
486
|
+
A signature longer than 80 characters collapses to `(…): ReturnType`. That is
|
|
487
|
+
almost always a NestJS constructor taking a dozen injected services — which
|
|
488
|
+
services those are is noise at the point where you are reading a stack, and a
|
|
489
|
+
440-character line destroys the indentation that makes the stack legible.
|
|
490
|
+
|
|
491
|
+
A summary longer than 120 characters prints only its opening sentence. Comments
|
|
492
|
+
here state what a callable does and then explain why, and the first half is the
|
|
493
|
+
half that orients someone reading a stack. It prints unmarked, because a whole
|
|
494
|
+
sentence is a complete thought rather than an elision and the frame's
|
|
495
|
+
`file:line` already points at the rest. Only a single sentence with no boundary
|
|
496
|
+
to find is cut on a word and marked `…`, which across this repository is 51 of
|
|
497
|
+
those 801 summaries.
|
|
498
|
+
|
|
499
|
+
**Shortening applies to the printed tree only.** The JSON report carries every
|
|
500
|
+
comment in full, because a machine reading it has no line width to respect —
|
|
501
|
+
the longest in the workspace runs 1,507 characters.
|
|
502
|
+
|
|
503
|
+
Annotations are read only for the frames a report actually prints, not for all
|
|
504
|
+
4,727 callables. Rendering a type is the one genuinely costly thing the checker
|
|
505
|
+
does, and reports touch a few hundred frames.
|
|
506
|
+
|
|
507
|
+
## How it follows a call
|
|
508
|
+
|
|
509
|
+
The TypeScript type checker resolves each call site. A call on a
|
|
510
|
+
constructor-injected property needs no special handling: the parameter property
|
|
511
|
+
carries the service's type, and the checker follows it.
|
|
512
|
+
|
|
513
|
+
| Written as | Resolved by |
|
|
514
|
+
| ---------- | ----------- |
|
|
515
|
+
| `helper()` | The symbol at the callee, unwrapped through import aliases |
|
|
516
|
+
| `this.service.load()` | The symbol at the member name — the injected-dependency case |
|
|
517
|
+
| `provider.ingest()` | Every class structurally satisfying the interface, capped by the implementation-candidate cap |
|
|
518
|
+
| `super.run()` | The base declaration the checker resolves to |
|
|
519
|
+
| `new Thing()` | The constructor, when it has a body |
|
|
520
|
+
| `list.map(callback)` | The callback, as its own frame — `map` itself is external |
|
|
521
|
+
| `target[key]()` | Nothing. Recorded as unfollowable rather than guessed |
|
|
522
|
+
|
|
523
|
+
Calls into **installed** dependencies are leaves. Whether `Array.prototype.map`
|
|
524
|
+
is deeply implemented says nothing about whether _your_ layering is too deep,
|
|
525
|
+
and counting it would make every number move on an unrelated upgrade. A call
|
|
526
|
+
into another project of the same workspace is not one of these: it resolves to a
|
|
527
|
+
real frame, because a scoped run builds that project's program too — see
|
|
528
|
+
[what a scoped run measures](#what-a-scoped-run-measures).
|
|
529
|
+
|
|
530
|
+
Structural matching is not optional: classes here routinely satisfy an interface
|
|
531
|
+
without writing `implements`, and its members are usually arrow-typed properties
|
|
532
|
+
rather than method signatures. A nominal-only index finds none of them.
|
|
533
|
+
|
|
534
|
+
## Recursion
|
|
535
|
+
|
|
536
|
+
Cycles are collapsed before depth is measured, so a mutually recursive cluster
|
|
537
|
+
of three contributes three frames once — an honest floor on a stack that has no
|
|
538
|
+
ceiling. The alternative, detecting a repeat visit mid-walk, makes the answer
|
|
539
|
+
depend on which path arrived first, so the same function reports different
|
|
540
|
+
depths from different entry points and between runs. A linter whose numbers move
|
|
541
|
+
on their own is not usable as a gate.
|
|
542
|
+
|
|
543
|
+
## Entry points
|
|
544
|
+
|
|
545
|
+
Depth is only meaningful relative to a root, and most code here is called by a
|
|
546
|
+
framework rather than by the repository. Roots are therefore configurable:
|
|
547
|
+
decorated methods, lifecycle hooks, `main.ts` bootstraps, and every `src/index.ts`
|
|
548
|
+
export.
|
|
549
|
+
|
|
550
|
+
Anything left with no caller is promoted to an **orphan root**. That is the
|
|
551
|
+
safety net: without it, a missing rule silently removes a whole subtree from
|
|
552
|
+
every measurement instead of showing up.
|
|
553
|
+
|
|
554
|
+
## Agent skills
|
|
555
|
+
|
|
556
|
+
Agent skills for coding agents working with callidescope are published in
|
|
557
|
+
[`@callidescope/agents`](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/callidescope/callidescope-agents):
|
|
558
|
+
|
|
559
|
+
| Skill | Description |
|
|
560
|
+
| ----- | ----------- |
|
|
561
|
+
| [`callidescope-trace`](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/callidescope/callidescope-agents/skills/callidescope-trace) | Trace the workspace or inspect depth and breadth for named callables |
|
|
562
|
+
| [`callidescope-configure`](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/callidescope/callidescope-agents/skills/callidescope-configure) | Configure callidescope flags, rules, and `callidescope.config.ts` |
|
|
563
|
+
| [`callidescope-triage`](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/callidescope/callidescope-agents/skills/callidescope-triage) | Triage and resolve depth limit breaches and gate failures |
|
|
564
|
+
|
|
565
|
+
## Examples
|
|
566
|
+
|
|
567
|
+
Every rule, finding, and output on this page has a worked example in
|
|
568
|
+
[`@callidescope/examples`](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/callidescope/callidescope-examples) — a small
|
|
569
|
+
codebase written to be traced, with its rendered reports committed. Its
|
|
570
|
+
[`AGENTS.md`](https://github.com/Organizzolini/codebase/tree/main/packages/ic-suite/callidescope/callidescope-examples/AGENTS.md) is a "callidescope reported X
|
|
571
|
+
→ open this example" table, so a failing `gate` has somewhere to go.
|
|
572
|
+
|
|
573
|
+
## Non-goals
|
|
574
|
+
|
|
575
|
+
**Control flow graphs.** Intra-procedural branching is already capped by this
|
|
576
|
+
repository's ESLint rules (`complexity`, `max-depth`, `max-statements`), and a
|
|
577
|
+
CFG is not what call-stack depth needs. Building one would duplicate ESLint at
|
|
578
|
+
much higher cost.
|
|
579
|
+
|
|
580
|
+
**Clone detection.** Repeated call-stack shapes are not a useful signal in a
|
|
581
|
+
dependency-injected codebase — the shared suffix _is_ the service layer, so
|
|
582
|
+
every resolver ends the same way. `jscpd` already covers real duplication.
|
|
583
|
+
|
|
584
|
+
## Packages
|
|
585
|
+
|
|
586
|
+
| Package | Role |
|
|
587
|
+
| ------- | ---- |
|
|
588
|
+
| [`@callidescope/cli`](.) | Orchestrates a run: traces the workspace, plans what to check, and reports |
|
|
589
|
+
| [`@callidescope/configuration`](../callidescope-configuration/README.md) | Reads `callidescope.config.ts` and resolves the limits |
|
|
590
|
+
| [`@callidescope/graph`](../callidescope-graph/README.md) | Builds the call graph from traced source and measures depth and breadth |
|
|
591
|
+
| [`@callidescope/nx`](../callidescope-nx/README.md) | Nx plugin: per-project `trace`/`depth`/`breadth` targets, scoped through the Nx dependency graph |
|
|
592
|
+
| [`@callidescope/output`](../callidescope-output/README.md) | Renders findings into markdown, mermaid, and JSON |
|
|
593
|
+
| [`@callidescope/examples`](../callidescope-examples/README.md) | A traced fixture codebase carrying one worked example of everything above |
|
|
594
|
+
|
|
595
|
+
## Start
|
|
596
|
+
|
|
597
|
+
```bash
|
|
598
|
+
nx run callidescope-cli:start
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
## Test
|
|
602
|
+
|
|
603
|
+
```bash
|
|
604
|
+
nx run callidescope-cli:vitest
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
## Contributing
|
|
608
|
+
|
|
609
|
+
```bash
|
|
610
|
+
nx run callidescope-cli:lint-code --configuration=check
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
## License
|
|
614
|
+
|
|
615
|
+
MIT — see [LICENSE](../../../../LICENSE).
|
|
616
|
+
|
|
617
|
+
## 👔 Conformetry
|
|
618
|
+
|
|
619
|
+
This project was generated from the [nestjs-command-project](../../../../configuration/conformetry-templates/nestjs-command-project) conformetry template.
|
|
620
|
+
|
|
621
|
+
<!-- callidescope:start -->
|
|
622
|
+
|
|
623
|
+
## 🔭 Callidescope
|
|
624
|
+
|
|
625
|
+
Call stacks traced through `packages/ic-suite/callidescope/callidescope-cli`, deepest first. Each frame shows what it takes, what it returns, and what its documentation says.
|
|
626
|
+
|
|
627
|
+
| Measure | Value |
|
|
628
|
+
| --- | --- |
|
|
629
|
+
| Callables | 113 |
|
|
630
|
+
| Files | 34 |
|
|
631
|
+
| Calls traced | 153 |
|
|
632
|
+
| Call stacks | 42 |
|
|
633
|
+
| Deepest stack | 15 |
|
|
634
|
+
| Stacks through recursion | 0 |
|
|
635
|
+
| Unfollowable calls | 5 |
|
|
636
|
+
|
|
637
|
+
### Limits
|
|
638
|
+
|
|
639
|
+
What this project is judged against, as declared in its own `callidescope.config.ts`.
|
|
640
|
+
|
|
641
|
+
| Limit | Value |
|
|
642
|
+
| --- | --- |
|
|
643
|
+
| `maximumDepth` | 15 |
|
|
644
|
+
| `maximumBreadth` | 11 |
|
|
645
|
+
|
|
646
|
+
### Call stacks (depth)
|
|
647
|
+
|
|
648
|
+
**1. `CallidescopeCommand.run`** — depth ≥ 15 · decorated-method
|
|
649
|
+
|
|
650
|
+
```text
|
|
651
|
+
🚀 CallidescopeCommand.run(passedParameters: string[], options: CallidescopeCommandOptions): Promise<void> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:469]
|
|
652
|
+
↳ Traces the workspace, reports, and sets the exit code.
|
|
653
|
+
└─> CallidescopeCommand.traceWorkspace(options: CallidescopeCommandOptions): Promise<void> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:174]
|
|
654
|
+
↳ Traces the workspace, reports, and sets the exit code.
|
|
655
|
+
└─> CallidescopeService.trace(args: TraceArguments): Promise<TraceOutcome> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:408]
|
|
656
|
+
↳ Traces a workspace and returns everything the run found.
|
|
657
|
+
└─> CallidescopeService.analyze(…): AnalyzeOutcome [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:295]
|
|
658
|
+
↳ Derives every finding from the collected callables.
|
|
659
|
+
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [packages/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
|
|
660
|
+
↳ Builds the call graph and everything derived from it.
|
|
661
|
+
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
|
|
662
|
+
↳ Builds every edge in the graph, and records the calls it could not.
|
|
663
|
+
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
|
|
664
|
+
↳ Turns one call site into the edges and non-resolutions it produced.
|
|
665
|
+
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
|
|
666
|
+
↳ Resolves one call site, choosing the right strategy for its shape.
|
|
667
|
+
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
|
|
668
|
+
↳ Resolves a call expression to every declaration it can reach.
|
|
669
|
+
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
|
|
670
|
+
↳ Resolves an already-identified callee symbol to its declarations.
|
|
671
|
+
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
|
|
672
|
+
↳ Expands an interface or abstract member to its implementations.
|
|
673
|
+
└─> ClassesService.resolveImplementations(…): ImplementationLookup [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
|
|
674
|
+
↳ Finds the concrete declarations one interface member resolves to.
|
|
675
|
+
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
|
|
676
|
+
└─> ClassesService.readMemberDeclarations(…): Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
|
|
677
|
+
↳ Reads one member's concrete declarations off a candidate class.
|
|
678
|
+
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
|
|
679
|
+
```
|
|
680
|
+
|
|
681
|
+
**2. `BreadthCommand.run`** — depth ≥ 15 · decorated-method
|
|
682
|
+
|
|
683
|
+
```text
|
|
684
|
+
🚀 BreadthCommand.run(_passedParameters: string[], options: AddressCommandOptions): Promise<void> [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:315]
|
|
685
|
+
↳ Prints each named callable's direct callers and callees.
|
|
686
|
+
└─> BreadthCommand.printBreadth(options: AddressCommandOptions): Promise<void> [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:127]
|
|
687
|
+
↳ Resolves the addresses and prints their direct callers and callees.
|
|
688
|
+
└─> AddressLookupService.locate(options: AddressCommandOptions): Promise<LocatedWorkspace> [packages/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87]
|
|
689
|
+
↳ Loads the configuration and traces the workspace, matching nothing yet.
|
|
690
|
+
└─> CallidescopeService.locate(args: TraceArguments): Promise<LocateOutcome> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394]
|
|
691
|
+
↳ Collects every callable and assembles the graph over them, without running the analysis a full trace does.
|
|
692
|
+
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [packages/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
|
|
693
|
+
↳ Builds the call graph and everything derived from it.
|
|
694
|
+
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
|
|
695
|
+
↳ Builds every edge in the graph, and records the calls it could not.
|
|
696
|
+
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
|
|
697
|
+
↳ Turns one call site into the edges and non-resolutions it produced.
|
|
698
|
+
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
|
|
699
|
+
↳ Resolves one call site, choosing the right strategy for its shape.
|
|
700
|
+
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
|
|
701
|
+
↳ Resolves a call expression to every declaration it can reach.
|
|
702
|
+
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
|
|
703
|
+
↳ Resolves an already-identified callee symbol to its declarations.
|
|
704
|
+
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
|
|
705
|
+
↳ Expands an interface or abstract member to its implementations.
|
|
706
|
+
└─> ClassesService.resolveImplementations(…): ImplementationLookup [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
|
|
707
|
+
↳ Finds the concrete declarations one interface member resolves to.
|
|
708
|
+
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
|
|
709
|
+
└─> ClassesService.readMemberDeclarations(…): Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
|
|
710
|
+
↳ Reads one member's concrete declarations off a candidate class.
|
|
711
|
+
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
|
|
712
|
+
```
|
|
713
|
+
|
|
714
|
+
**3. `DepthCommand.run`** — depth ≥ 15 · decorated-method
|
|
715
|
+
|
|
716
|
+
```text
|
|
717
|
+
🚀 DepthCommand.run(_passedParameters: string[], options: AddressCommandOptions): Promise<void> [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:290]
|
|
718
|
+
↳ Resolves the addresses, traces every path above and below each, and prints them.
|
|
719
|
+
└─> DepthCommand.printDepth(options: AddressCommandOptions): Promise<void> [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:89]
|
|
720
|
+
↳ Traces every path above and below each resolved address, and prints them.
|
|
721
|
+
└─> AddressLookupService.locate(options: AddressCommandOptions): Promise<LocatedWorkspace> [packages/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87]
|
|
722
|
+
↳ Loads the configuration and traces the workspace, matching nothing yet.
|
|
723
|
+
└─> CallidescopeService.locate(args: TraceArguments): Promise<LocateOutcome> [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394]
|
|
724
|
+
↳ Collects every callable and assembles the graph over them, without running the analysis a full trace does.
|
|
725
|
+
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [packages/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
|
|
726
|
+
↳ Builds the call graph and everything derived from it.
|
|
727
|
+
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
|
|
728
|
+
↳ Builds every edge in the graph, and records the calls it could not.
|
|
729
|
+
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
|
|
730
|
+
↳ Turns one call site into the edges and non-resolutions it produced.
|
|
731
|
+
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
|
|
732
|
+
↳ Resolves one call site, choosing the right strategy for its shape.
|
|
733
|
+
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
|
|
734
|
+
↳ Resolves a call expression to every declaration it can reach.
|
|
735
|
+
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
|
|
736
|
+
↳ Resolves an already-identified callee symbol to its declarations.
|
|
737
|
+
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [packages/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
|
|
738
|
+
↳ Expands an interface or abstract member to its implementations.
|
|
739
|
+
└─> ClassesService.resolveImplementations(…): ImplementationLookup [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
|
|
740
|
+
↳ Finds the concrete declarations one interface member resolves to.
|
|
741
|
+
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
|
|
742
|
+
└─> ClassesService.readMemberDeclarations(…): Declaration[] [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
|
|
743
|
+
↳ Reads one member's concrete declarations off a candidate class.
|
|
744
|
+
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [packages/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
<details>
|
|
748
|
+
<summary>39 more call stacks</summary>
|
|
749
|
+
|
|
750
|
+
**4. `LimitsCommand.run`** — depth ≥ 7 · decorated-method
|
|
751
|
+
|
|
752
|
+
```text
|
|
753
|
+
🚀 LimitsCommand.run(_passedParameters: string[], options?: LimitsCommandOptions): Promise<void> [packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.command.ts:85]
|
|
754
|
+
↳ Prints every project's resolved limits.
|
|
755
|
+
└─> LimitsService.list(options: LimitsCommandOptions): Promise<ProjectLimitRow[]> [packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.service.ts:150]
|
|
756
|
+
↳ Resolves every project's limits, workspace default first.
|
|
757
|
+
└─> ConfigurationService.loadConfigurationFile(args?: LoadConfigurationArguments): Promise<LoadedCallidescopeConfiguration> [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:87]
|
|
758
|
+
↳ Loads a configuration, and says what the file itself declared and which file answered.
|
|
759
|
+
└─> ConfigurationFileService.loadConfigurationFile(args?: LoadConfigurationArguments): Promise<LoadedCallidescopeConfiguration> [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration-file.service.ts:326]
|
|
760
|
+
↳ Loads a configuration, and says what the file itself declared and which file answered.
|
|
761
|
+
└─> ConfigurationFileService.resolveConfigurationPath(configurationPath: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration-file.service.ts:158]
|
|
762
|
+
↳ Resolves a configuration path against the cwd, then the repository root.
|
|
763
|
+
└─> ConfigurationFileService.findRepositoryRoot(): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration-file.service.ts:97]
|
|
764
|
+
↳ Walks upward from the process cwd looking for the repository root.
|
|
765
|
+
└─> ConfigurationFileService.some(…)(marker: ".git" | "pnpm-workspace.yaml"): boolean [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration-file.service.ts:102]
|
|
766
|
+
```
|
|
767
|
+
|
|
768
|
+
**5. `CallidescopeCommand.parseDirectories`** — depth 4 · decorated-method
|
|
769
|
+
|
|
770
|
+
```text
|
|
771
|
+
🚀 CallidescopeCommand.parseDirectories(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:292]
|
|
772
|
+
↳ Parses `--directories`, a comma-separated list of project directories.
|
|
773
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
774
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
775
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
776
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
777
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
**6. `CallidescopeCommand.parseEntryPointAddresses`** — depth 4 · decorated-method
|
|
781
|
+
|
|
782
|
+
```text
|
|
783
|
+
🚀 CallidescopeCommand.parseEntryPointAddresses(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:301]
|
|
784
|
+
↳ Parses `--entry-point-addresses`, overriding `entryPoints.addresses`.
|
|
785
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
786
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
787
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
788
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
789
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
**7. `CallidescopeCommand.parseEntryPointDecorators`** — depth 4 · decorated-method
|
|
793
|
+
|
|
794
|
+
```text
|
|
795
|
+
🚀 CallidescopeCommand.parseEntryPointDecorators(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:310]
|
|
796
|
+
↳ Parses `--entry-point-decorators`, overriding `entryPoints.decorators`.
|
|
797
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
798
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
799
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
800
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
801
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
**8. `CallidescopeCommand.parseExclude`** — depth 4 · decorated-method
|
|
805
|
+
|
|
806
|
+
```text
|
|
807
|
+
🚀 CallidescopeCommand.parseExclude(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:319]
|
|
808
|
+
↳ Parses `--exclude`, overriding `exclude`.
|
|
809
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
810
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
811
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
812
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
813
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
**9. `CallidescopeCommand.parseExcludeCallees`** — depth 4 · decorated-method
|
|
817
|
+
|
|
818
|
+
```text
|
|
819
|
+
🚀 CallidescopeCommand.parseExcludeCallees(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:328]
|
|
820
|
+
↳ Parses `--exclude-callees`, overriding `excludeCallees`.
|
|
821
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
822
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
823
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
824
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
825
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
826
|
+
```
|
|
827
|
+
|
|
828
|
+
**10. `BreadthCommand.parseAddresses`** — depth 4 · decorated-method
|
|
829
|
+
|
|
830
|
+
```text
|
|
831
|
+
🚀 BreadthCommand.parseAddresses(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:194]
|
|
832
|
+
↳ Parses `--addresses`, a comma-separated list of callable addresses.
|
|
833
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
834
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
835
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
836
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
837
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
**11. `BreadthCommand.parseDirectories`** — depth 4 · decorated-method
|
|
841
|
+
|
|
842
|
+
```text
|
|
843
|
+
🚀 BreadthCommand.parseDirectories(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:213]
|
|
844
|
+
↳ Parses `--directories`, a comma-separated list of project directories.
|
|
845
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
846
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
847
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
848
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
849
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
850
|
+
```
|
|
851
|
+
|
|
852
|
+
**12. `BreadthCommand.parseEntryPointAddresses`** — depth 4 · decorated-method
|
|
853
|
+
|
|
854
|
+
```text
|
|
855
|
+
🚀 BreadthCommand.parseEntryPointAddresses(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:222]
|
|
856
|
+
↳ Parses `--entry-point-addresses`, overriding `entryPoints.addresses`.
|
|
857
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
858
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
859
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
860
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
861
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
862
|
+
```
|
|
863
|
+
|
|
864
|
+
**13. `BreadthCommand.parseEntryPointDecorators`** — depth 4 · decorated-method
|
|
865
|
+
|
|
866
|
+
```text
|
|
867
|
+
🚀 BreadthCommand.parseEntryPointDecorators(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:231]
|
|
868
|
+
↳ Parses `--entry-point-decorators`, overriding `entryPoints.decorators`.
|
|
869
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
870
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
871
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
872
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
873
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
874
|
+
```
|
|
875
|
+
|
|
876
|
+
**14. `BreadthCommand.parseExclude`** — depth 4 · decorated-method
|
|
877
|
+
|
|
878
|
+
```text
|
|
879
|
+
🚀 BreadthCommand.parseExclude(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:240]
|
|
880
|
+
↳ Parses `--exclude`, overriding `exclude`.
|
|
881
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
882
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
883
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
884
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
885
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
**15. `BreadthCommand.parseExcludeCallees`** — depth 4 · decorated-method
|
|
889
|
+
|
|
890
|
+
```text
|
|
891
|
+
🚀 BreadthCommand.parseExcludeCallees(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:249]
|
|
892
|
+
↳ Parses `--exclude-callees`, overriding `excludeCallees`.
|
|
893
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
894
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
895
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
896
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
897
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
**16. `DepthCommand.parseAddresses`** — depth 4 · decorated-method
|
|
901
|
+
|
|
902
|
+
```text
|
|
903
|
+
🚀 DepthCommand.parseAddresses(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:168]
|
|
904
|
+
↳ Parses `--addresses`, a comma-separated list of callable addresses.
|
|
905
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
906
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
907
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
908
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
909
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
910
|
+
```
|
|
911
|
+
|
|
912
|
+
**17. `DepthCommand.parseDirectories`** — depth 4 · decorated-method
|
|
913
|
+
|
|
914
|
+
```text
|
|
915
|
+
🚀 DepthCommand.parseDirectories(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:187]
|
|
916
|
+
↳ Parses `--directories`, a comma-separated list of project directories.
|
|
917
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
918
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
919
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
920
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
921
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
**18. `DepthCommand.parseEntryPointAddresses`** — depth 4 · decorated-method
|
|
925
|
+
|
|
926
|
+
```text
|
|
927
|
+
🚀 DepthCommand.parseEntryPointAddresses(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:196]
|
|
928
|
+
↳ Parses `--entry-point-addresses`, overriding `entryPoints.addresses`.
|
|
929
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
930
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
931
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
932
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
933
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
934
|
+
```
|
|
935
|
+
|
|
936
|
+
**19. `DepthCommand.parseEntryPointDecorators`** — depth 4 · decorated-method
|
|
937
|
+
|
|
938
|
+
```text
|
|
939
|
+
🚀 DepthCommand.parseEntryPointDecorators(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:205]
|
|
940
|
+
↳ Parses `--entry-point-decorators`, overriding `entryPoints.decorators`.
|
|
941
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
942
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
943
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
944
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
945
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
946
|
+
```
|
|
947
|
+
|
|
948
|
+
**20. `DepthCommand.parseExclude`** — depth 4 · decorated-method
|
|
949
|
+
|
|
950
|
+
```text
|
|
951
|
+
🚀 DepthCommand.parseExclude(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:214]
|
|
952
|
+
↳ Parses `--exclude`, overriding `exclude`.
|
|
953
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
954
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
955
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
956
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
957
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
958
|
+
```
|
|
959
|
+
|
|
960
|
+
**21. `DepthCommand.parseExcludeCallees`** — depth 4 · decorated-method
|
|
961
|
+
|
|
962
|
+
```text
|
|
963
|
+
🚀 DepthCommand.parseExcludeCallees(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:223]
|
|
964
|
+
↳ Parses `--exclude-callees`, overriding `excludeCallees`.
|
|
965
|
+
└─> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:104]
|
|
966
|
+
↳ Splits a comma-separated flag value into its parts.
|
|
967
|
+
└─> InputService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:98]
|
|
968
|
+
↳ Splits `--directories`, a comma-separated list of project directories.
|
|
969
|
+
└─> InputService.map(…)(entry: string): string [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:103]
|
|
970
|
+
```
|
|
971
|
+
|
|
972
|
+
**22. `CallidescopeCommand.parseConfig`** — depth 3 · decorated-method
|
|
973
|
+
|
|
974
|
+
```text
|
|
975
|
+
🚀 CallidescopeCommand.parseConfig(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:283]
|
|
976
|
+
↳ Parses `--config`.
|
|
977
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
978
|
+
↳ Reads a flag that may have been written without a value.
|
|
979
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
980
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
981
|
+
```
|
|
982
|
+
|
|
983
|
+
**23. `CallidescopeCommand.parseFormat`** — depth 3 · decorated-method
|
|
984
|
+
|
|
985
|
+
```text
|
|
986
|
+
🚀 CallidescopeCommand.parseFormat(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:343]
|
|
987
|
+
↳ Parses `--format`, which decides what the run prints.
|
|
988
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
989
|
+
↳ Reads a flag that may have been written without a value.
|
|
990
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
991
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
992
|
+
```
|
|
993
|
+
|
|
994
|
+
**24. `CallidescopeCommand.parseIncludeExportedFunctions`** — depth 3 · decorated-method
|
|
995
|
+
|
|
996
|
+
```text
|
|
997
|
+
🚀 CallidescopeCommand.parseIncludeExportedFunctions(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:357]
|
|
998
|
+
↳ Parses `--include-exported-functions`, overriding the entry-point rule.
|
|
999
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1000
|
+
↳ Reads a flag that may have been written without a value.
|
|
1001
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1002
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1003
|
+
```
|
|
1004
|
+
|
|
1005
|
+
**25. `CallidescopeCommand.parseIncludeOrphans`** — depth 3 · decorated-method
|
|
1006
|
+
|
|
1007
|
+
```text
|
|
1008
|
+
🚀 CallidescopeCommand.parseIncludeOrphans(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:368]
|
|
1009
|
+
↳ Parses `--include-orphans`, overriding the entry-point rule.
|
|
1010
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1011
|
+
↳ Reads a flag that may have been written without a value.
|
|
1012
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1013
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1014
|
+
```
|
|
1015
|
+
|
|
1016
|
+
**26. `CallidescopeCommand.parseIncludeTests`** — depth 3 · decorated-method
|
|
1017
|
+
|
|
1018
|
+
```text
|
|
1019
|
+
🚀 CallidescopeCommand.parseIncludeTests(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:377]
|
|
1020
|
+
↳ Parses `--include-tests`, overriding the entry-point rule.
|
|
1021
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1022
|
+
↳ Reads a flag that may have been written without a value.
|
|
1023
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1024
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1025
|
+
```
|
|
1026
|
+
|
|
1027
|
+
**27. `CallidescopeCommand.parseJson`** — depth 3 · decorated-method
|
|
1028
|
+
|
|
1029
|
+
```text
|
|
1030
|
+
🚀 CallidescopeCommand.parseJson(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:386]
|
|
1031
|
+
↳ Parses `--json`.
|
|
1032
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1033
|
+
↳ Reads a flag that may have been written without a value.
|
|
1034
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1035
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
**28. `CallidescopeCommand.parseMarkdown`** — depth 3 · decorated-method
|
|
1039
|
+
|
|
1040
|
+
```text
|
|
1041
|
+
🚀 CallidescopeCommand.parseMarkdown(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:396]
|
|
1042
|
+
↳ Parses `--markdown`.
|
|
1043
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1044
|
+
↳ Reads a flag that may have been written without a value.
|
|
1045
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1046
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1047
|
+
```
|
|
1048
|
+
|
|
1049
|
+
**29. `CallidescopeCommand.parseMaximumBreadth`** — depth 3 · decorated-method
|
|
1050
|
+
|
|
1051
|
+
```text
|
|
1052
|
+
🚀 CallidescopeCommand.parseMaximumBreadth(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:412]
|
|
1053
|
+
↳ Parses `--maximum-breadth`, overriding `limits.maximumBreadth`.
|
|
1054
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1055
|
+
↳ Reads a flag that may have been written without a value.
|
|
1056
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1057
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1058
|
+
```
|
|
1059
|
+
|
|
1060
|
+
**30. `CallidescopeCommand.parseMaximumDepth`** — depth 3 · decorated-method
|
|
1061
|
+
|
|
1062
|
+
```text
|
|
1063
|
+
🚀 CallidescopeCommand.parseMaximumDepth(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:421]
|
|
1064
|
+
↳ Parses `--maximum-depth`, overriding `limits.maximumDepth`.
|
|
1065
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1066
|
+
↳ Reads a flag that may have been written without a value.
|
|
1067
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1068
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1069
|
+
```
|
|
1070
|
+
|
|
1071
|
+
**31. `CallidescopeCommand.parseMermaid`** — depth 3 · decorated-method
|
|
1072
|
+
|
|
1073
|
+
```text
|
|
1074
|
+
🚀 CallidescopeCommand.parseMermaid(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:430]
|
|
1075
|
+
↳ Parses `--mermaid`.
|
|
1076
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1077
|
+
↳ Reads a flag that may have been written without a value.
|
|
1078
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1079
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1080
|
+
```
|
|
1081
|
+
|
|
1082
|
+
**32. `BreadthCommand.parseConfig`** — depth 3 · decorated-method
|
|
1083
|
+
|
|
1084
|
+
```text
|
|
1085
|
+
🚀 BreadthCommand.parseConfig(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:204]
|
|
1086
|
+
↳ Parses `--config`.
|
|
1087
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1088
|
+
↳ Reads a flag that may have been written without a value.
|
|
1089
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1090
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1091
|
+
```
|
|
1092
|
+
|
|
1093
|
+
**33. `BreadthCommand.parseFormat`** — depth 3 · decorated-method
|
|
1094
|
+
|
|
1095
|
+
```text
|
|
1096
|
+
🚀 BreadthCommand.parseFormat(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:264]
|
|
1097
|
+
↳ Parses `--format`.
|
|
1098
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1099
|
+
↳ Reads a flag that may have been written without a value.
|
|
1100
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1101
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1102
|
+
```
|
|
1103
|
+
|
|
1104
|
+
**34. `BreadthCommand.parseIncludeExportedFunctions`** — depth 3 · decorated-method
|
|
1105
|
+
|
|
1106
|
+
```text
|
|
1107
|
+
🚀 BreadthCommand.parseIncludeExportedFunctions(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:278]
|
|
1108
|
+
↳ Parses `--include-exported-functions`, overriding the entry-point rule.
|
|
1109
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1110
|
+
↳ Reads a flag that may have been written without a value.
|
|
1111
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1112
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1113
|
+
```
|
|
1114
|
+
|
|
1115
|
+
**35. `BreadthCommand.parseIncludeOrphans`** — depth 3 · decorated-method
|
|
1116
|
+
|
|
1117
|
+
```text
|
|
1118
|
+
🚀 BreadthCommand.parseIncludeOrphans(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:289]
|
|
1119
|
+
↳ Parses `--include-orphans`, overriding the entry-point rule.
|
|
1120
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1121
|
+
↳ Reads a flag that may have been written without a value.
|
|
1122
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1123
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
**36. `BreadthCommand.parseIncludeTests`** — depth 3 · decorated-method
|
|
1127
|
+
|
|
1128
|
+
```text
|
|
1129
|
+
🚀 BreadthCommand.parseIncludeTests(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:298]
|
|
1130
|
+
↳ Parses `--include-tests`, overriding the entry-point rule.
|
|
1131
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1132
|
+
↳ Reads a flag that may have been written without a value.
|
|
1133
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1134
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1135
|
+
```
|
|
1136
|
+
|
|
1137
|
+
**37. `DepthCommand.parseConfig`** — depth 3 · decorated-method
|
|
1138
|
+
|
|
1139
|
+
```text
|
|
1140
|
+
🚀 DepthCommand.parseConfig(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:178]
|
|
1141
|
+
↳ Parses `--config`.
|
|
1142
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1143
|
+
↳ Reads a flag that may have been written without a value.
|
|
1144
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1145
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1146
|
+
```
|
|
1147
|
+
|
|
1148
|
+
**38. `DepthCommand.parseFormat`** — depth 3 · decorated-method
|
|
1149
|
+
|
|
1150
|
+
```text
|
|
1151
|
+
🚀 DepthCommand.parseFormat(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:238]
|
|
1152
|
+
↳ Parses `--format`.
|
|
1153
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1154
|
+
↳ Reads a flag that may have been written without a value.
|
|
1155
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1156
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1157
|
+
```
|
|
1158
|
+
|
|
1159
|
+
**39. `DepthCommand.parseIncludeExportedFunctions`** — depth 3 · decorated-method
|
|
1160
|
+
|
|
1161
|
+
```text
|
|
1162
|
+
🚀 DepthCommand.parseIncludeExportedFunctions(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:252]
|
|
1163
|
+
↳ Parses `--include-exported-functions`, overriding the entry-point rule.
|
|
1164
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1165
|
+
↳ Reads a flag that may have been written without a value.
|
|
1166
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1167
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1168
|
+
```
|
|
1169
|
+
|
|
1170
|
+
**40. `DepthCommand.parseIncludeOrphans`** — depth 3 · decorated-method
|
|
1171
|
+
|
|
1172
|
+
```text
|
|
1173
|
+
🚀 DepthCommand.parseIncludeOrphans(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:263]
|
|
1174
|
+
↳ Parses `--include-orphans`, overriding the entry-point rule.
|
|
1175
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1176
|
+
↳ Reads a flag that may have been written without a value.
|
|
1177
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1178
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1179
|
+
```
|
|
1180
|
+
|
|
1181
|
+
**41. `DepthCommand.parseIncludeTests`** — depth 3 · decorated-method
|
|
1182
|
+
|
|
1183
|
+
```text
|
|
1184
|
+
🚀 DepthCommand.parseIncludeTests(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:272]
|
|
1185
|
+
↳ Parses `--include-tests`, overriding the entry-point rule.
|
|
1186
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1187
|
+
↳ Reads a flag that may have been written without a value.
|
|
1188
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1189
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1190
|
+
```
|
|
1191
|
+
|
|
1192
|
+
**42. `LimitsCommand.parseConfig`** — depth 3 · decorated-method
|
|
1193
|
+
|
|
1194
|
+
```text
|
|
1195
|
+
🚀 LimitsCommand.parseConfig(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.command.ts:70]
|
|
1196
|
+
↳ Parses `--config`.
|
|
1197
|
+
└─> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/configuration/configuration.service.ts:109]
|
|
1198
|
+
↳ Reads a flag that may have been written without a value.
|
|
1199
|
+
└─> InputService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/callidescope/callidescope-configuration/src/modules/input/input.service.ts:108]
|
|
1200
|
+
↳ Trims an optional string option, treating blank as absent.
|
|
1201
|
+
```
|
|
1202
|
+
|
|
1203
|
+
</details>
|
|
1204
|
+
|
|
1205
|
+
### Breadth
|
|
1206
|
+
|
|
1207
|
+
| Callable | Breadth | Calls directly | Location |
|
|
1208
|
+
| --- | --- | --- | --- |
|
|
1209
|
+
| `CallidescopeCommand.traceWorkspace` | 10 | `ConfigurationService.resolveFormatOption`, `ConfigurationService.prepareRun`, `CallidescopeCommand.reject`, `CallidescopeService.trace`, `UnresolvedEntryPointAddressError.constructor`, `CallidescopeCommand.map(…)`, `CallidescopeCommand.report`, `ConfigurationService.touchesFiles`, `WriteDestinationsService.syncDestinations`, `ReportFindingsService.reportFindings` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:174` |
|
|
1210
|
+
| `CallidescopeService.discoverCallables` | 9 | `CallidescopeService.discoverPrograms`, `CallidescopeService.map(…)`, `CallidescopeService.loadProjectDeclarations`, `ExternalService.configure`, `ClassesService.build`, `CallablesService.collect`, `FileFilterService.buildProjectFileFilter`, `CallidescopeService.map(…)`, `CallidescopeService.map(…)` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:83` |
|
|
1211
|
+
| `CallidescopeService.analyze` | 7 | `GraphAssemblyService.assemble`, `EntriesService.resolve`, `ProjectReportsService.build`, `CallidescopeService.filter(…)`, `CallidescopeService.readMaximumDepth`, `ProjectReportsService.findDeepStacks`, `ProjectReportsService.findWideCallables` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:295` |
|
|
1212
|
+
|
|
1213
|
+
<details>
|
|
1214
|
+
<summary>73 more callables</summary>
|
|
1215
|
+
|
|
1216
|
+
| Callable | Breadth | Calls directly | Location |
|
|
1217
|
+
| --- | --- | --- | --- |
|
|
1218
|
+
| `CallidescopeService.loadProjectDeclarations` | 6 | `ConfigurationService.loadProjectConfigurations`, `CallidescopeService.map(…)`, `CallidescopeService.map(…)`, `CallidescopeService.filter(…)`, `ConfigurationService.resolveLimits`, `CallidescopeService.map(…)` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:224` |
|
|
1219
|
+
| `DepthCommand.printDepth` | 6 | `ConfigurationService.resolveFormatOption`, `AddressLookupService.locate`, `DepthCommand.resolveAddresses`, `DepthCommand.identifyAddresses`, `AddressReportService.renderDepthReports`, `DepthCommand.map(…)` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:89` |
|
|
1220
|
+
| `LimitsService.list` | 6 | `ConfigurationService.loadConfigurationFile`, `LimitsService.discoverProjects`, `ConfigurationService.loadProjectConfigurations`, `ConfigurationService.resolveLimits`, `LimitsService.toWorkspaceRows`, `LimitsService.flatMap(…)` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.service.ts:150` |
|
|
1221
|
+
| `BreadthCommand.printBreadth` | 5 | `ConfigurationService.resolveFormatOption`, `AddressLookupService.locate`, `BreadthCommand.resolveAddresses`, `BreadthCommand.buildReports`, `AddressReportService.renderBreadthReports` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:127` |
|
|
1222
|
+
| `CallidescopeService.discoverPrograms` | 4 | `FileFilterService.buildFileFilter`, `WorkspaceService.discoverProjects`, `ProgramService.buildPrograms`, `CallidescopeService.map(…)` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:150` |
|
|
1223
|
+
| `CallidescopeCommand.run` | 4 | `CallidescopeCommand.reject`, `buildUnknownCommandMessage`, `CallidescopeCommand.traceWorkspace`, `readRefusalHeadline` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:469` |
|
|
1224
|
+
| `LimitsCommand.run` | 4 | `LimitsService.list`, `RenderLimitsService.render`, `readRefusalHeadline`, `LimitsCommand.reject` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.command.ts:85` |
|
|
1225
|
+
| `BreadthCommand.describeAddress` | 3 | `AddressLookupService.resolve`, `AddressLookupService.describeProblem`, `BreadthService.describeDirectCalls` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:91` |
|
|
1226
|
+
| `BreadthCommand.run` | 3 | `BreadthCommand.printBreadth`, `readRefusalHeadline`, `BreadthCommand.reject` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:315` |
|
|
1227
|
+
| `DepthCommand.identifyAddresses` | 3 | `AddressLookupService.resolve`, `AddressLookupService.describeProblem`, `DepthCommand.reject` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:55` |
|
|
1228
|
+
| `DepthCommand.run` | 3 | `DepthCommand.printDepth`, `readRefusalHeadline`, `DepthCommand.reject` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:290` |
|
|
1229
|
+
| `LimitsService.discoverProjects` | 3 | `FileFilterService.buildFileFilter`, `LimitsService.map(…)`, `WorkspaceService.discoverProjects` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.service.ts:68` |
|
|
1230
|
+
| `RenderLimitsService.renderTable` | 3 | `RenderLimitsService.renderRow`, `RenderLimitsService.map(…)`, `RenderLimitsService.map(…)` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/render-limits.service.ts:57` |
|
|
1231
|
+
| `CallidescopeService.locate` | 2 | `CallidescopeService.discoverCallables`, `GraphAssemblyService.assemble` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394` |
|
|
1232
|
+
| `CallidescopeService.trace` | 2 | `CallidescopeService.discoverCallables`, `CallidescopeService.analyze` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:408` |
|
|
1233
|
+
| `CallidescopeCommand.report` | 2 | `OutputJsonService.buildReport`, `MarkdownReportService.renderRun` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:135` |
|
|
1234
|
+
| `AddressLookupService.locate` | 2 | `ConfigurationService.prepareLookup`, `CallidescopeService.locate` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87` |
|
|
1235
|
+
| `BreadthCommand.buildReports` | 2 | `BreadthCommand.describeAddress`, `BreadthCommand.reject` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:55` |
|
|
1236
|
+
| `BreadthCommand.resolveAddresses` | 2 | `ConfigurationService.promptForAutocompleteMultiselect`, `AddressLookupService.listAddresses` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:173` |
|
|
1237
|
+
| `DepthCommand.map(…)` | 2 | `AddressDepthService.buildDownwardStacks`, `AddressDepthService.buildUpwardStacks` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:109` |
|
|
1238
|
+
| `DepthCommand.resolveAddresses` | 2 | `ConfigurationService.promptForAutocompleteMultiselect`, `AddressLookupService.listAddresses` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:147` |
|
|
1239
|
+
| `RenderLimitsService.map(…)` | 2 | `RenderLimitsService.renderRow`, `RenderLimitsService.renderProject` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/render-limits.service.ts:61` |
|
|
1240
|
+
| `readRefusalHeadline` | 1 | `isRefusedProjectConfiguration` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.constants.ts:58` |
|
|
1241
|
+
| `UnresolvedEntryPointAddressError.constructor` | 1 | `UnresolvedEntryPointAddressError.joinDescriptions` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.constants.ts:93` |
|
|
1242
|
+
| `UnresolvedEntryPointAddressError.joinDescriptions` | 1 | `UnresolvedEntryPointAddressError.map(…)` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.constants.ts:107` |
|
|
1243
|
+
| `CallidescopeService.readMaximumDepth` | 1 | `CallidescopeService.reduce(…)` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:285` |
|
|
1244
|
+
| `CallidescopeCommand.describeUnresolvedAddress` | 1 | `AddressService.describeCandidates` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:92` |
|
|
1245
|
+
| `CallidescopeCommand.map(…)` | 1 | `CallidescopeCommand.describeUnresolvedAddress` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:225` |
|
|
1246
|
+
| `CallidescopeCommand.parseConfig` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:283` |
|
|
1247
|
+
| `CallidescopeCommand.parseDirectories` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:292` |
|
|
1248
|
+
| `CallidescopeCommand.parseEntryPointAddresses` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:301` |
|
|
1249
|
+
| `CallidescopeCommand.parseEntryPointDecorators` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:310` |
|
|
1250
|
+
| `CallidescopeCommand.parseExclude` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:319` |
|
|
1251
|
+
| `CallidescopeCommand.parseExcludeCallees` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:328` |
|
|
1252
|
+
| `CallidescopeCommand.parseFormat` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:343` |
|
|
1253
|
+
| `CallidescopeCommand.parseIncludeExportedFunctions` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:357` |
|
|
1254
|
+
| `CallidescopeCommand.parseIncludeOrphans` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:368` |
|
|
1255
|
+
| `CallidescopeCommand.parseIncludeTests` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:377` |
|
|
1256
|
+
| `CallidescopeCommand.parseJson` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:386` |
|
|
1257
|
+
| `CallidescopeCommand.parseMarkdown` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:396` |
|
|
1258
|
+
| `CallidescopeCommand.parseMaximumBreadth` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:412` |
|
|
1259
|
+
| `CallidescopeCommand.parseMaximumDepth` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:421` |
|
|
1260
|
+
| `CallidescopeCommand.parseMermaid` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.command.ts:430` |
|
|
1261
|
+
| `AddressLookupService.describeProblem` | 1 | `AddressService.describeCandidates` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:53` |
|
|
1262
|
+
| `AddressLookupService.listAddresses` | 1 | `AddressService.listAddresses` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:82` |
|
|
1263
|
+
| `AddressLookupService.resolve` | 1 | `AddressService.resolve` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:112` |
|
|
1264
|
+
| `BreadthCommand.parseAddresses` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:194` |
|
|
1265
|
+
| `BreadthCommand.parseConfig` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:204` |
|
|
1266
|
+
| `BreadthCommand.parseDirectories` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:213` |
|
|
1267
|
+
| `BreadthCommand.parseEntryPointAddresses` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:222` |
|
|
1268
|
+
| `BreadthCommand.parseEntryPointDecorators` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:231` |
|
|
1269
|
+
| `BreadthCommand.parseExclude` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:240` |
|
|
1270
|
+
| `BreadthCommand.parseExcludeCallees` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:249` |
|
|
1271
|
+
| `BreadthCommand.parseFormat` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:264` |
|
|
1272
|
+
| `BreadthCommand.parseIncludeExportedFunctions` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:278` |
|
|
1273
|
+
| `BreadthCommand.parseIncludeOrphans` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:289` |
|
|
1274
|
+
| `BreadthCommand.parseIncludeTests` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/breadth/breadth.command.ts:298` |
|
|
1275
|
+
| `DepthCommand.parseAddresses` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:168` |
|
|
1276
|
+
| `DepthCommand.parseConfig` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:178` |
|
|
1277
|
+
| `DepthCommand.parseDirectories` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:187` |
|
|
1278
|
+
| `DepthCommand.parseEntryPointAddresses` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:196` |
|
|
1279
|
+
| `DepthCommand.parseEntryPointDecorators` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:205` |
|
|
1280
|
+
| `DepthCommand.parseExclude` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:214` |
|
|
1281
|
+
| `DepthCommand.parseExcludeCallees` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:223` |
|
|
1282
|
+
| `DepthCommand.parseFormat` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:238` |
|
|
1283
|
+
| `DepthCommand.parseIncludeExportedFunctions` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:252` |
|
|
1284
|
+
| `DepthCommand.parseIncludeOrphans` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:263` |
|
|
1285
|
+
| `DepthCommand.parseIncludeTests` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/depth/depth.command.ts:272` |
|
|
1286
|
+
| `LimitsService.toProjectRows` | 1 | `LimitsService.toRow` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.service.ts:88` |
|
|
1287
|
+
| `LimitsService.toWorkspaceRows` | 1 | `LimitsService.toRow` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.service.ts:128` |
|
|
1288
|
+
| `LimitsService.flatMap(…)` | 1 | `LimitsService.toProjectRows` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.service.ts:187` |
|
|
1289
|
+
| `RenderLimitsService.render` | 1 | `RenderLimitsService.renderTable` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/render-limits.service.ts:75` |
|
|
1290
|
+
| `LimitsCommand.parseConfig` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/callidescope/callidescope-cli/src/modules/limits/limits.command.ts:70` |
|
|
1291
|
+
|
|
1292
|
+
</details>
|
|
1293
|
+
<!-- callidescope:end -->
|
|
1294
|
+
|
|
1295
|
+
## 🕸️ Codependix
|
|
1296
|
+
|
|
1297
|
+
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`.
|
|
1298
|
+
|
|
1299
|
+
### Nx Neighborhood
|
|
1300
|
+
|
|
1301
|
+
<!-- codependix:start name="codependix-nx-projects" -->
|
|
1302
|
+
```mermaid
|
|
1303
|
+
graph LR
|
|
1304
|
+
callidescope_cli["callidescope-cli"]
|
|
1305
|
+
callidescope_configuration["callidescope-configuration"]
|
|
1306
|
+
callidescope_core["callidescope-core"]
|
|
1307
|
+
callidescope_examples["callidescope-examples"]
|
|
1308
|
+
callidescope_graph["callidescope-graph"]
|
|
1309
|
+
callidescope_nx["callidescope-nx"]
|
|
1310
|
+
callidescope_output["callidescope-output"]
|
|
1311
|
+
logger["logger"]
|
|
1312
|
+
callidescope_cli --> callidescope_configuration
|
|
1313
|
+
callidescope_cli --> callidescope_core
|
|
1314
|
+
callidescope_cli --> callidescope_graph
|
|
1315
|
+
callidescope_cli --> callidescope_output
|
|
1316
|
+
callidescope_cli --> logger
|
|
1317
|
+
callidescope_examples -.-> callidescope_cli
|
|
1318
|
+
callidescope_nx --> callidescope_cli
|
|
1319
|
+
classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
|
|
1320
|
+
class callidescope_cli subject
|
|
1321
|
+
```
|
|
1322
|
+
|
|
1323
|
+
_Dashed edges are dependencies Nx inferred from configuration rather than from code._
|
|
1324
|
+
<!-- codependix:end name="codependix-nx-projects" -->
|
|
1325
|
+
|
|
1326
|
+
### NestJS Module Graph
|
|
1327
|
+
|
|
1328
|
+
<!-- codependix:start name="codependix-nestjs-modules" -->
|
|
1329
|
+
```mermaid
|
|
1330
|
+
flowchart LR
|
|
1331
|
+
AddressLookupModule
|
|
1332
|
+
AddressReportModule
|
|
1333
|
+
BreadthModule
|
|
1334
|
+
CallablesModule
|
|
1335
|
+
CallidescopeModule
|
|
1336
|
+
ClassesModule
|
|
1337
|
+
ConfigModule([ConfigModule])
|
|
1338
|
+
ConfigurationFileModule
|
|
1339
|
+
ConfigurationModule
|
|
1340
|
+
DepthModule
|
|
1341
|
+
DiscoveryModule
|
|
1342
|
+
DocumentationModule
|
|
1343
|
+
EdgesModule
|
|
1344
|
+
EntriesModule
|
|
1345
|
+
FlagResolutionModule
|
|
1346
|
+
GraphModule
|
|
1347
|
+
InputModule
|
|
1348
|
+
LimitsModule
|
|
1349
|
+
LoggerModule([LoggerModule])
|
|
1350
|
+
MainModule
|
|
1351
|
+
OutputJsonModule
|
|
1352
|
+
OutputMarkdownModule
|
|
1353
|
+
ProgramModule
|
|
1354
|
+
ProjectReportsModule
|
|
1355
|
+
ReportFindingsModule
|
|
1356
|
+
ReportModule
|
|
1357
|
+
RunPlanModule
|
|
1358
|
+
SignaturesModule
|
|
1359
|
+
WorkspaceModule
|
|
1360
|
+
WriteDestinationsModule
|
|
1361
|
+
AddressLookupModule --> CallablesModule
|
|
1362
|
+
AddressLookupModule --> CallidescopeModule
|
|
1363
|
+
AddressLookupModule --> ConfigurationModule
|
|
1364
|
+
AddressReportModule --> ReportModule
|
|
1365
|
+
BreadthModule --> AddressLookupModule
|
|
1366
|
+
BreadthModule --> AddressReportModule
|
|
1367
|
+
BreadthModule --> ConfigurationModule
|
|
1368
|
+
BreadthModule --> GraphModule
|
|
1369
|
+
CallablesModule --> ProgramModule
|
|
1370
|
+
CallablesModule --> WorkspaceModule
|
|
1371
|
+
CallidescopeModule --> CallablesModule
|
|
1372
|
+
CallidescopeModule --> ClassesModule
|
|
1373
|
+
CallidescopeModule --> ConfigurationModule
|
|
1374
|
+
CallidescopeModule --> EdgesModule
|
|
1375
|
+
CallidescopeModule --> EntriesModule
|
|
1376
|
+
CallidescopeModule --> GraphModule
|
|
1377
|
+
CallidescopeModule --> OutputJsonModule
|
|
1378
|
+
CallidescopeModule --> OutputMarkdownModule
|
|
1379
|
+
CallidescopeModule --> ProgramModule
|
|
1380
|
+
CallidescopeModule --> ProjectReportsModule
|
|
1381
|
+
CallidescopeModule --> ReportFindingsModule
|
|
1382
|
+
CallidescopeModule --> ReportModule
|
|
1383
|
+
CallidescopeModule --> WorkspaceModule
|
|
1384
|
+
CallidescopeModule --> WriteDestinationsModule
|
|
1385
|
+
ConfigurationModule --> ConfigurationFileModule
|
|
1386
|
+
ConfigurationModule --> InputModule
|
|
1387
|
+
ConfigurationModule --> RunPlanModule
|
|
1388
|
+
DepthModule --> AddressLookupModule
|
|
1389
|
+
DepthModule --> AddressReportModule
|
|
1390
|
+
DepthModule --> ConfigurationModule
|
|
1391
|
+
DepthModule --> GraphModule
|
|
1392
|
+
EdgesModule --> CallablesModule
|
|
1393
|
+
EdgesModule --> ClassesModule
|
|
1394
|
+
EdgesModule --> ProgramModule
|
|
1395
|
+
EdgesModule --> WorkspaceModule
|
|
1396
|
+
EntriesModule --> CallablesModule
|
|
1397
|
+
GraphModule --> DocumentationModule
|
|
1398
|
+
GraphModule --> EdgesModule
|
|
1399
|
+
GraphModule --> SignaturesModule
|
|
1400
|
+
LimitsModule --> ConfigurationModule
|
|
1401
|
+
LimitsModule --> WorkspaceModule
|
|
1402
|
+
MainModule --> BreadthModule
|
|
1403
|
+
MainModule --> CallidescopeModule
|
|
1404
|
+
MainModule --> ConfigurationModule
|
|
1405
|
+
MainModule --> DepthModule
|
|
1406
|
+
MainModule --> DiscoveryModule
|
|
1407
|
+
MainModule --> LimitsModule
|
|
1408
|
+
ProgramModule --> WorkspaceModule
|
|
1409
|
+
ProjectReportsModule --> GraphModule
|
|
1410
|
+
ProjectReportsModule --> SignaturesModule
|
|
1411
|
+
RunPlanModule --> FlagResolutionModule
|
|
1412
|
+
WriteDestinationsModule --> OutputJsonModule
|
|
1413
|
+
WriteDestinationsModule --> OutputMarkdownModule
|
|
1414
|
+
WriteDestinationsModule --> ReportModule
|
|
1415
|
+
```
|
|
1416
|
+
|
|
1417
|
+
_Rounded modules are global: every module can inject them, so their edges are left out._
|
|
1418
|
+
<!-- codependix:end name="codependix-nestjs-modules" -->
|
|
1419
|
+
|
|
1420
|
+
### File Imports
|
|
1421
|
+
|
|
1422
|
+
<!-- codependix:start name="codependix-file-imports" -->
|
|
1423
|
+
```mermaid
|
|
1424
|
+
graph LR
|
|
1425
|
+
file_callidescope_config_ts["callidescope.config.ts"]
|
|
1426
|
+
file_codependix_config_ts["codependix.config.ts"]
|
|
1427
|
+
file_codometer_config_ts["codometer.config.ts"]
|
|
1428
|
+
file_eslint_config_ts["eslint.config.ts"]
|
|
1429
|
+
file_src_constants_ts["src/constants.ts"]
|
|
1430
|
+
file_src_index_ts["src/index.ts"]
|
|
1431
|
+
file_src_main_end_to_end_test_ts["src/main.end-to-end.test.ts"]
|
|
1432
|
+
file_src_main_module_ts["src/main.module.ts"]
|
|
1433
|
+
file_src_main_ts["src/main.ts"]
|
|
1434
|
+
file_src_modules_address_lookup_address_lookup_constants_ts["src/modules/address-lookup/address-lookup.constants.ts"]
|
|
1435
|
+
file_src_modules_address_lookup_address_lookup_constants_unit_test_ts["src/modules/address-lookup/address-lookup.constants.unit.test.ts"]
|
|
1436
|
+
file_src_modules_address_lookup_address_lookup_module_ts["src/modules/address-lookup/address-lookup.module.ts"]
|
|
1437
|
+
file_src_modules_address_lookup_address_lookup_service_ts["src/modules/address-lookup/address-lookup.service.ts"]
|
|
1438
|
+
file_src_modules_address_lookup_address_lookup_service_unit_test_ts["src/modules/address-lookup/address-lookup.service.unit.test.ts"]
|
|
1439
|
+
file_src_modules_address_lookup_address_lookup_types_ts["src/modules/address-lookup/address-lookup.types.ts"]
|
|
1440
|
+
file_src_modules_breadth_breadth_command_ts["src/modules/breadth/breadth.command.ts"]
|
|
1441
|
+
file_src_modules_breadth_breadth_command_unit_test_ts["src/modules/breadth/breadth.command.unit.test.ts"]
|
|
1442
|
+
file_src_modules_breadth_breadth_constants_ts["src/modules/breadth/breadth.constants.ts"]
|
|
1443
|
+
file_src_modules_breadth_breadth_module_ts["src/modules/breadth/breadth.module.ts"]
|
|
1444
|
+
file_src_modules_breadth_breadth_types_ts["src/modules/breadth/breadth.types.ts"]
|
|
1445
|
+
file_src_modules_callidescope_callidescope_command_ts["src/modules/callidescope/callidescope.command.ts"]
|
|
1446
|
+
file_src_modules_callidescope_callidescope_command_unit_test_ts["src/modules/callidescope/callidescope.command.unit.test.ts"]
|
|
1447
|
+
file_src_modules_callidescope_callidescope_constants_ts["src/modules/callidescope/callidescope.constants.ts"]
|
|
1448
|
+
file_src_modules_callidescope_callidescope_module_ts["src/modules/callidescope/callidescope.module.ts"]
|
|
1449
|
+
file_src_modules_callidescope_callidescope_service_integration_test_ts["src/modules/callidescope/callidescope.service.integration.test.ts"]
|
|
1450
|
+
file_src_modules_callidescope_callidescope_service_ts["src/modules/callidescope/callidescope.service.ts"]
|
|
1451
|
+
file_src_modules_callidescope_callidescope_service_unit_test_ts["src/modules/callidescope/callidescope.service.unit.test.ts"]
|
|
1452
|
+
file_src_modules_callidescope_callidescope_types_ts["src/modules/callidescope/callidescope.types.ts"]
|
|
1453
|
+
file_src_modules_depth_depth_command_ts["src/modules/depth/depth.command.ts"]
|
|
1454
|
+
file_src_modules_depth_depth_command_unit_test_ts["src/modules/depth/depth.command.unit.test.ts"]
|
|
1455
|
+
file_src_modules_depth_depth_constants_ts["src/modules/depth/depth.constants.ts"]
|
|
1456
|
+
file_src_modules_depth_depth_module_ts["src/modules/depth/depth.module.ts"]
|
|
1457
|
+
file_src_modules_depth_depth_types_ts["src/modules/depth/depth.types.ts"]
|
|
1458
|
+
file_src_modules_limits_limits_command_ts["src/modules/limits/limits.command.ts"]
|
|
1459
|
+
file_src_modules_limits_limits_command_unit_test_ts["src/modules/limits/limits.command.unit.test.ts"]
|
|
1460
|
+
file_src_modules_limits_limits_constants_ts["src/modules/limits/limits.constants.ts"]
|
|
1461
|
+
file_src_modules_limits_limits_module_ts["src/modules/limits/limits.module.ts"]
|
|
1462
|
+
file_src_modules_limits_limits_service_ts["src/modules/limits/limits.service.ts"]
|
|
1463
|
+
file_src_modules_limits_limits_service_unit_test_ts["src/modules/limits/limits.service.unit.test.ts"]
|
|
1464
|
+
file_src_modules_limits_limits_types_ts["src/modules/limits/limits.types.ts"]
|
|
1465
|
+
file_src_modules_limits_render_limits_service_ts["src/modules/limits/render-limits.service.ts"]
|
|
1466
|
+
file_src_modules_limits_render_limits_service_unit_test_ts["src/modules/limits/render-limits.service.unit.test.ts"]
|
|
1467
|
+
file_src_repl_ts["src/repl.ts"]
|
|
1468
|
+
file_src_repl_unit_test_ts["src/repl.unit.test.ts"]
|
|
1469
|
+
file_testing_mocks_ts["testing/mocks.ts"]
|
|
1470
|
+
file_testing_modules_ts["testing/modules.ts"]
|
|
1471
|
+
file_testing_programs_ts["testing/programs.ts"]
|
|
1472
|
+
file_testing_setup_ts["testing/setup.ts"]
|
|
1473
|
+
file_vite_config_ts["vite.config.ts"]
|
|
1474
|
+
file_vitest_config_ts["vitest.config.ts"]
|
|
1475
|
+
file_src_main_end_to_end_test_ts --> file_src_constants_ts
|
|
1476
|
+
file_src_main_module_ts --> file_src_constants_ts
|
|
1477
|
+
file_src_main_module_ts --> file_src_modules_breadth_breadth_module_ts
|
|
1478
|
+
file_src_main_module_ts --> file_src_modules_callidescope_callidescope_module_ts
|
|
1479
|
+
file_src_main_module_ts --> file_src_modules_depth_depth_module_ts
|
|
1480
|
+
file_src_main_module_ts --> file_src_modules_limits_limits_module_ts
|
|
1481
|
+
file_src_main_ts --> file_src_main_module_ts
|
|
1482
|
+
file_src_modules_address_lookup_address_lookup_constants_unit_test_ts --> file_src_modules_address_lookup_address_lookup_constants_ts
|
|
1483
|
+
file_src_modules_address_lookup_address_lookup_module_ts --> file_src_modules_address_lookup_address_lookup_service_ts
|
|
1484
|
+
file_src_modules_address_lookup_address_lookup_module_ts --> file_src_modules_callidescope_callidescope_module_ts
|
|
1485
|
+
file_src_modules_address_lookup_address_lookup_service_ts --> file_src_modules_address_lookup_address_lookup_constants_ts
|
|
1486
|
+
file_src_modules_address_lookup_address_lookup_service_ts --> file_src_modules_address_lookup_address_lookup_types_ts
|
|
1487
|
+
file_src_modules_address_lookup_address_lookup_service_ts --> file_src_modules_callidescope_callidescope_service_ts
|
|
1488
|
+
file_src_modules_address_lookup_address_lookup_service_unit_test_ts --> file_src_modules_address_lookup_address_lookup_service_ts
|
|
1489
|
+
file_src_modules_address_lookup_address_lookup_service_unit_test_ts --> file_src_modules_callidescope_callidescope_service_ts
|
|
1490
|
+
file_src_modules_address_lookup_address_lookup_service_unit_test_ts --> file_src_modules_callidescope_callidescope_types_ts
|
|
1491
|
+
file_src_modules_address_lookup_address_lookup_types_ts --> file_src_modules_callidescope_callidescope_types_ts
|
|
1492
|
+
file_src_modules_breadth_breadth_command_ts --> file_src_modules_address_lookup_address_lookup_constants_ts
|
|
1493
|
+
file_src_modules_breadth_breadth_command_ts --> file_src_modules_address_lookup_address_lookup_service_ts
|
|
1494
|
+
file_src_modules_breadth_breadth_command_ts --> file_src_modules_address_lookup_address_lookup_types_ts
|
|
1495
|
+
file_src_modules_breadth_breadth_command_ts --> file_src_modules_callidescope_callidescope_constants_ts
|
|
1496
|
+
file_src_modules_breadth_breadth_command_unit_test_ts --> file_src_modules_address_lookup_address_lookup_service_ts
|
|
1497
|
+
file_src_modules_breadth_breadth_command_unit_test_ts --> file_src_modules_address_lookup_address_lookup_types_ts
|
|
1498
|
+
file_src_modules_breadth_breadth_command_unit_test_ts --> file_src_modules_breadth_breadth_command_ts
|
|
1499
|
+
file_src_modules_breadth_breadth_command_unit_test_ts --> file_testing_mocks_ts
|
|
1500
|
+
file_src_modules_breadth_breadth_module_ts --> file_src_modules_address_lookup_address_lookup_module_ts
|
|
1501
|
+
file_src_modules_breadth_breadth_module_ts --> file_src_modules_breadth_breadth_command_ts
|
|
1502
|
+
file_src_modules_callidescope_callidescope_command_ts --> file_src_modules_address_lookup_address_lookup_constants_ts
|
|
1503
|
+
file_src_modules_callidescope_callidescope_command_ts --> file_src_modules_callidescope_callidescope_constants_ts
|
|
1504
|
+
file_src_modules_callidescope_callidescope_command_ts --> file_src_modules_callidescope_callidescope_service_ts
|
|
1505
|
+
file_src_modules_callidescope_callidescope_command_unit_test_ts --> file_src_modules_callidescope_callidescope_command_ts
|
|
1506
|
+
file_src_modules_callidescope_callidescope_command_unit_test_ts --> file_src_modules_callidescope_callidescope_constants_ts
|
|
1507
|
+
file_src_modules_callidescope_callidescope_command_unit_test_ts --> file_src_modules_callidescope_callidescope_service_ts
|
|
1508
|
+
file_src_modules_callidescope_callidescope_command_unit_test_ts --> file_testing_mocks_ts
|
|
1509
|
+
file_src_modules_callidescope_callidescope_constants_ts --> file_src_modules_address_lookup_address_lookup_constants_ts
|
|
1510
|
+
file_src_modules_callidescope_callidescope_module_ts --> file_src_modules_callidescope_callidescope_command_ts
|
|
1511
|
+
file_src_modules_callidescope_callidescope_module_ts --> file_src_modules_callidescope_callidescope_service_ts
|
|
1512
|
+
file_src_modules_callidescope_callidescope_service_integration_test_ts --> file_src_modules_callidescope_callidescope_service_ts
|
|
1513
|
+
file_src_modules_callidescope_callidescope_service_integration_test_ts --> file_testing_modules_ts
|
|
1514
|
+
file_src_modules_callidescope_callidescope_service_ts --> file_src_modules_callidescope_callidescope_constants_ts
|
|
1515
|
+
file_src_modules_callidescope_callidescope_service_ts --> file_src_modules_callidescope_callidescope_types_ts
|
|
1516
|
+
file_src_modules_callidescope_callidescope_service_unit_test_ts --> file_src_modules_callidescope_callidescope_service_ts
|
|
1517
|
+
file_src_modules_callidescope_callidescope_service_unit_test_ts --> file_testing_modules_ts
|
|
1518
|
+
file_src_modules_callidescope_callidescope_service_unit_test_ts --> file_testing_programs_ts
|
|
1519
|
+
file_src_modules_depth_depth_command_ts --> file_src_modules_address_lookup_address_lookup_constants_ts
|
|
1520
|
+
file_src_modules_depth_depth_command_ts --> file_src_modules_address_lookup_address_lookup_service_ts
|
|
1521
|
+
file_src_modules_depth_depth_command_ts --> file_src_modules_address_lookup_address_lookup_types_ts
|
|
1522
|
+
file_src_modules_depth_depth_command_ts --> file_src_modules_callidescope_callidescope_constants_ts
|
|
1523
|
+
file_src_modules_depth_depth_command_unit_test_ts --> file_src_modules_address_lookup_address_lookup_service_ts
|
|
1524
|
+
file_src_modules_depth_depth_command_unit_test_ts --> file_src_modules_address_lookup_address_lookup_types_ts
|
|
1525
|
+
file_src_modules_depth_depth_command_unit_test_ts --> file_src_modules_callidescope_callidescope_types_ts
|
|
1526
|
+
file_src_modules_depth_depth_command_unit_test_ts --> file_src_modules_depth_depth_command_ts
|
|
1527
|
+
file_src_modules_depth_depth_module_ts --> file_src_modules_address_lookup_address_lookup_module_ts
|
|
1528
|
+
file_src_modules_depth_depth_module_ts --> file_src_modules_depth_depth_command_ts
|
|
1529
|
+
file_src_modules_limits_limits_command_ts --> file_src_modules_callidescope_callidescope_constants_ts
|
|
1530
|
+
file_src_modules_limits_limits_command_ts --> file_src_modules_limits_limits_service_ts
|
|
1531
|
+
file_src_modules_limits_limits_command_ts --> file_src_modules_limits_limits_types_ts
|
|
1532
|
+
file_src_modules_limits_limits_command_ts --> file_src_modules_limits_render_limits_service_ts
|
|
1533
|
+
file_src_modules_limits_limits_command_unit_test_ts --> file_src_modules_limits_limits_command_ts
|
|
1534
|
+
file_src_modules_limits_limits_command_unit_test_ts --> file_src_modules_limits_limits_service_ts
|
|
1535
|
+
file_src_modules_limits_limits_command_unit_test_ts --> file_src_modules_limits_render_limits_service_ts
|
|
1536
|
+
file_src_modules_limits_limits_module_ts --> file_src_modules_limits_limits_command_ts
|
|
1537
|
+
file_src_modules_limits_limits_module_ts --> file_src_modules_limits_limits_service_ts
|
|
1538
|
+
file_src_modules_limits_limits_module_ts --> file_src_modules_limits_render_limits_service_ts
|
|
1539
|
+
file_src_modules_limits_limits_service_ts --> file_src_modules_limits_limits_types_ts
|
|
1540
|
+
file_src_modules_limits_limits_service_unit_test_ts --> file_src_modules_limits_limits_service_ts
|
|
1541
|
+
file_src_modules_limits_render_limits_service_ts --> file_src_modules_limits_limits_constants_ts
|
|
1542
|
+
file_src_modules_limits_render_limits_service_ts --> file_src_modules_limits_limits_types_ts
|
|
1543
|
+
file_src_modules_limits_render_limits_service_unit_test_ts --> file_src_modules_limits_limits_types_ts
|
|
1544
|
+
file_src_modules_limits_render_limits_service_unit_test_ts --> file_src_modules_limits_render_limits_service_ts
|
|
1545
|
+
file_src_repl_ts --> file_src_main_module_ts
|
|
1546
|
+
```
|
|
1547
|
+
<!-- codependix:end name="codependix-file-imports" -->
|
|
1548
|
+
|
|
1549
|
+
<!-- codometer:start -->
|
|
1550
|
+
|
|
1551
|
+
## ⏲️ Codometer
|
|
1552
|
+
|
|
1553
|
+
### Project
|
|
1554
|
+
|
|
1555
|
+

|
|
1556
|
+

|
|
1557
|
+

|
|
1558
|
+

|
|
1559
|
+
|
|
1560
|
+
### Measured Targets
|
|
1561
|
+
|
|
1562
|
+

|
|
1563
|
+
|
|
1564
|
+
### TypeScript
|
|
1565
|
+
|
|
1566
|
+

|
|
1567
|
+

|
|
1568
|
+

|
|
1569
|
+

|
|
1570
|
+

|
|
1571
|
+

|
|
1572
|
+

|
|
1573
|
+
|
|
1574
|
+
### JavaScript
|
|
1575
|
+
|
|
1576
|
+

|
|
1577
|
+

|
|
1578
|
+

|
|
1579
|
+

|
|
1580
|
+

|
|
1581
|
+

|
|
1582
|
+

|
|
1583
|
+

|
|
1584
|
+

|
|
1585
|
+

|
|
1586
|
+

|
|
1587
|
+

|
|
1588
|
+

|
|
1589
|
+

|
|
1590
|
+
|
|
1591
|
+
### Python
|
|
1592
|
+
|
|
1593
|
+

|
|
1594
|
+

|
|
1595
|
+

|
|
1596
|
+

|
|
1597
|
+

|
|
1598
|
+

|
|
1599
|
+

|
|
1600
|
+

|
|
1601
|
+

|
|
1602
|
+

|
|
1603
|
+

|
|
1604
|
+

|
|
1605
|
+
|
|
1606
|
+
### JSON
|
|
1607
|
+
|
|
1608
|
+

|
|
1609
|
+

|
|
1610
|
+

|
|
1611
|
+

|
|
1612
|
+

|
|
1613
|
+

|
|
1614
|
+

|
|
1615
|
+

|
|
1616
|
+

|
|
1617
|
+

|
|
1618
|
+

|
|
1619
|
+

|
|
1620
|
+
|
|
1621
|
+
### YAML
|
|
1622
|
+
|
|
1623
|
+

|
|
1624
|
+

|
|
1625
|
+

|
|
1626
|
+

|
|
1627
|
+

|
|
1628
|
+

|
|
1629
|
+

|
|
1630
|
+

|
|
1631
|
+

|
|
1632
|
+

|
|
1633
|
+

|
|
1634
|
+
|
|
1635
|
+
### TOML
|
|
1636
|
+
|
|
1637
|
+

|
|
1638
|
+

|
|
1639
|
+

|
|
1640
|
+

|
|
1641
|
+

|
|
1642
|
+

|
|
1643
|
+

|
|
1644
|
+
|
|
1645
|
+
### Shell
|
|
1646
|
+
|
|
1647
|
+

|
|
1648
|
+

|
|
1649
|
+

|
|
1650
|
+

|
|
1651
|
+

|
|
1652
|
+

|
|
1653
|
+

|
|
1654
|
+

|
|
1655
|
+

|
|
1656
|
+

|
|
1657
|
+

|
|
1658
|
+
|
|
1659
|
+
### SQL
|
|
1660
|
+
|
|
1661
|
+

|
|
1662
|
+

|
|
1663
|
+

|
|
1664
|
+

|
|
1665
|
+

|
|
1666
|
+

|
|
1667
|
+

|
|
1668
|
+

|
|
1669
|
+

|
|
1670
|
+

|
|
1671
|
+

|
|
1672
|
+
|
|
1673
|
+
### HCL
|
|
1674
|
+
|
|
1675
|
+

|
|
1676
|
+

|
|
1677
|
+

|
|
1678
|
+

|
|
1679
|
+

|
|
1680
|
+

|
|
1681
|
+

|
|
1682
|
+

|
|
1683
|
+

|
|
1684
|
+
|
|
1685
|
+
### CSS
|
|
1686
|
+
|
|
1687
|
+

|
|
1688
|
+

|
|
1689
|
+

|
|
1690
|
+

|
|
1691
|
+

|
|
1692
|
+

|
|
1693
|
+

|
|
1694
|
+

|
|
1695
|
+

|
|
1696
|
+
|
|
1697
|
+
### Conventions
|
|
1698
|
+
|
|
1699
|
+

|
|
1700
|
+

|
|
1701
|
+

|
|
1702
|
+

|
|
1703
|
+

|
|
1704
|
+

|
|
1705
|
+

|
|
1706
|
+

|
|
1707
|
+

|
|
1708
|
+

|
|
1709
|
+

|
|
1710
|
+

|
|
1711
|
+

|
|
1712
|
+

|
|
1713
|
+

|
|
1714
|
+

|
|
1715
|
+

|
|
1716
|
+

|
|
1717
|
+
|
|
1718
|
+
### Jupyter
|
|
1719
|
+
|
|
1720
|
+

|
|
1721
|
+

|
|
1722
|
+

|
|
1723
|
+

|
|
1724
|
+

|
|
1725
|
+

|
|
1726
|
+

|
|
1727
|
+

|
|
1728
|
+

|
|
1729
|
+

|
|
1730
|
+

|
|
1731
|
+

|
|
1732
|
+

|
|
1733
|
+

|
|
1734
|
+

|
|
1735
|
+

|
|
1736
|
+

|
|
1737
|
+

|
|
1738
|
+

|
|
1739
|
+

|
|
1740
|
+
|
|
1741
|
+
### Markdown
|
|
1742
|
+
|
|
1743
|
+

|
|
1744
|
+

|
|
1745
|
+

|
|
1746
|
+

|
|
1747
|
+

|
|
1748
|
+

|
|
1749
|
+

|
|
1750
|
+

|
|
1751
|
+

|
|
1752
|
+

|
|
1753
|
+

|
|
1754
|
+

|
|
1755
|
+

|
|
1756
|
+

|
|
1757
|
+

|
|
1758
|
+

|
|
1759
|
+

|
|
1760
|
+

|
|
1761
|
+

|
|
1762
|
+

|
|
1763
|
+
<!-- codometer:end -->
|