@usefragments/core 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.
- package/LICENSE +21 -0
- package/dist/chunk-243QYRUF.js +2145 -0
- package/dist/chunk-243QYRUF.js.map +1 -0
- package/dist/chunk-3LLRNCPX.js +111 -0
- package/dist/chunk-3LLRNCPX.js.map +1 -0
- package/dist/chunk-EIYNNS77.js +48 -0
- package/dist/chunk-EIYNNS77.js.map +1 -0
- package/dist/chunk-JNBFJ34I.js +326 -0
- package/dist/chunk-JNBFJ34I.js.map +1 -0
- package/dist/chunk-R3X7UBHU.js +228 -0
- package/dist/chunk-R3X7UBHU.js.map +1 -0
- package/dist/chunk-SH4KPIYH.js +393 -0
- package/dist/chunk-SH4KPIYH.js.map +1 -0
- package/dist/chunk-V4VQB57N.js +56 -0
- package/dist/chunk-V4VQB57N.js.map +1 -0
- package/dist/chunk-X34IA4LR.js +319 -0
- package/dist/chunk-X34IA4LR.js.map +1 -0
- package/dist/chunk-YF65VYRY.js +493 -0
- package/dist/chunk-YF65VYRY.js.map +1 -0
- package/dist/codes/index.d.ts +40 -0
- package/dist/codes/index.js +23 -0
- package/dist/codes/index.js.map +1 -0
- package/dist/compiled-types/index.d.ts +5 -0
- package/dist/compiled-types/index.js +1 -0
- package/dist/compiled-types/index.js.map +1 -0
- package/dist/generate/index.d.ts +47 -0
- package/dist/generate/index.js +11 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/governance-BOa3KyiJ.d.ts +3279 -0
- package/dist/graph/index.d.ts +66 -0
- package/dist/graph/index.js +17 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/index.d.ts +11388 -0
- package/dist/index.js +8711 -0
- package/dist/index.js.map +1 -0
- package/dist/package-identity.d.ts +42 -0
- package/dist/package-identity.js +23 -0
- package/dist/package-identity.js.map +1 -0
- package/dist/preview/index.d.ts +484 -0
- package/dist/preview/index.js +1129 -0
- package/dist/preview/index.js.map +1 -0
- package/dist/react-types.d.ts +22 -0
- package/dist/react-types.js +1 -0
- package/dist/react-types.js.map +1 -0
- package/dist/registry.d.ts +2367 -0
- package/dist/registry.js +62 -0
- package/dist/registry.js.map +1 -0
- package/dist/schemas/index.d.ts +2584 -0
- package/dist/schemas/index.js +55 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/severity.d.ts +18 -0
- package/dist/severity.js +27 -0
- package/dist/severity.js.map +1 -0
- package/dist/test-utils.d.ts +14 -0
- package/dist/test-utils.js +63 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/topology/index.d.ts +48 -0
- package/dist/topology/index.js +7 -0
- package/dist/topology/index.js.map +1 -0
- package/dist/types-xJ2xyp_G.d.ts +119 -0
- package/package.json +120 -0
- package/src/__tests__/contract-parser.test.ts +614 -0
- package/src/__tests__/dtcg-generators.test.ts +439 -0
- package/src/__tests__/dtcg-parser.test.ts +884 -0
- package/src/__tests__/preview-runtime.test.tsx +111 -0
- package/src/__tests__/schema.test.ts +31 -0
- package/src/__tests__/severity.test.ts +34 -0
- package/src/__tests__/style-comparison.test.ts +662 -0
- package/src/__tests__/tokens-compat.test.ts +51 -0
- package/src/agent-format.test.ts +105 -0
- package/src/agent-format.ts +141 -0
- package/src/bundle.ts +149 -0
- package/src/codes/__tests__/codes.test.ts +73 -0
- package/src/codes/codes.ts +463 -0
- package/src/codes/index.ts +7 -0
- package/src/codes/source-finding-bridge.ts +113 -0
- package/src/compiled-types/index.ts +293 -0
- package/src/component-contract.ts +231 -0
- package/src/component-discovery.ts +80 -0
- package/src/composition.test.ts +262 -0
- package/src/composition.ts +318 -0
- package/src/config-paths.test.ts +78 -0
- package/src/config-paths.ts +47 -0
- package/src/config.ts +18 -0
- package/src/conform-prove.test.ts +274 -0
- package/src/conform-prove.ts +326 -0
- package/src/conform.ts +160 -0
- package/src/constants.ts +114 -0
- package/src/context.ts +2 -0
- package/src/contract/fixture.ts +110 -0
- package/src/contract/hash.test.ts +86 -0
- package/src/contract/hash.ts +195 -0
- package/src/contract/index.ts +43 -0
- package/src/contract/preimage.test.ts +254 -0
- package/src/contract/preimage.ts +365 -0
- package/src/contract/stamp.test.ts +100 -0
- package/src/contract/stamp.ts +105 -0
- package/src/contract-parser.ts +141 -0
- package/src/defineFragment.test.ts +257 -0
- package/src/defineFragment.ts +293 -0
- package/src/dtcg-generators.ts +324 -0
- package/src/dtcg-parser.ts +1 -0
- package/src/dtcg.ts +237 -0
- package/src/facts/__snapshots__/facts.test.ts.snap +124 -0
- package/src/facts/builders.ts +835 -0
- package/src/facts/compile.ts +422 -0
- package/src/facts/fact-index.ts +394 -0
- package/src/facts/facts.test.ts +494 -0
- package/src/facts/ids.ts +125 -0
- package/src/facts/index.ts +119 -0
- package/src/facts/types.ts +614 -0
- package/src/figma.ts +263 -0
- package/src/fragment-types.ts +214 -0
- package/src/generate/generate.test.ts +594 -0
- package/src/generate/index.ts +438 -0
- package/src/governance-integrity.test.ts +186 -0
- package/src/governance-integrity.ts +282 -0
- package/src/governance.test.ts +300 -0
- package/src/governance.ts +605 -0
- package/src/governance.type-test.ts +75 -0
- package/src/graph/engine.ts +446 -0
- package/src/graph/graph.test.ts +746 -0
- package/src/graph/index.ts +32 -0
- package/src/graph/serialization.ts +55 -0
- package/src/graph/types.ts +178 -0
- package/src/index.ts +891 -0
- package/src/local-canonical.ts +102 -0
- package/src/mcp-snapshot.ts +222 -0
- package/src/package-identity-match.ts +33 -0
- package/src/package-identity.generated.ts +233 -0
- package/src/package-identity.test.ts +99 -0
- package/src/package-identity.ts +157 -0
- package/src/performance-presets.ts +142 -0
- package/src/preview/comparison-artifact.test.ts +228 -0
- package/src/preview/comparison-artifact.ts +181 -0
- package/src/preview/comparison-context.ts +93 -0
- package/src/preview/comparison-evidence.ts +112 -0
- package/src/preview/comparison-format.ts +21 -0
- package/src/preview/comparison-presentation.ts +187 -0
- package/src/preview/comparison-references.test.ts +430 -0
- package/src/preview/comparison-references.ts +72 -0
- package/src/preview/comparison-score.ts +59 -0
- package/src/preview/comparison-styles.ts +197 -0
- package/src/preview/comparison.test.ts +559 -0
- package/src/preview/comparison.ts +488 -0
- package/src/preview/index.ts +10 -0
- package/src/preview/types.ts +309 -0
- package/src/preview/validation.test.ts +290 -0
- package/src/preview/validation.ts +356 -0
- package/src/preview-runtime.tsx +144 -0
- package/src/raw-html-canonical.test.ts +41 -0
- package/src/raw-html-canonical.ts +179 -0
- package/src/react-types.ts +21 -0
- package/src/registry-install-plan.ts +344 -0
- package/src/registry.test.ts +245 -0
- package/src/registry.ts +369 -0
- package/src/rules/a11y-required-accessible-name.ts +93 -0
- package/src/rules/color-math.test.ts +72 -0
- package/src/rules/color-math.ts +192 -0
- package/src/rules/components-forbidden-prop-value.ts +108 -0
- package/src/rules/components-prefer-library.ts +943 -0
- package/src/rules/components-unknown-prop.ts +94 -0
- package/src/rules/composition-pattern-schema.ts +125 -0
- package/src/rules/composition-pattern.test.ts +320 -0
- package/src/rules/composition-pattern.ts +271 -0
- package/src/rules/emit-gate.test.ts +42 -0
- package/src/rules/emit-gate.ts +60 -0
- package/src/rules/finding.ts +54 -0
- package/src/rules/index.ts +235 -0
- package/src/rules/jsx-preferred-component.ts +68 -0
- package/src/rules/jsx-preferred-import-path.ts +67 -0
- package/src/rules/presets.ts +57 -0
- package/src/rules/props-invalid-value.ts +115 -0
- package/src/rules/rules.test.ts +3636 -0
- package/src/rules/spacing-resolution.ts +184 -0
- package/src/rules/styles-no-raw-color.ts +329 -0
- package/src/rules/styles-no-raw-dimensions.ts +357 -0
- package/src/rules/styles-no-raw-spacing.ts +236 -0
- package/src/rules/styles-no-raw-typography.ts +237 -0
- package/src/rules/tailwind-arbitrary-color.test.ts +128 -0
- package/src/rules/tailwind-arbitrary-color.ts +93 -0
- package/src/rules/tailwind-arbitrary-spacing.test.ts +157 -0
- package/src/rules/tailwind-arbitrary-spacing.ts +120 -0
- package/src/rules/tailwind-forbidden-palette.test.ts +116 -0
- package/src/rules/tailwind-forbidden-palette.ts +107 -0
- package/src/rules/tailwind-off-scale-spacing-token.test.ts +100 -0
- package/src/rules/tailwind-off-scale-spacing-token.ts +108 -0
- package/src/rules/tailwind-raw-color-via-token.test.ts +108 -0
- package/src/rules/tailwind-raw-color-via-token.ts +82 -0
- package/src/rules/tailwind-rule-utils.ts +106 -0
- package/src/rules/tailwind-unknown-class.test.ts +157 -0
- package/src/rules/tailwind-unknown-class.ts +121 -0
- package/src/rules/taxonomy.test.ts +238 -0
- package/src/rules/theme-no-theme-coupled-literal.ts +132 -0
- package/src/rules/tiers.ts +111 -0
- package/src/rules/tokens-css-vars-must-be-defined.test.ts +244 -0
- package/src/rules/tokens-css-vars-must-be-defined.ts +156 -0
- package/src/rules/tokens-require-dual-fallback.ts +78 -0
- package/src/rules/types.ts +27 -0
- package/src/rules/utils.test.ts +110 -0
- package/src/rules/utils.ts +599 -0
- package/src/schema.ts +427 -0
- package/src/schemas/index.ts +275 -0
- package/src/schemas/schemas.test.ts +124 -0
- package/src/severity.ts +54 -0
- package/src/storyAdapter.test.ts +571 -0
- package/src/storyAdapter.ts +761 -0
- package/src/storyFilters.test.ts +350 -0
- package/src/storyFilters.ts +253 -0
- package/src/storybook-csf.ts +11 -0
- package/src/style-comparison.ts +423 -0
- package/src/test-utils.ts +68 -0
- package/src/token-parser.ts +2 -0
- package/src/token-types.ts +287 -0
- package/src/tokens/categories.ts +131 -0
- package/src/tokens/color.ts +193 -0
- package/src/tokens/design-token-parser.test.ts +159 -0
- package/src/tokens/design-token-parser.ts +402 -0
- package/src/tokens/dtcg.ts +428 -0
- package/src/tokens/index.ts +130 -0
- package/src/tokens/lookup.ts +19 -0
- package/src/tokens/scss.ts +171 -0
- package/src/tokens/tailwind-v4.ts +187 -0
- package/src/tokens/types.ts +43 -0
- package/src/topology/index.ts +9 -0
- package/src/topology/resolve-area.test.ts +174 -0
- package/src/topology/resolve-area.ts +215 -0
- package/src/types.ts +1057 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
// src/package-identity.generated.ts
|
|
2
|
+
var OWNED_PACKAGE_AUTHORING_EPOCH = "current";
|
|
3
|
+
var OWNED_PACKAGE_IDENTITY_SOURCE_SHA256 = "e1777bd86647150762a454d021343627fc8d4ef73067c9bf5e61095866635baf";
|
|
4
|
+
var OWNED_PACKAGE_ROOT_POLICIES = [
|
|
5
|
+
{
|
|
6
|
+
id: "core",
|
|
7
|
+
status: "retained",
|
|
8
|
+
legacyRoot: "@fragments-sdk/core",
|
|
9
|
+
currentRoot: "@usefragments/core",
|
|
10
|
+
targetSpecifier: "@usefragments/core",
|
|
11
|
+
authoring: {
|
|
12
|
+
legacy: "@fragments-sdk/core",
|
|
13
|
+
current: "@usefragments/core"
|
|
14
|
+
},
|
|
15
|
+
v1Projection: "@fragments-sdk/core",
|
|
16
|
+
readEquivalents: ["@fragments-sdk/core", "@usefragments/core"]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "ui",
|
|
20
|
+
status: "retained",
|
|
21
|
+
legacyRoot: "@fragments-sdk/ui",
|
|
22
|
+
currentRoot: "@usefragments/ui",
|
|
23
|
+
targetSpecifier: "@usefragments/ui",
|
|
24
|
+
authoring: {
|
|
25
|
+
legacy: "@fragments-sdk/ui",
|
|
26
|
+
current: "@usefragments/ui"
|
|
27
|
+
},
|
|
28
|
+
v1Projection: "@fragments-sdk/ui",
|
|
29
|
+
readEquivalents: ["@fragments-sdk/ui", "@usefragments/ui"]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: "cli",
|
|
33
|
+
status: "retained",
|
|
34
|
+
legacyRoot: "@fragments-sdk/cli",
|
|
35
|
+
currentRoot: "@usefragments/cli",
|
|
36
|
+
targetSpecifier: "@usefragments/cli",
|
|
37
|
+
authoring: {
|
|
38
|
+
legacy: "@fragments-sdk/cli",
|
|
39
|
+
current: "@usefragments/cli"
|
|
40
|
+
},
|
|
41
|
+
v1Projection: "@fragments-sdk/cli",
|
|
42
|
+
readEquivalents: ["@fragments-sdk/cli", "@usefragments/cli"]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: "preview",
|
|
46
|
+
status: "moved",
|
|
47
|
+
legacyRoot: "@fragments-sdk/preview",
|
|
48
|
+
currentRoot: null,
|
|
49
|
+
targetSpecifier: "@usefragments/core/preview",
|
|
50
|
+
authoring: {
|
|
51
|
+
legacy: "@fragments-sdk/preview",
|
|
52
|
+
current: "@usefragments/core/preview"
|
|
53
|
+
},
|
|
54
|
+
v1Projection: "@fragments-sdk/preview",
|
|
55
|
+
readEquivalents: ["@fragments-sdk/preview", "@usefragments/core/preview"]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: "extract",
|
|
59
|
+
status: "retired",
|
|
60
|
+
legacyRoot: "@fragments-sdk/extract",
|
|
61
|
+
currentRoot: null,
|
|
62
|
+
targetSpecifier: null,
|
|
63
|
+
authoring: {
|
|
64
|
+
legacy: "@fragments-sdk/extract",
|
|
65
|
+
current: null
|
|
66
|
+
},
|
|
67
|
+
v1Projection: "@fragments-sdk/extract",
|
|
68
|
+
readEquivalents: ["@fragments-sdk/extract"]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "context",
|
|
72
|
+
status: "retired",
|
|
73
|
+
legacyRoot: "@fragments-sdk/context",
|
|
74
|
+
currentRoot: null,
|
|
75
|
+
targetSpecifier: null,
|
|
76
|
+
authoring: {
|
|
77
|
+
legacy: "@fragments-sdk/context",
|
|
78
|
+
current: null
|
|
79
|
+
},
|
|
80
|
+
v1Projection: "@fragments-sdk/context",
|
|
81
|
+
readEquivalents: ["@fragments-sdk/context"]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: "compiler",
|
|
85
|
+
status: "retired",
|
|
86
|
+
legacyRoot: "@fragments-sdk/compiler",
|
|
87
|
+
currentRoot: null,
|
|
88
|
+
targetSpecifier: null,
|
|
89
|
+
authoring: {
|
|
90
|
+
legacy: "@fragments-sdk/compiler",
|
|
91
|
+
current: null
|
|
92
|
+
},
|
|
93
|
+
v1Projection: "@fragments-sdk/compiler",
|
|
94
|
+
readEquivalents: ["@fragments-sdk/compiler"]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: "classifier",
|
|
98
|
+
status: "retired",
|
|
99
|
+
legacyRoot: "@fragments-sdk/classifier",
|
|
100
|
+
currentRoot: null,
|
|
101
|
+
targetSpecifier: null,
|
|
102
|
+
authoring: {
|
|
103
|
+
legacy: "@fragments-sdk/classifier",
|
|
104
|
+
current: null
|
|
105
|
+
},
|
|
106
|
+
v1Projection: "@fragments-sdk/classifier",
|
|
107
|
+
readEquivalents: ["@fragments-sdk/classifier"]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: "viewer",
|
|
111
|
+
status: "retired",
|
|
112
|
+
legacyRoot: "@fragments-sdk/viewer",
|
|
113
|
+
currentRoot: null,
|
|
114
|
+
targetSpecifier: null,
|
|
115
|
+
authoring: {
|
|
116
|
+
legacy: "@fragments-sdk/viewer",
|
|
117
|
+
current: null
|
|
118
|
+
},
|
|
119
|
+
v1Projection: "@fragments-sdk/viewer",
|
|
120
|
+
readEquivalents: ["@fragments-sdk/viewer"]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
id: "mcp",
|
|
124
|
+
status: "retired",
|
|
125
|
+
legacyRoot: "@fragments-sdk/mcp",
|
|
126
|
+
currentRoot: null,
|
|
127
|
+
targetSpecifier: null,
|
|
128
|
+
authoring: {
|
|
129
|
+
legacy: "@fragments-sdk/mcp",
|
|
130
|
+
current: null
|
|
131
|
+
},
|
|
132
|
+
v1Projection: "@fragments-sdk/mcp",
|
|
133
|
+
readEquivalents: ["@fragments-sdk/mcp"]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: "lsp",
|
|
137
|
+
status: "retired",
|
|
138
|
+
legacyRoot: "@fragments-sdk/lsp",
|
|
139
|
+
currentRoot: null,
|
|
140
|
+
targetSpecifier: null,
|
|
141
|
+
authoring: {
|
|
142
|
+
legacy: "@fragments-sdk/lsp",
|
|
143
|
+
current: null
|
|
144
|
+
},
|
|
145
|
+
v1Projection: "@fragments-sdk/lsp",
|
|
146
|
+
readEquivalents: ["@fragments-sdk/lsp"]
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
id: "bench",
|
|
150
|
+
status: "retired",
|
|
151
|
+
legacyRoot: "@fragments-sdk/bench",
|
|
152
|
+
currentRoot: null,
|
|
153
|
+
targetSpecifier: null,
|
|
154
|
+
authoring: {
|
|
155
|
+
legacy: "@fragments-sdk/bench",
|
|
156
|
+
current: null
|
|
157
|
+
},
|
|
158
|
+
v1Projection: "@fragments-sdk/bench",
|
|
159
|
+
readEquivalents: ["@fragments-sdk/bench"]
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
id: "govern",
|
|
163
|
+
status: "retired",
|
|
164
|
+
legacyRoot: "@fragments-sdk/govern",
|
|
165
|
+
currentRoot: null,
|
|
166
|
+
targetSpecifier: null,
|
|
167
|
+
authoring: {
|
|
168
|
+
legacy: "@fragments-sdk/govern",
|
|
169
|
+
current: null
|
|
170
|
+
},
|
|
171
|
+
v1Projection: "@fragments-sdk/govern",
|
|
172
|
+
readEquivalents: ["@fragments-sdk/govern"]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: "webmcp",
|
|
176
|
+
status: "retired",
|
|
177
|
+
legacyRoot: "@fragments-sdk/webmcp",
|
|
178
|
+
currentRoot: null,
|
|
179
|
+
targetSpecifier: null,
|
|
180
|
+
authoring: {
|
|
181
|
+
legacy: "@fragments-sdk/webmcp",
|
|
182
|
+
current: null
|
|
183
|
+
},
|
|
184
|
+
v1Projection: "@fragments-sdk/webmcp",
|
|
185
|
+
readEquivalents: ["@fragments-sdk/webmcp"]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
id: "skills",
|
|
189
|
+
status: "retired",
|
|
190
|
+
legacyRoot: "@fragments-sdk/skills",
|
|
191
|
+
currentRoot: null,
|
|
192
|
+
targetSpecifier: null,
|
|
193
|
+
authoring: {
|
|
194
|
+
legacy: "@fragments-sdk/skills",
|
|
195
|
+
current: null
|
|
196
|
+
},
|
|
197
|
+
v1Projection: "@fragments-sdk/skills",
|
|
198
|
+
readEquivalents: ["@fragments-sdk/skills"]
|
|
199
|
+
}
|
|
200
|
+
];
|
|
201
|
+
var OWNED_PACKAGE_EXPLICIT_POLICIES = [
|
|
202
|
+
{
|
|
203
|
+
id: "cli/core",
|
|
204
|
+
status: "moved",
|
|
205
|
+
legacySpecifier: "@fragments-sdk/cli/core",
|
|
206
|
+
currentSpecifier: "@usefragments/core",
|
|
207
|
+
authoring: {
|
|
208
|
+
legacy: "@fragments-sdk/core",
|
|
209
|
+
current: "@usefragments/core"
|
|
210
|
+
},
|
|
211
|
+
v1Projection: "@fragments-sdk/cli/core",
|
|
212
|
+
readEquivalents: ["@fragments-sdk/cli/core", "@fragments-sdk/core", "@usefragments/core"],
|
|
213
|
+
matchCurrentForV1: false
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
id: "preview",
|
|
217
|
+
status: "moved",
|
|
218
|
+
legacySpecifier: "@fragments-sdk/preview",
|
|
219
|
+
currentSpecifier: "@usefragments/core/preview",
|
|
220
|
+
authoring: {
|
|
221
|
+
legacy: "@fragments-sdk/preview",
|
|
222
|
+
current: "@usefragments/core/preview"
|
|
223
|
+
},
|
|
224
|
+
v1Projection: "@fragments-sdk/preview",
|
|
225
|
+
readEquivalents: ["@fragments-sdk/preview", "@usefragments/core/preview"],
|
|
226
|
+
matchCurrentForV1: true
|
|
227
|
+
}
|
|
228
|
+
];
|
|
229
|
+
|
|
230
|
+
// src/package-identity.ts
|
|
231
|
+
function appendSubpath(root, suffix) {
|
|
232
|
+
if (!root) return void 0;
|
|
233
|
+
return suffix ? `${root}/${suffix}` : root;
|
|
234
|
+
}
|
|
235
|
+
function rootSuffix(specifier, root) {
|
|
236
|
+
if (specifier === root) return "";
|
|
237
|
+
const prefix = `${root}/`;
|
|
238
|
+
return specifier.startsWith(prefix) ? specifier.slice(prefix.length) : null;
|
|
239
|
+
}
|
|
240
|
+
function authoringValue(policy) {
|
|
241
|
+
return policy.authoring[OWNED_PACKAGE_AUTHORING_EPOCH] ?? void 0;
|
|
242
|
+
}
|
|
243
|
+
function resolveExplicit(specifier) {
|
|
244
|
+
for (const policy of OWNED_PACKAGE_EXPLICIT_POLICIES) {
|
|
245
|
+
if (specifier !== policy.legacySpecifier && specifier !== policy.currentSpecifier) continue;
|
|
246
|
+
if (specifier === policy.currentSpecifier && !policy.matchCurrentForV1) continue;
|
|
247
|
+
return {
|
|
248
|
+
input: specifier,
|
|
249
|
+
owned: true,
|
|
250
|
+
identityId: policy.id,
|
|
251
|
+
status: policy.status,
|
|
252
|
+
canonicalSpecifier: policy.currentSpecifier ?? void 0,
|
|
253
|
+
authoringSpecifier: authoringValue(policy),
|
|
254
|
+
v1Specifier: policy.v1Projection,
|
|
255
|
+
readEquivalents: policy.readEquivalents
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
return void 0;
|
|
259
|
+
}
|
|
260
|
+
function resolveRoot(specifier) {
|
|
261
|
+
for (const policy of OWNED_PACKAGE_ROOT_POLICIES) {
|
|
262
|
+
const legacySuffix = rootSuffix(specifier, policy.legacyRoot);
|
|
263
|
+
const currentSuffix = policy.currentRoot ? rootSuffix(specifier, policy.currentRoot) : null;
|
|
264
|
+
const suffix = legacySuffix ?? currentSuffix;
|
|
265
|
+
if (suffix === null) continue;
|
|
266
|
+
const canonicalSpecifier = policy.status === "retained" ? appendSubpath(policy.currentRoot, suffix) : suffix === "" ? policy.targetSpecifier ?? void 0 : void 0;
|
|
267
|
+
const authoredRoot = authoringValue(policy);
|
|
268
|
+
return {
|
|
269
|
+
input: specifier,
|
|
270
|
+
owned: true,
|
|
271
|
+
identityId: policy.id,
|
|
272
|
+
status: policy.status,
|
|
273
|
+
canonicalSpecifier,
|
|
274
|
+
authoringSpecifier: appendSubpath(authoredRoot ?? null, suffix),
|
|
275
|
+
v1Specifier: appendSubpath(policy.v1Projection, suffix) ?? specifier,
|
|
276
|
+
readEquivalents: policy.readEquivalents.map((root) => appendSubpath(root, suffix) ?? root)
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
return void 0;
|
|
280
|
+
}
|
|
281
|
+
function resolveOwnedPackageImport(specifier) {
|
|
282
|
+
return resolveExplicit(specifier) ?? resolveRoot(specifier) ?? {
|
|
283
|
+
input: specifier,
|
|
284
|
+
owned: false,
|
|
285
|
+
v1Specifier: specifier
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
function canonicalizeOwnedImport(specifier) {
|
|
289
|
+
return resolveOwnedPackageImport(specifier).canonicalSpecifier ?? specifier;
|
|
290
|
+
}
|
|
291
|
+
function authorOwnedImport(specifier) {
|
|
292
|
+
return resolveOwnedPackageImport(specifier).authoringSpecifier ?? specifier;
|
|
293
|
+
}
|
|
294
|
+
function projectV1OwnedImportIdentity(specifier) {
|
|
295
|
+
return resolveOwnedPackageImport(specifier).v1Specifier;
|
|
296
|
+
}
|
|
297
|
+
function ownedImportEquivalents(specifier) {
|
|
298
|
+
return resolveOwnedPackageImport(specifier).readEquivalents ?? [specifier];
|
|
299
|
+
}
|
|
300
|
+
function mapComponentId(value, mapPackage) {
|
|
301
|
+
const separator = value.lastIndexOf("#");
|
|
302
|
+
if (separator <= 0 || separator === value.length - 1) return value;
|
|
303
|
+
const packageName = value.slice(0, separator);
|
|
304
|
+
const componentName = value.slice(separator + 1);
|
|
305
|
+
return `${mapPackage(packageName)}#${componentName}`;
|
|
306
|
+
}
|
|
307
|
+
function canonicalizeOwnedComponentId(value) {
|
|
308
|
+
return mapComponentId(value, canonicalizeOwnedImport);
|
|
309
|
+
}
|
|
310
|
+
function projectV1OwnedComponentId(value) {
|
|
311
|
+
return mapComponentId(value, projectV1OwnedImportIdentity);
|
|
312
|
+
}
|
|
313
|
+
var OWNED_PACKAGE_IDENTITY_EPOCH = OWNED_PACKAGE_AUTHORING_EPOCH;
|
|
314
|
+
|
|
315
|
+
export {
|
|
316
|
+
OWNED_PACKAGE_IDENTITY_SOURCE_SHA256,
|
|
317
|
+
resolveOwnedPackageImport,
|
|
318
|
+
canonicalizeOwnedImport,
|
|
319
|
+
authorOwnedImport,
|
|
320
|
+
projectV1OwnedImportIdentity,
|
|
321
|
+
ownedImportEquivalents,
|
|
322
|
+
canonicalizeOwnedComponentId,
|
|
323
|
+
projectV1OwnedComponentId,
|
|
324
|
+
OWNED_PACKAGE_IDENTITY_EPOCH
|
|
325
|
+
};
|
|
326
|
+
//# sourceMappingURL=chunk-JNBFJ34I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/package-identity.generated.ts","../src/package-identity.ts"],"sourcesContent":["// This file is generated by scripts/generate-owned-package-identity-module.mjs.\n// Edit owned-package-identities.json, then regenerate. Do not edit by hand.\n\nexport const OWNED_PACKAGE_AUTHORING_EPOCH = \"current\" as const;\nexport const OWNED_PACKAGE_IDENTITY_SOURCE_SHA256 =\n \"e1777bd86647150762a454d021343627fc8d4ef73067c9bf5e61095866635baf\" as const;\n\nexport const OWNED_PACKAGE_ROOT_POLICIES = [\n {\n id: \"core\",\n status: \"retained\",\n legacyRoot: \"@fragments-sdk/core\",\n currentRoot: \"@usefragments/core\",\n targetSpecifier: \"@usefragments/core\",\n authoring: {\n legacy: \"@fragments-sdk/core\",\n current: \"@usefragments/core\",\n },\n v1Projection: \"@fragments-sdk/core\",\n readEquivalents: [\"@fragments-sdk/core\", \"@usefragments/core\"],\n },\n {\n id: \"ui\",\n status: \"retained\",\n legacyRoot: \"@fragments-sdk/ui\",\n currentRoot: \"@usefragments/ui\",\n targetSpecifier: \"@usefragments/ui\",\n authoring: {\n legacy: \"@fragments-sdk/ui\",\n current: \"@usefragments/ui\",\n },\n v1Projection: \"@fragments-sdk/ui\",\n readEquivalents: [\"@fragments-sdk/ui\", \"@usefragments/ui\"],\n },\n {\n id: \"cli\",\n status: \"retained\",\n legacyRoot: \"@fragments-sdk/cli\",\n currentRoot: \"@usefragments/cli\",\n targetSpecifier: \"@usefragments/cli\",\n authoring: {\n legacy: \"@fragments-sdk/cli\",\n current: \"@usefragments/cli\",\n },\n v1Projection: \"@fragments-sdk/cli\",\n readEquivalents: [\"@fragments-sdk/cli\", \"@usefragments/cli\"],\n },\n {\n id: \"preview\",\n status: \"moved\",\n legacyRoot: \"@fragments-sdk/preview\",\n currentRoot: null,\n targetSpecifier: \"@usefragments/core/preview\",\n authoring: {\n legacy: \"@fragments-sdk/preview\",\n current: \"@usefragments/core/preview\",\n },\n v1Projection: \"@fragments-sdk/preview\",\n readEquivalents: [\"@fragments-sdk/preview\", \"@usefragments/core/preview\"],\n },\n {\n id: \"extract\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/extract\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/extract\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/extract\",\n readEquivalents: [\"@fragments-sdk/extract\"],\n },\n {\n id: \"context\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/context\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/context\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/context\",\n readEquivalents: [\"@fragments-sdk/context\"],\n },\n {\n id: \"compiler\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/compiler\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/compiler\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/compiler\",\n readEquivalents: [\"@fragments-sdk/compiler\"],\n },\n {\n id: \"classifier\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/classifier\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/classifier\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/classifier\",\n readEquivalents: [\"@fragments-sdk/classifier\"],\n },\n {\n id: \"viewer\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/viewer\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/viewer\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/viewer\",\n readEquivalents: [\"@fragments-sdk/viewer\"],\n },\n {\n id: \"mcp\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/mcp\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/mcp\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/mcp\",\n readEquivalents: [\"@fragments-sdk/mcp\"],\n },\n {\n id: \"lsp\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/lsp\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/lsp\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/lsp\",\n readEquivalents: [\"@fragments-sdk/lsp\"],\n },\n {\n id: \"bench\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/bench\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/bench\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/bench\",\n readEquivalents: [\"@fragments-sdk/bench\"],\n },\n {\n id: \"govern\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/govern\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/govern\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/govern\",\n readEquivalents: [\"@fragments-sdk/govern\"],\n },\n {\n id: \"webmcp\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/webmcp\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/webmcp\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/webmcp\",\n readEquivalents: [\"@fragments-sdk/webmcp\"],\n },\n {\n id: \"skills\",\n status: \"retired\",\n legacyRoot: \"@fragments-sdk/skills\",\n currentRoot: null,\n targetSpecifier: null,\n authoring: {\n legacy: \"@fragments-sdk/skills\",\n current: null,\n },\n v1Projection: \"@fragments-sdk/skills\",\n readEquivalents: [\"@fragments-sdk/skills\"],\n },\n] as const;\n\nexport const OWNED_PACKAGE_EXPLICIT_POLICIES = [\n {\n id: \"cli/core\",\n status: \"moved\",\n legacySpecifier: \"@fragments-sdk/cli/core\",\n currentSpecifier: \"@usefragments/core\",\n authoring: {\n legacy: \"@fragments-sdk/core\",\n current: \"@usefragments/core\",\n },\n v1Projection: \"@fragments-sdk/cli/core\",\n readEquivalents: [\"@fragments-sdk/cli/core\", \"@fragments-sdk/core\", \"@usefragments/core\"],\n matchCurrentForV1: false,\n },\n {\n id: \"preview\",\n status: \"moved\",\n legacySpecifier: \"@fragments-sdk/preview\",\n currentSpecifier: \"@usefragments/core/preview\",\n authoring: {\n legacy: \"@fragments-sdk/preview\",\n current: \"@usefragments/core/preview\",\n },\n v1Projection: \"@fragments-sdk/preview\",\n readEquivalents: [\"@fragments-sdk/preview\", \"@usefragments/core/preview\"],\n matchCurrentForV1: true,\n },\n] as const;\n","import {\n OWNED_PACKAGE_AUTHORING_EPOCH,\n OWNED_PACKAGE_EXPLICIT_POLICIES,\n OWNED_PACKAGE_IDENTITY_SOURCE_SHA256,\n OWNED_PACKAGE_ROOT_POLICIES,\n} from \"./package-identity.generated.js\";\n\nexport type OwnedPackageStatus = \"retained\" | \"moved\" | \"retired\";\n\nexport interface OwnedPackageIdentityResolution {\n readonly input: string;\n readonly owned: boolean;\n readonly identityId?: string;\n readonly status?: OwnedPackageStatus;\n /** Supported public read target. Absent for retired identities. */\n readonly canonicalSpecifier?: string;\n /** What first-party generators write in the active authoring epoch. */\n readonly authoringSpecifier?: string;\n /** Permanent legacy spelling used only inside the fcid-preimage:v1 domain. */\n readonly v1Specifier: string;\n /** Supported public spellings for this exact logical read identity. */\n readonly readEquivalents?: readonly string[];\n}\n\ntype ExplicitPolicy = (typeof OWNED_PACKAGE_EXPLICIT_POLICIES)[number];\ntype RootPolicy = (typeof OWNED_PACKAGE_ROOT_POLICIES)[number];\n\nfunction appendSubpath(root: string | null, suffix: string): string | undefined {\n if (!root) return undefined;\n return suffix ? `${root}/${suffix}` : root;\n}\n\nfunction rootSuffix(specifier: string, root: string): string | null {\n if (specifier === root) return \"\";\n const prefix = `${root}/`;\n return specifier.startsWith(prefix) ? specifier.slice(prefix.length) : null;\n}\n\nfunction authoringValue(policy: {\n readonly authoring: { readonly legacy: string; readonly current: string | null };\n}): string | undefined {\n return policy.authoring[OWNED_PACKAGE_AUTHORING_EPOCH] ?? undefined;\n}\n\nfunction resolveExplicit(specifier: string): OwnedPackageIdentityResolution | undefined {\n for (const policy of OWNED_PACKAGE_EXPLICIT_POLICIES) {\n if (specifier !== policy.legacySpecifier && specifier !== policy.currentSpecifier) continue;\n\n // A target can also be the canonical identity of another package. The\n // historical spelling is always unambiguous. Current targets participate\n // here only when the policy explicitly owns the v1 projection (Preview ->\n // Core/preview); CLI/core deliberately stays distinct from Core root.\n if (specifier === policy.currentSpecifier && !policy.matchCurrentForV1) continue;\n\n return {\n input: specifier,\n owned: true,\n identityId: policy.id,\n status: policy.status,\n canonicalSpecifier: policy.currentSpecifier ?? undefined,\n authoringSpecifier: authoringValue(policy),\n v1Specifier: policy.v1Projection,\n readEquivalents: policy.readEquivalents,\n };\n }\n return undefined;\n}\n\nfunction resolveRoot(specifier: string): OwnedPackageIdentityResolution | undefined {\n for (const policy of OWNED_PACKAGE_ROOT_POLICIES) {\n const legacySuffix = rootSuffix(specifier, policy.legacyRoot);\n const currentSuffix = policy.currentRoot ? rootSuffix(specifier, policy.currentRoot) : null;\n const suffix = legacySuffix ?? currentSuffix;\n if (suffix === null) continue;\n\n const canonicalSpecifier =\n policy.status === \"retained\"\n ? appendSubpath(policy.currentRoot, suffix)\n : suffix === \"\"\n ? (policy.targetSpecifier ?? undefined)\n : undefined;\n const authoredRoot = authoringValue(policy);\n\n return {\n input: specifier,\n owned: true,\n identityId: policy.id,\n status: policy.status,\n canonicalSpecifier,\n authoringSpecifier: appendSubpath(authoredRoot ?? null, suffix),\n v1Specifier: appendSubpath(policy.v1Projection, suffix) ?? specifier,\n readEquivalents: policy.readEquivalents.map((root) => appendSubpath(root, suffix) ?? root),\n };\n }\n return undefined;\n}\n\n/**\n * Resolve only exact Fragments-owned npm roots/subpaths. Unknown packages and\n * arbitrary strings are intentionally opaque; this is not a substring rewrite.\n */\nexport function resolveOwnedPackageImport(specifier: string): OwnedPackageIdentityResolution {\n return (\n resolveExplicit(specifier) ??\n resolveRoot(specifier) ?? {\n input: specifier,\n owned: false,\n v1Specifier: specifier,\n }\n );\n}\n\n/**\n * Canonical current-read spelling. Retired/unknown identities are returned\n * unchanged so a caller cannot accidentally expose a private @repo/* target.\n */\nexport function canonicalizeOwnedImport(specifier: string): string {\n return resolveOwnedPackageImport(specifier).canonicalSpecifier ?? specifier;\n}\n\n/** Active-epoch spelling for generators; retired/unknown inputs stay unchanged. */\nexport function authorOwnedImport(specifier: string): string {\n return resolveOwnedPackageImport(specifier).authoringSpecifier ?? specifier;\n}\n\n/**\n * Permanent compatibility encoder for fcid-preimage:v1 only. Never use this\n * result for source edits, suggestions, provenance, or generated guidance.\n */\nexport function projectV1OwnedImportIdentity(specifier: string): string {\n return resolveOwnedPackageImport(specifier).v1Specifier;\n}\n\nexport function ownedImportEquivalents(specifier: string): readonly string[] {\n return resolveOwnedPackageImport(specifier).readEquivalents ?? [specifier];\n}\n\nfunction mapComponentId(value: string, mapPackage: (packageName: string) => string): string {\n const separator = value.lastIndexOf(\"#\");\n if (separator <= 0 || separator === value.length - 1) return value;\n const packageName = value.slice(0, separator);\n const componentName = value.slice(separator + 1);\n return `${mapPackage(packageName)}#${componentName}`;\n}\n\nexport function canonicalizeOwnedComponentId(value: string): string {\n return mapComponentId(value, canonicalizeOwnedImport);\n}\n\n/** fcid-preimage:v1 component-id compatibility; subject to the same restriction. */\nexport function projectV1OwnedComponentId(value: string): string {\n return mapComponentId(value, projectV1OwnedImportIdentity);\n}\n\n/** Exposed for diagnostics and generator tests, not as a second policy owner. */\nexport const OWNED_PACKAGE_IDENTITY_EPOCH = OWNED_PACKAGE_AUTHORING_EPOCH;\nexport { OWNED_PACKAGE_IDENTITY_SOURCE_SHA256 };\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import {
|
|
2
|
+
legacySeverityLevelSchema,
|
|
3
|
+
severityFromLevel,
|
|
4
|
+
severityLevel,
|
|
5
|
+
severityLevelSchema,
|
|
6
|
+
severitySchema
|
|
7
|
+
} from "./chunk-V4VQB57N.js";
|
|
8
|
+
|
|
9
|
+
// src/schemas/index.ts
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
var factLocationSchema = z.object({
|
|
12
|
+
file: z.string(),
|
|
13
|
+
line: z.number().int().nonnegative(),
|
|
14
|
+
column: z.number().int().nonnegative(),
|
|
15
|
+
endLine: z.number().int().nonnegative().optional(),
|
|
16
|
+
endColumn: z.number().int().nonnegative().optional()
|
|
17
|
+
});
|
|
18
|
+
var findingReplacePropValueFixSchema = z.object({
|
|
19
|
+
kind: z.literal("replacePropValue"),
|
|
20
|
+
title: z.string(),
|
|
21
|
+
prop: z.string(),
|
|
22
|
+
value: z.unknown(),
|
|
23
|
+
deterministic: z.boolean().optional()
|
|
24
|
+
});
|
|
25
|
+
var findingReplaceStyleValueFixSchema = z.object({
|
|
26
|
+
kind: z.literal("replaceStyleValue"),
|
|
27
|
+
title: z.string(),
|
|
28
|
+
property: z.string(),
|
|
29
|
+
value: z.string(),
|
|
30
|
+
deterministic: z.boolean().optional()
|
|
31
|
+
});
|
|
32
|
+
var findingReplaceImportFixSchema = z.object({
|
|
33
|
+
kind: z.literal("replaceImport"),
|
|
34
|
+
title: z.string(),
|
|
35
|
+
from: z.string(),
|
|
36
|
+
to: z.string(),
|
|
37
|
+
deterministic: z.boolean().optional()
|
|
38
|
+
});
|
|
39
|
+
var findingReplaceComponentFixSchema = z.object({
|
|
40
|
+
kind: z.literal("replaceComponent"),
|
|
41
|
+
title: z.string(),
|
|
42
|
+
from: z.string(),
|
|
43
|
+
to: z.string(),
|
|
44
|
+
deterministic: z.boolean().optional()
|
|
45
|
+
});
|
|
46
|
+
var findingReplaceClassTokenFixSchema = z.object({
|
|
47
|
+
kind: z.literal("replaceClassToken"),
|
|
48
|
+
title: z.string(),
|
|
49
|
+
from: z.string(),
|
|
50
|
+
to: z.string().nullable(),
|
|
51
|
+
utility: z.string(),
|
|
52
|
+
deterministic: z.boolean().optional()
|
|
53
|
+
});
|
|
54
|
+
var findingFixSchema = z.discriminatedUnion("kind", [
|
|
55
|
+
findingReplacePropValueFixSchema,
|
|
56
|
+
findingReplaceStyleValueFixSchema,
|
|
57
|
+
findingReplaceImportFixSchema,
|
|
58
|
+
findingReplaceComponentFixSchema,
|
|
59
|
+
findingReplaceClassTokenFixSchema
|
|
60
|
+
]);
|
|
61
|
+
var factEvidenceSchema = z.object({
|
|
62
|
+
factId: z.string(),
|
|
63
|
+
fact: z.object({
|
|
64
|
+
kind: z.string(),
|
|
65
|
+
location: factLocationSchema.optional()
|
|
66
|
+
}).passthrough()
|
|
67
|
+
});
|
|
68
|
+
var findingSchema = z.object({
|
|
69
|
+
ruleId: z.string(),
|
|
70
|
+
ruleVersion: z.string(),
|
|
71
|
+
severity: severitySchema,
|
|
72
|
+
level: severityLevelSchema,
|
|
73
|
+
code: z.string().regex(/^FUI\d{4}$/).optional(),
|
|
74
|
+
helpUrl: z.string().url().optional(),
|
|
75
|
+
message: z.string(),
|
|
76
|
+
fingerprint: z.string(),
|
|
77
|
+
location: factLocationSchema,
|
|
78
|
+
evidence: z.array(factEvidenceSchema).min(1),
|
|
79
|
+
fix: findingFixSchema.optional(),
|
|
80
|
+
attributes: z.record(z.unknown()).optional(),
|
|
81
|
+
/**
|
|
82
|
+
* Product area this finding's file resolved to (topology layer). Optional —
|
|
83
|
+
* absent when the repo has no `topology` config. See `topology/resolve-area`.
|
|
84
|
+
*/
|
|
85
|
+
area: z.object({
|
|
86
|
+
areaId: z.string(),
|
|
87
|
+
areaName: z.string(),
|
|
88
|
+
criticality: z.enum(["low", "medium", "high", "revenue", "regulated"]),
|
|
89
|
+
owners: z.array(z.string()),
|
|
90
|
+
matchedGlob: z.string()
|
|
91
|
+
}).optional()
|
|
92
|
+
});
|
|
93
|
+
var violationSchema = z.object({
|
|
94
|
+
nodeId: z.string(),
|
|
95
|
+
nodeType: z.string(),
|
|
96
|
+
rule: z.string(),
|
|
97
|
+
severity: severitySchema,
|
|
98
|
+
level: severityLevelSchema.optional(),
|
|
99
|
+
code: z.string().regex(/^FUI\d{4}$/).optional(),
|
|
100
|
+
helpUrl: z.string().url().optional(),
|
|
101
|
+
message: z.string(),
|
|
102
|
+
path: z.string().optional(),
|
|
103
|
+
suggestion: z.string().optional(),
|
|
104
|
+
prop: z.string().optional(),
|
|
105
|
+
filePath: z.string().optional(),
|
|
106
|
+
line: z.number().int().nonnegative().optional(),
|
|
107
|
+
column: z.number().int().nonnegative().optional(),
|
|
108
|
+
rawValue: z.string().optional(),
|
|
109
|
+
extra: z.record(z.unknown()).optional()
|
|
110
|
+
});
|
|
111
|
+
var fixSchema = z.object({
|
|
112
|
+
nodeId: z.string(),
|
|
113
|
+
prop: z.string().optional(),
|
|
114
|
+
action: z.enum(["remove", "replace", "add"]),
|
|
115
|
+
value: z.unknown().optional(),
|
|
116
|
+
description: z.string()
|
|
117
|
+
});
|
|
118
|
+
var validatorResultSchema = z.object({
|
|
119
|
+
validator: z.string(),
|
|
120
|
+
severity: severitySchema,
|
|
121
|
+
passed: z.boolean(),
|
|
122
|
+
violations: z.array(violationSchema),
|
|
123
|
+
findings: z.array(findingSchema).optional(),
|
|
124
|
+
suggestions: z.array(fixSchema).optional()
|
|
125
|
+
});
|
|
126
|
+
var governanceVerdictMetadataSchema = z.object({
|
|
127
|
+
runner: z.string(),
|
|
128
|
+
policyVersion: z.string().optional(),
|
|
129
|
+
duration: z.number().nonnegative(),
|
|
130
|
+
nodeCount: z.number().int().nonnegative(),
|
|
131
|
+
componentTypes: z.array(z.string())
|
|
132
|
+
});
|
|
133
|
+
var governanceVerdictSchema = z.object({
|
|
134
|
+
verdict: z.enum(["pass", "warn", "fail"]).optional(),
|
|
135
|
+
passed: z.boolean(),
|
|
136
|
+
score: z.number(),
|
|
137
|
+
results: z.array(validatorResultSchema),
|
|
138
|
+
metadata: governanceVerdictMetadataSchema
|
|
139
|
+
});
|
|
140
|
+
var suppressionDirectiveSchema = z.object({
|
|
141
|
+
ruleId: z.string().optional(),
|
|
142
|
+
reason: z.string().min(1),
|
|
143
|
+
expiresAt: z.string().datetime().optional(),
|
|
144
|
+
expiresOn: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
|
|
145
|
+
scope: z.enum(["line", "block", "file"]).default("line"),
|
|
146
|
+
code: z.string().regex(/^FUI\d{4}$/).optional()
|
|
147
|
+
});
|
|
148
|
+
var agentPlanSchema = z.object({
|
|
149
|
+
tool: z.enum([
|
|
150
|
+
"design_system/list_primitives",
|
|
151
|
+
"design_system/conform",
|
|
152
|
+
"design_system/prove_compliant"
|
|
153
|
+
]),
|
|
154
|
+
args: z.record(z.unknown()),
|
|
155
|
+
confidence: z.number().min(0).max(1)
|
|
156
|
+
});
|
|
157
|
+
var agentFindingSchema = z.object({
|
|
158
|
+
code: z.string().regex(/^FUI\d{4}$/).optional(),
|
|
159
|
+
ruleId: z.string(),
|
|
160
|
+
filePath: z.string(),
|
|
161
|
+
line: z.number().int().nonnegative(),
|
|
162
|
+
col: z.number().int().nonnegative(),
|
|
163
|
+
severity: severitySchema,
|
|
164
|
+
level: severityLevelSchema,
|
|
165
|
+
message: z.string(),
|
|
166
|
+
evidence: z.array(factEvidenceSchema),
|
|
167
|
+
plan: agentPlanSchema
|
|
168
|
+
});
|
|
169
|
+
var agentFormatSchema = z.object({
|
|
170
|
+
schemaVersion: z.literal("typestyle.agent.v1"),
|
|
171
|
+
passed: z.boolean(),
|
|
172
|
+
score: z.number(),
|
|
173
|
+
summary: z.string(),
|
|
174
|
+
fix_first: z.array(agentFindingSchema),
|
|
175
|
+
remaining: z.array(agentFindingSchema),
|
|
176
|
+
suppression_template: z.object({
|
|
177
|
+
directive: z.string(),
|
|
178
|
+
requiredFields: z.array(z.string()),
|
|
179
|
+
example: z.string()
|
|
180
|
+
}),
|
|
181
|
+
budget: z.object({
|
|
182
|
+
iteration: z.number().int().nonnegative(),
|
|
183
|
+
maxIterations: z.number().int().positive(),
|
|
184
|
+
scoreDelta: z.number()
|
|
185
|
+
}),
|
|
186
|
+
findings: z.array(findingSchema).optional(),
|
|
187
|
+
suppressions: z.array(suppressionDirectiveSchema).optional()
|
|
188
|
+
});
|
|
189
|
+
function normalizeSeverity(severity) {
|
|
190
|
+
return severitySchema.safeParse(severity).success ? severity : severityFromLevel(legacySeverityLevelSchema.parse(severity));
|
|
191
|
+
}
|
|
192
|
+
function normalizeFinding(input) {
|
|
193
|
+
return {
|
|
194
|
+
...input,
|
|
195
|
+
level: input.level ?? severityLevel(input.severity)
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function normalizeViolation(input) {
|
|
199
|
+
return {
|
|
200
|
+
...input,
|
|
201
|
+
level: input.level ?? severityLevel(input.severity)
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export {
|
|
206
|
+
factLocationSchema,
|
|
207
|
+
findingReplacePropValueFixSchema,
|
|
208
|
+
findingReplaceStyleValueFixSchema,
|
|
209
|
+
findingReplaceImportFixSchema,
|
|
210
|
+
findingReplaceComponentFixSchema,
|
|
211
|
+
findingReplaceClassTokenFixSchema,
|
|
212
|
+
findingFixSchema,
|
|
213
|
+
factEvidenceSchema,
|
|
214
|
+
findingSchema,
|
|
215
|
+
violationSchema,
|
|
216
|
+
fixSchema,
|
|
217
|
+
validatorResultSchema,
|
|
218
|
+
governanceVerdictMetadataSchema,
|
|
219
|
+
governanceVerdictSchema,
|
|
220
|
+
suppressionDirectiveSchema,
|
|
221
|
+
agentPlanSchema,
|
|
222
|
+
agentFindingSchema,
|
|
223
|
+
agentFormatSchema,
|
|
224
|
+
normalizeSeverity,
|
|
225
|
+
normalizeFinding,
|
|
226
|
+
normalizeViolation
|
|
227
|
+
};
|
|
228
|
+
//# sourceMappingURL=chunk-R3X7UBHU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schemas/index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport {\n legacySeverityLevelSchema,\n severityFromLevel,\n severityLevel,\n severityLevelSchema,\n severitySchema,\n} from \"../severity.js\";\nimport type { LegacySeverityLevel, Severity } from \"../severity.js\";\n\nexport { legacySeverityLevelSchema, severityLevelSchema, severitySchema };\nexport type { LegacySeverityLevel, Severity, SeverityLevel } from \"../severity.js\";\n\nexport const factLocationSchema = z.object({\n file: z.string(),\n line: z.number().int().nonnegative(),\n column: z.number().int().nonnegative(),\n endLine: z.number().int().nonnegative().optional(),\n endColumn: z.number().int().nonnegative().optional(),\n});\nexport type FactLocation = z.infer<typeof factLocationSchema>;\n\nexport const findingReplacePropValueFixSchema = z.object({\n kind: z.literal(\"replacePropValue\"),\n title: z.string(),\n prop: z.string(),\n value: z.unknown(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingReplaceStyleValueFixSchema = z.object({\n kind: z.literal(\"replaceStyleValue\"),\n title: z.string(),\n property: z.string(),\n value: z.string(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingReplaceImportFixSchema = z.object({\n kind: z.literal(\"replaceImport\"),\n title: z.string(),\n from: z.string(),\n to: z.string(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingReplaceComponentFixSchema = z.object({\n kind: z.literal(\"replaceComponent\"),\n title: z.string(),\n from: z.string(),\n to: z.string(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingReplaceClassTokenFixSchema = z.object({\n kind: z.literal(\"replaceClassToken\"),\n title: z.string(),\n from: z.string(),\n to: z.string().nullable(),\n utility: z.string(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingFixSchema = z.discriminatedUnion(\"kind\", [\n findingReplacePropValueFixSchema,\n findingReplaceStyleValueFixSchema,\n findingReplaceImportFixSchema,\n findingReplaceComponentFixSchema,\n findingReplaceClassTokenFixSchema,\n]);\nexport type FindingFix = z.infer<typeof findingFixSchema>;\nexport type FindingReplacePropValueFix = z.infer<typeof findingReplacePropValueFixSchema>;\nexport type FindingReplaceStyleValueFix = z.infer<typeof findingReplaceStyleValueFixSchema>;\nexport type FindingReplaceImportFix = z.infer<typeof findingReplaceImportFixSchema>;\nexport type FindingReplaceComponentFix = z.infer<typeof findingReplaceComponentFixSchema>;\nexport type FindingReplaceClassTokenFix = z.infer<typeof findingReplaceClassTokenFixSchema>;\n\nexport interface FactEvidence {\n factId: string;\n fact: {\n kind: string;\n location?: FactLocation;\n };\n}\n\nexport const factEvidenceSchema: z.ZodType<FactEvidence> = z.object({\n factId: z.string(),\n fact: z\n .object({\n kind: z.string(),\n location: factLocationSchema.optional(),\n })\n .passthrough(),\n});\n\nexport const findingSchema = z.object({\n ruleId: z.string(),\n ruleVersion: z.string(),\n severity: severitySchema,\n level: severityLevelSchema,\n code: z\n .string()\n .regex(/^FUI\\d{4}$/)\n .optional(),\n helpUrl: z.string().url().optional(),\n message: z.string(),\n fingerprint: z.string(),\n location: factLocationSchema,\n evidence: z.array(factEvidenceSchema).min(1),\n fix: findingFixSchema.optional(),\n attributes: z.record(z.unknown()).optional(),\n /**\n * Product area this finding's file resolved to (topology layer). Optional —\n * absent when the repo has no `topology` config. See `topology/resolve-area`.\n */\n area: z\n .object({\n areaId: z.string(),\n areaName: z.string(),\n criticality: z.enum([\"low\", \"medium\", \"high\", \"revenue\", \"regulated\"]),\n owners: z.array(z.string()),\n matchedGlob: z.string(),\n })\n .optional(),\n});\nexport type Finding = z.infer<typeof findingSchema>;\n\nexport const violationSchema = z.object({\n nodeId: z.string(),\n nodeType: z.string(),\n rule: z.string(),\n severity: severitySchema,\n level: severityLevelSchema.optional(),\n code: z\n .string()\n .regex(/^FUI\\d{4}$/)\n .optional(),\n helpUrl: z.string().url().optional(),\n message: z.string(),\n path: z.string().optional(),\n suggestion: z.string().optional(),\n prop: z.string().optional(),\n filePath: z.string().optional(),\n line: z.number().int().nonnegative().optional(),\n column: z.number().int().nonnegative().optional(),\n rawValue: z.string().optional(),\n extra: z.record(z.unknown()).optional(),\n});\nexport type Violation = z.infer<typeof violationSchema>;\n\nexport const fixSchema = z.object({\n nodeId: z.string(),\n prop: z.string().optional(),\n action: z.enum([\"remove\", \"replace\", \"add\"]),\n value: z.unknown().optional(),\n description: z.string(),\n});\nexport type Fix = z.infer<typeof fixSchema>;\n\nexport const validatorResultSchema = z.object({\n validator: z.string(),\n severity: severitySchema,\n passed: z.boolean(),\n violations: z.array(violationSchema),\n findings: z.array(findingSchema).optional(),\n suggestions: z.array(fixSchema).optional(),\n});\nexport type ValidatorResult = z.infer<typeof validatorResultSchema>;\n\nexport const governanceVerdictMetadataSchema = z.object({\n runner: z.string(),\n policyVersion: z.string().optional(),\n duration: z.number().nonnegative(),\n nodeCount: z.number().int().nonnegative(),\n componentTypes: z.array(z.string()),\n});\nexport type GovernanceVerdictMetadata = z.infer<typeof governanceVerdictMetadataSchema>;\n\nexport const governanceVerdictSchema = z.object({\n verdict: z.enum([\"pass\", \"warn\", \"fail\"]).optional(),\n passed: z.boolean(),\n score: z.number(),\n results: z.array(validatorResultSchema),\n metadata: governanceVerdictMetadataSchema,\n});\nexport type GovernanceVerdict = z.infer<typeof governanceVerdictSchema>;\n\nexport const suppressionDirectiveSchema = z.object({\n ruleId: z.string().optional(),\n reason: z.string().min(1),\n expiresAt: z.string().datetime().optional(),\n expiresOn: z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/)\n .optional(),\n scope: z.enum([\"line\", \"block\", \"file\"]).default(\"line\"),\n code: z\n .string()\n .regex(/^FUI\\d{4}$/)\n .optional(),\n});\nexport type SuppressionDirective = z.infer<typeof suppressionDirectiveSchema>;\n\nexport const agentPlanSchema = z.object({\n tool: z.enum([\n \"design_system/list_primitives\",\n \"design_system/conform\",\n \"design_system/prove_compliant\",\n ]),\n args: z.record(z.unknown()),\n confidence: z.number().min(0).max(1),\n});\n\nexport const agentFindingSchema = z.object({\n code: z\n .string()\n .regex(/^FUI\\d{4}$/)\n .optional(),\n ruleId: z.string(),\n filePath: z.string(),\n line: z.number().int().nonnegative(),\n col: z.number().int().nonnegative(),\n severity: severitySchema,\n level: severityLevelSchema,\n message: z.string(),\n evidence: z.array(factEvidenceSchema),\n plan: agentPlanSchema,\n});\n\nexport const agentFormatSchema = z.object({\n schemaVersion: z.literal(\"typestyle.agent.v1\"),\n passed: z.boolean(),\n score: z.number(),\n summary: z.string(),\n fix_first: z.array(agentFindingSchema),\n remaining: z.array(agentFindingSchema),\n suppression_template: z.object({\n directive: z.string(),\n requiredFields: z.array(z.string()),\n example: z.string(),\n }),\n budget: z.object({\n iteration: z.number().int().nonnegative(),\n maxIterations: z.number().int().positive(),\n scoreDelta: z.number(),\n }),\n findings: z.array(findingSchema).optional(),\n suppressions: z.array(suppressionDirectiveSchema).optional(),\n});\nexport type AgentFormat = z.infer<typeof agentFormatSchema>;\n\nexport function normalizeSeverity(severity: Severity | LegacySeverityLevel): Severity {\n return severitySchema.safeParse(severity).success\n ? (severity as Severity)\n : severityFromLevel(legacySeverityLevelSchema.parse(severity));\n}\n\nexport function normalizeFinding(\n input: Omit<Finding, \"level\"> & { level?: Finding[\"level\"] }\n): Finding {\n return {\n ...input,\n level: input.level ?? severityLevel(input.severity),\n };\n}\n\nexport function normalizeViolation(\n input: Omit<Violation, \"level\"> & { level?: Violation[\"level\"] }\n): Violation {\n return {\n ...input,\n level: input.level ?? severityLevel(input.severity),\n };\n}\n"],"mappings":"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","names":[]}
|