@cat-factory/contracts 0.279.0 → 0.281.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/entities.d.ts +13 -1
- package/dist/entities.d.ts.map +1 -1
- package/dist/entities.js +13 -3
- package/dist/entities.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pipeline-purpose.d.ts +39 -17
- package/dist/pipeline-purpose.d.ts.map +1 -1
- package/dist/pipeline-purpose.js +74 -36
- package/dist/pipeline-purpose.js.map +1 -1
- package/dist/public-spec.d.ts +232 -0
- package/dist/public-spec.d.ts.map +1 -0
- package/dist/public-spec.js +208 -0
- package/dist/public-spec.js.map +1 -0
- package/dist/requests.d.ts +5 -2
- package/dist/requests.d.ts.map +1 -1
- package/dist/requests.js +5 -2
- package/dist/requests.js.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/pipelines.d.ts +7 -7
- package/dist/routes/public-spec.d.ts +110 -0
- package/dist/routes/public-spec.d.ts.map +1 -0
- package/dist/routes/public-spec.js +31 -0
- package/dist/routes/public-spec.js.map +1 -0
- package/dist/routes/spec.d.ts +18 -2
- package/dist/routes/spec.d.ts.map +1 -1
- package/dist/routes/workspaces.d.ts +2 -2
- package/dist/snapshot.d.ts +1 -1
- package/dist/spec.d.ts +172 -3
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +90 -4
- package/dist/spec.js.map +1 -1
- package/package.json +1 -1
package/dist/spec.js
CHANGED
|
@@ -25,9 +25,17 @@ import * as v from 'valibot';
|
|
|
25
25
|
// requirements, domain rules and acceptance criteria, so those inner item types
|
|
26
26
|
// keep their names.
|
|
27
27
|
// ---------------------------------------------------------------------------
|
|
28
|
+
/**
|
|
29
|
+
* The two length bounds a READER has to honour to produce a parseable doc, exported so the
|
|
30
|
+
* reassembly clamps to the same numbers the schema enforces instead of restating them. A reader
|
|
31
|
+
* that clamps to its own constant passes its own tests and serves a `200` that fails the published
|
|
32
|
+
* schema the moment either number moves.
|
|
33
|
+
*/
|
|
34
|
+
export const SPEC_NAME_MAX = 120;
|
|
35
|
+
export const SPEC_SUMMARY_MAX = 2000;
|
|
28
36
|
const requirementIdField = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200));
|
|
29
|
-
const reqNameField = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(
|
|
30
|
-
const reqSummaryField = v.pipe(v.string(), v.maxLength(
|
|
37
|
+
const reqNameField = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(SPEC_NAME_MAX));
|
|
38
|
+
const reqSummaryField = v.pipe(v.string(), v.maxLength(SPEC_SUMMARY_MAX));
|
|
31
39
|
const reqStatementField = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(4000));
|
|
32
40
|
const blockIdField = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200));
|
|
33
41
|
/** MoSCoW priority — how essential a requirement is. */
|
|
@@ -136,6 +144,25 @@ export const specDocSchema = v.object({
|
|
|
136
144
|
/** Modules (domains), each grouping its feature groups; the two-level taxonomy. */
|
|
137
145
|
modules: v.optional(v.array(specModuleSchema), []),
|
|
138
146
|
});
|
|
147
|
+
/**
|
|
148
|
+
* The same document as a READER reassembles it, as opposed to as a producer must author it.
|
|
149
|
+
*
|
|
150
|
+
* Derived from {@link specDocSchema} rather than restated, so the two cannot drift, with exactly
|
|
151
|
+
* one field relaxed: `service` may be the empty string. The anchor (`spec/service.json`) is a file
|
|
152
|
+
* in somebody's repository and can be half-written, so a read has to be able to say "this spec
|
|
153
|
+
* names no service" (every consumer falls back to the board frame's own title). The STRICT schema
|
|
154
|
+
* stays the ingestion boundary `parseSpecDoc` guards, so nothing can AUTHOR a nameless spec; this
|
|
155
|
+
* one exists because refusing to describe one that already exists is the worse answer.
|
|
156
|
+
*
|
|
157
|
+
* Both infer the same TypeScript type. The difference is entirely in what each will PARSE, which
|
|
158
|
+
* is the difference that matters: a view typed `SpecDoc` while carrying `service: ''` is a value
|
|
159
|
+
* that fails the schema its own type names, and on `/api/v1` that is a published contract the
|
|
160
|
+
* response violates.
|
|
161
|
+
*/
|
|
162
|
+
export const readSpecDocSchema = v.object({
|
|
163
|
+
...specDocSchema.entries,
|
|
164
|
+
service: v.optional(v.pipe(v.string(), v.trim(), v.maxLength(SPEC_NAME_MAX)), ''),
|
|
165
|
+
});
|
|
139
166
|
// ---- In-repo spec artifact paths ------------------------------------------
|
|
140
167
|
// The sharded folder layout, the prescriptive sibling of `blueprints/`. The
|
|
141
168
|
// canonical machine-readable files are the per-group `modules/<m>/<g>.json` shards;
|
|
@@ -167,6 +194,53 @@ export const specFeatureFileSchema = v.object({
|
|
|
167
194
|
/** The raw Gherkin content. */
|
|
168
195
|
content: v.string(),
|
|
169
196
|
});
|
|
197
|
+
/**
|
|
198
|
+
* What became of ONE file the reader touched. The reader is deliberately total and salvaging
|
|
199
|
+
* (a flaky read or a malformed shard degrades to a partial tree rather than a thrown error), and
|
|
200
|
+
* a salvage that reports nothing is indistinguishable from a repo that genuinely holds less:
|
|
201
|
+
*
|
|
202
|
+
* - `read_failed`: the provider answered with something other than "absent" (rate limit, 5xx,
|
|
203
|
+
* a permission the installation lost). The file may well exist; we cannot say.
|
|
204
|
+
* - `unparsed`: the file was read and NOTHING could be recovered from it (unreadable JSON,
|
|
205
|
+
* or a shard whose own identity is missing), so its whole subtree is missing from the view.
|
|
206
|
+
* - `partial`: the file was read and salvaged item by item; `dropped` says how many
|
|
207
|
+
* requirements/rules failed validation and are therefore absent from an otherwise valid group.
|
|
208
|
+
* - `unread`: the pass ran out of its read budget before reaching this path, so it was never
|
|
209
|
+
* fetched. `dropped` counts the files left unread. Reported against the `spec` root, once per
|
|
210
|
+
* pass: a per-file row would make the budget's own report the largest thing in the response.
|
|
211
|
+
*/
|
|
212
|
+
export const specReadIssueKindSchema = v.picklist(['read_failed', 'unparsed', 'partial', 'unread']);
|
|
213
|
+
/** One file the reader could not fully account for, named rather than silently dropped. */
|
|
214
|
+
export const specReadIssueSchema = v.object({
|
|
215
|
+
/** Repo-relative path of the file (or directory, for a failed listing). */
|
|
216
|
+
path: v.string(),
|
|
217
|
+
kind: specReadIssueKindSchema,
|
|
218
|
+
/**
|
|
219
|
+
* How much this row cost the tree: items lost from a `partial` file, files left unread by an
|
|
220
|
+
* exhausted budget, 0 on the kinds that lose nothing countable.
|
|
221
|
+
*
|
|
222
|
+
* NULL means content was lost here and NO count describes it. A salvage reaches that state
|
|
223
|
+
* honestly: a shard whose `requirements` is an object rather than a list has requirements that
|
|
224
|
+
* are structurally unreadable, so there is nothing to count, and answering `0` would report the
|
|
225
|
+
* rebuilt group as a complete one that simply declares nothing. An unknown loss and no loss are
|
|
226
|
+
* different facts, and only a distinct value states the first.
|
|
227
|
+
*/
|
|
228
|
+
dropped: v.optional(v.nullable(v.number()), 0),
|
|
229
|
+
});
|
|
230
|
+
/**
|
|
231
|
+
* How the PRESENCE ANCHOR (`spec/service.json`) resolved. Four states rather than the boolean
|
|
232
|
+
* `present` beside it, because three of them produce the same empty tree and demand different
|
|
233
|
+
* reactions: a branch with no spec is a normal answer, a provider outage is a retry, and a corrupt
|
|
234
|
+
* anchor is a repo somebody has to fix. Collapsing them is how "this service has no requirements"
|
|
235
|
+
* comes to be reported during every VCS incident.
|
|
236
|
+
*/
|
|
237
|
+
export const specAnchorStateSchema = v.picklist(['present', 'absent', 'read_failed', 'unparsed']);
|
|
238
|
+
/** What the reader could and could not account for on this pass. */
|
|
239
|
+
export const specReadDiagnosticsSchema = v.object({
|
|
240
|
+
anchor: specAnchorStateSchema,
|
|
241
|
+
/** Every file the pass could not fully account for. Empty on a clean read. */
|
|
242
|
+
issues: v.array(specReadIssueSchema),
|
|
243
|
+
});
|
|
170
244
|
/**
|
|
171
245
|
* The service-spec view served to the SPA: the reassembled prescriptive spec tree read
|
|
172
246
|
* from the service repo's default branch, plus its rendered Gherkin feature files.
|
|
@@ -176,12 +250,24 @@ export const specFeatureFileSchema = v.object({
|
|
|
176
250
|
export const serviceSpecViewSchema = v.object({
|
|
177
251
|
/** Whether a spec exists on the service repo's default branch (a `spec/service.json`). */
|
|
178
252
|
present: v.boolean(),
|
|
179
|
-
/**
|
|
180
|
-
|
|
253
|
+
/**
|
|
254
|
+
* The reassembled spec tree, or null when none is present.
|
|
255
|
+
*
|
|
256
|
+
* {@link readSpecDocSchema}, not the strict authoring schema: this is what a READER got back
|
|
257
|
+
* out of a repository, and an anchor that names no service is a state a repository can be in.
|
|
258
|
+
*/
|
|
259
|
+
spec: v.nullable(readSpecDocSchema),
|
|
181
260
|
/** The rendered Gherkin feature files (empty when none present). The producer always
|
|
182
261
|
* sends this field (`[]` when there are none), and the SPA dereferences it unguarded, so
|
|
183
262
|
* it is required — not optional — to keep the wire shape and its sole consumer in lockstep. */
|
|
184
263
|
features: v.array(specFeatureFileSchema),
|
|
264
|
+
/**
|
|
265
|
+
* What the READ itself could account for, as distinct from what the spec says. Optional
|
|
266
|
+
* because absent means "this producer diagnosed nothing", which is a different fact from a
|
|
267
|
+
* clean pass and is the honest answer for the callers that assemble a view by hand (a memo, a
|
|
268
|
+
* test fixture). `readServiceSpec` always sets it.
|
|
269
|
+
*/
|
|
270
|
+
diagnostics: v.optional(specReadDiagnosticsSchema),
|
|
185
271
|
});
|
|
186
272
|
/** The canonical "no spec" view — GitHub not connected, or no spec on the default branch. */
|
|
187
273
|
export const EMPTY_SERVICE_SPEC_VIEW = { present: false, spec: null, features: [] };
|
package/dist/spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,wEAAwE;AACxE,EAAE;AACF,8EAA8E;AAC9E,kFAAkF;AAClF,gFAAgF;AAChF,yDAAyD;AACzD,EAAE;AACF,gFAAgF;AAChF,mFAAmF;AACnF,gFAAgF;AAChF,kFAAkF;AAClF,+EAA+E;AAC/E,oFAAoF;AACpF,oFAAoF;AACpF,4EAA4E;AAC5E,oFAAoF;AACpF,kFAAkF;AAClF,uDAAuD;AACvD,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,gFAAgF;AAChF,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AACzF,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
|