@cat-factory/contracts 0.207.0 → 0.208.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/foundational-services.d.ts +63 -9
- package/dist/foundational-services.d.ts.map +1 -1
- package/dist/foundational-services.js +46 -10
- package/dist/foundational-services.js.map +1 -1
- package/dist/routes/foundational-services.d.ts +33 -5
- package/dist/routes/foundational-services.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -219,11 +219,20 @@ export type UpdateFoundationalServiceInput = v.InferOutput<typeof updateFoundati
|
|
|
219
219
|
*
|
|
220
220
|
* - `directory`: every immediate SUBDIRECTORY of `dirPath` is one service, described by a
|
|
221
221
|
* `service.md` (YAML frontmatter + markdown body) with its contract documents beside it.
|
|
222
|
+
* - `folder`: the WHOLE of `dirPath` — optionally including its subfolders — is the contract
|
|
223
|
+
* set of the ONE service the source names. Every file under it whose extension could be a
|
|
224
|
+
* contract document is read and kept if it is one.
|
|
222
225
|
* - `files`: an explicit list of contract file PATHS, all attached to the ONE service the
|
|
223
226
|
* source names. This is the "just point at my openapi.yaml" case, where there is no
|
|
224
227
|
* directory convention to adopt.
|
|
228
|
+
*
|
|
229
|
+
* `folder` and `files` differ in WHEN the file set is decided, and that is the whole reason
|
|
230
|
+
* both exist: a `files` link pins the paths, so a contract added upstream is invisible until
|
|
231
|
+
* somebody edits the link, while a `folder` link re-discovers the set on every sync. Pointing
|
|
232
|
+
* at a folder is therefore the right shape for a spec directory that grows, and naming files is
|
|
233
|
+
* the right shape for picking two documents out of a repo that is mostly something else.
|
|
225
234
|
*/
|
|
226
|
-
export declare const foundationalServiceSourceModeSchema: v.PicklistSchema<["directory", "files"], undefined>;
|
|
235
|
+
export declare const foundationalServiceSourceModeSchema: v.PicklistSchema<["directory", "folder", "files"], undefined>;
|
|
227
236
|
export type FoundationalServiceSourceMode = v.InferOutput<typeof foundationalServiceSourceModeSchema>;
|
|
228
237
|
/** A repo linked as a source of foundational-service definitions. */
|
|
229
238
|
export declare const foundationalServiceSourceSchema: v.ObjectSchema<{
|
|
@@ -233,12 +242,17 @@ export declare const foundationalServiceSourceSchema: v.ObjectSchema<{
|
|
|
233
242
|
readonly repoOwner: v.StringSchema<undefined>;
|
|
234
243
|
readonly repoName: v.StringSchema<undefined>;
|
|
235
244
|
readonly gitRef: v.StringSchema<undefined>;
|
|
236
|
-
readonly mode: v.PicklistSchema<["directory", "files"], undefined>;
|
|
237
|
-
/** Subtree scanned in `directory` mode; the anchor for the head-commit probe in
|
|
245
|
+
readonly mode: v.PicklistSchema<["directory", "folder", "files"], undefined>;
|
|
246
|
+
/** Subtree scanned in `directory`/`folder` mode; the anchor for the head-commit probe in all. */
|
|
238
247
|
readonly dirPath: v.StringSchema<undefined>;
|
|
239
|
-
/**
|
|
248
|
+
/**
|
|
249
|
+
* `folder` mode only: whether the scan descends into `dirPath`'s subfolders. False elsewhere —
|
|
250
|
+
* `directory` mode's subdirectories are its services and `files` mode enumerates paths.
|
|
251
|
+
*/
|
|
252
|
+
readonly recursive: v.BooleanSchema<undefined>;
|
|
253
|
+
/** `files` mode only: the contract files, repo-root-relative. Empty in the folder modes. */
|
|
240
254
|
readonly filePaths: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
241
|
-
/** `files` mode
|
|
255
|
+
/** `folder`/`files` mode: the service the linked contracts describe. Null in `directory` mode. */
|
|
242
256
|
readonly serviceId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
243
257
|
readonly serviceName: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
244
258
|
readonly serviceSummary: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -247,14 +261,16 @@ export declare const foundationalServiceSourceSchema: v.ObjectSchema<{
|
|
|
247
261
|
readonly createdAt: v.NumberSchema<undefined>;
|
|
248
262
|
}, undefined>;
|
|
249
263
|
export type FoundationalServiceSource = v.InferOutput<typeof foundationalServiceSourceSchema>;
|
|
250
|
-
/** Link a repo directory
|
|
264
|
+
/** Link a repo directory, a whole folder, or an explicit file list as a foundational source. */
|
|
251
265
|
export declare const linkFoundationalServiceSourceSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
252
266
|
readonly repoOwner: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 100, undefined>]>;
|
|
253
267
|
readonly repoName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
|
|
254
268
|
/** Git ref to read; defaults to the repo's default branch (`HEAD`). */
|
|
255
269
|
readonly gitRef: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
256
|
-
readonly mode: v.PicklistSchema<["directory", "files"], undefined>;
|
|
270
|
+
readonly mode: v.PicklistSchema<["directory", "folder", "files"], undefined>;
|
|
257
271
|
readonly dirPath: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 300, undefined>]>, undefined>;
|
|
272
|
+
/** `folder` mode: descend into `dirPath`'s subfolders too. Defaults to false. */
|
|
273
|
+
readonly recursive: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
258
274
|
readonly filePaths: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 300, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, undefined>;
|
|
259
275
|
readonly serviceId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>, v.RegexAction<string, "must be a lower-kebab slug">]>, undefined>;
|
|
260
276
|
readonly serviceName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
@@ -263,13 +279,36 @@ export declare const linkFoundationalServiceSourceSchema: v.SchemaWithPipe<reado
|
|
|
263
279
|
repoOwner: string;
|
|
264
280
|
repoName: string;
|
|
265
281
|
gitRef?: string | undefined;
|
|
266
|
-
mode: "directory" | "files";
|
|
282
|
+
mode: "directory" | "files" | "folder";
|
|
283
|
+
dirPath?: string | undefined;
|
|
284
|
+
recursive?: boolean | undefined;
|
|
285
|
+
filePaths?: string[] | undefined;
|
|
286
|
+
serviceId?: string | undefined;
|
|
287
|
+
serviceName?: string | undefined;
|
|
288
|
+
serviceSummary?: string | undefined;
|
|
289
|
+
}, "a `folder` or `files` source must name serviceId and serviceName">, v.CheckAction<{
|
|
290
|
+
repoOwner: string;
|
|
291
|
+
repoName: string;
|
|
292
|
+
gitRef?: string | undefined;
|
|
293
|
+
mode: "directory" | "files" | "folder";
|
|
267
294
|
dirPath?: string | undefined;
|
|
295
|
+
recursive?: boolean | undefined;
|
|
268
296
|
filePaths?: string[] | undefined;
|
|
269
297
|
serviceId?: string | undefined;
|
|
270
298
|
serviceName?: string | undefined;
|
|
271
299
|
serviceSummary?: string | undefined;
|
|
272
|
-
}, "a `files` source must
|
|
300
|
+
}, "a `files` source must list at least one file path">, v.CheckAction<{
|
|
301
|
+
repoOwner: string;
|
|
302
|
+
repoName: string;
|
|
303
|
+
gitRef?: string | undefined;
|
|
304
|
+
mode: "directory" | "files" | "folder";
|
|
305
|
+
dirPath?: string | undefined;
|
|
306
|
+
recursive?: boolean | undefined;
|
|
307
|
+
filePaths?: string[] | undefined;
|
|
308
|
+
serviceId?: string | undefined;
|
|
309
|
+
serviceName?: string | undefined;
|
|
310
|
+
serviceSummary?: string | undefined;
|
|
311
|
+
}, "`recursive` applies only to a `folder` source">]>;
|
|
273
312
|
export type LinkFoundationalServiceSourceInput = v.InferOutput<typeof linkFoundationalServiceSourceSchema>;
|
|
274
313
|
/** Outcome of resyncing a source: counts of changed/removed/unchanged services. */
|
|
275
314
|
export declare const foundationalServiceSyncResultSchema: v.ObjectSchema<{
|
|
@@ -277,6 +316,21 @@ export declare const foundationalServiceSyncResultSchema: v.ObjectSchema<{
|
|
|
277
316
|
readonly tombstoned: v.NumberSchema<undefined>;
|
|
278
317
|
readonly unchanged: v.NumberSchema<undefined>;
|
|
279
318
|
readonly lastSyncedCommit: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
319
|
+
/**
|
|
320
|
+
* Files that LOOKED like contract documents (an OpenAPI or contract-module extension) but did
|
|
321
|
+
* not become one this pass — unreadable, unrecognised content, or a duplicate contract id.
|
|
322
|
+
* Zero and "nothing was scanned" are told apart by the counts above, and a non-zero value is
|
|
323
|
+
* the only thing that explains a folder link that produced fewer contracts than its author
|
|
324
|
+
* expected. Files with no contract extension are never read and never counted.
|
|
325
|
+
*/
|
|
326
|
+
readonly skippedFiles: v.NumberSchema<undefined>;
|
|
327
|
+
/**
|
|
328
|
+
* True when a scan CAP stopped a `folder` source's walk short (depth, directories visited, or
|
|
329
|
+
* contract files taken), so the contract set is a prefix of what the folder holds rather than
|
|
330
|
+
* all of it. Never a transient: a truncated pass still pins its commit, because re-reading
|
|
331
|
+
* would truncate identically and the source would never look caught up.
|
|
332
|
+
*/
|
|
333
|
+
readonly truncated: v.BooleanSchema<undefined>;
|
|
280
334
|
}, undefined>;
|
|
281
335
|
export type FoundationalServiceSyncResult = v.InferOutput<typeof foundationalServiceSyncResultSchema>;
|
|
282
336
|
/** Lightweight "check for changes" result (no writes) — one head-commit probe. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundational-services.d.ts","sourceRoot":"","sources":["../src/foundational-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAqB5B,oFAAoF;AACpF,eAAO,MAAM,kCAAkC,uDAA0B,CAAA;AACzE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEnG,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,uDAAuC,CAAA;AACjF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,oFAOlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;IAInC,4EAA4E;;IAE5E,gEAAgE;;IAEhE;;;;OAIG;;IAEH;;;OAGG;;aAEH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E,+FAA+F;AAC/F,eAAO,MAAM,yBAAyB;;;;IAnBpC,4EAA4E;;IAE5E,gEAAgE;;IAEhE;;;;OAIG;;IAEH;;;OAGG;;IAQH,6FAA6F;;aAE7F,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB;IACpC,2EAA2E;;;;IAI3E,gDAAgD;;IAEhD,sFAAsF;;IAEtF,4EAA4E;;IAE5E,+EAA+E;;;;;QAtC/E,4EAA4E;;QAE5E,gEAAgE;;QAEhE;;;;WAIG;;QAEH;;;WAGG;;;IA2BH,uEAAuE;;;IAGvE,0EAA0E;;;;aAI1E,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,wFAAwF;AACxF,eAAO,MAAM,iCAAiC;IAvB5C,2EAA2E;;;;IAI3E,gDAAgD;;IAEhD,sFAAsF;;IAEtF,4EAA4E;;IAE5E,+EAA+E;;;;;QAtC/E,4EAA4E;;QAE5E,gEAAgE;;QAEhE;;;;WAIG;;QAEH;;;WAGG;;;IA2BH,uEAAuE;;;IAGvE,0EAA0E;;;;;aAW1E,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAEjG;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oCAAoC;;;;;aAK/C,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,WAAW,CACxD,OAAO,oCAAoC,CAC5C,CAAA;AAUD,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB;;;;IAIlC,oFAAoF;;aAEpF,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B;;;;;;;;;;QAN1C,oFAAoF;;;aAapF,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAElG;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;QArB1C,oFAAoF;;;aA2BpF,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAElG
|
|
1
|
+
{"version":3,"file":"foundational-services.d.ts","sourceRoot":"","sources":["../src/foundational-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,11 +149,20 @@ export const updateFoundationalServiceSchema = v.object({
|
|
|
149
149
|
*
|
|
150
150
|
* - `directory`: every immediate SUBDIRECTORY of `dirPath` is one service, described by a
|
|
151
151
|
* `service.md` (YAML frontmatter + markdown body) with its contract documents beside it.
|
|
152
|
+
* - `folder`: the WHOLE of `dirPath` — optionally including its subfolders — is the contract
|
|
153
|
+
* set of the ONE service the source names. Every file under it whose extension could be a
|
|
154
|
+
* contract document is read and kept if it is one.
|
|
152
155
|
* - `files`: an explicit list of contract file PATHS, all attached to the ONE service the
|
|
153
156
|
* source names. This is the "just point at my openapi.yaml" case, where there is no
|
|
154
157
|
* directory convention to adopt.
|
|
158
|
+
*
|
|
159
|
+
* `folder` and `files` differ in WHEN the file set is decided, and that is the whole reason
|
|
160
|
+
* both exist: a `files` link pins the paths, so a contract added upstream is invisible until
|
|
161
|
+
* somebody edits the link, while a `folder` link re-discovers the set on every sync. Pointing
|
|
162
|
+
* at a folder is therefore the right shape for a spec directory that grows, and naming files is
|
|
163
|
+
* the right shape for picking two documents out of a repo that is mostly something else.
|
|
155
164
|
*/
|
|
156
|
-
export const foundationalServiceSourceModeSchema = v.picklist(['directory', 'files']);
|
|
165
|
+
export const foundationalServiceSourceModeSchema = v.picklist(['directory', 'folder', 'files']);
|
|
157
166
|
/** A repo linked as a source of foundational-service definitions. */
|
|
158
167
|
export const foundationalServiceSourceSchema = v.object({
|
|
159
168
|
id: v.string(),
|
|
@@ -163,11 +172,16 @@ export const foundationalServiceSourceSchema = v.object({
|
|
|
163
172
|
repoName: v.string(),
|
|
164
173
|
gitRef: v.string(),
|
|
165
174
|
mode: foundationalServiceSourceModeSchema,
|
|
166
|
-
/** Subtree scanned in `directory` mode; the anchor for the head-commit probe in
|
|
175
|
+
/** Subtree scanned in `directory`/`folder` mode; the anchor for the head-commit probe in all. */
|
|
167
176
|
dirPath: v.string(),
|
|
168
|
-
/**
|
|
177
|
+
/**
|
|
178
|
+
* `folder` mode only: whether the scan descends into `dirPath`'s subfolders. False elsewhere —
|
|
179
|
+
* `directory` mode's subdirectories are its services and `files` mode enumerates paths.
|
|
180
|
+
*/
|
|
181
|
+
recursive: v.boolean(),
|
|
182
|
+
/** `files` mode only: the contract files, repo-root-relative. Empty in the folder modes. */
|
|
169
183
|
filePaths: v.array(v.string()),
|
|
170
|
-
/** `files` mode
|
|
184
|
+
/** `folder`/`files` mode: the service the linked contracts describe. Null in `directory` mode. */
|
|
171
185
|
serviceId: v.nullable(v.string()),
|
|
172
186
|
serviceName: v.nullable(v.string()),
|
|
173
187
|
serviceSummary: v.nullable(v.string()),
|
|
@@ -175,7 +189,7 @@ export const foundationalServiceSourceSchema = v.object({
|
|
|
175
189
|
lastSyncedAt: v.nullable(v.number()),
|
|
176
190
|
createdAt: v.number(),
|
|
177
191
|
});
|
|
178
|
-
/** Link a repo directory
|
|
192
|
+
/** Link a repo directory, a whole folder, or an explicit file list as a foundational source. */
|
|
179
193
|
export const linkFoundationalServiceSourceSchema = v.pipe(v.object({
|
|
180
194
|
repoOwner: v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(100)),
|
|
181
195
|
repoName: v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200)),
|
|
@@ -183,22 +197,44 @@ export const linkFoundationalServiceSourceSchema = v.pipe(v.object({
|
|
|
183
197
|
gitRef: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200))),
|
|
184
198
|
mode: foundationalServiceSourceModeSchema,
|
|
185
199
|
dirPath: v.optional(v.pipe(v.string(), v.trim(), v.maxLength(300))),
|
|
200
|
+
/** `folder` mode: descend into `dirPath`'s subfolders too. Defaults to false. */
|
|
201
|
+
recursive: v.optional(v.boolean()),
|
|
186
202
|
filePaths: v.optional(v.pipe(v.array(v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(300))), v.maxLength(50))),
|
|
187
203
|
serviceId: v.optional(slug),
|
|
188
204
|
serviceName: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200))),
|
|
189
205
|
serviceSummary: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(400))),
|
|
190
206
|
}),
|
|
191
|
-
//
|
|
192
|
-
// the service its
|
|
193
|
-
// sync time, where the only honest outcome would be a source that
|
|
194
|
-
|
|
195
|
-
|
|
207
|
+
// Neither single-service mode carries a directory convention to read identity from, so the
|
|
208
|
+
// link MUST name the service its contracts describe. Refused at the write boundary rather
|
|
209
|
+
// than discovered at sync time, where the only honest outcome would be a source that
|
|
210
|
+
// permanently syncs nothing.
|
|
211
|
+
v.check((input) => (input.mode !== 'files' && input.mode !== 'folder') ||
|
|
212
|
+
(!!input.serviceId && !!input.serviceName), 'a `folder` or `files` source must name serviceId and serviceName'), v.check((input) => input.mode !== 'files' || (input.filePaths?.length ?? 0) > 0, 'a `files` source must list at least one file path'),
|
|
213
|
+
// `recursive` is meaningful only where a subtree is scanned for ONE service's contracts. In
|
|
214
|
+
// `directory` mode the subdirectories ARE the services and in `files` mode the paths are
|
|
215
|
+
// enumerated, so accepting it there would store a flag that silently does nothing.
|
|
216
|
+
v.check((input) => input.mode === 'folder' || !input.recursive, '`recursive` applies only to a `folder` source'));
|
|
196
217
|
/** Outcome of resyncing a source: counts of changed/removed/unchanged services. */
|
|
197
218
|
export const foundationalServiceSyncResultSchema = v.object({
|
|
198
219
|
upserted: v.number(),
|
|
199
220
|
tombstoned: v.number(),
|
|
200
221
|
unchanged: v.number(),
|
|
201
222
|
lastSyncedCommit: v.nullable(v.string()),
|
|
223
|
+
/**
|
|
224
|
+
* Files that LOOKED like contract documents (an OpenAPI or contract-module extension) but did
|
|
225
|
+
* not become one this pass — unreadable, unrecognised content, or a duplicate contract id.
|
|
226
|
+
* Zero and "nothing was scanned" are told apart by the counts above, and a non-zero value is
|
|
227
|
+
* the only thing that explains a folder link that produced fewer contracts than its author
|
|
228
|
+
* expected. Files with no contract extension are never read and never counted.
|
|
229
|
+
*/
|
|
230
|
+
skippedFiles: v.number(),
|
|
231
|
+
/**
|
|
232
|
+
* True when a scan CAP stopped a `folder` source's walk short (depth, directories visited, or
|
|
233
|
+
* contract files taken), so the contract set is a prefix of what the folder holds rather than
|
|
234
|
+
* all of it. Never a transient: a truncated pass still pins its commit, because re-reading
|
|
235
|
+
* would truncate identically and the source would never look caught up.
|
|
236
|
+
*/
|
|
237
|
+
truncated: v.boolean(),
|
|
202
238
|
});
|
|
203
239
|
/** Lightweight "check for changes" result (no writes) — one head-commit probe. */
|
|
204
240
|
export const foundationalServiceSourceStatusSchema = v.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundational-services.js","sourceRoot":"","sources":["../src/foundational-services.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"foundational-services.js","sourceRoot":"","sources":["../src/foundational-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -473,8 +473,9 @@ export declare const listFoundationalServiceSourcesContract: {
|
|
|
473
473
|
readonly repoOwner: v.StringSchema<undefined>;
|
|
474
474
|
readonly repoName: v.StringSchema<undefined>;
|
|
475
475
|
readonly gitRef: v.StringSchema<undefined>;
|
|
476
|
-
readonly mode: v.PicklistSchema<["directory", "files"], undefined>;
|
|
476
|
+
readonly mode: v.PicklistSchema<["directory", "folder", "files"], undefined>;
|
|
477
477
|
readonly dirPath: v.StringSchema<undefined>;
|
|
478
|
+
readonly recursive: v.BooleanSchema<undefined>;
|
|
478
479
|
readonly filePaths: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
479
480
|
readonly serviceId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
480
481
|
readonly serviceName: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -492,8 +493,9 @@ export declare const linkFoundationalServiceSourceContract: {
|
|
|
492
493
|
readonly repoOwner: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 100, undefined>]>;
|
|
493
494
|
readonly repoName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
|
|
494
495
|
readonly gitRef: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
495
|
-
readonly mode: v.PicklistSchema<["directory", "files"], undefined>;
|
|
496
|
+
readonly mode: v.PicklistSchema<["directory", "folder", "files"], undefined>;
|
|
496
497
|
readonly dirPath: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 300, undefined>]>, undefined>;
|
|
498
|
+
readonly recursive: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
497
499
|
readonly filePaths: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 300, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, undefined>;
|
|
498
500
|
readonly serviceId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>, v.RegexAction<string, "must be a lower-kebab slug">]>, undefined>;
|
|
499
501
|
readonly serviceName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
@@ -502,13 +504,36 @@ export declare const linkFoundationalServiceSourceContract: {
|
|
|
502
504
|
repoOwner: string;
|
|
503
505
|
repoName: string;
|
|
504
506
|
gitRef?: string | undefined;
|
|
505
|
-
mode: "directory" | "files";
|
|
507
|
+
mode: "directory" | "files" | "folder";
|
|
506
508
|
dirPath?: string | undefined;
|
|
509
|
+
recursive?: boolean | undefined;
|
|
507
510
|
filePaths?: string[] | undefined;
|
|
508
511
|
serviceId?: string | undefined;
|
|
509
512
|
serviceName?: string | undefined;
|
|
510
513
|
serviceSummary?: string | undefined;
|
|
511
|
-
}, "a `files` source must name serviceId
|
|
514
|
+
}, "a `folder` or `files` source must name serviceId and serviceName">, v.CheckAction<{
|
|
515
|
+
repoOwner: string;
|
|
516
|
+
repoName: string;
|
|
517
|
+
gitRef?: string | undefined;
|
|
518
|
+
mode: "directory" | "files" | "folder";
|
|
519
|
+
dirPath?: string | undefined;
|
|
520
|
+
recursive?: boolean | undefined;
|
|
521
|
+
filePaths?: string[] | undefined;
|
|
522
|
+
serviceId?: string | undefined;
|
|
523
|
+
serviceName?: string | undefined;
|
|
524
|
+
serviceSummary?: string | undefined;
|
|
525
|
+
}, "a `files` source must list at least one file path">, v.CheckAction<{
|
|
526
|
+
repoOwner: string;
|
|
527
|
+
repoName: string;
|
|
528
|
+
gitRef?: string | undefined;
|
|
529
|
+
mode: "directory" | "files" | "folder";
|
|
530
|
+
dirPath?: string | undefined;
|
|
531
|
+
recursive?: boolean | undefined;
|
|
532
|
+
filePaths?: string[] | undefined;
|
|
533
|
+
serviceId?: string | undefined;
|
|
534
|
+
serviceName?: string | undefined;
|
|
535
|
+
serviceSummary?: string | undefined;
|
|
536
|
+
}, "`recursive` applies only to a `folder` source">]>;
|
|
512
537
|
readonly responsesByStatusCode: {
|
|
513
538
|
readonly '4xx': v.ObjectSchema<{
|
|
514
539
|
readonly error: v.ObjectSchema<{
|
|
@@ -539,8 +564,9 @@ export declare const linkFoundationalServiceSourceContract: {
|
|
|
539
564
|
readonly repoOwner: v.StringSchema<undefined>;
|
|
540
565
|
readonly repoName: v.StringSchema<undefined>;
|
|
541
566
|
readonly gitRef: v.StringSchema<undefined>;
|
|
542
|
-
readonly mode: v.PicklistSchema<["directory", "files"], undefined>;
|
|
567
|
+
readonly mode: v.PicklistSchema<["directory", "folder", "files"], undefined>;
|
|
543
568
|
readonly dirPath: v.StringSchema<undefined>;
|
|
569
|
+
readonly recursive: v.BooleanSchema<undefined>;
|
|
544
570
|
readonly filePaths: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
545
571
|
readonly serviceId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
546
572
|
readonly serviceName: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -660,6 +686,8 @@ export declare const syncFoundationalServiceSourceContract: {
|
|
|
660
686
|
readonly tombstoned: v.NumberSchema<undefined>;
|
|
661
687
|
readonly unchanged: v.NumberSchema<undefined>;
|
|
662
688
|
readonly lastSyncedCommit: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
689
|
+
readonly skippedFiles: v.NumberSchema<undefined>;
|
|
690
|
+
readonly truncated: v.BooleanSchema<undefined>;
|
|
663
691
|
}, undefined>;
|
|
664
692
|
};
|
|
665
693
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundational-services.d.ts","sourceRoot":"","sources":["../../src/routes/foundational-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmC5B,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI3C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5C,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/C,CAAA;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOtD,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM9C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK7C,CAAA;AAIF,eAAO,MAAM,sCAAsC
|
|
1
|
+
{"version":3,"file":"foundational-services.d.ts","sourceRoot":"","sources":["../../src/routes/foundational-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmC5B,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI3C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5C,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/C,CAAA;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOtD,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM9C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK7C,CAAA;AAIF,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhD,CAAA;AAEF,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlD,CAAA;AAEF,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMhD,CAAA"}
|