@dsgraph/schema 0.0.0-stage → 0.2.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/dist/types.js ADDED
@@ -0,0 +1,222 @@
1
+ import { Type as T } from '@sinclair/typebox';
2
+ /** A selection of context per modifier, e.g. `{ theme: "dark" }`. An empty object means "all contexts". */
3
+ export const When = T.Record(T.String(), T.String(), { $id: 'When' });
4
+ export const Severity = T.Union([T.Literal('error'), T.Literal('warning'), T.Literal('info')]);
5
+ export const Loc = T.Object({
6
+ file: T.Optional(T.String()),
7
+ pointer: T.Optional(T.String()),
8
+ line: T.Optional(T.Integer()),
9
+ column: T.Optional(T.Integer()),
10
+ }, { $id: 'Loc' });
11
+ export const Diagnostic = T.Object({
12
+ code: T.String(),
13
+ severity: Severity,
14
+ message: T.String(),
15
+ loc: T.Optional(Loc),
16
+ }, { $id: 'Diagnostic' });
17
+ /** A reference from one token's value to another token. */
18
+ export const Ref = T.Object({
19
+ to: T.String(),
20
+ /** JSON Pointer inside the referencing token's value; absent for a whole-value alias. */
21
+ property: T.Optional(T.String()),
22
+ /** JSON Pointer inside the target token's value, for property-level `$ref`. */
23
+ targetPath: T.Optional(T.String()),
24
+ }, { $id: 'Ref' });
25
+ export const TokenValue = T.Object({
26
+ when: When,
27
+ /** The value as authored after merging, references unresolved. */
28
+ raw: T.Unknown(),
29
+ /** Canonical resolved value, or null when it could not be resolved. */
30
+ value: T.Unknown(),
31
+ refs: T.Array(Ref),
32
+ }, { $id: 'TokenValue' });
33
+ export const Deprecated = T.Object({ reason: T.Optional(T.String()), replacement: T.Optional(T.String()) }, { $id: 'Deprecated' });
34
+ export const TypeSource = T.Union([
35
+ T.Literal('explicit'),
36
+ T.Literal('inherited'),
37
+ T.Literal('alias'),
38
+ T.Literal('inferred'),
39
+ ]);
40
+ export const Origin = T.Object({ file: T.String(), pointer: T.String() }, { $id: 'Origin' });
41
+ export const Token = T.Object({
42
+ id: T.String(),
43
+ path: T.Array(T.String()),
44
+ type: T.Union([T.String(), T.Null()]),
45
+ typeSource: T.Union([TypeSource, T.Null()]),
46
+ layer: T.Union([T.String(), T.Null()]),
47
+ description: T.Optional(T.String()),
48
+ deprecated: T.Union([Deprecated, T.Null()]),
49
+ values: T.Array(TokenValue),
50
+ origin: Origin,
51
+ inheritedFrom: T.Union([T.String(), T.Null()]),
52
+ extensions: T.Optional(T.Record(T.String(), T.Unknown())),
53
+ flags: T.Array(T.String()),
54
+ }, { $id: 'Token' });
55
+ export const Group = T.Object({
56
+ id: T.String(),
57
+ path: T.Array(T.String()),
58
+ type: T.Optional(T.String()),
59
+ description: T.Optional(T.String()),
60
+ deprecated: T.Optional(Deprecated),
61
+ extends: T.Optional(T.String()),
62
+ extensions: T.Optional(T.Record(T.String(), T.Unknown())),
63
+ origin: Origin,
64
+ }, { $id: 'Group' });
65
+ export const EdgeKind = T.Union([
66
+ T.Literal('aliases'),
67
+ T.Literal('extends'),
68
+ T.Literal('deprecated_by'),
69
+ T.Literal('uses_token'),
70
+ T.Literal('imports'),
71
+ T.Literal('renders'),
72
+ T.Literal('used_at'),
73
+ T.Literal('hardcodes'),
74
+ ]);
75
+ export const EdgeAttrs = T.Object({
76
+ property: T.Optional(T.String()),
77
+ targetPath: T.Optional(T.String()),
78
+ when: T.Optional(When),
79
+ }, { additionalProperties: true });
80
+ /** `[kind, from, to, attrs?]` */
81
+ export const Edge = T.Union([
82
+ T.Tuple([EdgeKind, T.String(), T.String()]),
83
+ T.Tuple([EdgeKind, T.String(), T.String(), EdgeAttrs]),
84
+ ]);
85
+ export const SourceMeta = T.Object({
86
+ kind: T.String(),
87
+ package: T.Optional(T.String()),
88
+ version: T.Optional(T.String()),
89
+ repo: T.Optional(T.String()),
90
+ ref: T.Optional(T.String()),
91
+ commit: T.Optional(T.String()),
92
+ path: T.Optional(T.String()),
93
+ }, { $id: 'SourceMeta', additionalProperties: true });
94
+ export const Modifier = T.Object({
95
+ name: T.String(),
96
+ contexts: T.Array(T.String()),
97
+ default: T.Optional(T.String()),
98
+ }, { $id: 'Modifier' });
99
+ export const SNAPSHOT_SCHEMA = 'dsgraph/snapshot@1';
100
+ export const Snapshot = T.Object({
101
+ schema: T.Literal(SNAPSHOT_SCHEMA),
102
+ source: SourceMeta,
103
+ contexts: T.Object({
104
+ modifiers: T.Array(Modifier),
105
+ permutations: T.Integer(),
106
+ partial: T.Boolean(),
107
+ }),
108
+ nodes: T.Object({
109
+ groups: T.Array(Group),
110
+ tokens: T.Array(Token),
111
+ }),
112
+ edges: T.Array(Edge),
113
+ diagnostics: T.Array(Diagnostic),
114
+ hash: T.String(),
115
+ meta: T.Optional(T.Record(T.String(), T.Unknown())),
116
+ }, { $id: 'Snapshot' });
117
+ export const ChangeKind = T.Union([
118
+ T.Literal('token.added'),
119
+ T.Literal('token.removed'),
120
+ T.Literal('token.renamed'),
121
+ T.Literal('token.value-changed'),
122
+ T.Literal('token.notation-changed'),
123
+ T.Literal('token.alias-retargeted'),
124
+ T.Literal('token.type-changed'),
125
+ T.Literal('token.contexts-changed'),
126
+ T.Literal('token.missing-in-context'),
127
+ T.Literal('token.deprecated'),
128
+ T.Literal('token.undeprecated'),
129
+ T.Literal('token.description-changed'),
130
+ T.Literal('token.extensions-changed'),
131
+ T.Literal('group.extends-changed'),
132
+ T.Literal('context.added'),
133
+ T.Literal('context.removed'),
134
+ T.Literal('modifier.added'),
135
+ T.Literal('modifier.removed'),
136
+ ]);
137
+ export const Level = T.Union([T.Literal('major'), T.Literal('minor'), T.Literal('patch'), T.Literal('none')]);
138
+ export const Change = T.Object({
139
+ id: T.String(),
140
+ kind: ChangeKind,
141
+ target: T.String(),
142
+ from: T.Optional(T.String()),
143
+ when: T.Union([When, T.Null()]),
144
+ before: T.Optional(T.Unknown()),
145
+ after: T.Optional(T.Unknown()),
146
+ delta: T.Optional(T.Record(T.String(), T.Unknown())),
147
+ origin: T.Union([T.Literal('direct'), T.Literal('propagated')]),
148
+ cause: T.Array(T.String()),
149
+ level: Level,
150
+ confidence: T.Number(),
151
+ possibleRenames: T.Optional(T.Array(T.String())),
152
+ note: T.Optional(T.String()),
153
+ }, { $id: 'Change' });
154
+ export const CHANGESET_SCHEMA = 'dsgraph/changeset@1';
155
+ export const Changeset = T.Object({
156
+ schema: T.Literal(CHANGESET_SCHEMA),
157
+ base: T.Object({ hash: T.String(), source: SourceMeta }),
158
+ head: T.Object({ hash: T.String(), source: SourceMeta }),
159
+ contexts: T.Object({
160
+ compared: T.Array(When),
161
+ partial: T.Boolean(),
162
+ }),
163
+ summary: T.Object({
164
+ counts: T.Record(T.String(), T.Integer()),
165
+ level: Level,
166
+ reasons: T.Array(T.String()),
167
+ }),
168
+ changes: T.Array(Change),
169
+ diagnostics: T.Array(Diagnostic),
170
+ }, { $id: 'Changeset' });
171
+ /** A rule result (spec section 7.4). Diagnostics from parsing are reported as findings too. */
172
+ export const Finding = T.Object({
173
+ id: T.String(),
174
+ rule: T.String(),
175
+ severity: Severity,
176
+ message: T.String(),
177
+ /** Ids of the nodes involved (tokens, groups). */
178
+ nodes: T.Array(T.String()),
179
+ /** What makes this a finding: values, paths in the graph. */
180
+ evidence: T.Optional(T.Record(T.String(), T.Unknown())),
181
+ when: T.Optional(When),
182
+ loc: T.Optional(Loc),
183
+ }, { $id: 'Finding' });
184
+ export const RuleSetting = T.Union([
185
+ T.Literal('off'),
186
+ Severity,
187
+ T.Tuple([T.Union([T.Literal('off'), Severity]), T.Record(T.String(), T.Unknown())]),
188
+ ]);
189
+ export const CONFIG_SCHEMA = 'dsgraph/config@1';
190
+ /** `dsgraph.config.json` (spec section 7.3). Every section is optional; auto-detection fills the rest. */
191
+ export const Config = T.Object({
192
+ $schema: T.Optional(T.String()),
193
+ extends: T.Optional(T.Array(T.String())),
194
+ tokens: T.Optional(T.Object({
195
+ include: T.Optional(T.Array(T.String())),
196
+ exclude: T.Optional(T.Array(T.String())),
197
+ resolver: T.Optional(T.String()),
198
+ order: T.Optional(T.Array(T.String())),
199
+ strict: T.Optional(T.Boolean()),
200
+ })),
201
+ css: T.Optional(T.Object({
202
+ include: T.Optional(T.Array(T.String())),
203
+ exclude: T.Optional(T.Array(T.String())),
204
+ prefix: T.Optional(T.String()),
205
+ /** modifier → context → selectors (`:root`, `[data-theme=dark]`, `@media (prefers-color-scheme: dark)`). */
206
+ contexts: T.Optional(T.Record(T.String(), T.Record(T.String(), T.Array(T.String())))),
207
+ remBase: T.Optional(T.Number()),
208
+ })),
209
+ layers: T.Optional(T.Record(T.String(), T.Object({ match: T.Array(T.String()), public: T.Optional(T.Boolean()) }))),
210
+ contexts: T.Optional(T.Object({
211
+ default: T.Optional(T.Record(T.String(), T.String())),
212
+ maxPermutations: T.Optional(T.Integer()),
213
+ })),
214
+ compare: T.Optional(T.Object({ equalDeltaE: T.Optional(T.Number()), ignoreExtensions: T.Optional(T.Array(T.String())) })),
215
+ renames: T.Optional(T.Record(T.String(), T.String())),
216
+ semver: T.Optional(T.Object({
217
+ levels: T.Optional(T.Record(T.String(), Level)),
218
+ imperceptible: T.Optional(T.Object({ deltaE: T.Optional(T.Number()), px: T.Optional(T.Number()) })),
219
+ })),
220
+ rules: T.Optional(T.Record(T.String(), RuleSetting)),
221
+ }, { $id: 'Config' });
222
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface ValidationResult {
2
+ ok: boolean;
3
+ errors: Array<{
4
+ path: string;
5
+ message: string;
6
+ }>;
7
+ }
8
+ export declare const validateSnapshot: (value: unknown) => ValidationResult;
9
+ export declare const validateChangeset: (value: unknown) => ValidationResult;
10
+ export declare const validateConfig: (value: unknown) => ValidationResult;
11
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD;AAWD,eAAO,MAAM,gBAAgB,UAAW,OAAO,qBAA8B,CAAA;AAC7E,eAAO,MAAM,iBAAiB,UAAW,OAAO,qBAA+B,CAAA;AAC/E,eAAO,MAAM,cAAc,UAAW,OAAO,qBAA4B,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { Value } from '@sinclair/typebox/value';
2
+ import { Changeset, Config, Snapshot } from './types.js';
3
+ /** Validation without code generation (safe under strict CSP, e.g. in browser extensions). */
4
+ function validate(schema, value) {
5
+ if (Value.Check(schema, value))
6
+ return { ok: true, errors: [] };
7
+ const errors = [...Value.Errors(schema, value)]
8
+ .slice(0, 50)
9
+ .map((e) => ({ path: e.path, message: e.message }));
10
+ return { ok: false, errors };
11
+ }
12
+ export const validateSnapshot = (value) => validate(Snapshot, value);
13
+ export const validateChangeset = (value) => validate(Changeset, value);
14
+ export const validateConfig = (value) => validate(Config, value);
15
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAOxD,8FAA8F;AAC9F,SAAS,QAAQ,CAAC,MAAe,EAAE,KAAc;IAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAC/D,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SAC5C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,34 @@
1
1
  {
2
2
  "name": "@dsgraph/schema",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.0",
4
+ "description": "Types, JSON Schemas and canonical serialization for dsgraph snapshots and changesets.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "sideEffects": false,
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./schemas/*": "./schemas/*"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "schemas"
18
+ ],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/specsure/specsure.git",
22
+ "directory": "packages/dsgraph-schema"
23
+ },
24
+ "dependencies": {
25
+ "@sinclair/typebox": "0.34.52"
26
+ },
27
+ "engines": {
28
+ "node": ">=20.19"
29
+ },
30
+ "homepage": "https://github.com/specsure/specsure/tree/main/packages/dsgraph-schema#readme",
31
+ "bugs": {
32
+ "url": "https://github.com/specsure/specsure/issues"
33
+ }
34
+ }