@pagopa/io-react-native-wallet 1.6.1 → 1.7.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.
Files changed (87) hide show
  1. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +69 -35
  2. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  3. package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js +181 -0
  4. package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js.map +1 -0
  5. package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js +3 -57
  6. package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
  7. package/lib/commonjs/credential/presentation/08-send-authorization-response.js +98 -2
  8. package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -1
  9. package/lib/commonjs/credential/presentation/index.js +14 -1
  10. package/lib/commonjs/credential/presentation/index.js.map +1 -1
  11. package/lib/commonjs/credential/presentation/types.js +9 -2
  12. package/lib/commonjs/credential/presentation/types.js.map +1 -1
  13. package/lib/commonjs/mdoc/index.js +14 -6
  14. package/lib/commonjs/mdoc/index.js.map +1 -1
  15. package/lib/commonjs/sd-jwt/__test__/index.test.js +24 -21
  16. package/lib/commonjs/sd-jwt/__test__/index.test.js.map +1 -1
  17. package/lib/commonjs/sd-jwt/__test__/types.test.js +3 -0
  18. package/lib/commonjs/sd-jwt/__test__/types.test.js.map +1 -1
  19. package/lib/commonjs/sd-jwt/index.js +7 -1
  20. package/lib/commonjs/sd-jwt/index.js.map +1 -1
  21. package/lib/commonjs/sd-jwt/types.js +4 -1
  22. package/lib/commonjs/sd-jwt/types.js.map +1 -1
  23. package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-inputs.js +469 -0
  24. package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-inputs.js.map +1 -0
  25. package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-utils.js +90 -0
  26. package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-utils.js.map +1 -0
  27. package/lib/module/credential/issuance/07-verify-and-parse-credential.js +67 -35
  28. package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  29. package/lib/module/credential/presentation/07-evaluate-dcql-query.js +175 -0
  30. package/lib/module/credential/presentation/07-evaluate-dcql-query.js.map +1 -0
  31. package/lib/module/credential/presentation/07-evaluate-input-descriptor.js +3 -56
  32. package/lib/module/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
  33. package/lib/module/credential/presentation/08-send-authorization-response.js +97 -2
  34. package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -1
  35. package/lib/module/credential/presentation/index.js +4 -3
  36. package/lib/module/credential/presentation/index.js.map +1 -1
  37. package/lib/module/credential/presentation/types.js +9 -2
  38. package/lib/module/credential/presentation/types.js.map +1 -1
  39. package/lib/module/mdoc/index.js +14 -6
  40. package/lib/module/mdoc/index.js.map +1 -1
  41. package/lib/module/sd-jwt/__test__/index.test.js +24 -21
  42. package/lib/module/sd-jwt/__test__/index.test.js.map +1 -1
  43. package/lib/module/sd-jwt/__test__/types.test.js +3 -0
  44. package/lib/module/sd-jwt/__test__/types.test.js.map +1 -1
  45. package/lib/module/sd-jwt/index.js +7 -1
  46. package/lib/module/sd-jwt/index.js.map +1 -1
  47. package/lib/module/sd-jwt/types.js +4 -1
  48. package/lib/module/sd-jwt/types.js.map +1 -1
  49. package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-inputs.js +462 -0
  50. package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-inputs.js.map +1 -0
  51. package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-utils.js +83 -0
  52. package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-utils.js.map +1 -0
  53. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +12 -0
  54. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
  55. package/lib/typescript/credential/presentation/07-evaluate-dcql-query.d.ts +27 -0
  56. package/lib/typescript/credential/presentation/07-evaluate-dcql-query.d.ts.map +1 -0
  57. package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts +2 -32
  58. package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts.map +1 -1
  59. package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts +23 -1
  60. package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts.map +1 -1
  61. package/lib/typescript/credential/presentation/index.d.ts +6 -4
  62. package/lib/typescript/credential/presentation/index.d.ts.map +1 -1
  63. package/lib/typescript/credential/presentation/types.d.ts +32 -8
  64. package/lib/typescript/credential/presentation/types.d.ts.map +1 -1
  65. package/lib/typescript/mdoc/index.d.ts.map +1 -1
  66. package/lib/typescript/sd-jwt/index.d.ts +12 -0
  67. package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
  68. package/lib/typescript/sd-jwt/types.d.ts +15 -0
  69. package/lib/typescript/sd-jwt/types.d.ts.map +1 -1
  70. package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-inputs.d.ts +3 -0
  71. package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-inputs.d.ts.map +1 -0
  72. package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-utils.d.ts +42 -0
  73. package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-utils.d.ts.map +1 -0
  74. package/package.json +4 -3
  75. package/src/credential/issuance/07-verify-and-parse-credential.ts +35 -3
  76. package/src/credential/presentation/07-evaluate-dcql-query.ts +228 -0
  77. package/src/credential/presentation/07-evaluate-input-descriptor.ts +6 -108
  78. package/src/credential/presentation/08-send-authorization-response.ts +137 -2
  79. package/src/credential/presentation/index.ts +12 -2
  80. package/src/credential/presentation/types.ts +40 -4
  81. package/src/mdoc/index.ts +14 -4
  82. package/src/sd-jwt/__test__/index.test.ts +45 -36
  83. package/src/sd-jwt/__test__/types.test.ts +3 -0
  84. package/src/sd-jwt/index.ts +5 -1
  85. package/src/sd-jwt/types.ts +3 -0
  86. package/src/utils/credential/issuance/07-verify-and-parse-credentials-inputs.ts +615 -0
  87. package/src/utils/credential/issuance/07-verify-and-parse-credentials-utils.ts +171 -0
