@conformetry/languages 0.0.4 β†’ 0.0.6

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/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # πŸ‘” Conformetry Languages
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@conformetry/languages?logo=npm&label=npm)](https://www.npmjs.com/package/@conformetry/languages)
4
+
3
5
  Every Language [Conformetry](../conformetry-cli/README.md) compares files with,
4
6
  behind one import β€” plus the resolution that decides which of them a run needs.
5
7
 
@@ -95,10 +97,10 @@ Call stacks traced through `packages/ic-suite/conformetry/conformetry-languages`
95
97
 
96
98
  | Measure | Value |
97
99
  | --- | --- |
98
- | Callables | 159 |
100
+ | Callables | 166 |
99
101
  | Files | 55 |
100
- | Calls traced | 199 |
101
- | Call stacks | 14 |
102
+ | Calls traced | 216 |
103
+ | Call stacks | 15 |
102
104
  | Deepest stack | 13 |
103
105
  | Stacks through recursion | 3 |
104
106
  | Unfollowable calls | 0 |
@@ -126,19 +128,19 @@ What this project is judged against, as declared in its own `callidescope.config
126
128
  ↳ Validates one paired cell with the validator matching its kind.
127
129
  └─> MarkdownService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown.service.ts:48]
128
130
  ↳ Reports every markdown structure the template requires and the file lacks.
129
- └─> MarkdownTreeService.compareContainer(args: CompareNodeArguments): CompareNodeResult (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:65]
131
+ └─> MarkdownTreeService.compareContainer(args: CompareNodeArguments): CompareNodeResult (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:80]
130
132
  ↳ Matches a container node, then descends into it.
131
- └─> MarkdownTreeService.map(…)(…): { differences: MarkdownComparisonError[]; lastMatchedNode: MarkdownNode; totalWeight: number; } (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:91]
132
- └─> MarkdownTreeService.compareChildren(args: CompareChildrenArguments): CompareChildrenResult (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:147]
133
+ └─> MarkdownTreeService.map(…)(…): { captures: { [x: string]: string; }; differences: MarkdownComparisonError[]; lastMatchedNode: MarkdownNode; totalWeight: number; } (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:107]
134
+ └─> MarkdownTreeService.compareChildren(args: CompareChildrenArguments): CompareChildrenResult (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:170]
133
135
  ↳ Compares one level of two trees, descending into containers.
134
- └─> MarkdownTreeService.compareLeaf(args: CompareNodeArguments): CompareNodeResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:115]
136
+ └─> MarkdownTreeService.compareLeaf(args: CompareNodeArguments): CompareNodeResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:135]
135
137
  ↳ Matches a leaf node on its own identity, without descending.
136
- └─> MarkdownTreeService.findCandidates(args: CompareNodeArguments): MarkdownNode[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:135]
138
+ └─> MarkdownTreeService.findCandidates(args: CompareNodeArguments): MarkdownNode[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:156]
137
139
  ↳ Finds every instance sibling satisfying the template node.
138
- └─> MarkdownTreeService.filter(…)(instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:136]
139
- └─> MarkdownNodesService.matches(args: { instanceNode: MarkdownNode; templateNode: MarkdownNode; }): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:140]
140
- ↳ Returns whether an instance node satisfies a template node.
141
- └─> MarkdownNodesService.readText(node: MarkdownNode): string [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:163]
140
+ └─> MarkdownTreeService.filter(…)(instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:157]
141
+ └─> MarkdownNodesService.capture(…): Record<string, string> | undefined [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:116]
142
+ ↳ Matches an instance node against a template node, returning what any placeholder value in the template node's text…
143
+ └─> MarkdownNodesService.readText(node: MarkdownNode): string [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:190]
142
144
  ↳ Reads a node's rendered plain text.
143
145
  ```
144
146
 
@@ -147,52 +149,53 @@ What this project is judged against, as declared in its own `callidescope.config
147
149
  ```text
148
150
  πŸš€ JsonService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json.service.ts:39]
149
151
  ↳ Reports every key or value the template requires and the instance lacks.
150
- └─> JsonComparisonService.compareArrayItem(…): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:80]
152
+ └─> JsonComparisonService.compareArrayItem(…): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:103]
151
153
  ↳ Matches one required array entry against the instance array.
152
- └─> JsonComparisonService.map(…)(instanceItem: JsonValue, index: number): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:123]
153
- └─> JsonComparisonService.compare(args: CompareJsonArguments): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:269]
154
+ └─> JsonComparisonService.map(…)(instanceItem: JsonValue, index: number): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:158]
155
+ └─> JsonComparisonService.compare(args: CompareJsonArguments): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:304]
154
156
  ↳ Compares a template value against an instance value, returning every way the instance fails to contain what the…
155
- └─> JsonComparisonService.compareArrays(…): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:142]
157
+ └─> JsonComparisonService.compareArrays(…): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:177]
156
158
  ↳ Compares two arrays.
157
- └─> JsonComparisonService.map(…)(templateItem: JsonValue): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:149]
158
- └─> JsonComparisonService.compareObjects(…): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:156]
159
+ └─> JsonComparisonService.map(…)(templateItem: JsonValue): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:184]
160
+ └─> JsonComparisonService.compareObjects(…): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:191]
159
161
  ↳ Compares two objects, requiring every template key to be present.
160
- └─> JsonComparisonService.map(…)([key, templateValue]: [string, JsonValue]): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:165]
161
- └─> JsonComparisonService.countNodes(value: JsonValue): number (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:208]
162
+ └─> JsonComparisonService.map(…)([key, templateValue]: [string, JsonValue]): JsonComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:200]
163
+ └─> JsonComparisonService.countNodes(value: JsonValue): number (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:243]
162
164
  ↳ Counts a JSON value and every value nested inside it.
