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

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 +331 -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 +491 -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,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