@twin.org/web 0.0.1-next.9 → 0.0.2-next.3

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 (35) hide show
  1. package/dist/cjs/index.cjs +298 -94
  2. package/dist/esm/index.mjs +299 -96
  3. package/dist/types/index.d.ts +3 -1
  4. package/dist/types/models/IJwk.d.ts +2 -58
  5. package/dist/types/models/IJwtHeader.d.ts +2 -18
  6. package/dist/types/models/IJwtPayload.d.ts +2 -33
  7. package/dist/types/models/jwkCryptoKey.d.ts +4 -0
  8. package/dist/types/models/mimeTypes.d.ts +8 -0
  9. package/dist/types/utils/fetchHelper.d.ts +7 -0
  10. package/dist/types/utils/jwk.d.ts +41 -0
  11. package/dist/types/utils/jws.d.ts +22 -0
  12. package/dist/types/utils/jwt.d.ts +67 -29
  13. package/docs/changelog.md +480 -1
  14. package/docs/reference/classes/FetchError.md +16 -8
  15. package/docs/reference/classes/FetchHelper.md +104 -28
  16. package/docs/reference/classes/Jwk.md +129 -0
  17. package/docs/reference/classes/Jws.md +81 -0
  18. package/docs/reference/classes/Jwt.md +261 -105
  19. package/docs/reference/classes/MimeTypeHelper.md +9 -5
  20. package/docs/reference/index.md +3 -2
  21. package/docs/reference/interfaces/IHttpHeaders.md +1 -1
  22. package/docs/reference/interfaces/IJwk.md +2 -106
  23. package/docs/reference/interfaces/IJwtHeader.md +5 -23
  24. package/docs/reference/interfaces/IJwtPayload.md +5 -55
  25. package/docs/reference/type-aliases/HeaderTypes.md +1 -1
  26. package/docs/reference/type-aliases/HttpMethod.md +1 -1
  27. package/docs/reference/type-aliases/HttpStatusCode.md +1 -1
  28. package/docs/reference/type-aliases/JwkCryptoKey.md +5 -0
  29. package/docs/reference/type-aliases/MimeTypes.md +1 -1
  30. package/docs/reference/variables/MimeTypes.md +12 -0
  31. package/locales/en.json +11 -1
  32. package/package.json +7 -6
  33. package/dist/types/models/jwtAlgorithms.d.ts +0 -17
  34. package/docs/reference/type-aliases/JwtAlgorithms.md +0 -5
  35. package/docs/reference/variables/JwtAlgorithms.md +0 -19
@@ -1,42 +1,52 @@
1
1
  # Class: Jwt
2
2
 
3
- Class to encode and decode JSON Web Tokens.
3
+ Class to handle JSON Web Tokens.
4
4
 
5
5
  ## Constructors
6
6
 
7
- ### new Jwt()
7
+ ### Constructor
8
8
 
9
- > **new Jwt**(): [`Jwt`](Jwt.md)
9
+ > **new Jwt**(): `Jwt`
10
10
 
11
11
  #### Returns
12
12
 
13
- [`Jwt`](Jwt.md)
13
+ `Jwt`
14
14
 
15
15
  ## Methods
16
16
 
17
17
  ### encode()
18
18
 
19
- > `static` **encode**\<`U`, `T`\>(`header`, `payload`, `key`): `Promise`\<`string`\>
19
+ > `static` **encode**\<`T`, `U`\>(`header`, `payload`, `key`): `Promise`\<`string`\>
20
20
 
21
21
  Encode a token.
22
22
 
23
23
  #### Type Parameters
24
24
 
25
- **U** *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
25
+ ##### T
26
26
 
27
- • **T** *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
27
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
28
+
29
+ ##### U
30
+
31
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
28
32
 
29
33
  #### Parameters
30
34
 
31
- **header**: `U`
35
+ ##### header
36
+
37
+ `T`
32
38
 
33
39
  The header to encode.
34
40
 
35
- **payload**: `T`
41
+ ##### payload
42
+
43
+ `U`
36
44
 
37
45
  The payload to encode.
38
46
 
39
- **key**: `Uint8Array`
47
+ ##### key
48
+
49
+ [`JwkCryptoKey`](../type-aliases/JwkCryptoKey.md)
40
50
 
