@lapidist/dtif-parser 0.4.0 → 1.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.
Files changed (170) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +24 -6
  3. package/dist/adapters/domain/diagnostics.d.ts +7 -0
  4. package/dist/adapters/domain/diagnostics.d.ts.map +1 -0
  5. package/dist/adapters/domain/diagnostics.js +30 -0
  6. package/dist/adapters/domain/diagnostics.js.map +1 -0
  7. package/dist/adapters/domain/document-source.d.ts +12 -0
  8. package/dist/adapters/domain/document-source.d.ts.map +1 -0
  9. package/dist/adapters/domain/document-source.js +96 -0
  10. package/dist/adapters/domain/document-source.js.map +1 -0
  11. package/dist/adapters/domain/index.d.ts +8 -0
  12. package/dist/adapters/domain/index.d.ts.map +1 -0
  13. package/dist/adapters/domain/index.js +5 -0
  14. package/dist/adapters/domain/index.js.map +1 -0
  15. package/dist/adapters/domain/plugins.d.ts +20 -0
  16. package/dist/adapters/domain/plugins.d.ts.map +1 -0
  17. package/dist/adapters/domain/plugins.js +99 -0
  18. package/dist/adapters/domain/plugins.js.map +1 -0
  19. package/dist/adapters/domain/services.d.ts +82 -0
  20. package/dist/adapters/domain/services.d.ts.map +1 -0
  21. package/dist/adapters/domain/services.js +368 -0
  22. package/dist/adapters/domain/services.js.map +1 -0
  23. package/dist/adapters/node/token-parser.d.ts +7 -6
  24. package/dist/adapters/node/token-parser.d.ts.map +1 -1
  25. package/dist/adapters/node/token-parser.js +4 -4
  26. package/dist/adapters/node/token-parser.js.map +1 -1
  27. package/dist/application/factory.d.ts +14 -0
  28. package/dist/application/factory.d.ts.map +1 -0
  29. package/dist/application/factory.js +81 -0
  30. package/dist/application/factory.js.map +1 -0
  31. package/dist/application/index.d.ts +6 -0
  32. package/dist/application/index.d.ts.map +1 -0
  33. package/dist/application/index.js +4 -0
  34. package/dist/application/index.js.map +1 -0
  35. package/dist/application/inline.d.ts +6 -0
  36. package/dist/application/inline.d.ts.map +1 -0
  37. package/dist/application/inline.js +82 -0
  38. package/dist/application/inline.js.map +1 -0
  39. package/dist/application/requests.d.ts +12 -0
  40. package/dist/application/requests.d.ts.map +1 -0
  41. package/dist/application/requests.js +82 -0
  42. package/dist/application/requests.js.map +1 -0
  43. package/dist/application/use-cases.d.ts +61 -0
  44. package/dist/application/use-cases.d.ts.map +1 -0
  45. package/dist/application/use-cases.js +545 -0
  46. package/dist/application/use-cases.js.map +1 -0
  47. package/dist/ast/normaliser/context.d.ts +7 -6
  48. package/dist/ast/normaliser/context.d.ts.map +1 -1
  49. package/dist/ast/normaliser/context.js +1 -1
  50. package/dist/ast/normaliser/context.js.map +1 -1
  51. package/dist/ast/normaliser/document.js +1 -1
  52. package/dist/ast/normaliser/document.js.map +1 -1
  53. package/dist/ast/normaliser.d.ts +2 -2
  54. package/dist/ast/normaliser.d.ts.map +1 -1
  55. package/dist/ast/normaliser.js.map +1 -1
  56. package/dist/cli/parse.d.ts.map +1 -1
  57. package/dist/cli/parse.js +29 -12
  58. package/dist/cli/parse.js.map +1 -1
  59. package/dist/cli/serialize.d.ts +3 -4
  60. package/dist/cli/serialize.d.ts.map +1 -1
  61. package/dist/cli/serialize.js +19 -5
  62. package/dist/cli/serialize.js.map +1 -1
  63. package/dist/diagnostics/format.d.ts +7 -0
  64. package/dist/diagnostics/format.d.ts.map +1 -0
  65. package/dist/diagnostics/format.js +94 -0
  66. package/dist/diagnostics/format.js.map +1 -0
  67. package/dist/domain/index.d.ts +5 -0
  68. package/dist/domain/index.d.ts.map +1 -0
  69. package/dist/domain/index.js +5 -0
  70. package/dist/domain/index.js.map +1 -0
  71. package/dist/domain/models.d.ts +88 -0
  72. package/dist/domain/models.d.ts.map +1 -0
  73. package/dist/domain/models.js +2 -0
  74. package/dist/domain/models.js.map +1 -0
  75. package/dist/domain/ports.d.ts +69 -0
  76. package/dist/domain/ports.d.ts.map +1 -0
  77. package/dist/domain/ports.js +2 -0
  78. package/dist/domain/ports.js.map +1 -0
  79. package/dist/domain/primitives.d.ts +17 -0
  80. package/dist/domain/primitives.d.ts.map +1 -0
  81. package/dist/domain/primitives.js +2 -0
  82. package/dist/domain/primitives.js.map +1 -0
  83. package/dist/domain/services.d.ts +35 -0
  84. package/dist/domain/services.d.ts.map +1 -0
  85. package/dist/domain/services.js +2 -0
  86. package/dist/domain/services.js.map +1 -0
  87. package/dist/index.d.ts +10 -6
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +5 -3
  90. package/dist/index.js.map +1 -1
  91. package/dist/io/decoder.d.ts +3 -2
  92. package/dist/io/decoder.d.ts.map +1 -1
  93. package/dist/io/decoder.js +14 -8
  94. package/dist/io/decoder.js.map +1 -1
  95. package/dist/io/document-cache.d.ts +3 -2
  96. package/dist/io/document-cache.d.ts.map +1 -1
  97. package/dist/io/document-cache.js +8 -5
  98. package/dist/io/document-cache.js.map +1 -1
  99. package/dist/plugins/registry.d.ts +3 -2
  100. package/dist/plugins/registry.d.ts.map +1 -1
  101. package/dist/plugins/registry.js.map +1 -1
  102. package/dist/plugins/types.d.ts +8 -8
  103. package/dist/plugins/types.d.ts.map +1 -1
  104. package/dist/resolver/document-resolver.d.ts +1 -1
  105. package/dist/resolver/document-resolver.d.ts.map +1 -1
  106. package/dist/resolver/document-resolver.js +22 -30
  107. package/dist/resolver/document-resolver.js.map +1 -1
  108. package/dist/resolver/internal/constants.d.ts +3 -3
  109. package/dist/resolver/internal/constants.d.ts.map +1 -1
  110. package/dist/resolver/internal/constants.js.map +1 -1
  111. package/dist/resolver/internal/context.d.ts +1 -1
  112. package/dist/resolver/internal/context.d.ts.map +1 -1
  113. package/dist/resolver/internal/diagnostics.d.ts +8 -0
  114. package/dist/resolver/internal/diagnostics.d.ts.map +1 -0
  115. package/dist/resolver/internal/diagnostics.js +21 -0
  116. package/dist/resolver/internal/diagnostics.js.map +1 -0
  117. package/dist/resolver/internal/helpers.d.ts +7 -6
  118. package/dist/resolver/internal/helpers.d.ts.map +1 -1
  119. package/dist/resolver/internal/helpers.js.map +1 -1
  120. package/dist/resolver/internal/resolved-token.d.ts +4 -3
  121. package/dist/resolver/internal/resolved-token.d.ts.map +1 -1
  122. package/dist/resolver/internal/resolved-token.js.map +1 -1
  123. package/dist/resolver/types.d.ts +6 -5
  124. package/dist/resolver/types.d.ts.map +1 -1
  125. package/dist/session/internal/options.d.ts +2 -2
  126. package/dist/session/internal/options.d.ts.map +1 -1
  127. package/dist/session/internal/options.js +1 -1
  128. package/dist/session/internal/options.js.map +1 -1
  129. package/dist/session/types.d.ts +2 -2
  130. package/dist/session/types.d.ts.map +1 -1
  131. package/dist/session.d.ts +13 -8
  132. package/dist/session.d.ts.map +1 -1
  133. package/dist/session.js +12 -167
  134. package/dist/session.js.map +1 -1
  135. package/dist/tokens/cache.d.ts +24 -20
  136. package/dist/tokens/cache.d.ts.map +1 -1
  137. package/dist/tokens/cache.js +25 -24
  138. package/dist/tokens/cache.js.map +1 -1
  139. package/dist/tokens/inputs.d.ts +16 -0
  140. package/dist/tokens/inputs.d.ts.map +1 -0
  141. package/dist/tokens/inputs.js +180 -0
  142. package/dist/tokens/inputs.js.map +1 -0
  143. package/dist/tokens/parse-tokens.d.ts +12 -15
  144. package/dist/tokens/parse-tokens.d.ts.map +1 -1
  145. package/dist/tokens/parse-tokens.js +57 -444
  146. package/dist/tokens/parse-tokens.js.map +1 -1
  147. package/dist/tokens/snapshots.d.ts +2 -2
  148. package/dist/tokens/snapshots.d.ts.map +1 -1
  149. package/dist/tokens/snapshots.js.map +1 -1
  150. package/dist/tokens/types.d.ts +1 -34
  151. package/dist/tokens/types.d.ts.map +1 -1
  152. package/dist/types.d.ts +13 -58
  153. package/dist/types.d.ts.map +1 -1
  154. package/dist/utils/bytes.d.ts +2 -0
  155. package/dist/utils/bytes.d.ts.map +1 -0
  156. package/dist/utils/bytes.js +15 -0
  157. package/dist/utils/bytes.js.map +1 -0
  158. package/dist/validation/schema-guard.d.ts +3 -3
  159. package/dist/validation/schema-guard.d.ts.map +1 -1
  160. package/dist/validation/schema-guard.js +1 -1
  161. package/dist/validation/schema-guard.js.map +1 -1
  162. package/package.json +3 -8
  163. package/dist/diagnostics/bag.d.ts +0 -26
  164. package/dist/diagnostics/bag.d.ts.map +0 -1
  165. package/dist/diagnostics/bag.js +0 -106
  166. package/dist/diagnostics/bag.js.map +0 -1
  167. package/dist/tokens/diagnostics.d.ts +0 -5
  168. package/dist/tokens/diagnostics.d.ts.map +0 -1
  169. package/dist/tokens/diagnostics.js +0 -124
  170. package/dist/tokens/diagnostics.js.map +0 -1