@@ -0,0 +1,615 @@
1
+ import {
2
+ type TestScenario,
3
+ type ParseCredentialArg,
4
+ type ParseCredentialReturn,
5
+ buildMockSDJWTTestScenario,
6
+ buildMockMDOCTestScenario,
7
+ } from "./07-verify-and-parse-credentials-utils";
8
+ import { IoWalletError } from "../../../utils/errors";
9
+
10
+ export const inputs: TestScenario<
11
+ ParseCredentialArg,
12
+ ParseCredentialReturn,
13
+ Error
14
+ >[] = [
15
+ // sd-jwt
16
+ {
17
+ name: "Mandatory claims = Disclosures, all mandatory",
18
+ input: {
19
+ format: "vc+sd-jwt",
20
+ parameters: buildMockSDJWTTestScenario(
21
+ {
22
+ family_name: {
23
+ display: [
24
+ {
25
+ name: "Cognome",
26
+ locale: "it-IT",
27
+ },
28
+ ],
29
+ mandatory: true,
30
+ },
31
+ given_name: {
32
+ display: [
33
+ {
34
+ name: "Nome",
35
+ locale: "it-IT",
36
+ },
37
+ ],
38
+ mandatory: true,
39
+ },
40
+ },
41
+ [
42
+ ["unused", "family_name", "Rossi"],
43
+ ["unused", "given_name", "Mario"],
44
+ ]
45
+ ),
46
+ },
47
+ expected: {
48
+ given_name: {
49
+ name: {
50
+ "it-IT": "Nome",
51
+ },
52
+ value: "Mario",
53
+ mandatory: true,
54
+ },
55
+ family_name: {
56
+ name: {
57
+ "it-IT": "Cognome",
58
+ },
59
+ value: "Rossi",
60
+ mandatory: true,
61
+ },
62
+ },
63
+ },
64
+ {
65
+ name: "Mandatory claims = Disclosures, not all mandatory",
66
+ input: {
67
+ format: "vc+sd-jwt",
68
+ parameters: buildMockSDJWTTestScenario(
69
+ {
70
+ family_name: {
71
+ display: [
72
+ {
73
+ name: "Cognome",
74
+ locale: "it-IT",
75
+ },
76
+ ],
77
+ mandatory: true,
78
+ },
79
+ given_name: {
80
+ display: [
81
+ {
82
+ name: "Nome",
83
+ locale: "it-IT",
84
+ },
85
+ ],
86
+ mandatory: false,
87
+ },
88
+ },
89
+ [
90
+ ["unused", "family_name", "Rossi"],
91
+ ["unused", "given_name", "Mario"],
92
+ ]
93
+ ),
94
+ },
95
+ expected: {
96
+ given_name: {
97
+ name: {
98
+ "it-IT": "Nome",
99
+ },
100
+ value: "Mario",
101
+ mandatory: false,
102
+ },
103
+ family_name: {
104
+ name: {
105
+ "it-IT": "Cognome",
106
+ },
107
+ value: "Rossi",
108
+ mandatory: true,
109
+ },
110
+ },
111
+ },
112
+ {
113
+ name: "Mandatory claims < Disclosures, all mandatory",
114
+ input: {
115
+ format: "vc+sd-jwt",
116
+ parameters: buildMockSDJWTTestScenario(
117
+ {
118
+ family_name: {
119
+ display: [
120
+ {
121
+ name: "Cognome",
122
+ locale: "it-IT",
123
+ },
124
+ ],
125
+ mandatory: true,
126
+ },
127
+ },
128
+ [
129
+ ["unused", "family_name", "Rossi"],
130
+ ["unused", "given_name", "Mario"],
131
+ ]
132
+ ),
133
+ },
134
+ expected: {
135
+ given_name: {
136
+ name: "given_name",
137
+ value: "Mario",
138
+ },
139
+ family_name: {
140
+ name: {
141
+ "it-IT": "Cognome",
142
+ },
143
+ value: "Rossi",
144
+ mandatory: true,
145
+ },
146
+ },
147
+ },
148
+ {
149
+ name: "Mandatory claims < Disclosures, not all mandatory",
150
+ input: {
151
+ format: "vc+sd-jwt",
152
+ parameters: buildMockSDJWTTestScenario(
153
+ {
154
+ family_name: {
155
+ display: [
156
+ {
157
+ name: "Cognome",
158
+ locale: "it-IT",
159
+ },
160
+ ],
161
+ mandatory: true,
162
+ },
163
+ given_name: {
164
+ display: [
165
+ {
166
+ name: "Nome",
167
+ locale: "it-IT",
168
+ },
169
+ ],
170
+ mandatory: false,
171
+ },
172
+ },
173
+ [
174
+ ["unused", "family_name", "Rossi"],
175
+ ["unused", "given_name", "Mario"],
176
+ ["unused", "birth_date", new Date(2000, 2, 1)],
177
+ ]
178
+ ),
179
+ },
180
+ expected: {
181
+ given_name: {
182
+ name: {
183
+ "it-IT": "Nome",
184
+ },
185
+ value: "Mario",
186
+ mandatory: false,
187
+ },
188
+ family_name: {
189
+ name: {
190
+ "it-IT": "Cognome",
191
+ },
192
+ value: "Rossi",
193
+ mandatory: true,
194
+ },
195
+ birth_date: {
196
+ name: "birth_date",
197
+ value: new Date(2000, 2, 1),
198
+ },
199
+ },
200
+ },
201
+ {
202
+ name: "Mandatory claims > Disclosures, all mandatory",
203
+ input: {
204
+ format: "vc+sd-jwt",
205
+ parameters: buildMockSDJWTTestScenario(
206
+ {
207
+ family_name: {
208
+ display: [
209
+ {
210
+ name: "Cognome",
211
+ locale: "it-IT",
212
+ },
213
+ ],
214
+ mandatory: true,
215
+ },
216
+ given_name: {
217
+ display: [
218
+ {
219
+ name: "Nome",
220
+ locale: "it-IT",
221
+ },
222
+ ],
223
+ mandatory: true,
224
+ },
225
+ },
226
+ [["unused", "family_name", "Rossi"]]
227
+ ),
228
+ },
229
+ throws: new IoWalletError(),
230
+ },
231
+ {
232
+ name: "Mandatory claims > Disclosures, not all mandatory",
233
+ input: {
234
+ format: "vc+sd-jwt",
235
+ parameters: buildMockSDJWTTestScenario(
236
+ {
237
+ family_name: {
238
+ display: [
239
+ {
240
+ name: "Cognome",
241
+ locale: "it-IT",
242
+ },
243
+ ],
244
+ mandatory: true,
245
+ },
246
+ given_name: {
247
+ display: [
248
+ {
249
+ name: "Nome",
250
+ locale: "it-IT",
251
+ },
252
+ ],
253
+ mandatory: true,
254
+ },
255
+ birth_date: {
256
+ display: [
257
+ {
258
+ name: "Data di nascita",
259
+ locale: "it-IT",
260
+ },
261
+ ],
262
+ mandatory: false,
263
+ },
264
+ },
265
+ [["unused", "family_name", "Rossi"]]
266
+ ),
267
+ },
268
+ throws: new IoWalletError(),
269
+ },
270
+ {
271
+ name: "Non mandatory claim not found",
272
+ input: {
273
+ format: "vc+sd-jwt",
274
+ parameters: buildMockSDJWTTestScenario(
275
+ {
276
+ family_name: {
277
+ display: [
278
+ {
279
+ name: "Cognome",
280
+ locale: "it-IT",
281
+ },
282
+ ],
283
+ mandatory: true,
284
+ },
285
+ given_name: {
286
+ display: [
287
+ {
288
+ name: "Nome",
289
+ locale: "it-IT",
290
+ },
291
+ ],
292
+ mandatory: false,
293
+ },
294
+ },
295
+ [
296
+ ["unused", "family_name", "Rossi"],
297
+ ["unused", "birth_date", new Date(2000, 2, 1)],
298
+ ]
299
+ ),
300
+ },
301
+ expected: {
302
+ family_name: {
303
+ name: {
304
+ "it-IT": "Cognome",
305
+ },
306
+ value: "Rossi",
307
+ mandatory: true,
308
+ },
309
+ birth_date: {
310
+ name: "birth_date",
311
+ value: new Date(2000, 2, 1),
312
+ },
313
+ },
314
+ },
315
+ //MDOC
316
+ {
317
+ name: "Mandatory claims = Disclosures, all mandatory",
318
+ input: {
319
+ format: "mso_mdoc",
320
+ parameters: buildMockMDOCTestScenario(
321
+ {
322
+ family_name: {
323
+ display: [
324
+ {
325
+ name: "Cognome",
326
+ locale: "it-IT",
327
+ },
328
+ ],
329
+ mandatory: true,
330
+ },
331
+ given_name: {
332
+ display: [
333
+ {
334
+ name: "Nome",
335
+ locale: "it-IT",
336
+ },
337
+ ],
338
+ mandatory: true,
339
+ },
340
+ },
341
+ [
342
+ ["family_name", "Rossi"],
343
+ ["given_name", "Mario"],
344
+ ]
345
+ ),
346
+ },
347
+ expected: {
348
+ given_name: {
349
+ name: {
350
+ "it-IT": "Nome",
351
+ },
352
+ value: "Mario",
353
+ mandatory: true,
354
+ },
355
+ family_name: {
356
+ name: {
357
+ "it-IT": "Cognome",
358
+ },
359
+ value: "Rossi",
360
+ mandatory: true,
361
+ },
362
+ },
363
+ },
364
+ {
365
+ name: "Mandatory claims = Disclosures, not all mandatory",
366
+ input: {
367
+ format: "mso_mdoc",
368
+ parameters: buildMockMDOCTestScenario(
369
+ {
370
+ family_name: {
371
+ display: [
372
+ {
373
+ name: "Cognome",
374
+ locale: "it-IT",
375
+ },
376
+ ],
377
+ mandatory: true,
378
+ },
379
+ given_name: {
380
+ display: [
381
+ {
382
+ name: "Nome",
383
+ locale: "it-IT",
384
+ },
385
+ ],
386
+ mandatory: false,
387
+ },
388
+ },
389
+ [
390
+ ["family_name", "Rossi"],
391
+ ["given_name", "Mario"],
392
+ ]
393
+ ),
394
+ },
395
+ expected: {
396
+ given_name: {
397
+ name: {
398
+ "it-IT": "Nome",
399
+ },
400
+ value: "Mario",
401
+ mandatory: false,
402
+ },
403
+ family_name: {
404
+ name: {
405
+ "it-IT": "Cognome",
406
+ },
407
+ value: "Rossi",
408
+ mandatory: true,
409
+ },
410
+ },
411
+ },
412
+ {
413
+ name: "Mandatory claims < Disclosures, all mandatory",
414
+ input: {
415
+ format: "mso_mdoc",
416
+ parameters: buildMockMDOCTestScenario(
417
+ {
418
+ family_name: {
419
+ display: [
420
+ {
421
+ name: "Cognome",
422
+ locale: "it-IT",
423
+ },
424
+ ],
425
+ mandatory: true,
426
+ },
427
+ },
428
+ [
429
+ ["family_name", "Rossi"],
430
+ ["given_name", "Mario"],
431
+ ]
432
+ ),
433
+ },
434
+ expected: {
435
+ given_name: {
436
+ name: "given_name",
437
+ value: "Mario",
438
+ },
439
+ family_name: {
440
+ name: {
441
+ "it-IT": "Cognome",
442
+ },
443
+ value: "Rossi",
444
+ mandatory: true,
445
+ },
446
+ },
447
+ },
448
+ {
449
+ name: "Mandatory claims < Disclosures, not all mandatory",
450
+ input: {
451
+ format: "mso_mdoc",
452
+ parameters: buildMockMDOCTestScenario(
453
+ {
454
+ family_name: {
455
+ display: [
456
+ {
457
+ name: "Cognome",
458
+ locale: "it-IT",
459
+ },
460
+ ],
461
+ mandatory: true,
462
+ },
463
+ given_name: {
464
+ display: [
465
+ {
466
+ name: "Nome",
467
+ locale: "it-IT",
468
+ },
469
+ ],
470
+ mandatory: false,
471
+ },
472
+ },
473
+ [
474
+ ["family_name", "Rossi"],
475
+ ["given_name", "Mario"],
476
+ ["birth_date", new Date(2000, 2, 1)],
477
+ ]
478
+ ),
479
+ },
480
+ expected: {
481
+ given_name: {
482
+ name: {
483
+ "it-IT": "Nome",
484
+ },
485
+ value: "Mario",
486
+ mandatory: false,
487
+ },
488
+ family_name: {
489
+ name: {
490
+ "it-IT": "Cognome",
491
+ },
492
+ value: "Rossi",
493
+ mandatory: true,
494
+ },
495
+ birth_date: {
496
+ name: "birth_date",
497
+ value: new Date(2000, 2, 1),
498
+ },
499
+ },
500
+ },
501
+ {
502
+ name: "Mandatory claims > Disclosures, all mandatory",
503
+ input: {
504
+ format: "mso_mdoc",
505
+ parameters: buildMockMDOCTestScenario(
506
+ {
507
+ family_name: {
508
+ display: [
509
+ {
510
+ name: "Cognome",
511
+ locale: "it-IT",
512
+ },
513
+ ],
514
+ mandatory: true,
515
+ },
516
+ given_name: {
517
+ display: [
518
+ {
519
+ name: "Nome",
520
+ locale: "it-IT",
521
+ },
522
+ ],
523
+ mandatory: true,
524
+ },
525
+ },
526
+ [["family_name", "Rossi"]]
527
+ ),
528
+ },
529
+ throws: new IoWalletError(),
530
+ },
531
+ {
532
+ name: "Mandatory claims > Disclosures, not all mandatory",
533
+ input: {
534
+ format: "mso_mdoc",
535
+ parameters: buildMockMDOCTestScenario(
536
+ {
537
+ family_name: {
538
+ display: [
539
+ {
540
+ name: "Cognome",
541
+ locale: "it-IT",
542
+ },
543
+ ],
544
+ mandatory: true,
545
+ },
546
+ given_name: {
547
+ display: [
548
+ {
549
+ name: "Nome",
550
+ locale: "it-IT",
551
+ },
552
+ ],
553
+ mandatory: true,
554
+ },
555
+ birth_date: {
556
+ display: [
557
+ {
558
+ name: "Data di nascita",
559
+ locale: "it-IT",
560
+ },
561
+ ],
562
+ mandatory: false,
563
+ },
564
+ },
565
+ [["family_name", "Rossi"]]
566
+ ),
567
+ },
568
+ throws: new IoWalletError(),
569
+ },
570
+ {
571
+ name: "Not mandatory claim not found",
572
+ input: {
573
+ format: "mso_mdoc",
574
+ parameters: buildMockMDOCTestScenario(
575
+ {
576
+ family_name: {
577
+ display: [
578
+ {
579
+ name: "Cognome",
580
+ locale: "it-IT",
581
+ },
582
+ ],
583
+ mandatory: true,
584
+ },
585
+ given_name: {
586
+ display: [
587
+ {
588
+ name: "Nome",
589
+ locale: "it-IT",
590
+ },
591
+ ],
592
+ mandatory: false,
593
+ },
594
+ },
595
+ [
596
+ ["family_name", "Rossi"],
597
+ ["birth_date", new Date(2000, 2, 1)],
598
+ ]
599
+ ),
600
+ },
601
+ expected: {
602
+ family_name: {
603
+ name: {
604
+ "it-IT": "Cognome",
605
+ },
606
+ value: "Rossi",
607
+ mandatory: true,
608
+ },
609
+ birth_date: {
610
+ name: "birth_date",
611
+ value: new Date(2000, 2, 1),
612
+ },
613
+ },
614
+ },
615
+ ];