@callidescope/output 0.0.0-stage → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1137 @@
1
+ import { ConsoleLogger as e, Global as t, Injectable as n, Module as r, Scope as i } from "@nestjs/common";
2
+ import { DEFAULT_JSON_INDENTATION as a } from "@callidescope/configuration";
3
+ import { existsSync as o, mkdirSync as s, readFileSync as c, writeFileSync as l } from "node:fs";
4
+ import u from "node:path";
5
+ import d from "pino";
6
+ import { GraphModule as ee, PathsService as f, SignaturesModule as te, SignaturesService as p } from "@callidescope/graph";
7
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/report/report.constants.ts
8
+ var m = "🚀", h = "└─>", ne = 80, g = "(…)", re = 120, _ = /[!.?](?=\s+[A-Z])/, ie = "…", ae = "⚠ deprecated", oe = "↳", se = "flowchart LR", ce = 300, le = "n", ue = /* @__PURE__ */ new Map([
9
+ ["<", "#lt;"],
10
+ [">", "#gt;"],
11
+ ["\"", "#quot;"]
12
+ ]), v = "| Measure | Value |\n| --- | --- |", y = "| Callable | Breadth | Calls directly | Location |\n| --- | --- | --- | --- |", b = "Call stacks over the depth limit", x = "Callables over the breadth limit", de = ".", fe = "| Project | Deepest | Limit | Headroom | Widest |\n| --- | --- | --- | --- | --- |", S = "| Headroom | Projects |\n| --- | --- |", pe = "Limits", me = "| Limit | Value |\n| --- | --- |", he = "What this project is judged against, as declared in its own `callidescope.config.ts`.", ge = ["maximumDepth", "maximumBreadth"], _e = "none", C = "over limit", w = "0 — at limit", ve = "1", T = "2–3", ye = "4+", E = "no stacks", D = [
13
+ C,
14
+ w,
15
+ "1",
16
+ T,
17
+ "4+",
18
+ E
19
+ ];
20
+ //#endregion
21
+ //#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorateMetadata.js
22
+ function O(e, t) {
23
+ if (typeof Reflect == "object" && typeof Reflect.metadata == "function") return Reflect.metadata(e, t);
24
+ }
25
+ //#endregion
26
+ //#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorate.js
27
+ function k(e, t, n, r) {
28
+ var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
29
+ if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
30
+ else for (var s = e.length - 1; s >= 0; s--) (o = e[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a);
31
+ return i > 3 && a && Object.defineProperty(t, n, a), a;
32
+ }
33
+ //#endregion
34
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/report/mermaid-report.service.ts
35
+ var A = class {
36
+ constructor() {}
37
+ addFrame(e) {
38
+ let t = e.diagram.identifiersByCallable.get(e.frame.id);
39
+ if (t !== void 0) return t;
40
+ let n = `n${String(e.diagram.identifiersByCallable.size)}`, r = this.renderLabel(e.frame);
41
+ return e.diagram.identifiersByCallable.set(e.frame.id, n), e.diagram.nodes.push(e.isEntryPoint ? ` ${n}(["${r}"])` : ` ${n}["${r}"]`), n;
42
+ }
43
+ addStack(e) {
44
+ let { diagram: t } = e, n;
45
+ for (let [r, i] of e.stack.frames.entries()) {
46
+ let e = this.addFrame({
47
+ diagram: t,
48
+ frame: i,
49
+ isEntryPoint: r === 0
50
+ });
51
+ n !== void 0 && n !== e && t.edges.add(` ${n} --> ${e}`), n = e;
52
+ }
53
+ }
54
+ countNewCallables(e) {
55
+ return new Set(e.stack.frames.map((e) => e.id).filter((t) => !e.diagram.identifiersByCallable.has(t))).size;
56
+ }
57
+ renderLabel(e) {
58
+ let t = e.displayName;
59
+ for (let [e, n] of ue) t = t.replaceAll(e, n);
60
+ return e.isCycle ? `${t} (cycle)` : t;
61
+ }
62
+ renderDiagram(e) {
63
+ if (e.diagram.nodes.length === 0) return "None.";
64
+ let t = [
65
+ "```mermaid",
66
+ se,
67
+ ...e.diagram.nodes,
68
+ ...e.diagram.edges,
69
+ "```"
70
+ ].join("\n");
71
+ return e.omitted === 0 ? t : `${t}\n\n_${String(e.omitted)} further call stacks are not drawn: the diagram is at its 300-callable limit._`;
72
+ }
73
+ renderStacks(e) {
74
+ let t = {
75
+ edges: /* @__PURE__ */ new Set(),
76
+ identifiersByCallable: /* @__PURE__ */ new Map(),
77
+ nodes: []
78
+ }, n = 0;
79
+ for (let r of e.stacks) {
80
+ if (t.identifiersByCallable.size + this.countNewCallables({
81
+ diagram: t,
82
+ stack: r
83
+ }) > 300) {
84
+ n += 1;
85
+ continue;
86
+ }
87
+ this.addStack({
88
+ diagram: t,
89
+ stack: r
90
+ });
91
+ }
92
+ return this.renderDiagram({
93
+ diagram: t,
94
+ omitted: n
95
+ });
96
+ }
97
+ };
98
+ A = k([n(), O("design:paramtypes", [])], A);
99
+ //#endregion
100
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/report/report.service.ts
101
+ var j = class {
102
+ constructor() {}
103
+ readFirstSentence(e) {
104
+ let t = _.exec(e);
105
+ return t === null ? void 0 : e.slice(0, t.index + 1);
106
+ }
107
+ renderFrame(e) {
108
+ let t = " ".repeat(e.depth), n = e.depth === 0 ? m : h, { filePath: r, line: i } = e.frame.location, a = `${t}${n} ${e.frame.displayName}${this.renderSignature(e.frame)}${this.renderMarkers(e.frame)} [${r}:${String(i)}]`, o = e.frame.documentation?.summary ?? "";
109
+ return o.length === 0 ? a : `${a}\n${t} ↳ ${this.shortenSummary(o)}`;
110
+ }
111
+ renderMarkers(e) {
112
+ let t = e.isCycle ? " (cycle)" : "";
113
+ return e.documentation?.isDeprecated ?? !1 ? `${t} ${ae}` : t;
114
+ }
115
+ renderSignature(e) {
116
+ let { signature: t } = e;
117
+ return t === void 0 ? "()" : t.text.length <= 80 ? t.text : `${g}: ${t.returnType}`;
118
+ }
119
+ shortenSummary(e) {
120
+ if (e.length <= 120) return e;
121
+ let t = this.readFirstSentence(e);
122
+ if (t !== void 0 && t.length <= 120) return t;
123
+ let n = e.slice(0, 120), r = n.lastIndexOf(" ");
124
+ return `${(r === -1 ? n : n.slice(0, r)).trimEnd()}…`;
125
+ }
126
+ renderStackTree(e) {
127
+ return e.frames.map((e, t) => this.renderFrame({
128
+ depth: t,
129
+ frame: e
130
+ })).join("\n");
131
+ }
132
+ };
133
+ j = k([n(), O("design:paramtypes", [])], j);
134
+ //#endregion
135
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/report/workspace-report.service.ts
136
+ var M = class {
137
+ constructor() {}
138
+ bucketFor(e) {
139
+ return e.deepest === 0 ? E : e.headroom < 0 ? C : e.headroom === 0 ? w : e.headroom === 1 ? "1" : e.headroom <= 3 ? T : "4+";
140
+ }
141
+ widestBreadth(e) {
142
+ return e.callableBreadths.reduce((e, t) => Math.max(e, t.breadth), 0);
143
+ }
144
+ buildRows(e) {
145
+ return e.projects.map((t) => {
146
+ let n = this.limitsFor({
147
+ limits: e.limits,
148
+ projectName: t.projectName
149
+ }), r = t.summary.maximumDepth;
150
+ return {
151
+ deepest: r,
152
+ headroom: n.maximumDepth - r,
153
+ limit: n.maximumDepth,
154
+ projectName: t.projectName,
155
+ widest: this.widestBreadth(t)
156
+ };
157
+ }).toSorted((e, t) => e.headroom - t.headroom || e.projectName.localeCompare(t.projectName));
158
+ }
159
+ limitsFor(e) {
160
+ return e.limits.byProject.get(e.projectName) ?? e.limits.workspace;
161
+ }
162
+ renderHeadroom(e) {
163
+ let t = e.map((e) => this.bucketFor(e));
164
+ return [S, ...D.map((e) => {
165
+ let n = t.filter((t) => t === e).length;
166
+ return `| ${e} | ${String(n)} |`;
167
+ })].join("\n");
168
+ }
169
+ renderProjectIndex(e) {
170
+ let t = this.buildRows(e);
171
+ return t.length === 0 ? "None." : [fe, ...t.map((e) => `| \`${e.projectName === "" ? "." : e.projectName}\` | ${String(e.deepest)} | ${String(e.limit)} | ${String(e.headroom)} | ${String(e.widest)} |`)].join("\n");
172
+ }
173
+ };
174
+ M = k([n(), O("design:paramtypes", [])], M);
175
+ //#endregion
176
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/report/markdown-report.service.ts
177
+ var N = class {
178
+ mermaidReportService;
179
+ reportService;
180
+ workspaceReportService;
181
+ constructor(e, t, n) {
182
+ this.mermaidReportService = e, this.reportService = t, this.workspaceReportService = n;
183
+ }
184
+ renderCallableBreadths(e) {
185
+ let t = (e) => `| \`${e.displayName}\` | ${String(e.breadth)} | ${e.callees.map((e) => `\`${e.displayName}\``).join(", ")} | \`${e.location.filePath}:${String(e.location.line)}\` |`, n = e.reports.slice(0, e.previewCount), r = e.reports.slice(e.previewCount), i = this.renderTable({
186
+ header: y,
187
+ rows: n.map((e) => t(e))
188
+ });
189
+ return r.length === 0 ? i : [
190
+ i,
191
+ "",
192
+ "<details>",
193
+ `<summary>${String(r.length)} more callables</summary>`,
194
+ "",
195
+ this.renderTable({
196
+ header: y,
197
+ rows: r.map((e) => t(e))
198
+ }),
199
+ "",
200
+ "</details>"
201
+ ].join("\n");
202
+ }
203
+ renderLimitCell(e) {
204
+ return e === void 0 ? _e : String(e);
205
+ }
206
+ renderProjectLimits(e) {
207
+ return [me, ...ge.map((t) => `| \`${t}\` | ${this.renderLimitCell(e[t])} |`)].join("\n");
208
+ }
209
+ renderStack(e) {
210
+ let { stack: t } = e, n = t.frames[0]?.displayName ?? "unknown", r = t.isLowerBound ? `≥ ${String(t.depth)}` : String(t.depth);
211
+ return [
212
+ `**${String(e.index + 1)}. \`${n}\`** — depth ${r} · ${t.entryPointKind}`,
213
+ "",
214
+ "```text",
215
+ this.reportService.renderStackTree(t),
216
+ "```"
217
+ ].join("\n");
218
+ }
219
+ renderStacksAs(e) {
220
+ return e.rendering === "diagram" ? this.mermaidReportService.renderStacks({ stacks: e.stacks }) : this.renderStacks({
221
+ previewCount: e.previewCount,
222
+ stacks: e.stacks
223
+ });
224
+ }
225
+ renderSummaryTable(e) {
226
+ return [
227
+ v,
228
+ `| Callables | ${String(e.callableCount)} |`,
229
+ `| Files | ${String(e.fileCount)} |`,
230
+ `| Calls traced | ${String(e.edgeCount)} |`,
231
+ `| Call stacks | ${String(e.entryPointCount)} |`,
232
+ `| Deepest stack | ${String(e.maximumDepth)} |`,
233
+ `| Stacks through recursion | ${String(e.cyclicComponentCount)} |`,
234
+ `| Unfollowable calls | ${String(e.unresolvedCallCount)} |`
235
+ ].join("\n");
236
+ }
237
+ renderTable(e) {
238
+ return e.rows.length === 0 ? "None." : `${e.header}\n${e.rows.join("\n")}`;
239
+ }
240
+ renderWideCallableLines(e) {
241
+ return e.length === 0 ? "None." : e.map((e) => `- \`${e.displayName}\` — ${String(e.breadth)} direct callees, limit ${String(e.limit)} (${e.location.filePath})`).join("\n");
242
+ }
243
+ subsectionPrefix(e) {
244
+ return "#".repeat((/^#+/.exec(e)?.[0].length ?? 1) + 1);
245
+ }
246
+ renderFindings(e) {
247
+ let { deepStacks: t, wideCallables: n } = e;
248
+ return [
249
+ `## ${b} (${String(t.length)})`,
250
+ "",
251
+ this.renderStacks({
252
+ previewCount: e.previewCount,
253
+ stacks: t
254
+ }),
255
+ "",
256
+ `## ${x} (${String(n.length)})`,
257
+ "",
258
+ this.renderWideCallableLines(n)
259
+ ].join("\n");
260
+ }
261
+ renderProjectSection(e) {
262
+ let { report: t } = e;
263
+ return [
264
+ e.heading,
265
+ "",
266
+ `Call stacks traced through \`${t.projectName}\`, deepest first. Each frame shows what it takes, what it returns, and what its documentation says.`,
267
+ "",
268
+ this.renderSummaryTable(t.summary),
269
+ "",
270
+ `### ${pe}`,
271
+ "",
272
+ he,
273
+ "",
274
+ this.renderProjectLimits(this.workspaceReportService.limitsFor({
275
+ limits: e.limits,
276
+ projectName: t.projectName
277
+ })),
278
+ "",
279
+ "### Call stacks (depth)",
280
+ "",
281
+ this.renderStacksAs({
282
+ previewCount: e.previewCount,
283
+ rendering: e.rendering,
284
+ stacks: t.stacks
285
+ }),
286
+ "",
287
+ "### Breadth",
288
+ "",
289
+ this.renderCallableBreadths({
290
+ previewCount: e.previewCount,
291
+ reports: t.callableBreadths
292
+ })
293
+ ].join("\n");
294
+ }
295
+ renderRun(e) {
296
+ let { result: t } = e, n = this.subsectionPrefix(e.heading), r = this.workspaceReportService.buildRows({
297
+ limits: e.limits,
298
+ projects: t.projects
299
+ });
300
+ return [
301
+ e.heading,
302
+ "",
303
+ ...e.description === void 0 ? [] : [e.description, ""],
304
+ this.renderSummaryTable(t.summary),
305
+ "",
306
+ `${n} Projects`,
307
+ "",
308
+ this.workspaceReportService.renderProjectIndex({
309
+ limits: e.limits,
310
+ projects: t.projects
311
+ }),
312
+ "",
313
+ `${n} Depth headroom`,
314
+ "",
315
+ this.workspaceReportService.renderHeadroom(r),
316
+ "",
317
+ `${n} ${b} (${String(t.deepStacks.length)})`,
318
+ "",
319
+ this.renderStacksAs({
320
+ previewCount: e.previewCount,
321
+ rendering: e.rendering,
322
+ stacks: t.deepStacks
323
+ }),
324
+ "",
325
+ `${n} ${x} (${String(t.wideCallables.length)})`,
326
+ "",
327
+ this.renderCallableBreadths({
328
+ previewCount: e.previewCount,
329
+ reports: t.wideCallables
330
+ }),
331
+ ""
332
+ ].join("\n");
333
+ }
334
+ renderStacks(e) {
335
+ if (e.stacks.length === 0) return "None.";
336
+ let t = e.stacks.map((e, t) => this.renderStack({
337
+ index: t,
338
+ stack: e
339
+ })), n = t.slice(0, e.previewCount).join("\n\n"), r = t.slice(e.previewCount);
340
+ return r.length === 0 ? n : [
341
+ n,
342
+ "",
343
+ "<details>",
344
+ `<summary>${String(r.length)} more call stacks</summary>`,
345
+ "",
346
+ r.join("\n\n"),
347
+ "",
348
+ "</details>"
349
+ ].join("\n");
350
+ }
351
+ };
352
+ N = k([n(), O("design:paramtypes", [
353
+ A === void 0 ? Object : A,
354
+ j === void 0 ? Object : j,
355
+ M === void 0 ? Object : M
356
+ ])], N);
357
+ //#endregion
358
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/report/report.module.ts
359
+ var P = class {};
360
+ P = k([r({
361
+ controllers: [],
362
+ exports: [
363
+ N,
364
+ A,
365
+ j,
366
+ M
367
+ ],
368
+ imports: [],
369
+ providers: [
370
+ N,
371
+ A,
372
+ j,
373
+ M
374
+ ]
375
+ })], P);
376
+ //#endregion
377
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/address-report/address-report.service.ts
378
+ var F = class {
379
+ mermaidReportService;
380
+ reportService;
381
+ constructor(e, t) {
382
+ this.mermaidReportService = e, this.reportService = t;
383
+ }
384
+ buildBreadthPayload(e) {
385
+ return {
386
+ address: e.address,
387
+ callable: e.displayName,
388
+ ...e.directCalls
389
+ };
390
+ }
391
+ buildDepthPayload(e) {
392
+ return {
393
+ above: e.upward,
394
+ address: e.address,
395
+ below: e.downward
396
+ };
397
+ }
398
+ renderBreadthDiagram(e) {
399
+ let t = this.toFrame({
400
+ displayName: e.displayName,
401
+ id: e.id,
402
+ location: e.location
403
+ }), n = [
404
+ { frames: [t] },
405
+ ...e.directCalls.callees.map((e) => ({ frames: [t, this.toFrame(e)] })),
406
+ ...e.directCalls.callers.map((e) => ({ frames: [this.toFrame(e), t] }))
407
+ ];
408
+ return this.mermaidReportService.renderStacks({ stacks: n });
409
+ }
410
+ renderDepthStacks(e) {
411
+ let t = e.truncated ? "+" : "";
412
+ if (e.stacks.length === 0) return [
413
+ `### ${e.heading} (0)`,
414
+ "",
415
+ "None."
416
+ ].join("\n");
417
+ let n = e.stacks.map((e, t) => {
418
+ let n = String(e.frames.length - 1), r = e.isLowerBound ? `≥ ${n}` : n;
419
+ return [
420
+ `**${String(t + 1)}.** depth ${r}`,
421
+ "",
422
+ "```text",
423
+ this.reportService.renderStackTree(e),
424
+ "```"
425
+ ].join("\n");
426
+ });
427
+ return [
428
+ `### ${e.heading} (${String(e.stacks.length)}${t})`,
429
+ "",
430
+ n.join("\n\n")
431
+ ].join("\n");
432
+ }
433
+ renderReferenceTable(e) {
434
+ if (e.references.length === 0) return [
435
+ `### ${e.heading} (0)`,
436
+ "",
437
+ "None."
438
+ ].join("\n");
439
+ let t = e.references.map((e) => `| \`${e.displayName}\` | \`${e.location.filePath}:${String(e.location.line)}\` |`);
440
+ return [
441
+ `### ${e.heading} (${String(e.references.length)})`,
442
+ "",
443
+ "| Callable | Location |",
444
+ "| --- | --- |",
445
+ ...t
446
+ ].join("\n");
447
+ }
448
+ toFrame(e, t = !1) {
449
+ return {
450
+ displayName: e.displayName,
451
+ documentation: void 0,
452
+ id: e.id,
453
+ isCycle: t,
454
+ location: e.location,
455
+ signature: void 0
456
+ };
457
+ }
458
+ renderBreadth(e) {
459
+ return e.format === "json" ? `${JSON.stringify(this.buildBreadthPayload(e), null, a)}\n` : e.format === "mermaid" ? [
460
+ `# 🔭 Callidescope breadth — \`${e.address}\``,
461
+ "",
462
+ this.renderBreadthDiagram(e)
463
+ ].join("\n") : [
464
+ `# 🔭 Callidescope breadth — \`${e.address}\``,
465
+ "",
466
+ this.renderReferenceTable({
467
+ heading: "Callees",
468
+ references: e.directCalls.callees
469
+ }),
470
+ "",
471
+ this.renderReferenceTable({
472
+ heading: "Callers",
473
+ references: e.directCalls.callers
474
+ })
475
+ ].join("\n");
476
+ }
477
+ renderBreadthReports(e) {
478
+ return e.format === "json" ? `${JSON.stringify(e.reports.map((e) => this.buildBreadthPayload(e)), null, a)}\n` : e.reports.map((t) => this.renderBreadth({
479
+ ...t,
480
+ format: e.format
481
+ })).join("\n\n");
482
+ }
483
+ renderDepth(e) {
484
+ return e.format === "json" ? `${JSON.stringify(this.buildDepthPayload(e), null, a)}\n` : e.format === "mermaid" ? [
485
+ `# 🔭 Callidescope depth — \`${e.address}\``,
486
+ "",
487
+ "## Above",
488
+ "",
489
+ this.mermaidReportService.renderStacks({ stacks: e.upward.stacks }),
490
+ "",
491
+ "## Below",
492
+ "",
493
+ this.mermaidReportService.renderStacks({ stacks: e.downward.stacks })
494
+ ].join("\n") : [
495
+ `# 🔭 Callidescope depth — \`${e.address}\``,
496
+ "",
497
+ this.renderDepthStacks({
498
+ heading: "Above",
499
+ stacks: e.upward.stacks,
500
+ truncated: e.upward.truncated
501
+ }),
502
+ "",
503
+ this.renderDepthStacks({
504
+ heading: "Below",
505
+ stacks: e.downward.stacks,
506
+ truncated: e.downward.truncated
507
+ })
508
+ ].join("\n");
509
+ }
510
+ renderDepthReports(e) {
511
+ return e.format === "json" ? `${JSON.stringify(e.reports.map((e) => this.buildDepthPayload(e)), null, a)}\n` : e.reports.map((t) => this.renderDepth({
512
+ ...t,
513
+ format: e.format
514
+ })).join("\n\n");
515
+ }
516
+ };
517
+ F = k([n(), O("design:paramtypes", [A === void 0 ? Object : A, j === void 0 ? Object : j])], F);
518
+ //#endregion
519
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/address-report/address-report.module.ts
520
+ var I = class {};
521
+ I = k([r({
522
+ controllers: [],
523
+ exports: [F],
524
+ imports: [P],
525
+ providers: [F]
526
+ })], I);
527
+ //#endregion
528
+ //#region packages/logger/src/modules/logger/logger.constants.ts
529
+ var be = /^(\p{Extended_Pictographic}️?(?:‍\p{Extended_Pictographic}️?)*)\s+/u, xe = /^([A-Za-z]+)/, Se = /* @__PURE__ */ new Set([
530
+ "built",
531
+ "cut",
532
+ "found",
533
+ "got",
534
+ "kept",
535
+ "left",
536
+ "lost",
537
+ "made",
538
+ "put",
539
+ "ran",
540
+ "read",
541
+ "rebuilt",
542
+ "sent",
543
+ "set",
544
+ "split",
545
+ "took",
546
+ "wrote"
547
+ ]), Ce = /* @__PURE__ */ new Set([
548
+ "CommandFactory",
549
+ "ExceptionHandler",
550
+ "GraphQLModule",
551
+ "InstanceLoader",
552
+ "NestApplication",
553
+ "NestFactory",
554
+ "RouterExplorer",
555
+ "RoutesResolver",
556
+ "TypeOrmModule"
557
+ ]), L, R = class extends e {
558
+ static {
559
+ L = this;
560
+ }
561
+ constructor() {
562
+ super();
563
+ }
564
+ static isProduction = process.env.NODE_ENV === "production";
565
+ static rootLogger;
566
+ static writesToStandardError = !1;
567
+ child = L.root;
568
+ static createRootLogger() {
569
+ let e = process.env.LOG_LEVEL ?? "info";
570
+ return L.isProduction ? L.writesToStandardError ? d({ level: e }, d.destination(2)) : d({ level: e }) : d({
571
+ level: e,
572
+ transport: {
573
+ options: {
574
+ colorize: !0,
575
+ destination: L.writesToStandardError ? 2 : 1,
576
+ ignore: "pid,hostname,emoji",
577
+ messageFormat: "{emoji} {msg}",
578
+ singleLine: !0
579
+ },
580
+ target: "pino-pretty"
581
+ }
582
+ });
583
+ }
584
+ static logToStandardError() {
585
+ if (L.rootLogger !== void 0) {
586
+ process.emitWarning("LoggerService.logToStandardError() was called after the first log line, so log lines still go to standard output and anything piping that stream will read them as data. Call it as the first statement of the application's bootstrap.");
587
+ return;
588
+ }
589
+ L.writesToStandardError = !0;
590
+ }
591
+ assertConventionalMessage(e) {
592
+ if (L.isProduction || this.shouldSkipConventionalMessageValidation(e.context)) return;
593
+ let t = this.getConventionalMessageViolation(e.parsed);
594
+ if (t !== void 0) throw Error(t);
595
+ }
596
+ buildBindings(e) {
597
+ return this.assertConventionalMessage({
598
+ context: e.context,
599
+ parsed: e.parsed
600
+ }), {
601
+ ...e.data,
602
+ context: e.context,
603
+ ...L.isProduction ? {} : { emoji: e.parsed.emoji }
604
+ };
605
+ }
606
+ getConventionalMessageViolation(e) {
607
+ let t = e.emoji, n = e.text;
608
+ if (t === void 0) return `Log message must start with an emoji naming its subject, then a verb: "${n}"`;
609
+ let r = xe.exec(n)?.[1];
610
+ if (r === void 0 || !this.isConventionalVerb(r)) return `Log message must begin with a verb in present progressive or past tense, got "${r ?? ""}": "${t} ${n}"`;
611
+ }
612
+ isConventionalVerb(e) {
613
+ let t = e.toLowerCase();
614
+ return t.endsWith("ing") || t.endsWith("ed") || Se.has(t);
615
+ }
616
+ parseMessage(e) {
617
+ let t = String(e), n = be.exec(t), r = n?.[1];
618
+ return r === void 0 ? {
619
+ emoji: void 0,
620
+ text: t
621
+ } : {
622
+ emoji: r,
623
+ text: t.slice(n?.[0].length)
624
+ };
625
+ }
626
+ shouldSkipConventionalMessageValidation(e) {
627
+ return e !== void 0 && Ce.has(e);
628
+ }
629
+ static get root() {
630
+ return L.rootLogger ??= L.createRootLogger(), L.rootLogger;
631
+ }
632
+ buildErrorLogEntry(e, t) {
633
+ let n = t instanceof Error ? t.stack || t.message : String(t);
634
+ return {
635
+ errorMessage: n,
636
+ logLine: `[${(/* @__PURE__ */ new Date()).toISOString()}] ${e}: ${n}\n`
637
+ };
638
+ }
639
+ createTimestampedOutputLogFilePath(e) {
640
+ let t = u.join(process.cwd(), "output");
641
+ return o(t) || s(t, { recursive: !0 }), u.join(t, `${e}-${(/* @__PURE__ */ new Date()).toISOString().replaceAll(/[:.]/g, "-")}.log`);
642
+ }
643
+ debug(e, t, n) {
644
+ let r = this.parseMessage(e);
645
+ this.child.debug(this.buildBindings({
646
+ context: t ?? this.context,
647
+ data: n,
648
+ parsed: r
649
+ }), r.text);
650
+ }
651
+ error(e, t, n) {
652
+ let r = this.parseMessage(e), i = typeof n == "object" ? n : void 0, a = typeof n == "string" ? n : this.context;
653
+ this.child.error({
654
+ ...this.buildBindings({
655
+ context: a,
656
+ data: i,
657
+ parsed: r
658
+ }),
659
+ stack: t
660
+ }, r.text);
661
+ }
662
+ info(e, t, n) {
663
+ let r = this.parseMessage(e);
664
+ this.child.info(this.buildBindings({
665
+ context: t ?? this.context,
666
+ data: n,
667
+ parsed: r
668
+ }), r.text);
669
+ }
670
+ log(e, t, n) {
671
+ this.info(e, t, n);
672
+ }
673
+ setContext(e) {
674
+ super.setContext(e), this.child = L.root.child({ context: e });
675
+ }
676
+ verbose(e, t, n) {
677
+ let r = this.parseMessage(e);
678
+ this.child.trace(this.buildBindings({
679
+ context: t ?? this.context,
680
+ data: n,
681
+ parsed: r
682
+ }), r.text);
683
+ }
684
+ warn(e, t, n) {
685
+ let r = this.parseMessage(e);
686
+ this.child.warn(this.buildBindings({
687
+ context: t ?? this.context,
688
+ data: n,
689
+ parsed: r
690
+ }), r.text);
691
+ }
692
+ };
693
+ R = L = k([n({ scope: i.TRANSIENT }), O("design:paramtypes", [])], R);
694
+ //#endregion
695
+ //#region packages/logger/src/modules/logger/logger.module.ts
696
+ var z = class {};
697
+ z = k([t(), r({
698
+ controllers: [],
699
+ exports: [R],
700
+ imports: [],
701
+ providers: [R]
702
+ })], z);
703
+ //#endregion
704
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/output-json/output-json.service.ts
705
+ var B, V = B = class {
706
+ logger;
707
+ constructor(e) {
708
+ this.logger = e, this.logger.setContext(B.name);
709
+ }
710
+ readExisting(e) {
711
+ try {
712
+ return c(u.resolve(e), "utf8");
713
+ } catch {
714
+ return "";
715
+ }
716
+ }
717
+ buildReport(e) {
718
+ return `${JSON.stringify(e.result, null, e.destination.indentation)}\n`;
719
+ }
720
+ sync(e) {
721
+ let t = u.resolve(e.destination.path), n = this.buildReport(e);
722
+ return e.check ? this.readExisting(e.destination.path) === n : (s(u.dirname(t), { recursive: !0 }), l(t, n, "utf8"), this.logger.info("🔭 Wrote a report", void 0, { path: t }), !0);
723
+ }
724
+ };
725
+ V = B = k([n(), O("design:paramtypes", [R === void 0 ? Object : R])], V);
726
+ //#endregion
727
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/output-json/output-json.module.ts
728
+ var H = class {};
729
+ H = k([r({
730
+ controllers: [],
731
+ exports: [V],
732
+ imports: [z],
733
+ providers: [V]
734
+ })], H);
735
+ //#endregion
736
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/output-markdown/output-markdown.constants.ts
737
+ var U = /<!--\s*(?:[A-Za-z0-9_-]+:start|[A-Z0-9_]+_START)\b/i, we = class extends Error {
738
+ constructor() {
739
+ super("No markdown path to write to. Set write.markdown.path, pass --markdown, or give syncAnchoredBlock a path of its own."), this.name = "MissingMarkdownPathError";
740
+ }
741
+ }, W, G = W = class {
742
+ logger;
743
+ constructor(e) {
744
+ this.logger = e, this.logger.setContext(W.name);
745
+ }
746
+ appendBlock(e) {
747
+ let t = e.existing.trimEnd();
748
+ return `${t.length === 0 ? "" : `${t}\n\n`}${e.generated}\n`;
749
+ }
750
+ buildBlockPattern(e) {
751
+ return new RegExp(String.raw`${this.escapePattern(e.startMarker)}[\s\S]*?${this.escapePattern(e.endMarker)}`);
752
+ }
753
+ escapePattern(e) {
754
+ return e.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
755
+ }
756
+ readExisting(e) {
757
+ try {
758
+ return c(e, "utf8");
759
+ } catch {
760
+ return "";
761
+ }
762
+ }
763
+ replaceOrphanedBlock(e) {
764
+ let t = e.startIndex + e.startMarker.length, n = U.exec(e.existing.slice(t)), r = n === null ? e.existing.length : t + n.index, i = e.existing.slice(0, e.startIndex).trimEnd(), a = e.existing.slice(r).trim(), o = i.length === 0 ? "" : `${i}\n\n`;
765
+ return a.length === 0 ? `${o}${e.generated}\n` : `${o}${e.generated}\n\n${a}\n`;
766
+ }
767
+ spliceBlock(e) {
768
+ if (e.pattern.test(e.existing)) return e.existing.replace(e.pattern, () => e.generated);
769
+ let t = e.existing.indexOf(e.destination.startMarker);
770
+ return t === -1 ? this.appendBlock({
771
+ existing: e.existing,
772
+ generated: e.generated
773
+ }) : this.replaceOrphanedBlock({
774
+ existing: e.existing,
775
+ generated: e.generated,
776
+ startIndex: t,
777
+ startMarker: e.destination.startMarker
778
+ });
779
+ }
780
+ buildHelpers(e) {
781
+ let { content: t } = e;
782
+ return {
783
+ endMarker: e.destination.endMarker,
784
+ startMarker: e.destination.startMarker,
785
+ syncAnchoredBlock: (n) => this.syncAnchoredBlock({
786
+ check: e.check,
787
+ content: n?.content ?? t,
788
+ destination: e.destination,
789
+ path: n?.path
790
+ }),
791
+ wrapInAnchors: (n) => this.wrapInAnchors({
792
+ content: n ?? t,
793
+ destination: e.destination
794
+ })
795
+ };
796
+ }
797
+ sync(e) {
798
+ let { content: t } = e, n = e.destination.writeBlock;
799
+ return n === void 0 ? this.syncAnchoredBlock({
800
+ check: e.check,
801
+ content: t,
802
+ destination: e.destination,
803
+ path: e.destination.path
804
+ }) : n({
805
+ check: e.check,
806
+ content: t,
807
+ helpers: this.buildHelpers(e),
808
+ path: e.destination.path,
809
+ result: e.result
810
+ });
811
+ }
812
+ syncAnchoredBlock(e) {
813
+ let t = e.path ?? e.destination.path;
814
+ if (t.length === 0) throw new we();
815
+ let n = u.resolve(t), r = this.readExisting(n), i = this.wrapInAnchors(e), a = this.buildBlockPattern(e.destination);
816
+ if (e.check) return a.exec(r)?.[0] === i;
817
+ let o = this.spliceBlock({
818
+ destination: e.destination,
819
+ existing: r,
820
+ generated: i,
821
+ pattern: a
822
+ });
823
+ return l(n, o, "utf8"), this.logger.info("🔭 Wrote a report", void 0, { path: n }), !0;
824
+ }
825
+ wrapInAnchors(e) {
826
+ return `${e.destination.startMarker}\n\n${e.content}\n${e.destination.endMarker}`;
827
+ }
828
+ };
829
+ G = W = k([n(), O("design:paramtypes", [R === void 0 ? Object : R])], G);
830
+ //#endregion
831
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/output-markdown/output-markdown.module.ts
832
+ var K = class {};
833
+ K = k([r({
834
+ controllers: [],
835
+ exports: [G],
836
+ imports: [z],
837
+ providers: [G]
838
+ })], K);
839
+ //#endregion
840
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/project-reports/project-reports.constants.ts
841
+ var Te = 2, q = class {
842
+ pathsService;
843
+ signaturesService;
844
+ constructor(e, t) {
845
+ this.pathsService = e, this.signaturesService = t;
846
+ }
847
+ buildCallableBreadths(e) {
848
+ let t = /* @__PURE__ */ new Map();
849
+ for (let [n, r] of e.callablesById) {
850
+ let i = e.breadthMeasurement.byCallable.get(n);
851
+ if (i === void 0 || i.breadth === 0) continue;
852
+ let a = i.calleeIds.flatMap((t) => {
853
+ let n = e.callablesById.get(t);
854
+ return n === void 0 ? [] : [{
855
+ displayName: n.node.displayName,
856
+ id: t
857
+ }];
858
+ }), o = t.get(r.node.projectName) ?? [];
859
+ o.push({
860
+ breadth: i.breadth,
861
+ callees: a,
862
+ displayName: r.node.displayName,
863
+ id: n,
864
+ location: r.node.location,
865
+ signature: this.signaturesService.read({
866
+ checker: r.projectProgram.checker,
867
+ declaration: r.declaration
868
+ })
869
+ }), t.set(r.node.projectName, o);
870
+ }
871
+ return t;
872
+ }
873
+ buildStacks(e) {
874
+ let t = /* @__PURE__ */ new Map();
875
+ for (let n of e.entryPoints.entryPoints) {
876
+ let r = e.callablesById.get(n.callableId), i = r === void 0 ? void 0 : this.readDepth({
877
+ callableId: n.callableId,
878
+ condensed: e.condensed,
879
+ measurement: e.measurement
880
+ });
881
+ if (r === void 0 || i === void 0) continue;
882
+ let a = this.pathsService.buildDeepestPath({
883
+ callablesById: e.callablesById,
884
+ condensed: e.condensed,
885
+ entryPointId: n.callableId,
886
+ measurement: e.measurement
887
+ });
888
+ if (a.length < 2) continue;
889
+ let o = t.get(r.node.projectName) ?? [];
890
+ o.push({
891
+ depth: i.depth,
892
+ entryPointKind: n.kind,
893
+ frames: a,
894
+ isLowerBound: i.reachesUnresolved
895
+ }), t.set(r.node.projectName, o);
896
+ }
897
+ return t;
898
+ }
899
+ buildSummary(e) {
900
+ let t = /* @__PURE__ */ new Set();
901
+ for (let [n, r] of e.callablesById) r.node.projectName === e.projectName && t.add(n);
902
+ return {
903
+ callableCount: t.size,
904
+ cyclicComponentCount: e.stacks.filter((e) => e.frames.some((e) => e.isCycle)).length,
905
+ edgeCount: e.graph.edges.filter((e) => t.has(e.callerId)).length,
906
+ entryPointCount: e.stacks.length,
907
+ fileCount: e.fileCount,
908
+ maximumDepth: e.stacks.reduce((e, t) => Math.max(e, t.depth), 0),
909
+ projectCount: 1,
910
+ unresolvedCallCount: e.graph.unresolvedCalls.filter((e) => t.has(e.callerId)).length
911
+ };
912
+ }
913
+ findProjectDeepStacks(e) {
914
+ return e.report.stacks.filter((t) => t.depth > e.limit).map((t) => ({
915
+ ...t,
916
+ limit: e.limit
917
+ }));
918
+ }
919
+ findProjectWideCallables(e) {
920
+ return e.report.callableBreadths.filter((t) => t.breadth > e.limit).map((t) => ({
921
+ ...t,
922
+ limit: e.limit
923
+ }));
924
+ }
925
+ readDepth(e) {
926
+ let t = e.condensed.componentIdByCallable.get(e.callableId);
927
+ if (t === void 0) return;
928
+ let n = e.measurement.byComponent[t];
929
+ return n === void 0 ? void 0 : {
930
+ depth: n.depth,
931
+ reachesUnresolved: n.reachesUnresolved
932
+ };
933
+ }
934
+ readProjectLimits(e) {
935
+ return e.limits.byProject.get(e.projectName) ?? e.limits.workspace;
936
+ }
937
+ build(e) {
938
+ let t = this.buildStacks(e), n = this.buildCallableBreadths(e);
939
+ return e.projectNames.map((r) => {
940
+ let i = (t.get(r) ?? []).toSorted((e, t) => t.depth - e.depth);
941
+ return {
942
+ callableBreadths: (n.get(r) ?? []).toSorted((e, t) => t.breadth - e.breadth),
943
+ projectName: r,
944
+ stacks: i,
945
+ summary: this.buildSummary({
946
+ callablesById: e.callablesById,
947
+ fileCount: e.fileCountByProject.get(r) ?? 0,
948
+ graph: e.graph,
949
+ projectName: r,
950
+ stacks: i
951
+ })
952
+ };
953
+ });
954
+ }
955
+ findDeepStacks(e) {
956
+ return e.reports.flatMap((t) => this.findProjectDeepStacks({
957
+ limit: this.readProjectLimits({
958
+ limits: e.limits,
959
+ projectName: t.projectName
960
+ }).maximumDepth,
961
+ report: t
962
+ })).toSorted((e, t) => t.depth - e.depth);
963
+ }
964
+ findOwnedFindings(e) {
965
+ let t = e.reports.filter((t) => e.projectNames.includes(t.projectName));
966
+ return {
967
+ deepStacks: this.findDeepStacks({
968
+ limits: e.limits,
969
+ reports: t
970
+ }),
971
+ wideCallables: this.findWideCallables({
972
+ limits: e.limits,
973
+ reports: t
974
+ })
975
+ };
976
+ }
977
+ findUnreadProjects(e) {
978
+ return e.projectNames.filter((t) => (e.reports.find((e) => e.projectName === t)?.summary.fileCount ?? 0) === 0);
979
+ }
980
+ findWideCallables(e) {
981
+ return e.reports.flatMap((t) => this.findProjectWideCallables({
982
+ limit: this.readProjectLimits({
983
+ limits: e.limits,
984
+ projectName: t.projectName
985
+ }).maximumBreadth ?? Infinity,
986
+ report: t
987
+ })).toSorted((e, t) => t.breadth - e.breadth);
988
+ }
989
+ };
990
+ q = k([n(), O("design:paramtypes", [f === void 0 ? Object : f, p === void 0 ? Object : p])], q);
991
+ //#endregion
992
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/project-reports/project-reports.module.ts
993
+ var J = class {};
994
+ J = k([r({
995
+ controllers: [],
996
+ exports: [q],
997
+ imports: [ee, te],
998
+ providers: [q]
999
+ })], J);
1000
+ //#endregion
1001
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/report-findings/report-findings.service.ts
1002
+ var Y = class {
1003
+ logger;
1004
+ constructor(e) {
1005
+ this.logger = e;
1006
+ }
1007
+ reportDeepStacks(e) {
1008
+ let { deepStacks: t } = e.result;
1009
+ return t.length !== 0 && (this.logger.error("🔭 Found call stacks too deep", void 0, {
1010
+ count: t.length,
1011
+ deepest: Math.max(...t.map((e) => e.depth)),
1012
+ entryPoints: t.map((e) => e.frames[0]?.displayName)
1013
+ }), e.mode.checksDepth);
1014
+ }
1015
+ reportEmptyTrace(e) {
1016
+ return e.result.summary.callableCount > 0 ? !1 : (this.logger.error("🔭 Traced nothing", void 0, { projectCount: e.result.summary.projectCount }), !0);
1017
+ }
1018
+ reportStaleness(e) {
1019
+ return e.stalePaths.length !== 0 && (this.logger.error("🔭 Found stale reports", void 0, { paths: e.stalePaths }), !0);
1020
+ }
1021
+ reportWideCallables(e) {
1022
+ let { wideCallables: t } = e.result;
1023
+ return t.length !== 0 && (this.logger.error("🔭 Found callables calling too much directly", void 0, {
1024
+ callables: t.map((e) => e.displayName),
1025
+ count: t.length,
1026
+ widest: Math.max(...t.map((e) => e.breadth))
1027
+ }), e.mode.checksBreadth);
1028
+ }
1029
+ reportFindings(e) {
1030
+ let t = this.reportStaleness(e), n = this.reportDeepStacks(e), r = this.reportWideCallables(e), i = this.reportEmptyTrace(e);
1031
+ (n || i || t || r) && (process.exitCode = 1);
1032
+ }
1033
+ };
1034
+ Y = k([n(), O("design:paramtypes", [R === void 0 ? Object : R])], Y);
1035
+ //#endregion
1036
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/report-findings/report-findings.module.ts
1037
+ var X = class {};
1038
+ X = k([r({
1039
+ controllers: [],
1040
+ exports: [Y],
1041
+ imports: [z],
1042
+ providers: [Y]
1043
+ })], X);
1044
+ //#endregion
1045
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/write-destinations/write-destinations.constants.ts
1046
+ var Z = [["markdown", "tree"], ["mermaid", "diagram"]], Q = class {
1047
+ markdownReportService;
1048
+ outputJsonService;
1049
+ outputMarkdownService;
1050
+ constructor(e, t, n) {
1051
+ this.markdownReportService = e, this.outputJsonService = t, this.outputMarkdownService = n;
1052
+ }
1053
+ syncProjectDestinations(e) {
1054
+ let t = [];
1055
+ for (let n of e.result.projects) {
1056
+ let r = e.startingProjectRoots.get(n.projectName), i = e.writeByProject.get(n.projectName);
1057
+ r !== void 0 && i !== void 0 && t.push(...this.syncProjectSections({
1058
+ check: e.check,
1059
+ projectLimits: e.projectLimits,
1060
+ report: n,
1061
+ result: e.result,
1062
+ root: r,
1063
+ write: i
1064
+ }));
1065
+ }
1066
+ return t;
1067
+ }
1068
+ syncProjectSections(e) {
1069
+ let t = [];
1070
+ for (let [n, r] of Z) {
1071
+ let i = e.write[n];
1072
+ if (i === void 0) continue;
1073
+ let a = {
1074
+ ...i,
1075
+ path: u.join(e.root, i.path)
1076
+ };
1077
+ this.outputMarkdownService.sync({
1078
+ check: e.check,
1079
+ content: this.markdownReportService.renderProjectSection({
1080
+ heading: i.heading,
1081
+ limits: e.projectLimits,
1082
+ previewCount: i.previewCount,
1083
+ rendering: r,
1084
+ report: e.report
1085
+ }),
1086
+ destination: a,
1087
+ result: e.result
1088
+ }) || t.push(a.path);
1089
+ }
1090
+ return t;
1091
+ }
1092
+ syncDestinations(e) {
1093
+ let t = [], { json: n } = e.configuration.write;
1094
+ n !== void 0 && !this.outputJsonService.sync({
1095
+ check: e.check,
1096
+ destination: n,
1097
+ result: e.result
1098
+ }) && t.push(n.path);
1099
+ for (let [n, r] of Z) {
1100
+ let i = e.configuration.write[n];
1101
+ i !== void 0 && !this.outputMarkdownService.sync({
1102
+ check: e.check,
1103
+ content: this.markdownReportService.renderRun({
1104
+ description: i.description,
1105
+ heading: i.heading,
1106
+ limits: e.projectLimits,
1107
+ previewCount: i.previewCount,
1108
+ rendering: r,
1109
+ result: e.result
1110
+ }),
1111
+ destination: i,
1112
+ result: e.result
1113
+ }) && t.push(i.path);
1114
+ }
1115
+ return t.push(...this.syncProjectDestinations(e)), t;
1116
+ }
1117
+ };
1118
+ Q = k([n(), O("design:paramtypes", [
1119
+ N === void 0 ? Object : N,
1120
+ V === void 0 ? Object : V,
1121
+ G === void 0 ? Object : G
1122
+ ])], Q);
1123
+ //#endregion
1124
+ //#region packages/ic-suite/callidescope/callidescope-output/src/modules/write-destinations/write-destinations.module.ts
1125
+ var $ = class {};
1126
+ $ = k([r({
1127
+ controllers: [],
1128
+ exports: [Q],
1129
+ imports: [
1130
+ H,
1131
+ K,
1132
+ P
1133
+ ],
1134
+ providers: [Q]
1135
+ })], $);
1136
+ //#endregion
1137
+ export { I as AddressReportModule, F as AddressReportService, g as COLLAPSED_PARAMETERS, ae as DEPRECATED_MARKER, le as DIAGRAM_NODE_PREFIX, m as ENTRY_FRAME_PREFIX, U as FOREIGN_ANCHOR_PATTERN, w as HEADROOM_BUCKET_AT_LIMIT, ye as HEADROOM_BUCKET_FOUR_PLUS, ve as HEADROOM_BUCKET_ONE, D as HEADROOM_BUCKET_ORDER, C as HEADROOM_BUCKET_OVER_LIMIT, T as HEADROOM_BUCKET_TWO_TO_THREE, E as HEADROOM_BUCKET_UNMEASURED, b as MARKDOWN_DEEP_STACKS_HEADING, Z as MARKDOWN_DESTINATION_RENDERINGS, S as MARKDOWN_HEADROOM_HEADER, fe as MARKDOWN_PROJECT_INDEX_HEADER, v as MARKDOWN_SUMMARY_HEADER, y as MARKDOWN_WIDE_CALLABLES_HEADER, x as MARKDOWN_WIDE_CALLABLES_HEADING, ce as MAXIMUM_DIAGRAM_NODES, se as MERMAID_FLOWCHART_HEADER, ue as MERMAID_LABEL_ESCAPES, Te as MINIMUM_STACK_FRAMES, N as MarkdownReportService, A as MermaidReportService, we as MissingMarkdownPathError, h as NESTED_FRAME_PREFIX, H as OutputJsonModule, V as OutputJsonService, K as OutputMarkdownModule, G as OutputMarkdownService, J as ProjectReportsModule, q as ProjectReportsService, de as ROOT_PROJECT_LABEL, X as ReportFindingsModule, Y as ReportFindingsService, P as ReportModule, j as ReportService, _ as SENTENCE_END_PATTERN, ne as SIGNATURE_LIMIT, re as SUMMARY_LIMIT, oe as SUMMARY_PREFIX, ie as TRUNCATION_SUFFIX, M as WorkspaceReportService, $ as WriteDestinationsModule, Q as WriteDestinationsService };