163
- └─> JsonComparisonService.reduce(…)(total: number, item: JsonValue): number (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:210]
164
- └─> JsonComparisonService.reduce(…)(total: number, nested: JsonValue): number (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:216]
165
- └─> JsonComparisonService.isJsonObject(value: JsonValue): value is Record<string, JsonValue> [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:236]
165
+ └─> JsonComparisonService.reduce(…)(total: number, item: JsonValue): number (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:245]
166
+ └─> JsonComparisonService.reduce(…)(total: number, nested: JsonValue): number (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:251]
167
+ └─> JsonComparisonService.isJsonObject(value: JsonValue): value is Record<string, JsonValue> [packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:271]
166
168
  ↳ Returns whether a value is a plain JSON object.
167
169
  ```
168
170
 
169
171
  **3. `TypescriptService.validateDocument`** β€” depth 12 Β· orphan-root
170
172
 
171
173
  ```text
172
- πŸš€ TypescriptService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:164]
174
+ πŸš€ TypescriptService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:170]
173
175
  ↳ Reports every declaration and comment the template requires.
174
176
  └─> TypescriptService.validateStructure(…): DocumentValidationResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:107]
175
177
  ↳ Compares the syntax trees and describes each missing declaration.
176
- └─> TypescriptTreeService.compareBestCandidate(args: { candidates: Node[]; templateChild: Node; }): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:68]
178
+ └─> TypescriptTreeService.compareBestCandidate(…): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:69]
177
179
  ↳ Descends into whichever candidate explains the template best.
178
- └─> TypescriptTreeService.map(…)(candidate: Node): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:73]
179
- └─> TypescriptTreeService.compareTree(args: CompareTreeArguments): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:127]
180
+ └─> TypescriptTreeService.map(…)(…): { captures: { [x: string]: string; }; differences: TypescriptComparisonError[]; totalWeight: number; } (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:74]
181
+ └─> TypescriptTreeService.compareTree(args: CompareTreeArguments): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:179]
180
182
  ↳ Compares one level of two trees, descending into every match.
181
- └─> TypescriptTreeService.map(…)(templateChild: Node): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:134]
182
- └─> TypescriptTreeService.compareChild(…): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:88]
183
+ └─> TypescriptTreeService.map(…)(templateChild: Node): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:186]
184
+ └─> TypescriptTreeService.compareChild(…): TreeComparison (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:95]
183
185
  ↳ Matches one template child against the instance's children.
184
- └─> TypescriptTreeService.buildError(…): TypescriptComparisonError [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:43]
185
- ↳ Describes a template node with no instance counterpart.
186
- └─> TypescriptNodesService.countSubtree(node: Node): number (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:176]
187
- ↳ Counts a node and everything beneath it.
188
- └─> TypescriptNodesService.reduce(…)(total: number, child: Node): number (cycle) [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:177]
189
- └─> TypescriptNodesService.readChildren(node: Node): Node[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:183]
190
- ↳ Reads a node's direct children, skipping the end-of-file token.
191
- └─> TypescriptNodesService.forEachChild(…)(childNode: Node): undefined [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:186]
186
+ └─> TypescriptTreeService.flatMap(…)(…): { captures: Record<string, string>; node: Node; }[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:101]
187
+ └─> TypescriptTreeService.matchKey(…): Record<string, string> | undefined [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:144]
188
+ ↳ Matches a template node on its key, returning what any placeholder value in the key captured, or `undefined` when the…
189
+ └─> TypescriptNodesService.readKey(node: Node): null | string [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:201]
190
+ ↳ Reads a node's identity, or `null` when it has none.
191
+ └─> TypescriptNodesService.readDecoratorKey(node: Decorator): null | string [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:75]
192
+ ↳ Keys a decorator by its callee, so `@Injectable()` matches `@Injectable`.
193
+ └─> TypescriptNodesService.buildDottedName(callee: Node): null | string [packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:46]
194
+ ↳ Builds a dotted name such as `Nest.Injectable` from a callee expression.
192
195
  ```
193
196
 
194
197
  <details>
195
- <summary>11 more call stacks</summary>
198
+ <summary>12 more call stacks</summary>
196
199
 
197
200
  **4. `PythonService.validateDocument`** β€” depth 6 Β· orphan-root
198
201
 
@@ -210,89 +213,102 @@ What this project is judged against, as declared in its own `callidescope.config
210
213
  ↳ Narrows an untrusted string field from the bridge payload.
211
214
  ```
212
215
 
213
- **5. `LanguagesService.validateDocument`** β€” depth 4 Β· orphan-root
216
+ **5. `LanguagesService.validateDocument`** β€” depth 5 Β· orphan-root
214
217
 
215
218
  ```text
216
219
  πŸš€ LanguagesService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/languages/languages.service.ts:80]
217
- └─> TextService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:76]
220
+ └─> TextService.validateDocument(document: PreparedValidationDocument): DocumentValidationResult [packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:113]
218
221
  ↳ Reports every template line missing from the instance.
219
- └─> TextService.findMissingLines(document: PreparedValidationDocument): MissingLine[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:46]
222
+ └─> TextService.findMissingLines(document: PreparedValidationDocument): LineComparison [packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:74]
220
223
  ↳ Finds template lines the instance does not supply often enough.
221
- └─> TextService.countLines(text: string): Map<string, number> [packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:35]
222
- ↳ Counts how many times each line occurs, for duplicate-aware matching.
224
+ └─> TextService.captureLine(…): Record<string, string> | undefined [packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:39]
225
+ ↳ Captures what a template line's placeholder values stand for, taking the first unclaimed instance line that fits it as…
226
+ └─> capturePlaceholderValues(…): Record<string, string> | undefined [packages/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.utilities.ts:21]
227
+ ↳ Reads what each placeholder value in `templateText` stands for in `instanceText`.
223
228
  ```
224
229
 
225
230
  **6. `MarkdownNodesService.table`** β€” depth 3 Β· orphan-root
226
231
 
227
232
  ```text
228
- πŸš€ MarkdownNodesService.table(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:68]
229
- └─> MarkdownNodesService.readColumnCount(node: MarkdownNode): number [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:91]
233
+ πŸš€ MarkdownNodesService.table(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:69]
234
+ └─> MarkdownNodesService.readColumnCount(node: MarkdownNode): number [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:92]
230
235
  ↳ Counts a table's columns from its first row.
