@lapidist/dtif-parser 0.5.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -0
- package/README.md +25 -7
- package/dist/adapters/domain/diagnostics.d.ts +7 -0
- package/dist/adapters/domain/diagnostics.d.ts.map +1 -0
- package/dist/adapters/domain/diagnostics.js +30 -0
- package/dist/adapters/domain/diagnostics.js.map +1 -0
- package/dist/adapters/domain/document-source.d.ts +12 -0
- package/dist/adapters/domain/document-source.d.ts.map +1 -0
- package/dist/adapters/domain/document-source.js +96 -0
- package/dist/adapters/domain/document-source.js.map +1 -0
- package/dist/adapters/domain/index.d.ts +8 -0
- package/dist/adapters/domain/index.d.ts.map +1 -0
- package/dist/adapters/domain/index.js +5 -0
- package/dist/adapters/domain/index.js.map +1 -0
- package/dist/adapters/domain/plugins.d.ts +20 -0
- package/dist/adapters/domain/plugins.d.ts.map +1 -0
- package/dist/adapters/domain/plugins.js +99 -0
- package/dist/adapters/domain/plugins.js.map +1 -0
- package/dist/adapters/domain/services.d.ts +82 -0
- package/dist/adapters/domain/services.d.ts.map +1 -0
- package/dist/adapters/domain/services.js +368 -0
- package/dist/adapters/domain/services.js.map +1 -0
- package/dist/adapters/node/token-parser.d.ts +7 -6
- package/dist/adapters/node/token-parser.d.ts.map +1 -1
- package/dist/adapters/node/token-parser.js +4 -4
- package/dist/adapters/node/token-parser.js.map +1 -1
- package/dist/application/factory.d.ts +14 -0
- package/dist/application/factory.d.ts.map +1 -0
- package/dist/application/factory.js +81 -0
- package/dist/application/factory.js.map +1 -0
- package/dist/application/index.d.ts +6 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +4 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/inline.d.ts +6 -0
- package/dist/application/inline.d.ts.map +1 -0
- package/dist/application/inline.js +82 -0
- package/dist/application/inline.js.map +1 -0
- package/dist/application/requests.d.ts +12 -0
- package/dist/application/requests.d.ts.map +1 -0
- package/dist/application/requests.js +82 -0
- package/dist/application/requests.js.map +1 -0
- package/dist/application/use-cases.d.ts +61 -0
- package/dist/application/use-cases.d.ts.map +1 -0
- package/dist/application/use-cases.js +545 -0
- package/dist/application/use-cases.js.map +1 -0
- package/dist/ast/normaliser/context.d.ts +7 -6
- package/dist/ast/normaliser/context.d.ts.map +1 -1
- package/dist/ast/normaliser/context.js +1 -1
- package/dist/ast/normaliser/context.js.map +1 -1
- package/dist/ast/normaliser/document.js +1 -1
- package/dist/ast/normaliser/document.js.map +1 -1
- package/dist/ast/normaliser.d.ts +2 -2
- package/dist/ast/normaliser.d.ts.map +1 -1
- package/dist/ast/normaliser.js.map +1 -1
- package/dist/cli/parse.d.ts.map +1 -1
- package/dist/cli/parse.js +29 -12
- package/dist/cli/parse.js.map +1 -1
- package/dist/cli/serialize.d.ts +3 -4
- package/dist/cli/serialize.d.ts.map +1 -1
- package/dist/cli/serialize.js +19 -5
- package/dist/cli/serialize.js.map +1 -1
- package/dist/diagnostics/format.d.ts +7 -0
- package/dist/diagnostics/format.d.ts.map +1 -0
- package/dist/diagnostics/format.js +94 -0
- package/dist/diagnostics/format.js.map +1 -0
- package/dist/domain/index.d.ts +5 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +5 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/models.d.ts +88 -0
- package/dist/domain/models.d.ts.map +1 -0
- package/dist/domain/models.js +2 -0
- package/dist/domain/models.js.map +1 -0
- package/dist/domain/ports.d.ts +69 -0
- package/dist/domain/ports.d.ts.map +1 -0
- package/dist/domain/ports.js +2 -0
- package/dist/domain/ports.js.map +1 -0
- package/dist/domain/primitives.d.ts +17 -0
- package/dist/domain/primitives.d.ts.map +1 -0
- package/dist/domain/primitives.js +2 -0
- package/dist/domain/primitives.js.map +1 -0
- package/dist/domain/services.d.ts +35 -0
- package/dist/domain/services.d.ts.map +1 -0
- package/dist/domain/services.js +2 -0
- package/dist/domain/services.js.map +1 -0
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/io/decoder.d.ts +3 -2
- package/dist/io/decoder.d.ts.map +1 -1
- package/dist/io/decoder.js +14 -8
- package/dist/io/decoder.js.map +1 -1
- package/dist/io/document-cache.d.ts +3 -2
- package/dist/io/document-cache.d.ts.map +1 -1
- package/dist/io/document-cache.js +8 -5
- package/dist/io/document-cache.js.map +1 -1
- package/dist/plugins/registry.d.ts +3 -2
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js.map +1 -1
- package/dist/plugins/types.d.ts +8 -8
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/resolver/document-resolver.d.ts +1 -1
- package/dist/resolver/document-resolver.d.ts.map +1 -1
- package/dist/resolver/document-resolver.js +22 -30
- package/dist/resolver/document-resolver.js.map +1 -1
- package/dist/resolver/internal/constants.d.ts +3 -3
- package/dist/resolver/internal/constants.d.ts.map +1 -1
- package/dist/resolver/internal/constants.js.map +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/diagnostics.d.ts +8 -0
- package/dist/resolver/internal/diagnostics.d.ts.map +1 -0
- package/dist/resolver/internal/diagnostics.js +21 -0
- package/dist/resolver/internal/diagnostics.js.map +1 -0
- package/dist/resolver/internal/helpers.d.ts +7 -6
- package/dist/resolver/internal/helpers.d.ts.map +1 -1
- package/dist/resolver/internal/helpers.js.map +1 -1
- package/dist/resolver/internal/resolved-token.d.ts +4 -3
- package/dist/resolver/internal/resolved-token.d.ts.map +1 -1
- package/dist/resolver/internal/resolved-token.js.map +1 -1
- package/dist/resolver/types.d.ts +6 -5
- package/dist/resolver/types.d.ts.map +1 -1
- package/dist/session/internal/options.d.ts +2 -2
- package/dist/session/internal/options.d.ts.map +1 -1
- package/dist/session/internal/options.js +1 -1
- package/dist/session/internal/options.js.map +1 -1
- package/dist/session/types.d.ts +2 -2
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session.d.ts +13 -8
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +12 -167
- package/dist/session.js.map +1 -1
- package/dist/tokens/cache.d.ts +24 -20
- package/dist/tokens/cache.d.ts.map +1 -1
- package/dist/tokens/cache.js +25 -24
- package/dist/tokens/cache.js.map +1 -1
- package/dist/tokens/inputs.d.ts +16 -0
- package/dist/tokens/inputs.d.ts.map +1 -0
- package/dist/tokens/inputs.js +180 -0
- package/dist/tokens/inputs.js.map +1 -0
- package/dist/tokens/parse-tokens.d.ts +12 -15
- package/dist/tokens/parse-tokens.d.ts.map +1 -1
- package/dist/tokens/parse-tokens.js +57 -444
- package/dist/tokens/parse-tokens.js.map +1 -1
- package/dist/tokens/snapshots.d.ts +2 -2
- package/dist/tokens/snapshots.d.ts.map +1 -1
- package/dist/tokens/snapshots.js.map +1 -1
- package/dist/tokens/types.d.ts +1 -34
- package/dist/tokens/types.d.ts.map +1 -1
- package/dist/types.d.ts +13 -58
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/bytes.d.ts +2 -0
- package/dist/utils/bytes.d.ts.map +1 -0
- package/dist/utils/bytes.js +15 -0
- package/dist/utils/bytes.js.map +1 -0
- package/dist/validation/schema-guard.d.ts +3 -3
- package/dist/validation/schema-guard.d.ts.map +1 -1
- package/dist/validation/schema-guard.js +1 -1
- package/dist/validation/schema-guard.js.map +1 -1
- package/package.json +3 -3
- package/dist/diagnostics/bag.d.ts +0 -26
- package/dist/diagnostics/bag.d.ts.map +0 -1
- package/dist/diagnostics/bag.js +0 -106
- package/dist/diagnostics/bag.js.map +0 -1
- package/dist/tokens/diagnostics.d.ts +0 -5
- package/dist/tokens/diagnostics.d.ts.map +0 -1
- package/dist/tokens/diagnostics.js +0 -124
- package/dist/tokens/diagnostics.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
# @lapidist/dtif-parser changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`632f48e`](https://github.com/bylapidist/dtif/commit/632f48ed3fa2683e3d4e4808c52d9deaabd38af3)]:
|
|
8
|
+
- @lapidist/dtif-schema@1.0.1
|
|
9
|
+
- @lapidist/dtif-validator@1.0.1
|
|
10
|
+
|
|
11
|
+
## 1.0.0
|
|
12
|
+
|
|
13
|
+
### Major Changes
|
|
14
|
+
|
|
15
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Remove the legacy `DiagnosticBag` helper in favour of working directly with domain `DiagnosticEvent` arrays and update the CLI
|
|
16
|
+
summary utilities accordingly.
|
|
17
|
+
|
|
18
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Replace the legacy document cache interface with the domain-level cache port so session options and helpers consume
|
|
19
|
+
`RawDocumentIdentity` aware caches directly.
|
|
20
|
+
|
|
21
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - - Replace token parsing diagnostics with domain-level `DiagnosticEvent` objects so `parseTokens` and `parseTokensSync` surface the same structured events as `parseDocument`.
|
|
22
|
+
- Remove the token diagnostic helpers in favour of a shared `formatDiagnostic` utility and update the Node adapter to emit domain diagnostics.
|
|
23
|
+
|
|
24
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Rename the session `cache` option to `documentCache` and update token helpers to
|
|
25
|
+
forward document caches through the base session options. Update your
|
|
26
|
+
integrations to pass `documentCache` when supplying custom document caches.
|
|
27
|
+
|
|
28
|
+
### Minor Changes
|
|
29
|
+
|
|
30
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Promote the domain token cache primitives by removing the legacy `ParseCache` adapter, renaming the public API to `TokenCache`,
|
|
31
|
+
and updating the parser documentation to describe the new `tokenCache` option alongside the domain-first plugin infrastructure.
|
|
32
|
+
|
|
33
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Introduce application-layer use cases that orchestrate the new domain services and adapters so synchronous and asynchronous
|
|
34
|
+
pipelines can share the same flow, adopt the document/token orchestration inside the async parseTokens entrypoint, and port
|
|
35
|
+
parseTokensSync onto the same use case with dedicated inline ingestion/decoding adapters to eliminate duplicated parsing
|
|
36
|
+
logic while reshaping token cache key derivation to depend on domain-level configuration instead of resolved session
|
|
37
|
+
options.
|
|
38
|
+
|
|
39
|
+
Centralize token cache variant derivation inside the shared ParseTokens use case so cache keys always reflect the same
|
|
40
|
+
flatten/include configuration regardless of entrypoint.
|
|
41
|
+
|
|
42
|
+
Expose the application-level parse result shape directly from `parseDocument`, `parseCollection`, and the CLI so
|
|
43
|
+
consumers receive domain diagnostics alongside graph/resolution snapshots without the legacy compatibility wrapper.
|
|
44
|
+
|
|
45
|
+
Remove the legacy document compatibility layer so parse sessions and token helpers operate on the domain raw document
|
|
46
|
+
model directly, simplifying caching, diagnostics, and downstream adapters.
|
|
47
|
+
|
|
48
|
+
Retire the CLI diagnostic shim by teaching the command to consume domain diagnostic events directly, allowing the shared
|
|
49
|
+
bag/serialization utilities to operate without converting back to the legacy diagnostic shape.
|
|
50
|
+
|
|
51
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Refine override evaluation to route diagnostics through the shared collector so resolver internals no longer manage ad-hoc arrays.
|
|
52
|
+
|
|
53
|
+
### Patch Changes
|
|
54
|
+
|
|
55
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Fix token flattening generics and inline ingestion utilities so the parser build
|
|
56
|
+
and lint suites succeed under the new domain-first pipeline.
|
|
57
|
+
|
|
58
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - - Preserve token flattener diagnostics in cached snapshots so warm parses continue reporting them.
|
|
59
|
+
|
|
60
|
+
- [#92](https://github.com/bylapidist/dtif/pull/92) [`3bbe4e6`](https://github.com/bylapidist/dtif/commit/3bbe4e65974380b36a90834e79273c815f1f04e8) Thanks [@brettdorrans](https://github.com/brettdorrans)! - - Consolidate document-request normalization behind a shared factory and reuse it across session and token entry points.
|
|
61
|
+
- Move inline document handle and decoder helpers into the application layer so ingestion adapters no longer depend on token utilities.
|
|
62
|
+
- Route the CLI through the shared parse-document use case so it no longer depends on the legacy session orchestration.
|
|
63
|
+
- Updated dependencies []:
|
|
64
|
+
- @lapidist/dtif-schema@1.0.0
|
|
65
|
+
- @lapidist/dtif-validator@1.0.0
|
|
66
|
+
|
|
3
67
|
## 0.5.0
|
|
4
68
|
|
|
5
69
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ package provides the reference pipeline for loading, validating, normalising,
|
|
|
5
5
|
and resolving DTIF documents while emitting structured diagnostics for tooling
|
|
6
6
|
and automation workflows.
|
|
7
7
|
|
|
8
|
-
> Documentation: [Using the DTIF parser](https://dtif.lapidist.net/guides/dtif-parser
|
|
8
|
+
> Documentation: [Using the DTIF parser](https://dtif.lapidist.net/guides/dtif-parser)
|
|
9
9
|
|
|
10
10
|
## Installation
|
|
11
11
|
|
|
@@ -46,7 +46,7 @@ for (const token of flattened) {
|
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Pass `onDiagnostic` to observe parser diagnostics as they are produced and `warn`
|
|
49
|
-
to intercept non-fatal issues. Both callbacks receive `
|
|
49
|
+
to intercept non-fatal issues. Both callbacks receive domain `DiagnosticEvent`
|
|
50
50
|
objects, allowing you to format or surface them immediately without waiting for
|
|
51
51
|
the promise to resolve.
|
|
52
52
|
|
|
@@ -61,14 +61,19 @@ await parseTokens('tokens.json', {
|
|
|
61
61
|
});
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
Provide a `
|
|
65
|
-
`
|
|
64
|
+
Provide a `TokenCache` implementation, such as the built-in
|
|
65
|
+
`InMemoryTokenCache`, to reuse flattening and resolution results across runs or
|
|
66
66
|
for synchronous parsing with `parseTokensSync` when your inputs are already
|
|
67
67
|
available in memory.
|
|
68
68
|
|
|
69
69
|
Create a session with `createSession` to reuse caches, install custom document
|
|
70
70
|
loaders, register plugins, or parse multiple collections with shared state.
|
|
71
71
|
|
|
72
|
+
Each pipeline stage emits domain `DiagnosticEvent` objects instead of throwing.
|
|
73
|
+
Results aggregate every diagnostic (including cache hits) so tooling can stream
|
|
74
|
+
warnings via `onDiagnostic`/`warn` hooks, persist them for later inspection, or
|
|
75
|
+
format them with `formatDiagnostic`.
|
|
76
|
+
|
|
72
77
|
### Node adapter
|
|
73
78
|
|
|
74
79
|
For Node-based tooling, import the bundled adapter to read DTIF token files from
|
|
@@ -90,11 +95,24 @@ try {
|
|
|
90
95
|
const document = await readTokensFile('tokens/base.tokens.json');
|
|
91
96
|
```
|
|
92
97
|
|
|
98
|
+
## Architecture overview
|
|
99
|
+
|
|
100
|
+
- `createSession` coordinates the loader, schema guard, normaliser, graph
|
|
101
|
+
builder, and resolver for each request. Sessions keep caches and plugins in
|
|
102
|
+
sync across parses.
|
|
103
|
+
- Domain caches receive `RawDocumentIdentity` keys and ensure decoded bytes, AST
|
|
104
|
+
snapshots, and flattened token artefacts can be reused safely between runs.
|
|
105
|
+
- Diagnostic events surface from every stage and persist in token cache entries
|
|
106
|
+
so warm parses provide the same visibility as cold runs.
|
|
107
|
+
- Helper APIs (`parseTokens`, `parseTokensSync`, `createMetadataSnapshot`, and
|
|
108
|
+
`createResolutionSnapshot`) layer on snapshot builders without bypassing the
|
|
109
|
+
session lifecycle.
|
|
110
|
+
|
|
93
111
|
## Development
|
|
94
112
|
|
|
95
|
-
- [Parser
|
|
96
|
-
module layout, session lifecycle, and testing
|
|
97
|
-
roadmap work will build upon.
|
|
113
|
+
- [Parser guide architecture section](../docs/guides/dtif-parser.md#package-architecture)
|
|
114
|
+
documents the current module layout, session lifecycle, and testing
|
|
115
|
+
conventions that future roadmap work will build upon.
|
|
98
116
|
|
|
99
117
|
## Command line interface
|
|
100
118
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DiagnosticEvent, PipelineDiagnostics } from '../../domain/models.js';
|
|
2
|
+
export declare const EMPTY_PIPELINE_DIAGNOSTICS: PipelineDiagnostics;
|
|
3
|
+
export declare function toPipelineDiagnostics(diagnostics: readonly DiagnosticEvent[]): PipelineDiagnostics;
|
|
4
|
+
export declare const toDomainDiagnostic: typeof freezeDiagnosticEvent;
|
|
5
|
+
declare function freezeDiagnosticEvent(diagnostic: DiagnosticEvent): DiagnosticEvent;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/adapters/domain/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAEf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,0BAA0B,EAAE,mBAEvC,CAAC;AAEH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,SAAS,eAAe,EAAE,GACtC,mBAAmB,CAQrB;AAED,eAAO,MAAM,kBAAkB,8BAAwB,CAAC;AAoBxD,iBAAS,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,eAAe,CAO3E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export const EMPTY_PIPELINE_DIAGNOSTICS = Object.freeze({
|
|
2
|
+
events: Object.freeze([])
|
|
3
|
+
});
|
|
4
|
+
export function toPipelineDiagnostics(diagnostics) {
|
|
5
|
+
if (diagnostics.length === 0) {
|
|
6
|
+
return EMPTY_PIPELINE_DIAGNOSTICS;
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
events: Object.freeze(diagnostics.map(freezeDiagnosticEvent))
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export const toDomainDiagnostic = freezeDiagnosticEvent;
|
|
13
|
+
function freezeRelated(related) {
|
|
14
|
+
if (related.length === 0) {
|
|
15
|
+
return Object.freeze([]);
|
|
16
|
+
}
|
|
17
|
+
return Object.freeze(related.map((info) => Object.freeze({
|
|
18
|
+
message: info.message,
|
|
19
|
+
pointer: info.pointer,
|
|
20
|
+
span: info.span
|
|
21
|
+
})));
|
|
22
|
+
}
|
|
23
|
+
function freezeDiagnosticEvent(diagnostic) {
|
|
24
|
+
const related = diagnostic.related ? freezeRelated(diagnostic.related) : undefined;
|
|
25
|
+
return Object.freeze({
|
|
26
|
+
...diagnostic,
|
|
27
|
+
related
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/adapters/domain/diagnostics.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,0BAA0B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC3E,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,UAAU,qBAAqB,CACnC,WAAuC;IAEvC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;KAChC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAExD,SAAS,aAAa,CACpB,OAAqD;IAErD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAClB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACnB,MAAM,CAAC,MAAM,CAAC;QACZ,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,UAA2B;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,UAAU;QACb,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RawDocument } from '../../domain/models.js';
|
|
2
|
+
import type { DocumentRequest, DocumentSourcePort } from '../../domain/ports.js';
|
|
3
|
+
import type { DocumentLoader, DocumentLoaderContext } from '../../io/document-loader.js';
|
|
4
|
+
export interface DocumentLoaderSourceOptions {
|
|
5
|
+
readonly context?: DocumentLoaderContext;
|
|
6
|
+
}
|
|
7
|
+
export declare class DocumentLoaderSource implements DocumentSourcePort {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(loader: DocumentLoader, options?: DocumentLoaderSourceOptions);
|
|
10
|
+
load(request: DocumentRequest): Promise<RawDocument>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=document-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-source.d.ts","sourceRoot":"","sources":["../../../src/adapters/domain/document-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAQzF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,qBAAa,oBAAqB,YAAW,kBAAkB;;gBAIjD,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,2BAAgC;IAKvE,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CAkC3D"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export class DocumentLoaderSource {
|
|
2
|
+
#loader;
|
|
3
|
+
#context;
|
|
4
|
+
constructor(loader, options = {}) {
|
|
5
|
+
this.#loader = loader;
|
|
6
|
+
this.#context = options.context;
|
|
7
|
+
}
|
|
8
|
+
async load(request) {
|
|
9
|
+
const input = toParseInput(request);
|
|
10
|
+
const context = this.#mergeContext(request);
|
|
11
|
+
const handle = await this.#loader.load(input, context);
|
|
12
|
+
return {
|
|
13
|
+
identity: {
|
|
14
|
+
uri: handle.uri,
|
|
15
|
+
contentType: handle.contentType,
|
|
16
|
+
description: request.description
|
|
17
|
+
},
|
|
18
|
+
bytes: handle.bytes,
|
|
19
|
+
text: handle.text,
|
|
20
|
+
data: handle.data
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
#mergeContext(request) {
|
|
24
|
+
if (!request.baseUri && !request.signal) {
|
|
25
|
+
return this.#context;
|
|
26
|
+
}
|
|
27
|
+
if (!this.#context) {
|
|
28
|
+
return {
|
|
29
|
+
baseUri: request.baseUri,
|
|
30
|
+
signal: request.signal
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
baseUri: request.baseUri ?? this.#context.baseUri,
|
|
35
|
+
signal: request.signal ?? this.#context.signal
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function toParseInput(request) {
|
|
40
|
+
if (request.inlineData !== undefined) {
|
|
41
|
+
return toDataRecord(request);
|
|
42
|
+
}
|
|
43
|
+
if (request.inlineContent !== undefined) {
|
|
44
|
+
return toContentRecord(request);
|
|
45
|
+
}
|
|
46
|
+
if (request.uri !== undefined) {
|
|
47
|
+
return request.uri;
|
|
48
|
+
}
|
|
49
|
+
throw new Error('Document request must provide a URI, inline content, or inline data.');
|
|
50
|
+
}
|
|
51
|
+
function toDataRecord(request) {
|
|
52
|
+
const { inlineData } = request;
|
|
53
|
+
assertDesignTokenDocument(inlineData);
|
|
54
|
+
return {
|
|
55
|
+
uri: request.uri,
|
|
56
|
+
data: inlineData,
|
|
57
|
+
contentType: normalizeContentType(request.contentTypeHint)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function toContentRecord(request) {
|
|
61
|
+
const { inlineContent } = request;
|
|
62
|
+
if (inlineContent === undefined) {
|
|
63
|
+
throw new TypeError('Inline content must be provided when no URI is supplied.');
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
uri: request.uri,
|
|
67
|
+
content: inlineContent,
|
|
68
|
+
contentType: normalizeContentType(request.contentTypeHint)
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function normalizeContentType(value) {
|
|
72
|
+
if (typeof value !== 'string') {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const normalized = value.toLowerCase();
|
|
76
|
+
return isContentType(normalized) ? normalized : undefined;
|
|
77
|
+
}
|
|
78
|
+
function isContentType(value) {
|
|
79
|
+
return value === 'application/json' || value === 'application/yaml';
|
|
80
|
+
}
|
|
81
|
+
function assertDesignTokenDocument(value) {
|
|
82
|
+
if (!isDesignTokenDocument(value)) {
|
|
83
|
+
throw new TypeError('Inline data must be a design token document.');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function isDesignTokenDocument(value) {
|
|
87
|
+
if (!value || typeof value !== 'object') {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
if (value instanceof URL || value instanceof Uint8Array) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
const prototype = Reflect.getPrototypeOf(value);
|
|
94
|
+
return prototype === Object.prototype || prototype === null;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=document-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-source.js","sourceRoot":"","sources":["../../../src/adapters/domain/document-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { DocumentLoaderSource } from './document-source.js';
|
|
2
|
+
export type { DocumentLoaderSourceOptions } from './document-source.js';
|
|
3
|
+
export { PluginExtensionCollectorAdapter, PluginTransformExecutorAdapter } from './plugins.js';
|
|
4
|
+
export type { PluginExtensionCollectorContext, PluginExtensionCollectorResult, PluginTransformExecutionContext, PluginTransformExecutionResult } from './plugins.js';
|
|
5
|
+
export { DocumentIngestionAdapter, DocumentDecodingAdapter, InlineDocumentIngestionAdapter, InlineDocumentDecodingAdapter, SchemaValidationAdapter, DocumentNormalizationAdapter, GraphConstructionAdapter, ResolutionAdapter, TokenFlatteningAdapter } from './services.js';
|
|
6
|
+
export type { DocumentDecodingAdapterOptions, DocumentNormalizationAdapterOptions, ResolutionAdapterOptions, TokenFlatteningAdapterOptions } from './services.js';
|
|
7
|
+
export { EMPTY_PIPELINE_DIAGNOSTICS, toDomainDiagnostic, toPipelineDiagnostics } from './diagnostics.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC/F,YAAY,EACV,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,8BAA8B,EAC9B,mCAAmC,EACnC,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { DocumentLoaderSource } from './document-source.js';
|
|
2
|
+
export { PluginExtensionCollectorAdapter, PluginTransformExecutorAdapter } from './plugins.js';
|
|
3
|
+
export { DocumentIngestionAdapter, DocumentDecodingAdapter, InlineDocumentIngestionAdapter, InlineDocumentDecodingAdapter, SchemaValidationAdapter, DocumentNormalizationAdapter, GraphConstructionAdapter, ResolutionAdapter, TokenFlatteningAdapter } from './services.js';
|
|
4
|
+
export { EMPTY_PIPELINE_DIAGNOSTICS, toDomainDiagnostic, toPipelineDiagnostics } from './diagnostics.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAO/F,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAOvB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ExtensionCollectionContext, ExtensionEvaluationSnapshot, PipelineResult, TokenTransformEvaluationSnapshot, TransformExecutionContext } from '../../domain/models.js';
|
|
2
|
+
import type { ExtensionCollectorPort, TransformExecutorPort } from '../../domain/ports.js';
|
|
3
|
+
import type { PluginRegistry } from '../../plugins/index.js';
|
|
4
|
+
import type { ResolvedTokenTransformEntry } from '../../plugins/registry.js';
|
|
5
|
+
import type { ResolvedToken } from '../../resolver/types.js';
|
|
6
|
+
export type PluginExtensionCollectorContext = ExtensionCollectionContext;
|
|
7
|
+
export type PluginExtensionCollectorResult = PipelineResult<readonly ExtensionEvaluationSnapshot[]>;
|
|
8
|
+
export type PluginTransformExecutionContext = TransformExecutionContext<ResolvedToken>;
|
|
9
|
+
export type PluginTransformExecutionResult = PipelineResult<readonly TokenTransformEvaluationSnapshot[]>;
|
|
10
|
+
export declare class PluginExtensionCollectorAdapter implements ExtensionCollectorPort<PluginExtensionCollectorContext, PluginExtensionCollectorResult> {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(registry: PluginRegistry);
|
|
13
|
+
collect(context: PluginExtensionCollectorContext): PluginExtensionCollectorResult;
|
|
14
|
+
}
|
|
15
|
+
export declare class PluginTransformExecutorAdapter implements TransformExecutorPort<PluginTransformExecutionContext, PluginTransformExecutionResult> {
|
|
16
|
+
#private;
|
|
17
|
+
constructor(transforms: readonly ResolvedTokenTransformEntry[]);
|
|
18
|
+
execute(context: PluginTransformExecutionContext): PluginTransformExecutionResult;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/adapters/domain/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,2BAA2B,EAC3B,cAAc,EACd,gCAAgC,EAChC,yBAAyB,EAE1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAsB,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAKjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAO7D,MAAM,MAAM,+BAA+B,GAAG,0BAA0B,CAAC;AAEzE,MAAM,MAAM,8BAA8B,GAAG,cAAc,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAAC;AAEpG,MAAM,MAAM,+BAA+B,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC;AAEvF,MAAM,MAAM,8BAA8B,GAAG,cAAc,CACzD,SAAS,gCAAgC,EAAE,CAC5C,CAAC;AAKF,qBAAa,+BACX,YAAW,sBAAsB,CAAC,+BAA+B,EAAE,8BAA8B,CAAC;;gBAItF,QAAQ,EAAE,cAAc;IAIpC,OAAO,CAAC,OAAO,EAAE,+BAA+B,GAAG,8BAA8B;CA8DlF;AAED,qBAAa,8BACX,YAAW,qBAAqB,CAAC,+BAA+B,EAAE,8BAA8B,CAAC;;gBAIrF,UAAU,EAAE,SAAS,2BAA2B,EAAE;IAI9D,OAAO,CAAC,OAAO,EAAE,+BAA+B,GAAG,8BAA8B;CAgDlF"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { createTransformFailureDiagnostic, freezeResultDiagnostics } from '../../resolver/internal/helpers.js';
|
|
2
|
+
import { EMPTY_PIPELINE_DIAGNOSTICS, toDomainDiagnostic, toPipelineDiagnostics } from './diagnostics.js';
|
|
3
|
+
const EMPTY_EXTENSION_RESULTS = Object.freeze([]);
|
|
4
|
+
const EMPTY_TRANSFORM_RESULTS = Object.freeze([]);
|
|
5
|
+
export class PluginExtensionCollectorAdapter {
|
|
6
|
+
#registry;
|
|
7
|
+
constructor(registry) {
|
|
8
|
+
this.#registry = registry;
|
|
9
|
+
}
|
|
10
|
+
collect(context) {
|
|
11
|
+
const diagnostics = [];
|
|
12
|
+
const collector = this.#createCollector(context.document, diagnostics);
|
|
13
|
+
if (!collector || context.invocations.length === 0) {
|
|
14
|
+
return {
|
|
15
|
+
outcome: EMPTY_EXTENSION_RESULTS,
|
|
16
|
+
diagnostics: diagnostics.length === 0 ? EMPTY_PIPELINE_DIAGNOSTICS : toPipelineDiagnostics(diagnostics)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
for (const invocation of context.invocations) {
|
|
20
|
+
collector.handle({
|
|
21
|
+
namespace: invocation.namespace,
|
|
22
|
+
pointer: invocation.pointer,
|
|
23
|
+
span: invocation.span,
|
|
24
|
+
value: invocation.value
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const evaluations = collector.results();
|
|
28
|
+
if (evaluations.length === 0) {
|
|
29
|
+
return {
|
|
30
|
+
outcome: EMPTY_EXTENSION_RESULTS,
|
|
31
|
+
diagnostics: diagnostics.length === 0 ? EMPTY_PIPELINE_DIAGNOSTICS : toPipelineDiagnostics(diagnostics)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const snapshots = evaluations.map((evaluation) => {
|
|
35
|
+
const diagnosticsSnapshot = evaluation.diagnostics.length === 0
|
|
36
|
+
? Object.freeze([])
|
|
37
|
+
: Object.freeze(evaluation.diagnostics.map(toDomainDiagnostic));
|
|
38
|
+
const snapshot = Object.freeze({
|
|
39
|
+
plugin: evaluation.plugin,
|
|
40
|
+
namespace: evaluation.namespace,
|
|
41
|
+
pointer: evaluation.pointer,
|
|
42
|
+
span: evaluation.span,
|
|
43
|
+
value: evaluation.value,
|
|
44
|
+
normalized: evaluation.normalized,
|
|
45
|
+
diagnostics: diagnosticsSnapshot
|
|
46
|
+
});
|
|
47
|
+
return snapshot;
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
outcome: Object.freeze(snapshots),
|
|
51
|
+
diagnostics: diagnostics.length === 0 ? EMPTY_PIPELINE_DIAGNOSTICS : toPipelineDiagnostics(diagnostics)
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
#createCollector(document, diagnostics) {
|
|
55
|
+
return this.#registry.createExtensionCollector(document, diagnostics);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export class PluginTransformExecutorAdapter {
|
|
59
|
+
#transforms;
|
|
60
|
+
constructor(transforms) {
|
|
61
|
+
this.#transforms = transforms;
|
|
62
|
+
}
|
|
63
|
+
execute(context) {
|
|
64
|
+
if (this.#transforms.length === 0) {
|
|
65
|
+
return { outcome: EMPTY_TRANSFORM_RESULTS, diagnostics: EMPTY_PIPELINE_DIAGNOSTICS };
|
|
66
|
+
}
|
|
67
|
+
const diagnostics = [];
|
|
68
|
+
const snapshots = [];
|
|
69
|
+
for (const entry of this.#transforms) {
|
|
70
|
+
try {
|
|
71
|
+
const result = entry.transform(context.token, { document: context.document });
|
|
72
|
+
const transformDiagnostics = freezeResultDiagnostics(result?.diagnostics);
|
|
73
|
+
if (transformDiagnostics.length > 0) {
|
|
74
|
+
diagnostics.push(...transformDiagnostics);
|
|
75
|
+
}
|
|
76
|
+
const evaluationDiagnostics = transformDiagnostics.length === 0
|
|
77
|
+
? Object.freeze([])
|
|
78
|
+
: Object.freeze(transformDiagnostics.map(toDomainDiagnostic));
|
|
79
|
+
const evaluation = Object.freeze({
|
|
80
|
+
plugin: entry.plugin,
|
|
81
|
+
pointer: context.token.pointer,
|
|
82
|
+
data: result?.data,
|
|
83
|
+
diagnostics: evaluationDiagnostics
|
|
84
|
+
});
|
|
85
|
+
snapshots.push(evaluation);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
const diagnostic = createTransformFailureDiagnostic(entry.plugin, context.token.pointer, error);
|
|
89
|
+
diagnostics.push(diagnostic);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const outcome = snapshots.length === 0 ? EMPTY_TRANSFORM_RESULTS : Object.freeze(snapshots.slice());
|
|
93
|
+
return {
|
|
94
|
+
outcome,
|
|
95
|
+
diagnostics: diagnostics.length === 0 ? EMPTY_PIPELINE_DIAGNOSTICS : toPipelineDiagnostics(diagnostics)
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/adapters/domain/plugins.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAY1B,MAAM,uBAAuB,GAA2C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1F,MAAM,uBAAuB,GAAgD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE/F,MAAM,OAAO,+BAA+B;IAGjC,SAAS,CAAiB;IAEnC,YAAY,QAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,OAAwC;QAC9C,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEvE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE,uBAAuB;gBAChC,WAAW,EACT,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC;aACpD,CAAC;QAC7C,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,SAAS,CAAC,MAAM,CAAC;gBACf,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;aACxB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,uBAAuB;gBAChC,WAAW,EACT,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC;aACpD,CAAC;QAC7C,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,MAAM,mBAAmB,GACvB,UAAU,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;gBACjC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAEpE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,WAAW,EAAE,mBAAmB;aACjC,CAAuC,CAAC;YAEzC,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACjC,WAAW,EACT,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC;SACpD,CAAC;IAC7C,CAAC;IAED,gBAAgB,CACd,QAAqD,EACrD,WAA8B;QAE9B,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;CACF;AAED,MAAM,OAAO,8BAA8B;IAGhC,WAAW,CAAyC;IAE7D,YAAY,UAAkD;QAC5D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAwC;QAC9C,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;QACvF,CAAC;QAED,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAuC,EAAE,CAAC;QAEzD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9E,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC1E,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,WAAW,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,qBAAqB,GACzB,oBAAoB,CAAC,MAAM,KAAK,CAAC;oBAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAElE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC9B,IAAI,EAAE,MAAM,EAAE,IAAI;oBAClB,WAAW,EAAE,qBAAqB;iBACnC,CAA4C,CAAC;gBAE9C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,gCAAgC,CACjD,KAAK,CAAC,MAAM,EACZ,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,KAAK,CACN,CAAC;gBACF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GACX,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QAEtF,OAAO;YACL,OAAO;YACP,WAAW,EACT,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC;SACpD,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { createDocumentResolver } from '../../resolver/index.js';
|
|
2
|
+
import { decodeDocument } from '../../io/decoder.js';
|
|
3
|
+
import type { SchemaGuard } from '../../validation/schema-guard.js';
|
|
4
|
+
import type { ResolvedTokenTransformEntry } from '../../plugins/registry.js';
|
|
5
|
+
import type { PluginRegistry } from '../../plugins/index.js';
|
|
6
|
+
import { flattenTokens } from '../../tokens/flatten.js';
|
|
7
|
+
import { createMetadataSnapshot, createResolutionSnapshot } from '../../tokens/snapshots.js';
|
|
8
|
+
import type { TokenCacheSnapshot } from '../../tokens/cache.js';
|
|
9
|
+
import type { InlineDocumentRequestInput } from '../../application/requests.js';
|
|
10
|
+
import type { DecodedDocument, GraphSnapshot, NormalizedDocument, PipelineResult, RawDocument, ResolutionOutcome, TokenSnapshot } from '../../domain/models.js';
|
|
11
|
+
import type { DocumentDecodingService, DocumentIngestionService, DocumentNormalizationService, GraphConstructionService, ResolutionContext, ResolutionService, SchemaValidationService, TokenFlatteningService } from '../../domain/services.js';
|
|
12
|
+
import type { DocumentRequest, DocumentSourcePort, GraphBuilderPort, NormalizationPort, ResolutionPort, SchemaValidationPort, TokenFlatteningPort, TokenFlatteningRequest } from '../../domain/ports.js';
|
|
13
|
+
import type { DocumentAst } from '../../ast/nodes.js';
|
|
14
|
+
import type { DocumentGraph } from '../../graph/nodes.js';
|
|
15
|
+
export declare class DocumentIngestionAdapter implements DocumentIngestionService {
|
|
16
|
+
readonly source: DocumentSourcePort;
|
|
17
|
+
constructor(source: DocumentSourcePort);
|
|
18
|
+
ingest(request: DocumentRequest): Promise<PipelineResult<RawDocument | undefined>>;
|
|
19
|
+
}
|
|
20
|
+
export declare class InlineDocumentIngestionAdapter implements DocumentIngestionService {
|
|
21
|
+
#private;
|
|
22
|
+
readonly source: DocumentSourcePort;
|
|
23
|
+
constructor(input: InlineDocumentRequestInput);
|
|
24
|
+
ingest(request: DocumentRequest): PipelineResult<RawDocument | undefined>;
|
|
25
|
+
}
|
|
26
|
+
export interface DocumentDecodingAdapterOptions {
|
|
27
|
+
readonly decode?: typeof decodeDocument;
|
|
28
|
+
}
|
|
29
|
+
export declare class DocumentDecodingAdapter implements DocumentDecodingService {
|
|
30
|
+
#private;
|
|
31
|
+
constructor(options?: DocumentDecodingAdapterOptions);
|
|
32
|
+
decode(document: RawDocument): Promise<PipelineResult<DecodedDocument | undefined>>;
|
|
33
|
+
}
|
|
34
|
+
export declare class InlineDocumentDecodingAdapter implements DocumentDecodingService {
|
|
35
|
+
decode(document: RawDocument): PipelineResult<DecodedDocument | undefined>;
|
|
36
|
+
}
|
|
37
|
+
export declare class SchemaValidationAdapter implements SchemaValidationService {
|
|
38
|
+
#private;
|
|
39
|
+
readonly validator: SchemaValidationPort;
|
|
40
|
+
constructor(guard: SchemaGuard);
|
|
41
|
+
validate(document: DecodedDocument): PipelineResult<boolean>;
|
|
42
|
+
}
|
|
43
|
+
export interface DocumentNormalizationAdapterOptions {
|
|
44
|
+
readonly normalizer?: NormalizationPort<DocumentAst>;
|
|
45
|
+
readonly extensions?: PluginRegistry;
|
|
46
|
+
}
|
|
47
|
+
export declare class DocumentNormalizationAdapter implements DocumentNormalizationService<DocumentAst> {
|
|
48
|
+
readonly normalizer: NormalizationPort<DocumentAst>;
|
|
49
|
+
constructor(options?: DocumentNormalizationAdapterOptions);
|
|
50
|
+
normalize(document: DecodedDocument): Promise<PipelineResult<NormalizedDocument<DocumentAst> | undefined>> | PipelineResult<NormalizedDocument<DocumentAst> | undefined>;
|
|
51
|
+
}
|
|
52
|
+
export declare class GraphConstructionAdapter implements GraphConstructionService<DocumentGraph, DocumentAst> {
|
|
53
|
+
readonly builder: GraphBuilderPort<DocumentGraph, DocumentAst>;
|
|
54
|
+
constructor(builder?: GraphBuilderPort<DocumentGraph, DocumentAst>);
|
|
55
|
+
build(document: NormalizedDocument<DocumentAst>): Promise<PipelineResult<GraphSnapshot<DocumentGraph> | undefined>> | PipelineResult<GraphSnapshot<DocumentGraph> | undefined>;
|
|
56
|
+
}
|
|
57
|
+
export interface ResolutionAdapterOptions {
|
|
58
|
+
readonly overrideContext?: ReadonlyMap<string, unknown>;
|
|
59
|
+
readonly maxDepth?: number;
|
|
60
|
+
readonly transforms?: readonly ResolvedTokenTransformEntry[];
|
|
61
|
+
}
|
|
62
|
+
type ResolverInstance = ReturnType<typeof createDocumentResolver>;
|
|
63
|
+
export declare class ResolutionAdapter implements ResolutionService<DocumentGraph, ResolverInstance, DocumentAst> {
|
|
64
|
+
#private;
|
|
65
|
+
readonly resolver: ResolutionPort<DocumentGraph, ResolverInstance, DocumentAst>;
|
|
66
|
+
constructor(options?: ResolutionAdapterOptions);
|
|
67
|
+
resolve(graph: GraphSnapshot<DocumentGraph>, context: ResolutionContext<DocumentAst>): PipelineResult<ResolutionOutcome<ResolverInstance> | undefined>;
|
|
68
|
+
}
|
|
69
|
+
export interface TokenFlatteningAdapterOptions {
|
|
70
|
+
readonly metadataSnapshot?: typeof createMetadataSnapshot;
|
|
71
|
+
readonly resolutionSnapshot?: typeof createResolutionSnapshot;
|
|
72
|
+
readonly flattenTokens?: typeof flattenTokens;
|
|
73
|
+
readonly clock?: () => number;
|
|
74
|
+
}
|
|
75
|
+
export declare class TokenFlatteningAdapter implements TokenFlatteningService<ResolverInstance, DocumentGraph, TokenCacheSnapshot> {
|
|
76
|
+
#private;
|
|
77
|
+
readonly flattener: TokenFlatteningPort<ResolverInstance, DocumentGraph, TokenCacheSnapshot>;
|
|
78
|
+
constructor(options?: TokenFlatteningAdapterOptions);
|
|
79
|
+
flatten(request: TokenFlatteningRequest<DocumentGraph, ResolverInstance>): PipelineResult<TokenSnapshot<TokenCacheSnapshot> | undefined>;
|
|
80
|
+
}
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/adapters/domain/services.ts"],"names":[],"mappings":"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"}
|