@lapidist/dtif-parser 0.2.0
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/CHANGELOG.md +15 -0
- package/README.md +50 -0
- package/dist/ast/nodes.d.ts +73 -0
- package/dist/ast/nodes.d.ts.map +1 -0
- package/dist/ast/nodes.js +2 -0
- package/dist/ast/nodes.js.map +1 -0
- package/dist/ast/normaliser/context.d.ts +22 -0
- package/dist/ast/normaliser/context.d.ts.map +1 -0
- package/dist/ast/normaliser/context.js +26 -0
- package/dist/ast/normaliser/context.js.map +1 -0
- package/dist/ast/normaliser/document.d.ts +4 -0
- package/dist/ast/normaliser/document.d.ts.map +1 -0
- package/dist/ast/normaliser/document.js +49 -0
- package/dist/ast/normaliser/document.js.map +1 -0
- package/dist/ast/normaliser/fields.d.ts +7 -0
- package/dist/ast/normaliser/fields.d.ts.map +1 -0
- package/dist/ast/normaliser/fields.js +71 -0
- package/dist/ast/normaliser/fields.js.map +1 -0
- package/dist/ast/normaliser/metadata.d.ts +5 -0
- package/dist/ast/normaliser/metadata.d.ts.map +1 -0
- package/dist/ast/normaliser/metadata.js +201 -0
- package/dist/ast/normaliser/metadata.js.map +1 -0
- package/dist/ast/normaliser/nodes.d.ts +5 -0
- package/dist/ast/normaliser/nodes.d.ts.map +1 -0
- package/dist/ast/normaliser/nodes.js +108 -0
- package/dist/ast/normaliser/nodes.js.map +1 -0
- package/dist/ast/normaliser/overrides.d.ts +7 -0
- package/dist/ast/normaliser/overrides.d.ts.map +1 -0
- package/dist/ast/normaliser/overrides.js +156 -0
- package/dist/ast/normaliser/overrides.js.map +1 -0
- package/dist/ast/normaliser/utils.d.ts +12 -0
- package/dist/ast/normaliser/utils.d.ts.map +1 -0
- package/dist/ast/normaliser/utils.js +45 -0
- package/dist/ast/normaliser/utils.js.map +1 -0
- package/dist/ast/normaliser.d.ts +5 -0
- package/dist/ast/normaliser.d.ts.map +1 -0
- package/dist/ast/normaliser.js +25 -0
- package/dist/ast/normaliser.js.map +1 -0
- package/dist/cli/args.d.ts +3 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +202 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/io.d.ts +3 -0
- package/dist/cli/io.d.ts.map +1 -0
- package/dist/cli/io.js +65 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/output.d.ts +5 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +113 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/parse.d.ts +4 -0
- package/dist/cli/parse.d.ts.map +1 -0
- package/dist/cli/parse.js +134 -0
- package/dist/cli/parse.js.map +1 -0
- package/dist/cli/serialize.d.ts +12 -0
- package/dist/cli/serialize.d.ts.map +1 -0
- package/dist/cli/serialize.js +92 -0
- package/dist/cli/serialize.js.map +1 -0
- package/dist/cli/types.d.ts +118 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/diagnostics/bag.d.ts +26 -0
- package/dist/diagnostics/bag.d.ts.map +1 -0
- package/dist/diagnostics/bag.js +101 -0
- package/dist/diagnostics/bag.js.map +1 -0
- package/dist/diagnostics/codes.d.ts +72 -0
- package/dist/diagnostics/codes.d.ts.map +1 -0
- package/dist/diagnostics/codes.js +94 -0
- package/dist/diagnostics/codes.js.map +1 -0
- package/dist/diagnostics/severity.d.ts +8 -0
- package/dist/diagnostics/severity.d.ts.map +1 -0
- package/dist/diagnostics/severity.js +35 -0
- package/dist/diagnostics/severity.js.map +1 -0
- package/dist/graph/builder/context.d.ts +23 -0
- package/dist/graph/builder/context.d.ts.map +1 -0
- package/dist/graph/builder/context.js +29 -0
- package/dist/graph/builder/context.js.map +1 -0
- package/dist/graph/builder/nodes.d.ts +6 -0
- package/dist/graph/builder/nodes.d.ts.map +1 -0
- package/dist/graph/builder/nodes.js +85 -0
- package/dist/graph/builder/nodes.js.map +1 -0
- package/dist/graph/builder/overrides.d.ts +5 -0
- package/dist/graph/builder/overrides.d.ts.map +1 -0
- package/dist/graph/builder/overrides.js +62 -0
- package/dist/graph/builder/overrides.js.map +1 -0
- package/dist/graph/builder/references.d.ts +7 -0
- package/dist/graph/builder/references.d.ts.map +1 -0
- package/dist/graph/builder/references.js +93 -0
- package/dist/graph/builder/references.js.map +1 -0
- package/dist/graph/builder.d.ts +5 -0
- package/dist/graph/builder.d.ts.map +1 -0
- package/dist/graph/builder.js +30 -0
- package/dist/graph/builder.js.map +1 -0
- package/dist/graph/nodes.d.ts +60 -0
- package/dist/graph/nodes.d.ts.map +1 -0
- package/dist/graph/nodes.js +2 -0
- package/dist/graph/nodes.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/io/decoder/encoding.d.ts +4 -0
- package/dist/io/decoder/encoding.d.ts.map +1 -0
- package/dist/io/decoder/encoding.js +36 -0
- package/dist/io/decoder/encoding.js.map +1 -0
- package/dist/io/decoder/errors.d.ts +4 -0
- package/dist/io/decoder/errors.d.ts.map +1 -0
- package/dist/io/decoder/errors.js +7 -0
- package/dist/io/decoder/errors.js.map +1 -0
- package/dist/io/decoder/source-map.d.ts +4 -0
- package/dist/io/decoder/source-map.d.ts.map +1 -0
- package/dist/io/decoder/source-map.js +106 -0
- package/dist/io/decoder/source-map.js.map +1 -0
- package/dist/io/decoder/yaml.d.ts +8 -0
- package/dist/io/decoder/yaml.d.ts.map +1 -0
- package/dist/io/decoder/yaml.js +28 -0
- package/dist/io/decoder/yaml.js.map +1 -0
- package/dist/io/decoder.d.ts +4 -0
- package/dist/io/decoder.d.ts.map +1 -0
- package/dist/io/decoder.js +19 -0
- package/dist/io/decoder.js.map +1 -0
- package/dist/io/document-cache.d.ts +15 -0
- package/dist/io/document-cache.d.ts.map +1 -0
- package/dist/io/document-cache.js +101 -0
- package/dist/io/document-cache.js.map +1 -0
- package/dist/io/document-loader.d.ts +37 -0
- package/dist/io/document-loader.d.ts.map +1 -0
- package/dist/io/document-loader.js +255 -0
- package/dist/io/document-loader.js.map +1 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +6 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/registry.d.ts +20 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +136 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/types.d.ts +48 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/resolver/document-resolver.d.ts +29 -0
- package/dist/resolver/document-resolver.d.ts.map +1 -0
- package/dist/resolver/document-resolver.js +551 -0
- package/dist/resolver/document-resolver.js.map +1 -0
- package/dist/resolver/index.d.ts +3 -0
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +2 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/internal/constants.d.ts +12 -0
- package/dist/resolver/internal/constants.d.ts.map +1 -0
- package/dist/resolver/internal/constants.js +8 -0
- package/dist/resolver/internal/constants.js.map +1 -0
- package/dist/resolver/internal/context.d.ts +8 -0
- package/dist/resolver/internal/context.d.ts.map +1 -0
- package/dist/resolver/internal/context.js +43 -0
- package/dist/resolver/internal/context.js.map +1 -0
- package/dist/resolver/internal/helpers.d.ts +16 -0
- package/dist/resolver/internal/helpers.d.ts.map +1 -0
- package/dist/resolver/internal/helpers.js +53 -0
- package/dist/resolver/internal/helpers.js.map +1 -0
- package/dist/resolver/internal/resolved-token.d.ts +24 -0
- package/dist/resolver/internal/resolved-token.d.ts.map +1 -0
- package/dist/resolver/internal/resolved-token.js +26 -0
- package/dist/resolver/internal/resolved-token.js.map +1 -0
- package/dist/resolver/types.d.ts +51 -0
- package/dist/resolver/types.d.ts.map +1 -0
- package/dist/resolver/types.js +2 -0
- package/dist/resolver/types.js.map +1 -0
- package/dist/session/internal/options.d.ts +16 -0
- package/dist/session/internal/options.d.ts.map +1 -0
- package/dist/session/internal/options.js +30 -0
- package/dist/session/internal/options.js.map +1 -0
- package/dist/session/types.d.ts +16 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +2 -0
- package/dist/session/types.js.map +1 -0
- package/dist/session.d.ts +19 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +210 -0
- package/dist/session.js.map +1 -0
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/json-pointer.d.ts +13 -0
- package/dist/utils/json-pointer.d.ts.map +1 -0
- package/dist/utils/json-pointer.js +89 -0
- package/dist/utils/json-pointer.js.map +1 -0
- package/dist/utils/source.d.ts +21 -0
- package/dist/utils/source.d.ts.map +1 -0
- package/dist/utils/source.js +125 -0
- package/dist/utils/source.js.map +1 -0
- package/dist/validation/schema-guard.d.ts +20 -0
- package/dist/validation/schema-guard.d.ts.map +1 -0
- package/dist/validation/schema-guard.js +205 -0
- package/dist/validation/schema-guard.js.map +1 -0
- package/package.json +49 -0
package/dist/cli/io.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { TextEncoder } from 'node:util';
|
|
2
|
+
export async function gatherInputs(inputs, io) {
|
|
3
|
+
const collected = [];
|
|
4
|
+
const errors = [];
|
|
5
|
+
let stdinPromise;
|
|
6
|
+
const readStdinOnce = async () => {
|
|
7
|
+
if (!stdinPromise) {
|
|
8
|
+
stdinPromise = readFromStream(io.stdin);
|
|
9
|
+
}
|
|
10
|
+
return stdinPromise;
|
|
11
|
+
};
|
|
12
|
+
if (inputs.length === 0) {
|
|
13
|
+
if (isInteractiveStdin(io.stdin)) {
|
|
14
|
+
return {
|
|
15
|
+
inputs: [],
|
|
16
|
+
errors: ['No input provided. Pass a file path or use "-" to read from stdin.']
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const stdinInput = await readStdinOnce();
|
|
20
|
+
if (stdinInput) {
|
|
21
|
+
collected.push({ content: stdinInput });
|
|
22
|
+
}
|
|
23
|
+
return { inputs: collected, errors };
|
|
24
|
+
}
|
|
25
|
+
for (const entry of inputs) {
|
|
26
|
+
if (entry === '-') {
|
|
27
|
+
const stdinInput = await readStdinOnce();
|
|
28
|
+
if (!stdinInput) {
|
|
29
|
+
errors.push('No data received on stdin.');
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
collected.push({ content: stdinInput });
|
|
33
|
+
}
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
collected.push(entry);
|
|
37
|
+
}
|
|
38
|
+
return { inputs: collected, errors };
|
|
39
|
+
}
|
|
40
|
+
async function readFromStream(stream) {
|
|
41
|
+
const encoder = new TextEncoder();
|
|
42
|
+
const chunks = [];
|
|
43
|
+
let total = 0;
|
|
44
|
+
for await (const chunk of stream) {
|
|
45
|
+
const array = chunk instanceof Uint8Array
|
|
46
|
+
? new Uint8Array(chunk)
|
|
47
|
+
: typeof chunk === 'string'
|
|
48
|
+
? encoder.encode(chunk)
|
|
49
|
+
: encoder.encode(String(chunk));
|
|
50
|
+
chunks.push(array);
|
|
51
|
+
total += array.length;
|
|
52
|
+
}
|
|
53
|
+
const bytes = new Uint8Array(total);
|
|
54
|
+
let offset = 0;
|
|
55
|
+
for (const chunk of chunks) {
|
|
56
|
+
bytes.set(chunk, offset);
|
|
57
|
+
offset += chunk.length;
|
|
58
|
+
}
|
|
59
|
+
return bytes.length === 0 ? undefined : bytes;
|
|
60
|
+
}
|
|
61
|
+
function isInteractiveStdin(stream) {
|
|
62
|
+
const readStream = stream;
|
|
63
|
+
return Boolean(readStream && typeof readStream.isTTY === 'boolean' && readStream.isTTY);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/cli/io.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { JsonPointer } from '../types.js';
|
|
2
|
+
import type { CliOutput, SerializableDiagnostic } from './types.js';
|
|
3
|
+
export declare function printPrettyOutput(output: CliOutput, pointers: readonly JsonPointer[], stdout: NodeJS.WritableStream): void;
|
|
4
|
+
export declare function printDiagnostic(prefix: string, diagnostic: SerializableDiagnostic, stdout: NodeJS.WritableStream): void;
|
|
5
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EACV,SAAS,EAGT,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,MAAM,EAAE,MAAM,CAAC,cAAc,GAC5B,IAAI,CA+BN;AAoBD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,MAAM,CAAC,cAAc,GAC5B,IAAI,CAkBN"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { formatSpan } from './serialize.js';
|
|
2
|
+
export function printPrettyOutput(output, pointers, stdout) {
|
|
3
|
+
const documentCount = output.documents.length;
|
|
4
|
+
stdout.write(`Parsed ${documentCount} document${documentCount === 1 ? '' : 's'}.\n`);
|
|
5
|
+
stdout.write(`Summary: ${output.summary.error} error(s), ${output.summary.warning} warning(s), ${output.summary.info} info message(s).\n`);
|
|
6
|
+
output.documents.forEach((document, index) => {
|
|
7
|
+
const title = document.uri ?? '<inline document>';
|
|
8
|
+
stdout.write(`\nDocument ${index + 1}: ${title}\n`);
|
|
9
|
+
printDiagnosticsSummary(document.diagnosticCounts, document.diagnostics, stdout);
|
|
10
|
+
if (pointers.length === 0) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (!document.resolverAvailable) {
|
|
14
|
+
stdout.write(' Resolutions unavailable (document did not produce a resolver).\n');
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
stdout.write(' Resolutions:\n');
|
|
18
|
+
for (const pointer of pointers) {
|
|
19
|
+
const summary = document.resolutions?.[pointer];
|
|
20
|
+
if (!summary) {
|
|
21
|
+
stdout.write(` ${pointer}: no data\n`);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
printResolutionSummary(' ', summary, stdout);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function printDiagnosticsSummary(counts, diagnostics, stdout) {
|
|
29
|
+
if (counts.total === 0) {
|
|
30
|
+
stdout.write(' Diagnostics: none\n');
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
stdout.write(` Diagnostics: ${counts.error} error(s), ${counts.warning} warning(s), ${counts.info} info message(s)\n`);
|
|
34
|
+
for (const diagnostic of diagnostics) {
|
|
35
|
+
printDiagnostic(' ', diagnostic, stdout);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function printDiagnostic(prefix, diagnostic, stdout) {
|
|
39
|
+
const header = `${prefix}- [${diagnostic.severity.toUpperCase()}] ${diagnostic.code}: ${diagnostic.message}`;
|
|
40
|
+
const location = diagnostic.pointer ? ` (${diagnostic.pointer})` : '';
|
|
41
|
+
stdout.write(`${header}${location}\n`);
|
|
42
|
+
if (diagnostic.span) {
|
|
43
|
+
stdout.write(`${prefix} at ${formatSpan(diagnostic.span)}\n`);
|
|
44
|
+
}
|
|
45
|
+
if (diagnostic.related && diagnostic.related.length > 0) {
|
|
46
|
+
stdout.write(`${prefix} Related information:\n`);
|
|
47
|
+
for (const related of diagnostic.related) {
|
|
48
|
+
const relatedLine = `${prefix} - ${related.message}`;
|
|
49
|
+
const relatedPointer = related.pointer ? ` (${related.pointer})` : '';
|
|
50
|
+
stdout.write(`${relatedLine}${relatedPointer}\n`);
|
|
51
|
+
if (related.span) {
|
|
52
|
+
stdout.write(`${prefix} at ${formatSpan(related.span)}\n`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function printResolutionSummary(prefix, summary, stdout) {
|
|
58
|
+
stdout.write(`${prefix}${summary.pointer}\n`);
|
|
59
|
+
const nested = `${prefix} `;
|
|
60
|
+
if (summary.token) {
|
|
61
|
+
printResolvedToken(nested, summary.token, stdout);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
stdout.write(`${nested}unresolved\n`);
|
|
65
|
+
}
|
|
66
|
+
if (summary.diagnostics.length > 0) {
|
|
67
|
+
stdout.write(`${nested}diagnostics:\n`);
|
|
68
|
+
for (const diagnostic of summary.diagnostics) {
|
|
69
|
+
printDiagnostic(`${nested} `, diagnostic, stdout);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function printResolvedToken(prefix, token, stdout) {
|
|
74
|
+
stdout.write(`${prefix}type: ${token.type ?? '(unspecified)'}\n`);
|
|
75
|
+
if (typeof token.value === 'undefined') {
|
|
76
|
+
stdout.write(`${prefix}value: <alias>\n`);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
printValue(prefix, token.value, stdout);
|
|
80
|
+
}
|
|
81
|
+
if (token.source) {
|
|
82
|
+
stdout.write(`${prefix}source: ${token.source.pointer} (${token.source.uri})${token.source.span ? ` at ${formatSpan(token.source.span)}` : ''}\n`);
|
|
83
|
+
}
|
|
84
|
+
if (token.overridesApplied.length > 0) {
|
|
85
|
+
stdout.write(`${prefix}overrides:\n`);
|
|
86
|
+
for (const override of token.overridesApplied) {
|
|
87
|
+
stdout.write(`${prefix} - ${override.kind} ${override.pointer} (depth ${override.depth})${override.span ? ` at ${formatSpan(override.span)}` : ''}${override.source ? ` from ${override.source.pointer}` : ''}\n`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (token.trace.length > 0) {
|
|
91
|
+
const trace = token.trace.map((step) => `${step.kind}(${step.pointer})`).join(' -> ');
|
|
92
|
+
stdout.write(`${prefix}trace: ${trace}\n`);
|
|
93
|
+
}
|
|
94
|
+
if (token.warnings.length > 0) {
|
|
95
|
+
stdout.write(`${prefix}warnings:\n`);
|
|
96
|
+
for (const warning of token.warnings) {
|
|
97
|
+
printDiagnostic(`${prefix} `, warning, stdout);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function printValue(prefix, value, stdout) {
|
|
102
|
+
const serialized = JSON.stringify(value, null, 2);
|
|
103
|
+
if (serialized === undefined) {
|
|
104
|
+
stdout.write(`${prefix}value: undefined\n`);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const lines = serialized.split('\n');
|
|
108
|
+
stdout.write(`${prefix}value: ${lines[0] ?? ''}\n`);
|
|
109
|
+
for (const line of lines.slice(1)) {
|
|
110
|
+
stdout.write(`${prefix} ${line}\n`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/cli/parse.ts"],"names":[],"mappings":";AASA,OAAO,KAAK,EAAoB,aAAa,EAAqB,MAAM,YAAY,CAAC;AAKrF,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAkHjB"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import { createSession } from '../session.js';
|
|
5
|
+
import { parseArguments } from './args.js';
|
|
6
|
+
import { gatherInputs } from './io.js';
|
|
7
|
+
import { printPrettyOutput } from './output.js';
|
|
8
|
+
import { createDiagnosticSummary, serializeDiagnostic, serializeResolution } from './serialize.js';
|
|
9
|
+
const require = createRequire(import.meta.url);
|
|
10
|
+
const { version: PACKAGE_VERSION } = require('../../package.json');
|
|
11
|
+
export async function runCli(args, options = {}) {
|
|
12
|
+
const io = {
|
|
13
|
+
stdin: options.stdin ?? process.stdin,
|
|
14
|
+
stdout: options.stdout ?? process.stdout,
|
|
15
|
+
stderr: options.stderr ?? process.stderr
|
|
16
|
+
};
|
|
17
|
+
const parsed = parseArguments(args);
|
|
18
|
+
switch (parsed.kind) {
|
|
19
|
+
case 'help': {
|
|
20
|
+
io.stdout.write(formatUsage());
|
|
21
|
+
return 0;
|
|
22
|
+
}
|
|
23
|
+
case 'version': {
|
|
24
|
+
io.stdout.write(`${PACKAGE_VERSION ?? '0.0.0'}\n`);
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
case 'error': {
|
|
28
|
+
io.stderr.write(`Error: ${parsed.message}\n`);
|
|
29
|
+
io.stderr.write('\n');
|
|
30
|
+
io.stderr.write(formatUsage());
|
|
31
|
+
return 1;
|
|
32
|
+
}
|
|
33
|
+
case 'run':
|
|
34
|
+
break;
|
|
35
|
+
default: {
|
|
36
|
+
const exhaustive = parsed;
|
|
37
|
+
throw new Error(`Unhandled CLI arguments kind: ${String(exhaustive)}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const { options: cliOptions } = parsed;
|
|
41
|
+
const gatherResult = await gatherInputs(cliOptions.inputs, io);
|
|
42
|
+
if (gatherResult.errors.length > 0) {
|
|
43
|
+
for (const message of gatherResult.errors) {
|
|
44
|
+
io.stderr.write(`Error: ${message}\n`);
|
|
45
|
+
}
|
|
46
|
+
io.stderr.write('\n');
|
|
47
|
+
io.stderr.write(formatUsage());
|
|
48
|
+
return 1;
|
|
49
|
+
}
|
|
50
|
+
if (gatherResult.inputs.length === 0) {
|
|
51
|
+
io.stderr.write('Error: No input provided. Pass a file path or pipe a document via stdin.\n');
|
|
52
|
+
io.stderr.write('\n');
|
|
53
|
+
io.stderr.write(formatUsage());
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
const session = createSession({
|
|
57
|
+
allowHttp: cliOptions.allowHttp,
|
|
58
|
+
maxDepth: cliOptions.maxDepth,
|
|
59
|
+
overrideContext: cliOptions.context
|
|
60
|
+
});
|
|
61
|
+
const collection = await session.parseCollection(gatherResult.inputs);
|
|
62
|
+
let exitCode = collection.diagnostics.hasErrors() ? 1 : 0;
|
|
63
|
+
let resolutionError = false;
|
|
64
|
+
const documents = collection.results.map((result) => {
|
|
65
|
+
const uri = result.document?.uri?.href ?? null;
|
|
66
|
+
const diagnostics = result.diagnostics.toArray().map(serializeDiagnostic);
|
|
67
|
+
const diagnosticCounts = createDiagnosticSummary(result.diagnostics);
|
|
68
|
+
const resolverAvailable = Boolean(result.resolver);
|
|
69
|
+
let resolutions;
|
|
70
|
+
if (resolverAvailable && cliOptions.pointers.length > 0 && result.resolver) {
|
|
71
|
+
resolutions = {};
|
|
72
|
+
for (const pointer of cliOptions.pointers) {
|
|
73
|
+
const resolution = result.resolver.resolve(pointer);
|
|
74
|
+
const summary = serializeResolution(pointer, resolution);
|
|
75
|
+
if (resolution.diagnostics.some((diagnostic) => diagnostic.severity === 'error') ||
|
|
76
|
+
(resolution.token &&
|
|
77
|
+
resolution.token.warnings.some((warning) => warning.severity === 'error'))) {
|
|
78
|
+
resolutionError = true;
|
|
79
|
+
}
|
|
80
|
+
resolutions[pointer] = summary;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
uri,
|
|
85
|
+
diagnostics,
|
|
86
|
+
diagnosticCounts,
|
|
87
|
+
resolverAvailable,
|
|
88
|
+
resolutions
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
const diagnostics = collection.diagnostics.toArray().map(serializeDiagnostic);
|
|
92
|
+
const summary = createDiagnosticSummary(collection.diagnostics);
|
|
93
|
+
const output = {
|
|
94
|
+
documents,
|
|
95
|
+
diagnostics,
|
|
96
|
+
summary
|
|
97
|
+
};
|
|
98
|
+
if (cliOptions.format === 'json') {
|
|
99
|
+
io.stdout.write(`${JSON.stringify(output, null, 2)}\n`);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
printPrettyOutput(output, cliOptions.pointers, io.stdout);
|
|
103
|
+
}
|
|
104
|
+
if (resolutionError) {
|
|
105
|
+
exitCode = 1;
|
|
106
|
+
}
|
|
107
|
+
return exitCode;
|
|
108
|
+
}
|
|
109
|
+
function formatUsage() {
|
|
110
|
+
return (`Usage: dtif-parse [options] [file ...]\n\n` +
|
|
111
|
+
'Options:\n' +
|
|
112
|
+
' --help, -h Show this usage information.\n' +
|
|
113
|
+
' --version, -v Print the parser version.\n' +
|
|
114
|
+
' --format <pretty|json> Control output formatting (default: pretty).\n' +
|
|
115
|
+
' --json Shortcut for --format json.\n' +
|
|
116
|
+
' --resolve <pointer> Resolve a token at the provided JSON Pointer.\n' +
|
|
117
|
+
' Repeat for multiple pointers.\n' +
|
|
118
|
+
' --context key=value Provide override context entries.\n' +
|
|
119
|
+
' --allow-http Allow HTTP(S) loading in the default loader.\n' +
|
|
120
|
+
' --max-depth <number> Set the maximum resolution depth (default: 32).\n' +
|
|
121
|
+
' -- Treat all following arguments as input paths.\n' +
|
|
122
|
+
'\n' +
|
|
123
|
+
'Inputs default to reading from stdin when provided via a pipe. Use "-" to\n' +
|
|
124
|
+
'force reading from stdin explicitly alongside file paths.\n');
|
|
125
|
+
}
|
|
126
|
+
if (import.meta.url === pathToFileURL(process.argv[1] ?? '').href) {
|
|
127
|
+
runCli(process.argv.slice(2)).then((code) => {
|
|
128
|
+
process.exit(code);
|
|
129
|
+
}, (error) => {
|
|
130
|
+
console.error(error);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/cli/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Diagnostic, JsonPointer, SourceSpan } from '../types.js';
|
|
2
|
+
import type { ResolutionResult, ResolvedToken } from '../resolver/index.js';
|
|
3
|
+
import type { DiagnosticsSummary, ResolutionSummary, SerializableDiagnostic, SerializableResolvedToken, SerializableSpan } from './types.js';
|
|
4
|
+
export declare function serializeResolution(pointer: JsonPointer, resolution: ResolutionResult): ResolutionSummary;
|
|
5
|
+
export declare function serializeResolvedToken(token: ResolvedToken): SerializableResolvedToken;
|
|
6
|
+
export declare function serializeDiagnostic(diagnostic: Diagnostic): SerializableDiagnostic;
|
|
7
|
+
export declare function createDiagnosticSummary(bag: Iterable<Diagnostic> & {
|
|
8
|
+
count(severity?: Diagnostic['severity']): number;
|
|
9
|
+
}): DiagnosticsSummary;
|
|
10
|
+
export declare function serializeSpan(span?: SourceSpan): SerializableSpan | undefined;
|
|
11
|
+
export declare function formatSpan(span: SerializableSpan): string;
|
|
12
|
+
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/cli/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAkB,UAAU,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAEjB,sBAAsB,EAEtB,yBAAyB,EAGzB,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,gBAAgB,GAC3B,iBAAiB,CAMnB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,yBAAyB,CAWtF;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,sBAAsB,CASlF;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;IAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,CAAA;CAAE,GAC/E,kBAAkB,CAMpB;AAED,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAS7E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAOzD"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export function serializeResolution(pointer, resolution) {
|
|
2
|
+
return {
|
|
3
|
+
pointer,
|
|
4
|
+
token: resolution.token ? serializeResolvedToken(resolution.token) : undefined,
|
|
5
|
+
diagnostics: resolution.diagnostics.map(serializeDiagnostic)
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export function serializeResolvedToken(token) {
|
|
9
|
+
return {
|
|
10
|
+
pointer: token.pointer,
|
|
11
|
+
uri: token.uri.href,
|
|
12
|
+
type: token.type,
|
|
13
|
+
value: token.value,
|
|
14
|
+
source: token.source ? serializeResolutionSource(token.source) : undefined,
|
|
15
|
+
overridesApplied: token.overridesApplied.map(serializeAppliedOverride),
|
|
16
|
+
warnings: token.warnings.map(serializeDiagnostic),
|
|
17
|
+
trace: token.trace.map(serializeTraceStep)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function serializeDiagnostic(diagnostic) {
|
|
21
|
+
return {
|
|
22
|
+
code: diagnostic.code,
|
|
23
|
+
message: diagnostic.message,
|
|
24
|
+
severity: diagnostic.severity,
|
|
25
|
+
pointer: diagnostic.pointer,
|
|
26
|
+
span: serializeSpan(diagnostic.span),
|
|
27
|
+
related: diagnostic.related?.map(serializeRelatedInformation)
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function createDiagnosticSummary(bag) {
|
|
31
|
+
const error = bag.count('error');
|
|
32
|
+
const warning = bag.count('warning');
|
|
33
|
+
const info = bag.count('info');
|
|
34
|
+
const total = bag.count();
|
|
35
|
+
return { total, error, warning, info };
|
|
36
|
+
}
|
|
37
|
+
export function serializeSpan(span) {
|
|
38
|
+
if (!span) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
uri: span.uri.href,
|
|
43
|
+
start: serializePosition(span.start),
|
|
44
|
+
end: serializePosition(span.end)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function formatSpan(span) {
|
|
48
|
+
const start = `${span.start.line}:${span.start.column}`;
|
|
49
|
+
const end = `${span.end.line}:${span.end.column}`;
|
|
50
|
+
if (start === end) {
|
|
51
|
+
return `${span.uri} @ ${start}`;
|
|
52
|
+
}
|
|
53
|
+
return `${span.uri} @ ${start}-${end}`;
|
|
54
|
+
}
|
|
55
|
+
function serializeResolutionSource(source) {
|
|
56
|
+
return {
|
|
57
|
+
uri: source.uri.href,
|
|
58
|
+
pointer: source.pointer,
|
|
59
|
+
span: serializeSpan(source.span)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function serializeAppliedOverride(override) {
|
|
63
|
+
return {
|
|
64
|
+
pointer: override.pointer,
|
|
65
|
+
kind: override.kind,
|
|
66
|
+
depth: override.depth,
|
|
67
|
+
span: serializeSpan(override.span),
|
|
68
|
+
source: override.source ? serializeResolutionSource(override.source) : undefined
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function serializeTraceStep(step) {
|
|
72
|
+
return {
|
|
73
|
+
pointer: step.pointer,
|
|
74
|
+
kind: step.kind,
|
|
75
|
+
span: serializeSpan(step.span)
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function serializeRelatedInformation(info) {
|
|
79
|
+
return {
|
|
80
|
+
message: info.message,
|
|
81
|
+
pointer: info.pointer,
|
|
82
|
+
span: serializeSpan(info.span)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function serializePosition(position) {
|
|
86
|
+
return {
|
|
87
|
+
offset: position.offset,
|
|
88
|
+
line: position.line,
|
|
89
|
+
column: position.column
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/cli/serialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { DiagnosticSeverity } from '../types.js';
|
|
2
|
+
import type { AppliedOverride, ResolutionResult, ResolvedToken } from '../resolver/index.js';
|
|
3
|
+
import type { JsonPointer, ParseInput } from '../types.js';
|
|
4
|
+
export interface CliOptions {
|
|
5
|
+
readonly inputs: readonly string[];
|
|
6
|
+
readonly allowHttp: boolean;
|
|
7
|
+
readonly maxDepth?: number;
|
|
8
|
+
readonly format: 'pretty' | 'json';
|
|
9
|
+
readonly pointers: readonly JsonPointer[];
|
|
10
|
+
readonly context: ReadonlyMap<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
export interface CliArgumentsResult {
|
|
13
|
+
readonly kind: 'run';
|
|
14
|
+
readonly options: CliOptions;
|
|
15
|
+
}
|
|
16
|
+
export interface CliHelpResult {
|
|
17
|
+
readonly kind: 'help';
|
|
18
|
+
}
|
|
19
|
+
export interface CliVersionResult {
|
|
20
|
+
readonly kind: 'version';
|
|
21
|
+
}
|
|
22
|
+
export interface CliErrorResult {
|
|
23
|
+
readonly kind: 'error';
|
|
24
|
+
readonly message: string;
|
|
25
|
+
}
|
|
26
|
+
export type CliArguments = CliArgumentsResult | CliHelpResult | CliVersionResult | CliErrorResult;
|
|
27
|
+
export interface CliIo {
|
|
28
|
+
readonly stdin: NodeJS.ReadableStream;
|
|
29
|
+
readonly stdout: NodeJS.WritableStream;
|
|
30
|
+
readonly stderr: NodeJS.WritableStream;
|
|
31
|
+
}
|
|
32
|
+
export interface CliRunOptions {
|
|
33
|
+
readonly stdin?: NodeJS.ReadableStream;
|
|
34
|
+
readonly stdout?: NodeJS.WritableStream;
|
|
35
|
+
readonly stderr?: NodeJS.WritableStream;
|
|
36
|
+
}
|
|
37
|
+
export interface DiagnosticsSummary {
|
|
38
|
+
readonly total: number;
|
|
39
|
+
readonly error: number;
|
|
40
|
+
readonly warning: number;
|
|
41
|
+
readonly info: number;
|
|
42
|
+
}
|
|
43
|
+
export interface SerializablePosition {
|
|
44
|
+
readonly offset: number;
|
|
45
|
+
readonly line: number;
|
|
46
|
+
readonly column: number;
|
|
47
|
+
}
|
|
48
|
+
export interface SerializableSpan {
|
|
49
|
+
readonly uri: string;
|
|
50
|
+
readonly start: SerializablePosition;
|
|
51
|
+
readonly end: SerializablePosition;
|
|
52
|
+
}
|
|
53
|
+
export interface SerializableDiagnostic {
|
|
54
|
+
readonly code: string;
|
|
55
|
+
readonly message: string;
|
|
56
|
+
readonly severity: DiagnosticSeverity;
|
|
57
|
+
readonly pointer?: JsonPointer;
|
|
58
|
+
readonly span?: SerializableSpan;
|
|
59
|
+
readonly related?: readonly SerializableRelatedInformation[];
|
|
60
|
+
}
|
|
61
|
+
export interface SerializableRelatedInformation {
|
|
62
|
+
readonly message: string;
|
|
63
|
+
readonly pointer?: JsonPointer;
|
|
64
|
+
readonly span?: SerializableSpan;
|
|
65
|
+
}
|
|
66
|
+
export interface SerializableResolutionSource {
|
|
67
|
+
readonly uri: string;
|
|
68
|
+
readonly pointer: JsonPointer;
|
|
69
|
+
readonly span?: SerializableSpan;
|
|
70
|
+
}
|
|
71
|
+
export interface SerializableAppliedOverride {
|
|
72
|
+
readonly pointer: JsonPointer;
|
|
73
|
+
readonly kind: AppliedOverride['kind'];
|
|
74
|
+
readonly depth: number;
|
|
75
|
+
readonly span?: SerializableSpan;
|
|
76
|
+
readonly source?: SerializableResolutionSource;
|
|
77
|
+
}
|
|
78
|
+
export interface SerializableTraceStep {
|
|
79
|
+
readonly pointer: JsonPointer;
|
|
80
|
+
readonly kind: 'token' | 'alias' | 'override' | 'fallback';
|
|
81
|
+
readonly span?: SerializableSpan;
|
|
82
|
+
}
|
|
83
|
+
export interface SerializableResolvedToken {
|
|
84
|
+
readonly pointer: JsonPointer;
|
|
85
|
+
readonly uri: string;
|
|
86
|
+
readonly type?: string;
|
|
87
|
+
readonly value?: unknown;
|
|
88
|
+
readonly source?: SerializableResolutionSource;
|
|
89
|
+
readonly overridesApplied: readonly SerializableAppliedOverride[];
|
|
90
|
+
readonly warnings: readonly SerializableDiagnostic[];
|
|
91
|
+
readonly trace: readonly SerializableTraceStep[];
|
|
92
|
+
}
|
|
93
|
+
export interface ResolutionSummary {
|
|
94
|
+
readonly pointer: JsonPointer;
|
|
95
|
+
readonly token?: SerializableResolvedToken;
|
|
96
|
+
readonly diagnostics: readonly SerializableDiagnostic[];
|
|
97
|
+
}
|
|
98
|
+
export interface DocumentSummary {
|
|
99
|
+
readonly uri: string | null;
|
|
100
|
+
readonly diagnostics: readonly SerializableDiagnostic[];
|
|
101
|
+
readonly diagnosticCounts: DiagnosticsSummary;
|
|
102
|
+
readonly resolverAvailable: boolean;
|
|
103
|
+
readonly resolutions?: Readonly<Record<string, ResolutionSummary>>;
|
|
104
|
+
}
|
|
105
|
+
export interface CliOutput {
|
|
106
|
+
readonly documents: readonly DocumentSummary[];
|
|
107
|
+
readonly diagnostics: readonly SerializableDiagnostic[];
|
|
108
|
+
readonly summary: DiagnosticsSummary;
|
|
109
|
+
}
|
|
110
|
+
export interface GatherInputsResult {
|
|
111
|
+
readonly inputs: ParseInput[];
|
|
112
|
+
readonly errors: string[];
|
|
113
|
+
}
|
|
114
|
+
export interface ResolutionSerializer {
|
|
115
|
+
serialize(pointer: JsonPointer, resolution: ResolutionResult): ResolutionSummary;
|
|
116
|
+
serializeToken(token: ResolvedToken): SerializableResolvedToken;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type DiagnosticSeverity } from './severity.js';
|
|
2
|
+
import type { Diagnostic } from '../types.js';
|
|
3
|
+
export declare class DiagnosticBag implements Iterable<Diagnostic> {
|
|
4
|
+
private readonly diagnostics;
|
|
5
|
+
private readonly counts;
|
|
6
|
+
constructor(initial?: Iterable<Diagnostic>);
|
|
7
|
+
get size(): number;
|
|
8
|
+
get isEmpty(): boolean;
|
|
9
|
+
hasSeverity(severity: DiagnosticSeverity): boolean;
|
|
10
|
+
hasErrors(): boolean;
|
|
11
|
+
get errorCount(): number;
|
|
12
|
+
get warningCount(): number;
|
|
13
|
+
get infoCount(): number;
|
|
14
|
+
count(severity?: DiagnosticSeverity): number;
|
|
15
|
+
highestSeverity(): DiagnosticSeverity | undefined;
|
|
16
|
+
add(diagnostic: Diagnostic): DiagnosticBag;
|
|
17
|
+
addMany(diagnostics: Iterable<Diagnostic>): DiagnosticBag;
|
|
18
|
+
extend(other: DiagnosticBag | Iterable<Diagnostic>): DiagnosticBag;
|
|
19
|
+
clear(): void;
|
|
20
|
+
toArray(): readonly Diagnostic[];
|
|
21
|
+
[Symbol.iterator](): Iterator<Diagnostic>;
|
|
22
|
+
forEach(callback: (diagnostic: Diagnostic, index: number) => void): void;
|
|
23
|
+
filter(predicate: (diagnostic: Diagnostic, index: number) => boolean): Diagnostic[];
|
|
24
|
+
toJSON(): readonly Diagnostic[];
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=bag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bag.d.ts","sourceRoot":"","sources":["../../src/diagnostics/bag.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,qBAAa,aAAc,YAAW,QAAQ,CAAC,UAAU,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAIrB;gBAEU,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM1C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO;IAIlD,SAAS,IAAI,OAAO;IAIpB,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,KAAK,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAQ5C,eAAe,IAAI,kBAAkB,GAAG,SAAS;IAejD,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa;IAO1C,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,aAAa;IAOzD,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,aAAa;IAOlE,KAAK,IAAI,IAAI;IAOb,OAAO,IAAI,SAAS,UAAU,EAAE;IAIhC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC;IAIzC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIxE,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,UAAU,EAAE;IAInF,MAAM,IAAI,SAAS,UAAU,EAAE;CAGhC"}
|