231
- └─> MarkdownNodesService.readChildren(node: MarkdownNode): MarkdownNode[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:158]
236
+ └─> MarkdownNodesService.readChildren(node: MarkdownNode): MarkdownNode[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:185]
232
237
  ↳ Reads a node's children, or an empty list for a leaf.
233
238
  ```
234
239
 
235
- **7. `MarkdownNodesService.code`** β€” depth 2 Β· orphan-root
240
+ **7. `MarkdownNodesService.matches`** β€” depth 3 Β· orphan-root
241
+
242
+ ```text
243
+ πŸš€ MarkdownNodesService.matches(args: { instanceNode: MarkdownNode; templateNode: MarkdownNode; }): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:177]
244
+ ↳ Returns whether an instance node satisfies a template node.
245
+ └─> MarkdownNodesService.capture(…): Record<string, string> | undefined [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:116]
246
+ ↳ Matches an instance node against a template node, returning what any placeholder value in the template node's text…
247
+ └─> MarkdownNodesService.readText(node: MarkdownNode): string [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:190]
248
+ ↳ Reads a node's rendered plain text.
249
+ ```
250
+
251
+ **8. `MarkdownNodesService.code`** β€” depth 2 Β· orphan-root
236
252
 
237
253
  ```text
238
- πŸš€ MarkdownNodesService.code(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:35]
239
- └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:98]
254
+ πŸš€ MarkdownNodesService.code(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:36]
255
+ └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:99]
240
256
  ↳ Compares two optional string fields, treating absent as empty.
241
257
  ```
242
258
 
243
- **8. `MarkdownNodesService.heading`** β€” depth 2 Β· orphan-root
259
+ **9. `MarkdownNodesService.heading`** β€” depth 2 Β· orphan-root
244
260
 
245
261
  ```text
246
- πŸš€ MarkdownNodesService.heading(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:41]
247
- └─> MarkdownNodesService.readText(node: MarkdownNode): string [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:163]
262
+ πŸš€ MarkdownNodesService.heading(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:42]
263
+ └─> MarkdownNodesService.readText(node: MarkdownNode): string [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:190]
248
264
  ↳ Reads a node's rendered plain text.
249
265
  ```
250
266
 
251
- **9. `MarkdownNodesService.html`** β€” depth 2 Β· orphan-root
267
+ **10. `MarkdownNodesService.html`** β€” depth 2 Β· orphan-root
252
268
 
253
269
  ```text
254
- πŸš€ MarkdownNodesService.html(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:47]
255
- └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:98]
270
+ πŸš€ MarkdownNodesService.html(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:48]
271
+ └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:99]
256
272
  ↳ Compares two optional string fields, treating absent as empty.
257
273
  ```
258
274
 
259
- **10. `MarkdownNodesService.image`** β€” depth 2 Β· orphan-root
275
+ **11. `MarkdownNodesService.image`** β€” depth 2 Β· orphan-root
260
276
 
261
277
  ```text
262
- πŸš€ MarkdownNodesService.image(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:50]
263
- └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:98]
278
+ πŸš€ MarkdownNodesService.image(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:51]
279
+ └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:99]
264
280
  ↳ Compares two optional string fields, treating absent as empty.
265
281
  ```
266
282
 
267
- **11. `MarkdownNodesService.inlineCode`** β€” depth 2 Β· orphan-root
283
+ **12. `MarkdownNodesService.inlineCode`** β€” depth 2 Β· orphan-root
268
284
 
269
285
  ```text
270
- πŸš€ MarkdownNodesService.inlineCode(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:56]
271
- └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:98]
286
+ πŸš€ MarkdownNodesService.inlineCode(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:57]
287
+ └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:99]
272
288
  ↳ Compares two optional string fields, treating absent as empty.
273
289
  ```
274
290
 
275
- **12. `MarkdownNodesService.link`** β€” depth 2 Β· orphan-root
291
+ **13. `MarkdownNodesService.link`** β€” depth 2 Β· orphan-root
276
292
 
277
293
  ```text
278
- πŸš€ MarkdownNodesService.link(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:59]
279
- └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:98]
294
+ πŸš€ MarkdownNodesService.link(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:60]
295
+ └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:99]
280
296
  ↳ Compares two optional string fields, treating absent as empty.
281
297
  ```
282
298
 
283
- **13. `MarkdownNodesService.tableRow`** β€” depth 2 Β· orphan-root
299
+ **14. `MarkdownNodesService.tableRow`** β€” depth 2 Β· orphan-root
284
300
 
285
301
  ```text
286
- πŸš€ MarkdownNodesService.tableRow(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:74]
287
- └─> MarkdownNodesService.readChildren(node: MarkdownNode): MarkdownNode[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:158]
302
+ πŸš€ MarkdownNodesService.tableRow(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:75]
303
+ └─> MarkdownNodesService.readChildren(node: MarkdownNode): MarkdownNode[] [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:185]
288
304
  ↳ Reads a node's children, or an empty list for a leaf.
289
305
  ```
290
306
 
291
- **14. `MarkdownNodesService.text`** β€” depth 2 Β· orphan-root
307
+ **15. `MarkdownNodesService.text`** β€” depth 2 Β· orphan-root
292
308
 
293
309
  ```text
294
- πŸš€ MarkdownNodesService.text(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:80]
295
- └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:98]
310
+ πŸš€ MarkdownNodesService.text(templateNode: MarkdownNode, instanceNode: MarkdownNode): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:81]
311
+ └─> MarkdownNodesService.sameField(leftValue: string | undefined, rightValue: string | undefined): boolean [packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:99]
296
312
  ↳ Compares two optional string fields, treating absent as empty.
297
313
  ```
298
314
 
@@ -303,77 +319,84 @@ What this project is judged against, as declared in its own `callidescope.config
303
319
  | Callable | Breadth | Calls directly | Location |
304
320
  | --- | --- | --- | --- |
305
321
  | `JupyterService.validateDocument` | 11 | `JupyterNotebookService.parseNotebook`, `JupyterNotebookService.pairCells`, `JsonComparisonService.compare`, `JupyterService.readEnvelope`, `JupyterService.map(…)`, `JupyterService.map(…)`, `JupyterService.map(…)`, `JupyterService.flatMap(…)`, `JupyterService.reduce(…)`, `JupyterService.map(…)`, `JupyterService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter.service.ts:153` |
