@dsgraph/schema 0.0.0-stage → 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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Adam Reznik
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,8 @@
1
- # Temporary Holding Version
1
+ # @dsgraph/schema
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Types (TypeBox), JSON Schemas and canonical serialization for dsgraph.
4
+
5
+ - `Snapshot` (`dsgraph/snapshot@1`), `Changeset` (`dsgraph/changeset@1`), `Diagnostic` and friends
6
+ - `validateSnapshot`, `validateChangeset` — no code generation, safe under strict CSP
7
+ - `canonicalize` (sorted keys, numbers rounded to 6 decimals), `contentHash` (sha256, ignores `hash` and `meta`)
8
+ - JSON Schema files: `@dsgraph/schema/schemas/snapshot.schema.json`, `…/changeset.schema.json`
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Canonical JSON (RFC 8785 style): object keys sorted by UTF-16 code units,
3
+ * no insignificant whitespace, numbers rounded to 6 decimal places first.
4
+ */
5
+ /** Rounds a number to 6 decimal places; normalizes -0 to 0. */
6
+ export declare function roundNumber(n: number): number;
7
+ /** Returns a deep copy where every number is rounded and object keys are sorted. */
8
+ export declare function normalize(value: unknown): unknown;
9
+ export declare function canonicalize(value: unknown): string;
10
+ export declare function sha256Hex(text: string): Promise<string>;
11
+ /** Hash of a snapshot or changeset: sha256 of canonical JSON without `hash` and `meta`. */
12
+ export declare function contentHash(doc: Record<string, unknown>): Promise<string>;
13
+ //# sourceMappingURL=canonical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYjD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7D;AAED,2FAA2F;AAC3F,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/E"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Canonical JSON (RFC 8785 style): object keys sorted by UTF-16 code units,
3
+ * no insignificant whitespace, numbers rounded to 6 decimal places first.
4
+ */
5
+ const PRECISION = 1e6;
6
+ /** Rounds a number to 6 decimal places; normalizes -0 to 0. */
7
+ export function roundNumber(n) {
8
+ if (!Number.isFinite(n))
9
+ return n;
10
+ const r = Math.round(n * PRECISION) / PRECISION;
11
+ return Object.is(r, -0) ? 0 : r;
12
+ }
13
+ /** Returns a deep copy where every number is rounded and object keys are sorted. */
14
+ export function normalize(value) {
15
+ if (typeof value === 'number')
16
+ return roundNumber(value);
17
+ if (Array.isArray(value))
18
+ return value.map(normalize);
19
+ if (value !== null && typeof value === 'object') {
20
+ const out = {};
21
+ for (const key of Object.keys(value).sort()) {
22
+ const v = value[key];
23
+ if (v !== undefined)
24
+ out[key] = normalize(v);
25
+ }
26
+ return out;
27
+ }
28
+ return value;
29
+ }
30
+ export function canonicalize(value) {
31
+ return JSON.stringify(normalize(value));
32
+ }
33
+ export async function sha256Hex(text) {
34
+ const data = new TextEncoder().encode(text);
35
+ const digest = await globalThis.crypto.subtle.digest('SHA-256', data);
36
+ return Array.from(new Uint8Array(digest), (b) => b.toString(16).padStart(2, '0')).join('');
37
+ }
38
+ /** Hash of a snapshot or changeset: sha256 of canonical JSON without `hash` and `meta`. */
39
+ export async function contentHash(doc) {
40
+ const { hash: _hash, meta: _meta, ...rest } = doc;
41
+ return `sha256:${await sha256Hex(canonicalize(rest))}`;
42
+ }
43
+ //# sourceMappingURL=canonical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,SAAS,GAAG,GAAG,CAAA;AAErB,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAA;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IAC/C,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,GAAG,GAA4B,EAAE,CAAA;QACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAI,KAAiC,CAAC,GAAG,CAAC,CAAA;YACjD,IAAI,CAAC,KAAK,SAAS;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACrE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC5F,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAA4B;IAC5D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAA;IACjD,OAAO,UAAU,MAAM,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;AACxD,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './canonical.js';
2
+ export * from './types.js';
3
+ export * from './validate.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './canonical.js';
2
+ export * from './types.js';
3
+ export * from './validate.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA"}
@@ -0,0 +1,393 @@
1
+ import { type Static } from '@sinclair/typebox';
2
+ /** A selection of context per modifier, e.g. `{ theme: "dark" }`. An empty object means "all contexts". */
3
+ export declare const When: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
4
+ export type When = Static<typeof When>;
5
+ export declare const Severity: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>;
6
+ export type Severity = Static<typeof Severity>;
7
+ export declare const Loc: import("@sinclair/typebox").TObject<{
8
+ file: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
+ pointer: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
10
+ line: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
11
+ column: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
12
+ }>;
13
+ export type Loc = Static<typeof Loc>;
14
+ export declare const Diagnostic: import("@sinclair/typebox").TObject<{
15
+ code: import("@sinclair/typebox").TString;
16
+ severity: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>;
17
+ message: import("@sinclair/typebox").TString;
18
+ loc: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
19
+ file: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
20
+ pointer: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
+ line: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
22
+ column: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
23
+ }>>;
24
+ }>;
25
+ export type Diagnostic = Static<typeof Diagnostic>;
26
+ /** A reference from one token's value to another token. */
27
+ export declare const Ref: import("@sinclair/typebox").TObject<{
28
+ to: import("@sinclair/typebox").TString;
29
+ /** JSON Pointer inside the referencing token's value; absent for a whole-value alias. */
30
+ property: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
31
+ /** JSON Pointer inside the target token's value, for property-level `$ref`. */
32
+ targetPath: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
33
+ }>;
34
+ export type Ref = Static<typeof Ref>;
35
+ export declare const TokenValue: import("@sinclair/typebox").TObject<{
36
+ when: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
37
+ /** The value as authored after merging, references unresolved. */
38
+ raw: import("@sinclair/typebox").TUnknown;
39
+ /** Canonical resolved value, or null when it could not be resolved. */
40
+ value: import("@sinclair/typebox").TUnknown;
41
+ refs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
42
+ to: import("@sinclair/typebox").TString;
43
+ /** JSON Pointer inside the referencing token's value; absent for a whole-value alias. */
44
+ property: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
45
+ /** JSON Pointer inside the target token's value, for property-level `$ref`. */
46
+ targetPath: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
47
+ }>>;
48
+ }>;
49
+ export type TokenValue = Static<typeof TokenValue>;
50
+ export declare const Deprecated: import("@sinclair/typebox").TObject<{
51
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
52
+ replacement: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
53
+ }>;
54
+ export type Deprecated = Static<typeof Deprecated>;
55
+ export declare const TypeSource: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"explicit">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"alias">, import("@sinclair/typebox").TLiteral<"inferred">]>;
56
+ export type TypeSource = Static<typeof TypeSource>;
57
+ export declare const Origin: import("@sinclair/typebox").TObject<{
58
+ file: import("@sinclair/typebox").TString;
59
+ pointer: import("@sinclair/typebox").TString;
60
+ }>;
61
+ export type Origin = Static<typeof Origin>;
62
+ export declare const Token: import("@sinclair/typebox").TObject<{
63
+ id: import("@sinclair/typebox").TString;
64
+ path: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
65
+ type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
66
+ typeSource: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"explicit">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"alias">, import("@sinclair/typebox").TLiteral<"inferred">]>, import("@sinclair/typebox").TNull]>;
67
+ layer: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
68
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
69
+ deprecated: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
70
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
71
+ replacement: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
72
+ }>, import("@sinclair/typebox").TNull]>;
73
+ values: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
74
+ when: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
75
+ /** The value as authored after merging, references unresolved. */
76
+ raw: import("@sinclair/typebox").TUnknown;
77
+ /** Canonical resolved value, or null when it could not be resolved. */
78
+ value: import("@sinclair/typebox").TUnknown;
79
+ refs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
80
+ to: import("@sinclair/typebox").TString;
81
+ /** JSON Pointer inside the referencing token's value; absent for a whole-value alias. */
82
+ property: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
83
+ /** JSON Pointer inside the target token's value, for property-level `$ref`. */
84
+ targetPath: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
85
+ }>>;
86
+ }>>;
87
+ origin: import("@sinclair/typebox").TObject<{
88
+ file: import("@sinclair/typebox").TString;
89
+ pointer: import("@sinclair/typebox").TString;
90
+ }>;
91
+ inheritedFrom: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
92
+ extensions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
93
+ flags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
94
+ }>;
95
+ export type Token = Static<typeof Token>;
96
+ export declare const Group: import("@sinclair/typebox").TObject<{
97
+ id: import("@sinclair/typebox").TString;
98
+ path: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
99
+ type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
100
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
101
+ deprecated: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
102
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
103
+ replacement: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
104
+ }>>;
105
+ extends: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
106
+ extensions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
107
+ origin: import("@sinclair/typebox").TObject<{
108
+ file: import("@sinclair/typebox").TString;
109
+ pointer: import("@sinclair/typebox").TString;
110
+ }>;
111
+ }>;
112
+ export type Group = Static<typeof Group>;
113
+ export declare const EdgeKind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aliases">, import("@sinclair/typebox").TLiteral<"extends">, import("@sinclair/typebox").TLiteral<"deprecated_by">, import("@sinclair/typebox").TLiteral<"uses_token">, import("@sinclair/typebox").TLiteral<"imports">, import("@sinclair/typebox").TLiteral<"renders">, import("@sinclair/typebox").TLiteral<"used_at">, import("@sinclair/typebox").TLiteral<"hardcodes">]>;
114
+ export type EdgeKind = Static<typeof EdgeKind>;
115
+ export declare const EdgeAttrs: import("@sinclair/typebox").TObject<{
116
+ property: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
117
+ targetPath: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
118
+ when: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
119
+ }>;
120
+ export type EdgeAttrs = Static<typeof EdgeAttrs>;
121
+ /** `[kind, from, to, attrs?]` */
122
+ export declare const Edge: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aliases">, import("@sinclair/typebox").TLiteral<"extends">, import("@sinclair/typebox").TLiteral<"deprecated_by">, import("@sinclair/typebox").TLiteral<"uses_token">, import("@sinclair/typebox").TLiteral<"imports">, import("@sinclair/typebox").TLiteral<"renders">, import("@sinclair/typebox").TLiteral<"used_at">, import("@sinclair/typebox").TLiteral<"hardcodes">]>, import("@sinclair/typebox").TString, import("@sinclair/typebox").TString]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aliases">, import("@sinclair/typebox").TLiteral<"extends">, import("@sinclair/typebox").TLiteral<"deprecated_by">, import("@sinclair/typebox").TLiteral<"uses_token">, import("@sinclair/typebox").TLiteral<"imports">, import("@sinclair/typebox").TLiteral<"renders">, import("@sinclair/typebox").TLiteral<"used_at">, import("@sinclair/typebox").TLiteral<"hardcodes">]>, import("@sinclair/typebox").TString, import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
123
+ property: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
124
+ targetPath: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
125
+ when: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
126
+ }>]>]>;
127
+ export type Edge = Static<typeof Edge>;
128
+ export declare const SourceMeta: import("@sinclair/typebox").TObject<{
129
+ kind: import("@sinclair/typebox").TString;
130
+ package: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
131
+ version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
132
+ repo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
133
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
134
+ commit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
135
+ path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
136
+ }>;
137
+ export type SourceMeta = Static<typeof SourceMeta>;
138
+ export declare const Modifier: import("@sinclair/typebox").TObject<{
139
+ name: import("@sinclair/typebox").TString;
140
+ contexts: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
141
+ default: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
142
+ }>;
143
+ export type Modifier = Static<typeof Modifier>;
144
+ export declare const SNAPSHOT_SCHEMA = "dsgraph/snapshot@1";
145
+ export declare const Snapshot: import("@sinclair/typebox").TObject<{
146
+ schema: import("@sinclair/typebox").TLiteral<"dsgraph/snapshot@1">;
147
+ source: import("@sinclair/typebox").TObject<{
148
+ kind: import("@sinclair/typebox").TString;
149
+ package: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
150
+ version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
151
+ repo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
152
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
153
+ commit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
154
+ path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
155
+ }>;
156
+ contexts: import("@sinclair/typebox").TObject<{
157
+ modifiers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
158
+ name: import("@sinclair/typebox").TString;
159
+ contexts: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
160
+ default: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
161
+ }>>;
162
+ permutations: import("@sinclair/typebox").TInteger;
163
+ partial: import("@sinclair/typebox").TBoolean;
164
+ }>;
165
+ nodes: import("@sinclair/typebox").TObject<{
166
+ groups: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
167
+ id: import("@sinclair/typebox").TString;
168
+ path: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
169
+ type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
170
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
171
+ deprecated: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
172
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
173
+ replacement: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
174
+ }>>;
175
+ extends: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
176
+ extensions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
177
+ origin: import("@sinclair/typebox").TObject<{
178
+ file: import("@sinclair/typebox").TString;
179
+ pointer: import("@sinclair/typebox").TString;
180
+ }>;
181
+ }>>;
182
+ tokens: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
183
+ id: import("@sinclair/typebox").TString;
184
+ path: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
185
+ type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
186
+ typeSource: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"explicit">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"alias">, import("@sinclair/typebox").TLiteral<"inferred">]>, import("@sinclair/typebox").TNull]>;
187
+ layer: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
188
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
189
+ deprecated: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
190
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
191
+ replacement: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
192
+ }>, import("@sinclair/typebox").TNull]>;
193
+ values: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
194
+ when: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
195
+ /** The value as authored after merging, references unresolved. */
196
+ raw: import("@sinclair/typebox").TUnknown;
197
+ /** Canonical resolved value, or null when it could not be resolved. */
198
+ value: import("@sinclair/typebox").TUnknown;
199
+ refs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
200
+ to: import("@sinclair/typebox").TString;
201
+ /** JSON Pointer inside the referencing token's value; absent for a whole-value alias. */
202
+ property: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
203
+ /** JSON Pointer inside the target token's value, for property-level `$ref`. */
204
+ targetPath: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
205
+ }>>;
206
+ }>>;
207
+ origin: import("@sinclair/typebox").TObject<{
208
+ file: import("@sinclair/typebox").TString;
209
+ pointer: import("@sinclair/typebox").TString;
210
+ }>;
211
+ inheritedFrom: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
212
+ extensions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
213
+ flags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
214
+ }>>;
215
+ }>;
216
+ edges: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aliases">, import("@sinclair/typebox").TLiteral<"extends">, import("@sinclair/typebox").TLiteral<"deprecated_by">, import("@sinclair/typebox").TLiteral<"uses_token">, import("@sinclair/typebox").TLiteral<"imports">, import("@sinclair/typebox").TLiteral<"renders">, import("@sinclair/typebox").TLiteral<"used_at">, import("@sinclair/typebox").TLiteral<"hardcodes">]>, import("@sinclair/typebox").TString, import("@sinclair/typebox").TString]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aliases">, import("@sinclair/typebox").TLiteral<"extends">, import("@sinclair/typebox").TLiteral<"deprecated_by">, import("@sinclair/typebox").TLiteral<"uses_token">, import("@sinclair/typebox").TLiteral<"imports">, import("@sinclair/typebox").TLiteral<"renders">, import("@sinclair/typebox").TLiteral<"used_at">, import("@sinclair/typebox").TLiteral<"hardcodes">]>, import("@sinclair/typebox").TString, import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
217
+ property: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
218
+ targetPath: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
219
+ when: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
220
+ }>]>]>>;
221
+ diagnostics: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
222
+ code: import("@sinclair/typebox").TString;
223
+ severity: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>;
224
+ message: import("@sinclair/typebox").TString;
225
+ loc: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
226
+ file: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
227
+ pointer: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
228
+ line: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
229
+ column: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
230
+ }>>;
231
+ }>>;
232
+ hash: import("@sinclair/typebox").TString;
233
+ meta: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
234
+ }>;
235
+ export type Snapshot = Static<typeof Snapshot>;
236
+ export declare const ChangeKind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"token.added">, import("@sinclair/typebox").TLiteral<"token.removed">, import("@sinclair/typebox").TLiteral<"token.renamed">, import("@sinclair/typebox").TLiteral<"token.value-changed">, import("@sinclair/typebox").TLiteral<"token.notation-changed">, import("@sinclair/typebox").TLiteral<"token.alias-retargeted">, import("@sinclair/typebox").TLiteral<"token.type-changed">, import("@sinclair/typebox").TLiteral<"token.contexts-changed">, import("@sinclair/typebox").TLiteral<"token.missing-in-context">, import("@sinclair/typebox").TLiteral<"token.deprecated">, import("@sinclair/typebox").TLiteral<"token.undeprecated">, import("@sinclair/typebox").TLiteral<"token.description-changed">, import("@sinclair/typebox").TLiteral<"token.extensions-changed">, import("@sinclair/typebox").TLiteral<"group.extends-changed">, import("@sinclair/typebox").TLiteral<"context.added">, import("@sinclair/typebox").TLiteral<"context.removed">, import("@sinclair/typebox").TLiteral<"modifier.added">, import("@sinclair/typebox").TLiteral<"modifier.removed">]>;
237
+ export type ChangeKind = Static<typeof ChangeKind>;
238
+ export declare const Level: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"major">, import("@sinclair/typebox").TLiteral<"minor">, import("@sinclair/typebox").TLiteral<"patch">, import("@sinclair/typebox").TLiteral<"none">]>;
239
+ export type Level = Static<typeof Level>;
240
+ export declare const Change: import("@sinclair/typebox").TObject<{
241
+ id: import("@sinclair/typebox").TString;
242
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"token.added">, import("@sinclair/typebox").TLiteral<"token.removed">, import("@sinclair/typebox").TLiteral<"token.renamed">, import("@sinclair/typebox").TLiteral<"token.value-changed">, import("@sinclair/typebox").TLiteral<"token.notation-changed">, import("@sinclair/typebox").TLiteral<"token.alias-retargeted">, import("@sinclair/typebox").TLiteral<"token.type-changed">, import("@sinclair/typebox").TLiteral<"token.contexts-changed">, import("@sinclair/typebox").TLiteral<"token.missing-in-context">, import("@sinclair/typebox").TLiteral<"token.deprecated">, import("@sinclair/typebox").TLiteral<"token.undeprecated">, import("@sinclair/typebox").TLiteral<"token.description-changed">, import("@sinclair/typebox").TLiteral<"token.extensions-changed">, import("@sinclair/typebox").TLiteral<"group.extends-changed">, import("@sinclair/typebox").TLiteral<"context.added">, import("@sinclair/typebox").TLiteral<"context.removed">, import("@sinclair/typebox").TLiteral<"modifier.added">, import("@sinclair/typebox").TLiteral<"modifier.removed">]>;
243
+ target: import("@sinclair/typebox").TString;
244
+ from: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
245
+ when: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>, import("@sinclair/typebox").TNull]>;
246
+ before: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
247
+ after: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
248
+ delta: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
249
+ origin: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"direct">, import("@sinclair/typebox").TLiteral<"propagated">]>;
250
+ cause: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
251
+ level: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"major">, import("@sinclair/typebox").TLiteral<"minor">, import("@sinclair/typebox").TLiteral<"patch">, import("@sinclair/typebox").TLiteral<"none">]>;
252
+ confidence: import("@sinclair/typebox").TNumber;
253
+ possibleRenames: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
254
+ note: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
255
+ }>;
256
+ export type Change = Static<typeof Change>;
257
+ export declare const CHANGESET_SCHEMA = "dsgraph/changeset@1";
258
+ export declare const Changeset: import("@sinclair/typebox").TObject<{
259
+ schema: import("@sinclair/typebox").TLiteral<"dsgraph/changeset@1">;
260
+ base: import("@sinclair/typebox").TObject<{
261
+ hash: import("@sinclair/typebox").TString;
262
+ source: import("@sinclair/typebox").TObject<{
263
+ kind: import("@sinclair/typebox").TString;
264
+ package: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
265
+ version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
266
+ repo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
267
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
268
+ commit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
269
+ path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
270
+ }>;
271
+ }>;
272
+ head: import("@sinclair/typebox").TObject<{
273
+ hash: import("@sinclair/typebox").TString;
274
+ source: import("@sinclair/typebox").TObject<{
275
+ kind: import("@sinclair/typebox").TString;
276
+ package: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
277
+ version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
278
+ repo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
279
+ ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
280
+ commit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
281
+ path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
282
+ }>;
283
+ }>;
284
+ contexts: import("@sinclair/typebox").TObject<{
285
+ compared: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
286
+ partial: import("@sinclair/typebox").TBoolean;
287
+ }>;
288
+ summary: import("@sinclair/typebox").TObject<{
289
+ counts: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TInteger>;
290
+ level: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"major">, import("@sinclair/typebox").TLiteral<"minor">, import("@sinclair/typebox").TLiteral<"patch">, import("@sinclair/typebox").TLiteral<"none">]>;
291
+ reasons: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
292
+ }>;
293
+ changes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
294
+ id: import("@sinclair/typebox").TString;
295
+ kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"token.added">, import("@sinclair/typebox").TLiteral<"token.removed">, import("@sinclair/typebox").TLiteral<"token.renamed">, import("@sinclair/typebox").TLiteral<"token.value-changed">, import("@sinclair/typebox").TLiteral<"token.notation-changed">, import("@sinclair/typebox").TLiteral<"token.alias-retargeted">, import("@sinclair/typebox").TLiteral<"token.type-changed">, import("@sinclair/typebox").TLiteral<"token.contexts-changed">, import("@sinclair/typebox").TLiteral<"token.missing-in-context">, import("@sinclair/typebox").TLiteral<"token.deprecated">, import("@sinclair/typebox").TLiteral<"token.undeprecated">, import("@sinclair/typebox").TLiteral<"token.description-changed">, import("@sinclair/typebox").TLiteral<"token.extensions-changed">, import("@sinclair/typebox").TLiteral<"group.extends-changed">, import("@sinclair/typebox").TLiteral<"context.added">, import("@sinclair/typebox").TLiteral<"context.removed">, import("@sinclair/typebox").TLiteral<"modifier.added">, import("@sinclair/typebox").TLiteral<"modifier.removed">]>;
296
+ target: import("@sinclair/typebox").TString;
297
+ from: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
298
+ when: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>, import("@sinclair/typebox").TNull]>;
299
+ before: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
300
+ after: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
301
+ delta: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
302
+ origin: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"direct">, import("@sinclair/typebox").TLiteral<"propagated">]>;
303
+ cause: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
304
+ level: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"major">, import("@sinclair/typebox").TLiteral<"minor">, import("@sinclair/typebox").TLiteral<"patch">, import("@sinclair/typebox").TLiteral<"none">]>;
305
+ confidence: import("@sinclair/typebox").TNumber;
306
+ possibleRenames: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
307
+ note: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
308
+ }>>;
309
+ diagnostics: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
310
+ code: import("@sinclair/typebox").TString;
311
+ severity: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>;
312
+ message: import("@sinclair/typebox").TString;
313
+ loc: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
314
+ file: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
315
+ pointer: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
316
+ line: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
317
+ column: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
318
+ }>>;
319
+ }>>;
320
+ }>;
321
+ export type Changeset = Static<typeof Changeset>;
322
+ /** A rule result (spec section 7.4). Diagnostics from parsing are reported as findings too. */
323
+ export declare const Finding: import("@sinclair/typebox").TObject<{
324
+ id: import("@sinclair/typebox").TString;
325
+ rule: import("@sinclair/typebox").TString;
326
+ severity: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>;
327
+ message: import("@sinclair/typebox").TString;
328
+ /** Ids of the nodes involved (tokens, groups). */
329
+ nodes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
330
+ /** What makes this a finding: values, paths in the graph. */
331
+ evidence: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>>;
332
+ when: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
333
+ loc: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
334
+ file: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
335
+ pointer: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
336
+ line: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
337
+ column: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
338
+ }>>;
339
+ }>;
340
+ export type Finding = Static<typeof Finding>;
341
+ export declare const RuleSetting: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"off">, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"off">, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>]>, import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>]>]>;
342
+ export type RuleSetting = Static<typeof RuleSetting>;
343
+ export declare const CONFIG_SCHEMA = "dsgraph/config@1";
344
+ /** `dsgraph.config.json` (spec section 7.3). Every section is optional; auto-detection fills the rest. */
345
+ export declare const Config: import("@sinclair/typebox").TObject<{
346
+ $schema: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
347
+ extends: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
348
+ tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
349
+ include: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
350
+ exclude: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
351
+ resolver: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
352
+ order: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
353
+ strict: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
354
+ }>>;
355
+ css: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
356
+ include: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
357
+ exclude: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
358
+ prefix: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
359
+ /** modifier → context → selectors (`:root`, `[data-theme=dark]`, `@media (prefers-color-scheme: dark)`). */
360
+ contexts: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>>>;
361
+ remBase: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
362
+ }>>;
363
+ layers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
364
+ match: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
365
+ public: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
366
+ }>>>;
367
+ contexts: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
368
+ default: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
369
+ maxPermutations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
370
+ }>>;
371
+ compare: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
372
+ equalDeltaE: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
373
+ ignoreExtensions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
374
+ }>>;
375
+ renames: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
376
+ semver: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
377
+ levels: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"major">, import("@sinclair/typebox").TLiteral<"minor">, import("@sinclair/typebox").TLiteral<"patch">, import("@sinclair/typebox").TLiteral<"none">]>>>;
378
+ imperceptible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
379
+ deltaE: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
380
+ px: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
381
+ }>>;
382
+ }>>;
383
+ rules: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"off">, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"off">, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"info">]>]>, import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnknown>]>]>>>;
384
+ /** The project that uses the tokens: style files checked by `style/*` and `usage/*` rules and by impact. */
385
+ code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
386
+ include: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
387
+ exclude: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
388
+ /** Prefix of the design system's custom properties in code, e.g. `--ds-`; learned when left out. */
389
+ prefix: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
390
+ }>>;
391
+ }>;
392
+ export type Config = Static<typeof Config>;
393
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}