@checkdigit/eslint-plugin 7.17.1 → 7.18.0-PR.143-9946

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.
Files changed (80) hide show
  1. package/dist-mjs/athena/api-locator.mjs +30 -0
  2. package/dist-mjs/athena/api-matcher.mjs +108 -0
  3. package/dist-mjs/athena/athena.mjs +328 -0
  4. package/dist-mjs/athena/column.mjs +1 -0
  5. package/dist-mjs/athena/context.mjs +21 -0
  6. package/dist-mjs/athena/index.mjs +1 -0
  7. package/dist-mjs/athena/service-table.mjs +32 -0
  8. package/dist-mjs/athena/types.mjs +1 -0
  9. package/dist-mjs/athena/visitor.mjs +258 -0
  10. package/dist-mjs/index.mjs +8 -4
  11. package/dist-mjs/no-status-code-assert.mjs +1 -1
  12. package/dist-mjs/openapi/deref-schema.mjs +14 -0
  13. package/dist-mjs/openapi/generate-schema.mjs +273 -0
  14. package/dist-mjs/openapi/service-schema-generator.mjs +147 -0
  15. package/dist-mjs/peggy/athena-peggy.mjs +20629 -0
  16. package/dist-types/athena/api-locator.d.ts +2 -0
  17. package/dist-types/athena/api-matcher.d.ts +14 -0
  18. package/dist-types/athena/athena.d.ts +6 -0
  19. package/dist-types/athena/column.d.ts +1 -0
  20. package/dist-types/athena/context.d.ts +21 -0
  21. package/dist-types/athena/index.d.ts +8 -0
  22. package/dist-types/athena/service-table.d.ts +8 -0
  23. package/dist-types/athena/types.d.ts +474 -0
  24. package/dist-types/athena/visitor.d.ts +63 -0
  25. package/dist-types/no-status-code-assert.d.ts +1 -1
  26. package/dist-types/openapi/deref-schema.d.ts +1 -0
  27. package/dist-types/openapi/generate-schema.d.ts +33 -0
  28. package/dist-types/openapi/service-schema-generator.d.ts +5 -0
  29. package/dist-types/peggy/athena-peggy.d.ts +13 -0
  30. package/package.json +1 -96
  31. package/src/athena/ATHENA.md +387 -0
  32. package/src/athena/PLAN.md +355 -0
  33. package/src/athena/api-locator.ts +39 -0
  34. package/src/athena/api-matcher.ts +169 -0
  35. package/src/athena/athena.ts +488 -0
  36. package/src/athena/column.ts +2 -0
  37. package/src/athena/context.ts +47 -0
  38. package/src/athena/index.ts +11 -0
  39. package/src/athena/service-table.ts +55 -0
  40. package/src/athena/types.ts +526 -0
  41. package/src/athena/visitor.ts +365 -0
  42. package/src/index.ts +4 -0
  43. package/src/no-side-effects.ts +1 -1
  44. package/src/no-status-code-assert.ts +2 -2
  45. package/src/openapi/deref-schema.ts +14 -0
  46. package/src/openapi/generate-schema.ts +422 -0
  47. package/src/openapi/service-schema-generator.ts +189 -0
  48. package/src/peggy/athena-chat.peggy +608 -0
  49. package/src/peggy/athena-peggy.ts +22078 -0
  50. package/src/peggy/athena.peggy +2967 -0
  51. package/src/require-service-call-response-declaration.ts +2 -2
  52. package/src/services/interchange/v1/swagger.schema.deref.json +849 -0
  53. package/src/services/interchange/v1/swagger.schema.json +473 -0
  54. package/src/services/interchange/v1/swagger.yml +414 -0
  55. package/src/services/ledger/v1/swagger.schema.deref.json +6694 -0
  56. package/src/services/ledger/v1/swagger.schema.json +1820 -0
  57. package/src/services/ledger/v1/swagger.yml +1094 -0
  58. package/src/services/link/v1/swagger.schema.deref.json +648 -0
  59. package/src/services/link/v1/swagger.schema.json +444 -0
  60. package/src/services/link/v1/swagger.yml +343 -0
  61. package/src/services/message/v1/swagger.schema.deref.json +22049 -0
  62. package/src/services/message/v1/swagger.schema.json +3470 -0
  63. package/src/services/message/v1/swagger.yml +2798 -0
  64. package/src/services/message/v2/swagger.schema.deref.json +72221 -0
  65. package/src/services/message/v2/swagger.schema.json +3558 -0
  66. package/src/services/message/v2/swagger.yml +3009 -0
  67. package/src/services/paymentCard/v1/swagger.schema.deref.json +4346 -0
  68. package/src/services/paymentCard/v1/swagger.schema.json +2181 -0
  69. package/src/services/paymentCard/v1/swagger.yml +1161 -0
  70. package/src/services/paymentCard/v2/swagger.schema.deref.json +4336 -0
  71. package/src/services/paymentCard/v2/swagger.schema.json +2155 -0
  72. package/src/services/paymentCard/v2/swagger.yml +1149 -0
  73. package/src/services/person/v1/swagger.schema.deref.json +6786 -0
  74. package/src/services/person/v1/swagger.schema.json +1445 -0
  75. package/src/services/person/v1/swagger.yml +1157 -0
  76. package/src/services/teampayApproval/v1/swagger.schema.deref.json +9898 -0
  77. package/src/services/teampayCardManagement/v1/swagger.schema.deref.json +6187 -0
  78. package/src/services/teampayClientManagement/v1/swagger.schema.deref.json +4914 -0
  79. package/src/services/teampayClientManagement/v1/swagger.schema.json +1964 -0
  80. package/src/services/teampayClientManagement/v1/swagger.yml +1376 -0