306
- | `JsonComparisonService.compare` | 7 | `JsonComparisonService.countContainer`, `JsonComparisonService.compareArrays`, `JsonComparisonService.isJsonObject`, `JsonComparisonService.compareObjects`, `JsonComparisonService.countNodes`, `JsonComparisonService.formatPath`, `JsonComparisonService.buildError` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:269` |
307
- | `JsonComparisonService.compareArrayItem` | 6 | `JsonComparisonService.formatPath`, `JsonComparisonService.countNodes`, `JsonComparisonService.isJsonPrimitive`, `JsonComparisonService.buildError`, `JsonComparisonService.pickClosestMatch`, `JsonComparisonService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:80` |
322
+ | `JsonComparisonService.compareArrayItem` | 8 | `JsonComparisonService.formatPath`, `JsonComparisonService.countNodes`, `JsonComparisonService.isJsonPrimitive`, `JsonComparisonService.find(…)`, `JsonComparisonService.map(…)`, `JsonComparisonService.buildError`, `JsonComparisonService.pickClosestMatch`, `JsonComparisonService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:103` |
323
+ | `JsonComparisonService.compare` | 8 | `JsonComparisonService.countContainer`, `JsonComparisonService.compareArrays`, `JsonComparisonService.isJsonObject`, `JsonComparisonService.compareObjects`, `JsonComparisonService.countNodes`, `JsonComparisonService.captureString`, `JsonComparisonService.formatPath`, `JsonComparisonService.buildError` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:304` |
308
324
 
309
325
  <details>
310
- <summary>84 more callables</summary>
326
+ <summary>90 more callables</summary>
311
327
 
312
328
  | Callable | Breadth | Calls directly | Location |
313
329
  | --- | --- | --- | --- |
330
+ | `MarkdownTreeService.compareContainer` | 6 | `MarkdownTreeService.findCandidates`, `MarkdownTreeService.buildError`, `MarkdownNodesService.readChildren`, `MarkdownTreeService.captureFirst`, `MarkdownTreeService.reduce(…)`, `MarkdownTreeService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:80` |
314
331
  | `PythonBridgeService.toConformetryDifference` | 6 | `PythonBridgeService.readValues`, `PythonBridgeService.readLocations`, `DifferencesService.resolveDifferenceType`, `PythonBridgeService.readString`, `DifferencesService.resolveErrorLanguage`, `PythonBridgeService.readNumber` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/python/python-bridge.service.ts:134` |
315
332
  | `TypescriptNodesService.readKey` | 6 | `TypescriptNodesService.readImportKey`, `TypescriptNodesService.readExportKey`, `TypescriptNodesService.readDecoratorKey`, `TypescriptNodesService.readExpressionStatementKey`, `TypescriptNodesService.readLiteralKey`, `TypescriptNodesService.readNamedKey` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:201` |
316
- | `MarkdownTreeService.compareContainer` | 5 | `MarkdownTreeService.findCandidates`, `MarkdownTreeService.buildError`, `MarkdownNodesService.readChildren`, `MarkdownTreeService.reduce(…)`, `MarkdownTreeService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:65` |
317
- | `TypescriptTreeService.compareChild` | 5 | `TypescriptNodesService.readKey`, `TypescriptTreeService.filter(…)`, `TypescriptTreeService.filter(…)`, `TypescriptTreeService.buildError`, `TypescriptTreeService.compareBestCandidate` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:88` |
318
333
  | `LanguagesService.resolveValidators` | 5 | `LanguagesService.filter(…)`, `LanguagesService.claimingLanguages`, `LanguagesService.flatMap(…)`, `LanguagesService.filter(…)`, `LanguagesService.widenFallback` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/languages/languages.service.ts:95` |
319
- | `JsonComparisonService.map(…)` | 4 | `JsonComparisonService.formatPath`, `JsonComparisonService.countNodes`, `JsonComparisonService.buildError`, `JsonComparisonService.compare` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:165` |
334
+ | `JsonComparisonService.map(…)` | 4 | `JsonComparisonService.formatPath`, `JsonComparisonService.countNodes`, `JsonComparisonService.buildError`, `JsonComparisonService.compare` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:200` |
335
+ | `MarkdownTreeService.compareLeaf` | 4 | `MarkdownTreeService.findCandidates`, `MarkdownNodesService.countSubtree`, `MarkdownTreeService.buildError`, `MarkdownTreeService.captureFirst` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:135` |
336
+ | `TypescriptTreeService.compareChild` | 4 | `TypescriptNodesService.readKey`, `TypescriptTreeService.flatMap(…)`, `TypescriptTreeService.buildError`, `TypescriptTreeService.compareBestCandidate` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:95` |
320
337
  | `FilesService.checkInstanceFiles` | 3 | `ConfigurationService.resolveInstanceFiles`, `FilesService.buildMissingDifference`, `FilesService.countExpectedFiles` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/files/files.service.ts:96` |
321
- | `JsonComparisonService.countNodes` | 3 | `JsonComparisonService.reduce(…)`, `JsonComparisonService.isJsonObject`, `JsonComparisonService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:208` |
338
+ | `JsonComparisonService.countNodes` | 3 | `JsonComparisonService.reduce(…)`, `JsonComparisonService.isJsonObject`, `JsonComparisonService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:243` |
322
339
  | `JupyterNotebookService.pairCells` | 3 | `JupyterNotebookService.groupSourcesByKind`, `JupyterNotebookService.readCellKind`, `JupyterNotebookService.readCellSource` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter-notebook.service.ts:82` |
323
- | `MarkdownTreeService.compareLeaf` | 3 | `MarkdownTreeService.findCandidates`, `MarkdownNodesService.countSubtree`, `MarkdownTreeService.buildError` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:115` |
340
+ | `MarkdownTreeService.map(…)` | 3 | `MarkdownTreeService.compareChildren`, `MarkdownNodesService.readChildren`, `MarkdownTreeService.captureFirst` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:107` |
324
341
  | `MarkdownService.validateDocument` | 3 | `MarkdownTreeService.compareChildren`, `MarkdownNodesService.filterNodes`, `MarkdownService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown.service.ts:48` |
