@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.
- package/dist-mjs/athena/api-locator.mjs +30 -0
- package/dist-mjs/athena/api-matcher.mjs +108 -0
- package/dist-mjs/athena/athena.mjs +328 -0
- package/dist-mjs/athena/column.mjs +1 -0
- package/dist-mjs/athena/context.mjs +21 -0
- package/dist-mjs/athena/index.mjs +1 -0
- package/dist-mjs/athena/service-table.mjs +32 -0
- package/dist-mjs/athena/types.mjs +1 -0
- package/dist-mjs/athena/visitor.mjs +258 -0
- package/dist-mjs/index.mjs +8 -4
- package/dist-mjs/no-status-code-assert.mjs +1 -1
- package/dist-mjs/openapi/deref-schema.mjs +14 -0
- package/dist-mjs/openapi/generate-schema.mjs +273 -0
- package/dist-mjs/openapi/service-schema-generator.mjs +147 -0
- package/dist-mjs/peggy/athena-peggy.mjs +20629 -0
- package/dist-types/athena/api-locator.d.ts +2 -0
- package/dist-types/athena/api-matcher.d.ts +14 -0
- package/dist-types/athena/athena.d.ts +6 -0
- package/dist-types/athena/column.d.ts +1 -0
- package/dist-types/athena/context.d.ts +21 -0
- package/dist-types/athena/index.d.ts +8 -0
- package/dist-types/athena/service-table.d.ts +8 -0
- package/dist-types/athena/types.d.ts +474 -0
- package/dist-types/athena/visitor.d.ts +63 -0
- package/dist-types/no-status-code-assert.d.ts +1 -1
- package/dist-types/openapi/deref-schema.d.ts +1 -0
- package/dist-types/openapi/generate-schema.d.ts +33 -0
- package/dist-types/openapi/service-schema-generator.d.ts +5 -0
- package/dist-types/peggy/athena-peggy.d.ts +13 -0
- package/package.json +1 -96
- package/src/athena/ATHENA.md +387 -0
- package/src/athena/PLAN.md +355 -0
- package/src/athena/api-locator.ts +39 -0
- package/src/athena/api-matcher.ts +169 -0
- package/src/athena/athena.ts +488 -0
- package/src/athena/column.ts +2 -0
- package/src/athena/context.ts +47 -0
- package/src/athena/index.ts +11 -0
- package/src/athena/service-table.ts +55 -0
- package/src/athena/types.ts +526 -0
- package/src/athena/visitor.ts +365 -0
- package/src/index.ts +4 -0
- package/src/no-side-effects.ts +1 -1
- package/src/no-status-code-assert.ts +2 -2
- package/src/openapi/deref-schema.ts +14 -0
- package/src/openapi/generate-schema.ts +422 -0
- package/src/openapi/service-schema-generator.ts +189 -0
- package/src/peggy/athena-chat.peggy +608 -0
- package/src/peggy/athena-peggy.ts +22078 -0
- package/src/peggy/athena.peggy +2967 -0
- package/src/require-service-call-response-declaration.ts +2 -2
- package/src/services/interchange/v1/swagger.schema.deref.json +849 -0
- package/src/services/interchange/v1/swagger.schema.json +473 -0
- package/src/services/interchange/v1/swagger.yml +414 -0
- package/src/services/ledger/v1/swagger.schema.deref.json +6694 -0
- package/src/services/ledger/v1/swagger.schema.json +1820 -0
- package/src/services/ledger/v1/swagger.yml +1094 -0
- package/src/services/link/v1/swagger.schema.deref.json +648 -0
- package/src/services/link/v1/swagger.schema.json +444 -0
- package/src/services/link/v1/swagger.yml +343 -0
- package/src/services/message/v1/swagger.schema.deref.json +22049 -0
- package/src/services/message/v1/swagger.schema.json +3470 -0
- package/src/services/message/v1/swagger.yml +2798 -0
- package/src/services/message/v2/swagger.schema.deref.json +72221 -0
- package/src/services/message/v2/swagger.schema.json +3558 -0
- package/src/services/message/v2/swagger.yml +3009 -0
- package/src/services/paymentCard/v1/swagger.schema.deref.json +4346 -0
- package/src/services/paymentCard/v1/swagger.schema.json +2181 -0
- package/src/services/paymentCard/v1/swagger.yml +1161 -0
- package/src/services/paymentCard/v2/swagger.schema.deref.json +4336 -0
- package/src/services/paymentCard/v2/swagger.schema.json +2155 -0
- package/src/services/paymentCard/v2/swagger.yml +1149 -0
- package/src/services/person/v1/swagger.schema.deref.json +6786 -0
- package/src/services/person/v1/swagger.schema.json +1445 -0
- package/src/services/person/v1/swagger.yml +1157 -0
- package/src/services/teampayApproval/v1/swagger.schema.deref.json +9898 -0
- package/src/services/teampayCardManagement/v1/swagger.schema.deref.json +6187 -0
- package/src/services/teampayClientManagement/v1/swagger.schema.deref.json +4914 -0
- package/src/services/teampayClientManagement/v1/swagger.schema.json +1964 -0
- package/src/services/teampayClientManagement/v1/swagger.yml +1376 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
openapi: 3.0.0
|
|
2
|
+
info:
|
|
3
|
+
title: Link Service
|
|
4
|
+
version: 1.5.2
|
|
5
|
+
contact:
|
|
6
|
+
name: Check Digit
|
|
7
|
+
description: |
|
|
8
|
+
## Introduction
|
|
9
|
+
|
|
10
|
+
The Link API can be used to handle one-to-one, one-to-many, or many-to-many relationships between items defined
|
|
11
|
+
by a universally unique id (UUID) and related to each other by a predicate. Predicates are defined with a namespace
|
|
12
|
+
in order to avoid conflicts with system required values. There are no requirements on what the UUIDs represent or
|
|
13
|
+
what the meaning of a specific caller namespace predicate.
|
|
14
|
+
|
|
15
|
+
## General Concepts
|
|
16
|
+
|
|
17
|
+
* There are no requirements on what the UUIDs represent or what the meaning of a specific caller namespace predicate. Please refer to the documentation related to the API using the Link service to know what subjectId, predicateId, and predicates should be used.
|
|
18
|
+
* All `PUT` operations are idempotent (repeating the same route/parameters will not result in duplicate entries)
|
|
19
|
+
* All `GET` operations are cache-able (same route/parameters will always lead to the same result)
|
|
20
|
+
|
|
21
|
+
## Examples
|
|
22
|
+
|
|
23
|
+
Defining the individual associated with a card:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
PUT /link/v1/link/f01147ce-01cb-4e27-bca5-427a6051c47e/card.ownedBy/908aed38-907f-4100-b257-385ecc48eb66
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Defining the account that can be accessed by a card:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
PUT /link/v1/link/f01147ce-01cb-4e27-bca5-427a6051c47e/card.canAccessFunds/5136753e-8e91-4123-840d-898be2c13510
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Defining the configuration associated with a card:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
PUT /link/v1/link/f01147ce-01cb-4e27-bca5-427a6051c47e/card.hasConfiguration/6c9c83ef-6e42-4b01-8a48-791b5eca2461
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Defining a child parent relationship between individuals:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
PUT /link/v1/link/908aed38-907f-4100-b257-385ecc48eb66/individual.primaryOf/57baf41e-552c-47ac-b122-da5289d686a3
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Example: Obtain the accounts that can be accessed by a card:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
GET /link/v1/link/f01147ce-01cb-4e27-bca5-427a6051c47e/card.canAccessFunds?at=2019-07-11T20%3A14%3A32.115Z
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Commonly Defined Predicates
|
|
54
|
+
|
|
55
|
+
Some predicates are used throughout the platform and are relied upon by various systems:
|
|
56
|
+
|
|
57
|
+
* card.ownedBy - indicates that an cardId (subjectId) is associated with an individual (objectId)
|
|
58
|
+
* card.canAccessFunds - indicates that an cardId (subjectId) can access the funds in an account (objectId)
|
|
59
|
+
* card.hasConfiguration - indicates that cardId (subjectId) has a configuration (objectId)
|
|
60
|
+
* card.ownedBy - indicates that a cardId (subjectId) exists is used by an individual (objectId)
|
|
61
|
+
* individual.primaryOf - indicates that an individual (subjectId) is the primary for a secondary individual (objectId)
|
|
62
|
+
|
|
63
|
+
© Check Digit LLC. 2019-2023
|
|
64
|
+
|
|
65
|
+
servers:
|
|
66
|
+
- url: /link/v1
|
|
67
|
+
|
|
68
|
+
tags:
|
|
69
|
+
- name: Service Health
|
|
70
|
+
- name: API
|
|
71
|
+
|
|
72
|
+
x-firehose-logged: false
|
|
73
|
+
|
|
74
|
+
paths:
|
|
75
|
+
/ping:
|
|
76
|
+
get:
|
|
77
|
+
operationId: 'ping-get'
|
|
78
|
+
tags:
|
|
79
|
+
- Service Health
|
|
80
|
+
description: Tests the availability of the service and returns the current server
|
|
81
|
+
time.
|
|
82
|
+
responses:
|
|
83
|
+
'200':
|
|
84
|
+
$ref: '#/components/responses/Ping'
|
|
85
|
+
default:
|
|
86
|
+
$ref: '#/components/responses/ServerError'
|
|
87
|
+
|
|
88
|
+
/link/{subjectId}:
|
|
89
|
+
get:
|
|
90
|
+
operationId: 'link-subject-get'
|
|
91
|
+
tags:
|
|
92
|
+
- API
|
|
93
|
+
description: Retrieves all links for a subjectId. Returns 200 with an empty array if
|
|
94
|
+
no links exist.
|
|
95
|
+
parameters:
|
|
96
|
+
- $ref: '#/components/parameters/subjectId'
|
|
97
|
+
- $ref: '#/components/parameters/at'
|
|
98
|
+
responses:
|
|
99
|
+
'200':
|
|
100
|
+
$ref: '#/components/responses/LinkagesResponse'
|
|
101
|
+
default:
|
|
102
|
+
$ref: '#/components/responses/ServerError'
|
|
103
|
+
|
|
104
|
+
/link/{subjectId}/{predicate}:
|
|
105
|
+
get:
|
|
106
|
+
operationId: 'link-subject-predicate-get'
|
|
107
|
+
tags:
|
|
108
|
+
- API
|
|
109
|
+
description: Retrieves all of the linkages for subject and predicate. This does not
|
|
110
|
+
return a 404 if no link exist, just an empty array.
|
|
111
|
+
parameters:
|
|
112
|
+
- $ref: '#/components/parameters/subjectId'
|
|
113
|
+
- $ref: '#/components/parameters/predicate'
|
|
114
|
+
- $ref: '#/components/parameters/at'
|
|
115
|
+
responses:
|
|
116
|
+
'200':
|
|
117
|
+
$ref: '#/components/responses/LinkagesResponse'
|
|
118
|
+
default:
|
|
119
|
+
$ref: '#/components/responses/ServerError'
|
|
120
|
+
|
|
121
|
+
/link/{subjectId}/{predicate}/{objectId}:
|
|
122
|
+
get:
|
|
123
|
+
operationId: 'link-subject-predicate-object-get'
|
|
124
|
+
tags:
|
|
125
|
+
- API
|
|
126
|
+
description: Obtains a specific link between a subject and an object.
|
|
127
|
+
parameters:
|
|
128
|
+
- $ref: '#/components/parameters/subjectId'
|
|
129
|
+
- $ref: '#/components/parameters/predicate'
|
|
130
|
+
- $ref: '#/components/parameters/objectId'
|
|
131
|
+
- $ref: '#/components/parameters/at'
|
|
132
|
+
responses:
|
|
133
|
+
'200':
|
|
134
|
+
$ref: '#/components/responses/LinkResponse'
|
|
135
|
+
'404':
|
|
136
|
+
description: Link not found.
|
|
137
|
+
default:
|
|
138
|
+
$ref: '#/components/responses/ServerError'
|
|
139
|
+
put:
|
|
140
|
+
operationId: 'link-subject-predicate-object-put'
|
|
141
|
+
tags:
|
|
142
|
+
- API
|
|
143
|
+
description: Stores a link between a subject and an object. The subjectId, predicate,
|
|
144
|
+
and objectId cannot contain '/' (%2F).
|
|
145
|
+
x-firehose-logged: true
|
|
146
|
+
parameters:
|
|
147
|
+
- $ref: '#/components/parameters/subjectId'
|
|
148
|
+
- $ref: '#/components/parameters/predicate'
|
|
149
|
+
- $ref: '#/components/parameters/objectId'
|
|
150
|
+
- $ref: '#/components/parameters/lastModified'
|
|
151
|
+
- $ref: '#/components/parameters/createdOn'
|
|
152
|
+
responses:
|
|
153
|
+
'204':
|
|
154
|
+
description: Link successfully created.
|
|
155
|
+
headers:
|
|
156
|
+
Last-Modified:
|
|
157
|
+
$ref: '#/components/headers/Last-Modified'
|
|
158
|
+
Created-On:
|
|
159
|
+
$ref: '#/components/headers/Created-On'
|
|
160
|
+
Updated-On:
|
|
161
|
+
$ref: '#/components/headers/Updated-On'
|
|
162
|
+
'409':
|
|
163
|
+
description: Record exists but with different data
|
|
164
|
+
default:
|
|
165
|
+
$ref: '#/components/responses/ServerError'
|
|
166
|
+
|
|
167
|
+
components:
|
|
168
|
+
parameters:
|
|
169
|
+
subjectId:
|
|
170
|
+
name: subjectId
|
|
171
|
+
in: path
|
|
172
|
+
description: Unique identifier for the subject.
|
|
173
|
+
required: true
|
|
174
|
+
schema:
|
|
175
|
+
type: string
|
|
176
|
+
minLength: 1
|
|
177
|
+
|
|
178
|
+
predicate:
|
|
179
|
+
name: predicate
|
|
180
|
+
in: path
|
|
181
|
+
description: Predicate that describes the link.
|
|
182
|
+
required: true
|
|
183
|
+
schema:
|
|
184
|
+
type: string
|
|
185
|
+
minLength: 1
|
|
186
|
+
|
|
187
|
+
objectId:
|
|
188
|
+
name: objectId
|
|
189
|
+
in: path
|
|
190
|
+
description: Unique identifier for the object.
|
|
191
|
+
required: true
|
|
192
|
+
schema:
|
|
193
|
+
type: string
|
|
194
|
+
minLength: 1
|
|
195
|
+
|
|
196
|
+
at:
|
|
197
|
+
name: at
|
|
198
|
+
in: query
|
|
199
|
+
description: Identifies at what point in time the data should be returned. Must not
|
|
200
|
+
be in the future.
|
|
201
|
+
required: true
|
|
202
|
+
schema:
|
|
203
|
+
type: string
|
|
204
|
+
format: date-time
|
|
205
|
+
|
|
206
|
+
createdOn:
|
|
207
|
+
name: Created-On
|
|
208
|
+
in: header
|
|
209
|
+
description: |
|
|
210
|
+
Created-On header, establishes createdOn and last-modified values for the created data.
|
|
211
|
+
If both Created-On and Last-Modified values are provided, the value provided in Created-On
|
|
212
|
+
will be used for creating the data and the value provided in Last-Modified will be ignored.
|
|
213
|
+
example: '1970-01-01T00:00:00.000Z'
|
|
214
|
+
required: false
|
|
215
|
+
schema:
|
|
216
|
+
type: string
|
|
217
|
+
format: date-time
|
|
218
|
+
|
|
219
|
+
lastModified:
|
|
220
|
+
name: Last-Modified
|
|
221
|
+
in: header
|
|
222
|
+
description: last-modified header, establishes createdOn and last-modified value for created data
|
|
223
|
+
example: '1970-01-01T00:00:00.000Z'
|
|
224
|
+
required: false
|
|
225
|
+
schema:
|
|
226
|
+
type: string
|
|
227
|
+
format: date-time
|
|
228
|
+
|
|
229
|
+
schemas:
|
|
230
|
+
Ping:
|
|
231
|
+
type: object
|
|
232
|
+
additionalProperties: false
|
|
233
|
+
required:
|
|
234
|
+
- serverTime
|
|
235
|
+
properties:
|
|
236
|
+
serverTime:
|
|
237
|
+
type: string
|
|
238
|
+
format: date-time
|
|
239
|
+
description: Current server time
|
|
240
|
+
|
|
241
|
+
Error:
|
|
242
|
+
type: object
|
|
243
|
+
additionalProperties: false
|
|
244
|
+
required:
|
|
245
|
+
- message
|
|
246
|
+
description: Error message.
|
|
247
|
+
properties:
|
|
248
|
+
message:
|
|
249
|
+
type: string
|
|
250
|
+
code:
|
|
251
|
+
type: string
|
|
252
|
+
|
|
253
|
+
Link:
|
|
254
|
+
type: object
|
|
255
|
+
additionalProperties: false
|
|
256
|
+
required:
|
|
257
|
+
- subjectId
|
|
258
|
+
- predicate
|
|
259
|
+
- objectId
|
|
260
|
+
- createdOn
|
|
261
|
+
properties:
|
|
262
|
+
subjectId:
|
|
263
|
+
type: string
|
|
264
|
+
description: Unique identifier for the subject.
|
|
265
|
+
minLength: 1
|
|
266
|
+
predicate:
|
|
267
|
+
type: string
|
|
268
|
+
description: Predicate linking the subject to the object.
|
|
269
|
+
minLength: 1
|
|
270
|
+
objectId:
|
|
271
|
+
type: string
|
|
272
|
+
description: Unique identifier for the object.
|
|
273
|
+
minLength: 1
|
|
274
|
+
createdOn:
|
|
275
|
+
type: string
|
|
276
|
+
description: Date linkage was created
|
|
277
|
+
minLength: 1
|
|
278
|
+
|
|
279
|
+
Linkages:
|
|
280
|
+
type: object
|
|
281
|
+
additionalProperties: false
|
|
282
|
+
required:
|
|
283
|
+
- links
|
|
284
|
+
properties:
|
|
285
|
+
links:
|
|
286
|
+
type: array
|
|
287
|
+
items:
|
|
288
|
+
$ref: '#/components/schemas/Link'
|
|
289
|
+
|
|
290
|
+
responses:
|
|
291
|
+
Ping:
|
|
292
|
+
description: ping successful response
|
|
293
|
+
content:
|
|
294
|
+
application/json:
|
|
295
|
+
schema:
|
|
296
|
+
$ref: '#/components/schemas/Ping'
|
|
297
|
+
|
|
298
|
+
ServerError:
|
|
299
|
+
description: Server Error response
|
|
300
|
+
content:
|
|
301
|
+
application/json:
|
|
302
|
+
schema:
|
|
303
|
+
$ref: '#/components/schemas/Error'
|
|
304
|
+
|
|
305
|
+
LinkResponse:
|
|
306
|
+
description: Link retrieved successfully.
|
|
307
|
+
content:
|
|
308
|
+
application/json:
|
|
309
|
+
schema:
|
|
310
|
+
$ref: '#/components/schemas/Link'
|
|
311
|
+
headers:
|
|
312
|
+
Last-Modified:
|
|
313
|
+
$ref: '#/components/headers/Last-Modified'
|
|
314
|
+
Created-On:
|
|
315
|
+
$ref: '#/components/headers/Created-On'
|
|
316
|
+
Updated-On:
|
|
317
|
+
$ref: '#/components/headers/Updated-On'
|
|
318
|
+
|
|
319
|
+
LinkagesResponse:
|
|
320
|
+
description: Linkages retrieved successfully.
|
|
321
|
+
content:
|
|
322
|
+
application/json:
|
|
323
|
+
schema:
|
|
324
|
+
$ref: '#/components/schemas/Linkages'
|
|
325
|
+
|
|
326
|
+
headers:
|
|
327
|
+
Last-Modified:
|
|
328
|
+
description: Date and time at which the record was last modified
|
|
329
|
+
schema:
|
|
330
|
+
type: string
|
|
331
|
+
format: date-time
|
|
332
|
+
|
|
333
|
+
Created-On:
|
|
334
|
+
description: CreatedOn timestamp for the newly created record
|
|
335
|
+
schema:
|
|
336
|
+
type: string
|
|
337
|
+
format: date-time
|
|
338
|
+
|
|
339
|
+
Updated-On:
|
|
340
|
+
description: UpdatedOn timestamp for the existing record
|
|
341
|
+
schema:
|
|
342
|
+
type: string
|
|
343
|
+
format: date-time
|