@lapidist/dtif-parser 0.2.0 → 0.3.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +62 -0
  3. package/dist/adapters/node/index.d.ts +3 -0
  4. package/dist/adapters/node/index.d.ts.map +1 -0
  5. package/dist/adapters/node/index.js +2 -0
  6. package/dist/adapters/node/index.js.map +1 -0
  7. package/dist/adapters/node/token-parser.d.ts +17 -0
  8. package/dist/adapters/node/token-parser.d.ts.map +1 -0
  9. package/dist/adapters/node/token-parser.js +83 -0
  10. package/dist/adapters/node/token-parser.js.map +1 -0
  11. package/dist/index.d.ts +11 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +6 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/io/decoder/synthetic-source-map.d.ts +3 -0
  16. package/dist/io/decoder/synthetic-source-map.d.ts.map +1 -0
  17. package/dist/io/decoder/synthetic-source-map.js +31 -0
  18. package/dist/io/decoder/synthetic-source-map.js.map +1 -0
  19. package/dist/io/decoder.d.ts.map +1 -1
  20. package/dist/io/decoder.js +31 -0
  21. package/dist/io/decoder.js.map +1 -1
  22. package/dist/io/document-loader.d.ts.map +1 -1
  23. package/dist/io/document-loader.js +62 -7
  24. package/dist/io/document-loader.js.map +1 -1
  25. package/dist/tokens/cache.d.ts +38 -0
  26. package/dist/tokens/cache.d.ts.map +1 -0
  27. package/dist/tokens/cache.js +107 -0
  28. package/dist/tokens/cache.js.map +1 -0
  29. package/dist/tokens/diagnostics.d.ts +5 -0
  30. package/dist/tokens/diagnostics.d.ts.map +1 -0
  31. package/dist/tokens/diagnostics.js +122 -0
  32. package/dist/tokens/diagnostics.js.map +1 -0
  33. package/dist/tokens/flatten.d.ts +4 -0
  34. package/dist/tokens/flatten.d.ts.map +1 -0
  35. package/dist/tokens/flatten.js +26 -0
  36. package/dist/tokens/flatten.js.map +1 -0
  37. package/dist/tokens/internal/graph.d.ts +8 -0
  38. package/dist/tokens/internal/graph.d.ts.map +1 -0
  39. package/dist/tokens/internal/graph.js +29 -0
  40. package/dist/tokens/internal/graph.js.map +1 -0
  41. package/dist/tokens/internal/utils.d.ts +4 -0
  42. package/dist/tokens/internal/utils.d.ts.map +1 -0
  43. package/dist/tokens/internal/utils.js +51 -0
  44. package/dist/tokens/internal/utils.js.map +1 -0
  45. package/dist/tokens/parse-tokens.d.ts +31 -0
  46. package/dist/tokens/parse-tokens.d.ts.map +1 -0
  47. package/dist/tokens/parse-tokens.js +425 -0
  48. package/dist/tokens/parse-tokens.js.map +1 -0
  49. package/dist/tokens/snapshots.d.ts +9 -0
  50. package/dist/tokens/snapshots.d.ts.map +1 -0
  51. package/dist/tokens/snapshots.js +162 -0
  52. package/dist/tokens/snapshots.js.map +1 -0
  53. package/dist/tokens/types.d.ts +77 -0
  54. package/dist/tokens/types.d.ts.map +1 -0
  55. package/dist/tokens/types.js +2 -0
  56. package/dist/tokens/types.js.map +1 -0
  57. package/dist/types.d.ts +9 -1
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/utils/clone-json.d.ts +2 -0
  60. package/dist/utils/clone-json.d.ts.map +1 -0
  61. package/dist/utils/clone-json.js +15 -0
  62. package/dist/utils/clone-json.js.map +1 -0
  63. package/dist/utils/hash-json.d.ts +5 -0
  64. package/dist/utils/hash-json.d.ts.map +1 -0
  65. package/dist/utils/hash-json.js +74 -0
  66. package/dist/utils/hash-json.js.map +1 -0
  67. package/dist/utils/stable-json.d.ts +2 -0
  68. package/dist/utils/stable-json.d.ts.map +1 -0
  69. package/dist/utils/stable-json.js +18 -0
  70. package/dist/utils/stable-json.js.map +1 -0
  71. package/package.json +11 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @lapidist/dtif-parser changelog
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#64](https://github.com/bylapidist/dtif/pull/64) [`b8ff611`](https://github.com/bylapidist/dtif/commit/b8ff611a17394bd9bdc6822cc01f28f15ddd129b) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Expose the `parseTokens` helpers, metadata and resolution snapshots, diagnostic formatters, caching utilities, and a Node adapter surface for DTIF token parsing.
8
+
9
+ ## 0.2.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#60](https://github.com/bylapidist/dtif/pull/60) [`2732e67`](https://github.com/bylapidist/dtif/commit/2732e67888b5c83624a11dc086677790a4b51955) Thanks [@brettdorrans](https://github.com/brettdorrans)! - Trigger a patch release.
14
+
15
+ - Updated dependencies [[`2732e67`](https://github.com/bylapidist/dtif/commit/2732e67888b5c83624a11dc086677790a4b51955)]:
16
+ - @lapidist/dtif-schema@0.2.1
17
+ - @lapidist/dtif-validator@0.2.1
18
+
3
19
  ## 0.2.0
4
20
 
5
21
  ### Minor Changes
@@ -9,6 +25,8 @@
9
25
  resolution. Ship the `dtif-parse` CLI, document and cache integrations,
10
26
  configurable resolver depth limits, and plugin hooks that surface extension
11
27
  results and resolved-token transforms alongside structured diagnostics.
28
+ - Align dependencies on @lapidist/dtif-schema and @lapidist/dtif-validator to
29
+ version 0.2.0 so all packages publish together.
12
30
 
13
31
  All notable changes to this project will be documented in this file.
14
32
 
package/README.md CHANGED
@@ -31,9 +31,71 @@ const resolved = result.resolver?.resolve('#/color/brand/primary');
31
31
  console.log(resolved?.value);
32
32
  ```
33
33
 
34
+ To flatten tokens, collect metadata, and normalise diagnostics in a single step,
35
+ use the `parseTokens` helper. It loads the document, builds the dependency graph,
36
+ and returns resolved token snapshots alongside a flattened view of the document.
37
+
38
+ ```ts
39
+ import { parseTokens } from '@lapidist/dtif-parser';
40
+
41
+ const { flattened, metadataIndex, resolutionIndex, diagnostics } = await parseTokens('tokens.json');
42
+
43
+ for (const token of flattened) {
44
+ console.log(token.pointer, token.value);
45
+ }
46
+ ```
47
+
48
+ Pass `onDiagnostic` to observe parser diagnostics as they are produced and `warn`
49
+ to intercept non-fatal issues. Both callbacks receive `TokenDiagnostic`
50
+ objects, allowing you to format or surface them immediately without waiting for
51
+ the promise to resolve.
52
+
53
+ ```ts
54
+ await parseTokens('tokens.json', {
55
+ onDiagnostic: (diagnostic) => {
56
+ console.error(diagnostic.message);
57
+ },
58
+ warn: (diagnostic) => {
59
+ console.warn('[warn]', diagnostic.message);
60
+ }
61
+ });
62
+ ```
63
+
64
+ Provide a `ParseCache` implementation, such as the built-in
65
+ `InMemoryParseCache`, to reuse flattening and resolution results across runs or
66
+ for synchronous parsing with `parseTokensSync` when your inputs are already
67
+ available in memory.
68
+
34
69
  Create a session with `createSession` to reuse caches, install custom document
35
70
  loaders, register plugins, or parse multiple collections with shared state.
36
71
 
72
+ ### Node adapter
73
+
74
+ For Node-based tooling, import the bundled adapter to read DTIF token files from
75
+ disk with extension validation, formatted diagnostics, and ready-to-use token
76
+ documents:
77
+
78
+ ```ts
79
+ import { parseTokensFromFile, readTokensFile } from '@lapidist/dtif-parser/adapters/node';
80
+
81
+ try {
82
+ const result = await parseTokensFromFile('tokens/base.tokens.json', {
83
+ onWarn: (message) => console.warn(message)
84
+ });
85
+ console.log(result.flattened.length);
86
+ } catch (error) {
87
+ // DtifTokenParseError exposes the normalised diagnostics for reporting
88
+ }
89
+
90
+ const document = await readTokensFile('tokens/base.tokens.json');
91
+ ```
92
+
93
+ ## Development
94
+
95
+ - [Parser package structure](../docs/tooling/dtif-parser-package-structure.md) documents the current
96
+ module layout, session lifecycle, and testing conventions that future
97
+ roadmap work will build upon.
98
+
37
99
  ## Command line interface
38
100
 
39
101
  The workspace publishes a `dtif-parse` binary for quick inspection and CI
@@ -0,0 +1,3 @@
1
+ export { parseTokensFromFile, readTokensFile, DtifTokenParseError } from './token-parser.js';
2
+ export type { NodeParseTokensOptions } from './token-parser.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { parseTokensFromFile, readTokensFile, DtifTokenParseError } from './token-parser.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { DesignTokenInterchangeFormat } from '@lapidist/dtif-schema';
2
+ import type { ParseTokensOptions, ParseTokensResult } from '../../tokens/parse-tokens.js';
3
+ import type { FormatTokenDiagnosticOptions, TokenDiagnostic } from '../../tokens/types.js';
4
+ export interface NodeParseTokensOptions extends ParseTokensOptions {
5
+ readonly onWarn?: (message: string) => void;
6
+ readonly diagnosticFormat?: FormatTokenDiagnosticOptions;
7
+ }
8
+ export declare class DtifTokenParseError extends Error {
9
+ readonly diagnostics: readonly TokenDiagnostic[];
10
+ readonly source: string;
11
+ readonly formatOptions?: FormatTokenDiagnosticOptions;
12
+ constructor(source: string | URL, diagnostics: readonly TokenDiagnostic[], formatOptions?: FormatTokenDiagnosticOptions);
13
+ format(options?: FormatTokenDiagnosticOptions): string;
14
+ }
15
+ export declare function parseTokensFromFile(filePath: string | URL, options?: NodeParseTokensOptions): Promise<ParseTokensResult>;
16
+ export declare function readTokensFile(filePath: string | URL, options?: NodeParseTokensOptions): Promise<DesignTokenInterchangeFormat>;
17
+ //# sourceMappingURL=token-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-parser.d.ts","sourceRoot":"","sources":["../../../src/adapters/node/token-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAG1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE1F,OAAO,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI3F,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;CAC1D;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,4BAA4B,CAAC;gBAGpD,MAAM,EAAE,MAAM,GAAG,GAAG,EACpB,WAAW,EAAE,SAAS,eAAe,EAAE,EACvC,aAAa,CAAC,EAAE,4BAA4B;IAU9C,MAAM,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,MAAM;CAGvD;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,GAAG,GAAG,EACtB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GAAG,GAAG,EACtB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,4BAA4B,CAAC,CASvC"}
@@ -0,0 +1,83 @@
1
+ import { parseTokens } from '../../tokens/parse-tokens.js';
2
+ import { formatTokenDiagnostic } from '../../tokens/diagnostics.js';
3
+ const SUPPORTED_EXTENSIONS = ['.tokens', '.tokens.json', '.tokens.yaml', '.tokens.yml'];
4
+ export class DtifTokenParseError extends Error {
5
+ diagnostics;
6
+ source;
7
+ formatOptions;
8
+ constructor(source, diagnostics, formatOptions) {
9
+ const sourceText = toSourceString(source);
10
+ super(createDtifErrorMessage(sourceText, diagnostics, formatOptions));
11
+ this.name = 'DtifTokenParseError';
12
+ this.diagnostics = diagnostics;
13
+ this.source = sourceText;
14
+ this.formatOptions = formatOptions;
15
+ }
16
+ format(options) {
17
+ return createDtifErrorMessage(this.source, this.diagnostics, options ?? this.formatOptions);
18
+ }
19
+ }
20
+ export async function parseTokensFromFile(filePath, options = {}) {
21
+ assertSupportedFile(filePath);
22
+ const parseOptions = toParseTokensOptions(options);
23
+ const result = await parseTokens(filePath, parseOptions);
24
+ const errors = result.diagnostics.filter((diagnostic) => diagnostic.severity === 'error');
25
+ if (errors.length > 0) {
26
+ throw new DtifTokenParseError(filePath, errors, options.diagnosticFormat);
27
+ }
28
+ return result;
29
+ }
30
+ export async function readTokensFile(filePath, options = {}) {
31
+ const result = await parseTokensFromFile(filePath, options);
32
+ const document = result.document;
33
+ if (!document) {
34
+ throw new Error(`DTIF parser did not return a document for ${toSourceString(filePath)}`);
35
+ }
36
+ const data = document.data;
37
+ assertIsDesignTokenDocument(data, document.uri.href);
38
+ return data;
39
+ }
40
+ function toParseTokensOptions(options) {
41
+ const { onWarn, diagnosticFormat, ...rest } = options;
42
+ if (!onWarn) {
43
+ return rest;
44
+ }
45
+ const originalWarn = rest.warn;
46
+ return {
47
+ ...rest,
48
+ warn: (diagnostic) => {
49
+ if (diagnostic.severity === 'error') {
50
+ return;
51
+ }
52
+ onWarn(formatTokenDiagnostic(diagnostic, diagnosticFormat));
53
+ originalWarn?.(diagnostic);
54
+ }
55
+ };
56
+ }
57
+ function assertSupportedFile(filePath) {
58
+ const source = toSourceString(filePath);
59
+ if (!SUPPORTED_EXTENSIONS.some((extension) => source.endsWith(extension))) {
60
+ throw new Error(`Unsupported design tokens file: ${source}`);
61
+ }
62
+ }
63
+ function createDtifErrorMessage(source, diagnostics, formatOptions) {
64
+ const header = `Failed to parse DTIF document: ${source}`;
65
+ const formatted = diagnostics.map((diagnostic) => formatTokenDiagnostic(diagnostic, formatOptions));
66
+ return [header, ...formatted.map((line) => ` - ${line}`)].join('\n');
67
+ }
68
+ function toSourceString(source) {
69
+ return typeof source === 'string' ? source : source.toString();
70
+ }
71
+ function assertIsDesignTokenDocument(value, source) {
72
+ if (!isDesignTokenDocument(value)) {
73
+ throw new Error(`DTIF parser returned unexpected document contents for ${source}`);
74
+ }
75
+ }
76
+ function isDesignTokenDocument(value) {
77
+ if (!value || typeof value !== 'object') {
78
+ return false;
79
+ }
80
+ const prototype = Object.getPrototypeOf(value);
81
+ return prototype === Object.prototype || prototype === null;
82
+ }
83
+ //# sourceMappingURL=token-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-parser.js","sourceRoot":"","sources":["../../../src/adapters/node/token-parser.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -17,10 +17,20 @@ export { InMemoryDocumentCache } from './io/document-cache.js';
17
17
  export type { InMemoryDocumentCacheOptions } from './io/document-cache.js';
18
18
  export { SchemaGuard } from './validation/schema-guard.js';
19
19
  export type { SchemaGuardOptions, SchemaGuardResult } from './validation/schema-guard.js';
20
- export type { ContentType, Diagnostic, DocumentCache, DocumentGraph, DocumentHandle, JsonPointer, ParseCollectionResult, ParseInput, ParseInputRecord, ParseResult, RawDocument, RelatedInformation, SourceMap, SourcePosition, SourceSpan } from './types.js';
20
+ export type { ContentType, Diagnostic, DocumentCache, DocumentGraph, DocumentHandle, JsonPointer, ParseCollectionResult, ParseInput, ParseInputRecord, ParseDataInputRecord, ParseResult, RawDocument, RelatedInformation, SourceMap, SourcePosition, SourceSpan } from './types.js';
21
21
  export type { DiagnosticSeverity, DiagnosticCode } from './types.js';
22
22
  export { JSON_POINTER_ROOT, appendJsonPointer, decodeJsonPointerSegment, encodeJsonPointerSegment, isJsonPointer, joinJsonPointer, jsonPointerStartsWith, normalizeJsonPointer, parentJsonPointer, splitJsonPointer, tailJsonPointer } from './utils/json-pointer.js';
23
23
  export { ZERO_SOURCE_POSITION, cloneSourcePosition, cloneSourceSpan, compareSourcePositions, createSourcePosition, createSourceSpan, isSourcePosition, isSourceSpan, maxSourcePosition, minSourcePosition, spanContainsPosition, spanLength, spansOverlap, translateSourceSpan, unionSourceSpans } from './utils/source.js';
24
24
  export { PluginRegistry, createPluginRegistry } from './plugins/index.js';
25
25
  export type { ParserPlugin, ExtensionHandler, ExtensionHandlerResult, ExtensionHandlerInput, ExtensionEvaluation, ResolvedTokenTransform, ResolvedTokenTransformContext, ResolvedTokenTransformResult, ResolvedTokenTransformEvaluation } from './plugins/index.js';
26
+ export { toTokenDiagnostic, formatTokenDiagnostic } from './tokens/diagnostics.js';
27
+ export type { FormatTokenDiagnosticOptions, TokenDiagnostic, TokenDiagnosticContext, TokenId, TokenPointer, TokenMetadataSnapshot, ResolvedTokenView, TokenType, JsonValue, DtifFlattenedToken } from './tokens/types.js';
28
+ export { parseTokens, parseTokensSync } from './tokens/parse-tokens.js';
29
+ export type { ParseTokensInput, ParseTokensOptions, ParseTokensResult } from './tokens/parse-tokens.js';
30
+ export { createMetadataSnapshot, createResolutionSnapshot } from './tokens/snapshots.js';
31
+ export { flattenTokens } from './tokens/flatten.js';
32
+ export { InMemoryParseCache, createParseCache } from './tokens/cache.js';
33
+ export type { ParseCache, ParseCacheEntry, ParseCacheKey, InMemoryParseCacheOptions } from './tokens/cache.js';
34
+ export { parseTokensFromFile, readTokensFile, DtifTokenParseError } from './adapters/node/token-parser.js';
35
+ export type { NodeParseTokensOptions } from './adapters/node/token-parser.js';
26
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,4 +11,10 @@ export { SchemaGuard } from './validation/schema-guard.js';
11
11
  export { JSON_POINTER_ROOT, appendJsonPointer, decodeJsonPointerSegment, encodeJsonPointerSegment, isJsonPointer, joinJsonPointer, jsonPointerStartsWith, normalizeJsonPointer, parentJsonPointer, splitJsonPointer, tailJsonPointer } from './utils/json-pointer.js';
12
12
  export { ZERO_SOURCE_POSITION, cloneSourcePosition, cloneSourceSpan, compareSourcePositions, createSourcePosition, createSourceSpan, isSourcePosition, isSourceSpan, maxSourcePosition, minSourcePosition, spanContainsPosition, spanLength, spansOverlap, translateSourceSpan, unionSourceSpans } from './utils/source.js';
13
13
  export { PluginRegistry, createPluginRegistry } from './plugins/index.js';
14
+ export { toTokenDiagnostic, formatTokenDiagnostic } from './tokens/diagnostics.js';
15
+ export { parseTokens, parseTokensSync } from './tokens/parse-tokens.js';
16
+ export { createMetadataSnapshot, createResolutionSnapshot } from './tokens/snapshots.js';
17
+ export { flattenTokens } from './tokens/flatten.js';
18
+ export { InMemoryParseCache, createParseCache } from './tokens/cache.js';
19
+ export { parseTokensFromFile, readTokensFile, DtifTokenParseError } from './adapters/node/token-parser.js';
14
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAcxD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG3F,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAY/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAcxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAQrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAsB3D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAcxD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG3F,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAY/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAcxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAQrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAuB3D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAa1E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAanF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMxE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAOzE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACpB,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SourceMap } from '../../types.js';
2
+ export declare function createSyntheticSourceMap(uri: URL, value: unknown): SourceMap;
3
+ //# sourceMappingURL=synthetic-source-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthetic-source-map.d.ts","sourceRoot":"","sources":["../../../src/io/decoder/synthetic-source-map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,SAAS,EAAc,MAAM,gBAAgB,CAAC;AAEzE,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,CAM5E"}
@@ -0,0 +1,31 @@
1
+ import { JSON_POINTER_ROOT, appendJsonPointer } from '../../utils/json-pointer.js';
2
+ import { createSourceSpan, ZERO_SOURCE_POSITION } from '../../utils/source.js';
3
+ export function createSyntheticSourceMap(uri, value) {
4
+ const pointers = new Map();
5
+ const span = createSourceSpan(uri, ZERO_SOURCE_POSITION, ZERO_SOURCE_POSITION);
6
+ pointers.set(JSON_POINTER_ROOT, span);
7
+ populatePointers(value, JSON_POINTER_ROOT, pointers, uri);
8
+ return Object.freeze({ uri, pointers });
9
+ }
10
+ function populatePointers(value, pointer, pointers, uri) {
11
+ if (value === null || value === undefined) {
12
+ return;
13
+ }
14
+ if (Array.isArray(value)) {
15
+ value.forEach((item, index) => {
16
+ const childPointer = appendJsonPointer(pointer, String(index));
17
+ pointers.set(childPointer, createSourceSpan(uri, ZERO_SOURCE_POSITION, ZERO_SOURCE_POSITION));
18
+ populatePointers(item, childPointer, pointers, uri);
19
+ });
20
+ return;
21
+ }
22
+ if (typeof value === 'object') {
23
+ const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
24
+ for (const [key, childValue] of entries) {
25
+ const childPointer = appendJsonPointer(pointer, key);
26
+ pointers.set(childPointer, createSourceSpan(uri, ZERO_SOURCE_POSITION, ZERO_SOURCE_POSITION));
27
+ populatePointers(childValue, childPointer, pointers, uri);
28
+ }
29
+ }
30
+ }
31
+ //# sourceMappingURL=synthetic-source-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthetic-source-map.js","sourceRoot":"","sources":["../../../src/io/decoder/synthetic-source-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,MAAM,UAAU,wBAAwB,CAAC,GAAQ,EAAE,KAAc;IAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IAC/E,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACtC,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,OAAoB,EACpB,QAAsC,EACtC,GAAQ;IAER,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAgB,CAAC;YAC9E,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC;YAC9F,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;QACF,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAgB,CAAC;YACpE,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC;YAC9F,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/io/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAcjF"}
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/io/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAkBjF"}
@@ -1,8 +1,13 @@
1
1
  import { decodeBytes } from './decoder/encoding.js';
2
2
  import { buildSourceMap } from './decoder/source-map.js';
3
3
  import { parseYaml, toJavaScript } from './decoder/yaml.js';
4
+ import { cloneJsonValue } from '../utils/clone-json.js';
5
+ import { createSyntheticSourceMap } from './decoder/synthetic-source-map.js';
4
6
  export { DecoderError } from './decoder/errors.js';
5
7
  export async function decodeDocument(handle) {
8
+ if (handle.data !== undefined) {
9
+ return Object.freeze(createRawDocumentFromProvidedData(handle));
10
+ }
6
11
  const { text } = decodeBytes(handle.bytes);
7
12
  const { document: yamlDocument, lineCounter } = parseYaml(text);
8
13
  const data = toJavaScript(yamlDocument);
@@ -16,4 +21,30 @@ export async function decodeDocument(handle) {
16
21
  sourceMap
17
22
  });
18
23
  }
24
+ function createRawDocumentFromProvidedData(handle) {
25
+ const data = cloneJsonValue(handle.data);
26
+ if (typeof handle.text === 'string' && handle.text.length > 0) {
27
+ const text = handle.text;
28
+ const { document: yamlDocument, lineCounter } = parseYaml(text);
29
+ const sourceMap = buildSourceMap(handle, text, yamlDocument.contents, lineCounter);
30
+ return {
31
+ uri: handle.uri,
32
+ contentType: handle.contentType,
33
+ bytes: handle.bytes,
34
+ text,
35
+ data,
36
+ sourceMap
37
+ };
38
+ }
39
+ const text = handle.text ?? '';
40
+ const sourceMap = createSyntheticSourceMap(handle.uri, data);
41
+ return {
42
+ uri: handle.uri,
43
+ contentType: handle.contentType,
44
+ bytes: handle.bytes,
45
+ text,
46
+ data,
47
+ sourceMap
48
+ };
49
+ }
19
50
  //# sourceMappingURL=decoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/io/decoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAsB;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEnF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI;QACJ,IAAI;QACJ,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/io/decoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAsB;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEnF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI;QACJ,IAAI;QACJ,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iCAAiC,CAAC,MAAsB;IAC/D,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC;IAE1C,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEnF,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI;YACJ,IAAI;YACJ,SAAS;SACY,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAE7D,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI;QACJ,IAAI;QACJ,SAAS;KACY,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"document-loader.d.ts","sourceRoot":"","sources":["../../src/io/document-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AAI7F,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACnF;AAED,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAE7D,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGpB,MAAM,EAAE,yBAAyB,EACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CASvE;AAED,qBAAa,qBAAsB,YAAW,cAAc;;gBAS9C,OAAO,GAAE,4BAAiC;IAShD,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,cAAc,CAAC;CAiJ5F"}
1
+ {"version":3,"file":"document-loader.d.ts","sourceRoot":"","sources":["../../src/io/document-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,UAAU,EAGX,MAAM,aAAa,CAAC;AAOrB,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACnF;AAED,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAE7D,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGpB,MAAM,EAAE,yBAAyB,EACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CASvE;AAED,qBAAa,qBAAsB,YAAW,cAAc;;gBAS9C,OAAO,GAAE,4BAAiC;IAShD,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,cAAc,CAAC;CAmM5F"}
@@ -1,6 +1,8 @@
1
1
  import { readFile as defaultReadFile } from 'node:fs/promises';
2
2
  import * as path from 'node:path';
3
3
  import { fileURLToPath, pathToFileURL } from 'node:url';
4
+ import { cloneJsonValue } from '../utils/clone-json.js';
5
+ import { hashJsonValue } from '../utils/hash-json.js';
4
6
  const MEMORY_SCHEME = 'memory://dtif-document/';
5
7
  export class DocumentLoaderError extends Error {
6
8
  reason;
@@ -49,11 +51,17 @@ export class DefaultDocumentLoader {
49
51
  const uri = this.#createMemoryUri();
50
52
  const bytes = encodeText(input);
51
53
  this.#assertSizeWithinLimit(uri, bytes.byteLength);
52
- return this.#createHandle(uri, bytes, detectContentType({ content: input, fallback: this.#defaultContentType }));
54
+ return this.#createHandle(uri, bytes, detectContentType({ content: input, fallback: this.#defaultContentType }), { text: input });
53
55
  }
54
56
  const uri = this.#resolveUriFromString(input, context.baseUri);
55
57
  return this.#loadFromUrl(uri, context);
56
58
  }
59
+ if (isParseDataInputRecord(input)) {
60
+ return this.#loadFromDataRecord(input, context.baseUri);
61
+ }
62
+ if (isDesignTokenDocument(input)) {
63
+ return this.#loadFromDesignTokens(input);
64
+ }
57
65
  throw new TypeError(`Unsupported DTIF parse input: ${String(input)}`);
58
66
  }
59
67
  async #loadFromRecord(record, baseUri) {
@@ -62,11 +70,17 @@ export class DefaultDocumentLoader {
62
70
  if (typeof record.content === 'string') {
63
71
  const bytes = encodeText(record.content);
64
72
  this.#assertSizeWithinLimit(uri, bytes.byteLength);
65
- return this.#createHandle(uri, bytes, contentType);
73
+ return this.#createHandle(uri, bytes, contentType, { text: record.content });
66
74
  }
67
75
  this.#assertSizeWithinLimit(uri, record.content.byteLength);
68
76
  return this.#createHandle(uri, record.content, contentType);
69
77
  }
78
+ async #loadFromDataRecord(record, baseUri) {
79
+ const uri = record.uri
80
+ ? this.#normalizeUri(record.uri, baseUri)
81
+ : this.#createMemoryUriFromDesignTokens(record.data);
82
+ return this.#createHandleFromDesignTokens(record.data, uri, record.contentType);
83
+ }
70
84
  async #loadFromUrl(uri, context) {
71
85
  switch (uri.protocol) {
72
86
  case 'file:': {
@@ -103,13 +117,33 @@ export class DefaultDocumentLoader {
103
117
  throw new Error(`Unsupported URI scheme for DTIF documents: ${uri.protocol}`);
104
118
  }
105
119
  }
106
- #createHandle(uri, bytes, contentType) {
120
+ #loadFromDesignTokens(document) {
121
+ const uri = this.#createMemoryUriFromDesignTokens(document);
122
+ return this.#createHandleFromDesignTokens(document, uri);
123
+ }
124
+ #createHandle(uri, bytes, contentType, extras = {}) {
107
125
  const copy = bytes instanceof Uint8Array ? new Uint8Array(bytes) : encodeText(String(bytes));
108
- return Object.freeze({
126
+ const handle = {
127
+ uri,
128
+ contentType,
129
+ bytes: copy,
130
+ ...(extras.text !== undefined ? { text: extras.text } : {}),
131
+ ...(extras.data !== undefined ? { data: cloneJsonValue(extras.data) } : {})
132
+ };
133
+ return Object.freeze(handle);
134
+ }
135
+ #createHandleFromDesignTokens(data, uri, contentType = 'application/json') {
136
+ const handle = {
109
137
  uri,
110
138
  contentType,
111
- bytes: copy
112
- });
139
+ bytes: new Uint8Array(0),
140
+ data: cloneJsonValue(data)
141
+ };
142
+ return Object.freeze(handle);
143
+ }
144
+ #createMemoryUriFromDesignTokens(value) {
145
+ const hash = hashJsonValue(value, { algorithm: 'sha1' });
146
+ return new URL(`${MEMORY_SCHEME}${hash}.json`);
113
147
  }
114
148
  #assertSizeWithinLimit(uri, size) {
115
149
  if (size <= this.#maxBytes) {
@@ -184,11 +218,32 @@ function resolveFilePath(reference, baseUri, cwd) {
184
218
  return path.resolve(cwd, reference);
185
219
  }
186
220
  function isParseInputRecord(value) {
187
- return Boolean(value && typeof value === 'object' && 'content' in value);
221
+ if (!value || typeof value !== 'object') {
222
+ return false;
223
+ }
224
+ const record = value;
225
+ return typeof record.content === 'string' || record.content instanceof Uint8Array;
226
+ }
227
+ function isParseDataInputRecord(value) {
228
+ if (!value || typeof value !== 'object') {
229
+ return false;
230
+ }
231
+ return ('data' in value &&
232
+ isDesignTokenDocument(value.data));
188
233
  }
189
234
  function encodeText(content) {
190
235
  return new TextEncoder().encode(content);
191
236
  }
237
+ function isDesignTokenDocument(value) {
238
+ if (!value || typeof value !== 'object') {
239
+ return false;
240
+ }
241
+ if (value instanceof URL || value instanceof Uint8Array) {
242
+ return false;
243
+ }
244
+ const prototype = Object.getPrototypeOf(value);
245
+ return prototype === Object.prototype || prototype === null;
246
+ }
192
247
  function detectContentType(params) {
193
248
  if (params.uri) {
194
249
  const fromUri = detectContentTypeFromUri(params.uri);
@@ -1 +1 @@
1
- {"version":3,"file":"document-loader.js","sourceRoot":"","sources":["../../src/io/document-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-loader.js","sourceRoot":"","sources":["../../src/io/document-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ResolvedParseSessionOptions } from '../session/internal/options.js';
2
+ import type { DtifFlattenedToken, ResolvedTokenView, TokenDiagnostic, TokenId, TokenMetadataSnapshot } from './types.js';
3
+ import type { RawDocument } from '../types.js';
4
+ export interface ParseCacheKey {
5
+ readonly uri: string;
6
+ readonly variant: string;
7
+ }
8
+ export interface CacheVariantOptions {
9
+ readonly flatten: boolean;
10
+ readonly includeGraphs: boolean;
11
+ }
12
+ export type CacheVariantOverrides = Partial<CacheVariantOptions>;
13
+ export interface ParseCacheEntry {
14
+ readonly documentHash: string;
15
+ readonly flattened?: readonly DtifFlattenedToken[];
16
+ readonly metadataIndex?: ReadonlyMap<TokenId, TokenMetadataSnapshot>;
17
+ readonly resolutionIndex?: ReadonlyMap<TokenId, ResolvedTokenView>;
18
+ readonly diagnostics?: readonly TokenDiagnostic[];
19
+ readonly timestamp: number;
20
+ }
21
+ export interface ParseCache {
22
+ get(key: ParseCacheKey): ParseCacheEntry | undefined | Promise<ParseCacheEntry | undefined>;
23
+ set(key: ParseCacheKey, value: ParseCacheEntry): void | Promise<void>;
24
+ }
25
+ export interface InMemoryParseCacheOptions {
26
+ readonly maxEntries?: number;
27
+ readonly ttlMs?: number;
28
+ }
29
+ export declare class InMemoryParseCache implements ParseCache {
30
+ #private;
31
+ constructor(options?: InMemoryParseCacheOptions);
32
+ get(key: ParseCacheKey): ParseCacheEntry | undefined;
33
+ set(key: ParseCacheKey, value: ParseCacheEntry): void;
34
+ }
35
+ export declare function createParseCache(options?: InMemoryParseCacheOptions): InMemoryParseCache;
36
+ export declare function computeDocumentHash(input: Uint8Array | RawDocument): string;
37
+ export declare function createCacheKey(uri: string, options: ResolvedParseSessionOptions, variantOptions?: CacheVariantOverrides): ParseCacheKey;
38
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/tokens/cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,qBAAqB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAC5F,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAQD,qBAAa,kBAAmB,YAAW,UAAU;;gBAQvC,OAAO,GAAE,yBAA8B;IAKnD,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS;IAkBpD,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;CAqBtD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,CAExF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAU3E;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,2BAA2B,EACpC,cAAc,CAAC,EAAE,qBAAqB,GACrC,aAAa,CAMf"}