325
342
  | `PythonBridgeService.validatePythonSource` | 3 | `PythonBridgeService.buildBridgeError`, `PythonBridgeService.map(…)`, `ScoringService.sumWeights` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/python/python-bridge.service.ts:162` |
326
343
  | `JupyterService.validateCell` | 3 | `MarkdownService.validateDocument`, `JupyterService.attributeToCell`, `PythonBridgeService.validatePythonSource` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter.service.ts:90` |
327
- | `TypescriptTreeService.compareTree` | 3 | `TypescriptNodesService.readChildren`, `TypescriptTreeService.reduce(…)`, `TypescriptTreeService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:127` |
328
- | `TypescriptService.validateDocument` | 3 | `TypescriptService.parseSourceFile`, `TypescriptService.validateStructure`, `TypescriptService.validateComments` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:164` |
344
+ | `TypescriptTreeService.compareTree` | 3 | `TypescriptNodesService.readChildren`, `TypescriptTreeService.reduce(…)`, `TypescriptTreeService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:179` |
345
+ | `TypescriptService.validateDocument` | 3 | `TypescriptService.parseSourceFile`, `TypescriptService.validateStructure`, `TypescriptService.validateComments` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:170` |
329
346
  | `FilesService.buildMissingDifference` | 2 | `DifferencesService.buildMissingFileDifference`, `DifferencesService.buildMissingDirectoryDifference` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/files/files.service.ts:52` |
330
- | `JsonComparisonService.compareArrays` | 2 | `JsonComparisonService.combine`, `JsonComparisonService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:142` |
331
- | `JsonComparisonService.compareObjects` | 2 | `JsonComparisonService.combine`, `JsonComparisonService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:156` |
347
+ | `JsonComparisonService.compareArrays` | 2 | `JsonComparisonService.combine`, `JsonComparisonService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:177` |
348
+ | `JsonComparisonService.compareObjects` | 2 | `JsonComparisonService.combine`, `JsonComparisonService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:191` |
332
349
  | `JupyterNotebookService.groupSourcesByKind` | 2 | `JupyterNotebookService.readCellKind`, `JupyterNotebookService.readCellSource` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter-notebook.service.ts:31` |
333
- | `MarkdownNodesService.link` | 2 | `MarkdownNodesService.sameField`, `MarkdownNodesService.readText` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:59` |
334
- | `MarkdownNodesService.countSubtree` | 2 | `MarkdownNodesService.reduce(…)`, `MarkdownNodesService.readChildren` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:118` |
350
+ | `MarkdownNodesService.link` | 2 | `MarkdownNodesService.sameField`, `MarkdownNodesService.readText` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:60` |
351
+ | `MarkdownNodesService.capture` | 2 | `MarkdownNodesService.readText`, `capturePlaceholderValues` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:116` |
352
+ | `MarkdownNodesService.countSubtree` | 2 | `MarkdownNodesService.reduce(…)`, `MarkdownNodesService.readChildren` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:155` |
335
353
  | `MarkdownTreeService.buildError` | 2 | `MarkdownNodesService.readText`, `MarkdownNodesService.countSubtree` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:45` |
