@lapidist/dtif-parser 1.0.6 → 2.0.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 +61 -0
- package/LICENSE +28 -0
- package/README.md +5 -0
- package/dist/adapters/domain/diagnostics.d.ts +1 -3
- package/dist/adapters/domain/diagnostics.d.ts.map +1 -1
- package/dist/adapters/domain/diagnostics.js +3 -1
- package/dist/adapters/domain/diagnostics.js.map +1 -1
- package/dist/adapters/domain/document-source.d.ts.map +1 -1
- package/dist/adapters/domain/document-source.js +1 -10
- package/dist/adapters/domain/document-source.js.map +1 -1
- package/dist/adapters/domain/index.d.ts +2 -2
- package/dist/adapters/domain/index.d.ts.map +1 -1
- package/dist/adapters/domain/index.js +1 -1
- package/dist/adapters/domain/index.js.map +1 -1
- package/dist/adapters/domain/plugins.d.ts.map +1 -1
- package/dist/adapters/domain/plugins.js +1 -1
- package/dist/adapters/domain/plugins.js.map +1 -1
- package/dist/adapters/domain/services.d.ts +13 -20
- package/dist/adapters/domain/services.d.ts.map +1 -1
- package/dist/adapters/domain/services.js +62 -56
- package/dist/adapters/domain/services.js.map +1 -1
- package/dist/adapters/node/token-parser.d.ts +1 -1
- package/dist/adapters/node/token-parser.d.ts.map +1 -1
- package/dist/adapters/node/token-parser.js +23 -10
- package/dist/adapters/node/token-parser.js.map +1 -1
- package/dist/application/factory.d.ts +4 -7
- package/dist/application/factory.d.ts.map +1 -1
- package/dist/application/factory.js +10 -35
- package/dist/application/factory.js.map +1 -1
- package/dist/application/index.d.ts +1 -1
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +1 -1
- package/dist/application/index.js.map +1 -1
- package/dist/application/inline.d.ts +2 -5
- package/dist/application/inline.d.ts.map +1 -1
- package/dist/application/inline.js +2 -81
- package/dist/application/inline.js.map +1 -1
- package/dist/application/requests.d.ts +3 -8
- package/dist/application/requests.d.ts.map +1 -1
- package/dist/application/requests.js +1 -38
- package/dist/application/requests.js.map +1 -1
- package/dist/application/runtime-options.d.ts +14 -0
- package/dist/application/runtime-options.d.ts.map +1 -0
- package/dist/application/runtime-options.js +2 -0
- package/dist/application/runtime-options.js.map +1 -0
- package/dist/application/use-cases.d.ts +17 -10
- package/dist/application/use-cases.d.ts.map +1 -1
- package/dist/application/use-cases.js +69 -73
- package/dist/application/use-cases.js.map +1 -1
- package/dist/ast/nodes.d.ts +1 -1
- package/dist/ast/nodes.d.ts.map +1 -1
- package/dist/ast/normaliser/document.d.ts.map +1 -1
- package/dist/ast/normaliser/document.js +26 -0
- package/dist/ast/normaliser/document.js.map +1 -1
- package/dist/ast/normaliser/fields.d.ts +1 -1
- package/dist/ast/normaliser/fields.d.ts.map +1 -1
- package/dist/ast/normaliser/known-types.d.ts +2 -0
- package/dist/ast/normaliser/known-types.d.ts.map +1 -0
- package/dist/ast/normaliser/known-types.js +37 -0
- package/dist/ast/normaliser/known-types.js.map +1 -0
- package/dist/ast/normaliser/metadata.d.ts +1 -1
- package/dist/ast/normaliser/metadata.d.ts.map +1 -1
- package/dist/ast/normaliser/nodes.d.ts +1 -1
- package/dist/ast/normaliser/nodes.d.ts.map +1 -1
- package/dist/ast/normaliser/nodes.js +21 -0
- package/dist/ast/normaliser/nodes.js.map +1 -1
- package/dist/ast/normaliser/ordering.d.ts +6 -0
- package/dist/ast/normaliser/ordering.d.ts.map +1 -0
- package/dist/ast/normaliser/ordering.js +91 -0
- package/dist/ast/normaliser/ordering.js.map +1 -0
- package/dist/ast/normaliser/overrides.d.ts +1 -1
- package/dist/ast/normaliser/overrides.d.ts.map +1 -1
- package/dist/ast/normaliser/overrides.js +10 -8
- package/dist/ast/normaliser/overrides.js.map +1 -1
- package/dist/ast/normaliser/utils.d.ts +1 -1
- package/dist/ast/normaliser/utils.d.ts.map +1 -1
- package/dist/cli/parse.d.ts.map +1 -1
- package/dist/cli/parse.js +3 -4
- package/dist/cli/parse.js.map +1 -1
- package/dist/config/parse-options.d.ts +21 -0
- package/dist/config/parse-options.d.ts.map +1 -0
- package/dist/config/parse-options.js +2 -0
- package/dist/config/parse-options.js.map +1 -0
- package/dist/diagnostics/codes.d.ts +6 -1
- package/dist/diagnostics/codes.d.ts.map +1 -1
- package/dist/diagnostics/codes.js +6 -2
- package/dist/diagnostics/codes.js.map +1 -1
- package/dist/domain/models.d.ts +2 -2
- package/dist/domain/models.d.ts.map +1 -1
- package/dist/domain/ports.d.ts +5 -1
- package/dist/domain/ports.d.ts.map +1 -1
- package/dist/domain/primitives.d.ts +1 -0
- package/dist/domain/primitives.d.ts.map +1 -1
- package/dist/domain/services.d.ts +2 -6
- package/dist/domain/services.d.ts.map +1 -1
- package/dist/graph/builder/context.d.ts +4 -3
- package/dist/graph/builder/context.d.ts.map +1 -1
- package/dist/graph/builder/context.js.map +1 -1
- package/dist/graph/builder/nodes.d.ts +1 -1
- package/dist/graph/builder/nodes.d.ts.map +1 -1
- package/dist/graph/nodes.d.ts +1 -1
- package/dist/graph/nodes.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input/content-sniffing.d.ts +4 -0
- package/dist/input/content-sniffing.d.ts.map +1 -0
- package/dist/input/content-sniffing.js +37 -0
- package/dist/input/content-sniffing.js.map +1 -0
- package/dist/input/contracts.d.ts +7 -0
- package/dist/input/contracts.d.ts.map +1 -0
- package/dist/input/contracts.js +38 -0
- package/dist/input/contracts.js.map +1 -0
- package/dist/input/inline-document.d.ts +10 -0
- package/dist/input/inline-document.d.ts.map +1 -0
- package/dist/input/inline-document.js +14 -0
- package/dist/input/inline-document.js.map +1 -0
- package/dist/input/memory-uri.d.ts +10 -0
- package/dist/input/memory-uri.d.ts.map +1 -0
- package/dist/input/memory-uri.js +30 -0
- package/dist/input/memory-uri.js.map +1 -0
- package/dist/io/decoder/core.d.ts +8 -0
- package/dist/io/decoder/core.d.ts.map +1 -0
- package/dist/io/decoder/core.js +39 -0
- package/dist/io/decoder/core.js.map +1 -0
- package/dist/io/decoder/inline-document.d.ts +4 -0
- package/dist/io/decoder/inline-document.d.ts.map +1 -0
- package/dist/io/decoder/inline-document.js +12 -0
- package/dist/io/decoder/inline-document.js.map +1 -0
- package/dist/io/decoder.d.ts.map +1 -1
- package/dist/io/decoder.js +3 -52
- package/dist/io/decoder.js.map +1 -1
- package/dist/io/document-loader.d.ts.map +1 -1
- package/dist/io/document-loader.js +22 -86
- package/dist/io/document-loader.js.map +1 -1
- package/dist/io/loader-diagnostics.d.ts +4 -0
- package/dist/io/loader-diagnostics.d.ts.map +1 -0
- package/dist/io/loader-diagnostics.js +13 -0
- package/dist/io/loader-diagnostics.js.map +1 -0
- package/dist/plugins/transform-utils.d.ts +5 -0
- package/dist/plugins/transform-utils.d.ts.map +1 -0
- package/dist/plugins/transform-utils.js +18 -0
- package/dist/plugins/transform-utils.js.map +1 -0
- package/dist/plugins/types.d.ts +30 -1
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/resolver/document-resolver.d.ts +6 -4
- package/dist/resolver/document-resolver.d.ts.map +1 -1
- package/dist/resolver/document-resolver.js +216 -163
- package/dist/resolver/document-resolver.js.map +1 -1
- package/dist/resolver/external-graph-provider.d.ts +31 -0
- package/dist/resolver/external-graph-provider.d.ts.map +1 -0
- package/dist/resolver/external-graph-provider.js +124 -0
- package/dist/resolver/external-graph-provider.js.map +1 -0
- package/dist/resolver/internal/constants.d.ts +1 -1
- package/dist/resolver/internal/context.d.ts +1 -1
- package/dist/resolver/internal/context.d.ts.map +1 -1
- package/dist/resolver/internal/context.js +2 -7
- package/dist/resolver/internal/context.js.map +1 -1
- package/dist/resolver/internal/external-graph-index.d.ts +7 -0
- package/dist/resolver/internal/external-graph-index.d.ts.map +1 -0
- package/dist/resolver/internal/external-graph-index.js +81 -0
- package/dist/resolver/internal/external-graph-index.js.map +1 -0
- package/dist/resolver/internal/helpers.d.ts +1 -3
- package/dist/resolver/internal/helpers.d.ts.map +1 -1
- package/dist/resolver/internal/helpers.js +0 -16
- package/dist/resolver/internal/helpers.js.map +1 -1
- package/dist/resolver/internal/override-evaluator.d.ts +3 -0
- package/dist/resolver/internal/override-evaluator.d.ts.map +1 -0
- package/dist/resolver/internal/override-evaluator.js +17 -0
- package/dist/resolver/internal/override-evaluator.js.map +1 -0
- package/dist/resolver/internal/resolution-key.d.ts +3 -0
- package/dist/resolver/internal/resolution-key.d.ts.map +1 -0
- package/dist/resolver/internal/resolution-key.js +4 -0
- package/dist/resolver/internal/resolution-key.js.map +1 -0
- package/dist/resolver/internal/state.d.ts +26 -0
- package/dist/resolver/internal/state.d.ts.map +1 -0
- package/dist/resolver/internal/state.js +2 -0
- package/dist/resolver/internal/state.js.map +1 -0
- package/dist/resolver/internal/transform-runner.d.ts +6 -0
- package/dist/resolver/internal/transform-runner.d.ts.map +1 -0
- package/dist/resolver/internal/transform-runner.js +31 -0
- package/dist/resolver/internal/transform-runner.js.map +1 -0
- package/dist/resolver/internal/type-compatibility.d.ts +2 -0
- package/dist/resolver/internal/type-compatibility.d.ts.map +1 -0
- package/dist/resolver/internal/type-compatibility.js +25 -0
- package/dist/resolver/internal/type-compatibility.js.map +1 -0
- package/dist/resolver/types.d.ts +5 -1
- package/dist/resolver/types.d.ts.map +1 -1
- package/dist/runtime/resolve-options.d.ts +16 -0
- package/dist/runtime/resolve-options.d.ts.map +1 -0
- package/dist/runtime/resolve-options.js +27 -0
- package/dist/runtime/resolve-options.js.map +1 -0
- package/dist/session/internal/options.d.ts +1 -15
- package/dist/session/internal/options.d.ts.map +1 -1
- package/dist/session/internal/options.js +1 -28
- package/dist/session/internal/options.js.map +1 -1
- package/dist/session/internal/runtime.d.ts +15 -0
- package/dist/session/internal/runtime.d.ts.map +1 -0
- package/dist/session/internal/runtime.js +15 -0
- package/dist/session/internal/runtime.js.map +1 -0
- package/dist/session/options.d.ts +2 -0
- package/dist/session/options.d.ts.map +1 -0
- package/dist/session/options.js +2 -0
- package/dist/session/options.js.map +1 -0
- package/dist/session/runtime.d.ts +2 -0
- package/dist/session/runtime.d.ts.map +1 -0
- package/dist/session/runtime.js +2 -0
- package/dist/session/runtime.js.map +1 -0
- package/dist/session/types.d.ts +1 -15
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session.d.ts +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +4 -4
- package/dist/session.js.map +1 -1
- package/dist/tokens/contracts.d.ts +33 -0
- package/dist/tokens/contracts.d.ts.map +1 -0
- package/dist/tokens/contracts.js +2 -0
- package/dist/tokens/contracts.js.map +1 -0
- package/dist/tokens/inputs.d.ts +1 -4
- package/dist/tokens/inputs.d.ts.map +1 -1
- package/dist/tokens/inputs.js +21 -81
- package/dist/tokens/inputs.js.map +1 -1
- package/dist/tokens/internal/parse-result.d.ts +15 -0
- package/dist/tokens/internal/parse-result.d.ts.map +1 -0
- package/dist/tokens/internal/parse-result.js +43 -0
- package/dist/tokens/internal/parse-result.js.map +1 -0
- package/dist/tokens/parse-tokens.d.ts +3 -24
- package/dist/tokens/parse-tokens.d.ts.map +1 -1
- package/dist/tokens/parse-tokens.js +24 -49
- package/dist/tokens/parse-tokens.js.map +1 -1
- package/dist/tokens/token-flattening-adapter.d.ts +24 -0
- package/dist/tokens/token-flattening-adapter.d.ts.map +1 -0
- package/dist/tokens/token-flattening-adapter.js +59 -0
- package/dist/tokens/token-flattening-adapter.js.map +1 -0
- package/dist/tokens/use-case-factory.d.ts +11 -0
- package/dist/tokens/use-case-factory.d.ts.map +1 -0
- package/dist/tokens/use-case-factory.js +33 -0
- package/dist/tokens/use-case-factory.js.map +1 -0
- package/dist/utils/context.d.ts +3 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +10 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/inline-yaml.d.ts.map +1 -0
- package/dist/utils/inline-yaml.js.map +1 -0
- package/dist/utils/json-pointer.d.ts +1 -1
- package/dist/utils/json-pointer.d.ts.map +1 -1
- package/dist/utils/source.d.ts +1 -1
- package/dist/utils/source.d.ts.map +1 -1
- package/dist/validation/schema-guard.d.ts.map +1 -1
- package/dist/validation/schema-guard.js +19 -82
- package/dist/validation/schema-guard.js.map +1 -1
- package/package.json +11 -12
- package/dist/io/decoder/inline-yaml.d.ts.map +0 -1
- package/dist/io/decoder/inline-yaml.js.map +0 -1
- /package/dist/{io/decoder → utils}/inline-yaml.d.ts +0 -0
- /package/dist/{io/decoder → utils}/inline-yaml.js +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type DocumentLoader } from '../io/document-loader.js';
|
|
2
|
+
import type { DiagnosticEvent } from '../domain/models.js';
|
|
3
|
+
import type { SchemaGuard } from '../validation/schema-guard.js';
|
|
4
|
+
import type { PluginRegistry } from '../plugins/index.js';
|
|
5
|
+
import type { DocumentGraph, GraphReferenceTarget } from '../graph/nodes.js';
|
|
6
|
+
export interface ExternalGraphProviderRequest {
|
|
7
|
+
readonly rootGraph: DocumentGraph;
|
|
8
|
+
readonly targets: readonly GraphReferenceTarget[];
|
|
9
|
+
readonly baseUri: URL;
|
|
10
|
+
}
|
|
11
|
+
export interface ExternalGraphProviderResult {
|
|
12
|
+
readonly graphs: ReadonlyMap<string, DocumentGraph>;
|
|
13
|
+
readonly diagnostics: readonly DiagnosticEvent[];
|
|
14
|
+
}
|
|
15
|
+
export interface ExternalGraphProvider {
|
|
16
|
+
load(request: ExternalGraphProviderRequest): Promise<ExternalGraphProviderResult>;
|
|
17
|
+
}
|
|
18
|
+
export interface DefaultExternalGraphProviderOptions {
|
|
19
|
+
readonly loader: DocumentLoader;
|
|
20
|
+
readonly schemaGuard: SchemaGuard;
|
|
21
|
+
readonly extensions?: PluginRegistry;
|
|
22
|
+
readonly allowNetworkReferences?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare class DefaultExternalGraphProvider implements ExternalGraphProvider {
|
|
25
|
+
#private;
|
|
26
|
+
constructor(options: DefaultExternalGraphProviderOptions);
|
|
27
|
+
load(request: ExternalGraphProviderRequest): Promise<ExternalGraphProviderResult>;
|
|
28
|
+
}
|
|
29
|
+
export declare function createExternalGraphProvider(options: DefaultExternalGraphProviderOptions): ExternalGraphProvider;
|
|
30
|
+
export declare function collectExternalReferenceTargets(graph: DocumentGraph): readonly GraphReferenceTarget[];
|
|
31
|
+
//# sourceMappingURL=external-graph-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-graph-provider.d.ts","sourceRoot":"","sources":["../../src/resolver/external-graph-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EAEb,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,qBAAa,4BAA6B,YAAW,qBAAqB;;gBAM5D,OAAO,EAAE,mCAAmC;IAOlD,IAAI,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAiFxF;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,mCAAmC,GAC3C,qBAAqB,CAEvB;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,aAAa,GACnB,SAAS,oBAAoB,EAAE,CAsBjC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { DiagnosticCodes } from '../diagnostics/codes.js';
|
|
2
|
+
import { normalizeDocument } from '../ast/normaliser.js';
|
|
3
|
+
import { buildDocumentGraph } from '../graph/builder.js';
|
|
4
|
+
import { decodeDocument } from '../io/decoder.js';
|
|
5
|
+
import { DocumentLoaderError } from '../io/document-loader.js';
|
|
6
|
+
import { diagnosticCodeForLoaderError } from '../io/loader-diagnostics.js';
|
|
7
|
+
export class DefaultExternalGraphProvider {
|
|
8
|
+
#loader;
|
|
9
|
+
#schemaGuard;
|
|
10
|
+
#extensions;
|
|
11
|
+
#allowNetworkReferences;
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.#loader = options.loader;
|
|
14
|
+
this.#schemaGuard = options.schemaGuard;
|
|
15
|
+
this.#extensions = options.extensions;
|
|
16
|
+
this.#allowNetworkReferences = options.allowNetworkReferences ?? false;
|
|
17
|
+
}
|
|
18
|
+
async load(request) {
|
|
19
|
+
const graphs = new Map();
|
|
20
|
+
const diagnostics = [];
|
|
21
|
+
const queue = [...request.targets];
|
|
22
|
+
const visited = new Set([request.rootGraph.uri.href]);
|
|
23
|
+
while (queue.length > 0) {
|
|
24
|
+
const target = queue.shift();
|
|
25
|
+
if (!target) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const href = target.uri.href;
|
|
29
|
+
if (visited.has(href)) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
visited.add(href);
|
|
33
|
+
const protocol = target.uri.protocol.toLowerCase();
|
|
34
|
+
const networkReference = protocol === 'http:' || protocol === 'https:';
|
|
35
|
+
if (networkReference && !this.#allowNetworkReferences) {
|
|
36
|
+
diagnostics.push({
|
|
37
|
+
code: DiagnosticCodes.resolver.EXTERNAL_REFERENCE,
|
|
38
|
+
message: `Skipped network reference "${href}" because network references are disabled.`,
|
|
39
|
+
severity: 'warning',
|
|
40
|
+
pointer: target.pointer
|
|
41
|
+
});
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
const handle = await this.#loader.load(target.uri, { baseUri: request.baseUri });
|
|
46
|
+
const decoded = await decodeDocument(handle);
|
|
47
|
+
const validation = this.#schemaGuard.validate(decoded);
|
|
48
|
+
diagnostics.push(...validation.diagnostics);
|
|
49
|
+
if (!validation.valid) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const normalized = normalizeDocument(decoded, { extensions: this.#extensions });
|
|
53
|
+
diagnostics.push(...normalized.diagnostics);
|
|
54
|
+
if (!normalized.ast) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const graphResult = buildDocumentGraph(normalized.ast);
|
|
58
|
+
diagnostics.push(...graphResult.diagnostics);
|
|
59
|
+
if (!graphResult.graph) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const loadedGraph = graphResult.graph;
|
|
63
|
+
graphs.set(loadedGraph.uri.href, loadedGraph);
|
|
64
|
+
const nestedTargets = collectExternalReferenceTargets(loadedGraph);
|
|
65
|
+
for (const nested of nestedTargets) {
|
|
66
|
+
if (!visited.has(nested.uri.href)) {
|
|
67
|
+
queue.push(nested);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
const code = error instanceof DocumentLoaderError
|
|
73
|
+
? diagnosticCodeForLoaderError(error)
|
|
74
|
+
: DiagnosticCodes.resolver.EXTERNAL_REFERENCE;
|
|
75
|
+
diagnostics.push({
|
|
76
|
+
code,
|
|
77
|
+
message: error instanceof Error
|
|
78
|
+
? error.message
|
|
79
|
+
: `Failed to load external DTIF document "${href}".`,
|
|
80
|
+
severity: 'error',
|
|
81
|
+
pointer: target.pointer
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
graphs,
|
|
87
|
+
diagnostics
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function createExternalGraphProvider(options) {
|
|
92
|
+
return new DefaultExternalGraphProvider(options);
|
|
93
|
+
}
|
|
94
|
+
export function collectExternalReferenceTargets(graph) {
|
|
95
|
+
const targets = [];
|
|
96
|
+
for (const node of graph.nodes.values()) {
|
|
97
|
+
if (node.kind === 'alias' && node.ref.value.external) {
|
|
98
|
+
targets.push(node.ref.value);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
for (const override of graph.overrides) {
|
|
102
|
+
if (override.token.value.external) {
|
|
103
|
+
targets.push(override.token.value);
|
|
104
|
+
}
|
|
105
|
+
if (override.ref?.value.external) {
|
|
106
|
+
targets.push(override.ref.value);
|
|
107
|
+
}
|
|
108
|
+
if (override.fallback) {
|
|
109
|
+
collectExternalFallbackTargets(override.fallback, targets);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return Object.freeze(targets);
|
|
113
|
+
}
|
|
114
|
+
function collectExternalFallbackTargets(entries, targets) {
|
|
115
|
+
for (const entry of entries) {
|
|
116
|
+
if (entry.ref?.value.external) {
|
|
117
|
+
targets.push(entry.ref.value);
|
|
118
|
+
}
|
|
119
|
+
if (entry.fallback && entry.fallback.length > 0) {
|
|
120
|
+
collectExternalFallbackTargets(entry.fallback, targets);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=external-graph-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-graph-provider.js","sourceRoot":"","sources":["../../src/resolver/external-graph-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DiagnosticEvent } from '../../domain/models.js';
|
|
2
2
|
import type { AppliedOverride } from '../types.js';
|
|
3
3
|
import type { ResolutionTraceStep } from '../types.js';
|
|
4
|
-
import type { ResolvedTokenTransformEntry, ResolvedTokenTransformEvaluation } from '../../plugins/
|
|
4
|
+
import type { ResolvedTokenTransformEntry, ResolvedTokenTransformEvaluation } from '../../plugins/types.js';
|
|
5
5
|
export declare const EMPTY_DIAGNOSTICS: readonly DiagnosticEvent[];
|
|
6
6
|
export declare const EMPTY_OVERRIDES: readonly AppliedOverride[];
|
|
7
7
|
export declare const EMPTY_TRACE: readonly ResolutionTraceStep[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { JsonPointer } from '../../domain/primitives.js';
|
|
2
2
|
import type { GraphOverrideNode } from '../../graph/nodes.js';
|
|
3
|
-
import type { ResolvedTokenTransformEntry } from '../../plugins/
|
|
3
|
+
import type { ResolvedTokenTransformEntry } from '../../plugins/types.js';
|
|
4
4
|
export declare function normalizeContext(context?: ReadonlyMap<string, unknown> | Readonly<Record<string, unknown>>): ReadonlyMap<string, unknown>;
|
|
5
5
|
export declare function normalizeMaxDepth(value: number | undefined): number;
|
|
6
6
|
export declare function indexOverrides(overrides: readonly GraphOverrideNode[]): ReadonlyMap<JsonPointer, readonly GraphOverrideNode[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAI1E,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACzE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUnE;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,iBAAiB,EAAE,GACtC,WAAW,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAC,CAmBxD;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,2BAA2B,EAAE,GAAG,SAAS,GAC7D,SAAS,2BAA2B,EAAE,CAIxC"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
+
import { toReadonlyContextMap } from '../../utils/context.js';
|
|
1
2
|
import { DEFAULT_MAX_DEPTH, EMPTY_TRANSFORM_ENTRIES } from './constants.js';
|
|
2
3
|
export function normalizeContext(context) {
|
|
3
|
-
|
|
4
|
-
return new Map();
|
|
5
|
-
}
|
|
6
|
-
if (context instanceof Map) {
|
|
7
|
-
return context;
|
|
8
|
-
}
|
|
9
|
-
return new Map(Object.entries(context));
|
|
4
|
+
return toReadonlyContextMap(context);
|
|
10
5
|
}
|
|
11
6
|
export function normalizeMaxDepth(value) {
|
|
12
7
|
if (value === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/resolver/internal/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,UAAU,gBAAgB,CAC9B,OAA0E;IAE1E,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/resolver/internal/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,UAAU,gBAAgB,CAC9B,OAA0E;IAE1E,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAAuC;IAEvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE5D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6C,CAAC;IACpE,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,UAA8D;IAE9D,OAAO,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC,uBAAuB,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JsonPointer } from '../../domain/primitives.js';
|
|
2
|
+
import type { DocumentGraph, GraphOverrideNode } from '../../graph/nodes.js';
|
|
3
|
+
import type { ExternalGraphInput } from '../types.js';
|
|
4
|
+
export type OverridesByGraph = ReadonlyMap<string, ReadonlyMap<JsonPointer, readonly GraphOverrideNode[]>>;
|
|
5
|
+
export declare function normalizeExternalGraphs(rootGraph: DocumentGraph, externalGraphs?: ExternalGraphInput): ReadonlyMap<string, DocumentGraph>;
|
|
6
|
+
export declare function indexOverridesByGraph(graphs: ReadonlyMap<string, DocumentGraph>): OverridesByGraph;
|
|
7
|
+
//# sourceMappingURL=external-graph-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-graph-index.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/external-graph-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG,WAAW,CACxC,MAAM,EACN,WAAW,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAC,CACvD,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,aAAa,EACxB,cAAc,CAAC,EAAE,kBAAkB,GAClC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CA8BpC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GACzC,gBAAgB,CA0ClB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export function normalizeExternalGraphs(rootGraph, externalGraphs) {
|
|
2
|
+
const graphs = new Map();
|
|
3
|
+
graphs.set(rootGraph.uri.href, rootGraph);
|
|
4
|
+
if (!externalGraphs) {
|
|
5
|
+
return graphs;
|
|
6
|
+
}
|
|
7
|
+
if (isExternalGraphMap(externalGraphs)) {
|
|
8
|
+
for (const [key, graph] of externalGraphs.entries()) {
|
|
9
|
+
if (!isDocumentGraph(graph)) {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
const href = key instanceof URL ? key.href : key;
|
|
13
|
+
graphs.set(href, graph);
|
|
14
|
+
graphs.set(graph.uri.href, graph);
|
|
15
|
+
}
|
|
16
|
+
return graphs;
|
|
17
|
+
}
|
|
18
|
+
for (const href in externalGraphs) {
|
|
19
|
+
const graph = externalGraphs[href];
|
|
20
|
+
if (!isDocumentGraph(graph)) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
graphs.set(href, graph);
|
|
24
|
+
graphs.set(graph.uri.href, graph);
|
|
25
|
+
}
|
|
26
|
+
return graphs;
|
|
27
|
+
}
|
|
28
|
+
export function indexOverridesByGraph(graphs) {
|
|
29
|
+
const overridesByGraph = new Map();
|
|
30
|
+
const seen = new Set();
|
|
31
|
+
const uniqueGraphs = [];
|
|
32
|
+
for (const graph of graphs.values()) {
|
|
33
|
+
if (seen.has(graph.uri.href)) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
seen.add(graph.uri.href);
|
|
37
|
+
overridesByGraph.set(graph.uri.href, new Map());
|
|
38
|
+
uniqueGraphs.push(graph);
|
|
39
|
+
}
|
|
40
|
+
for (const graph of uniqueGraphs) {
|
|
41
|
+
for (const override of graph.overrides) {
|
|
42
|
+
const targetUri = override.token.value.uri.href;
|
|
43
|
+
const pointer = override.token.value.pointer;
|
|
44
|
+
const targetMap = overridesByGraph.get(targetUri);
|
|
45
|
+
if (!targetMap) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const list = targetMap.get(pointer);
|
|
49
|
+
if (list) {
|
|
50
|
+
list.push(override);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
targetMap.set(pointer, [override]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const immutable = new Map();
|
|
58
|
+
for (const [uri, pointerMap] of overridesByGraph.entries()) {
|
|
59
|
+
const frozenPointers = new Map();
|
|
60
|
+
for (const [pointer, list] of pointerMap.entries()) {
|
|
61
|
+
frozenPointers.set(pointer, Object.freeze(list.slice()));
|
|
62
|
+
}
|
|
63
|
+
immutable.set(uri, frozenPointers);
|
|
64
|
+
}
|
|
65
|
+
return immutable;
|
|
66
|
+
}
|
|
67
|
+
function isExternalGraphMap(value) {
|
|
68
|
+
return value instanceof Map;
|
|
69
|
+
}
|
|
70
|
+
function isDocumentGraph(value) {
|
|
71
|
+
if (!value || typeof value !== 'object') {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (!('kind' in value) || !('uri' in value)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
const kind = Reflect.get(value, 'kind');
|
|
78
|
+
const uri = Reflect.get(value, 'uri');
|
|
79
|
+
return kind === 'document-graph' && uri instanceof URL;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=external-graph-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-graph-index.js","sourceRoot":"","sources":["../../../src/resolver/internal/external-graph-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,9 @@ import type { JsonPointer, SourceSpan } from '../../domain/primitives.js';
|
|
|
4
4
|
import type { GraphReferenceTarget } from '../../graph/nodes.js';
|
|
5
5
|
import type { ResolutionResult, ResolvedToken } from '../types.js';
|
|
6
6
|
import type { ResolutionSource, ResolutionTraceStep } from '../types.js';
|
|
7
|
-
import type { ResolvedTokenTransformEvaluation } from '../../plugins/
|
|
7
|
+
import type { ResolvedTokenTransformEvaluation } from '../../plugins/types.js';
|
|
8
8
|
import type { DiagnosticCollector } from './diagnostics.js';
|
|
9
9
|
export declare function finalizeResolution(token: ResolvedToken | undefined, diagnostics: DiagnosticCollector, transforms?: readonly ResolvedTokenTransformEvaluation[]): ResolutionResult;
|
|
10
|
-
export declare function freezeResultDiagnostics(list?: readonly DiagnosticEvent[]): readonly DiagnosticEvent[];
|
|
11
|
-
export declare function createTransformFailureDiagnostic(plugin: string, pointer: JsonPointer, error: unknown): DiagnosticEvent;
|
|
12
10
|
export declare function createTraceStep(pointer: JsonPointer, kind: ResolutionTraceStep['kind'], span?: SourceSpan): ResolutionTraceStep;
|
|
13
11
|
export declare function createFieldSource(field: AstField<unknown>, uri: URL): ResolutionSource;
|
|
14
12
|
export declare function createTargetSource(target: GraphReferenceTarget, span?: SourceSpan): ResolutionSource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,WAAW,EAAE,mBAAmB,EAChC,UAAU,GAAE,SAAS,gCAAgC,EAAgC,GACpF,gBAAgB,CAOlB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,EACjC,IAAI,CAAC,EAAE,UAAU,GAChB,mBAAmB,CAErB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,gBAAgB,CAMtF;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,oBAAoB,EAC5B,IAAI,CAAC,EAAE,UAAU,GAChB,gBAAgB,CAMlB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,EAC7C,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,GAC7C,SAAS,eAAe,EAAE,CAG5B;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAM5E"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DiagnosticCodes } from '../../diagnostics/codes.js';
|
|
2
1
|
import { EMPTY_DIAGNOSTICS, EMPTY_TRANSFORM_EVALUATIONS } from './constants.js';
|
|
3
2
|
export function finalizeResolution(token, diagnostics, transforms = EMPTY_TRANSFORM_EVALUATIONS) {
|
|
4
3
|
const diagnosticArray = diagnostics.toArray();
|
|
@@ -8,21 +7,6 @@ export function finalizeResolution(token, diagnostics, transforms = EMPTY_TRANSF
|
|
|
8
7
|
transforms: transforms.length === 0 ? EMPTY_TRANSFORM_EVALUATIONS : transforms
|
|
9
8
|
};
|
|
10
9
|
}
|
|
11
|
-
export function freezeResultDiagnostics(list) {
|
|
12
|
-
if (!list || list.length === 0) {
|
|
13
|
-
return EMPTY_DIAGNOSTICS;
|
|
14
|
-
}
|
|
15
|
-
return Object.freeze(Array.from(list));
|
|
16
|
-
}
|
|
17
|
-
export function createTransformFailureDiagnostic(plugin, pointer, error) {
|
|
18
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
19
|
-
return {
|
|
20
|
-
code: DiagnosticCodes.plugins.RESOLUTION_FAILED,
|
|
21
|
-
message: `Plugin "${plugin}" failed to transform resolved token: ${message}`,
|
|
22
|
-
severity: 'error',
|
|
23
|
-
pointer
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
10
|
export function createTraceStep(pointer, kind, span) {
|
|
27
11
|
return Object.freeze({ pointer, kind, span });
|
|
28
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/resolver/internal/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/resolver/internal/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAMhF,MAAM,UAAU,kBAAkB,CAChC,KAAgC,EAChC,WAAgC,EAChC,aAA0D,2BAA2B;IAErF,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;IAC9C,OAAO;QACL,KAAK;QACL,WAAW,EAAE,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe;QAC/E,UAAU,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,UAAU;KAC/E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAoB,EACpB,IAAiC,EACjC,IAAiB;IAEjB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAwB,EAAE,GAAQ;IAClE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG;QACH,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAA4B,EAC5B,IAAiB;IAEjB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAA6C,EAC7C,MAA8C;IAE9C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAiB,EAAE,MAAe;IACjE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-evaluator.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/override-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAiBT"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { conditionMatches } from './helpers.js';
|
|
2
|
+
export function doesOverrideApply(override, context) {
|
|
3
|
+
const conditions = override.when.value;
|
|
4
|
+
let recognized = false;
|
|
5
|
+
for (const [key, expected] of Object.entries(conditions)) {
|
|
6
|
+
if (!context.has(key)) {
|
|
7
|
+
continue;
|
|
8
|
+
}
|
|
9
|
+
recognized = true;
|
|
10
|
+
const actual = context.get(key);
|
|
11
|
+
if (!conditionMatches(expected, actual)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return recognized;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=override-evaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-evaluator.js","sourceRoot":"","sources":["../../../src/resolver/internal/override-evaluator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,UAAU,iBAAiB,CAC/B,QAA2B,EAC3B,OAAqC;IAErC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IACvC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QAED,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution-key.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/resolution-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAE1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution-key.js","sourceRoot":"","sources":["../../../src/resolver/internal/resolution-key.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,GAAQ,EAAE,OAAoB;IAChE,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DiagnosticEvent } from '../../domain/models.js';
|
|
2
|
+
import type { JsonPointer } from '../../domain/primitives.js';
|
|
3
|
+
import type { AppliedOverride, ResolutionSource, ResolutionTraceStep } from '../types.js';
|
|
4
|
+
export interface ResolutionState {
|
|
5
|
+
readonly pointer: JsonPointer;
|
|
6
|
+
readonly type?: string;
|
|
7
|
+
readonly value?: unknown;
|
|
8
|
+
readonly source?: ResolutionSource;
|
|
9
|
+
readonly overrides: readonly AppliedOverride[];
|
|
10
|
+
readonly warnings: readonly DiagnosticEvent[];
|
|
11
|
+
readonly trace: readonly ResolutionTraceStep[];
|
|
12
|
+
}
|
|
13
|
+
export interface OverrideEvaluation {
|
|
14
|
+
readonly matched: boolean;
|
|
15
|
+
readonly state?: OverrideState;
|
|
16
|
+
readonly diagnostics: readonly DiagnosticEvent[];
|
|
17
|
+
}
|
|
18
|
+
export interface OverrideState {
|
|
19
|
+
readonly type?: string;
|
|
20
|
+
readonly value?: unknown;
|
|
21
|
+
readonly source?: ResolutionSource;
|
|
22
|
+
readonly overrides: readonly AppliedOverride[];
|
|
23
|
+
readonly warnings: readonly DiagnosticEvent[];
|
|
24
|
+
readonly trace: readonly ResolutionTraceStep[];
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/resolver/internal/state.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DecodedDocument } from '../../domain/models.js';
|
|
2
|
+
import type { ResolvedTokenTransformEntry, ResolvedTokenTransformEvaluation } from '../../plugins/types.js';
|
|
3
|
+
import type { ResolvedToken } from '../types.js';
|
|
4
|
+
import type { DiagnosticCollector } from './diagnostics.js';
|
|
5
|
+
export declare function runTokenTransforms(token: ResolvedToken, transforms: readonly ResolvedTokenTransformEntry[], document: DecodedDocument | undefined, diagnostics: DiagnosticCollector): readonly ResolvedTokenTransformEvaluation[];
|
|
6
|
+
//# sourceMappingURL=transform-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-runner.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/transform-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EACV,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,wBAAwB,CAAC;AAKhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,SAAS,2BAA2B,EAAE,EAClD,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,WAAW,EAAE,mBAAmB,GAC/B,SAAS,gCAAgC,EAAE,CAiC7C"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createTransformFailureDiagnostic, freezeResultDiagnostics } from '../../plugins/transform-utils.js';
|
|
2
|
+
import { EMPTY_TRANSFORM_EVALUATIONS } from './constants.js';
|
|
3
|
+
export function runTokenTransforms(token, transforms, document, diagnostics) {
|
|
4
|
+
if (!document || transforms.length === 0) {
|
|
5
|
+
return EMPTY_TRANSFORM_EVALUATIONS;
|
|
6
|
+
}
|
|
7
|
+
const evaluations = [];
|
|
8
|
+
for (const entry of transforms) {
|
|
9
|
+
try {
|
|
10
|
+
const result = entry.transform(token, { document });
|
|
11
|
+
const transformDiagnostics = freezeResultDiagnostics(result?.diagnostics);
|
|
12
|
+
for (const diagnostic of transformDiagnostics) {
|
|
13
|
+
diagnostics.add(diagnostic);
|
|
14
|
+
}
|
|
15
|
+
evaluations.push(Object.freeze({
|
|
16
|
+
plugin: entry.plugin,
|
|
17
|
+
pointer: token.pointer,
|
|
18
|
+
data: result?.data,
|
|
19
|
+
diagnostics: transformDiagnostics
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
diagnostics.add(createTransformFailureDiagnostic(entry.plugin, token.pointer, error));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (evaluations.length === 0) {
|
|
27
|
+
return EMPTY_TRANSFORM_EVALUATIONS;
|
|
28
|
+
}
|
|
29
|
+
return Object.freeze(evaluations);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=transform-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-runner.js","sourceRoot":"","sources":["../../../src/resolver/internal/transform-runner.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,UAAU,kBAAkB,CAChC,KAAoB,EACpB,UAAkD,EAClD,QAAqC,EACrC,WAAgC;IAEhC,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,MAAM,WAAW,GAAuC,EAAE,CAAC;IAE3D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC1E,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;gBAC9C,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAED,WAAW,CAAC,IAAI,CACd,MAAM,CAAC,MAAM,CAAC;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,MAAM,EAAE,IAAI;gBAClB,WAAW,EAAE,oBAAoB;aAClC,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,GAAG,CAAC,gCAAgC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-compatibility.d.ts","sourceRoot":"","sources":["../../../src/resolver/internal/type-compatibility.ts"],"names":[],"mappings":"AAmBA,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAS3F"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createDtifValidator } from '@lapidist/dtif-validator';
|
|
2
|
+
const tokenValidator = createTokenValidator();
|
|
3
|
+
function createTokenValidator() {
|
|
4
|
+
const { ajv, schemaId } = createDtifValidator();
|
|
5
|
+
const tokenSchemaRef = `${schemaId}#/$defs/token`;
|
|
6
|
+
const existing = ajv.getSchema(tokenSchemaRef);
|
|
7
|
+
if (existing) {
|
|
8
|
+
return (value) => toSynchronousResult(existing(value));
|
|
9
|
+
}
|
|
10
|
+
const compiled = ajv.compile({ $ref: tokenSchemaRef });
|
|
11
|
+
return (value) => toSynchronousResult(compiled(value));
|
|
12
|
+
}
|
|
13
|
+
export function isOverrideValueCompatible(type, value) {
|
|
14
|
+
if (!type) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
return tokenValidator({
|
|
18
|
+
$type: type,
|
|
19
|
+
$value: value
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function toSynchronousResult(result) {
|
|
23
|
+
return typeof result === 'boolean' ? result : false;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=type-compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-compatibility.js","sourceRoot":"","sources":["../../../src/resolver/internal/type-compatibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAE9C,SAAS,oBAAoB;IAC3B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAChD,MAAM,cAAc,GAAG,GAAG,QAAQ,eAAe,CAAC;IAElD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC/C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAwB,EAAE,KAAc;IAChF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,cAAc,CAAC;QACpB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAkC;IAC7D,OAAO,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACtD,CAAC"}
|
package/dist/resolver/types.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import type { DecodedDocument, DiagnosticEvent } from '../domain/models.js';
|
|
2
2
|
import type { JsonPointer, SourceSpan } from '../domain/primitives.js';
|
|
3
|
-
import type { ResolvedTokenTransformEntry, ResolvedTokenTransformEvaluation } from '../plugins/
|
|
3
|
+
import type { ResolvedTokenTransformEntry, ResolvedTokenTransformEvaluation } from '../plugins/types.js';
|
|
4
4
|
import type { GraphOverrideNode } from '../graph/nodes.js';
|
|
5
|
+
import type { DocumentGraph } from '../graph/nodes.js';
|
|
6
|
+
export type ExternalGraphInput = ReadonlyMap<string | URL, DocumentGraph> | Readonly<Record<string, DocumentGraph>>;
|
|
5
7
|
export interface DocumentResolverOptions {
|
|
6
8
|
readonly context?: ReadonlyMap<string, unknown> | Readonly<Record<string, unknown>>;
|
|
7
9
|
readonly maxDepth?: number;
|
|
8
10
|
readonly document?: DecodedDocument;
|
|
9
11
|
readonly transforms?: readonly ResolvedTokenTransformEntry[];
|
|
12
|
+
readonly externalGraphs?: ExternalGraphInput;
|
|
13
|
+
readonly allowNetworkReferences?: boolean;
|
|
10
14
|
}
|
|
11
15
|
export interface ResolutionSource {
|
|
12
16
|
readonly uri: URL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolver/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EACV,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolver/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type DocumentLoader } from '../io/document-loader.js';
|
|
2
|
+
import { PluginRegistry } from '../plugins/index.js';
|
|
3
|
+
import { SchemaGuard } from '../validation/schema-guard.js';
|
|
4
|
+
import type { DocumentCachePort } from '../domain/ports.js';
|
|
5
|
+
import type { ParseSessionOptions } from '../config/parse-options.js';
|
|
6
|
+
export interface ResolvedParseSessionOptions {
|
|
7
|
+
readonly loader: DocumentLoader;
|
|
8
|
+
readonly documentCache?: DocumentCachePort;
|
|
9
|
+
readonly allowHttp: boolean;
|
|
10
|
+
readonly maxDepth: number;
|
|
11
|
+
readonly overrideContext: ReadonlyMap<string, unknown>;
|
|
12
|
+
readonly schemaGuard: SchemaGuard;
|
|
13
|
+
readonly plugins?: PluginRegistry;
|
|
14
|
+
}
|
|
15
|
+
export declare function resolveOptions(options?: ParseSessionOptions): ResolvedParseSessionOptions;
|
|
16
|
+
//# sourceMappingURL=resolve-options.d.ts.map
|