41
51
  The key for signing the token, can be omitted if a signer is provided.
42
52
 
@@ -50,27 +60,37 @@ The encoded token.
50
60
 
51
61
  ### encodeWithSigner()
52
62
 
53
- > `static` **encodeWithSigner**\<`U`, `T`\>(`header`, `payload`, `signer`): `Promise`\<`string`\>
63
+ > `static` **encodeWithSigner**\<`T`, `U`\>(`header`, `payload`, `signer`): `Promise`\<`string`\>
54
64
 
55
65
  Encode a token.
56
66
 
57
67
  #### Type Parameters
58
68
 
59
- **U** *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
69
+ ##### T
60
70
 
61
- • **T** *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
71
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
72
+
73
+ ##### U
74
+
75
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
62
76
 
63
77
  #### Parameters
64
78
 
65
- **header**: `U`
79
+ ##### header
80
+
81
+ `T`
66
82
 
67
83
  The header to encode.
68
84
 
69
- **payload**: `T`
85
+ ##### payload
86
+
87
+ `U`
70
88
 
71
89
  The payload to encode.
72
90
 
73
- **signer**
91
+ ##### signer
92
+
93
+ (`header`, `payload`, `key`) => `Promise`\<`string`\>
74
94
 
75
95
  Custom signer method.
76
96
 
@@ -84,230 +104,366 @@ The encoded token.
84
104
 
85
105
  ### decode()
86
106
 
87
- > `static` **decode**\<`U`, `T`\>(`token`): `Promise`\<`object`\>
107
+ > `static` **decode**\<`T`, `U`\>(`token`): `Promise`\<\{ `header?`: `T`; `payload?`: `U`; `signature?`: `Uint8Array`\<`ArrayBufferLike`\>; \}\>
88
108
 
89
109
  Decode a token.
90
110
 
91
111
  #### Type Parameters
92
112
 
93
- **U** *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
113
+ ##### T
114
+
115
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
116
+
117
+ ##### U
94
118
 
95
- **T** *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
119
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
96
120
 
97
121
  #### Parameters
98
122
 
99
- **token**: `string`
123
+ ##### token
124
+
125
+ `string`
100
126
 
101
127
  The token to decode.
102
128
 
103
129
  #### Returns
104
130
 
105
- `Promise`\<`object`\>
131
+ `Promise`\<\{ `header?`: `T`; `payload?`: `U`; `signature?`: `Uint8Array`\<`ArrayBufferLike`\>; \}\>
106
132
 
107
133
  The decoded payload.
108
134
 
109
- ##### header?
135
+ ***
110
136
 
111
- > `optional` **header**: `U`
137
+ ### verify()
138
+
139
+ > `static` **verify**\<`T`, `U`\>(`token`, `key`): `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
112
140
 
113
- ##### payload?
141
+ Verify a token.
114
142
 
115
- > `optional` **payload**: `T`
143
+ #### Type Parameters
116
144
 
117
- ##### signature?
145
+ ##### T
118
146
 
119
- > `optional` **signature**: `Uint8Array`
147
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
148
+
149
+ ##### U
150
+
151
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
152
+
153
+ #### Parameters
154
+
155
+ ##### token
156
+
157
+ `string`
158
+
159
+ The token to verify.
160
+
161
+ ##### key
162
+
163
+ [`JwkCryptoKey`](../type-aliases/JwkCryptoKey.md)
164
+
165
+ The key for verifying the token
166
+
167
+ #### Returns
168
+
169
+ `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
170
+
171
+ The decoded payload.
120
172
 
121
173
  ***
122
174
 
123
- ### verify()
175
+ ### verifyWithVerifier()
124
176
 
125
- > `static` **verify**\<`U`, `T`\>(`token`, `key`): `Promise`\<`object`\>
177
+ > `static` **verifyWithVerifier**\<`T`, `U`\>(`token`, `verifier`): `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
126
178
 
127
179
  Verify a token.
128
180
 
129
181
  #### Type Parameters
130
182
 
131
- **U** *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
183
+ ##### T
184
+
185
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
132
186
 
133
- **T** *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
187
+ ##### U
188
+
189
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
134
190
 
135
191
  #### Parameters
136
192
 
137
- **token**: `string`
193
+ ##### token
194
+
195
+ `string`
138
196
 
139
197
  The token to verify.
140
198
 
141
- **key**: `Uint8Array`
199
+ ##### verifier
142
200
 
143
- The key for verifying the token
201
+ (`token`, `key`) => `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
202
+
203
+ Custom verification method.
144
204
 