336
- | `MarkdownTreeService.map(…)` | 2 | `MarkdownTreeService.compareChildren`, `MarkdownNodesService.readChildren` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:91` |
337
- | `MarkdownTreeService.compareChildren` | 2 | `MarkdownTreeService.compareContainer`, `MarkdownTreeService.compareLeaf` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:147` |
338
- | `TextService.validateDocument` | 2 | `TextService.map(…)`, `TextService.findMissingLines` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:76` |
354
+ | `MarkdownTreeService.compareChildren` | 2 | `MarkdownTreeService.compareContainer`, `MarkdownTreeService.compareLeaf` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:170` |
355
+ | `TextService.findMissingLines` | 2 | `TextService.countLines`, `TextService.captureLine` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:74` |
356
+ | `TextService.validateDocument` | 2 | `TextService.findMissingLines`, `TextService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:113` |
339
357
  | `TypescriptCommentsService.compareComments` | 2 | `TypescriptCommentsService.extractComments`, `TypescriptCommentsService.findIndex(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-comments.service.ts:46` |
340
358
  | `TypescriptCommentsService.extractComments` | 2 | `TypescriptCommentsService.visit`, `TypescriptCommentsService.toSorted(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-comments.service.ts:87` |
341
359
  | `TypescriptNodesService.readExpressionStatementKey` | 2 | `TypescriptNodesService.buildDottedName`, `TypescriptNodesService.readLiteralKey` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:98` |
342
360
  | `TypescriptNodesService.countSubtree` | 2 | `TypescriptNodesService.reduce(…)`, `TypescriptNodesService.readChildren` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:176` |
343
- | `TypescriptTreeService.buildError` | 2 | `TypescriptNodesService.readKindLabel`, `TypescriptNodesService.countSubtree` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:43` |
344
- | `TypescriptTreeService.compareBestCandidate` | 2 | `TypescriptTreeService.reduce(…)`, `TypescriptTreeService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:68` |
361
+ | `TypescriptTreeService.buildError` | 2 | `TypescriptNodesService.readKindLabel`, `TypescriptNodesService.countSubtree` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:44` |
362
+ | `TypescriptTreeService.compareBestCandidate` | 2 | `TypescriptTreeService.reduce(…)`, `TypescriptTreeService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:69` |
363
+ | `TypescriptTreeService.flatMap(…)` | 2 | `TypescriptTreeService.matchKind`, `TypescriptTreeService.matchKey` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:101` |
364
+ | `TypescriptTreeService.matchKey` | 2 | `TypescriptNodesService.readKey`, `capturePlaceholderValues` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:144` |
345
365
  | `TypescriptService.validateComments` | 2 | `TypescriptCommentsService.compareComments`, `TypescriptService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:75` |
346
366
  | `TypescriptService.validateStructure` | 2 | `TypescriptTreeService.compareTree`, `TypescriptService.map(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:107` |
347
367
  | `DifferencesService.resolveDifferenceType` | 1 | `DifferencesService.find(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/differences/differences.service.ts:78` |
348
368
  | `DifferencesService.resolveErrorLanguage` | 1 | `DifferencesService.find(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/differences/differences.service.ts:91` |
349
369
  | `FilesService.countExpectedFiles` | 1 | `FilesService.filter(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/files/files.service.ts:78` |
350
370
  | `ScoringService.sumWeights` | 1 | `ScoringService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/scoring/scoring.service.ts:53` |
351
- | `JsonComparisonService.combine` | 1 | `JsonComparisonService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:67` |
352
- | `JsonComparisonService.map(…)` | 1 | `JsonComparisonService.compare` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:123` |
353
- | `JsonComparisonService.map(…)` | 1 | `JsonComparisonService.compareArrayItem` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:149` |
354
- | `JsonComparisonService.reduce(…)` | 1 | `JsonComparisonService.countNodes` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:210` |
355
- | `JsonComparisonService.reduce(…)` | 1 | `JsonComparisonService.countNodes` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:216` |
356
- | `JsonComparisonService.formatPath` | 1 | `JsonComparisonService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:225` |
357
- | `JsonComparisonService.pickClosestMatch` | 1 | `JsonComparisonService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:254` |
358
- | `JsonComparisonService.reduce(…)` | 1 | `ScoringService.sumWeights` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:255` |
371
+ | `JsonComparisonService.captureString` | 1 | `capturePlaceholderValues` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:71` |
372
+ | `JsonComparisonService.combine` | 1 | `JsonComparisonService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:89` |
373
+ | `JsonComparisonService.map(…)` | 1 | `JsonComparisonService.captureString` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:117` |
374
+ | `JsonComparisonService.map(…)` | 1 | `JsonComparisonService.compare` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:158` |
375
+ | `JsonComparisonService.map(…)` | 1 | `JsonComparisonService.compareArrayItem` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:184` |
376
+ | `JsonComparisonService.reduce(…)` | 1 | `JsonComparisonService.countNodes` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:245` |
377
+ | `JsonComparisonService.reduce(…)` | 1 | `JsonComparisonService.countNodes` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:251` |
378
+ | `JsonComparisonService.formatPath` | 1 | `JsonComparisonService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:260` |
379
+ | `JsonComparisonService.pickClosestMatch` | 1 | `JsonComparisonService.reduce(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:289` |
380
+ | `JsonComparisonService.reduce(…)` | 1 | `ScoringService.sumWeights` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json-comparison.service.ts:290` |
359
381
  | `JsonService.validateDocument` | 1 | `JsonComparisonService.compare` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/json/json.service.ts:39` |
360
382
  | `JupyterNotebookService.readCellSource` | 1 | `JupyterNotebookService.filter(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter-notebook.service.ts:57` |
361
383
  | `JupyterNotebookService.parseNotebook` | 1 | `JupyterNotebookService.filter(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter-notebook.service.ts:122` |
362
- | `MarkdownNodesService.code` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:35` |
363
- | `MarkdownNodesService.heading` | 1 | `MarkdownNodesService.readText` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:41` |
364
- | `MarkdownNodesService.html` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:47` |
365
- | `MarkdownNodesService.image` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:50` |
366
- | `MarkdownNodesService.inlineCode` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:56` |
367
- | `MarkdownNodesService.table` | 1 | `MarkdownNodesService.readColumnCount` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:68` |
368
- | `MarkdownNodesService.tableRow` | 1 | `MarkdownNodesService.readChildren` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:74` |
369
- | `MarkdownNodesService.text` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:80` |
370
- | `MarkdownNodesService.readColumnCount` | 1 | `MarkdownNodesService.readChildren` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:91` |
371
- | `MarkdownNodesService.reduce(…)` | 1 | `MarkdownNodesService.countSubtree` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:123` |
372
- | `MarkdownNodesService.filterNodes` | 1 | `MarkdownNodesService.filter(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:129` |
373
- | `MarkdownNodesService.matches` | 1 | `MarkdownNodesService.readText` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:140` |
374
- | `MarkdownTreeService.reduce(…)` | 1 | `ScoringService.sumWeights` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:104` |
375
- | `MarkdownTreeService.findCandidates` | 1 | `MarkdownTreeService.filter(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:135` |
376
- | `MarkdownTreeService.filter(…)` | 1 | `MarkdownNodesService.matches` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:136` |
384
+ | `MarkdownNodesService.code` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:36` |
385
+ | `MarkdownNodesService.heading` | 1 | `MarkdownNodesService.readText` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:42` |
386
+ | `MarkdownNodesService.html` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:48` |
387
+ | `MarkdownNodesService.image` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:51` |
388
+ | `MarkdownNodesService.inlineCode` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:57` |
389
+ | `MarkdownNodesService.table` | 1 | `MarkdownNodesService.readColumnCount` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:69` |
390
+ | `MarkdownNodesService.tableRow` | 1 | `MarkdownNodesService.readChildren` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:75` |
391
+ | `MarkdownNodesService.text` | 1 | `MarkdownNodesService.sameField` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:81` |
392
+ | `MarkdownNodesService.readColumnCount` | 1 | `MarkdownNodesService.readChildren` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:92` |
393
+ | `MarkdownNodesService.reduce(…)` | 1 | `MarkdownNodesService.countSubtree` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:160` |
394
+ | `MarkdownNodesService.filterNodes` | 1 | `MarkdownNodesService.filter(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:166` |
395
+ | `MarkdownNodesService.matches` | 1 | `MarkdownNodesService.capture` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-nodes.service.ts:177` |
396
+ | `MarkdownTreeService.captureFirst` | 1 | `MarkdownNodesService.capture` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:60` |
397
+ | `MarkdownTreeService.reduce(…)` | 1 | `ScoringService.sumWeights` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:124` |
398
+ | `MarkdownTreeService.findCandidates` | 1 | `MarkdownTreeService.filter(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:156` |
399
+ | `MarkdownTreeService.filter(…)` | 1 | `MarkdownNodesService.capture` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/markdown/markdown-tree.service.ts:157` |
377
400
  | `PythonBridgeService.readLocations` | 1 | `PythonBridgeService.readNumber` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/python/python-bridge.service.ts:86` |
378
401
  | `PythonBridgeService.readValues` | 1 | `PythonBridgeService.readString` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/python/python-bridge.service.ts:123` |
379
402
  | `PythonBridgeService.map(…)` | 1 | `PythonBridgeService.toConformetryDifference` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/python/python-bridge.service.ts:187` |
@@ -382,15 +405,14 @@ What this project is judged against, as declared in its own `callidescope.config
382
405
  | `JupyterService.weighMissingCell` | 1 | `JupyterService.validateCell` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter.service.ts:140` |
383
406
  | `JupyterService.map(…)` | 1 | `JupyterService.weighMissingCell` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter.service.ts:173` |
384
407
  | `JupyterService.map(…)` | 1 | `JupyterService.validateCell` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/jupyter/jupyter.service.ts:188` |
385
- | `TextService.findMissingLines` | 1 | `TextService.countLines` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:46` |
408
+ | `TextService.captureLine` | 1 | `capturePlaceholderValues` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/text/text.service.ts:39` |
386
409
  | `TypescriptNodesService.readDecoratorKey` | 1 | `TypescriptNodesService.buildDottedName` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:75` |
387
410
  | `TypescriptNodesService.readNamedKey` | 1 | `TypescriptNodesService.isNode` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:143` |
388
411
  | `TypescriptNodesService.reduce(…)` | 1 | `TypescriptNodesService.countSubtree` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:177` |
389
412
  | `TypescriptNodesService.readChildren` | 1 | `TypescriptNodesService.forEachChild(…)` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-nodes.service.ts:183` |
390
- | `TypescriptTreeService.map(…)` | 1 | `TypescriptTreeService.compareTree` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:73` |
391
- | `TypescriptTreeService.reduce(…)` | 1 | `ScoringService.sumWeights` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:79` |
392
- | `TypescriptTreeService.filter(…)` | 1 | `TypescriptNodesService.readKey` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:99` |
393
- | `TypescriptTreeService.map(…)` | 1 | `TypescriptTreeService.compareChild` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:134` |
413
+ | `TypescriptTreeService.map(…)` | 1 | `TypescriptTreeService.compareTree` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:74` |
414
+ | `TypescriptTreeService.reduce(…)` | 1 | `ScoringService.sumWeights` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:86` |
415
+ | `TypescriptTreeService.map(…)` | 1 | `TypescriptTreeService.compareChild` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript-tree.service.ts:186` |
394
416
  | `TypescriptService.map(…)` | 1 | `TypescriptService.readLocation` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:81` |
395
417
  | `TypescriptService.map(…)` | 1 | `TypescriptService.readLocation` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/typescript/typescript.service.ts:116` |
396
418
  | `LanguagesService.validateDocument` | 1 | `TextService.validateDocument` | `packages/ic-suite/conformetry/conformetry-languages/src/modules/languages/languages.service.ts:80` |
@@ -730,23 +752,23 @@ graph LR
730
752
 
731
753
  ### Project
732
754
 
733
- ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-7192-22c55e?style=flat-square)
734
- ![Repository Size](https://img.shields.io/badge/Repository_Size-234.74_kB-6b7280?style=flat-square)
755
+ ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-7501-22c55e?style=flat-square)
756
+ ![Repository Size](https://img.shields.io/badge/Repository_Size-245.95_kB-6b7280?style=flat-square)
735
757
  ![Folders](https://img.shields.io/badge/Folders-14-4a4a4a?style=flat-square)
736
758
  ![Source Files](https://img.shields.io/badge/Source_Files-93-3178c6?style=flat-square)
737
759
 
738
760
  ### Measured Targets
739
761
 
740
- ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-8.39_kB_gzip-6b7280?style=flat-square)
762
+ ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-8.96_kB_gzip-6b7280?style=flat-square)
741
763
 
742
764
  ### TypeScript
743
765
 
744
766
  ![TypeScript Files](https://img.shields.io/badge/TypeScript_Files-85-3178c6?style=flat-square)
745
- ![Interfaces](https://img.shields.io/badge/Interfaces-29-0ea5e9?style=flat-square)
767
+ ![Interfaces](https://img.shields.io/badge/Interfaces-30-0ea5e9?style=flat-square)
746
768
  ![Generic Declarations](https://img.shields.io/badge/Generic_Declarations-0-0369a1?style=flat-square)
747
769
  ![Enums](https://img.shields.io/badge/Enums-0-f97316?style=flat-square)
748
770
  ![Decorators](https://img.shields.io/badge/Decorators-28-db2777?style=flat-square)
749
- ![Doc Comments](https://img.shields.io/badge/Doc_Comments-181-6366f1?style=flat-square)
771
+ ![Doc Comments](https://img.shields.io/badge/Doc_Comments-192-6366f1?style=flat-square)
750
772
  ![Static Methods](https://img.shields.io/badge/Static_Methods-0-166534?style=flat-square)
751
773
 
752
774
  ### JavaScript
@@ -755,15 +777,15 @@ graph LR
755
777
  ![Test Files](https://img.shields.io/badge/Test_Files-28-10b981?style=flat-square)
756
778
  ![External Packages](https://img.shields.io/badge/External_Packages-17-8b5cf6?style=flat-square)
757
779
  ![Classes](https://img.shields.io/badge/Classes-28-7c3aed?style=flat-square)
758
- ![Functions](https://img.shields.io/badge/Functions-358-16a34a?style=flat-square)
759
- ![Methods](https://img.shields.io/badge/Methods-141-15803d?style=flat-square)
760
- ![Sync Functions](https://img.shields.io/badge/Sync_Functions-472-4ade80?style=flat-square)
780
+ ![Functions](https://img.shields.io/badge/Functions-366-16a34a?style=flat-square)
781
+ ![Methods](https://img.shields.io/badge/Methods-148-15803d?style=flat-square)
782
+ ![Sync Functions](https://img.shields.io/badge/Sync_Functions-487-4ade80?style=flat-square)
761
783
  ![Async Functions](https://img.shields.io/badge/Async_Functions-27-059669?style=flat-square)
762
- ![Constants](https://img.shields.io/badge/Constants-328-dc2626?style=flat-square)
763
- ![Imports](https://img.shields.io/badge/Imports-318-0284c7?style=flat-square)
764
- ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-89-ea580c?style=flat-square)
765
- ![Comments](https://img.shields.io/badge/Comments-352-64748b?style=flat-square)
766
- ![Comment Lines](https://img.shields.io/badge/Comment_Lines-766-475569?style=flat-square)
784
+ ![Constants](https://img.shields.io/badge/Constants-350-dc2626?style=flat-square)
785
+ ![Imports](https://img.shields.io/badge/Imports-326-0284c7?style=flat-square)
786
+ ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-90-ea580c?style=flat-square)
787
+ ![Comments](https://img.shields.io/badge/Comments-367-64748b?style=flat-square)
788
+ ![Comment Lines](https://img.shields.io/badge/Comment_Lines-797-475569?style=flat-square)
767
789
  ![TODO Comments](https://img.shields.io/badge/TODO_Comments-5-ca8a04?style=flat-square)
768
790
 
769
791
  ### Python
@@ -784,16 +806,16 @@ graph LR
784
806
  ### JSON
785
807
 
786
808
  ![JSON Files](https://img.shields.io/badge/JSON_Files-4-a16207?style=flat-square)
787
- ![JSON Lines](https://img.shields.io/badge/JSON_Lines-170-ca8a04?style=flat-square)
809
+ ![JSON Lines](https://img.shields.io/badge/JSON_Lines-171-ca8a04?style=flat-square)
788
810
  ![JSON Objects](https://img.shields.io/badge/JSON_Objects-38-7c3aed?style=flat-square)
789
811
  ![JSON Arrays](https://img.shields.io/badge/JSON_Arrays-13-8b5cf6?style=flat-square)
790
812
  ![JSON Properties](https://img.shields.io/badge/JSON_Properties-105-0284c7?style=flat-square)
791
- ![JSON Strings](https://img.shields.io/badge/JSON_Strings-95-16a34a?style=flat-square)
813
+ ![JSON Strings](https://img.shields.io/badge/JSON_Strings-96-16a34a?style=flat-square)
792
814
  ![JSON Numbers](https://img.shields.io/badge/JSON_Numbers-1-059669?style=flat-square)
793
815
  ![JSON Booleans](https://img.shields.io/badge/JSON_Booleans-7-0ea5e9?style=flat-square)
794
816
  ![JSON Nulls](https://img.shields.io/badge/JSON_Nulls-0-64748b?style=flat-square)
795
- ![JSON Items](https://img.shields.io/badge/JSON_Items-45-475569?style=flat-square)
796
- ![JSON Nodes](https://img.shields.io/badge/JSON_Nodes-154-dc2626?style=flat-square)
817
+ ![JSON Items](https://img.shields.io/badge/JSON_Items-46-475569?style=flat-square)
818
+ ![JSON Nodes](https://img.shields.io/badge/JSON_Nodes-155-dc2626?style=flat-square)
797
819
  ![JSON Max Depth](https://img.shields.io/badge/JSON_Max_Depth-5-ea580c?style=flat-square)
798
820
 
799
821
  ### YAML
@@ -918,21 +940,21 @@ graph LR
918
940
 
919
941
  ### Markdown
920
942
 
921
- ![Markdown Files](https://img.shields.io/badge/Markdown_Files-1-083fa1?style=flat-square)
922
- ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-222-1f6feb?style=flat-square)
943
+ ![Markdown Files](https://img.shields.io/badge/Markdown_Files-2-083fa1?style=flat-square)
944
+ ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-243-1f6feb?style=flat-square)
923
945
  ![H1](https://img.shields.io/badge/H1-1-7c3aed?style=flat-square)
924
- ![H2](https://img.shields.io/badge/H2-7-8b5cf6?style=flat-square)
925
- ![H3](https://img.shields.io/badge/H3-12-a78bfa?style=flat-square)
946
+ ![H2](https://img.shields.io/badge/H2-9-8b5cf6?style=flat-square)
947
+ ![H3](https://img.shields.io/badge/H3-16-a78bfa?style=flat-square)
926
948
  ![H4](https://img.shields.io/badge/H4-0-c4b5fd?style=flat-square)
927
949
  ![H5](https://img.shields.io/badge/H5-0-ddd6fe?style=flat-square)
928
950
  ![H6](https://img.shields.io/badge/H6-0-ede9fe?style=flat-square)
929
- ![Paragraphs](https://img.shields.io/badge/Paragraphs-45-64748b?style=flat-square)
930
- ![Lists](https://img.shields.io/badge/Lists-6-16a34a?style=flat-square)
931
- ![List Items](https://img.shields.io/badge/List_Items-25-22c55e?style=flat-square)
951
+ ![Paragraphs](https://img.shields.io/badge/Paragraphs-51-64748b?style=flat-square)
952
+ ![Lists](https://img.shields.io/badge/Lists-10-16a34a?style=flat-square)
953
+ ![List Items](https://img.shields.io/badge/List_Items-31-22c55e?style=flat-square)
932
954
  ![Task List Items](https://img.shields.io/badge/Task_List_Items-0-4ade80?style=flat-square)
933
955
  ![Tables](https://img.shields.io/badge/Tables-2-0284c7?style=flat-square)
934
956
  ![Table Rows](https://img.shields.io/badge/Table_Rows-10-0ea5e9?style=flat-square)
935
- ![Links](https://img.shields.io/badge/Links-9-059669?style=flat-square)
957
+ ![Links](https://img.shields.io/badge/Links-11-059669?style=flat-square)
936
958
  ![Images](https://img.shields.io/badge/Images-0-10b981?style=flat-square)
937
959
  ![Code Blocks](https://img.shields.io/badge/Code_Blocks-11-dc2626?style=flat-square)
938
960
  ![Inline Code](https://img.shields.io/badge/Inline_Code-73-ef4444?style=flat-square)