@@ -1,30 +1,27 @@
1
- import type { DesignTokenInterchangeFormat } from '@lapidist/dtif-schema';
2
1
  import type { ParseSessionOptions } from '../session.js';
3
- import type { ParseInput, RawDocument } from '../types.js';
2
+ import type { RawDocument as DomainRawDocument } from '../domain/models.js';
4
3
  import type { DocumentGraph } from '../graph/nodes.js';
5
4
  import type { DocumentResolver } from '../resolver/index.js';
6
- import { type ParseCache } from './cache.js';
7
- import type { DtifFlattenedToken, ResolvedTokenView, TokenDiagnostic, TokenId, TokenMetadataSnapshot } from './types.js';
8
- export interface ParseTokensOptions extends Omit<ParseSessionOptions, 'cache'> {
5
+ import { type TokenCache } from './cache.js';
6
+ import type { DtifFlattenedToken, ResolvedTokenView, TokenId, TokenMetadataSnapshot } from './types.js';
7
+ import { type ParseTokensInput } from './inputs.js';
8
+ import type { DiagnosticEvent } from '../domain/models.js';
9
+ export type { ParseTokensInput } from './inputs.js';
10
+ export interface ParseTokensOptions extends ParseSessionOptions {
9
11
  readonly flatten?: boolean;
10
12
  readonly includeGraphs?: boolean;
11
- readonly cache?: ParseCache;
12
- readonly documentCache?: ParseSessionOptions['cache'];
13
- readonly onDiagnostic?: (diagnostic: TokenDiagnostic) => void;
14
- readonly warn?: (diagnostic: TokenDiagnostic) => void;
13
+ readonly tokenCache?: TokenCache;
14
+ readonly onDiagnostic?: (diagnostic: DiagnosticEvent) => void;
15
+ readonly warn?: (diagnostic: DiagnosticEvent) => void;
15
16
  }
16
- export type ParseTokensInput = ParseInput | DesignTokenInterchangeFormat | {
17
- readonly contents: string;
18
- readonly uri?: string;
19
- };
20
17
  export interface ParseTokensResult {
21
- readonly document?: RawDocument;
18
+ readonly document?: DomainRawDocument;
22
19
  readonly graph?: DocumentGraph;
23
20
  readonly resolver?: DocumentResolver;
24
21
  readonly flattened: readonly DtifFlattenedToken[];
25
22
  readonly metadataIndex: ReadonlyMap<TokenId, TokenMetadataSnapshot>;
26
23
  readonly resolutionIndex: ReadonlyMap<TokenId, ResolvedTokenView>;
27
- readonly diagnostics: readonly TokenDiagnostic[];
24
+ readonly diagnostics: readonly DiagnosticEvent[];
28
25
  }
29
26
  export declare function parseTokens(input: ParseTokensInput, options?: ParseTokensOptions): Promise<ParseTokensResult>;
30
27
  export declare function parseTokensSync(input: ParseTokensInput, options?: ParseTokensOptions): ParseTokensResult;
@@ -1 +1 @@
1
- {"version":3,"file":"parse-tokens.d.ts","sourceRoot":"","sources":["../../src/tokens/parse-tokens.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAI1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EACV,UAAU,EAIV,WAAW,EAIZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAIL,KAAK,UAAU,EAGhB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EAEf,OAAO,EACP,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,4BAA4B,GAC5B;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACpE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;CAClD;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAgC5B;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CA8EnB"}
1
+ {"version":3,"file":"parse-tokens.d.ts","sourceRoot":"","sources":["../../src/tokens/parse-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,qBAAqB,EACtB,MAAM,YAAY,CAAC;AASpB,OAAO,EAAE,KAAK,gBAAgB,EAAwC,MAAM,aAAa,CAAC;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACpE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;CAClD;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA4B5B;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAoCnB"}
@@ -1,39 +1,28 @@
1
- import { createHash } from 'node:crypto';
2
- import { createSession } from '../session.js';
3
- import { createDocumentResolver } from '../resolver/index.js';
4
- import { flattenTokens } from './flatten.js';
5
- import { createMetadataSnapshot, createResolutionSnapshot } from './snapshots.js';
6
- import { computeDocumentHash, createCacheKey } from './cache.js';
7
- import { toTokenDiagnostic } from './diagnostics.js';
8
- import { DiagnosticBag } from '../diagnostics/bag.js';
9
- import { normalizeDocument } from '../ast/normaliser.js';
10
- import { buildDocumentGraph } from '../graph/builder.js';
11
- import { decodeBytes } from '../io/decoder/encoding.js';
12
- import { createSyntheticSourceMap } from '../io/decoder/synthetic-source-map.js';
13
- import { isSingleLineInlineYaml, normalizeInlineYamlText } from '../io/decoder/inline-yaml.js';
14
- import { parseYaml, toJavaScript } from '../io/decoder/yaml.js';
15
- import { buildSourceMap } from '../io/decoder/source-map.js';
16
- import { cloneJsonValue } from '../utils/clone-json.js';
17
- import { hashJsonValue } from '../utils/hash-json.js';
1
+ import {} from './cache.js';
2
+ import { createParseDocumentUseCase, createInlineParseDocumentUseCase, createParseTokensUseCase } from '../application/factory.js';
3
+ import { resolveOptions } from '../session/internal/options.js';
4
+ import { createDocumentRequest, createInlineDocumentRequest } from '../application/requests.js';
5
+ import { normalizeInput, normalizeInlineInput } from './inputs.js';
18
6
  export async function parseTokens(input, options = {}) {
19
- const { flatten = true, includeGraphs = true, cache: parseCache, documentCache, onDiagnostic, warn, ...sessionOptions } = options;
20
- const session = createSession({ ...sessionOptions, cache: documentCache });
21
- const normalizedInput = normalizeInput(input);
22
- const result = await session.parseDocument(normalizedInput);
23
- const cacheContext = parseCache && result.document
24
- ? await resolveCacheContextAsync(parseCache, result.document, session, {
25
- flatten,
26
- includeGraphs
27
- })
28
- : undefined;
29
- const artifacts = buildParseTokensArtifacts(result, { session, flatten, includeGraphs, onDiagnostic, warn }, cacheContext);
30
- if (parseCache && cacheContext && artifacts.cacheEntry) {
31
- await ensureAsync(parseCache.set(cacheContext.key, artifacts.cacheEntry));
32
- }
33
- return artifacts.outcome;
7
+ const { flatten = true, includeGraphs = true, tokenCache, documentCache, onDiagnostic, warn, ...sessionOptions } = options;
8
+ const resolvedOptions = resolveOptions({ ...sessionOptions, documentCache });
9
+ const request = createDocumentRequest(normalizeInput(input));
10
+ const documents = createParseDocumentUseCase(resolvedOptions);
11
+ const useCase = createParseTokensUseCase(documents, resolvedOptions, tokenCache);
12
+ const execution = await useCase.execute({
13
+ request,
14
+ flatten,
15
+ includeGraphs
16
+ });
17
+ return assembleParseTokensResult(execution, {
18
+ flatten,
19
+ includeGraphs,
20
+ onDiagnostic,
21
+ warn
22
+ });
34
23
  }
35
24
  export function parseTokensSync(input, options = {}) {
36
- const { flatten = true, includeGraphs = true, cache: parseCache, documentCache, onDiagnostic, warn, ...sessionOptions } = options;
25
+ const { flatten = true, includeGraphs = true, tokenCache, documentCache, onDiagnostic, warn, ...sessionOptions } = options;
37
26
  if (documentCache) {
38
27
  throw new Error('parseTokensSync does not support document caches.');
39
28
  }
@@ -41,241 +30,47 @@ export function parseTokensSync(input, options = {}) {
41
30
  if (!inline) {
42
31
  throw new Error('parseTokensSync requires inline content or design token objects.');
43
32
  }
44
- const session = createSession(sessionOptions);
45
- const handle = createInlineHandle(inline);
46
- const diagnostics = new DiagnosticBag();
47
- const document = decodeDocumentSync(handle);
48
- const schemaResult = session.options.schemaGuard.validate(document);
49
- if (!schemaResult.valid) {
50
- diagnostics.addMany(schemaResult.diagnostics);
51
- return finalizeSync({ document, diagnostics }, {
52
- session,
53
- flatten,
54
- includeGraphs,
55
- parseCache,
56
- onDiagnostic,
57
- warn
58
- });
59
- }
60
- const normalised = normalizeDocument(document, {
61
- extensions: session.options.plugins
33
+ const resolvedOptions = resolveOptions(sessionOptions);
34
+ const request = createInlineDocumentRequest(inline);
35
+ const documents = createInlineParseDocumentUseCase(inline, resolvedOptions);
36
+ const useCase = createParseTokensUseCase(documents, resolvedOptions, tokenCache);
37
+ const execution = useCase.executeSync({
38
+ request,
39
+ flatten,
40
+ includeGraphs
41
+ });
42
+ return assembleParseTokensResult(execution, {
43
+ flatten,
44
+ includeGraphs,
45
+ onDiagnostic,
46
+ warn
62
47
  });
63
- diagnostics.addMany(normalised.diagnostics);
64
- if (!normalised.ast) {
65
- return finalizeSync({
66
- document,
67
- diagnostics,
68
- extensions: normalised.extensions
69
- }, { session, flatten, includeGraphs, parseCache, onDiagnostic, warn });
70
- }
71
- const graphResult = buildDocumentGraph(normalised.ast);
72
- diagnostics.addMany(graphResult.diagnostics);
73
- const graph = graphResult.graph;
74
- const resolver = graph &&
75
- createDocumentResolver(graph, {
76
- context: session.options.overrideContext,
77
- maxDepth: session.options.maxDepth,
78
- document,
79
- transforms: session.options.plugins?.transforms
80
- });
81
- return finalizeSync({
82
- document,
83
- graph,
84
- resolver,
85
- diagnostics,
86
- extensions: normalised.extensions,
87
- ast: normalised.ast
88
- }, { session, flatten, includeGraphs, parseCache, onDiagnostic, warn });
89
- }
90
- function normalizeInput(input) {
91
- if (typeof input === 'string' || input instanceof Uint8Array || input instanceof URL) {
92
- return input;
93
- }
94
- if (isRecord(input)) {
95
- if (isParseInputRecord(input) || isParseDataRecord(input) || isDesignTokenDocument(input)) {
96
- return input;
97
- }
98
- if (isContentsRecord(input)) {
99
- return {
100
- uri: input.uri,
101
- content: input.contents
102
- };
103
- }
104
- }
105
- throw new TypeError('Unsupported parse tokens input.');
106
- }
107
- function isParseInputRecord(value) {
108
- if (!isRecord(value)) {
109
- return false;
110
- }
111
- const content = value.content;
112
- if (typeof content !== 'string' && !(content instanceof Uint8Array)) {
113
- return false;
114
- }
115
- const { uri, contentType } = value;
116
- const validUri = uri === undefined || typeof uri === 'string' || uri instanceof URL;
117
- const validContentType = contentType === undefined ||
118
- contentType === 'application/json' ||
119
- contentType === 'application/yaml';
120
- return validUri && validContentType;
121
- }
122
- function isContentsRecord(value) {
123
- if (!isRecord(value)) {
124
- return false;
125
- }
126
- if (typeof value.contents !== 'string') {
127
- return false;
128
- }
129
- const { uri } = value;
130
- return uri === undefined || typeof uri === 'string';
131
- }
132
- function isParseDataRecord(value) {
133
- if (!isRecord(value)) {
134
- return false;
135
- }
136
- if (!('data' in value)) {
137
- return false;
138
- }
139
- return isDesignTokenDocument(value.data);
140
- }
141
- function createMemoryUriFromDesignTokens(value, kind) {
142
- const hash = hashJsonValue(value, { algorithm: 'sha1' });
143
- return `memory://dtif-${kind}/${hash}.json`;
144
- }
145
- function resolveInlineUri(value, fallback) {
146
- if (typeof value === 'string') {
147
- return value;
148
- }
149
- if (value instanceof URL) {
150
- return value.toString();
151
- }
152
- return fallback();
153
48
  }
154
- function buildParseTokensArtifacts(result, options, cacheContext) {
155
- const document = result.document;
156
- const graph = result.graph;
157
- const resolver = result.resolver;
158
- const includeGraphs = options.includeGraphs;
159
- const flatten = options.flatten;
160
- const diagnosticContext = {
161
- documentUri: document ? document.uri.href : undefined,
162
- pointerSpans: document ? document.sourceMap.pointers : undefined
163
- };
164
- const baseDiagnostics = result.diagnostics.toArray();
165
- const parseDiagnostics = baseDiagnostics.map((diagnostic) => toTokenDiagnostic(diagnostic, diagnosticContext));
166
- if (!document || !graph || !resolver) {
167
- const outcome = {
168
- document: includeGraphs ? document : undefined,
169
- graph: includeGraphs ? graph : undefined,
170
- resolver: includeGraphs ? resolver : undefined,
171
- flattened: [],
172
- metadataIndex: graph ? createMetadataSnapshot(graph) : new Map(),
173
- resolutionIndex: new Map(),
174
- diagnostics: parseDiagnostics
175
- };
176
- notifyDiagnostics(outcome.diagnostics, options);
177
- return { outcome };
178
- }
179
- if (cacheContext?.entry && cacheContext.entry.documentHash === cacheContext.documentHash) {
180
- const cachedDiagnostics = mergeDiagnostics(cacheContext.entry.diagnostics ?? [], parseDiagnostics);
181
- const outcome = {
182
- document: includeGraphs ? document : undefined,
183
- graph: includeGraphs ? graph : undefined,
184
- resolver: includeGraphs ? resolver : undefined,
185
- flattened: flatten
186
- ? cacheContext.entry.flattened
187
- ? [...cacheContext.entry.flattened]
188
- : []
189
- : [],
190
- metadataIndex: cacheContext.entry.metadataIndex
191
- ? new Map(cacheContext.entry.metadataIndex)
192
- : new Map(),
193
- resolutionIndex: cacheContext.entry.resolutionIndex
194
- ? new Map(cacheContext.entry.resolutionIndex)
195
- : new Map(),
196
- diagnostics: cachedDiagnostics
197
- };
198
- notifyDiagnostics(outcome.diagnostics, options);
199
- return { outcome };
200
- }
201
- const resolutionDiagnostics = [];
202
- const metadataIndex = createMetadataSnapshot(graph);
203
- const resolutionIndex = flatten
204
- ? createResolutionSnapshot(graph, resolver, {
205
- onDiagnostic: (diagnostic) => resolutionDiagnostics.push(diagnostic)
206
- })
207
- : new Map();
208
- const flattened = flatten ? flattenTokens(graph, resolutionIndex) : [];
209
- const formattedResolutionDiagnostics = resolutionDiagnostics.map((diagnostic) => toTokenDiagnostic(diagnostic, diagnosticContext));
210
- const diagnostics = mergeDiagnostics(parseDiagnostics, formattedResolutionDiagnostics);
49
+ function assembleParseTokensResult(execution, options) {
50
+ const diagnostics = execution.diagnostics;
211
51
  notifyDiagnostics(diagnostics, options);
212
- const cacheEntry = cacheContext
213
- ? {
214
- documentHash: cacheContext.documentHash,
215
- flattened: flatten ? flattened : undefined,
216
- metadataIndex,
217
- resolutionIndex: flatten ? resolutionIndex : undefined,
218
- diagnostics,
219
- timestamp: Date.now()
220
- }
221
- : undefined;
52
+ const document = options.includeGraphs ? execution.document : undefined;
53
+ const graph = options.includeGraphs ? execution.graph?.graph : undefined;
54
+ const resolver = options.includeGraphs ? execution.resolution?.result : undefined;
55
+ const metadataIndex = execution.tokens?.token.metadataIndex
56
+ ? new Map(execution.tokens.token.metadataIndex)
57
+ : new Map();
58
+ const resolutionIndex = execution.tokens?.token.resolutionIndex
59
+ ? new Map(execution.tokens.token.resolutionIndex)
60
+ : new Map();
61
+ const flattened = options.flatten && execution.tokens?.token.flattened
62
+ ? [...execution.tokens.token.flattened]
63
+ : [];
222
64
  return {
223
- outcome: {
224
- document: includeGraphs ? document : undefined,
225
- graph: includeGraphs ? graph : undefined,
226
- resolver: includeGraphs ? resolver : undefined,
227
- flattened,
228
- metadataIndex,
229
- resolutionIndex,
230
- diagnostics
231
- },
232
- cacheEntry
65
+ document,
66
+ graph,
67
+ resolver,
68
+ flattened,
69
+ metadataIndex,
70
+ resolutionIndex,
71
+ diagnostics
233
72
  };
234
73
  }
235
- function finalizeSync(result, options) {
236
- const cacheContext = options.parseCache && result.document
237
- ? resolveCacheContextSync(options.parseCache, result.document, options.session, {
238
- flatten: options.flatten,
239
- includeGraphs: options.includeGraphs
240
- })
241
- : undefined;
242
- const artifacts = buildParseTokensArtifacts(result, options, cacheContext);
243
- if (options.parseCache && cacheContext && artifacts.cacheEntry) {
244
- ensureSync(options.parseCache.set(cacheContext.key, artifacts.cacheEntry));
245
- }
246
- return artifacts.outcome;
247
- }
248
- async function resolveCacheContextAsync(cache, document, session, variantOptions) {
249
- const documentHash = computeDocumentHash(document);
250
- const key = createCacheKey(document.uri.href, session.options, variantOptions);
251
- const entry = await ensureAsync(cache.get(key));
252
- return { key, documentHash, entry: entry ?? undefined };
253
- }
254
- function resolveCacheContextSync(cache, document, session, variantOptions) {
255
- const documentHash = computeDocumentHash(document);
256
- const key = createCacheKey(document.uri.href, session.options, variantOptions);
257
- const candidate = cache.get(key);
258
- if (isPromiseLike(candidate)) {
259
- throw new Error('parseTokensSync requires caches with synchronous get/set semantics.');
260
- }
261
- return { key, documentHash, entry: candidate ?? undefined };
262
- }
263
- async function ensureAsync(value) {
264
- return isPromiseLike(value) ? await value : value;
265
- }
266
- function ensureSync(value) {
267
- if (isPromiseLike(value)) {
268
- throw new Error('parseTokensSync requires caches with synchronous get/set semantics.');
269
- }
270
- return value;
271
- }
272
- function isPromiseLike(value) {
273
- if (!isObjectLike(value)) {
274
- return false;
275
- }
276
- const then = Reflect.get(value, 'then');
277
- return typeof then === 'function';
278
- }
279
74
  function notifyDiagnostics(diagnostics, options) {
280
75
  if (diagnostics.length === 0) {
281
76
  return;
@@ -293,186 +88,4 @@ function notifyDiagnostics(diagnostics, options) {
293
88
  }
294
89
  }
295
90
  }
296
- function mergeDiagnostics(...groups) {
297
- const map = new Map();
298
- for (const group of groups) {
299
- for (const diagnostic of group) {
300
- const key = createDiagnosticKey(diagnostic);
301
- map.set(key, diagnostic);
302
- }
303
- }
304
- return Array.from(map.values());
305
- }
306
- function createDiagnosticKey(diagnostic) {
307
- const { severity, code, message, target } = diagnostic;
308
- const range = target.range;
309
- const parts = [
310
- severity,
311
- code,
312
- message,
313
- target.uri,
314
- range.start.line,
315
- range.start.character,
316
- range.end.line,
317
- range.end.character
318
- ];
319
- return parts.join('|');
320
- }
321
- function normalizeInlineInput(input) {
322
- if (typeof input === 'string') {
323
- if (!looksLikeInlineDocument(input)) {
324
- return undefined;
325
- }
326
- const text = input;
327
- const hash = createHash('sha1').update(text).digest('hex');
328
- return {
329
- uri: `memory://dtif-inline/${hash}.yaml`,
330
- text,
331
- contentType: detectContentTypeFromContent(text) ?? 'application/yaml'
332
- };
333
- }
334
- if (input instanceof Uint8Array || input instanceof URL) {
335
- return undefined;
336
- }
337
- if (isRecord(input)) {
338
- if (isParseInputRecord(input)) {
339
- const content = typeof input.content === 'string' ? input.content : new TextDecoder().decode(input.content);
340
- const uri = resolveInlineUri(input.uri, () => createMemoryUriFromText(content));
341
- return {
342
- uri,
343
- text: content,
344
- contentType: input.contentType ?? detectContentTypeFromContent(content) ?? 'application/json'
345
- };
346
- }
347
- if (isContentsRecord(input)) {
348
- const uri = input.uri ?? createMemoryUriFromText(input.contents);
349
- return {
350
- uri,
351
- text: input.contents,
352
- contentType: detectContentTypeFromContent(input.contents) ?? 'application/json'
353
- };
354
- }
355
- if (isParseDataRecord(input)) {
356
- const uri = resolveInlineUri(input.uri, () => createMemoryUriFromDesignTokens(input.data, 'token'));
357
- return {
358
- uri,
359
- contentType: input.contentType ?? 'application/json',
360
- data: input.data
361
- };
362
- }
363
- if (isDesignTokenDocument(input)) {
364
- const uri = createMemoryUriFromDesignTokens(input, 'token');
365
- return {
366
- uri,
367
- contentType: 'application/json',
368
- data: input
369
- };
370
- }
371
- }
372
- return undefined;
373
- }
374
- function looksLikeInlineDocument(value) {
375
- const trimmed = value.trimStart();
376
- if (trimmed.length === 0) {
377
- return true;
378
- }
379
- if (trimmed.startsWith('{') || trimmed.startsWith('[') || trimmed.startsWith('---')) {
380
- return true;
381
- }
382
- if (trimmed.startsWith('%YAML') || trimmed.includes('\n')) {
383
- return true;
384
- }
385
- if (isSingleLineInlineYaml(trimmed)) {
386
- return true;
387
- }
388
- return false;
389
- }
390
- function detectContentTypeFromContent(value) {
391
- const trimmed = value.trimStart();
392
- if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
393
- return 'application/json';
394
- }
395
- if (trimmed.startsWith('---') || trimmed.startsWith('%YAML') || trimmed.includes('\n')) {
396
- return 'application/yaml';
397
- }
398
- if (isSingleLineInlineYaml(trimmed)) {
399
- return 'application/yaml';
400
- }
401
- return undefined;
402
- }
403
- function createMemoryUriFromText(text) {
404
- const hash = createHash('sha1').update(text).digest('hex');
405
- return `memory://dtif-inline/${hash}.txt`;
406
- }
407
- function createInlineHandle(input) {
408
- const encoder = new TextEncoder();
409
- const bytes = typeof input.text === 'string' ? encoder.encode(input.text) : new Uint8Array(0);
410
- const uri = new URL(input.uri);
411
- return Object.freeze({
412
- uri,
413
- contentType: input.contentType,
414
- bytes,
415
- ...(input.text !== undefined ? { text: input.text } : {}),
416
- ...(input.data !== undefined ? { data: cloneJsonValue(input.data) } : {})
417
- });
418
- }
419
- function decodeDocumentSync(handle) {
420
- if (handle.data !== undefined && isDesignTokenDocument(handle.data)) {
421
- return Object.freeze(createRawDocumentFromProvidedData(handle, handle.data));
422
- }
423
- const { text: decodedText } = decodeBytes(handle.bytes);
424
- const text = normalizeInlineYamlText(decodedText);
425
- const { document: yamlDocument, lineCounter } = parseYaml(text);
426
- const data = toJavaScript(yamlDocument);
427
- const sourceMap = buildSourceMap(handle, text, yamlDocument.contents, lineCounter);
428
- return Object.freeze({
429
- uri: handle.uri,
430
- contentType: handle.contentType,
431
- bytes: handle.bytes,
432
- text,
433
- data,
434
- sourceMap
435
- });
436
- }
437
- function createRawDocumentFromProvidedData(handle, data) {
438
- if (typeof handle.text === 'string' && handle.text.length > 0) {
439
- const text = normalizeInlineYamlText(handle.text);
440
- const { document: yamlDocument, lineCounter } = parseYaml(text);
441
- const sourceMap = buildSourceMap(handle, text, yamlDocument.contents, lineCounter);
442
- return {
443
- uri: handle.uri,
444
- contentType: handle.contentType,
445
- bytes: handle.bytes,
446
- text,
447
- data,
448
- sourceMap
449
- };
450
- }
451
- const text = normalizeInlineYamlText(handle.text ?? '');
452
- const sourceMap = createSyntheticSourceMap(handle.uri, data);
453
- return {
454
- uri: handle.uri,
455
- contentType: handle.contentType,
456
- bytes: handle.bytes,
457
- text,
458
- data,
459
- sourceMap
460
- };
461
- }
462
- function isObjectLike(value) {
463
- return typeof value === 'object' && value !== null;
464
- }
465
- function isRecord(value) {
466
- return isObjectLike(value);
467
- }
468
- function isDesignTokenDocument(value) {
469
- if (!isObjectLike(value)) {
470
- return false;
471
- }
472
- if (value instanceof URL || value instanceof Uint8Array) {
473
- return false;
474
- }
475
- const prototype = Reflect.getPrototypeOf(value);
476
- return prototype === Object.prototype || prototype === null;
477
- }
478
91
  //# sourceMappingURL=parse-tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-tokens.js","sourceRoot":"","sources":["../../src/tokens/parse-tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-tokens.js","sourceRoot":"","sources":["../../src/tokens/parse-tokens.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import type { DocumentGraph } from '../graph/nodes.js';
2
2
  import type { DocumentResolver } from '../resolver/index.js';
3
- import type { Diagnostic } from '../types.js';
3
+ import type { DiagnosticEvent } from '../domain/models.js';
4
4
  import type { ResolvedTokenView, TokenId, TokenMetadataSnapshot } from './types.js';
5
5
  export declare function createMetadataSnapshot(graph: DocumentGraph): Map<TokenId, TokenMetadataSnapshot>;
6
6
  export declare function createResolutionSnapshot(graph: DocumentGraph, resolver: DocumentResolver, options?: {
7
- onDiagnostic?: (diagnostic: Diagnostic) => void;
7
+ onDiagnostic?: (diagnostic: DiagnosticEvent) => void;
8
8
  }): Map<TokenId, ResolvedTokenView>;
9
9
  //# sourceMappingURL=snapshots.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../src/tokens/snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,qBAAqB,EAAgB,MAAM,YAAY,CAAC;AAGlG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAqBhG;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAA;CAAO,GAChE,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAiFjC"}
1
+ {"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../src/tokens/snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,qBAAqB,EAAgB,MAAM,YAAY,CAAC;AAGlG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAqBhG;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAA;CAAO,GACrE,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAiFjC"}