145
205
  #### Returns
146
206
 
147
- `Promise`\<`object`\>
207
+ `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
148
208
 
149
209
  The decoded payload.
150
210
 
151
- ##### verified
211
+ ***
212
+
213
+ ### verifySignature()
152
214
 
153
- > **verified**: `boolean`
215
+ > `static` **verifySignature**\<`T`, `U`\>(`token`, `key?`, `verifier?`): `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
154
216
 
155
- ##### header?
217
+ Verify a token by parts.
156
218
 
157
- > `optional` **header**: `U`
219
+ #### Type Parameters
158
220
 
159
- ##### payload?
221
+ ##### T
160
222
 
161
- > `optional` **payload**: `T`
223
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
162
224
 
163
- ##### signature?
225
+ ##### U
164
226
 
165
- > `optional` **signature**: `Uint8Array`
227
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
228
+
229
+ #### Parameters
230
+
231
+ ##### token
232
+
233
+ `string`
234
+
235
+ The token to verify.
236
+
237
+ ##### key?
238
+
239
+ [`JwkCryptoKey`](../type-aliases/JwkCryptoKey.md)
240
+
241
+ The key for verifying the token, if not provided no verification occurs.
242
+
243
+ ##### verifier?
244
+
245
+ (`token`, `key`) => `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
246
+
247
+ Custom verification method.
248
+
249
+ #### Returns
250
+
251
+ `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
252
+
253
+ True if the parts are verified.
166
254
 
167
255
  ***
168
256
 
169
- ### verifyWithVerifier()
257
+ ### defaultSigner()
170
258
 
171
- > `static` **verifyWithVerifier**\<`U`, `T`\>(`token`, `verifier`): `Promise`\<`object`\>
259
+ > `static` **defaultSigner**(`header`, `payload`, `key`): `Promise`\<`string`\>
172
260
 