@@ -0,0 +1,648 @@
1
+ {
2
+ "apis": {
3
+ "/link/v1/ping": {
4
+ "get": {
5
+ "request": {
6
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
7
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/PingGetRequestContext",
8
+ "type": "object",
9
+ "properties": {
10
+ "headers": {
11
+ "type": "object",
12
+ "additionalProperties": true
13
+ }
14
+ },
15
+ "required": [],
16
+ "additionalProperties": false
17
+ },
18
+ "responses": {
19
+ "200": {
20
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
21
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/PingGetResponseOK",
22
+ "type": "object",
23
+ "properties": {
24
+ "headers": {
25
+ "type": "object",
26
+ "additionalProperties": true
27
+ },
28
+ "body": {
29
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
30
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Ping",
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["serverTime"],
34
+ "properties": {
35
+ "serverTime": {
36
+ "type": "string",
37
+ "format": "date-time",
38
+ "description": "Current server time"
39
+ }
40
+ }
41
+ }
42
+ },
43
+ "required": ["body"],
44
+ "additionalProperties": false
45
+ },
46
+ "default": {
47
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
48
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/PingGetResponseDefault",
49
+ "type": "object",
50
+ "properties": {
51
+ "headers": {
52
+ "type": "object",
53
+ "additionalProperties": true
54
+ },
55
+ "body": {
56
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
57
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Error",
58
+ "type": "object",
59
+ "additionalProperties": false,
60
+ "required": ["message"],
61
+ "description": "Error message.",
62
+ "properties": {
63
+ "message": {
64
+ "type": "string"
65
+ },
66
+ "code": {
67
+ "type": "string"
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "required": ["body"],
73
+ "additionalProperties": false
74
+ }
75
+ }
76
+ }
77
+ },
78
+ "/link/v1/link/:subjectId": {
79
+ "get": {
80
+ "request": {
81
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
82
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectGetRequestContext",
83
+ "type": "object",
84
+ "properties": {
85
+ "params": {
86
+ "type": "object",
87
+ "additionalProperties": false,
88
+ "properties": {
89
+ "at": {
90
+ "type": "string",
91
+ "format": "date-time"
92
+ }
93
+ },
94
+ "required": ["at"]
95
+ },
96
+ "headers": {
97
+ "type": "object",
98
+ "additionalProperties": true
99
+ }
100
+ },
101
+ "required": ["params", "query"],
102
+ "additionalProperties": false
103
+ },
104
+ "responses": {
105
+ "200": {
106
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
107
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectGetResponseOK",
108
+ "type": "object",
109
+ "properties": {
110
+ "headers": {
111
+ "type": "object",
112
+ "additionalProperties": true
113
+ },
114
+ "body": {
115
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
116
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Linkages",
117
+ "type": "object",
118
+ "additionalProperties": false,
119
+ "required": ["links"],
120
+ "properties": {
121
+ "links": {
122
+ "type": "array",
123
+ "items": {
124
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
125
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Link",
126
+ "type": "object",
127
+ "additionalProperties": false,
128
+ "required": ["subjectId", "predicate", "objectId", "createdOn"],
129
+ "properties": {
130
+ "subjectId": {
131
+ "type": "string",
132
+ "description": "Unique identifier for the subject.",
133
+ "minLength": 1
134
+ },
135
+ "predicate": {
136
+ "type": "string",
137
+ "description": "Predicate linking the subject to the object.",
138
+ "minLength": 1
139
+ },
140
+ "objectId": {
141
+ "type": "string",
142
+ "description": "Unique identifier for the object.",
143
+ "minLength": 1
144
+ },
145
+ "createdOn": {
146
+ "type": "string",
147
+ "description": "Date linkage was created",
148
+ "minLength": 1
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ },
156
+ "required": ["body"],
157
+ "additionalProperties": false
158
+ },
159
+ "default": {
160
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
161
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectGetResponseDefault",
162
+ "type": "object",
163
+ "properties": {
164
+ "headers": {
165
+ "type": "object",
166
+ "additionalProperties": true
167
+ },
168
+ "body": {
169
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
170
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Error",
171
+ "type": "object",
172
+ "additionalProperties": false,
173
+ "required": ["message"],
174
+ "description": "Error message.",
175
+ "properties": {
176
+ "message": {
177
+ "type": "string"
178
+ },
179
+ "code": {
180
+ "type": "string"
181
+ }
182
+ }
183
+ }
184
+ },
185
+ "required": ["body"],
186
+ "additionalProperties": false
187
+ }
188
+ }
189
+ }
190
+ },
191
+ "/link/v1/link/:subjectId/:predicate": {
192
+ "get": {
193
+ "request": {
194
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
195
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateGetRequestContext",
196
+ "type": "object",
197
+ "properties": {
198
+ "params": {
199
+ "type": "object",
200
+ "additionalProperties": false,
201
+ "properties": {
202
+ "at": {
203
+ "type": "string",
204
+ "format": "date-time"
205
+ }
206
+ },
207
+ "required": ["at"]
208
+ },
209
+ "headers": {
210
+ "type": "object",
211
+ "additionalProperties": true
212
+ }
213
+ },
214
+ "required": ["params", "query"],
215
+ "additionalProperties": false
216
+ },
217
+ "responses": {
218
+ "200": {
219
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
220
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateGetResponseOK",
221
+ "type": "object",
222
+ "properties": {
223
+ "headers": {
224
+ "type": "object",
225
+ "additionalProperties": true
226
+ },
227
+ "body": {
228
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
229
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Linkages",
230
+ "type": "object",
231
+ "additionalProperties": false,
232
+ "required": ["links"],
233
+ "properties": {
234
+ "links": {
235
+ "type": "array",
236
+ "items": {
237
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
238
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Link",
239
+ "type": "object",
240
+ "additionalProperties": false,
241
+ "required": ["subjectId", "predicate", "objectId", "createdOn"],
242
+ "properties": {
243
+ "subjectId": {
244
+ "type": "string",
245
+ "description": "Unique identifier for the subject.",
246
+ "minLength": 1
247
+ },
248
+ "predicate": {
249
+ "type": "string",
250
+ "description": "Predicate linking the subject to the object.",
251
+ "minLength": 1
252
+ },
253
+ "objectId": {
254
+ "type": "string",
255
+ "description": "Unique identifier for the object.",
256
+ "minLength": 1
257
+ },
258
+ "createdOn": {
259
+ "type": "string",
260
+ "description": "Date linkage was created",
261
+ "minLength": 1
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ }
268
+ },
269
+ "required": ["body"],
270
+ "additionalProperties": false
271
+ },
272
+ "default": {
273
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
274
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateGetResponseDefault",
275
+ "type": "object",
276
+ "properties": {
277
+ "headers": {
278
+ "type": "object",
279
+ "additionalProperties": true
280
+ },
281
+ "body": {
282
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
283
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Error",
284
+ "type": "object",
285
+ "additionalProperties": false,
286
+ "required": ["message"],
287
+ "description": "Error message.",
288
+ "properties": {
289
+ "message": {
290
+ "type": "string"
291
+ },
292
+ "code": {
293
+ "type": "string"
294
+ }
295
+ }
296
+ }
297
+ },
298
+ "required": ["body"],
299
+ "additionalProperties": false
300
+ }
301
+ }
302
+ }
303
+ },
304
+ "/link/v1/link/:subjectId/:predicate/:objectId": {
305
+ "get": {
306
+ "request": {
307
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
308
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateObjectGetRequestContext",
309
+ "type": "object",
310
+ "properties": {
311
+ "params": {
312
+ "type": "object",
313
+ "additionalProperties": false,
314
+ "properties": {
315
+ "at": {
316
+ "type": "string",
317
+ "format": "date-time"
318
+ }
319
+ },
320
+ "required": ["at"]
321
+ },
322
+ "headers": {
323
+ "type": "object",
324
+ "additionalProperties": true
325
+ }
326
+ },
327
+ "required": ["params", "query"],
328
+ "additionalProperties": false
329
+ },
330
+ "responses": {
331
+ "200": {
332
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
333
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateObjectGetResponseOK",
334
+ "type": "object",
335
+ "properties": {
336
+ "headers": {
337
+ "type": "object",
338
+ "properties": {
339
+ "last-modified": {
340
+ "type": "string",
341
+ "format": "date-time"
342
+ },
343
+ "created-on": {
344
+ "type": "string",
345
+ "format": "date-time"
346
+ },
347
+ "updated-on": {
348
+ "type": "string",
349
+ "format": "date-time"
350
+ }
351
+ }
352
+ },
353
+ "body": {
354
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
355
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Link",
356
+ "type": "object",
357
+ "additionalProperties": false,
358
+ "required": ["subjectId", "predicate", "objectId", "createdOn"],
359
+ "properties": {
360
+ "subjectId": {
361
+ "type": "string",
362
+ "description": "Unique identifier for the subject.",
363
+ "minLength": 1
364
+ },
365
+ "predicate": {
366
+ "type": "string",
367
+ "description": "Predicate linking the subject to the object.",
368
+ "minLength": 1
369
+ },
370
+ "objectId": {
371
+ "type": "string",
372
+ "description": "Unique identifier for the object.",
373
+ "minLength": 1
374
+ },
375
+ "createdOn": {
376
+ "type": "string",
377
+ "description": "Date linkage was created",
378
+ "minLength": 1
379
+ }
380
+ }
381
+ }
382
+ },
383
+ "required": ["body"],
384
+ "additionalProperties": false
385
+ },
386
+ "404": {
387
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
388
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateObjectGetResponseNotFound",
389
+ "type": "object",
390
+ "properties": {
391
+ "headers": {
392
+ "type": "object",
393
+ "additionalProperties": true
394
+ }
395
+ },
396
+ "required": [],
397
+ "additionalProperties": false
398
+ },
399
+ "default": {
400
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
401
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateObjectGetResponseDefault",
402
+ "type": "object",
403
+ "properties": {
404
+ "headers": {
405
+ "type": "object",
406
+ "additionalProperties": true
407
+ },
408
+ "body": {
409
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
410
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Error",
411
+ "type": "object",
412
+ "additionalProperties": false,
413
+ "required": ["message"],
414
+ "description": "Error message.",
415
+ "properties": {
416
+ "message": {
417
+ "type": "string"
418
+ },
419
+ "code": {
420
+ "type": "string"
421
+ }
422
+ }
423
+ }
424
+ },
425
+ "required": ["body"],
426
+ "additionalProperties": false
427
+ }
428
+ }
429
+ },
430
+ "put": {
431
+ "request": {
432
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
433
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateObjectPutRequestContext",
434
+ "type": "object",
435
+ "properties": {
436
+ "params": {
437
+ "type": "object",
438
+ "additionalProperties": false,
439
+ "properties": {
440
+ "subjectId": {
441
+ "type": "string",
442
+ "minLength": 1
443
+ },
444
+ "predicate": {
445
+ "type": "string",
446
+ "minLength": 1
447
+ },
448
+ "objectId": {
449
+ "type": "string",
450
+ "minLength": 1
451
+ }
452
+ },
453
+ "required": ["subjectId", "predicate", "objectId"]
454
+ },
455
+ "headers": {
456
+ "type": "object",
457
+ "additionalProperties": true,
458
+ "properties": {
459
+ "last-modified": {
460
+ "type": "string",
461
+ "format": "date-time"
462
+ },
463
+ "created-on": {
464
+ "type": "string",
465
+ "format": "date-time"
466
+ }
467
+ }
468
+ }
469
+ },
470
+ "required": ["params"],
471
+ "additionalProperties": false
472
+ },
473
+ "responses": {
474
+ "204": {
475
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
476
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateObjectPutResponseNoContent",
477
+ "type": "object",
478
+ "properties": {
479
+ "headers": {
480
+ "type": "object",
481
+ "properties": {
482
+ "last-modified": {
483
+ "type": "string",
484
+ "format": "date-time"
485
+ },
486
+ "created-on": {
487
+ "type": "string",
488
+ "format": "date-time"
489
+ },
490
+ "updated-on": {
491
+ "type": "string",
492
+ "format": "date-time"
493
+ }
494
+ }
495
+ }
496
+ },
497
+ "required": [],
498
+ "additionalProperties": false
499
+ },
500
+ "409": {
501
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
502
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateObjectPutResponseConflict",
503
+ "type": "object",
504
+ "properties": {
505
+ "headers": {
506
+ "type": "object",
507
+ "additionalProperties": true
508
+ }
509
+ },
510
+ "required": [],
511
+ "additionalProperties": false
512
+ },
513
+ "default": {
514
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
515
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/api/LinkSubjectPredicateObjectPutResponseDefault",
516
+ "type": "object",
517
+ "properties": {
518
+ "headers": {
519
+ "type": "object",
520
+ "additionalProperties": true
521
+ },
522
+ "body": {
523
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
524
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Error",
525
+ "type": "object",
526
+ "additionalProperties": false,
527
+ "required": ["message"],
528
+ "description": "Error message.",
529
+ "properties": {
530
+ "message": {
531
+ "type": "string"
532
+ },
533
+ "code": {
534
+ "type": "string"
535
+ }
536
+ }
537
+ }
538
+ },
539
+ "required": ["body"],
540
+ "additionalProperties": false
541
+ }
542
+ }
543
+ }
544
+ }
545
+ },
546
+ "definitions": {
547
+ "Ping": {
548
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
549
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Ping",
550
+ "type": "object",
551
+ "additionalProperties": false,
552
+ "required": ["serverTime"],
553
+ "properties": {
554
+ "serverTime": {
555
+ "type": "string",
556
+ "format": "date-time",
557
+ "description": "Current server time"
558
+ }
559
+ }
560
+ },
561
+ "Error": {
562
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
563
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Error",
564
+ "type": "object",
565
+ "additionalProperties": false,
566
+ "required": ["message"],
567
+ "description": "Error message.",
568
+ "properties": {
569
+ "message": {
570
+ "type": "string"
571
+ },
572
+ "code": {
573
+ "type": "string"
574
+ }
575
+ }
576
+ },
577
+ "Link": {
578
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
579
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Link",
580
+ "type": "object",
581
+ "additionalProperties": false,
582
+ "required": ["subjectId", "predicate", "objectId", "createdOn"],
583
+ "properties": {
584
+ "subjectId": {
585
+ "type": "string",
586
+ "description": "Unique identifier for the subject.",
587
+ "minLength": 1
588
+ },
589
+ "predicate": {
590
+ "type": "string",
591
+ "description": "Predicate linking the subject to the object.",
592
+ "minLength": 1
593
+ },
594
+ "objectId": {
595
+ "type": "string",
596
+ "description": "Unique identifier for the object.",
597
+ "minLength": 1
598
+ },
599
+ "createdOn": {
600
+ "type": "string",
601
+ "description": "Date linkage was created",
602
+ "minLength": 1
603
+ }
604
+ }
605
+ },
606
+ "Linkages": {
607
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
608
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Linkages",
609
+ "type": "object",
610
+ "additionalProperties": false,
611
+ "required": ["links"],
612
+ "properties": {
613
+ "links": {
614
+ "type": "array",
615
+ "items": {
616
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
617
+ "$id": "https://eslint-plugin.checkdigit/link/v1/schemas/definitions/Link",
618
+ "type": "object",
619
+ "additionalProperties": false,
620
+ "required": ["subjectId", "predicate", "objectId", "createdOn"],
621
+ "properties": {
622
+ "subjectId": {
623
+ "type": "string",
624
+ "description": "Unique identifier for the subject.",
625
+ "minLength": 1
626
+ },
627
+ "predicate": {
628
+ "type": "string",
629
+ "description": "Predicate linking the subject to the object.",
630
+ "minLength": 1
631
+ },
632
+ "objectId": {
633
+ "type": "string",
634
+ "description": "Unique identifier for the object.",
635
+ "minLength": 1
636
+ },
637
+ "createdOn": {
638
+ "type": "string",
639
+ "description": "Date linkage was created",
640
+ "minLength": 1
641
+ }
642
+ }
643
+ }
644
+ }
645
+ }
646
+ }
647
+ }
648
+ }