173
- Verify a token.
261
+ The default signer for the JWT.
262
+
263
+ #### Parameters
264
+
265
+ ##### header
266
+
267
+ [`IJwtHeader`](../interfaces/IJwtHeader.md)
268
+
269
+ The header to sign.
270
+
271
+ ##### payload
272
+
273
+ [`IJwtPayload`](../interfaces/IJwtPayload.md)
274
+
275
+ The payload to sign.
276
+
277
+ ##### key
278
+
279
+ The optional key to sign with.
280
+
281
+ `undefined` | [`JwkCryptoKey`](../type-aliases/JwkCryptoKey.md)
282
+
283
+ #### Returns
284
+
285
+ `Promise`\<`string`\>
286
+
287
+ The signature.
288
+
289
+ ***
290
+
291
+ ### defaultVerifier()
292
+
293
+ > `static` **defaultVerifier**\<`T`, `U`\>(`token`, `key`): `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
294
+
295
+ The default verifier for the JWT.
174
296
 
175
297
  #### Type Parameters
176
298
 
177
- **U** *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
299
+ ##### T
300
+
301
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
178
302
 
179
- **T** *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
303
+ ##### U
304
+
305
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
180
306
 
181
307
  #### Parameters
182
308
 
183
- **token**: `string`
309
+ ##### token
310
+
311
+ `string`
184
312
 
185
313
  The token to verify.
186
314
 
187
- **verifier**
315
+ ##### key
188
316
 
189
- Custom verification method.
317
+ The key to verify with.
318
+
319
+ `undefined` | [`JwkCryptoKey`](../type-aliases/JwkCryptoKey.md)
190
320
 
191
321
  #### Returns
192
322
 
193
- `Promise`\<`object`\>
323
+ `Promise`\<\{ `header`: `T`; `payload`: `U`; \}\>
194
324
 
195
- The decoded payload.
325
+ The header and payload if verification successful.
196
326
 
197
- ##### verified
327
+ ***
198
328
 
199
- > **verified**: `boolean`
329
+ ### toSigningBytes()
200
330
 
201
- ##### header?
331
+ > `static` **toSigningBytes**\<`T`, `U`\>(`header`, `payload`): `Uint8Array`
202
332
 
203
- > `optional` **header**: `U`
333
+ Create bytes for signing from header and payload.
204
334
 
205
- ##### payload?
335
+ #### Type Parameters
206
336
 
207
- > `optional` **payload**: `T`
337
+ ##### T
208
338
 
209
- ##### signature?
339
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
210
340
 
211
- > `optional` **signature**: `Uint8Array`
341
+ ##### U
342
+
343
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
344
+
345
+ #### Parameters
346
+
347
+ ##### header
348
+
349
+ `T`
350
+
351
+ The header.
352
+
353
+ ##### payload
354
+
355
+ `U`
356
+
357
+ The payload.
358
+
359
+ #### Returns
360
+
361
+ `Uint8Array`
362
+
363
+ The bytes to sign.
212
364
 
213
365
  ***
214
366
 
215
- ### verifySignature()
367
+ ### fromSigningBytes()
216
368
 
217
- > `static` **verifySignature**\<`U`, `T`\>(`header`?, `payload`?, `signature`?, `key`?, `verifier`?): `Promise`\<`boolean`\>
369
+ > `static` **fromSigningBytes**\<`T`, `U`\>(`signingBytes`): `object`
218
370
 
219
- Verify a token by parts.
371
+ Create header and payload from signing bytes.
220
372
 
221
373
  #### Type Parameters
222
374
 
223
- **U** *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
375
+ ##### T
224
376
 
225
- • **T** *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
377
+ `T` *extends* [`IJwtHeader`](../interfaces/IJwtHeader.md)
226
378
 
227
- #### Parameters
379
+ ##### U
380
+
381
+ `U` *extends* [`IJwtPayload`](../interfaces/IJwtPayload.md)
228
382
 
229
- **header?**: `U`
383
+ #### Parameters
230
384
 
231
- The header to verify.
385
+ ##### signingBytes
232
386
 
233
- • **payload?**: `T`
387
+ `Uint8Array`
234
388
 
235
- The payload to verify.
389
+ The signing bytes from a token.
236
390
 
237
- **signature?**: `Uint8Array`
391
+ #### Returns
238
392
 
239
- The signature to verify.
393
+ `object`
240
394
 
241
- **key?**: `Uint8Array`
395
+ The header and payload.
242
396
 
243
- The key for verifying the token, if not provided no verification occurs.
397
+ ##### header
244
398
 
245
- **verifier?**
399
+ > **header**: `T`
246
400
 
247
- Custom verification method.
401
+ ##### payload
248
402
 
249
- #### Returns
403
+ > **payload**: `U`
250
404
 
251
- `Promise`\<`boolean`\>
405
+ #### Throws
252
406
 
253
- True if the parts are verified.
407
+ If the signing bytes are invalid
254
408
 
255
409
  ***
256
410
 
257
- ### defaultSigner()
411
+ ### tokenFromBytes()
258
412
 
259
- > `static` **defaultSigner**(`alg`, `key`, `payload`): `Promise`\<`Uint8Array`\>
413
+ > `static` **tokenFromBytes**(`signingBytes`, `signature`): `string`
260
414
 
261
- The default signer for the JWT.
415
+ Convert signed bytes and signature bytes to token.
262
416
 
263
417
  #### Parameters
264
418
 
265
- **alg**: [`JwtAlgorithms`](../type-aliases/JwtAlgorithms.md)
419
+ ##### signingBytes
266
420
 
267
- The algorithm to use.
421
+ `Uint8Array`
268
422
 
269
- **key**: `undefined` \| `Uint8Array`
423
+ The signed bytes.
270
424
 
271
- The key to sign with.
425
+ ##### signature
272
426
 
273
- • **payload**: `Uint8Array`
427
+ `Uint8Array`
274
428
 
275
- The payload to sign.
429
+ The signature.
276
430
 
277
431
  #### Returns
278
432
 
279
- `Promise`\<`Uint8Array`\>
433
+ `string`
280
434
 
281
- The signature.
435
+ The token.
282
436
 
283
437
  ***
284
438
 
285
- ### defaultVerifier()
439
+ ### tokenToBytes()
286
440
 
287
- > `static` **defaultVerifier**(`alg`, `key`, `payload`, `signature`): `Promise`\<`boolean`\>
441
+ > `static` **tokenToBytes**(`token`): `object`
288
442
 
289
- The default verifier for the JWT.
443
+ Convert the token to signing bytes and signature bytes.
290
444
 
291
445
  #### Parameters
292
446
 
293
- **alg**: [`JwtAlgorithms`](../type-aliases/JwtAlgorithms.md)
447
+ ##### token
294
448
 
295
- The algorithm to use.
449
+ `string`
296
450
 
297
- **key**: `undefined` \| `Uint8Array`
451
+ The token to convert to bytes.
298
452
 
299
- The key to verify with.
453
+ #### Returns
300
454
 
301
- • **payload**: `Uint8Array`
455
+ `object`
302
456
 
303
- The payload to verify.
457
+ The decoded bytes.
304
458
 
305
- **signature**: `Uint8Array`
459
+ ##### signingBytes
306
460
 
307
- The signature to verify.
461
+ > **signingBytes**: `Uint8Array`
308
462
 
309
- #### Returns
463
+ ##### signature
464
+
465
+ > **signature**: `Uint8Array`
310
466
 
311
- `Promise`\<`boolean`\>
467
+ #### Throws
312
468
 
313
- True if the signature was verified.
469
+ If the token is invalid.
@@ -4,13 +4,13 @@ Class to help with mime types.
4
4
 
5
5
  ## Constructors
6
6
 
7
- ### new MimeTypeHelper()
7
+ ### Constructor
8
8
 
9
- > **new MimeTypeHelper**(): [`MimeTypeHelper`](MimeTypeHelper.md)
9
+ > **new MimeTypeHelper**(): `MimeTypeHelper`
10
10
 
11
11
  #### Returns
12
12
 
13
- [`MimeTypeHelper`](MimeTypeHelper.md)
13
+ `MimeTypeHelper`
14
14
 
15
15
  ## Methods
16
16
 
@@ -22,7 +22,9 @@ Detect the mime type from a byte array.
22
22
 
23
23
  #### Parameters
24
24
 
25
- **data**: `Uint8Array`
25
+ ##### data
26
+
27
+ `Uint8Array`
26
28
 
27
29
  The data to test.
28
30
 
@@ -42,10 +44,12 @@ Return the default extension for a mime type.
42
44
 
43
45
  #### Parameters
44
46
 
45
- **mimeType**: `undefined` \| `string`
47
+ ##### mimeType
46
48
 
47
49
  The mimetype to get the extension for.
48
50
 
51
+ `undefined` | `string`
52
+
49
53
  #### Returns
50
54
 
51
55
  `undefined` \| `string`
@@ -4,6 +4,8 @@
4
4
 
5
5
  - [FetchError](classes/FetchError.md)
6
6
  - [FetchHelper](classes/FetchHelper.md)
7
+ - [Jwk](classes/Jwk.md)
8
+ - [Jws](classes/Jws.md)
7
9
  - [Jwt](classes/Jwt.md)
8
10
  - [MimeTypeHelper](classes/MimeTypeHelper.md)
9
11
 
@@ -20,7 +22,7 @@
20
22
  - [HeaderTypes](type-aliases/HeaderTypes.md)
21
23
  - [HttpMethod](type-aliases/HttpMethod.md)
22
24
  - [HttpStatusCode](type-aliases/HttpStatusCode.md)
23
- - [JwtAlgorithms](type-aliases/JwtAlgorithms.md)
25
+ - [JwkCryptoKey](type-aliases/JwkCryptoKey.md)
24
26
  - [MimeTypes](type-aliases/MimeTypes.md)
25
27
 
26
28
  ## Variables
@@ -28,5 +30,4 @@
28
30
  - [HeaderTypes](variables/HeaderTypes.md)
29
31
  - [HttpMethod](variables/HttpMethod.md)
30
32
  - [HttpStatusCode](variables/HttpStatusCode.md)
31
- - [JwtAlgorithms](variables/JwtAlgorithms.md)
32
33
  - [MimeTypes](variables/MimeTypes.md)
@@ -4,4 +4,4 @@ Model used for Http headers parameter.
4
4
 
5
5
  ## Indexable
6
6
 
7
- \[`key`: `string`\]: `string` \| `string`[]
7
+ \[`key`: `string`\]: `string` \| `string`[]